Назад | Перейти на главную страницу

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 replace на исходном диске или первая замена приводит к ошибке (здесь немного сокращено) «не удается открыть 'c4t500 ....' такого устройства нет в / dev / dsk».

При выполнении удаления zpool на c4t50014EE658315C1Dd0 появляется сообщение об ошибке «Не удается удалить c4t50014EE658315C1Dd0: можно удалить только неактивные устройства горячего резервирования, кеш, устройства верхнего уровня или журналы»

Я понял. Используйте 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)

а затем вернуться в нормальное состояние после завершения.