アットウィキロゴ

zfs管理

ZFSをいじる

ZFSはSolaris10から追加されたファイルシステムで、これまでのUFSとの違いはそれぞれの領域のサイズを動的に変更可能。(UFSではディスクのスライスを切りなおしていた。)

ZFS基本

ZFSはまずZpoolというプール領域を作成し、そこから必要な領域を宣言して使用する。
rootで zpool listとすると現在のZpoolのリストが表示される。

Diskを追加

まず、Diskを追加する。
VPCを使っているので、簡単に追加できる。
ハードディスク2として他のHDDイメージを作成する。
とりあえず、USB接続のHDDに作成した。

VPCの再起動後、端末エミュレータで
devfsadm もしくは
disks
を実行する。
formatを実行してディスクが2つ認識していれば完了。
ここで、ディスク1は「c0d0」ディスク2は「c0d1」となっていた。

formatコマンドを実行し、追加した「c0d1」のディスクを選択し、
fdisk [ENTER]
format> fdisk
No fdisk table exists. The default partition for the disk is:

  a 100% "SOLARIS System" partition

Type "y" to accept the default partition,  otherwise type "n" to edit the
 partition table.
と聞かれるので、「y」を入力。
これで全領域をSolaris用パーティションにできたので、今度はスライスを作成。
partition> p
Current partition table (original):
Total disk cylinders available: 2085 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 2084       15.97GB    (2085/0/0) 33495525
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 alternates    wm       1 -    2       15.69MB    (2/0/0)       32130

partition> 0
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0

Enter partition id tag[unassigned]: root
Enter partition permission flags[wm]: 
Enter new starting cyl[3]: 
Enter partition size[0b, 0c, 3e, 0.00mb, 0.00gb]: 2082c
partition> p
Current partition table (unnamed):
Total disk cylinders available: 2085 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders        Size            Blocks
  0       root    wm       3 - 2084       15.95GB    (2082/0/0) 33447330
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 2084       15.97GB    (2085/0/0) 33495525
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 alternates    wm       1 -    2       15.69MB    (2/0/0)       32130

partition> l
Ready to label disk, continue? y

partition> q

ここでは クラスタ0~2までをシステムで使用していたので、3~残り全部をスライス0に割り当てる。
最後に 「label」で登録して「q」を数回で終了。

ミラーの登録は
# zpool - attach rpool c0d0s0 c0d1s0

すると
# zpool status
  プール: rpool
 状態: ONLINE
状態: 1 つまたは複数のデバイスの再同期化が進行中です。
        プールはおそらく縮退状態で動作を継続します。
アクション: 再同期化が完了するまでお待ちください。
 スクラブ: resilver が 0h0m で進行中、0.01% 完了、45h26m 開始待ち
構成:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c0d0s0  ONLINE       0     0     0
            c0d1s0  ONLINE       0     0     0

エラー: 既知のデータエラーはありません
となり、rpoolが c0d0s0,c0d1s0からなるミラーディスクになったことがわかる。
しばらくは同期するので、ほおっておく。(c0d1はこちらの環境で外付けのHDDを使用したため、16GB程度でも1時間くらいかかった)
もし障害が発生したら、
zpool detach rpool 壊れたディスク
としてハードウェア交換後に再度 Attachしてあげれば、再同期が始まる。

Rootドライブではミラーしかできないが、新しくドライブを増設し、root領域以外のユーザ領域ようであれば、コンカチディスク(Concatenate Disk)や、3台以上でRAIDZ1(Raid5相当)、4台以上でRaidz2(Raid6?パリティーを2か所)も作成できる。
作り方は、
zpool create プール名 [raidz|raidz1|raidz2] ディスク1 ディスク2 .....
コンカチディスクの場合はプール名の後そのままディスクを列記。







アクセス数  -
最終更新:2009年05月13日 01:26
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。