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

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

К сожалению, каждый раз, когда я включаю SSD, создав шпульку, или отключаю 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

Вопросы

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

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

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

  • ОС: сервер Ubuntu 16.04 4.10
  • Установленный zfs от установки zfsutils-linux пакет
2
задан 21 October 2017 в 19:03

1 ответ

После получения справки от Dexter_Kane на Уровне 1 techs форум, ответ должен использовать /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

Преобразование и фиксация существующих пулов

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

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

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

Я удостоверился, что протестировал это:

  • Используя пути идентификатором действительно предотвращал случай проблемы.
  • После записи некоторых данных, пока пул был в ухудшенном состоянии, я мог все еще считать все файлы после выполнения экспорта/импорта, и sudo zpool status сообщаемый никакие ошибки.
1
ответ дан 2 December 2019 в 04:47

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

Похожие вопросы: