Solaris/ZFS
USBメモリでZFS †
volfsサービスを停止する。 †
# svcs -a|grep volfs online 9:13:59 svc:/system/filesystem/volfs:default # svcadm disable volfs # svcs -a|grep volfs disabled 9:50:13 svc:/system/filesystem/volfs:default
USBメモリを差し込むみ認識されたか確認 †
# rmformat デバイスを探しています... 1. Logical Node: /dev/rdsk/c1t0d0p0 Physical Node: /pci@0,0/pci15ad,1976@7,2/storage@1/disk@0,0 Connected Device: BUFFALO ClipDrive 1.00 Device Type: Removable 2. Logical Node: /dev/rdsk/c2t0d0p0 Physical Node: /pci@0,0/pci15ad,1976@7,2/hub@2/storage@1/disk@0,0 Connected Device: USB Flash Memory: 0.00 Device Type: Removable 3. Logical Node: /dev/rdsk/c3t0d0p0 Physical Node: /pci@0,0/pci15ad,1976@7,2/hub@2/storage@2/disk@0,0 Connected Device: TOSHIBA TransMemory 1.00 Device Type: Removable 4. Logical Node: /dev/rdsk/c4t0d0p0 Physical Node: /pci@0,0/pci15ad,1976@7,2/hub@2/storage@3/disk@0,0 Connected Device: USB 2.0 Flash Disk 0.00 Device Type: Removable 5. Logical Node: /dev/rdsk/c4t0d1p0 Physical Node: /pci@0,0/pci15ad,1976@7,2/hub@2/storage@3/disk@0,1 Connected Device: USB 2.0 Flash Disk 0.00 Device Type: Removable
USBメモリをフォーマット †
# format -e Searching for disks... The device does not support mode page 3 or page 4, or the reported geometry info is invalid. WARNING: Disk geometry is based on capacity data. The current rpm value 0 is invalid, adjusting it to 3600 done c4t0d1: configured with capacity of 43.00MB AVAILABLE DISK SELECTIONS: 0. c0d0 <DEFAULT cyl 1302 alt 2 hd 255 sec 63> /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0 1. c0d1 <VMware V-0000000000000000-0001-2.00GB> /pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0 2. c1t0d0 <BUFFALO-ClipDrive-1.00 cyl 245 alt 2 hd 64 sec 32> /pci@0,0/pci15ad,1976@7,2/storage@1/disk@0,0 3. c2t0d0 <DEFAULT cyl 959 alt 2 hd 64 sec 32> /pci@0,0/pci15ad,1976@7,2/hub@2/storage@1/disk@0,0 4. c3t0d0 <TOSHIBA-TransMemory-1.00 cyl 243 alt 2 hd 64 sec 32> /pci@0,0/pci15ad,1976@7,2/hub@2/storage@2/disk@0,0 5. c4t0d0 <DEFAULT cyl 503 alt 2 hd 64 sec 32> /pci@0,0/pci15ad,1976@7,2/hub@2/storage@3/disk@0,0 6. c4t0d1 <USB2.0-FlashDisk-0.00 cyl 43 alt 2 hd 64 sec 32> /pci@0,0/pci15ad,1976@7,2/hub@2/storage@3/disk@0,1 7. c6d0 <VMware V-0000000000000000-0001-2.00GB> /pci@0,0/pci-ide@7,1/ide@1/cmdk@0,0 8. c6d1 <VMware V-0000000000000000-0001-2.00GB> /pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0 Specify disk (enter its number):
該当の番号を選択する。
fdiskを実行 †
既存のパーティションを削除 †
表示されたデバイス名をもとに fdisk コマンドにてパーティションを切り直します。
(A) Partition 情報の表示を行う。
(B) 3. Delete a partition で既存のパーティションを消去する。
※注意:既存データは全て消えます
Total disk size is 962 cylinders Cylinder size is 2048 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active DOS-BIG 1 961 961 100 SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection:3
Solaris用のパーティションを作成 †
(C) 1. Create a partition で Solaris 向けパーティションを作成。 ※ Type はSolaris2 を選択し容量は 100% を割り当てる。 (D) 5. Exit (update disk configuration and exit) を選択して終了。
Total disk size is 962 cylinders Cylinder size is 2048 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active Solaris2 1 961 961 100 SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection
label の作成 †
※ スライス0番に全容量をアサインし SMI Label を選択するのがミソです。
format> label [0] SMI Label [1] EFI Label Specify Label type[0]: 0 Ready to label disk, continue? y
zfsプールを作成する。 †
-bash-3.00# zpool create -f zfs raidz c0d1 c6d0 c6d1 c1t0d0p0 c2t0d0p0 spare c3t0d0p0 c4t0d0p0 -bash-3.00# zpool status プール: zfs 状態: ONLINE スクラブ: 何も要求されませんでした 構成: NAME STATE READ WRITE CKSUM zfs ONLINE 0 0 0 raidz1 ONLINE 0 0 0 c0d1 ONLINE 0 0 0 c6d0 ONLINE 0 0 0 c6d1 ONLINE 0 0 0 c1t0d0p0 ONLINE 0 0 0 c2t0d0p0 ONLINE 0 0 0 スペア c3t0d0p0 AVAIL c4t0d0p0 AVAIL エラー: 既知のデータエラーはありません
zpool †
ただのプール 1ディスク以上 mirror はraid1 2ディスク以上 raidz はシングルパリティの冗長性を持った構成で RAID5と同等 3ディスク以上 raidz2 は,シングルパリティではなく,ダブルパリティによる冗長構成でプールを作成する事が出来ます.一般的には RAID6 と呼ばれるものと同等 4ディスク以上
raidz2のテスト †
スペアのドライブを2台用意してみました。
# # zpool create -f zfs raidz2 c0d1 c6d0 c1t0d0p0 c2t0d0p0 c3t0d0p0 spare c4t0d0p0 c6d1 # zpool status プール: zfs 状態: ONLINE スクラブ: 何も要求されませんでした 構成: NAME STATE READ WRITE CKSUM zfs ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c0d1 ONLINE 0 0 0 c6d0 ONLINE 0 0 0 c1t0d0p0 ONLINE 0 0 0 c2t0d0p0 ONLINE 0 0 0 c3t0d0p0 ONLINE 0 0 0 スペア c4t0d0p0 AVAIL c6d1 AVAIL エラー: 既知のデータエラーはありません
障害を仮定してc2t0d0p0を無理やり引っこ抜く †
スペアのディスクが自動で挿入される。
# zpool status プール: zfs 状態: DEGRADED 状態: 1 つまたは複数のデバイスの再同期化が進行中です。 プールはおそらく縮退状態で動作を継続します。 アクション: 再同期化が完了するまでお待ちください。 スクラブ: resilver が 0h0m で進行中、99.91% 完了、0h0m 開始待ち 構成: NAME STATE READ WRITE CKSUM zfs DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c0d1 ONLINE 0 0 0 c6d0 ONLINE 0 0 0 c1t0d0p0 ONLINE 0 0 0 spare DEGRADED 0 0 0 c2t0d0p0 削除 0 0 0 c4t0d0p0 ONLINE 0 0 0 c3t0d0p0 ONLINE 0 0 0 スペア c4t0d0p0 INUSE 現在使用中です c6d1 AVAIL エラー: 既知のデータエラーはありません
新しいディスクを挿入を仮定して、c2t0d0p0を再度差し込む †
自動で復旧してくれる。
# zpool status プール: zfs 状態: ONLINE スクラブ: Wed Mar 18 13:48:32 2009 上で 0 エラーが発生した 0h0m のあとの resilver completed構成: NAME STATE READ WRITE CKSUM zfs ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c0d1 ONLINE 0 0 0 c6d0 ONLINE 0 0 0 c1t0d0p0 ONLINE 0 0 0 c2t0d0p0 ONLINE 0 0 0 c3t0d0p0 ONLINE 0 0 0 スペア c4t0d0p0 AVAIL c6d1 AVAIL エラー: 既知のデータエラーはありません
スナップショット †
スナップショットを簡単に取る事ができて、リストアも簡単なのでバックアップは必要ないみたいです。
スナップショットの作成 †
スナップショットを作成するにはzfs snapshotコマンドを使います。tank/homeのスナップショットを作成します。
# zfs snapshot tank/home@snapshot1
スナップショットは数秒で作成されます。スナップショットを作った時点ではディスク容量は消費せず、ファイルを更新するたびに容量を消費していきます。
作成したスナップショットには/export/home/.zfs/snapshot/からアクセスできます。このディレクトリはlsコマンドでは見えないので注意してください(-aオプションでも見えません)。
ある時点のスナップショットに戻す †
ファイルシステムをある時点のスナップショットに戻すにはzfs rollbackコマンドを使います。
# zfs rollback tank/home@snapshot1
スナップショットを削除する †
スナップショットを削除するにはzfs destroyコマンドを使います。
# zfs destroy tank/home@snapshot1
バックアップ・リストア †
バックアップ・リストアにはzfs send, zfs recvコマンドを使います。(以前はbackup/restoreというコマンドでしたがsend/receiveに変更されました。)
バックアップ †
zfs sendコマンドでバックアップしたいスナップショットを指定します。
# zfs send tank/home@snapshot1 > /backup/home.img
差分バックアップ †
差分バックアップを取る場合は-iオプションと2つのスナップショットを指定します。
# zfs send -i tank/home@snapshot1 tank/home@snapshot2 > /backup/home_sub.img
リストア †
zfs sendコマンドで出力したバックアップデータをzfs receiveコマンドでリストアします。
# zfs receive tank/home < /backup/home.img
ZFS ストレージプールを移行する †
こんなのもできるみたいですが使い方がいまいち分かりませんでした。 http://docs.sun.com/app/docs/doc/819-6260/gbchy?a=view