ZFS: как заменить диск, который вышел из строя при повторном переносе после другой ошибки?
Замена диска в ZFS не удалась, и теперь заменяющий диск, даже если физически его нет, "застрял" в пуле, блокируя дальнейшие попытки замены. Как это убрать?
В пуле raidz3 с 11 дисками на OmniOS r151010 один из дисков вышел из строя. Я перевел проблемный диск в автономный режим, заменил его новым диском и перенастроил новый диск. Он начал переворачиваться, а затем на заменяющем диске возникли ошибки. Dmesg показал: "Команда SYNCHRONIZE CACHE не выполнена". Я задавался вопросом, может ли это быть свободный кабель, поэтому выключил машину, переустановил диск и кабели и снова запустил его. Он начал восстанавливаться, и через некоторое время возникла та же проблема. На данный момент состояние 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
На этом этапе, что я должен сделать, чтобы получить новый заменяющий диск, снова? Выполнение замены zpool на исходном диске или первая замена просто приводит к ошибке (слегка сокращенной здесь) "невозможно открыть" c4t500.... ", такого устройства нет в /dev/dsk".
Выполнение удаления zpool на c4t50014EE658315C1Dd0 выдает сообщение об ошибке "невозможно удалить c4t50014EE658315C1Dd0: могут быть удалены только неактивные горячие резервы, кэш, устройства верхнего уровня или журналы"
1 ответ
Я понял. Используйте zdb в пуле, чтобы получить GUID исходного диска, затем используйте формат, чтобы найти имя замещающего диска, затем выполните
# 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)
а затем вернуться к нормальной жизни, как только это будет сделано.