У меня был пул 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
инструмент (с обновлениями из этого сообщения), но это, казалось, не решило проблему.
Какие-либо идеи?
Из комментария (с вводного плаката):
Я отредактировал исходники ZFS в моей установке FreeBSD и заставил их обходить все проверки работоспособности. После отключения достаточного количества из них мне удалось импортировать пул.
для будущих справок, просто делая zpool импорт -a (будет искать все), обычно также помогает, когда zpool/zfs fs не распознан.
.Я как-то напортачил с конфигурацией ZFS. К сожалению, я не помню, что именно я сделал (я менял некоторое оборудование, поэтому я напортачил; не будь таким, как я!), Но у меня это сработало. Я использую XigmaNAS (nas4free), и все приведенные ниже команды выполняются через терминал.
Некоторое смутное воспоминание о том, что я делал (и не делал):
Симптомы:
da1
. Этой информации мне достаточно, прежде чем перейти к терминалу. Вот несколько выполненных команд и результатов в терминале.
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 (имя пула)
решил проблему.
В моей системе FreeNAS 11.2 произошел сбой кабеля питания, из-за чего 3 диска в массиве отключились. Система вела себя странно (порт ssh был открыт, но ssh не отвечал).
После принудительного отключения питания и замены кабеля система включилась, но без массива. Массив не деградировал - он был помечен как OFFLINE. Я не мог подключить его к сети или даже снова импортировать массив, как бы я ни пытался.
Только после удаления записи для массива в веб-интерфейсе FreeNAS я смог импортировать массив. Кажется, системная БД была повреждена, и повреждение мешало распознаванию массива.
Решение.
Запуск команды zpool import -D -f (имя пула) решил проблему.
Работал на меня. Я создал пул на Ubuntu 18.04 LTS. и восстановил его на Ubuntu 20.04 LTS.
Опубликовал свой анализ также на Trunas Jira
Комментарий Меллмана спас мне жизнь: [РЕШЕНО - GPT поврежден или недействителен | Сообщество TrueNAS|https://www.truenas.com/community/threads/gpt-corrupt-or-invalid.81180/]
ПРЕДУПРЕЖДЕНИЕ/ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Поскольку у меня была система с несколькими зеркалами, я сначала удалил 2 из 3, чтобы снизить риск и избежать клонирования дисков перед началом восстановления. Два дня назад я удалил свою внешнюю заднюю панель, так что это была ситуация «все или ничего».
НАПОМИНАНИЕ: Зеркало не является резервным.ВСЕГДА пытайтесь сделать резервную копию на НЕподключенное устройство (USB-накопитель на другой сервер хранения)
команды, используемые для диагностики и восстановления
zpool import -D
sysctl kern.disks
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 Состояние: ДЕГРАДАЦИЯ Провайдеры:
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
ошибки: Нет известных ошибок данных
У меня была такая же или очень похожая проблема, это помогло:
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 пул не найден, и мне нужно определить диски