ZFSでのディスクの交換がうまくいかず、物理的に存在しなくなったにもかかわらず、交換するディスクがプールに「スタック」し、それ以上の交換の試行がブロックされます。それを削除する方法は?
OmniOS r151010上の11個のディスクがあるraidz3プールで、ディスクの1つが故障しました。問題のあるディスクをオフラインにして、新しいディスクと交換し、新しいディスクを再構成しました。銀色になり始めた後、交換用ディスクにエラーが発生しました。 Dmesgは「SYNCHRONIZECACHEコマンドが失敗しました」と表示しました。ケーブルが緩んでいるのではないかと思ったので、マシンをシャットダウンし、ディスクとケーブルを取り付け直して、再起動しました。それは再銀化を始めました、そしてしばらくして同じ問題を抱えていました。この時点で、問題のあるディスクのzpoolステータスが表示されます
replacing-0 UNAVAIL 0 0 0 insufficient replicas
c4t5000C5004DC8693Fd0 OFFLINE 0 0 0
c4t50014EE658315C1Dd0 FAULTED 0 0 0 too many errors
別のディスクを試してみて、それが違いを生むかどうかを確認することにしました。そうではないと思いましたが、簡単に試すことができました。ディスクをホットスワップすると、cfgadm-alが表示されました
c8 scsi-sas connected configured unknown
c8::w50014ee6ad8f0df2,0 disk-path connected configured unknown
c8::w50014ee658315c1d,0 disk-path connected unconfigured unknown
新しいディスクはありますが、古いディスクは消えていません。マシンを再起動して古い状態をクリアすると、cfgadm-alは
c8 scsi-sas connected configured unknown
c8::w50014ee6ad8f0df2,0 disk-path connected configured unknown
ただし、zpoolステータスはまだ古いディスクを示していました。障害をクリアしようとしましたが、元のディスクと最初の交換品が両方ともオフラインになりました
replacing-0 UNAVAIL 0 0 0 insufficient replicas
c4t5000C5004DC8693Fd0 OFFLINE 0 0 0
c4t50014EE658315C1Dd0 OFFLINE 0 0 0
この時点で、新しい交換用ディスクを再シルバー化するにはどうすればよいですか?元のディスクでzpoolreplaceを実行するか、最初の置換を実行すると、「/ dev/dskにそのようなデバイスがありません」というエラーが発生します(ここでは少し短縮されています)。
C4t50014EE658315C1Dd0でzpoolremoveを実行すると、「c4t50014EE658315C1Dd0を削除できません:非アクティブなホットスペア、キャッシュ、トップレベル、またはログデバイスのみを削除できます」というエラーメッセージが表示されます。
私はそれを考え出した。プールでzdbを使用して元のディスクのGUID)を取得し、formatを使用して交換用ディスクの名前を見つけてから、
# zpool replace <pool> <GUID of original disk> <name of replacement disk>
再銀メッキ中は次のようになります。
NAME STATE READ WRITE CKSUM
raid DEGRADED 0 0 0
raidz3-0 DEGRADED 0 0 0
replacing-0 UNAVAIL 0 0 0 insufficient replicas
c4t5000C5004DC8693Fd0 OFFLINE 0 0 0
c4t50014EE658315C1Dd0 OFFLINE 0 0 0
c4t50014EE6AD8F0DF2d0 ONLINE 0 0 0 (resilvering)
完了したら通常に戻ります。