ZFS импортируют не могущий найти любые пулы

У меня был пул ZFS - зеркало, содержащее 2 vdevs - работа сервера FreeBSD. У меня теперь есть только один из дисков от зеркала, и я пытаюсь восстановить файлы с него.

Данные ZFS находятся в разделе GPT на диске.

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

Я работал zdb -lu на разделе, и это, кажется, находит маркировки очень хорошо.

# zpool import
# zpool import -D
# zpool status
no pools available
# zpool import -f ztmp
cannot import 'ztmp': no such pool available
# zpool import 16827460747202824739
cannot import '16827460747202824739': no such pool available

Информация о разделе:

# gpart list da0
Geom name: da0
modified: false
state: OK
fwheads: 255
fwsectors: 63
last: 3907029134
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: da0p1
   Mediasize: 65536 (64K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0
   rawuuid: d7a10230-8b0e-11e1-b750-f46d04227f12
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: (null)
   length: 65536
   offset: 17408
   type: freebsd-boot
   index: 1
   end: 161
   start: 34
2. Name: da0p2
   Mediasize: 17179869184 (16G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7aa40b7-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 17179869184
   offset: 82944
   type: freebsd-swap
   index: 2
   end: 33554593
   start: 162
3. Name: da0p3
   Mediasize: 1905891737600 (1.7T)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7b6a47e-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 1905891737600
   offset: 17179952128
   type: freebsd-zfs
   index: 3
   end: 3755999393
   start: 33554594
Consumers:
1. Name: da0
   Mediasize: 2000398934016 (1.8T)
   Sectorsize: 512
   Mode: r0w0e0

Маркировка ZFS:

--------------------------------------------
LABEL 0
--------------------------------------------
    version: 5000
    name: 'ztmp'
    state: 0
    txg: 0
    pool_guid: 16827460747202824739
    hostid: 740296715
    hostname: '#############'
    top_guid: 15350190479074972289
    guid: 3060075816835778669
    vdev_children: 1
    vdev_tree:
        type: 'mirror'
        id: 0
        guid: 15350190479074972289
        whole_disk: 0
        metaslab_array: 30
        metaslab_shift: 34
        ashift: 9
        asize: 1905887019008
        is_log: 0
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 3060075816835778669
            path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            phys_path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            whole_disk: 1
            DTL: 5511
            resilvering: 1
        children[1]:
            type: 'disk'
            id: 1
            guid: 3324029433529063540
            path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            phys_path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            whole_disk: 1
            DTL: 3543
            create_txg: 4
            resilvering: 1
    features_for_read:
    create_txg: 0
Uberblock[0]
    magic = 0000000000bab10c
    version = 5000
    txg = 0
    guid_sum = 1668268329223536005
    timestamp = 1361299185 UTC = Tue Feb 19 10:39:45 2013

(Другие маркировки являются точными копиями),

Существует обсуждение подобно звучащей проблемы в этом старом потоке. Я судил рабочего Jeff Bonwick labelfix инструмент (с обновлениями из этого сообщения), но это, казалось, не решило проблему.

Какие-либо идеи?

10
задан 28 March 2014 в 21:45
7 ответов

Из комментария (с вводного плаката):

Я отредактировал исходники ZFS в моей установке FreeBSD и заставил их обходить все проверки работоспособности. После отключения достаточного количества из них мне удалось импортировать пул.

4
ответ дан 2 December 2019 в 22:10

для будущих справок, просто делая zpool импорт -a (будет искать все), обычно также помогает, когда zpool/zfs fs не распознан.

.
5
ответ дан 2 December 2019 в 22:10

Я как-то напортачил с конфигурацией ZFS. К сожалению, я не помню, что именно я сделал (я менял некоторое оборудование, поэтому я напортачил; не будь таким, как я!), Но у меня это сработало. Я использую XigmaNAS (nas4free), и все приведенные ниже команды выполняются через терминал.

Некоторое смутное воспоминание о том, что я делал (и не делал):

  • Не экспортировал какой-либо пул
  • Возможно, был удален (уничтожен) пул.

Симптомы:

  1. В веб-интерфейсе disk может быть автоматически импортирован и распознан как zpool (не неформатированный, не UFS и т. д.)
  2. Однако раздел ZFS графического интерфейса пользователя не может обнаружить zpool. Поэтому я не могу импортировать пул, просто нажимая кнопки. Принудительный импорт тоже не работал.
  3. SMART-информация об этом диске хорошо отображается в графическом интерфейсе. Я не думаю, что диск физически поврежден.
  4. В разделе информации графического интерфейса диск отображается как da1 . Этой информации мне достаточно, прежде чем перейти к терминалу.
  5. Предупреждение другим пользователям: если у вас возникнут проблемы с графическим интерфейсом, немедленно прекратите любые деструктивные операции. Например, создание нового vdev или попытки с другими форматами дисков. Зайдите в терминал.
  6. Вот несколько выполненных команд и результатов в терминале.

    • zpool import -a говорит нет пула для импорта
    • zpool status говорит нет доступных пулов (неверный язык? Lol.)
    • gpart list - a не показывает da1
    • gpart list da1 говорит gpart: no such geom: da1
    • zpool list говорит нет доступных пулов
    • glabel list -a не показывает какой-либо пул в da1
    • zdb -l / dev / da1 может печатать две метки в da1 , поэтому мой диск не dead
    • zpool import -D сообщает, что пул на da1 уничтожен и может быть импортирован

Решение:

Выполнить zpool import -D -f (имя пула) решил проблему.

1
ответ дан 2 December 2019 в 22:10

В моей системе FreeNAS 11.2 произошел сбой кабеля питания, из-за чего 3 диска в массиве отключились. Система вела себя странно (порт ssh был открыт, но ssh не отвечал).

После принудительного отключения питания и замены кабеля система включилась, но без массива. Массив не деградировал - он был помечен как OFFLINE. Я не мог подключить его к сети или даже снова импортировать массив, как бы я ни пытался.

Только после удаления записи для массива в веб-интерфейсе FreeNAS я смог импортировать массив. Кажется, системная БД была повреждена, и повреждение мешало распознаванию массива.

0
ответ дан 3 May 2020 в 09:42

Решение.

Запуск команды zpool import -D -f (имя пула) решил проблему.

Работал на меня. Я создал пул на Ubuntu 18.04 LTS. и восстановил его на Ubuntu 20.04 LTS.

0
ответ дан 11 June 2020 в 06:04

Опубликовал свой анализ также на Trunas Jira

Комментарий Меллмана спас мне жизнь: [РЕШЕНО - GPT поврежден или недействителен | Сообщество TrueNAS|https://www.truenas.com/community/threads/gpt-corrupt-or-invalid.81180/]

Симптомы, связанные с OP

  • zpool исчез
  • все диски, казалось, присутствовали
  • вывод dmesg показывает такие вещи, как: GEOM_MULTIPATH: создан disk2 GEOM_MULTIPATH: da1 добавлен на disk2 GEOM_MULTIPATH: da1 теперь является активным путем на disk2 GEOM: multipath/disk2: обнаружен поврежденный или недопустимый GPT. ГЕОМ: multipath/disk2: GPT отклонен — восстановить его невозможно.

ПРЕДУПРЕЖДЕНИЕ/ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Поскольку у меня была система с несколькими зеркалами, я сначала удалил 2 из 3, чтобы снизить риск и избежать клонирования дисков перед началом восстановления. Два дня назад я удалил свою внешнюю заднюю панель, так что это была ситуация «все или ничего».

НАПОМИНАНИЕ: Зеркало не является резервным.ВСЕГДА пытайтесь сделать резервную копию на НЕподключенное устройство (USB-накопитель на другой сервер хранения)

команды, используемые для диагностики и восстановления

zpool import -D

  • нет доступных пулов для импорта

sysctl kern.disks

  • kern.disks: da3 da2 da1 da0 ada0 (–> все диски, которые я ожидал, где здесь)

zdb -l /dev/da3p2 (МЕТКИ вроде в порядке)

МЕТКА 0

версия: 5000 имя: 'акира_p01' состояние: 0 тхг: 29173828 pool_guid: 5424572115530985634 опечатки: 0 хостид: 4193025452 имя хоста: '' top_guid: 1827022710836996365 гид: 7863535274456000245 vdev_children: 2 vdev_tree: тип: "зеркало" идентификатор: 1 гид: 1827022710836996365 метаслаб_массив: 35 metaslab_shift: 34 переключение: 12 размер: 2998440558592 is_log: 0 create_txg: 4 дети[0]: тип: 'диск' идентификатор: 0 гид: 18165764508876870888 путь: '/dev/gptid/66eb141c-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4252 create_txg: 4 дети[1]: тип: 'диск' идентификатор: 1 гид: 7863535274456000245 путь: '/dev/gptid/696b5de4-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4251 create_txg: 4 features_for_read: com.delphix:hole_birth ком.delphix:embedded_data

МЕТКА 1

версия: 5000 имя: 'акира_p01' состояние: 0 тхг: 29173828 pool_guid: 5424572115530985634 опечатки: 0 хостид: 4193025452 имя хоста: '' top_guid: 1827022710836996365 гид: 7863535274456000245 vdev_children: 2 vdev_tree: тип: "зеркало" идентификатор: 1 гид: 1827022710836996365 метаслаб_массив: 35 metaslab_shift: 34 переключение: 12 размер: 2998440558592 is_log: 0 create_txg: 4 дети[0]: тип: 'диск' идентификатор: 0 гид: 18165764508876870888 путь: '/dev/gptid/66eb141c-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4252 create_txg: 4 дети[1]: тип: 'диск' идентификатор: 1 гид: 7863535274456000245 путь: '/dev/gptid/696b5de4-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4251 create_txg: 4 features_for_read: com.delphix:hole_birth com.delphix:embedded_data

МЕТКА 2

версия: 5000 имя: 'акира_p01' состояние: 0 тхг: 29173828 pool_guid: 5424572115530985634 опечатки: 0 хостид: 4193025452 имя хоста: '' top_guid: 1827022710836996365 гид: 7863535274456000245 vdev_children: 2 vdev_tree: тип: "зеркало" идентификатор: 1 гид: 1827022710836996365 метаслаб_массив: 35 metaslab_shift: 34 переключение: 12 размер: 2998440558592 is_log: 0 create_txg: 4 дети[0]: тип: 'диск' идентификатор: 0 гид: 18165764508876870888 путь: '/dev/gptid/66eb141c-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4252 create_txg: 4 дети[1]: тип: 'диск' идентификатор: 1 гид: 7863535274456000245 путь: '/dev/gptid/696b5de4-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4251 create_txg: 4 features_for_read: com.delphix:hole_birth ком.delphix:embedded_data

ЭТИКЕТКА 3

версия: 5000 имя: 'акира_p01' состояние: 0 тхг: 29173828 pool_guid: 5424572115530985634 опечатки: 0 хостид: 4193025452 имя хоста: '' top_guid: 1827022710836996365 гид: 7863535274456000245 vdev_children: 2 vdev_tree: тип: "зеркало" идентификатор: 1 гид: 1827022710836996365 метаслаб_массив: 35 metaslab_shift: 34 переключение: 12 размер: 2998440558592 is_log: 0 create_txg: 4 дети[0]: тип: 'диск' идентификатор: 0 гид: 18165764508876870888 путь: '/dev/gptid/66eb141c-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4252 create_txg: 4 дети[1]: тип: 'диск' идентификатор: 1 гид: 7863535274456000245 путь: '/dev/gptid/696b5de4-b09d-11e5-9fe8-00188b1dee45' весь_диск: 1 ДТЛ: 4251 create_txg: 4 features_for_read: com.delphix:hole_birth com.delphix:embedded_data

gmultipath list (СТРАННОЕ - должно было быть пустым,Я их никогда не создавал)

  • Дает мультипуть для каждого диска, который был в моем пуле. ПОЧЕМУ ---> Комментарий Меллмана сохранил это

Имя геометрии: disk1 Тип: АВТОМАТИЧЕСКИЙ Режим: активный/пассивный UUID: d68bb1af-3acc-11eb-9dd0-00012e7acada Состояние: ДЕГРАДАЦИЯ Провайдеры:

  1. Имя: multipath/disk1 Размер носителя: 3000592981504 (2,7 Тб) Размер сектора: 512 Размер полосы: 4096 Смещение полосы: 0 Режим: r0w0e0 Состояние: ДЕГРАДАЦИЯ Потребители:
  2. Имя: da0 Размер носителя: 3000592982016 (2,7 Тб) Размер сектора: 512 Размер полосы: 4096 Смещение полосы: 0 Режим: r1w1e1 Состояние: ACTIVE

gmultipath destroy disk1 (я очень испугался, но это не понадобилось, так как я был уверен, что НЕТ множественных путей) — выполните эту команду для каждого диска в вашем пуле (после проверки метки!).

zpool import -f

Пул wad FOUND, но поскольку я физически удалил два других диска из ЗЕРКАЛА, zpool еще не смог запуститься.

пул: akira_p01 идентификатор: 5424572115530985634 состояние: НЕДОСТУПНО статус: Одно или несколько устройств отсутствуют в системе. действие: Пул не может быть импортирован. Прикрепите недостающее устройств и повторите попытку. см.: http://illumos.org/msg/ZFS-8000-3C конфигурация:

akira_p01 UNAVAIL недостаточно реплик 16830735507974382924 НЕДОСТУПЕН не может открыть зеркало-1 ДЕГРАДИРОВАННОЕ 18165764508876870888 НЕДОСТУПЕН не может открыть gptid/696b5de4-b09d-11e5-9fe8-00188b1dee45 ONLINE

повторил команду gmultipath destroy для двух других дисков

снова запустил zpool import -f — YES YES YES - data back

zpool status бассейн: akira_p01 состояние: ОНЛАЙН сканирование: скраб восстановил 0B за 1 день 12:00:06 с 0 ошибками в понедельник, 7 декабря, 13:01:07 2020 config:

ИМЯ СОСТОЯНИЕ ЧТЕНИЕ ЗАПИСЬ CKSUM akira_p01 ОНЛАЙН 0 0 0 gptid/64cb349c-b09d-11e5-9fe8-00188b1dee45 ОНЛАЙН 0 0 0 зеркало-1 ОНЛАЙН 0 0 0 gptid/66eb141c-b09d-11e5-9fe8-00188b1dee45 ОНЛАЙН 0 0 0 gptid/696b5de4-b09d-11e5-9fe8-00188b1dee45 ONLINE 0 0 0

ошибки: Нет известных ошибок данных

0
ответ дан 11 December 2020 в 08:38

У меня была такая же или очень похожая проблема, это помогло:

ls -l /dev/disk/by-id/

Тогда, возможно, нужно монтировать первый раздел диска. Например:

sudo zpool import -a -d /dev/disk/by-id/ata-Samsung_SSD_abc-part1 -d /dev/disk/by-id/ata-Samsung_SSD_def-part1

(-переключатель может работать, не нужно запоминать имя пула)

Если возникают проблемы, попробуйте "man zpool-import"

я не знаю, почему sudo zpool import -a пул не найден, и мне нужно определить диски

1
ответ дан 13 March 2021 в 10:47

Теги

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