Развалился raidz2 на файлопомойке

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
SS
проходил мимо

Развалился raidz2 на файлопомойке

Непрочитанное сообщение SS » 2013-12-09 12:29:08

Ситуация следующая: есть гипервизор (проксмокс), на котором крутятся виртуалки, в том числе и файлопомойка на базе Nas4Free. Ей выдано было пять дисков, где один системный на 3 гига, 4 по 400 гигов отдавались в пул zfs. Недавно виртуалка перестала отвечать, а после перезагрузки ушла в ребут-цикл -- при попытке подмонтировать пул система выдавала панику. Попытки смонтировать пул в других дистрибутивах, основанных на FreeBSD, также не увенчались успехом, также вылетала паника. В свежескачанном 11 солярисе пул "монтировался" только с ключом -V, но найти его было невозможно. Поиски способов восстановления привели в том числе и к статье от BlackCat http://www.lissyara.su/articles/freebsd ... _recovery/. С её помощью выяснил, что последней удачной транзакцией zfs считала некоторую 4273868-ю, а в массиве уберблоков были за 4400000. Собственно, как и что можно сделать, чтобы хотя бы скопировать данные?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

SS
проходил мимо

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение SS » 2013-12-09 12:39:57

Вывод zdb. На неизменённые диски солярис не ругалася, но говорил, что пул в состоянии faulted.

Код: Выделить всё

LABEL 0
--------------------------------------------
    version: 28
    name: 'r1'
    state: 0
    txg: 4273868
    pool_guid: 4651652232851139502
    hostname: ''
    top_guid: 5698945487837190948
    guid: 5103665716231737406
    vdev_children: 1
    vdev_tree:
        type: 'raidz'
        id: 0
        guid: 5698945487837190948
        nparity: 2
        metaslab_array: 30
        metaslab_shift: 33
        ashift: 9
        asize: 1717968044032
        is_log: 0
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 5103665716231737406
            path: '/dev/vtbd1'
            phys_path: '/dev/vtbd1'
            whole_disk: 1
            create_txg: 4
        children[1]:
            type: 'disk'
            id: 1
            guid: 2955603279638369563
            path: '/dev/vtbd2'
            phys_path: '/dev/vtbd2'
            whole_disk: 1
            create_txg: 4
        children[2]:
            type: 'disk'
            id: 2
            guid: 10457907822566881951
            path: '/dev/vtbd3'
            phys_path: '/dev/vtbd3'
            whole_disk: 1
            create_txg: 4
        children[3]:
            type: 'disk'
            id: 3
            guid: 12784877634711548437
            path: '/dev/vtbd4'
            phys_path: '/dev/vtbd4'
            whole_disk: 1
            create_txg: 4
После попытки тупо скорректировать значение txg на первое попавшееся, солярис стал говорить corrupted data на все диски

Код: Выделить всё

--------------------------------------------
LABEL 0
--------------------------------------------
    version: 28
    name: 'r1'
    state: 0
    txg: 4401792
    pool_guid: 4651652232851139502
    hostname: ''
    top_guid: 5698945487837190948
    guid: 5103665716231737406

lazhu
сержант
Сообщения: 254
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение lazhu » 2013-12-09 12:48:33

Код: Выделить всё

zpool clear -F <poolname>
не спасет отца русской демократии?

SS
проходил мимо

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение SS » 2013-12-09 13:27:51

Для этого пул должен быть смонтирован, верно? Солярис хоть и импортирует, но устройствам даёт статус unavailable.

lazhu
сержант
Сообщения: 254
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение lazhu » 2013-12-09 16:53:13

Зачем солярис? В фряхе zpool status показывает пул? К нему и применяйте, не надо ничего монтировать.

Код: Выделить всё

# man zpool
...
zpool clear [-F [-n]] pool [device]

         Clears device errors in a pool. If no arguments are specified, all
         device errors within the pool are cleared. If one or more devices is
         specified, only those errors associated with the specified device or
         devices are cleared.

         -F      Initiates recovery mode for an unopenable pool. Attempts to
                 discard the last few transactions in the pool to return it to
                 an openable state. Not all damaged pools can be recovered by
                 using this option. If successful, the data from the discarded
                 transactions is irretrievably lost.

         -n      Used in combination with the -F flag. Check whether discard?
                 ing transactions would make the pool openable, but do not
                 actually discard any transactions.
...

SS
проходил мимо

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение SS » 2013-12-09 18:25:33

Изначальная машина перезагружается, а если загрузится с лив-сд, то zpool status сначала скажет, что no pool available, пока не импортирую. А как импортирую, так ловлю fatal trap 12. Я что-то упускаю?

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение skeletor » 2013-12-11 12:18:45

Сталкивался с похожей ситуацией. Тут выход только 1: грузиться с Solaris и смотреть, что с пулом. В 99% случаев придёться пересоздавать пул или удалять, добавлять диски в него. Никакие scrub ни импорт не помогают. Фря с zfs как-то хреновенько дружит, если дисковые контроллеры (то есть без рейда, обычные порты на материнке) такие себе. На нормальных (lsi, adaptec, areca, 3com, ...) всё нормально работает.

SS
проходил мимо

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение SS » 2013-12-11 15:22:53

А данные по крайней мере попробовать-то вытащить как-то можно же? Сейчас пробую при помощи foremost что-то выцепить -- отдельные куски файлов есть, ворд с экселем даже что-то открывают. Но вот если второй, изменённый видать, вариант файла открыть, то там совсем чуть-чуть, только имена страниц книг да немного текста в вородовских. Для zfs есть что-то более подходящее? Или где-нибудь какой-нибудь скрипт существует, чтоб данные содрать? Массив уберблоков вроде цел, zdb его нормально показывает, правда в солярисе открыть может лишь первые две метки.

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение f_andrey » 2013-12-11 20:07:44

Да, конечно можно, причём элементарно, берёте резервную копию или снапшоты на удалённом хранилище и прекрасно открываете.
Ну сколько можно детский сад разводить.
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

SS
проходил мимо

Re: Развалился raidz2 на файлопомойке

Непрочитанное сообщение SS » 2013-12-20 13:50:45

Для тех, кто столкнётся с подобным:

есть недокументированный ключ -T, который позволяет напрямую указать транзакцию, на момент которой надо импортировать пул.
http://www.c0t0d0s0.org/archives/7621- ... ort-T.html

В моём случае я указал такую транзакцию, которая имела намного больший номер и была в каком-то уберблоке.