В попытке проверить, какое влияние при добавлении устройства журналов 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 таким же образом, что и я.
После получения помощи от 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
Хорошей новостью является то, что вы можете «преобразовать» существующий массив 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 не сообщал об ошибках.После получения помощи от 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
Хорошей новостью является то, что вы можете «преобразовать» существующий массив 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 не сообщал об ошибках.После получения помощи от 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
Хорошей новостью является то, что вы можете «преобразовать» существующий массив 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 не сообщал об ошибках.