1

У меня есть raidz vdev с 3 дисками. Disk0 теперь не удалось, и я пытаюсь восстановить, однако я не могу запустить zpool import . Disk0 все еще функционирует, однако таблица разделов была повреждена, и я попытался восстановить.

$ zpool import
   pool: epool
     id: 15752543265619539307
  state: FAULTED
 status: One or more devices contains corrupted data.
 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-5E
 config:

    epool                                               FAULTED  corrupted data
      raidz1-0                                          DEGRADED
        ata-WDC_WD30EZRX-00D8PB0_WD-WMC4N1642572-part1  UNAVAIL  corrupted data
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N1KPRKPX-part1  ONLINE
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7ZXC1E0-part1  ONLINE

Есть ли шанс отремонтировать эту настройку?

$ zdb -l /dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N1KPRKPX-part1
------------------------------------
LABEL 0
------------------------------------
    version: 5000
    name: 'epool'
    state: 0
    txg: 108340
    pool_guid: 157525$43265619539307
    errata: 0
    hostname: 'eiselekd-lnx'
    top_guid: 5366409938038884073
    guid: 3063814570901399057
    vdev_children: 1
    vdev_tree:
        type: 'raidz'
        id: 0
        guid: 5366409938038884073
        nparity: 1
        metaslab_array: 35
        metaslab_shift: 36
        ashift: 12
        asize: 9001706717184
        is_log: 0
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 9231358437407247535
            path: '/dev/disk/by-id/ata-WDC_WD30EZRX-00D8PB0_WD-WMC4N1642572-part1'
            whole_disk: 0
            create_txg: 4
        children[1]:
            type: 'disk'
            id: 1
            guid: 3063814570901399057
            path: '/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N1KPRKPX-part1'
            whole_disk: 0
            DTL: 136
            create_txg: 4
        children[2]:/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7ZXC1E0-part1
            type: 'disk'
            id: 2
            guid: 10884448206527621454
            path: '/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7ZXC1E0-part1'
            whole_disk: 0
            create_txg: 4
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data
    labels = 0 1 2 3 

В неисправном разделе не отображаются метки:

# zdb -l /dev/disk/by-id/ata-WDC_WD30EZRX-00D8PB0_WD-WMC4N1642572-part1
--------------------------------------------
LABEL 0
--------------------------------------------
failed to unpack label 0
--------------------------------------------
LABEL 1
--------------------------------------------
failed to unpack label 1
--------------------------------------------
LABEL 2
--------------------------------------------
failed to unpack label 2
--------------------------------------------
LABEL 3
--------------------------------------------
failed to unpack label 3

однако есть Ueberblocks (волшебный 0cb1ba00, найденный в начале и конце раздела): я использовал zfs_revert-0.1.py (https://gist.github.com/jshoward/5685757 ), тоже посмотрите информацию txg для disk0 и чего-то еще на диске 0 кажется там.

TXG     TIME    TIMESTAMP       BLOCK ADDRESSES
108173  08 Feb 2018 02:24:11    1518053051      [360, 872, 5860494696, 5860495208]
108193  08 Feb 2018 02:25:59    1518053159      [264, 776, 5860494600, 5860495112]
108199  08 Feb 2018 02:26:30    1518053190      [312, 824, 5860494648, 5860495160]
108219  07 Mar 2018 16:44:43    1520437483      [472, 984, 5860494808, 5860495320]
108307  08 Mar 2018 15:58:41    1520521121      [408, 920, 5860494744, 5860495256]
108313  09 Mar 2018 14:25:03    1520601903      [456, 968, 5860494792, 5860495304]
108319  12 Mar 2018 17:33:00    1520872380      [504, 1016, 5860494840, 5860495352]
108325  14 Mar 2018 19:23:31    1521051811      [296, 808, 5860494632, 5860495144]
108331  15 Mar 2018 14:36:25    1521120985      [344, 856, 5860494680, 5860495192]
108337  15 Mar 2018 20:07:58    1521140878      [392, 904, 5860494728, 5860495240]

Так что я думаю, что, возможно, разбиение переместило начало раздела. Не уверен Я сделал dd if=/dev/sda | strings | grep WCC4N1KPRKPX-part1 однако метки диска там нет ...

Можно ли заменить ata-WDC_WD30EZRX-00D8PB0_WD-WMC4N1642572-part1 новым диском и восстановителем? Ссылка http://zfsonlinux.org/msg/ZFS-8000-5E в выходных данных импорта zfs не дает мне надежду, но все же ....

2 ответа2

1

Невозможно восстановить пул zfs import без работающего импорта zfs . Однако zfs import не является средством восстановления после ошибок, и поэтому общая стратегия также предусматривает резервное копирование вместо того, чтобы полагаться на то, что zfs является аварийным сохранением. Я добавил https://github.com/hiliev/py-zfs-rescue для поддержки пулов Linux: https://github.com/eiselekd/dumpbin-py-zfs-rescue. Благодаря этому я смог восстановить мои диски.

0

Ваш пул состоит из одного raidz1 vdev, который может пережить потерю любого отдельного устройства, и одно устройство в нем "повреждено", поэтому все, что нужно для импорта пула, должно быть прямо здесь.

Я не уверен, почему ZFS не импортировала ваш пул сразу и просто пометила одно устройство как UNAVAIL, но вы пробовали использовать -f как показывает вывод zpool import ? Это первое, что я попробую.

После того, как пул импортирован, должно быть тривиально zpool offline проблемный раздел в автономном режиме или, что еще лучше, просто zpool replace его, чтобы перезаписать данные и восстановить избыточность.

Как примечание, я рекомендую не использовать разделы с ZFS, если у вас нет действительно веских причин для этого. Просто дайте ZFS весь диск (например, /dev/disk/by-id/ata-WDC_WD30EZRX-00D8PB0_WD-WMC4N1642572) и позвольте ему обрабатывать разделы самостоятельно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .