2020年7月15日追記
この記事の執筆から7年が経過し、ZFS on Linuxは0.8.4までバージョンが進みましたが、以下に記載の3つのポイントはまだまだ有効なようです。ご活用くださいませ。
先日(3月27日)、ZFS on Linux 0.6.1がリリースされました。
リリースメールには
“ready for wide scale deployment on everything from desktops to super computers”
と書かれており、「デスクトップからスーパーコンピューターまで」安心して使用できる段階に達しているとされています。
この件はいくらかのIT系ニュースサイトでも報じられたため、ZFS on Linuxを試してみたくなった方も結構いるのではないではないでしょうか?
0.6.1リリースに伴い、主要なディストリビューション向けのパッケージレポジトリも用意されたため、導入のためのハードルはかなり下がっています。
例えば、CentOSで導入するために実行する必要のあるコマンドは以下の2行のみです。
(あらかじめカーネルのソースおよびカーネルのコンパイルに必要なツール類は必要ですが)
yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-2.el6.noarch.rpm yum install zfs
しかし、ZFS on Linuxをただ使うだけではなく快適に運用するためには、ZFS on Linux特有の気を付けるべきポイントがいくつかあります。
今回はそれを3つご紹介したいと思います。
ポイント1. Advanced Format (AFT)なドライブには-o ashift=12
最近多くのHDDで物理セクターが4KBのいわゆるAdvanced Format (AFT)が採用されていますが、これらを使用する場合はzpool createを行う際に-o ashift=12を指定してください。
例えば以下のような感じです。
zpool create -o ashift=12 tank mirror sda sdb
これにより、ashiftに標準の9ではなく12が指定され、
標準の512(=2^9)Bではなく4096(=2^12)Bのセクタサイズでプールが作成されます。
SSDを使用する際も-o ashift=12を指定した方がいいかもしれませんね。
AFTに関するZFS on Linux公式のQ&Aはこちらをそうぞ。
ポイント2. デバイスの指定はby-id名で
ZFS on Linuxではsdaやsdbといったデバイス名を用いて、
zpool create tank sda sdb
という感じでデバイスを指定することも可能なのですが、これらのデバイス名は容易に変わりうるので、あくまで実験用、開発用のプールでの利用にとどめることが推奨されています。
ではどうすればいいかというと、個人レベルのようなドライブ10台未満の小さな構成では、
/dev/disk/by-id/で提供されているby-id名での指定がお勧めです。
例えば、以下のようにデバイスを指定します。
zpool create tank scsi-SATA_Hitachi_HTS7220071201DP1D10DGG6HMR
このほかにもby-path名を使ったデバイス指定方法もありますが、大規模構成向けです。
詳しくはこちらのZFS on Linux公式のQ&Aをどうぞ。
ポイント3. sharesmbを使うなら事前にSambaの設定を
ZFS on LinuxもSolarisのZFS同様、sharesmbで以下のように簡単にSMB共有を行うことができるようになっています。
zfs set sharesmb=on tank/home
しかし、SolarisのsharesmbがSolaris独自のSMB実装を利用しているのに対し、
ZFS on LinuxのsharesmbはSambaに頼っているため、事前に以下の2つの設定が必要です。
- Sambaにlocalhostをリッスンさせる。
多くのディストリビューションにおいてデフォルトでそうなっているそうです。 - usershare機能がオンにする。
詳しくはzfsのmanページを参照してください。
以上、ZFS on Linuxを快適に運用するための3つのポイントでした。
ピンバック:ZFS on Linuxを快適に使うための3つのポイント - Fluorosの技術メモ : ちゅどん道中記
ピンバック:ZFS on LinuxとSambaでシャドウ・コピーしてみる - Fluorosの技術メモ