Автор Тема: Вышел из строя 1 винчестер из 5, где использовался программный RAID  (Прочитано 6127 раз)

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
Добрый день, такая ситуация, что вышел из строя один из дисков на сервере, диски SCSI.
4 диска по ~36 гигабайт и один диск на 18 гигабайт.
Система ALTLinux 6 устанавливалась около года назад и тогда я не настраивал разметку дисков, а выбрал что предложил установщик.
Были созданы 3 рэйд из этих 5 дисков, 2 рэйда 5 уровня и один рэйд 1 уровня.
Под основной раздел ~3.9 гигабайта (рэйд 5 уровня), под файл подкачки ~15 гигабайт (рэйд 1 уровня) и под раздел var ~30 гигабайт (рэйд 5 уровня).
После того как диск "умер", то сервер был перезагружен и после этого, при загрузке, были получены ошибки, что рэйд не могут стартовать.
Начал гуглить на счёт всего этого и потом разбираться и оказалось, что 2 рэйда активны и показывают что не хватает одного диска у них, а рэйд с разделом var не активен и как раз при загрузке он и ругался, что не может стратовать только с 3-мя устройствами.
Потом нашёл информацию как можно добавить новый диск в рэйд, но SCSI диски не так то просто найти, но всё же удалось и на следующий день появился диск размером в 75 гигабайт, но прежде чем прописывать какие-то команды было решено сделать клонирование всех "живых" дисков с помощью программы clonezilla.
После того как клоны были сделаны возникла новая проблема - загрузчик grub начал ругаться что не видит диск...
Загрузился с liveCD с ОС Slax и попробовал там активировать рэйд с разделом var и у меня это получилось, но при копировании нужных мне файлов были обнаружены повреждённые файлы.
А так как среди этих файлов были повреждённые, то восстановить ничего не получилось...
Попробовал добавить новый диск к рэйдам через LiveCD с помощью mdadm, но не вышло, была ошибка, что нельзя добавить диск к ним (точно сейчас не могу сказать конкретно).
Так вот вопрос, что можно сделать в данной ситуации?
Более подробнее про рэйды могу написать только завтра...
p.s. бэкапы делались, но получилось так, что с БД косяки происходили последние месяцев 7, о которых я узнал только сегодня, короче дамп экспортированных БД не полный и восстановить с них ничего не получится, так как там нет важных таблиц.
« Последнее редактирование: 23.06.2013 21:25:19 от FlightOfDeath »

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
raid или lvm? то что вы описываете больше на второе похоже.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Надо бы посмотреть вывод df и cat /proc/mdstat при загруженной системе и активированных RAID. Можно с LiveCD, если, как я понимаю, система на сервере не грузится. По разделам, из которого собран RAID c /var посмотреть бы подробнее:
mdadm -E /dev/sd<X><N>

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
raid или lvm? то что вы описываете больше на второе похоже.
Вроде бы raid, так как я пробовал использовать команду lvscan и ничего не находилось, а командой cat /proc/mdstat мне выводился список массивов

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
Надо бы посмотреть вывод df и cat /proc/mdstat при загруженной системе и активированных RAID. Можно с LiveCD, если, как я понимаю, система на сервере не грузится. По разделам, из которого собран RAID c /var посмотреть бы подробнее:
mdadm -E /dev/sd<X><N>
Как только на работу приду, то всё это выложу

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
Смог восстановить загрузчик в grub rescue:
ls вывела следующее:
[md0] [md126] [md126] [hd...То что два 126 - это не опечатка, не знаю почему так...
Так как /boot/grub находится гдето в первых трёх, то начал с ними работать:
set prefix=(md126)/boot/grub
set root=(md126)
insmod ext2
insmod normal
normal
После этого появилось окно загрузчика... Перед этим пробовал с md0 работать, не вышло, была ошибка что файловая система не опознана (по видимому там файл подкачки).
В общем опять система до ошибки дошла и остановилась, после чего я залогинился и ввёл cat /proc/mdstat, вот что вышло:
md2 : active raid5 sda5[0] sde5[4] sdd5[3] sdc5[2]
35503104 blocks level 5, 32k chunk ,algorithm 2 [5/4] [U_UUU]
md0 : active raid5 sda1[0] sde1[4] sdd1[3] sdc1[2]
16193824 blocks level 5, 32k chunk ,algorithm 2 [5/4] [U_UUU]
md126 : active raid1 sdc2[2] sdd2[3] sda2[0] sde2[4]
4996096 blocks [5/4] [U_UUU]
Но вот что интересно, пока загрузчик работал (до этого) вместо md126 был md1 и md2 был в режиме inactive, а сейчас все они активны.
Команда df:
filesystem size Used Avail Usex Mounted on
/dev/md126 4.7G 3.7G 889M 83% /
udefs 5.0M 292K 4.8M 6% /dev
shmfs 2.0G 0 2.0G 0% /dev/shm
Вывод одного диска по команде mdadm -E /dev/sda5:
Raid Devices : 5
Total Devices : 4
Preferred Minor : 126

Update Time : Sat Jun 22 13:43:47 2013
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 1
Spare Devices : 0
Checksum : 56949c1a - correct
Events : 5882055

Layout : left-symmetric
Chunk Size : 32K

 Number Major Minor RaidDevice State
this 0 8 21 0 active sync /dev/sdb5

0 0 8 21 0 active sync /dev/sdb5
1 1 0 0 1 faulty removed
2 2 8 53 2 active sync /dev/sdd5
3 3 8 69 3 active sync /dev/sde5
4 4 8 85 4 active sync
Посмотрел этой же командой другие диски /dev/sd*5, всё тоже самое, только checksum разные, но везде correct
« Последнее редактирование: 24.06.2013 08:12:00 от FlightOfDeath »

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
Ввёл ещё команду mdadm --detail /dev/md2:
Raid Devices : 5
Total Devices : 4
Preferred Minor : 2
Persistence : Superblock is persistent

Update Time : Sat Jun 22 13:43:47 2013
State : clean, degraded
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 32K

UUID : d9b0657c:6ffbc32d:6fe1997e:5235a8ad
Events  : 0.5882055
Number Major Minor RaidDevice State
0 8 5 0 active sync /dev/sda5
1 0 0 1 removed
2 8 37 2 active sync /dev/sdc5
3 8 53 3 active sync /dev/sdd5
4 8 69 4 active sync /dev/sde5

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
Ещё выкладываю содержимое файла /etc/mdadm.conf:
MAILADDR ROOT
PROGRAM /sbin/mdadm-syslog-events
DEVICE partitions
ARRAY /dev/md0 UUID=287238c6:3c986fed:ca12376b:2e8de910
ARRAY /dev/md1 UUID=b8ad2132:412919a0:c88d618a:4bb22b16
ARRAY /dev/md2 UUID=d9b0657c:6ffbc32d:6fe1997e:5235a8ad

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Ну и надо ставить этот диск, как sdb, делать аналогичные разделы и добавлять их в эти md0, md2 и md126. Что касается md126, это просто имя. Почему инсталятор такое выбрал, не знаю, но выбрал, так выбрал.

Почему без него не грузится - это вот что-то вспоминается такое, на самом деле. Если найду, допишу. Кстати, софт-RAID такая штука, что ему тип HDD не сильно важен, можно и с SATA смешать SCSI. Хотя, может, это и не сильно хорошо.

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
Ну и надо ставить этот диск, как sdb, делать аналогичные разделы и добавлять их в эти md0, md2 и md126. Что касается md126, это просто имя. Почему инсталятор такое выбрал, не знаю, но выбрал, так выбрал.

Почему без него не грузится - это вот что-то вспоминается такое, на самом деле. Если найду, допишу. Кстати, софт-RAID такая штука, что ему тип HDD не сильно важен, можно и с SATA смешать SCSI. Хотя, может, это и не сильно хорошо.
Извините, можете более подробнее расписать мои действия (что я должен делать)? могу ещё что нибудь выложить, если нужно...
Я сам не размечал диски при установке системы и не представляю как это делается.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Посредством fdisk -l убеждаетесь, что на всех дисках все разделы одинаковые. Если это не так, то это как-то неправильно. Но должны быть одинаковые, по крайней мере, собранные в RAID-ы. Если одинаковые, всё хорошо. Делаете разделы на новом HDD точно такими же - тем же fdisk просто вводите те же цифры. Убеждаетесь, что всё точно. Потом
mdadm /dev/md0 --add /dev/sdb1
mdadm /dev/md2 --add /dev/sdb5
mdadm /dev/md126 --add /dev/sdb2
Лучше с интервалом, чтобы все три сразу не перестраивались. Процесс смотреть посредством
cat /proc/mdstat

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
fdisk -l /dev/sda1:
Disk /dev/sda1: 4145 MB, 4145508864 bytes
255 heads, 63 sectors/track, 503 cylinders, total 8096697 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x80a21dc2

Disk /dev/sda1 doesn't contain a valid partition table

fdisk -l /dev/sda2:
Disk /dev/sda2: 5116 MB, 5116124160 bytes
255 heads, 63 sectors/track, 622 cylinders, total 9992430 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sda2 doesn't contain a valid partition table

fdisk -l /dev/sda5:
Disk /dev/sda5: 27.5 GB, 27505304064 bytes
255 heads, 63 sectors/track, 3343 cylinders, total 53721297 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sda5 doesn't contain a valid partition table

fdisk -l /dev/sdc1:
Disk /dev/sdc1: 4145 MB, 4145508864 bytes
255 heads, 63 sectors/track, 503 cylinders, total 8096697 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc1 doesn't contain a valid partition table

fdisk -l /dev/sdc2:
Disk /dev/sdc2: 5116 MB, 5116124160 bytes
255 heads, 63 sectors/track, 622 cylinders, total 9992430 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc2 doesn't contain a valid partition table

fdisk -l /dev/sdc5:
Disk /dev/sdc5: 27.5 GB, 27505304064 bytes
255 heads, 63 sectors/track, 3343 cylinders, total 53721297 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc5 doesn't contain a valid partition table
Аналогично с /dev/sdd1 /dev/sdd2 /dev/sdd5 /dev/sde1 /dev/sde2
Только у /dev/sdd1 есть Disk identifier (0x95b4e0bf) и у /dev/sde1 (0xf59b5a9d)

А вот /dev/sde5 отличается от всех:
Disk /dev/sde5: 9088 MB, 9088902144 bytes
255 heads, 63 sectors/track, 1104 cylinders, total 17751762 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sde5 doesn't contain a valid partition table

А теперь ещё вопрос, как можно определить с каким диском мне работать? Диск Б/У и возможно он уже с какими-то разделами.
Результат команды ls /dev:
... md0 md126 md2 mem ... rtc rtc0 scd0 sda sda1 sda2 sdc2 sdc4 sdc5 sdd sdd1 sdd2 sdd4 sdd5 sde sde1 sde2 sde4 sde5 sdf sdf1 sg0 sg1 sg2 sg3 sg4 sg5 sg6 sg7 ...
Зайдя в папку /dev увидел:
+sda +sda1 +sda4 +sda5 +sdb +sdb4 +sdb5 +sdb6 +sdb7 +sdc +sdc1 +sdc2 +sdc4 +sdc5 +sdd +sdd1 +sdd2 +sdd4 +sdd5 +sde +sde1 +sde2 +sde4 +sde5 +sdf +sdf1  -sg0 -sg1 -sg2 -sg3 -sg4 -sg5 -sg6 -sg7
« Последнее редактирование: 24.06.2013 12:24:55 от FlightOfDeath »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
fdisk -l /dev/sda1:
Нет. fdisk -l /dev/sda, то есть, смотреть надо разделы на устройстве, а не искать их внутри раздела.

Оффлайн FlightOfDeath

  • Участник
  • *
  • Сообщений: 18
fdisk -l /dev/sda
Disk /dev/sda: 36.8 GB, 36771581952 bytes
255 heads, 63 sectors/track, 4470 cylinders, total 71819496 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sda1 * 63 8096759 4048348+ 83 Linux
/dev/sda2  8096760 18089189 4996215 fd Linux raid autodetect
/dev/sda4  18089190 71810549 26860680 5 Extended
/dev/sda5  18089253 71810549 26860648+ 83 Linux

fdisk -l /dev/sdc
Disk /dev/sdc: 36.8 GB, 36771581952 bytes
255 heads, 63 sectors/track, 4470 cylinders, total 71819496 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdc1 * 63 8096759 4048348+ 83 Linux
/dev/sdc2  8096760 18089189 4996215 fd Linux raid autodetect
/dev/sdc4  18089190 71810549 26860680 5 Extended
/dev/sdc5  18089253 71810549 26860648+ 83 Linux

fdisk -l /dev/sdd
Disk /dev/sdd: 36.8 GB, 36771581952 bytes
255 heads, 63 sectors/track, 4470 cylinders, total 71819496 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdd1 * 63 8096759 4048348+ 83 Linux
/dev/sdd2  8096760 18089189 4996215 fd Linux raid autodetect
/dev/sdd4  18089190 71810549 26860680 5 Extended
/dev/sdd5  18089253 71810549 26860648+ 83 Linux

fdisk -l /dev/sde
Disk /dev/sde: 18.4 GB, 18351959040 bytes
255 heads, 63 sectors/track, 2231 cylinders, total 35843670 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sde1 * 63 8096759 4048348+ 83 Linux
/dev/sde2  8096760 18089189 4996215 fd Linux raid autodetect
/dev/sde4  18089190 35841014 8875912+ 5 Extended
/dev/sde5  18089253 35841014 8875881 83 Linux

И вот я нашёл винчестер, с которым мне нужно работать fdisk -l /dev/sdb:
Disk /dev/sdb: 73.5 GB, 73543163904 bytes
64 heads, 32 sectors/track, 70136 cylinders, total 143638992 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb4 * 32 142575615 71287792 63 GNU HURD or SysV

Подскажите, может есть какая-то команда, чтобы на новый диск скопировать разметку с диска из рэйда?
« Последнее редактирование: 24.06.2013 13:07:42 от FlightOfDeath »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Сначала вопрос. А производитель один ? Мне не нравится отличие

Disk /dev/sdb: 73.5 GB, 73543163904 bytes
64 heads, 32 sectors/track, 70136 cylinders, total 143638992 sectors

У остальных - 255 heads, 63 sectors/track. Может и прокатит, но надо смотреть.


Проще руками, прямо по цифрам. У fdisk можно указывать начальный и конечный сектора.

Можно с помощью dd, но если перепутать if и of, можно всё убить. В принципе,
dd if=/dev/sda of=/dev/sdb bs=1024K

Это будет полная копия sda, не только таблица разделов. На самом деле, копировать надо первый сектор /dev/sda и первый сектор /dev/sda4, где описан /dev/sda5. Если бы Extended раздел отсутствовал, можно было бы обойтись первым сектором sda. А так надо ещё сектор sda4. Считать точно неохота. :-)
« Последнее редактирование: 24.06.2013 13:34:45 от asy »