RAID1をします。 2つのHDDで、fstypeをRAIDにして、同じ構成でパーティション作成。 /etc/raid0.confは以下のようにした。
START array # numRow numCol numSpare 1 2 0 START disks /dev/sd1e /dev/sd2e START layout # sectPerSU SUsPerParityUnit SUsPerReconUnit RAID_level 128 1 1 1 START queue fifo 100
RAID構成開始。
# raidctl -C /etc/raid0.conf raid0 # raidctl -I 100 raid0 # raidctl -iv raid0 Initiating re-write of parity Parity Re-write status: 7% |** | ETA: 12:04 \
parity書きこみ完了。 いろいろチェックしてみよう。
# raidctl -p raid0 /dev/raid0d: Parity status: clean # raidctl -s raid0 Components: /dev/sd1e: optimal /dev/sd2e: optimal No spares. Component label for /dev/sd1e: Row: 0 Column: 0 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 41 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 41 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete. # raidctl -g /dev/sd1e raid0 Component label for /dev/sd1e: Row: 0 Column: 0 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 43 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 # raidctl -g /dev/sd2e raid0 Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 45 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0
あとは、raid0のdisklabelをお好みで編集すればOK。
再構築のテストのため、failと見せかける。
# raidctl -f /dev/sd1e raid0 # raidctl -s raid0 Components: /dev/sd1e: failed /dev/sd2e: optimal No spares. /dev/sd1e status is: failed. Skipping label. Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 74 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete.
再構築開始。
# raidctl -B raid0 # raidctl -s raid0 Components: /dev/sd1e: reconstructing /dev/sd2e: optimal No spares. /dev/sd1e status is: reconstructing. Skipping label. Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 74 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: clean Reconstruction is 23% complete. Parity Re-write is 100% complete. Copyback is 100% complete.
しばらくすると完了する。
RAIDがfailしたのだが、HDDそのものを認識しなくなったことがあったので、 片側のHDDを交換してRAID再構築したときの記録。
# raidctl -s raid0 Components: /dev/sd1e: failed /dev/sd2e: optimal No spares. /dev/sd1e status is: failed. Skipping label. Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 145 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete.
元のHDDは18GBだったが、 交換する新しいHDDは、
Seagate Barracuda 36ES2 ST336938LW 36.9GB(U/160 SCSI) 7200rpm シークタイム8.9ms
である。このうちの18GBを利用して、RAID1を構成することにした。
# mv /etc/raid0.conf /etc/_raid0.conf
として、boot時にRAIDしないようにする。 あと/etc/fstabも修正。 それから、shutdownして、物理的にHDDの交換。 壊れてるHDD(sd1,18GB)をはずして、同じ位置にSCSI IDを合わせてから装着。 そして、boot。
# raidctl -c /etc/_raid0.conf raid0 raidctl: ioctl (RAIDFRAME_CONFIGURE) failed: Invalid argument
-cオプションだとだめらしい。
# raidctl -C /etc/_raid0.conf raid0 # raidctl -s raid0 Components: /dev/sd1e: optimal /dev/sd2e: optimal No spares. Component label for /dev/sd1e: Row: 24 Column: 32 Num Rows: 344 Num Columns: 320 Version: 0 Serial Number: 0 Mod Counter: 149 Clean: No Status: 0 sectPerSU: 17941695 SUsPerPU: 17366667 SUsPerRU: 1753 RAID Level: blocksize: 8 numBlocks: 5 Autoconfig: Yes Root partition: Yes Last configured as: raid256 Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 149 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: DIRTY Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete.
sd1eの情報がめちゃくちゃである。
元のシリアル情報を与える。
# raidctl -I 100 raid0
# raidctl -u raid0 # raidctl -c /etc/_raid0.conf raid0 # raidctl -s raid0 Components: /dev/sd1e: optimal /dev/sd2e: optimal No spares. Component label for /dev/sd1e: Row: 0 Column: 0 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 191 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 191 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: DIRTY Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete.
OK。 修復開始。
# raidctl -R /dev/sd1e raid0 # raidctl -s raid0 Components: /dev/sd1e: reconstructing /dev/sd2e: optimal No spares. /dev/sd1e status is: reconstructing. Skipping label. Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 196 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: DIRTY Reconstruction is 0% complete. Parity Re-write is 100% complete. Copyback is 100% complete.
これでもう、mountもできる。 ちゃんとデータも見える。
reconstruction終了後、parityの書き戻し。
# raidctl -P raid0
最終状態はこのとおり。
# raidctl -s raid0 Components: /dev/sd1e: optimal /dev/sd2e: optimal No spares. Component label for /dev/sd1e: Row: 0 Column: 0 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 208 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Component label for /dev/sd2e: Row: 0 Column: 1 Num Rows: 1 Num Columns: 2 Version: 2 Serial Number: 100 Mod Counter: 208 Clean: No Status: 0 sectPerSU: 128 SUsPerPU: 1 SUsPerRU: 1 RAID Level: 1 blocksize: 512 numBlocks: 35883264 Autoconfig: No Root partition: No Last configured as: raid0 Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete.