Тираню извращённо, забыл какие то шаги. Какие шаги предпринять чтобы починить?
Изначально вставил одну флешку, 32Gb. Сделал на ней раздел. Создал пул. Записал данные. Затем вставил 64Gb флешку. На ней не стал создавать раздел, а подключил как: #zfs attach raid-1 /dev/sdc1 /dev/sdd (Это вариант команды из головы, точно не могу процитировать) В итоге забавная ситуация. Один диск это sdc1, а на другом zfs создала 2 раздела:
Device Start End Sectors Size Type /dev/sdd1 2048 122155007 122152960 58,2G Solaris /usr & Apple ZFS /dev/sdd9 122155008 122171391 16384 8M Solaris reserved 1
Пул ресинкнулся. Работал, я его экспортировал, импортировал, а вот контрольный экспорт забыл сделать. Флешки занимали последние свободные USB порты, я поставил хаб, включил флешки в него и оно не взлетело после перезагрузки... Вставил флешки как было и теперь: #zpool import pool: raid-1 id: 3603826776807686061 state: DEGRADED status: One or more devices were being resilvered. action: The pool can be imported despite missing or damaged devices. The fault tolerance of the pool may be compromised if imported. config:
raid-1 DEGRADED mirror-0 DEGRADED sdc1 ONLINE sdc1 FAULTED corrupted data
Теоретически можно было заменить FAULTED на него же, но под другим именем - но оба девайса стоят под одним именем. Я даже не могу заменить скажем sdd на sde или на него же, предварительно удалив zfs метки.
Можно ли как то поднять DEGRADED пул? -f не помогает.
# zpool import raid-1 -f cannot import 'raid-1': one or more devices is currently unavailable
И какие мысли есть по замене одного из sdc? Какими командами можно посмотреть статус не импортированного пула?
P.S. Время прошло, мучаю zfs дальше. Создал ещё один пул, включал уже по UUID. Перенес на другой компьютер одну флешку из 2х в рейде. Пул благополучно импортировался в DEGRADED режиме.Что то с этим пулом не в порядке. Пусть живёт на флешке пока не найдётся решения.
Пока же озадачен тем как правильно включать устройства в пул? Ведь в Linux можно включить и диск, и раздел, и UUID раздела и тупо LVM том по имени. Что из них выбрать для боевого рейда?
Вот поэтому правильно использовать либо лейблы (для партишнов), либо идентификаторы устройств (если диски целиком).
Спасибо, буду иметь ввиду.
А теперь смотри GUID (у ZFS свои GUID) устройства (zpool status -g) и детач по нему, а не по имени устройства.
Вся проблема в том что статусы (как я понял) можно посмотреть только у активных пулов. У меня же он неактивный. Импортировать не могу: «cannot import 'raid-1': one or more devices is currently unavailable» А zpool status -g показывает лишь один активный пул.
Вообще как можно импортировать degraded пул? Ведь теоретически - raid должен работать даже если одно устройство отказало, а тут такое...
С устройствами вообще засада. Надо что то извлечь из этой ситуации и продолжить эксперименты. Ведь как я понял, устройство можно подключить и как раздел и как полное устройство.
Изначально я создал устройство как раздел. Затем приаттачил вторую, в2 раза большую флешку - целиком. В процессе экспериментов несколько раз перезагружался. Пул жил. Сейчас помер.
Теперь вставляю первую флешку с пулом на разделе. zpool import пул видит а импортировать не даёт.
Вставляю вторую флешку, подключенную как зеракало целиком устройством.
Device Start End Sectors Size Type /dev/sde1 2048 122155007 122152960 58,2G Solaris /usr & Apple ZFS /dev/sde9 122155008 122171391 16384 8M Solaris reserved 1
zfs сама создала разделы, но zpool import не показывает пулов для импорта. С чего бы это? Здесь тоже должен быть пул.
«cannot import ‘raid-1’: one or more devices is currently unavailable»
Даже с флагом -f?
теоретически - raid должен работать даже если одно устройство отказало
Его заменять следует когда ещё пул в работе, а не уже после ребута/экспорта.
Ведь как я понял, устройство можно подключить и как раздел и как полное устройство.
Если в ZFS отдать диск полностью, оно создаст Solaris-специфичные разделы, потому я предпочитаю размечать в GPT и отдавать разделы как мне надо. Эти соляровские разделы маленькие, так что не принципиально, но если размечать вручную, можно туда и ESP разместить, и pMBR.
С чего бы это? Здесь тоже должен быть пул.
На removable media не используется cachefile, потому надо импортировать с ключом -d, явно указывая диск, с которого нужно импортировать пул.
На removable media не используется cachefile, потому надо импортировать с ключом -d, явно указывая диск, с которого нужно импортировать пул.
О! Спасибо!
# zpool import -d /dev/sde pool: raid-1 id: 3603826776807686061 state: UNAVAIL status: One or more devices contains corrupted data. action: The pool cannot be imported due to damaged devices or data. see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-5E config:
Это тот пул с которого не виделось. И для устройства с пулом в разделе:
# zpool import -d /dev/sdc pool: raid-1 id: 3603826776807686061 state: UNAVAIL status: One or more devices contains corrupted data. action: The pool cannot be imported due to damaged devices or data. see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-5E config:
Кстати тут видно. sdc и sdc1 - разные девайсы. Может в zfs есть команда для принудительной сборки пула? Типа zpool assemble raid-recover /dev/sdc1 /dev/sde надо sdc1 sdc поменять на sdc1, sde.
P.S. Хотя чо эт я? Туплю...
# zpool import -d /dev/sdc1 pool: raid-1 id: 3603826776807686061 state: DEGRADED status: One or more devices were being resilvered. action: The pool can be imported despite missing or damaged devices. The fault tolerance of the pool may be compromised if imported. config:
raid-1 DEGRADED mirror-0 DEGRADED sdc1 ONLINE sdc1 FAULTED corrupted data
У меня же sdc был задан как sdc1. Но УВЫ!
# zpool import raid-1 -d /dev/sdc1 -f cannot import 'raid-1': one or more devices is currently unavailable
А разметку рекомендую уже освоить, за четырнадцать-то лет на техническом форуме. Выхлоп я даже не пытался читать, это больно.
Увы, в том и моя проблема. Туплю на ровном месте, это следствие тяжелого ушиба ствола мозга и недели мозговой комы. Но мне повезло гораздо больше чем Шумахеру... Я вот даже с Вами могу что то обсуждать и пытаться воспринять и запомнить сказанное. Пока я не понимаю что в вашем случае «не больно». Могу лишь попросить осилить тот «выхлоп» который больно читать и прямо в комментарии оформить его так как надо оформлять. Так я может пойму и запомню, в крайнем случае будет где «подглядеть». И кстати о 14 годах, это как раз уже через год после травмы я сюда попал, начал более-менее соображать и даже смог акк завести, а возможно и от «прошлой жизни» какой нибудь акк есть, но я его забыл.. Интернет то у меня ещё в 90х годах прошлого века появился, и ещё с тех пор я был «сисадмином», со времен OS/2 и FIDO.
В первом случае сразу видно структуру пула (в моём случае это RAID-10), состояние его компонентов (все ONLINE) и ошибки (0/0/0), не требуется "искать" интересующие данные, глаз сразу "цепляется" за какие-либо "аномалии". Во втором случае, особенно не моноширинным шрифтом, приходится вчитываться для поиска нужной информации.
Даже в виде таблицы читабельность падает:
NAME
STATE
READ
WRITE
CKSUM
data
ONLINE
0
0
0
mirror-0
ONLINE
0
0
0
gpt/data0
ONLINE
0
0
0
gpt/data1
ONLINE
0
0
0
mirror-1
ONLINE
0
0
0
gpt/data2
ONLINE
0
0
0
gpt/data3
ONLINE
0
0
0
Потому что отступов в начале строк нет, и структура уже потеряна.
Но вопрос так и остался. Как смонтировать рассыпавшийся zfs raid? Раздел на одной из флешек читается
raid-1 DEGRADED
mirror-0 DEGRADED
sdc1 ONLINE
sdc1 FAULTED corrupted data
И для того чтобы прочитать данные - его надо подмонтировать, но не монтируется, и -f не помогает.
По результатам обсуждения возникли и другие вопросы:
1. Монтировать по PARTUUID или может лучше LVM2? Идентификаторы типа Data_2 гораздо лучше читаются чем 72cf2c0b-fe32-4649-9aa6-45d1314d1139 При просмотре глазами - первый вариант логичен (/dev/raid_8/Data_8), а второй ID надо искать во всей иерархии разделов.
# zpool status zfs-solo-2
pool: zfs-solo-2
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zfs-solo-2 ONLINE 0 0 0
9f4e87fe-3d0f-cc45-891f-1dbbafdfbe22 ONLINE 0 0 0
errors: No known data errors
# zpool status zfs-solo
pool: zfs-solo
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zfs-solo ONLINE 0 0 0
Data_7 ONLINE 0 0 0
errors: No known data errors
Это пулы на разных флешках, один просто на разделе и подключен по UUID, а второй в LVM2 и подключен как LVM раздел.
Другое дело что в варианте с LVM получается масло масляное. Для каждого тома надо указать отдельный VG и отдельный LV При этом они переносимые. На другой машине он так же будет /dev/raid_8/Data_8, причём вообще не надо ни чего настраивать на том же Bookworm, только добавляется отдельный геморрой по деактивации pv перед вытаскиванием носителя.
Вот сейчас сижу перед винтом с Power_On_hours=0, забитым нулями и думаю как инициализировать? zfs на устройство? zfs на gpt раздел? zfs на LVM? Или вообще побить на 3+1? Чтобы если что - можно было 3Т винт в рейд воткнуть... (Первый винт уже побит потому что у него в паре 3Т, а новый или так же разбивать и 2 рейда делать 3Т+1Т или делать 4Т и всё рсинкать.)
Но вопрос так и остался. Как смонтировать рассыпавшийся zfs raid? Раздел на одной из флешек читается
Становится всё чудесатее и чудесатее.
root@zer0:~# zpool import
pool: raid-1
id: 3603826776807686061
state: DEGRADED
status: One or more devices were being resilvered.
action: The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported.
config:
raid-1 DEGRADED
mirror-0 DEGRADED
sdd1 ONLINE
sdc1 UNAVAIL corrupted data
Старый пул, который не могу импортировать.
# zpool import -f raid-1
cannot import 'raid-1': one or more devices is currently unavailable
Теперь добавляем одну флешку из нового пула:
root@zer0:~# zpool import
pool: zfs-solo-2
id: 12970693172804218342
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
zfs-solo-2 ONLINE
9f4e87fe-3d0f-cc45-891f-1dbbafdfbe22 ONLINE
pool: raid-1
id: 3603826776807686061
state: DEGRADED
status: One or more devices were being resilvered.
action: The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported.
config:
raid-1 DEGRADED
mirror-0 DEGRADED
sdd1 ONLINE
sdc1 UNAVAIL corrupted data
pool: zfs-raid-1
id: 11702920276725354413
state: DEGRADED
status: One or more devices contains corrupted data.
action: The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
config:
zfs-raid-1 DEGRADED
mirror-0 DEGRADED
1358037695955188531 UNAVAIL
27300dce-6a76-6a49-a10c-905100118633 ONLINE
Импортируем:
# zpool import zfs-raid-1
ВУАЛЯ! Пул зашел!
Что копать? Почему один DEGRADED пул импортируется,а другой нет?