Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1]
md1 : active raid1 sdb3[1]
465852800 blocks [2/1] [_U]
md0 : active raid1 sdb1[1]
20482752 blocks [2/1] [_U]
unused devices:
Говорит что распался рейд. Сегодня ночью случилось. Сейчас нашел что делать в таких случаях, буду читать, потом сюда брошу, если не забуду.
И что делал?
ОтветитьУдалитьНужно точно узнать что случилось - просто рассыпался массив или совсем перестал видеться диск.
УдалитьЕсли совсем не видится один из дисков, то можно перезагрузить сервер и посмотреть появится ли он снова в системе. Если появится - то вам повезло, если нет, то повезло, но не сильно, придется выяснять что же случилось с диском, так как видимо какие-то проблемы с железом.
Если диск виден в системе (в fdisk -l), то просто нужно синхронизировать диски - убрать из массива выпавший диск и снова добавить.
На практике это выглядит так:
Как видим на моем пример, dev/sdа1 - выпавший диск (виден только sdb, один из дисков массива помечен буквой "U_")
1) Удаляем выпавший диск из рейда
mdadm /dev/md0 -r /dev/sdа1
2) Добавляем обратно выпавший диск
mdadm /dev/md0 -a /dev/sdа1
Вот и все, дальше смотрим в /proc/mdstat процесс синхронизации.
Если же одному из дисков совсем пришел кирдык, то вот инструкция, следуя которой можно произвести замену дискав рейде при замене физического диска (вставляю как есть, использовалось на ALTLinux):
УдалитьКак собрать и разобрать софтовый RAID1 для линукс систем.
Выяснить UUID-ы дисков:
~]$ sudo blkid - выдаст все разделы и типы файловых систем
~]$ sudo hdparm -i /dev/sda выдаст СН устройства по которым можно посмотреть какой винт отпал
Если один жёсткий диск вышел из строя, то загрузите операционную систему (она будет работать и на одном диске), зайдите под пользователем root и проделайте следующее:
1. Посмотрите, что сломалось:
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0]
4723008 blocks [2/1] [U_]
md0 : active (auto-read-only) raid1 sda1[0]
513984 blocks [2/1] [U_]
Из вывода видно, что диск sdb недоступен: U_ показывает отсутствие второго раздела под RAID.
Удаляем записи об сбойных разделах из рейдов. Если этого не сделать, то вновь подключенный диск сменит своё имя устройства.
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md1 -r /dev/sdb2
mdadm /dev/md2 -r /dev/sdb3
Удаляем из системы отсутствующее физически устройство:
echo "1" > /sys/block/sdb/device/delete
при этом пропадают /dev/sdb*. Если этого не проделать, нижеследующее сканирование не сработает. втыкаем диск в корзину, прислушиваясь к его раскрутке просим драйвер пересканировать шину:
echo "- - -" > /sys/class/scsi_host/host0/scan
2. Подключаем диск и копируем таблицу разделов с диска sda на диск sdb. Также перечитаем скопированную таблицу разделов для ядра:
[root@localhost ~]# dd if=/dev/sda of=/dev/sdb bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied,
0.00682677 s, 75.0 kB/s
[root@localhost ~]# hdparm -z /dev/sdb
/dev/sdb:
re-reading partition table
3. Добавляем разделы со второго диска к RAID-массиву:
[root@localhost ~]# mdadm /dev/md0 -a /dev/sdb1
mdadm: added /dev/sdb1
[root@localhost ~]# mdadm /dev/md1 -a /dev/sdb2
mdadm: added /dev/sdb2
[root@localhost ~]# mdadm /dev/md2 -a /dev/sdb3
mdadm: added /dev/sdb
4. Смотрим, что получилось:
[root@localhost ~]# cat /proc/mdstat
Personalities :[raid1]
md1 : active raid1 sdb2[2] sda2[0]
4723008 blocks [2/1] [U_] [>....................] recovery = 0.6% (32064/4723008) finish=9.7min speed=8016K/sec
md0 : active raid1 sdb1[1] sda1[0]
513984 blocks [2/2] [UU]
md2 : active raid1 sdb3[1] sda3[0]
513984 blocks [2/2] [UU]
unused devices:
Всё нормально: md0 уже засинхронизировался, md1 в процессе синхронизации.
5. Через некоторое время смотрим ещё раз:
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1] sda2[0]
4723008 blocks [2/2] [UU]
md0 : active raid1 sdb1[1] sda1[0]
513984 blocks [2/2] [UU]
unused devices:
Теперь RAID полностью восстановлен.
6. Обязательно восстанавливаем загрузчик:
[root@localhost ~]# lilo
Added ALTLinux *
Added failsafe
The Master boot record of /dev/sda has been updated.
Warning: /dev/sdb is not on the first disk
The Master boot record of /dev/sdb has been updated.
One warning was issued.