Назад | Перейти на главную страницу

ZFS показывает состояние пула FAULTED, но все устройства находятся в сети; как я могу восстановить свои данные?

Наш NAS 100 ТБ на базе FreeNAS 8 неожиданно отключился из-за сбоя питания. После повторного включения 100TB zpool "projects" были размонтированы с состоянием "FAULTED".

я пробовал zpool import -fFX, он работал около 20 часов, но ничего не произошло. Я перезагрузил сервер с помощью кнопки сброса, потому что команды kill -9 и reboot не работали.

Некоторые выходы:

[root@Projects_new] ~# zpool import
   pool: projects
     id: 8560768094429092391
  state: FAULTED
 status: The pool metadata is corrupted.
 action: The pool cannot be imported due to damaged devices or data.
    The pool may be active on another system, but can be imported using
    the '-f' flag.
   see: http://www.sun.com/msg/ZFS-8000-72
 config:

    projects                                      FAULTED  corrupted data
      gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE    ok

Также я нашел недокументированный вариант: zpool import -V projects, после этого zpool был импортирован, но по-прежнему недоступен:

[root@Projects_new] ~/zpool_restore# zpool status
  pool: projects
 state: FAULTED
status: The pool metadata is corrupted and the pool cannot be opened.
action: Destroy and re-create the pool from
    a backup source.
   see: http://www.sun.com/msg/ZFS-8000-72
  scan: none requested
config:

    NAME                                          STATE     READ WRITE CKSUM
    projects                                      FAULTED      0     0     1
      gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
      gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
      gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE       0     0     0

В этом состоянии zpool clear -f projects выводит «Ошибка ввода / вывода».

/ dev / gptid / 4 * - это устройства RAID0: 4 на 4 контроллерах Adaptec и 2 на 1 контроллере LSI.

Есть ли способ импортировать и исправить zpool и сохранить данные?

NAME                                          STATE     READ WRITE CKSUM
projects                                      FAULTED      0     0     1
  gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
  gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
  gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE       0     0     0

/ dev / gptid / 4 * - это устройства RAID0: 4 на 4 контроллерах Adaptec и 2 на 1 контроллере LSI.

Так что позвольте мне начать с того, что кое-что проясню. У вас есть пул ZFS, который состоит из шести устройств (с точки зрения ZFS), чередующихся без избыточности. Каждый из них состоит из некоторого неизвестного количества физических запоминающих устройств, которые сами по себе чередуются без избыточности. По самым скромным подсчетам, у вас порядка 20-25 спиннеров, а возможно, и больше. все это должно работать отлично чтобы ваша установка была стабильной. Помните, что отказы физических дисков в лучшем случае некоррелированны и на практике имеют тенденцию происходить в пакетном режиме в общих средах (если один диск выходит из строя, вероятно, что один или несколько других будут маргинальными и могут даже выйти из строя просто из-за стресса восстановления). Это дает наилучший сценарий, когда для 25 дисков вероятность отказа в 25 раз больше, чем для одного диска, потому что у вас есть 25 из каждого с такой же вероятностью отказа, как если бы он был один.

Теперь у некоторых из этих дисков (или, возможно, контроллеров), по-видимому, возникла какая-то проблема, которая просочилась и сообщается ZFS.

В этот момент у меня более или менее вопрос: «Что вы ожидаете от ZFS?». И, к сожалению, я думаю, что ответ как на этот, так и на ваш вопрос таков: нет, на данный момент действительно не так много нужно сделать.

ZFS - это не волшебство. Он очень устойчив ко многим различным типам сбоев, но, когда он ломается, он имеет тенденцию делать это впечатляющими способами. Вы можете снизить риск поломки, используя его функции резервирования, чего по какой-то причине вы предпочли не делать. Его сложный формат на диске также значительно усложняет восстановление, чем, например, UFS, NTFS или ext3 / 4.

Если zpool import -fFX не возвращает ваш пул в рабочее состояние, тогда лучше всего будет просто воссоздать пул разумным образом и восстановить самую последнюю резервную копию. Это включает добавление некоторой избыточности, чтобы даже при выходе из строя всего контроллера или источника питания не отказал весь пул. Кроме того, настройте контроллеры так, чтобы необработанные диски в формате JBOD были доступны для ZFS, и используйте поддержку избыточности ZFS для добавления избыточности в хранилище; Это позволяет ZFS принимать решения о том, где разместить данные и как организовать избыточность, чтобы снизить риск сбоя. (Например, метаданные можно хранить избыточно, копируя их на несколько независимых vdev.)