在宅

在宅ワーク出来たり出来なかったりってのは、職種に依るところが大きいと思うんですが、ウチの場合は在宅ワークで大部分はなんとかなるって感じでした。

ま、週1〜2日は出社は必要だったり、仕事を進めるうえで、在宅故のデメリットもあります。

世間のお父さん達は「個室が無い」「そもそも机が無い」「家族の視線が痛い」などと、とっても不評なようですが、独り者のウチからすると凄く快適。

椅子にしろ机にしろ、会社の物より自宅の物の方が快適。空調だって他人を気にせず自分が快適な温度に設定できるし(暑がり)。

通勤のコスト

通勤しなくて良いっていのが大きい。片道1時間、往復2時間、年間約480時間の壮大なる無駄。

学校通ってた頃からの習慣で当り前に思っていたけれど、実は大変に労力のかかる行為だったんだと改めて認識。

世界は変わる?

もうじき緊急事態宣言も解除らしい

それでも、緊急事態が解除されても元通り…と言うわけには行かないでしょうね。

いつまた何処でクラスター発生するとも知れず…、というのは、まぁ韓国や中国が、既にそれを証明してくれています。

自粛祭りは勘弁ですが、今のように「基本在宅、必要に応じて出社」というスタイルは気に入っていて続いて欲しいなぁ…と思ってたりします。

カテゴリー: 未分類 | コメントする

zvolのvolblocksize

netatalkでの共有を止めて、zvol+iSCSIへ移行したわけですが、どうにもディスク消費量が大きすぎるのが気になってました。

zfs create -sVにて疎ボリュームで作成したんで、使用したら使用した分だけディスク消費するようにしてました。

すると、実容量に対し管理領域なんかで数%ふえるのはあり得る話しだけども、2TBのファイル置くだけで2.6TBも消費していて明らかにおかしい…。

そんなわけで、volblocksizeを疑ってテストしてみました。

用意した1GBiの書込みファイル。
dd if=/dev/random of=test.data bs=1048576 count=1024

今回は-sオプション使わず、普通にzfs create -V 2Gで確保しました。

blocksizeUSEDREFER
8kB2.06G1.35G
16kB2.03G1.01G
32kB2.02G1.00G
64kB2.01G1.00G
128kB2.01G1.00G
iSCSI経由APFSでmacOSから1GBi書込み後のzfs listの値

FreeBSDでzvolを作成すると、デフォルトではblocksizeは8kBに設定されます。

しかし結果を見てみると、8kBだけ明らかにREFERの上昇が激しいです。

REFERは実際に消費されているサイズというより「書込みで使用済みとなったサイズ」なので、CoW的な動きされると「書込んだけど今は使ってない」領域が存在し、それらがカウントされているのかと思います。

それでも8kBだけこれだけ差があると、ちょっと気持ち悪い…。

blocksizeによる実際のディスク消費量の違いは、USEDの値を見るのが妥当なところかな。それでも8kBだと約3%と、ちょい多い。

パフォーマンスについては、下記のサイトで検証されていて、あんまり影響は無い模様。

https://fefcc.net/archives/478

っていうか、FreeNASでは16kBがデフォルトなんですね。

ディスクケチりたいので128kBにしたいところですが、なんとなくビビって64kBに設定してzvol作り直しましたとさ。

APFS自体がCoWっぽい振舞するので、zfsの疎ボリューム機能使っても無駄にしかならないので、ギリギリサイズで確保して都度、volサイズを拡張することにしました。

おまけ:zvol/iSCSI/APFS運用でのvolサイズ拡張について

ディスク容量が手狭なんで、必要最低限のzvol確保しておいて、足りなくなったらちょっとづつ拡張していく作戦。

試しに# zfs set volsize=2T hddvol/scsivolみたいな感じで拡張してみましたところ、dmesgにこんな感じのログが。

GEOM_PART: zvol/hddvol/scsivol was automatically resized.
  Use `gpart commit zvol/hddvol/scsivol` to save changes or `gpart undo zvol/hddvol/scsivol` to revert them.

GEOM_PARTがサイズの変更を感知して、GPTを修正するかどうか?って聞いてるっぽい。因みに無視して進めようとすると、zvolが使用中とかでアクセス出来ません。

gpart commit zvol/hddvol/scsivolって実行すると、良きに計らってくれるようで。

追記:2020/12/16

容量拡張時には、FreeBSD側でgpart commitしておかないと、Mac側でのボリューム拡張に失敗する模様。

パーティションテーブルもMacの管理下だろう…と、volmode=devとかしてFreeBSD側からのgeom通したパーティション操作禁止したら嵌まった…。

カテゴリー: 未分類 | タグ: , | コメントする

今度こそnetatalkすてすて…?

obsolute Netatalk

netatalkが3.1.12(2018/12)からアップデートが止まったまま。

既に死亡宣告されたPhython2系に依存してる上に、portsとしても2020-09-15には削除予定とマークされてしまってます。

追記:4/27付でPython3.x対応にportsとして更新さてました。

少なくともFreeBSD上では、時々発生する原因不明のSignal11によるcore落ち、不定期におかしくなるEAなど問題山積み。

これはもう、今度こそ捨てるしか無いと決意。

今時のmacOS(Mojave)のafp/smb事情

macOS側としても、ファイル共有への接続がsmb優先になって久しく、このままafpは消えていくんじゃ無いかとも言われてます。

xNIX界隈のmacユーザーに対する認識も「もうsambaあれば十分でしょ?」って雰囲気を感じますが、そう簡単な話でもない。結論から言うと、今時のmacOSにとってsmbはafpを完全に置換え出来ていないし、たぶん今後もずっとそう。

恐らく使っているAPIに依存するのだと思うのですが、ローカルDBを持つアプリ(iTunesとかPhotosとかFinalCutProとか)なんかだと、ファイル共有上でまともに使えるのは、afpしか無いんですわ。

smbはというと、どうもローカルファイルシステムやafpより格下の扱い。ファイルパス指定でなんとなくsmb上のファイル指定できちゃったりするけど、そんなことするとDBに不具合続出。

そもそもそういうアプリは、アプリからファイル選択ダイアログ上開くとafp共有は見えても、smb共有はマウント済みの物も含めて選択出来なくなっています。

案1-ファイル共有経由のSparse image

そんなわけで苦肉の策として、smb上にSparse imageを置き、Sparse image内をAPFSでフォーマットして各ライブラリを配置することに。TimeMachineがやってるやり方ですね。

smb共有をマウントしてからSparse imageを又マウントする訳で、最初に開くまでえらく時間が掛かるんですが、iTunesでライブラリとしてSparse image内のディレクトリを指定しておくと、かってにsmb共有からマウント初めてくれるようです。

Sparse bandle imageとFinderのバグ?の罠

今時ならインクリメンタルバックアップ対応なSparse bandle imageでイメージファイル作成したいところですが、ここにFinder側?の罠が。

Sparse bandle imageで容量が増えてくると、bandsディレクトリ内のファイル数が膨大な数に増えていきます。

どうもね、macOSからsmb共有上にある1ディレクトリ数万件のディレクトリを開くと、smbの接続が強制的に切断されてしまいます。

Windows10からだとそんなことなかったので、どうにもmacOS(10.14.6/Mojave)側のバグ臭い。Catalinaだとどうなんでしょうね。使ってないから知らんけど。

で、Sparse bandle imageだとどうなるかというと…、

  • Finderからimageをダブルクリックして開こうとすると、マウント中にsmb共有が切断されて失敗する。(マウントできない)
  • バックアップしようとimageファイル自体をHDDなどにコピーしようとすると、コピー前にsmb共有が切断されて失敗する。(コピーできない)
  • ディスクユーティリティ.appからimageを開くとマウント出来る。
  • image内のファイルに張ったエイリアス経由でなら、問題なくマウントされる。
  • マウントさえ出来てしまえば、中のファイルアクセスには問題無さそう。

…と、こんな感じ。実用上は問題無さそうだけれども凄く気持ち悪い。

そんなわけでbandleじゃないSparse imageに。ZFSならブロック単位で変更点のスナップショット取ってくれるし。

案2-iSCSIを使う

まぁSparse imageでとりあえずは使えるんですが、ファイル共有の先のイメージファイル開いているもんだから「割と遅い」。

近頃のmacOSでは、互換性の高いafpを放り投げつつ、smbの対応も互換性は格下の扱い。そもそもAppleとしてネットワーク上のストレージどうしたいん?って考えてみると「ファイル共有」ではなくて、SANを使えってのが回答なのかと思い至る。

でもApple謹製のXsanだと個人で使うにはかなり敷居が高い。もっと手軽に…となるとiSCSIに行き着く。

これならOSから見れば、互換性の面ではローカルディスクと遜色ない。

iSCSIイニシエーター

macOS用で使えそうなのはこの二つ。フリーなのはiSCSIInitiatorなんですが、1年半くらい更新が無く、うちのMojaveにはエラーが出てインストールできませんでした。

ちょいお高いんですが、ちゃんとCatalinaまで対応してるglobalSANのを使いました。

GUIあって設定は簡単。

iSCSIターゲット

FreeBSDに付いてくるctld、ボリュームはいつものzfsで。

容量ケチりたいんで、zfs create -sVってして大きめにサイズ割り当てて見るも、後述のAPFS使うと台無し。

4TBの割当てして、2TB書込み>2TB消去>また2TB書込み…ってしようとしたら、zfs側の消費が4TBめい一杯まで増えてる感じ。

APFSではCoWみたいなことするから、APFS上に空き容量あっても読み書きしているうちにzfsの割当て使いきっちゃう様で…。

APFSのサイズ可変機能が便利

iSCSI上のボリュームはAPFSでフォーマットしました。なんでAPFSなのかというと、再フォーマット無しにパーティションサイズを可変できるから。

ディスクユーティリティ.appからはイマイチ操作しずらくコマンドラインのdiskutilの方が直感的に扱えるんですが、中身を維持したままリサイズ可能。十分な空き領域があるなら縮小も可能。

サーバー上の空き容量が心許ないので、いっぺんにiSCSI用に容量割当てするわけにも行かなかったんですが、これでNAS上のiSCSI領域割当てを使用状況に応じて可変出来ます。

そして結論

  • アプリのDB→iSCSI
  • ただのファイル→Samba(+vfs_fruit)
  • TimeMachine→Netatalk継続

こんな感じに

アプリのDB

iSCSIでちょびっとベンチマーク取ったら、Read系はかなり早いんですがランダムライトが異様に遅い。それと、ほぼ毎日macを持ち出してるんですが、その時のmount/unmountもちょっとやりにくい。

使い勝手の面から行くとSparse imageで行きたい所ですが…って、そうするつもりだったんですが、ちょっとUnmountせずにLAN切断しちゃったらSparse imageが吹っ飛んだ…。

それはもう、FirstAidで復旧も出来ずマウントすら出来ないくらい完膚なきまでに…。(壊れる直前のsnapshotあったから事なきを得ましたが…)

そういえばTimeMachineも、数ヶ月に1回くらいのペースで壊れてたんですよね。バックアップなので、またオリジナルから取り直せば良いや…と、余り深刻に考えていませんでしたが。

そんなわけで、アプリのライブラリ関係はiSCSIに。

ただのファイル

そして特に問題の出ない、ただのファイル置き場はSamba(+vfs_fruit)で。

ただね、4.10はまぁ問題なく動いてますが、4.11入れるとmacOSからのフォルダ単位のコピーが失敗したりとか。

具体的にはコピー終わってもフォルダが半透明表示のまま開けない。何かのメタデータ更新失敗している臭い?

追っかけるの面倒だったので、さっくり4.10に戻しました。

どうもこちらも予断を許さない模様。

TimeMachine

巷では「Sambaで置換え可」なんて言われてますが…、

初回作成はSambaから出来ないとか。(2回目以降はSambaからOK)
同じくハマりました。

FreeBSD限定かもしれませんが、ちょっと怖くてTimeMachineをSambaに移行出来ませんでした。


そんなわけでだいぶNetatalk依存減らせましたが、まだまだ全廃には至らず。

う〜ん。

カテゴリー: 未分類 | タグ: , | 1件のコメント

SMR方式という毒

NASのRAIDに入ってるHDDのうちの一つ、もう2年くらい前に買ったST6000DM003、こいつが今更ながらに瓦書き方式と言われるSMRだったということに今更に気付きました。

当時はSMRという言葉すら知らなくて、リビルドする時、異様に遅くて「え?」ってなったんですが、リビルド終わったらそのまま気にしてませんでした。

「普段使い」では殆ど気にならないんですが、ちょっとNASの中身を整理しようと1TBほどローカルHDDに吸い上げて、またNASへ書き戻し…ってやろうとしたら明らかに異常に遅いわけで。

どれくらい遅いかというと、通常30MB/sくらい出てたのがヒトケタMB/sあたりを不安定にふらふらする位の遅さ。しかも書込み中に、同じHDDを参照している他のサービスが次々とタイムアウトによるエラーが頻発。

リビルドは私の時はうまく終わったけれど、場合によってはリビルド中にタイムアウト起こして、そのままHDDのリンク切断、最悪の場合RAIDセット破損…とか。

そんなわけで、巷では「普通に使う分にはさして問題ない」ってやたら強調されているような気がするSMR方式のHDDですが「RAIDでは絶対に使ってはいけないHDD」なわけです。

SMR化を進めるHDDメーカー

安いデスクトップ用のHDDを買って、低い信頼性をRAIDである程度の補償する…っていうのが、コンシューマ的NASの使い方だったんですが、もうそれも出来なくなるわけです。

RAIDで使うなら、プレミア価格の高性能・高信頼HDDを買えと。

HDDメーカーとしては差別化できて願ったり叶ったりなんでしょうね。

カテゴリー: 未分類 | タグ: | コメントする