ZFS本を読んだ

ZFS 仮想化されたファイルシステムの徹底活用

ZFS 仮想化されたファイルシステムの徹底活用

正直読む前はファイルシステムだけで1冊の本を買うのはどうなんだろうと思っていたけど、流石に1冊書くだけのボリュームでかなり良かった。
構成としては、ZFSの概要、基本的な各種オペレーション、ZFSを使ったHA構成などの実例、内部の詳細、企業などのでの適用例。およそファイルシステムについての本として、網羅するべき項目をカバーしており隙がない。
ZFSはそもそも、LinuxUNIXにおけるLVMとファイルシステムを同じレイヤで実現している。LVMを使ったことがある人ならばファイルシステムとの二重構造を煩雑に感じたことがある人も多いはず。やりたい事は自由にディスクを束ねてその上で場所を意識することなくファイルを置きたいという一つの事のはずなのに、後付け概念でLVMを導入したものだから一つのことをやるにも2度操作が必要だったり、用語が一々独特だったりといい事が無いと常々思っていた。ZFSがストレージプールという概念でそれを統合したとは聞いていたが、本書を読んでより一歩進んでファイルシステムとしてかなり自由度が高く使えるものだと思った。一つのレイヤに統合したおかげでプールからファイルシステムとして切り出すときに、LVMから切り出したボリュームにnewfsするよりずっと敷居が低く操作ができる。どのファイルシステムにどれだけ使ったからプールの空き容量がこれだけ減る、などといった事を考える必要がない。quotaで仕切りを入れることもできるがプール全体を個々のファイルシステムで共有しているようなイメージだ。
各種オペレーションではいわゆるマニュアル的操作を羅列しているのだけど、ファイルシステムは物が大きいだけに個別の操作を習熟しないまま導入してしまいかねないのでここまで書いてあるのは便利だと思った。
次の構成例としてはLinuxのHA構成をとったときの共有ディスクとしてZFSを利用するというもの。Linux側でのHA構成の作り方も順を追って説明しているので、作ったことが無い人でも再現できるほどだろう。但し本題ではないので、実際HA構成をとるとなると別のドキュメントなりを読む必要はあるだろう。
ZFSの内部構造の詳細については、新しい概念が多いファイルシステムだけにかなり踏み込んで解説がしてある。個人的な印象だが、Solaris(古くはSunOS)の管理者を長くやってきた人達はソースを参照することで問題が解決できない状況が多かったため、逆にシステムの動きをモジュールレベルでよく把握しているのではないかと思っている。Linuxから入った(私のような)人間だとすぐに変わる内部構造を深く勉強するよりは、コードを追いかけてとりあえず原因を探ってしまいがち。Solaris Internalsを例に挙げるまでもなく経験豊富なSolaris使いは、半端なLinux使いよりも遥かにdeepだ。この項で説明されているZFSの内部動作についても、一般的なLinux使いがファイルシステムについて理解しているよりも遥かに詳細だろう。ソースコードのほとんどが簡単に参照可能になった今でも内部を詳細に理解するadmin文化は生き残っているのかな、と思った。
さて、この本を読んで自宅のストレージをZFSにしたくなったのだが、ストレージヘッドに特化した小さな箱は無いものか。