ZFS на FreeBSD: відновлення після пошкодження даних


44

У мене є кілька туберкульозів дуже цінних особистих даних у зоопарку, до яких я не можу отримати доступ через корупцію даних. Спочатку пул був створений ще в 2009 році або близько того на системі FreeBSD 7.2, що працює у віртуальній машині VMWare поверх системи Ubuntu 8.04. FreeBSD VM все ще доступний і працює нормально, лише хост ОС змінився на Debian 6. Жорсткі диски робляться доступними для запрошеного VM за допомогою загальних пристроїв SCSI VMWare, загалом 12.

Є 2 басейни:

  • zpool01: 2x 4x 500GB
  • zpool02: 1x 4x 160GB

Той, хто працює, порожній, зламаний містить усі важливі дані:

[user@host~]$ uname -a
FreeBSD host.domain 7.2-RELEASE FreeBSD 7.2-RELEASE #0: \
  Fri May  1 07:18:07 UTC 2009                          \
  root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

[user@host ~]$ dmesg | grep ZFS
WARNING: ZFS is considered to be an experimental feature in FreeBSD.
ZFS filesystem version 6
ZFS storage pool version 6

[user@host ~]$ sudo zpool status
  pool: zpool01
 state: UNAVAIL
 scrub: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    zpool01     UNAVAIL      0     0     0  insufficient replicas
      raidz1    UNAVAIL      0     0     0  corrupted data
        da5     ONLINE       0     0     0
        da6     ONLINE       0     0     0
        da7     ONLINE       0     0     0
        da8     ONLINE       0     0     0
      raidz1    ONLINE       0     0     0
        da1     ONLINE       0     0     0
        da2     ONLINE       0     0     0
        da3     ONLINE       0     0     0
        da4     ONLINE       0     0     0

  pool: zpool02
 state: ONLINE
 scrub: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    zpool02     ONLINE       0     0     0
      raidz1    ONLINE       0     0     0
        da9     ONLINE       0     0     0
        da10    ONLINE       0     0     0
        da11    ONLINE       0     0     0
        da12    ONLINE       0     0     0

errors: No known data errors

Мені вдалося отримати доступ до басейну пару тижнів тому. З тих пір мені довелося майже повністю замінити все обладнання апаратної машини та встановити кілька операційних систем хоста.

Я підозрюю, що одна з цих установок ОС написала завантажувач (чи що завгодно) одному (першому?) Накопичувачам на 500 ГБ і знищила деякі метадані zpool (чи що завгодно) - «або що б там не було», що означає, що це просто дуже розпливчаста ідея і ця тема не є моєю сильною стороною ...


Про ZFS існує багато веб-сайтів, блогів, списків розсилки тощо. Я розміщую це запитання тут, сподіваючись, що це допоможе мені зібрати достатньо інформації для розумного, структурованого, контрольованого, поінформованого підходу, щоб повернути мої дані - і, сподіваємось, допомогти комусь іншому там у тій же ситуації.


Перший результат пошуку під час googling для 'zfs recovery' - це розділ щодо усунення несправностей та відновлення даних ZFS з Посібника з адміністрації Solaris ZFS. У першому розділі режимів відмов ZFS в розділі "Пошкоджені дані ZFS" зазначено:

Корупція даних завжди є постійною і потребує особливої ​​уваги під час ремонту. Навіть якщо основні пристрої відремонтовані або замінені, вихідні дані втрачаються назавжди.

Дещо зневажливо.

Однак другий результат пошуку в Google - це веб-журнал Макса Брунінга, і я там прочитав

Нещодавно мені надіслали електронний лист від того, хто 15 років зберігав відео та музику в пулі ZFS 10 ТБ, який після відключення електроенергії став несправним. У нього, на жаль, не було резервного копіювання. Він використовував ZFS версії 6 на FreeBSD 7 [...] Провівши близько 1 тижня на вивчення даних на диску, я зміг відновити все це.

і

Що стосується втрати вами даних ZFS, я сумніваюся. Я підозрюю, що ваші дані є, але вам потрібно знайти правильний спосіб отримати їх.

(це звучить набагато більше, як щось, що я хочу почути ...)

Перший крок : Яка саме проблема?

Як я можу діагностувати, чому саме зоопарк повідомляється про пошкоджений? Я бачу, є zdb, який, схоже, не офіційно зафіксований Sun або Oracle в будь-якій точці Інтернету. З його чоловічої сторінки:

NAME
       zdb - ZFS debugger

SYNOPSIS
       zdb pool

DESCRIPTION
       The  zdb  command is used by support engineers to diagnose failures and
       gather statistics. Since the ZFS file system is  always  consistent  on
       disk  and is self-repairing, zdb should only be run under the direction
       by a support engineer.

       If no arguments are specified, zdb, performs basic  consistency  checks
       on  the pool and associated datasets, and report any problems detected.

       Any options supported by this command are internal to Sun  and  subject
       to change at any time.

Крім того, Бен Роквуд опублікував детальну статтю, і є відео Макса Брюнінга, який розповідає про це (та mdb) на Відкритій конференції розробників Solaris у Празі 28 червня 2008 року.

Запуск zdb як кореня на розбитому zpool дає такий результат:

[user@host ~]$ sudo zdb zpool01
    version=6
    name='zpool01'
    state=0
    txg=83216
    pool_guid=16471197341102820829
    hostid=3885370542
    hostname='host.domain'
    vdev_tree
        type='root'
        id=0
        guid=16471197341102820829
        children[0]
                type='raidz'
                id=0
                guid=48739167677596410
                nparity=1
                metaslab_array=14
                metaslab_shift=34
                ashift=9
                asize=2000412475392
                children[0]
                        type='disk'
                        id=0
                        guid=4795262086800816238
                        path='/dev/da5'
                        whole_disk=0
                        DTL=202
                children[1]
                        type='disk'
                        id=1
                        guid=16218262712375173260
                        path='/dev/da6'
                        whole_disk=0
                        DTL=201
                children[2]
                        type='disk'
                        id=2
                        guid=15597847700365748450
                        path='/dev/da7'
                        whole_disk=0
                        DTL=200
                children[3]
                        type='disk'
                        id=3
                        guid=9839399967725049819
                        path='/dev/da8'
                        whole_disk=0
                        DTL=199
        children[1]
                type='raidz'
                id=1
                guid=8910308849729789724
                nparity=1
                metaslab_array=119
                metaslab_shift=34
                ashift=9
                asize=2000412475392
                children[0]
                        type='disk'
                        id=0
                        guid=5438331695267373463
                        path='/dev/da1'
                        whole_disk=0
                        DTL=198
                children[1]
                        type='disk'
                        id=1
                        guid=2722163893739409369
                        path='/dev/da2'
                        whole_disk=0
                        DTL=197
                children[2]
                        type='disk'
                        id=2
                        guid=11729319950433483953
                        path='/dev/da3'
                        whole_disk=0
                        DTL=196
                children[3]
                        type='disk'
                        id=3
                        guid=7885201945644860203
                        path='/dev/da4'
                        whole_disk=0
                        DTL=195
zdb: can't open zpool01: Invalid argument

Я припускаю, що в кінці помилки "недійсного аргументу" виникає тому, що zpool01 насправді не існує: він не виникає на робочому zpool02, але, здається, не буде жодного подальшого виводу ...

Добре, на цьому етапі, ймовірно, краще опублікувати це, перш ніж стаття стане занадто довгою.

Можливо, хтось може дати мені поради щодо того, як рухатись звідси вперед, і поки я чекаю на відповідь, я перегляну відео, перегляну деталі виводу zdb вище, прочитаю статтю Bens і спробую розібратися, що таке що...


20110806-1600 + 1000

Оновлення 01:

Я думаю, що я знайшов першопричину: Макс Брунінг був досить люб'язним, щоб відповісти на мій електронний лист дуже швидко, попросивши отримати вихід zdb -lll. На будь-якому з 4 жорстких дисків у «хорошій» половині пулу, вихід виходить аналогічним тому, що я розмістив вище. Однак на перших 3 з 4 дисків у "розбитій" половині, zdbзвіти failed to unpack labelдля міток 2 та 3. Четвертий диск у пулі здається нормальним, zdbпоказує всі мітки.

Погугливши це повідомлення про помилку, з’являється ця публікація . З першої відповіді на цю посаду:

Що стосується ZFS, це 4 однакові мітки на кожному фізичному vdev, в цьому випадку - один жорсткий диск. L0 / L1 на початку vdev, і L2 / L3 в кінці vdev.

Всі 8 накопичувачів у басейні однієї моделі, Seagate Barracuda 500GB . Однак я пам’ятаю, що я запустив басейн із 4-х накопичувачів, потім один із них загинув і його під гарантією замінив Seagate. Пізніше я додав ще 4 диски. З цієї причини ідентифікатори приводу та прошивки різні:

[user@host ~]$ dmesg | egrep '^da.*?: <'
da0:  <VMware, VMware Virtual S 1.0> Fixed Direct Access SCSI-2 device 
da1:  <ATA ST3500418AS CC37> Fixed Direct Access SCSI-5 device 
da2:  <ATA ST3500418AS CC37> Fixed Direct Access SCSI-5 device 
da3:  <ATA ST3500418AS CC37> Fixed Direct Access SCSI-5 device 
da4:  <ATA ST3500418AS CC37> Fixed Direct Access SCSI-5 device 
da5:  <ATA ST3500320AS SD15> Fixed Direct Access SCSI-5 device 
da6:  <ATA ST3500320AS SD15> Fixed Direct Access SCSI-5 device 
da7:  <ATA ST3500320AS SD15> Fixed Direct Access SCSI-5 device 
da8:  <ATA ST3500418AS CC35> Fixed Direct Access SCSI-5 device 
da9:  <ATA SAMSUNG HM160JC AP10> Fixed Direct Access SCSI-5 device 
da10: <ATA SAMSUNG HM160JC AP10> Fixed Direct Access SCSI-5 device 
da11: <ATA SAMSUNG HM160JC AP10> Fixed Direct Access SCSI-5 device 
da12: <ATA SAMSUNG HM160JC AP10> Fixed Direct Access SCSI-5 device 

Я пам’ятаю, хоча всі диски мали однаковий розмір. Тепер, дивлячись на накопичувачі, видно, що розмір змінився для трьох з них, вони зменшилися на 2 Мб:

[user@host ~]$ dmesg | egrep '^da.*?: .*?MB '
da0:   10240MB (20971520  512 byte sectors: 255H 63S/T 1305C)
da1:  476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
da2:  476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
da3:  476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
da4:  476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
da5:  476938MB (976771055 512 byte sectors: 255H 63S/T 60801C) <--
da6:  476938MB (976771055 512 byte sectors: 255H 63S/T 60801C) <--
da7:  476938MB (976771055 512 byte sectors: 255H 63S/T 60801C) <--
da8:  476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
da9:  152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)
da10: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)
da11: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)
da12: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)

Тож по зовнішньому вигляду це не одна з установок ОС, яка "написала завантажувач одним приводам" (як я припускав раніше), це була фактично нова материнська плата ( ASUS P8P67 LE ), що створила хост 2 Мб захищена зона в кінці трьох дисків, які зіпсували мої метадані ZFS.

Чому він не створив HPA на всіх накопичувачах? Я вважаю, це тому, що створення HPA робиться лише на старих накопичувачах з помилкою, яку потім було виправлено оновленням BIOS на жорсткому диску Seagate: Коли весь цей інцидент розпочався пару тижнів тому, я запустив SeaTools Seagate, щоб перевірити, чи є нічого фізично не в порядку з накопичувачами (все ще на старому апаратному забезпеченні), і я отримав повідомлення про те, що для деяких моїх дисків потрібне оновлення BIOS. Оскільки я зараз намагаюся відтворити точні деталі цього повідомлення та посилання на завантаження оновлення прошивки, схоже, що оскільки материнська плата створила HPA, обидві версії DOS SeaTools не змогли виявити спірний жорсткий диск - швидкий invalid partitionабо щось подібне спалахує, коли вони починаються, ось і все. Як не дивно, вони все ж знаходять набір накопичувачів Samsung.

(Я пропустив болючі, трудомісткі і в кінцевому рахунку безрезультатні деталі вкручування оболонки FreeDOS в немережевій системі.) Зрештою, я встановив Windows 7 на окрему машину для того, щоб запустити SeaTools Windows версія 1.2.0.5. Лише останнє зауваження про DOS SeaTools: Не турбуйтеся намагатися завантажувати їх самостійно - замість цього вкладіть пару хвилин і зробіть завантажувальний USB-накопичувач із дивовижним компакт-диском для завантаження - який, окрім DOS SeaTools, також дає вам багато інших корисні інструменти.

Після запуску SeaTools для Windows відкриває це діалогове вікно:

Діалог оновлення прошивки SeaTools

Посилання ведуть до перевірки серійних номерів (який чомусь захищений за допомогою капчу - моя "Інвазивні користувачі") та статті бази знань про оновлення програмного забезпечення. Напевно, є додаткові посилання, характерні для моделі жорсткого диска та деяких завантажень, а що ні, але поки що я не буду слідувати цьому шляху:

Я не поспішаю оновлювати прошивку трьох дисків одночасно, які мають усічені розділи і є частиною розбитого пулу пам’яті. Ось просить клопоту. Для початку оновлення програмного забезпечення, швидше за все, не можна відмінити - і це може безповоротно зруйнувати мої шанси повернути мої дані.

Тому найперше, що я збираюся зробити далі, - це зображення приводів та робота з копіями, тож є оригінал, на який слід повернутися, якщо щось піде не так. Це може ввести додаткову складність, оскільки ZFS, ймовірно, помітить, що диски були замінені (за допомогою серійного номера накопичувача чи іншого UUID або іншого), навіть якщо це бітові точні копії DD на ту ж модель жорсткого диска. Більше того, зопуль навіть не живе. Хлопчик, це може стати складним.

Іншим варіантом, однак, було б працювати з оригіналами і зберігати дзеркальні диски як резервне копіювання, але тоді я, мабуть, зіткнуться з вище складністю, коли щось пішло не так з оригіналами. Ні, не добре.

Для того, щоб очистити три жорсткі диски, які будуть слугувати заміною зображень для трьох дисків із помилкою BIOS у розбитому пулі, мені потрібно створити трохи місця для зберігання речей, які зараз є, тому я заглиблюся вглиб коробку обладнання та зібрати тимчасовий zpool із старих накопичувачів - що я також можу використати, щоб перевірити, як ZFS має справу з заміною накопичувачів dd'd.

Це може зайняти деякий час ...


20111213-1930 + 1100

Оновлення 02:

Це дійсно зайняло деякий час. Я проводив місяці з кількома відкритими корпусами комп’ютерів на своєму столі з різною кількістю стежок з жорстким приводом, а також спав кілька ночей з вушними пробками, тому що я не міг вимкнути машину перед сном, оскільки вона виконувала деяку тривалу критичну роботу . Однак я переважав нарешті! :-) Я також багато чого навчився в цьому процесі, і я хотів би поділитися цим знаннями для всіх, хто перебуває в подібній ситуації.

Ця стаття вже набагато довша, ніж хтось із файловим сервером ZFS не працює, має час прочитати, тому я детально опишусь тут і створять відповідь із суттєвими висновками далі.

Я занурився глибоко в застарілий апаратний ящик, щоб зібрати достатньо місця для зберігання, щоб перемістити речі з єдиних накопичувачів на 500 ГБ, до яких дзеркально відображаються несправні диски. Я також повинен був вирвати кілька жорстких дисків зі своїх USB-корпусів, так що я міг підключити їх безпосередньо через SATA. Було пов'язано ще декілька непов'язаних проблем, і деякі старі диски почали виходити з ладу, коли я повернув їх в дію, вимагаючи заміни zpool, але я пропускаю це.

Порада: На деякому етапі в цьому було залучено близько 30 жорстких дисків. Маючи таку кількість апаратних засобів, величезна допомога правильно скласти їх; Кабелі, які випадають із вашого столу, або жорсткий диск, безумовно, не допоможуть у цьому процесі та можуть завдати подальшої шкоди цілісності ваших даних.

Я витратив пару хвилин, створюючи кілька кріпильних жорстких дисків з картону, які справді допомогли впорядкувати речі:

деякий простір зберігання просто купа шурупів плюс трохи картону вентилятор точно не потрібен, стек - з більш раннього проекту шматки відстані також не потрібні ...

За іронією долі, коли я вперше підключив старі диски, я зрозумів, що там є старий zpool, який я, мабуть, створив для тестування з більш старою версією деяких, але не всіх особистих даних, які пропали безвісти, тож втрата даних була дещо зменшено, це означало додаткове переміщення файлів назад і назад.

Нарешті, я відобразив проблемні накопичувачі до резервних дисків, використав їх для zpool і залишив оригінали відключеними. Диски резервного копіювання мають новішу прошивку, принаймні SeaTools не повідомляє про необхідні оновлення програмного забезпечення. Я робив дзеркальне відображення за допомогою простого дд від одного пристрою до іншого, наприклад

sudo dd if=/dev/sda of=/dev/sde

Я вважаю, що ZFS помічає зміни в апараті (деяким UUID на жорсткому диску чи будь-яким іншим), але, здається, це не хвилює.

Однак zpool все ще знаходився в тому ж стані, недостатньо реплік / пошкоджених даних.

Як згадувалося у статті, що згадується раніше у Вікіпедії HPA , про наявність захищеної зони хоста повідомляється, коли Linux завантажується, і їх можна досліджувати за допомогою hdparm . Наскільки я знаю, у FreeBSD не існує інструменту hdparm, але до цього моменту у мене все-таки було встановлено FreeBSD 8.2 та Debian 6.0 як система з подвійним завантаженням, тому я завантажився в Linux:

user@host:~$ for i in {a..l}; do sudo hdparm -N /dev/sd$i; done

   ...
/dev/sdd:
 max sectors   = 976773168/976773168, HPA is disabled
/dev/sde:
 max sectors   = 976771055/976773168, HPA is enabled
/dev/sdf:
 max sectors   = 976771055/976773168, HPA is enabled
/dev/sdg:
 max sectors   = 976771055/976773168, HPA is enabled
/dev/sdh:
 max sectors   = 976773168/976773168, HPA is disabled
   ...

Очевидно, проблема полягала в тому, що нова материнська плата створила HPA в пару мегабайт в кінці накопичувача, що "приховало" два верхніх мітки ZFS, тобто не дозволило ZFS побачити їх.


Дабл з HPA здається небезпечним бізнесом. На сторінці man-hdparm параметр -N:

Get/set max visible number of sectors, also known as the Host Protected Area setting.
  ...
To change the current max (VERY DANGEROUS, DATA LOSS IS EXTREMELY LIKELY), a new value
should be provided (in base10) immediately following the -N option.
This value is specified as a count of sectors, rather than the "max sector address"
of the drive. Drives have the concept of a temporary (volatile) setting which is lost on
the next hardware reset, as well as a more permanent (non-volatile) value which survives
resets and power cycles.  By default, -N affects only the temporary (volatile) setting.
To change the permanent (non-volatile) value, prepend a leading p character immediately
before the first digit of the value. Drives are supposed to allow only a single permanent
change per session. A hardware reset (or power cycle) is required before another
permanent -N operation can succeed.
  ...

У моєму випадку HPA видаляється так:

user@host:~$ sudo hdparm -Np976773168 /dev/sde

/dev/sde:
 setting max visible sectors to 976773168 (permanent)
 max sectors   = 976773168/976773168, HPA is disabled

так само, як і для інших дисків з HPA. Якщо ви отримали неправильний диск або щось із вказаним вами параметром розміру не є правдоподібним, hdparm досить розумний, щоб зрозуміти:

user@host:~$ sudo hdparm -Np976773168 /dev/sdx

/dev/sdx:
 setting max visible sectors to 976773168 (permanent)
Use of -Nnnnnn is VERY DANGEROUS.
You have requested reducing the apparent size of the drive.
This is a BAD idea, and can easily destroy all of the drive's contents.
Please supply the --yes-i-know-what-i-am-doing flag if you really want this.
Program aborted.

Після цього я перезапустив віртуальну машину FreeBSD 7.2, на якій спочатку був створений zpool, і статус zpool знову повідомив про робочий пул. ТАК! :-)

Я експортував пул у віртуальну систему та повторно імпортував його в хост-систему FreeBSD 8.2.

Ще кілька основних оновлень обладнання, ще одна заміна материнської плати, оновлення пулу ZFS до ZFS 4/15, ретельне скрабінг, і тепер мій zpool складається з 8x1TB плюс 8x500GB raidz2 запчастин:

[user@host ~]$ sudo zpool status
  pool: zpool
 state: ONLINE
 scrub: none requested
config:

NAME        STATE     READ WRITE CKSUM
zpool       ONLINE       0     0     0
  raidz2    ONLINE       0     0     0
    ad0     ONLINE       0     0     0
    ad1     ONLINE       0     0     0
    ad2     ONLINE       0     0     0
    ad3     ONLINE       0     0     0
    ad8     ONLINE       0     0     0
    ad10    ONLINE       0     0     0
    ad14    ONLINE       0     0     0
    ad16    ONLINE       0     0     0
  raidz2    ONLINE       0     0     0
    da0     ONLINE       0     0     0
    da1     ONLINE       0     0     0
    da2     ONLINE       0     0     0
    da3     ONLINE       0     0     0
    da4     ONLINE       0     0     0
    da5     ONLINE       0     0     0
    da6     ONLINE       0     0     0
    da7     ONLINE       0     0     0

errors: No known data errors

[user@host ~]$ df -h
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/label/root     29G     13G     14G    49%    /
devfs              1.0K    1.0K      0B   100%    /dev
zpool              8.0T    3.6T    4.5T    44%    /mnt/zpool

Як останнє слово, мені здається, басейни ZFS дуже і дуже важко вбити. Хлопці з Sun від того, хто створив цю систему, мають усі підстави називати її останнім словом у файлових системах. Повага!


2
Перш ніж щось робити, зображте ці диски! Візьміть резервну копію своїх "пошкоджених" даних, якщо ви погіршите їх.
MikeyB

так, це дуже вдалий момент! і це також причина, чому я ще не оновлював цю статтю зі своїм прогресом - все ще зайнятий очищенням заміни жорстких дисків ...
ssc

Відповіді:


24

Проблема полягала в тому, що BIOS нової материнської плати створив зону, захищену від хостів (HPA) на деяких дисках, невеликий розділ, який використовуються виробниками виробника для цілей відновлення системи, як правило, розташовані в кінці жорсткого диска.

ZFS підтримує 4 мітки з метаінформацією розділів, і HPA не дозволяє ZFS бачити верхні два.

Рішення: Завантажте Linux, використовуйте hdparm для огляду та видалення HPA. Будьте дуже обережні, це може легко знищити ваші дані назавжди. Докладні відомості див. У статті та на сторінці людини hdparm (параметр -N).

Проблема виникала не лише з новою материнською платою, у мене була подібна проблема при підключенні накопичувачів до карти контролера SAS. Рішення те саме.


5

Перше, що я рекомендую вам зробити - це придбати ще кілька жорстких дисків і зробити копії 8 накопичувачів, які ви маєте на своїх даних, використовуючи ddкоманду. Таким чином, якщо у ваших спробах відновити їх у результаті все погіршиться, ви все одно можете повернутися до цієї базової лінії.

Я робив це раніше і були випадки, коли мені це не потрібно, але часи, в яких я це потребував, зробили цілком варті зусиль.

Не працюйте без мережі.


Насправді, я б рекомендував ddrescueбільше dd. Насправді це не дуже сильно працює, коли накопичувачі функціонують ідеально (але це дає хороший показник прогресу), але якщо є якісь проблемні сектори чи щось подібне, ddrescue обробляє цю ситуацію набагато краще, ніж dd (або так я мені сказали).
CVn

2

Ви, здається, на шляху до вирішення цього питання. Якщо ви хочете іншої, можливої ​​нової точки зору, ви можете спробувати живий компакт-диск Solaris 11 Express. Там, ймовірно, працює набагато новіший код (zpool у Solaris зараз у версії 31, тоді як ви перебуваєте у версії 6), і він може запропонувати кращі можливості відновлення. Не бігайте zpool upgradeпід Solaris, хоча, якщо ви хочете, щоб басейн монтувався під FreeBSD.


Дякую за цю пораду! :-) Я дивився на OpenSolaris ще в 2009 році, коли я розпочав весь цей бізнес ZFS, але, на жаль, він не підтримував контролери, якими я користуюся - це все-таки споживче обладнання. Зовсім недавно я також дивився на OpenIndiana, але не впевнений, чи змінилася ситуація. Я можу на певному етапі оновити контролери до SAS і розглянути можливість міграції.
ssc

Я думаю, що OpenIndiana, можливо, вартує нового погляду. Якщо нічого іншого, вони можуть бути більш привітними до "дешевого" обладнання, ніж Oracle ... Я рекомендував живий компакт-диск, тому що це легко випробувати - ви також можете запустити його в VM.
Якоб Борг

1

Списки розсилки FreeBSD можуть стати хорошою відправною точкою для вашого пошуку. Пам'ятаю, я бачив подібні запити на FreeBSD-Stable та -Current. Залежно від важливості ваших даних, ви можете звернутися до професійної фірми з відновлення, однак підробка недоступних пулів зберігання даних має хороші шанси погіршити ситуацію.


1

У мене виникли подібні проблеми після оновлення з FreeBSD 10.3 до 11.1, після чого zpool виникла, і відновити дані не було можливості, навіть незважаючи на те, що zdb -lllвсі чотири мітки повернули дійсні.

Виявляється, якимось чином оновлення запустило драйвери управління зберіганням Intel створити з дисків програмне дзеркало з програмним забезпеченням (можливо, це було ввімкнено, але не підтримувалося geomпровайдером Intel до поновлення?), І це заважало ZFS монтувати диски.

Приєднавши їх до іншого ПК з увімкненою прошивкою програмного забезпечення Intel RST та відключенням програмного забезпечення ( дуже важливо: є два способи зламати софтрейд, за замовчуванням якого ініціалізуються (так само формати!) Диски. Вам потрібно вибрати варіант для відключіть, не торкаючись натомість даних), тоді дозвольте ZFS розпізнати перший диск у дзеркалі, хоча нічого, що я зробив, не дозволило б ідентифікувати решту дисків як ті, що були в машині попереднього оновлення. На щастя, це був дзеркальний zpool, і я зміг просто від'єднати та приєднати диски до спірного басейну, а resilver завершено без події.

Побічна примітка: У моєму випадку hdparm(працює з живого сервера Ubuntu Server ISO) повідомляється, що HBA було відключено на всіх дисках і не змогло допомогти.


-2

якби це була лише якась проблема з розділами, я б утворив дискові розділи + MBR і просто зробив би розділ потрібного розміру ...

якщо ви не форматуєте розділ, створення або зміна таблиці розділів нічого не впливає (тому ви можете відкотити це!), поки немає формату, то більшість даних все ще є / доступними, якщо новий розділ вставлений наприкінці диска у вас можуть бути пошкоджені файли там, де нові речі були написані важко, тому ваше єдине корисне для цього трюку до форматування (новий mbr, таблиця файлів тощо ...)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.