Инструкция №40. Замена узла вследствие его физического разрушения

В Инструкции №39 был рассмотрен вариант замены узла, вышедшего из строя, подразумевая, что часть его компонентов (диски) остались функционирующими. В случае физического разрушения узла, подразумевающего в том числе и потерю дисков, процедура восстановления выглядит немного иначе.

Рассмотрим ситуацию с физическим разрушением узла №2 пятиузлового кластера.

Для замены такого узла потребуется резервная копия его системного диска, выполненная по Инструкции №30, ZIP-пакет, включающий системные диски и диски для слоя хранения с размером не менее существующих, с последующим выполнением следующих действий:

  1. Соблюдая размещение и номера портов, подключить кабели из сетевых портов разрушенного узла в ZIP-пакет.
  2. Включить новый узел.
  3. Выполнить восстановление системного диска по Инструкции №31.
  4. Загрузить новый узел и убедиться, что он включился в работу кластера (имеет Здоровье "Норма").

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

Определять утраченный диск и выполнять его замену можно в CLI следующим образом:

1. Командой zpool status -v определить утраченный диск.

Пример:

root@q47u005:~ # zpool status -v
  pool: z02
 state: DEGRADED
status: One or more devices has been removed by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using zpool online' or replace the device with
        'zpool replace'.
  scan: resilvered 6.32M in 00:00:01 with 0 errors on Wed Nov  8 08:08:18 2020
config:

        NAME                       STATE     READ WRITE CKSUM
        z02                        DEGRADED     0     0     0
          raidz2-0                 DEGRADED     0     0     0
            diskid/DISK-node1_da2  ONLINE       0     0     0
            5666410565734806608    UNAVAIL      0     0     0
            diskid/DISK-node3_da2  ONLINE       0     0     0
            diskid/DISK-node4_da2  ONLINE       0     0     0
            diskid/DISK-node5_da2  ONLINE       0     0     0

errors: No known data errors

В данном случае утраченный диск имеет имя "5666410565734806608". Так как пул состоит из дисков всех узлов с именем "da2", то выполняем замену утраченного диска на диск с мнемоническим именем "diskid/DISK-node2_da2" следующей командой:

vstack-nodeside disk_replace -P z02 -p 5666410565734806608 -T /dev/diskid/DISK-node2_da2

В случае недоступности утилиты vstack-nodeside выполнить альтернативную команду:

zpool replace z02 5666410565734806608 diskid/DISK-node2_da2

После выполнения этой замены автоматически будет инициирована процедура восстановления избыточности пула (resilver). Завершение этой процедуры вернёт Здоровье пула в состояние "Норма", что в CLI будет отображено следующим образом:

root@q47u005:~ # zpool status -v
  pool: z02
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: resilvered 480.0G in 00:39:34 with 0 errors on Tue Nov 8 15:37:33 2020
config:

        NAME                       STATE     READ WRITE CKSUM
        z02                        ONLINE       0     0     0
          raidz2-0                 ONLINE       0     0     0
            diskid/DISK-node1_da2  ONLINE       0     0     0
            diskid/DISK-node2_da2  ONLINE       0     0     0
            diskid/DISK-node3_da2  ONLINE       0     0     0
            diskid/DISK-node4_da2  ONLINE       0     0     0
            diskid/DISK-node5_da2  ONLINE       0     0     0

errors: No known data errors

Такую операцию нужно провести на каждом из пулов.