Замена убитого диска в шифрованном raid1

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
Всем привет.
Возник вопрос при чтении инструкции и экспериментах в vmware над двумя виртуальными дисками.
Что делал.
Создал три диска - загрузочный в 8 GB и два по 20GB.
Установил FreeNAS 11.2 u1 ось на загрузочный диск.
Объединил два следующий диска в шифрованное geli зеркало.
Создал под него пароль и сохранил ключ на другой компьютер.
вырубил виртуалку и удалил из настроек виртуалки один из дисков для эмуляции умершего диска. веб морда, после загрузки ос, отсигналила о degraded пуле.
а дальше по инструкции
Перевел мертвый диск в режим оффлайн (Click  (Options) on the disk entry, then Offline to change the disk status to OFFLINE. This step removes the device from the pool and prevents swap issues. If the hardware supports hot-pluggable disks, click the disk Offline button and pull the disk, then skip to step 3. If there is no Offline button but only a Replace button, the disk is already offlined and this step can be skipped.)
Подсоединил удаленный диск в настройки виртуалки снова и включил виртуалку.
Пробую скомандовать "replace disk", исходя из инструкции (Then, follow steps 1 and 2 as described above - Пункт 1 и 2 выполнил выше.. During step 3, there will be a prompt to enter and confirm the passphrase for the pool. Enter this information, then click REPLACE DISK. Wait until resilvering is complete.)
Вижу приглашение ввести пароль и подтвердить его, но пункт "member disk" не доступен!!! Жать по этому объекту бесполезно.
Прилагаю скрин

Что я делаю не так?
 

Attachments

  • 444.gif
    444.gif
    11.4 KB · Views: 592

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Подсоединил удаленный диск в настройки виртуалки снова и включил виртуалку.
Вы подсоединили назад тот-же самый диск что там и был или создали новый? Потому что если тот что и был, то он думаю и так автоматом занял свое место в пуле, лишь по остался прежнему OFFLINE, как вы и просили, а так как больше дисков в системе нет, то заменить тот диск не на что, потому я полагаю и выпадающий список не доступен.
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
>Вы подсоединили назад тот-же самый диск что там и был или создали новый?
Тот же самый, но на первом уже произощли изменения, пока диск был отключен в настройках виртуалки. Да - не написал об этом.
>Потому что если тот что и был, то он думаю и так автоматом занял свое место в пуле, лишь по остался прежнему OFFLINE,
ну так в онлайн мне его не перевести никак.
Будет ругань
Code:
Error: Traceback (most recent call last):

  File "/usr/local/lib/python3.6/site-packages/tastypie/resources.py", line 219, in wrapper
    response = callback(request, *args, **kwargs)

  File "./freenasUI/api/resources.py", line 886, in online_disk
    notifier().zfs_online_disk(obj, deserialized.get('label'))

  File "./freenasUI/middleware/notifier.py", line 1064, in zfs_online_disk
    assert volume.vol_encrypt == 0

AssertionError

По-идее я должен устроить замену.

Предположим, в реальности при включении компьютера я просто не лучшим образом подсоединил один из дисков и? Мне придется такой диск продавать и менять на новый? Не до конца понял.

>то заменить тот диск не на что, потому я полагаю и выпадающий список не доступен.
он стал вечнум овощем даже, если физически в порядке?

Ну или как сделать, что бы система вообще забыла про него? В меню для него есть лишь пункты edit, online и replace.
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
>Вы подсоединили назад тот-же самый диск что там и был или создали новый?
Тот же самый, но на первом уже произощли изменения, пока диск был отключен в настройках виртуалки. Да - не написал об этом.
Изменения на первом диске не проблема. ZFS должен их просто по-быстрому накатить при возвращении диска.

>Потому что если тот что и был, то он думаю и так автоматом занял свое место в пуле, лишь по остался прежнему OFFLINE,
ну так в онлайн мне его не перевести никак.
Будет ругань
Code:
Error: Traceback (most recent call last):

  File "/usr/local/lib/python3.6/site-packages/tastypie/resources.py", line 219, in wrapper
    response = callback(request, *args, **kwargs)

  File "./freenasUI/api/resources.py", line 886, in online_disk
    notifier().zfs_online_disk(obj, deserialized.get('label'))

  File "./freenasUI/middleware/notifier.py", line 1064, in zfs_online_disk
    assert volume.vol_encrypt == 0

AssertionError
Это какой-то баг. Так конечно быть не должно. Возможно это связато с тем что это не настоящий диск. Создайте тикет или дождитесь U2 через пару недель, если вдруг это уже исправлено. Как альтернатива -- можно попробовать сделать это в старом интерфейсе.

По-идее я должен устроить замену.

Предположим, в реальности при включении компьютера я просто не лучшим образом подсоединил один из дисков и? Мне придется такой диск продавать и менять на новый? Не до конца понял.

>то заменить тот диск не на что, потому я полагаю и выпадающий список не доступен.
он стал вечнум овощем даже, если физически в порядке?

Ну или как сделать, что бы система вообще забыла про него?

В худшем случае диск прийдется лишь стереть руками. Способов разных много.
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
>Это какой-то баг. Так конечно быть не должно. Возможно это связато с тем что это не настоящий диск. Создайте тикет или дождитесь U2 через пару недель, если вдруг это уже исправлено. Как альтернатива -- можно попробовать сделать это в старом интерфейсе.
эксперимент с виртуалкой не празный. У меня реально такая проблема с реальной файлопомойкой на FreeNAS. И сейчас экспериментирую под виртуалкой, что бы не накосячить в реальности.

>В худшем случае диск прийдется лишь стереть руками. Способов разных много.
dd if=/dev/zero of=/dev/ada2, наверное.
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
dd if=/dev/zero of=/dev/da2
dd: /dev/da2: Operation not permitted
При том, что он в offline.

Придется качать livecd, ака rescuecd
Все это почему-то напоминает одну известную ос..
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
dd if=/dev/zero of=/dev/da2
dd: /dev/da2: Operation not permitted
При том, что он в offline.
Эта ошибка говорит что диск уже открыт по записи. Могу только предположить, что это связано с шифрованием. Попробуй `gpart destroy -F da2`. Или забив на все `sysctl kern.geom.debugflags=16`, а потом `dd`, только с `bs=128k` и перезагрузиться, а то по умолчанию будет слишком медленно.
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
>а потом `dd`, только с `bs=128k`, а то по умолчанию будет слишком медленно
можно прервать через минуту по ctrl+c. лишь бы сбить uuid в другой, по идее.
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
>а потом `dd`, только с `bs=128k`, а то по умолчанию будет слишком медленно
можно прервать через минуту по ctrl+c. лишь бы сбить uuid в другой, по идее.

В общем да, только и у GPT и у ZFS есть метаданные и в конце диска тоже, потому обычно FreeNAS стирает и начало и конец.
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
gpart destroy -F ada1 (реальный диск, который "отстал" от загрузки.
gpart: Device busy
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
В общем да, только и у GPT и у ZFS есть метаданные и в конце диска тоже, потому обычно FreeNAS стирает и начало и конец.

Да это жесть! Просто из-за того, что нет опции, тереть 3 терабайта?
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Нет. Почитать `man dd` и использовать опции `size` и `oseek`. Я не погу дать конкретный пример так как не знаю размера диска.
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Оно бы и было проще, если бы не баг с вызовом online и желанием странного потом.
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
Может не oseek, а seek?

Еще вопрос, если можно. А в кого стрелять-то? В смысле, какие регионы долбить? 100 мегабайт в начали и в конце, или как?
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Может не oseek, а seek?
Таки oseek: https://www.freebsd.org/cgi/man.cgi?dd(1)

Еще вопрос, если можно. А в кого стрелять-то? В смысле, какие регионы долбить? 100 мегабайт в начали и в конце, или как?
Учитывая 2GB swap раздел, 100MB не хватит. Лучше несколько гигабайт с каждого конца для гарантии.
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
сделал по полтора с каждого. Но что-то лень было заморачиваться с oseek и все сделал викторией. В ней есть, помимо readи verify, еще и write режим. Ну а выбор зоны секторов там прост. Все быстро.

Интересно, а если после ресильверинга внезапно вырубится свет. Ну, или даже если брать в расчет ибп, не ждать же процесса. Человек может отойти куда-либо на часа два, или до утра. Там же ключ дла пула перебивать нужно до перезагрузки.
Не. Не вопрос. Уменятовсеполучилось. Но вот просто случай. Ведь, вполне реальный же.
 
Last edited:
Top