
ZFS on Ubuntu 16.04 LTSがリリースされています
いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
ZFSは大容量のファイルサーバーに適した機能を備えています。今やディスクは1Tが簡単に手に入る時代ですから、このような大容量のファイルシステムに適しています。ZFSには重複排除機能があることから、同じファイルが多数置かれる、メールサーバーや、社内や家庭のサーバーとして優れています。
■Ubuntu Server 16.04 LTSでのZFSのインストール
これだけです。標準サポートとなったので、びっくりするほど簡単で、インストール時間も短くなっています。
$ sudo apt-get update
$ sudo apt install zfsutils-linux
インストール後のZFSバージョンの確認
$ sudo dmesg | grep ZFS
[ 620.474754] ZFS: Loaded module v0.6.5.6-0ubuntu3, ZFS pool version 5000, ZFS filesystem version 5
$ sudo dmesg | grep SPL
[ 620.362952] SPL: Loaded module v0.6.5.6-0ubuntu1
Ubuntu wikiのZFS解説ページへ(En)
OpenZFSは、新世代のファイルシステムです。Linux上のOpenZFSは"zfsonlinux.org"プロジェクトが実装し、Ubuntu,RHL,CentOS,OpenSUSEなど代表的な配布仕様(ディストリビューション)をサポートしています。OpenZFSは他のOSにも移植され、illiumos、FreeBSD、Mac OS Xをサポートしており、さらにその先に派生するOSでも利用できるものがあります。
んで、早速使ってみたらこれが本家(OracleまたはnativeZFS)と微妙にオプションが違うので悩みまくりました。結局、毎度ながらGitHubのリリースノートちゃんと読めと。。。以下にみなさんが迷わないようにまとめときます。
■既存のpoolは使えるか->Yes
zfs 0.8.0にモジュールアップデート(このリリースからなんとsplが消えてます。と、いうかzfsに吸収)後、いつものようにzfs upgradeかまします。
その後zpool set feature@encryption=on pool(これは必要ないかも)。これで下準備OK
■既存poolに適当に暗号化filesystem切り出します
が、ここで要注意。
1.本家の-o keysource=passphrase,promptは使えません。おこられちゃいます。
2.で、zfs create -o encryption=on -o keyformat=passphrase -o keylocation=prompt pool/dataset とする必要があります。
3.パスワード入力すると自動でマウントされます。が、umountして、mountしなおしてもパスワードは聞かれずマウントされちゃいます???
本家のマニュアルにはmountされるときにパスワード聞かれるって書いてあるのですが。。。
4.で、悩みまくってOSをrebootしてzfs mount pool/datasetするとなんと、
cannot unmount 'zfs/dataset': not currently mountedのエラーが。
5.GitHUB読むとわかりました。ZFS on linuxでは暗号化keyを明示的にload/unloadする必要があります。load済のときは再マウントのときにパスワードは聞かれません。OS再起動すると当然暗号化keyはロードされてないのでこのエラーになるんですね。
6.で、umountした場合には明示的に
zfs unload-key pool/dataset
OS再起動した場合や、暗号化keyをunloadしてる場合にはzfs load-key pool/datasetかませる必要があります。パスワードはload-keyしたときに聞かれます。
ま・と・め
なので、umountしてunload-keyかましてない場合には誰でもzfs mount -aでmountできちゃいますので注意が必要です。
まだほやほやで日本語はおろか英語でも解説してるところがなく。。。我慢できずに使って人柱となりました。
ちゃんちゃん。