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

Неисправное восстановление zpool - могу ли я перенести несколько дисков на новые диски, чтобы можно было удалить доноров?

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

Это на сервере OmniOS. Информация о пуле следующая:

  pool: dev-sata1
 state: UNAVAIL
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool clear'.
   see: http://illumos.org/msg/ZFS-8000-JQ
  scan: resilvered 1.53T in 21h6m with 0 errors on Sat Jun 17 13:18:04 2017
config:

        NAME                       STATE     READ WRITE CKSUM
        dev-sata1                  UNAVAIL    227   623     0  insufficient replicas
          mirror-0                 ONLINE       0     0     0
            c1t5000C5003ECEEC42d0  ONLINE       0     0     0
            c1t5000C5003ED6D008d0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c1t5000C500930358EAd0  ONLINE       0     0     0
            c1t5000C500930318E1d0  ONLINE       0     0     0
          mirror-3                 ONLINE       0     0     0
            c1t5000C5003F362DA7d0  ONLINE       0     0     0
            c1t5000C5003F365D94d0  ONLINE       0     0     0
          mirror-4                 ONLINE       0     0     0
            c1t5000C50064D11652d0  ONLINE       0     0     0
            c1t5000C500668EC894d0  ONLINE       0     0     0
          mirror-5                 ONLINE       0     0     0
            c1t5000C5007A2DBE23d0  ONLINE       0     0     0
            c1t5000C5007A2DF29Cd0  ONLINE       0     0     0
          mirror-6                 UNAVAIL    457 1.22K     5  insufficient replicas
            15606980839703210365   UNAVAIL      0     0     0  was /dev/dsk/c1t5000C5007A2E1359d0s0
            c1t5000C5007A2E1BAEd0  FAULTED     37 1.25K     5  too many errors
          mirror-7                 ONLINE       0     0     0
            c1t5000C5007A34981Bd0  ONLINE       0     0     0
            c1t5000C5007A3929B6d0  ONLINE       0     0     0
        logs
          mirror-2                 ONLINE       0     0     0
            c1t55CD2E404B740DD3d0  ONLINE       0     0     0
            c1t55CD2E404B7591BEd0  ONLINE       0     0     0
        cache
          c1t50025388A0952EB0d0    ONLINE       0     0     0
        spares
          c1t5000C5002CD7AFB6d0    AVAIL

Диск "c1t5000C5007A2E1BAEd0" в настоящее время находится на предприятии по восстановлению данных, но запас запасных головок исчерпан, в том числе от донорских дисков, которые мы поставили. Диск, помеченный как отсутствующий, в конечном итоге был найден и потенциально может быть восстановлен, но это последний результат, потому что я не знаю, насколько он устарел по сравнению с остальными и что это будет означать для согласованности. Чтобы считаться донором, должны совпадать первые 3 буквы серийника, а также код сайта. У меня есть еще 4 диска в пуле, которые соответствуют этим критериям и были исправны на момент отключения пула.

Итак, перейдем к моему вопросу: могу ли я заменить 4 других диска, возможно, совместимых с донором (на основе серийного номера), на 4 новых диска после использования dd для копирования всего диска-донора на новый диск для каждого?

Я не понимаю, требует ли пул WWN или серийный номер для соответствия тому, что он хранит (если он хранит что-либо, кроме кеша) при импорте диска, или он сканирует метаданные на каждом диске, чтобы определить, может ли он импортировать пул . Если последнее верно, осуществима ли моя стратегия по получению еще 4 донорских дисков?

Определенно не используйте dd! ZFS имеет для этого встроенную команду, которая достаточно хорошо описана в Документы Oracle. Вы должны уметь использовать zpool replace tank <old device> <new device> для выполнения основной части операции, но есть и пара других вспомогательных команд:

Ниже приведены основные шаги по замене диска:

  • При необходимости отключите диск с помощью zpool offline команда.
  • Снимите заменяемый диск.
  • Вставьте новый диск.
  • Запустить zpool replace команда. Например: zpool replace tank c1t1d0
  • Переведите диск в оперативный режим с помощью zpool online команда.

На странице руководства также есть дополнительная информация:

zpool replace [-f]  pool device [new_device]

 Replaces old_device with new_device.  This is equivalent to attaching
 new_device, waiting for it to resilver, and then detaching
 old_device.

 The size of new_device must be greater than or equal to the minimum
 size of all the devices in a mirror or raidz configuration.

 new_device is required if the pool is not redundant. If new_device is
 not specified, it defaults to old_device.  This form of replacement
 is useful after an existing disk has failed and has been physically
 replaced. In this case, the new disk may have the same /dev path as
 the old device, even though it is actually a different disk.  ZFS
 recognizes this.

 -f  Forces use of new_device, even if its appears to be in use.
     Not all devices can be overridden in this manner.

Конечно, лучше всего сначала попробовать это на виртуальной машине с виртуальными дисками в zpool, сконфигурированном аналогичным образом, чем в первый раз пробовать это в пуле с данными, которые вы хотите восстановить.

Кстати, эта другая часть документов объясняет немного больше о горячем резерве и, возможно, включает указатели, объясняющие, почему ваш не использовался. Было бы полезно немного покопаться, чтобы убедиться, что в следующий раз он не сломается :(.