Ошибка восстановления 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 донорских дисков?

1 ответ

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

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

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

Страница man также содержит дополнительную информацию:

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, чем пытаться впервые в пуле с данными, которые вы хотите восстановить.

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

Другие вопросы по тегам