Восстановить из пула zfs «ОТКАЗАНО». Параметр «-F», похоже, игнорируется

В Ubuntu я недавно начал пробовать ZFS на внешнем жестком диске USB. Теперь у меня поврежден пул zfs, что, вероятно, и произошло просто в результате того, что я выключил свой компьютер (с poweroff ).

$ zpool import
   pool: zfs
     id: 1234512345123451234
  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://zfsonlinux.org/msg/ZFS-8000-72
 config:

        zfs                      FAULTED  corrupted data
          usb-Disk_Name_etc-0:0  ONLINE

При попытке импортировать я получаю это полезное сообщение, объясняющее, что я потеряю около 1 секунды данных (что было бы хорошо ) и что я могу попытаться восстановить с помощью опции "-F":

$ zpool import zfs
cannot import 'zfs': I/O error
    Recovery is possible, but will result in some data loss.
    Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
    should correct the problem.  Approximately 1 seconds of data
    must be discarded, irreversibly.  Recovery can be attempted
    by executing 'zpool import -F zfs'.  A scrub of the pool
    is strongly recommended after recovery.

Используя флаг пробного запуска, я получаю подтверждение, что -F должно работать:

$ zpool import -Fn zfs
Would be able to return zfs to its state as of Thu 12 Mar 2020 00:58:03 GMT.
Would discard approximately 1 seconds of transactions.

Но когда я пробую реальный вариант, кажется, что он полностью игнорируйте опцию «-F» и повторяет исходное сообщение:

$ zpool import -F zfs
cannot import 'zfs': I/O error
    Recovery is possible, but will result in some data loss.
    Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
    should correct the problem.  Approximately 1 seconds of data
    must be discarded, irreversibly.  Recovery can be attempted
    by executing 'zpool import -F zfs'.  A scrub of the pool
    is strongly recommended after recovery.

Я нашел упоминание опции «-X» в этом ответе: https://serverfault.com/a/645866/74394 но Я продолжаю получать точно такое же сообщение. Я пробовал все эти комбинации параметров, как с именем пула (zfs), так и с числовым идентификатором (например, 1234512345123451234), и я всегда получите то же сообщение, что и выше, с предложением использовать параметр -F.

-F -FX -f -fF -fFX

Я делаю что-то явно не так ? ZFS кажется невероятно ненадежным, если я безвозвратно потерял весь диск только из-за 1 секунды данных из-за выключения системы! У меня нет резервной копии пула, так как я только начал пробовать ZFS. Спасибо за любую помощь.

1
задан 13 March 2020 в 20:42
1 ответ

Если это USB-устройство лжет о фиксации, все ставки отключены, поскольку записи могут быть переупорядочены, а между изменением порядка записи и ложью о препятствиях все ставки сняты с того, метаданные удалены.

Попробуйте: zdb -e zfs -ul

Надеюсь, это перечислит некоторые txgs.

Затем попробуйте:zpool import -f -FX -N -T [txg_number]

где вы получили txg_number из zdb выше.

Другие возможности: Обновите ZFS до последней версии 0.8.3. То, что поставляется с Ubuntu, довольно древнее, и с тех пор было внесено множество исправлений и улучшений.

2
ответ дан 30 March 2020 в 00:15

Теги

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