320GBのディスク1台と、500GBのディスク2台で構成されているRAID-Zプールの320GBディスクを500GBのものに交換するテスト。
まずは状態を見る。
# zpool status -v pool: zhome state: ONLINE scrub: resilver completed with 0 errors on Thu Feb 19 23:33:55 2009 config: NAME STATE READ WRITE CKSUM zhome ONLINE 0 0 0 raidz1 ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 errors: No known data errors
# zfs list NAME USED AVAIL REFER MOUNTPOINT zhome 306G 277G 306G /zhome
ここで一度電源を切り、ディスクを交換。
# zpool status -v pool: zhome state: ONLINE status: One or more devices could not be used because the label is missing or invalid. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Replace the device using 'zpool replace'. see: http://www.sun.com/msg/ZFS-8000-4J scrub: none requested config: NAME STATE READ WRITE CKSUM zhome ONLINE 1 0 0 raidz1 ONLINE 1 0 0 sdb UNAVAIL 0 0 0 corrupted data sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 errors: No known data errors
sdbにエラーがあると言っているので、交換したことを教える。
# zpool replace zhome sdb
# zpool status -v pool: zhome state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scrub: resilver in progress, 0.00% done, 478h8m to go config: NAME STATE READ WRITE CKSUM zhome DEGRADED 2 0 38 raidz1 DEGRADED 2 0 38 replacing DEGRADED 0 0 0 sdb/old UNAVAIL 0 0 0 cannot open sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 errors: No known data errors
再構築中のディスクのアクセス状況。
# zpool iostat -v capacity operations bandwidth pool used avail read write read write ------------- ----- ----- ----- ----- ----- ----- zhome 459G 933G 26 19 1.18M 47.8K raidz1 459G 933G 26 19 1.18M 47.8K replacing - - 50 75 2.23M 1.17M sdb/old - - 0 0 0 0 sdb - - 37 70 2.23M 1.18M sdc - - 39 14 1.76M 26.1K sdd - - 40 16 1.76M 27.3K ------------- ----- ----- ----- ----- ----- -----
容量が増えていることにも注目。
…と、うまくいったはずだったのだが実際は
status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A
このようなエラーが出ていくつかのファイルが消失してしまった。う〜む、何がいけなかったのだろうか。もう少しZFSを研究しないと大事なデータは入れられないな。