Что делать с поврежденным пулом ZFS

Были запущены тестовые экземпляры NAS с использованием ZFS, как указано в разделе Восстановление сервера Ubuntu с использованием ZFS RAIDZ для данных.

На этой неделе один из моих дисков умер.

За исключением того, что мой пул ZFS поврежден, как в:

andy@ubuntu:~$ sudo zpool status -v
  pool: tank
 state: UNAVAIL
status: One or more devices could not be used because the label is missing
        or invalid.  There are insufficient replicas for the pool to continue
        functioning.
action: Destroy and re-create the pool from
        a backup source.
   see: http://www.sun.com/msg/ZFS-8000-5E
  scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    tank        UNAVAIL      0     0     0  insufficient replicas
      raidz1-0  UNAVAIL      0     0     0  insufficient replicas
        sdb     FAULTED      0     0     0  corrupted data
        sdc     FAULTED      0     0     0  corrupted data
        sdd     UNAVAIL      0     0     0

Если это не так, К счастью, это тестовый экземпляр, и я могу легко начать снова. Но что, если этот пул содержит важные данные? Каким будет следующий следующий шаг (ы): восстановить данные и восстановить мой NAS в рабочем состоянии? Или ZFS автоматически пытается использовать все возможные подходы к восстановлению, чтобы теперь данные были тостами?

1
задан 13 April 2017 в 15:24

3 ответа

Вооружившись пониманием @slashdot, я в основном исправил свою проблему, но я не знаю, что я сделал. Пожалуйста, изучите следующий след и просветите меня.

В частности, какая из следующих гипотез истинна и что мне не хватает?

Ни zdb -u tank, ни zdb -dcsv tank ничего полезного , Второй zpool import -f tank работал, когда первый не сделал, потому что прошло достаточно времени, так как zpool export tank для ZFS имеет шанс исправить себя. Весь этот эпизод имел какое-то отношение к ярлыкам, которые меняли сами после отказа одного из дисков (думаю, это был sdb, который вызвал sdc> sdb & amp; sdd> sdb).

LOG

andy@ubuntu:~$ zpool status
andy@ubuntu:~$ sudo zpool status
  pool: tank
 state: UNAVAIL
status: One or more devices could not be used because the label is missing
        or invalid.  There are insufficient replicas for the pool to continue
        functioning.
action: Destroy and re-create the pool from
        a backup source.
   see: http://www.sun.com/msg/ZFS-8000-5E
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        UNAVAIL      0     0     0  insufficient replicas
          raidz1-0  UNAVAIL      0     0     0  insufficient replicas
            sdb     FAULTED      0     0     0  corrupted data
            sdc     FAULTED      0     0     0  corrupted data
            sdd     UNAVAIL      0     0     0
andy@ubuntu:~$ sudo zdb -u tank
zdb: can't open 'tank': No such device or address
andy@ubuntu:~$ sudo zpool scrub tank
cannot scrub 'tank': pool is currently unavailable
andy@ubuntu:~$ sudo zdb -bcsv tank
zdb: can't open 'tank': No such device or address
andy@ubuntu:~$ sudo zpool export tank
andy@ubuntu:~$ sudo zpool import tank
cannot import 'tank': pool may be in use from other system
use '-f' to import anyway
andy@ubuntu:~$ sudo zpool import -f tank
cannot import 'tank': one or more devices is currently unavailable
andy@ubuntu:~$ sudo zpool status
no pools available
andy@ubuntu:~$ sudo zpool status -x
no pools available
andy@ubuntu:~$ sudo zpool import
  pool: tank
    id: 9117894036185671023
 state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
   see: http://www.sun.com/msg/ZFS-8000-5E
config:

        tank        UNAVAIL  insufficient replicas
          raidz1-0  UNAVAIL  insufficient replicas
            sdb     FAULTED  corrupted data
            sdb     UNAVAIL
            sdc     ONLINE
andy@ubuntu:~$ sudo zpool import tank
cannot import 'tank': pool may be in use from other system
use '-f' to import anyway
andy@ubuntu:~$ sudo zpool import -f tank
andy@ubuntu:~$ sudo zpool status
      pool: tank
 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://www.sun.com/msg/ZFS-8000-4J
  scan: scrub repaired 0 in 0h13m with 0 errors on Mon Nov 21 09:22:11 2011
config:

        NAME                      STATE     READ WRITE CKSUM
        tank                      DEGRADED     0     0     0
          raidz1-0                DEGRADED     0     0     0
            10820373921989571629  UNAVAIL      0     0     0  was /dev/sdb1
            sdb                   ONLINE       0     0     0
            sdc                   ONLINE       0     0     0

errors: No known data errors
andy@ubuntu:~$
3
ответ дан 25 May 2018 в 14:47

Вы только что перепутали диски?

Как только я перепутал диски и zpool сказал, что «диски содержат поврежденные данные». После того, как я подключил диски в предыдущей последовательности, он начал работать.

Возможно, после того, как вы импортировали цистерну zpool, распознали правильную последовательность.

1
ответ дан 25 May 2018 в 14:47
  • 1
    BBK Я думаю, что вы правы, - что изменение последовательности вызвало проблему. Почему первый импорт не работал? Стыдно сказать, что я вернулся в XFS. – andybjackson 12 February 2012 в 05:15
  • 2
    Если вы найдете правильный ответ, пожалуйста, подтвердите его. Дайте шанс zfs. Очень приятно FS. Может быть выпущена система hdd из zpool, только после этого вы смогли ее импортировать, вроде. – BBK 14 February 2012 в 00:07
  • 3
    BBK Я подтвердил ваш ответ, но боюсь, что я думаю, что ответ @ slashdot более универсален. Кроме того, я не уверен, что первое предложение " Можете ли вы просто перепутали диски? & Quot; означает - может помочь прояснить. Я думаю, что мы дошли до сути того, что пошло не так, даже если бы мы не сформулировали это так хорошо, но еще не справлялись с рекомендациями. – andybjackson 15 February 2012 в 14:06
  • 4
    Если вы используете диски SATA: может быть, раньше у вас была следующая ситуация: sdb был подключен к SATA2, sdc был подключен к SATA3, sdd был подключен к SATA4. И после того, как ваш sdd сработал, возможно, вы перепутали остальные диски: sdb - SATA3, sdd - SATA2 или что-то в этом роде. – BBK 20 February 2012 в 03:05

Я думаю, что предыдущие плакаты осветили проблему. Вероятная причина была связана с тем, как вы указали диски.

Мой опыт связан с ZFS на Ubuntu. Хотя я и использую ZFS на freenas, мне никогда не приходилось вникать в реализацию bsd.

Конечно, для Ubuntu вам настоятельно рекомендуется указывать свои устройства по-id, а не по дескриптору: / dev / disk / by-id / scsi-SATA, которая однозначно идентифицирует физический диск, а не /dev/sda.

Использование устройства id-id устраняет любую зависимость от конкретного порта SATA на диске подключен к.

Gareth

1
ответ дан 25 May 2018 в 14:47

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

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