Solaris 資料一覧

ZFSストレージプール作成

2008/8/21更新

対応バージョン: 10 x86

ZFSストレージプールはRAID-Z、ミラーのほか、単一のデバイスでも構成することができる。

以下、RAID-Zを中心にそれぞれの方式についてストレージプールの作成手順を示す。

プールに含めるデバイスは通常物理デバイス(例:c0t0d0)を使用するが、試験用に通常のファイルを使用することもできる。

ここでは全て通常のファイルを使用することとする。

RAID-Z

RAID-Zはシングルパリティのraidz1、ダブルパリティのraidz2のいずれかが指定できる。

両方とも手順は同じなのでraidz2について説明する。

準備

まずプールを構成するファイルを作成する。

# mkdir /zfs
# mkfile 1g /zfs/raidz-1
# mkfile 1g /zfs/raidz-2
# mkfile 1g /zfs/raidz-3

ストレージプール作成

次にストレージプールを作成する。

# zpool create rz2 raidz2 /zfs/raidz-1 /zfs/raidz-2 /zfs/raidz-3

ストレージプールの状態は以下の方法で確認できる。

# zpool list
NAME    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
rz2    2.98G    267K   2.98G     0%  ONLINE     -

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: none requested
config:

        NAME              STATE     READ WRITE CKSUM
        rz2               ONLINE       0     0     0
          raidz2          ONLINE       0     0     0
            /zfs/raidz-1  ONLINE       0     0     0
            /zfs/raidz-2  ONLINE       0     0     0
            /zfs/raidz-3  ONLINE       0     0     0

これでストレージプールが/rz2にマウントされファイルシステムとして使用可能になる。

# df -h /rz2
Filesystem     size   used  avail capacity  Mounted on
rz2            983M    24K   983M     1%    /rz2

アンマウントする時は以下のようにする。

# zfs unmount rz2

別プール作成

作成したプールから別のプールを切り出すには以下のようにする。

# zfs create rz2/p1
# df -h -F zfs
Filesystem   size   used  avail capacity  Mounted on
rz2          983M    25K   983M     1%    /rz2
rz2/p1       983M    24K   983M     1%    /rz2/p1

こうすることで同じストレージプール内に独立したファイルシステムを生成することができる。

マウントポイント変更

マウントポイントをデフォルト以外の場所にしたい場合は以下のようにする。

# mkdir /var/p1
# zfs set mountpoint=/var/p1 rz2/p1
# df -h -F zfs
Filesystem   size   used  avail capacity  Mounted on
rz2          983M    24K   983M     1%    /rz2
rz2/p1       983M    24K   983M     1%    /var/p1

ストレージプール削除

ストレージプールを削除するには以下のようにする。

# zpool destroy rz2

マウントは自動的に解除されストレージプールが削除される。使用しなくなったファイルは別のプールに割り当てたり他のファイルシステムとして使用したりできる。

なおマウントポイントは自動では削除されないので適宜削除する。

ミラー

ミラーは2つ以上のデバイスの複製を作る構成である。サイズの違うファイルを使用することもできるが、その場合は一番小さいファイルのサイズに揃えられる。

# mkfile 1g /zfs/mirror-1
# mkfile 1g /zfs/mirror-2

# zpool create mi mirror /zfs/mirror-1 /zfs/mirror-2

# zpool list
NAME    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
mi     1016M     88K   1016M     0%  ONLINE     -

# zpool status mi
  pool: mi
 state: ONLINE
 scrub: none requested
config:

        NAME               STATE     READ WRITE CKSUM
        mi                 ONLINE       0     0     0
          mirror           ONLINE       0     0     0
            /zfs/mirror-1  ONLINE       0     0     0
            /zfs/mirror-2  ONLINE       0     0     0

# df -h /mi
Filesystem     size   used  avail capacity  Mounted on
mi             984M    24K   984M     1%    /mi

単一デバイス

単一デバイスでストレージプールを作る場合、物理デバイスにまたがる冗長性は持てないがZFSの持つ様々な特徴は生かすことができる。

# mkfile 1g /zfs/gen

# zpool create gen /zfs/gen

# zpool list
NAME    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
gen    1016M     88K   1016M     0%  ONLINE     -

# zpool status gen
  pool: gen
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        gen         ONLINE       0     0     0
          /zfs/gen  ONLINE       0     0     0

# df -h /gen
Filesystem     size   used  avail capacity  Mounted on
gen            984M    24K   984M     1%    /gen