Упал программный RAID-5. Нужна помощь.

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
Barmaley
Junior member
Сообщения: 9
Зарегистрирован: 11 мар 2003, 12:12
Откуда: Москва

Упал программный RAID-5. Нужна помощь.

Сообщение Barmaley » 13 авг 2004, 17:00

ОС - Linux-RH-7.3, ядро 2.4.26. Программный RAID-5 из 9-ти дисков IBM-36Gb Model: IC35L036UWD210-0 Rev: S5BS
Биосом сервера все диски определяются верно. Контроллер встроенный (Adaptec AIC-7896) на материнке (Supermicro P6DGH)
Uptime до краха приблизительно около года (последние регламентные работы).

конфигурация при запуске:

raiddev /dev/md0
raid-level 5
nr-raid-disks 9
chunk-size 32k
persistent-superblock 1
nr-spare-disks 0
device /dev/sda1
raid-disk 0
device /dev/sdb1
raid-disk 1
device /dev/sdc1
raid-disk 2
device /dev/sdd1
raid-disk 3
device /dev/sde1
raid-disk 4
device /dev/sdf1
raid-disk 5
device /dev/sdg1
raid-disk 6
device /dev/sdh1
raid-disk 7
device /dev/sdi1
raid-disk 8

Как я понял из вывода lsraid -A -a /dev/md0 -d /dev/sda1

[dev 9, 0] /dev/md0 87D59135.545CB76A.C41A16E1.E06FE57D offline
[dev 8, 1] /dev/sda1 87D59135.545CB76A.C41A16E1.E06FE57D good
[dev 8, 17] /dev/sdb1 87D59135.545CB76A.C41A16E1.E06FE57D good
[dev 8, 33] /dev/sdc1 87D59135.545CB76A.C41A16E1.E06FE57D good
[dev 8, 49] /dev/sdd1 87D59135.545CB76A.C41A16E1.E06FE57D good
[dev 8, 65] /dev/sde1 87D59135.545CB76A.C41A16E1.E06FE57D good
[dev ?, ?] (unknown) 00000000.00000000.00000000.00000000 missing
[dev 8, 97] /dev/sdg1 87D59135.545CB76A.C41A16E1.E06FE57D failed
[dev 8, 113] /dev/sdh1 87D59135.545CB76A.C41A16E1.E06FE57D good
[dev 8, 129] /dev/sdi1 87D59135.545CB76A.C41A16E1.E06FE57D good

произошёл отказ двух дисков, но в то же время диски вроде как живы:
fdisk -l

Disk /dev/sda: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 35003 35843056 fd Linux raid autodetect

Disk /dev/sdb: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 35003 35843056 fd Linux raid autodetect

Disk /dev/sdc: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 35003 35843056 fd Linux raid autodetect

Disk /dev/sdd: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdd1 * 1 35003 35843056 fd Linux raid autodetect

Disk /dev/sde: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sde1 1 35003 35843056 fd Linux raid autodetect

Disk /dev/sdf: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdf1 1 35003 35843056 fd Linux raid autodetec

Disk /dev/sdg: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdg1 * 1 35003 35843056 fd Linux raid autodetect

Disk /dev/sdh: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdh1 * 1 35003 35843056 fd Linux raid autodetect

Disk /dev/sdi: 64 heads, 32 sectors, 35003 cylinders
Units = cylinders of 2048 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdi1 * 1 35003 35843056 fd Linux raid autodetect

Disk /dev/hda: 255 heads, 63 sectors, 5005 cylinders
Units = cylinders of 16065 * 512 bytes

на команду raidstart /dev/md0 выдаёт следующее:

md: superblock update time inconsistency -- using the most recent one
md: kicking non-fresh sdg1 from array!
md0: removing former faulty sdg1!
raid5: not enough operational devices for md0 (2/9 failed)
RAID5 conf printout:
--- rd:9 wd:7 fd:2
disk 0, s:0, o:1, n:0 rd:0 us:1 dev:sda1
disk 1, s:0, o:1, n:1 rd:1 us:1 dev:sdb1
disk 2, s:0, o:1, n:2 rd:2 us:1 dev:sdc1
disk 3, s:0, o:1, n:3 rd:3 us:1 dev:sdd1
disk 4, s:0, o:1, n:4 rd:4 us:1 dev:sde1
disk 5, s:0, o:0, n:5 rd:5 us:1 dev:[dev 00:00]
disk 6, s:0, o:0, n:6 rd:6 us:1 dev:[dev 00:00]
disk 7, s:0, o:1, n:7 rd:7 us:1 dev:sdh1
disk 8, s:0, o:1, n:8 rd:8 us:1 dev:sdi1
raid5: failed to run raid set md0
md: pers->run() failed ...
md :do_md_run() returned -22

команда fsck /dev/md0 не проходит. матерится на суперблок.

бэкапа нет. т.е. он есть, но хранится на этом же массиве :? .
общий объём информации ~200Gb.
нужно как-то восстановить всю информацию. как - незнаю :( .
прошу помощи.

С уважением.

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1990
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 13 авг 2004, 17:38

Можно поробовать указать fsck использовать другой суперблок, их в ext2 (ext3) много , и они равномерно распределены по всей ёмкости носителя:
Первый за основным суперблок лежит в 8193 для FS с 1k blocksizes, в
16384 для 2k blocksizes и в 32768 для 4k blocksizes.
Последующие номера, на случай неисправности второго, можно выписаить отформатировав любой hdd (не из рейда ;) ) или просто найти в интернете.
В общем примерно так :
#fsck -b 8193 /dev/md0

Barmaley
Junior member
Сообщения: 9
Зарегистрирован: 11 мар 2003, 12:12
Откуда: Москва

Сообщение Barmaley » 13 авг 2004, 17:45

я пробова в явном виде указывать суперблок:
fsck -b 8193 /dev/md0

никаких результатов

fsck -b 8193 /dev/md0
fsck 1.27 (8-Mar-2002)
e2fsck 1.27 (8-Mar-2002)
fsck.ext2: Invalid argument while trying to open /dev/md0

The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>

ума не приложу, как токое могло случиться, а более того, как это исправить

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1990
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 13 авг 2004, 17:52

там ext2 или ext3 стояла ?

попробуй :
#fsck -t ext2 -b 8193 /dev/md0
или
#fsck -t ext3 -b 8193 /dev/md0

Впрочем подозреваю что это не поможет,
т.к. суперблок как раз недоступен по причине неработы raid. :(

сейчас попробую посмотреть имеются ли методы прямого управления состоянием винтов в raid массиве,
я как то сталкивался с такой проблеммой, но решения быстрого не нашёл, просто переставил всё заного, благо данных у меня важных не было.
Основное преимущество аппаратного Raid как раз в нормальных средствах манипулирования при режимах восстановления raid.

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1990
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 13 авг 2004, 17:55

вот что я нашёл, похоже это ваш случай
http://unthought.net/Software-RAID.HOWT ... html#ss8.1

Barmaley
Junior member
Сообщения: 9
Зарегистрирован: 11 мар 2003, 12:12
Откуда: Москва

Сообщение Barmaley » 13 авг 2004, 18:07

спасибо за ссылку, но у меня нет уверенности, что в этом случае я не потеряю данные.
я было хотел попробовать команду mkraid -R /dev/md0, но получил серьёзное предупреждение:

....If your /etc/raidtab file is not in sync with the real array configuration,
then --force might DESTROY ALL YOUR DATA. It's especially dangerous to use
-f if the array is in degraded mode.....

или я просто не совсем уверен в перводе этой фразы

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1990
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 13 авг 2004, 18:12

попробуйте сначало то, что описано по ссылочке , выше на той же странице, про raidhotadd

Barmaley
Junior member
Сообщения: 9
Зарегистрирован: 11 мар 2003, 12:12
Откуда: Москва

Сообщение Barmaley » 13 авг 2004, 18:18

raidhotadd говорит, что массив не запущен и поэтому не хочет делать никаких действий

raidhotadd /dev/md0 /dev/sdf1
/dev/md0: can not hot-add disk: array not running!

Barmaley
Junior member
Сообщения: 9
Зарегистрирован: 11 мар 2003, 12:12
Откуда: Москва

Сообщение Barmaley » 13 авг 2004, 19:48

вылечилось всё командой mdadm --assemble --force /dev/md0 (массив запустился). к сожалению, утилиты из raidtools не помогли.
далее были подключены оба якобы фолтовых диска
raidhoadd /dev/md0 /dev/sdh1 и т.д. и весь массив ожил

всем спасибо за помощь.

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей