2012年3月7日水曜日

連載「ZFS on Linux」第2回~ZFS 領域の作成とマウント~

サイオステクノロジー 鎌田です。最近納豆にハマっています。納豆おいしいです。

さて、お待たせしました。2回目の「ZFS on Linux」の連載記事です。今回は ZFS 領域を作ろうと思います。バックナンバーはこちら。

まず、ZFS 領域とするディスクを追加します。ここでは /dev/sdb とします。ZFS 領域を作るには、まず ZFS プールという領域の集合体みたいなものを作らなければならないため、以下のようなコマンドを実行します。

# zpool create zfspool /dev/sdb
invalid vdev specification
use '-f' to override the following errors:
/dev/sdb does not contain an EFI label but it may contain partition
information in the MBR.

エラーが出てしまいました。内容から、おそらくディスク自体にラベルがついていないといけないようです。ここでは parted で gpt ラベルを付与しました。

# parted /dev/sdb
(parted) mklabel gpt
(parted) quit

再度、ZFS プールの作成を試みます。

# zpool create zfspool /dev/sdb

エラーが出ませんでした。おそらく ZFS プールが作成できたようです。df コマンドを実行してみます。

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
 :
zfspool                4096384         0   4096384   0% /zfspool

ちゃんとできているようです。

次は、ZFS プールの容量を増やしてみます。同じように、ZFS 領域とするディスクを追加し、ラベルを付与します。ここでは /dev/sdc と /dev/sdd を追加しました。そして、次のようにコマンドを実行します。

# zpool add zfspool /dev/sdc /dev/sdd
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
 :
zfspool               12289408         0  12289408   0% /zfspool

ちゃんと増えました。

それでは、ZFS 領域を作成してみます。ZFS 領域は次のコマンドを実行すると作成できます。

# zfs create zfspool/example
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
 :
zfspool               12289408       128  12289280   1% /zfspool
zfspool/example       12289408       128  12289280   1% /zfspool/example

ちゃんと作成できました。

df コマンドの実行結果を見ていただくとわかるように、ZFS プールから ZFS 領域を作ると、使用可能サイズが ZFS プールと同じになっています。これは ZFS の特徴の一つで、それぞれの ZFS 領域で情報を格納する際、ZFS プールの容量を使用するため、ZFS 領域自体に容量を持ちません。なので、こういう表記になっているんですね。

さて、ZFS 領域が作成できることはわかりましたが、マウントポイントが ZFS プールの下、/zfspool/example というようになってしまうので、いまいち使いづらい状態です。なので、ZFS 領域を任意のマウントポイントに指定しようと思います。

# mkdir /home/backup
# zfs create zfspool/backup
# zfs set mountpoint=/home/backup zfspool/backup

上記のコマンドを実行することでマウントポイントを指定できます。が、このままではマウントされていません。次のコマンドを実行することでマウントすることができました。

# zfs mount -a
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
 :
zfspool               12289280         0  12289280   0% /zfspool
zfspool/example       12289280         0  12289280   0% /zfspool/example
zfspool/backup        12289280         0  12289280   0% /home/backup

ちゃんと指定したマウントポイントに ZFS 領域をマウントすることができました!

今回はここまでです。次回は重複削除等、ZFS ならではの機能を触っていこうと思いますので、どうぞよろしくお願いいたします。

1 件のコメント:

  1. ZFS使いたいけど、FreeBSD知らないしな...と思っていたところだったので、実に参考になりました。手持ちのHDD3台でraidz1を設定して使用中です。ありがとうございました。

    返信削除