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