Раздел: Админство

Один из дисков RAID5 на debian становится removed

Debian squeeze подкидывает сюрпризы с рейдом. RAID собирается нормально, но после каждого ребута, один из дисков принимает состояние removed. Это известная проблема и есть решение.

Установил я давеча Debian squeeze, дабы поставить на нём софтовый RAID5. Установка прошла без проблем, но…
Собираем обычным способом софтовый raid (подробнее об этом в другой статье):

mdadm --create --verbose /dev/md0 --level=5 --spare-devices=0 --raid-devices=4 /dev/sd[bcde]

он ребилдится без ошибок.
Однако, после каждой перезагрузки, один из жёстких дисков почему-то уходит в состояние removed.

Это можно проверить с помощью команд:

cat /proc/mdstat
mdadm -D /dev/md0

и в файле /var/log/dmesg видны какие-то чудеса:

[ 2.151352] md: raid6 personality registered for level 6
[ 2.151354] md: raid5 personality registered for level 5
[ 2.151355] md: raid4 personality registered for level 4
[ 2.154935] md: raid10 personality registered for level 10
[ 2.158817] mdadm: sending ioctl 1261 to a partition!
[ 2.158818] mdadm: sending ioctl 1261 to a partition!
[ 2.160667] mdadm: sending ioctl 1261 to a partition!
[ 2.160669] mdadm: sending ioctl 1261 to a partition!
[ 2.160972] mdadm: sending ioctl 1261 to a partition!
[ 2.160973] mdadm: sending ioctl 1261 to a partition!
[ 2.162450] md: md0 stopped.
[ 2.163024] md: bind
[ 2.163126] md: bind
[ 2.163216] md: bind
[ 2.164042] raid5: device sdb operational as raid disk 0
[ 2.164044] raid5: device sdd operational as raid disk 2
[ 2.164046] raid5: device sdc operational as raid disk 1
[ 2.164309] raid5: allocated 4282kB for md0
[ 2.164331] 0: w=1 pa=0 pr=4 m=1 a=2 r=4 op1=0 op2=0
[ 2.164333] 2: w=2 pa=0 pr=4 m=1 a=2 r=4 op1=0 op2=0
[ 2.164335] 1: w=3 pa=0 pr=4 m=1 a=2 r=4 op1=0 op2=0
[ 2.164336] raid5: raid level 5 set md0 active with 3 out of 4 devices, algorithm 2
[ 2.164364] RAID5 conf printout:
[ 2.164365] --- rd:4 wd:3
[ 2.164366] disk 0, o:1, dev:sdb
[ 2.164367] disk 1, o:1, dev:sdc
[ 2.164368] disk 2, o:1, dev:sdd
[ 2.164385] md0: detected capacity change from 0 to 6001191813120
[ 2.165025] md0: unknown partition table
[ 2.364666] mdadm: sending ioctl 1261 to a partition!
[ 2.364668] mdadm: sending ioctl 1261 to a partition!
[ 2.364864] mdadm: sending ioctl 1261 to a partition!
[ 2.364866] mdadm: sending ioctl 1261 to a partition!
[ 2.401369] PM: Starting manual resume from disk
[ 2.401371] PM: Resume from partition 8:2
[ 2.401372] PM: Checking hibernation image.
[ 2.401659] PM: Error -22 checking image file
[ 2.401661] PM: Resume from disk failed.

В частности, это:

mdadm: sending ioctl 1261 to a partition!

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

Решение оказалось простым: обновление ядра. Делается оно так:
1. Смотрим текущую версию.

cat /proc/version

Команда выдаёт что-то в роде linux-2.3.0.ххх
2. в /etc/apt/sources.list добавляем строчку:
deb http://backports.debian.org/debian-backports squeeze-backports main
3. Обновляем информацию о пакетах, содержащихся в репозиториях:

apt-get update 

4. Смотрим какие ядра достуны, и выбираем для нашей архитектуры:

apt-cache search linux-image-3

5. Инсталлируем:

apt-get -t squeeze-backports install <strong>linux-image-3.2.0-0.bpo.4-amd64</strong> firmware-linux-free

6. Перезагружаем копьютер, настраиваем RAID как обычно, и всё работает.

Комментировать

Комментарии

8 + восемь =