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

Почему мои пулы ZFS «недоступны»?

Я только что заменил жесткий диск, который был частью двух разных резервных пулов, и теперь оба пула недоступны ...

Подробности:

Я ожидал, что оба пула перейдут в «деградированный» режим, пока я не разделю замену на две части и не добавлю каждую часть в свой пул.

Вместо этого компьютер бесцеремонно перезагрузился, и при возврате оба пула «недоступны»:

      pool: aldan
     state: UNAVAIL
    status: One or more devices could not be opened.  There are insufficient
            replicas for the pool to continue functioning.
    action: Attach the missing device and online it using 'zpool online'.
       see: http://illumos.org/msg/ZFS-8000-3C
      scan: none requested
    config:

            NAME                      STATE     READ WRITE CKSUM
            aldan                     UNAVAIL      0     0     0
              raidz1-0                UNAVAIL      0     0     0
                1257549909357337945   UNAVAIL      0     0     0  was /dev/ada1p1
                1562878286621391494   UNAVAIL      0     0     0  was /dev/da1
                8160797608248051182   UNAVAIL      0     0     0  was /dev/da0p1
                15368186966842930240  UNAVAIL      0     0     0  was /dev/da2
            logs
              4588208516606916331     UNAVAIL      0     0     0  was /dev/ada0e

      pool: lusterko
     state: UNAVAIL
    status: One or more devices could not be opened.  There are insufficient
            replicas for the pool to continue functioning.
    action: Attach the missing device and online it using 'zpool online'.
       see: http://illumos.org/msg/ZFS-8000-3C
      scan: none requested
    config:

            NAME                     STATE     READ WRITE CKSUM
            lusterko                 UNAVAIL      0     0     0
              mirror-0               UNAVAIL      0     0     0
                623227817903401316   UNAVAIL      0     0     0  was /dev/ada1p2
                7610228227381804026  UNAVAIL      0     0     0  was /dev/da0p2

Я разделил новый диск сейчас, но попытки «заменить zpool» отклоняются с сообщением «пул недоступен». Я почти уверен, что если я просто отключу новый диск, оба пула станут нормальными (если их работа ухудшится). Почему они оба сейчас «недоступны»? Согласно camcontrol, все устройства подключены к сети:

<ATA TOSHIBA MG03ACA4 FL1A>        at scbus0 target 0 lun 0 (pass0,da0)
<ATA Hitachi HUS72403 A5F0>        at scbus0 target 1 lun 0 (pass1,da1)
<ATA TOSHIBA HDWD130 ACF0>         at scbus0 target 2 lun 0 (pass2,da2)
<M4-CT128M4SSD2 0309>              at scbus1 target 0 lun 0 (pass3,ada0)
<MB4000GCWDC HPGI>                 at scbus2 target 0 lun 0 (pass4,ada1)

Операционная система - FreeBSD-11.3-STABLE / amd64. В чем дело?

Обновить: нет, явно не offline устройство (а) перед отключением диска - и оно уже возвращается на Amazon. Я удивлен, что такое отключение необходимо - неужели ZFS не сможет справиться с внезапно смерть любого драйва? И не следует ли также быть готовым к тому, что технический специалист заменит вышедший из строя диск на другой? Почему он так устраивает?

У меня есть резервные копии, и я могу восстанавливать пулы с нуля, но я хотел бы выяснить, как этого избежать. Или, если это невозможно, отправить соответствующий отчет об ошибке ...

Я полностью отключил новый диск, но состояние пула не изменилось ... Может быть, мне нужно перезагрузить компьютер - помогает это или нет, но разочарование.

Обновление 2: многократные перезагрузки с подключенным новым диском и без него не помогли. Тем не мение, zpool import перечисляет оба пула именно так, как я ожидал: деградированные (но доступные!). Например:

   pool: lusterko
     id: 11551312344985814621
  state: DEGRADED
 status: One or more devices are missing from the system.
 action: The pool can be imported despite missing or damaged devices.  The
        fault tolerance of the pool may be compromised if imported.
   see: http://illumos.org/msg/ZFS-8000-2Q
 config:

        lusterko                  DEGRADED
          mirror-0                DEGRADED
            ada1p2                ONLINE
            12305582129131953320  UNAVAIL  cannot open

Но zpool status продолжает настаивать, все устройства недоступны ... Есть надежда?

Возможно, вы также не отключили старый диск перед его извлечением. (Возможно, ZFS считает, что логические диски (ваши пулы) повреждены, а контроллер считает, что с ними все в порядке. Это происходит, если есть разница в размере дискового цилиндра - редкий случай, но может случиться.)

Чтобы выйти из ситуации:

  • получить имя диска из zpool status
  • используйте diskinfo, чтобы определить физическое местонахождение НЕДОСТУПНОГО диска, указанного выше
  • перенастроить его с помощью cfgadm -c unconfigure и cfgadm -c configure
  • вывести новый диск в онлайн - zpool online zone
  • зона обновления - zpool replace zone (zpool status zone должен показать онлайн)
  • запустить zpool replace команда для замены диска