Zpool ухудшается при подключении диска

Zpool ухудшается при подключении диска

Чтобы проверить, какое влияние окажет добавление устройства журнала ZFS на массив ZFS, я решил создать zpool и выполнить несколько тестов, прежде чем подключать SSD в качестве ZIL.

К сожалению, всякий раз, когда я подключаю SSD после создания zpool или отключаю SSD после создания пула (все, что приводит к изменению букв дисков после создания пула), а затем перезагружаюсь, мой пул ухудшается, что можно увидеть, запустив:sudo zpool status

  pool: zpool1
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
    invalid.  Sufficient replicas exist for the pool to continue
    functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: none requested
config:

    NAME                     STATE     READ WRITE CKSUM
    zpool1                   DEGRADED     0     0     0
      mirror-0               DEGRADED     0     0     0
        sda                  ONLINE       0     0     0
        1875547483567261808  UNAVAIL      0     0     0  was /dev/sdc1

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

sudo zpool create -f zpool1 mirror /dev/sdb /dev/sdc

Вопросы

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

Есть ли лучший способ создать zpool без использования букв дисков, /dev/sdaчтобы избежать этой проблемы в будущем? Я заметил, чтов документации Ubuntu говоритсясоздать zpool таким же образом, как это сделал я.

Дополнительная информация

  • ОС: Ubuntu 16.04 Сервер 4.10
  • Установил zfs из установочного zfsutils-linuxпакета

решение1

Получив помощь от Dexter_Kane наФорум технических специалистов уровня 1, ответ — использовать /dev/disk/by-id/...пути при создании пулов.

Например

sudo zpool create zpool1 mirror \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7 \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H

Преобразование и ремонт существующих бассейнов

Хорошей новостью является то, что вы можете «преобразовать» существующий массив ZFS RAID для использования этих меток, что предотвратит возникновение подобной ситуации в будущем и даже устранит деградацию массива, если такая ситуация уже произошла с вами.

sudo zpool export [pool name]
sudo zpool import -d /dev/disk/by-id [pool name]

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

После выполнения преобразования вывод sudo zpool statusдолжен быть похож на:

  pool: zpool1
 state: ONLINE
  scan: none requested
config:

        NAME                                          STATE     READ WRITE CKSUM
        zpool1                                        ONLINE       0     0     0
          mirror-0                                    ONLINE       0     0     0
            ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7  ONLINE       0     0     0
            ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H  ONLINE       0     0     0

Тестирование выполнено

Я обязательно проверил это:

  • Использование путей by-id предотвратило возникновение проблемы.
  • После записи некоторых данных, когда пул находился в неисправном состоянии, я все равно смог прочитать все файлы после выполнения экспорта/импорта и sudo zpool statusне сообщил об ошибках.

Связанный контент