anonymous@RULINUX.NET~# Last login: 2024-11-15 12:49:20
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Как проверить идентичность разделов RAID1?

Подох процессор. Подыхал он относительно долго, минут 10. Успел попортить рутовый раздел. Хочется понять что он ещё мог попортить. Всё, что мне нужно лежит на Raid1 и есть бэкап, но при синке с бэкапом тоже есть вероятность его грохнуть порчеными данными если есть таковые. Вобщем для начала хотелось бы убедиться, что хотя бы половики рейд-разделов идентичны. Я хз что mdadm будет делать с данными при его синхронизации. Хочется пока понять идентичны ли разделы не меняя ничего. Как это сделать?

anonymous(*) (2019-04-15 01:17:20)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: Как проверить идентичность разделов RAID1? от anonymous 2019-04-15 01:17:20
avatar
Скрыть

Re:Как проверить идентичность разделов RAID1?

dd /dev/чётотам1 и dd /dev/чётотам2, а потом diff между ними. Можно даже на лету.

anonymous(*)(2019-04-15 12:47:02)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Как проверить идентичность разделов RAID1? от anonymous 2019-04-15 12:47:02
avatar
Скрыть

Re:Как проверить идентичность разделов RAID1?

Вобщем, нет.

Запустить сравнение можно командой вида "mdadm --misc --action=check /dev/md127" - mdadm сам сравнит содержимое блинов, одникаовое оно с его точки зрения или нет. Что процесс пошел - будет видно в /proc/mdstat, а счетчик несоответствий - в /sys/block/md*/md/mismatch_cnt

Только при подозрении на неконсистентность данных на одном из блинов лучше сразу мотировать массив в рид-онли: при загрузке в параметрах ядра указать "md_mod.start_ro=1", например. Чтобы он ни в коем случае ребилдиться не стал: с точки зрения массива-то данные там равноправные на обоих блинах.

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

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

bash

mdadm --assemble /dev/md666 /dev/sde --readonly --run # без --run не соберётся
e2fsck -fn /dev/md666   # -n required for read-only FS
mdadm --stop /dev/md666
 
Потом таким же макаром проверил второй диск - вот на нём нашлись ошибки в ФС, много. Ждать до конца не стал, исправлять тем более. Потом почищу этот диск и введу обратно в массив. Пока просто собрал массив с хорошим диском и на всякий случай поставил копироваться в бэкап:
bash

mount /dev/sdf1 /mnt
mount /dev/md666 /mnt2
cp -adrx /mnt2/ /mnt
 


Пока копируется - проверил каждую поверхность из состава всех рейдов. Все оказались нормальными с точки зрения e2fsck, включая и те, что давали небольшую разницу в mdadm.

Оно до сих пор копируется, так что наверное буду пытаться пересобрать этот массив завтра. План примерно такой:
bash

# собираю массив с одним "хорошим" винтом
mdadm --stop /dev/md0
mdadm --assemble /dev/md0 /dev/sde --run # теперь уже без --readonly
# обнуляю суперблок у нехорошего винта
mdadm --misc --zero-superblock /dev/sdg
# .. ну и подсовываю его в массив
mdadm --manage --add /dev/md0 /dev/sdg

# поправочка, последняя команда не сработала, добавил так:
mdadm --grow /dev/md0 --raid-devices=1 --force
mdadm --grow /dev/md0 --add /dev/sdg --raid-devices=2

 

Вроде всё, после этого должен пойти ресинк и mdadm сам скопирует данные на второй диск.

anonymous(*)(2019-04-17 03:02:52)
Отредактировано anonymous по причине "не указана"
Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!