Debian върху RAID-5
5 отговора
334 прегледа
Debian върху RAID-5
Здравейте.
Имам следният сървър: Intel 440MX дъно с вграден Adaptec 7xxx, пакет от 5 SCSI диска и в единия от PCI слотовете Symbian хардуерен RAID контролер. На тази машина искам да сложа Debian Testing.
Първото, което установих е че netinst не съдържа подходящ драйвер. Според lspci контролерът ми е I2O: Intel Integrated Raid, но i2o_core и i2o_disk липсват в /lib/modules/2.x ... на netinst. Според Google контролерът ми трябва да работи със sym53c8xx.ko, но и двата варианта на този драйвер ми разправят, че нямам такова устройство.
Хубаво, дръпнах си най-новият knoppix с ядро 2.6.17, който намери RAID масива и даже може да пише по него. Щастлив и доволен направих дялове, рестарт за да ги прочете ядрото и пуснах mkreiserfs /dev/i2o/hda2 ... след 10-15 мин ми омръзна да чакам, спрях го и пробвах какво мисли hdparm -tT /dev/i2o/hda2, видях 300_k_/s и отчаян се отказах
Някой да има идея може ли да съм се натресъл на нещо, което е хм, Knoppix проблем? Сървъра определено работеше добре с Win2k.
Та, теглих една на хардуерния RAID и реших да опитам софтуерен. Направих си по няколко дяла на всеки диск, обединих sda1... sde1 в RAID5 md0, а sda3... sde3 - в RAID1 md2, с цел да мога да инсталирам grub/lilo (те не се оправят както установих с RAID5). Имам още swap и data, които са RAID5.
Всичко това хубаво, инсталацията мина като слънце (наистина, бавно ми се стори, ама нейсе), reboot и зависнахме. Натискам enter и съм в busybox. Зяпах наляво-надясно и установих, че първо, никой не е заредил модулите raid5 и raid1, добре, добавих ги в modules и направих mkinitramfs. При следващият рестарт видях, че модулите тръгват, обаче в dev няма md0 ... направих с mknod /dev/md0 b 9 0, но mount /dev/md0 разправя, че не може да намери файлова система.
Разрових се още малко и установих, че изглежда ядрото не разпознава само на кои устройства е raid-а. Оставам с впечатлението, че някой трябва да му помогне. Изглежда тази работа я върши mdadm, но се уморих и реших, че по-добре да питам, отколкото да направя глупост.
Та след краткия увод, ето и въпросите
- Като как се очаква да се пуска и спира софтуерния RAID? Как при зареждане се вдига и как при спиране се flush-ва всичко на диска?
- Някой да има идея какво да добавя в конфигурацията на mkinitrams така, че initrd да се образува по стандартен начин, а не с ръчкане на ръка ... целта ми е следващите apt-get upgrade да минават без да се налага да помагам.
Ами това е. Благодаря за търпението
White dwarf seeks red giant for binary relationship.
Имам следният сървър: Intel 440MX дъно с вграден Adaptec 7xxx, пакет от 5 SCSI диска и в единия от PCI слотовете Symbian хардуерен RAID контролер. На тази машина искам да сложа Debian Testing.
Първото, което установих е че netinst не съдържа подходящ драйвер. Според lspci контролерът ми е I2O: Intel Integrated Raid, но i2o_core и i2o_disk липсват в /lib/modules/2.x ... на netinst. Според Google контролерът ми трябва да работи със sym53c8xx.ko, но и двата варианта на този драйвер ми разправят, че нямам такова устройство.
Хубаво, дръпнах си най-новият knoppix с ядро 2.6.17, който намери RAID масива и даже може да пише по него. Щастлив и доволен направих дялове, рестарт за да ги прочете ядрото и пуснах mkreiserfs /dev/i2o/hda2 ... след 10-15 мин ми омръзна да чакам, спрях го и пробвах какво мисли hdparm -tT /dev/i2o/hda2, видях 300_k_/s и отчаян се отказах
Та, теглих една на хардуерния RAID и реших да опитам софтуерен. Направих си по няколко дяла на всеки диск, обединих sda1... sde1 в RAID5 md0, а sda3... sde3 - в RAID1 md2, с цел да мога да инсталирам grub/lilo (те не се оправят както установих с RAID5). Имам още swap и data, които са RAID5.
Всичко това хубаво, инсталацията мина като слънце (наистина, бавно ми се стори, ама нейсе), reboot и зависнахме. Натискам enter и съм в busybox. Зяпах наляво-надясно и установих, че първо, никой не е заредил модулите raid5 и raid1, добре, добавих ги в modules и направих mkinitramfs. При следващият рестарт видях, че модулите тръгват, обаче в dev няма md0 ... направих с mknod /dev/md0 b 9 0, но mount /dev/md0 разправя, че не може да намери файлова система.
Разрових се още малко и установих, че изглежда ядрото не разпознава само на кои устройства е raid-а. Оставам с впечатлението, че някой трябва да му помогне. Изглежда тази работа я върши mdadm, но се уморих и реших, че по-добре да питам, отколкото да направя глупост.
Та след краткия увод, ето и въпросите
- Като как се очаква да се пуска и спира софтуерния RAID? Как при зареждане се вдига и как при спиране се flush-ва всичко на диска?
- Някой да има идея какво да добавя в конфигурацията на mkinitrams така, че initrd да се образува по стандартен начин, а не с ръчкане на ръка ... целта ми е следващите apt-get upgrade да минават без да се налага да помагам.
Ами това е. Благодаря за търпението
White dwarf seeks red giant for binary relationship.
Re: Debian върху RAID-5
debian не съм ползвал
но за софтуерно райд-че, дяловете трябва да са тип fd (Linux raid autodetect)
the lord of destruction
но за софтуерно райд-че, дяловете трябва да са тип fd (Linux raid autodetect)
the lord of destruction
Re: Debian върху RAID-5
seo е прав. А и тези неща са описани добре ето тук - [линк]
Пък и ако в initrd има всичко необходимо - не е проблем да буутнеш и от самия RAID.
Пък и ако в initrd има всичко необходимо - не е проблем да буутнеш и от самия RAID.
Решението ...
се оказа доволно просто:
С други думи, проблемът беше в баааааавното прочитане на дяловете. Докато ядрото разбере за sda1...sde4, скриптът за вдигане на RAID-а минава, но не намира никой и като резултат когато дойде момента за монтиране на root, на /dev/md0 няма никой.
Тъпанарски проблем, който всъщност заобиколих, а не реших (истинското решение е mdrun /dev да се пусне чак след като модулите за SCSI контролера са се заредили и дяловете са открити).
Най-лошото обаче се оказа хм, липсата на подходяща документация. Е, може би и в моето неумение да я търся, знам ли. HOWTO-то, за което говориш е първо, страшно остаряло и второ, не обяснява пълноценно mdadm, а само споменава, че го има като алтернатива на raidtools и че еди-кои си неща се правят така и така. Не намерих и описание как се очаква да работи boot процеса на Debian, затова дебъгвах.
Като човек без опит в RAID обаче за мен беше загадка например как при начално зареждане се разпознава къде е софтуерният RAID - кой том на кои дялове е. Информация се намира лесно, но за стари ядра. В 2.6 обаче автоматичното конфигуриране на RAID не се задава като опция на ядрото, а е неразделна част от кода. То обаче работи само, ако не използваш initrd. Когато използваш, очаква се някой от скриптовете в initrd да събере тома. Е как да се досетиш?
Да го кажа така - софтуерът не е никак лош (Debian-ския поне), но ако не беше Google и нямах няколко дена за ровене
...
Знам ли, може и да бъркам. Ако някой ми покаже място, където е описано принципно как са проектирани да работят отделните компоненти на Linux / Debian, за мен това би било многократно по-полезно от рецептите как да направим еди-какво си на tldp.org. Но такава информация или няма, или е трудна за намиране.
White dwarf seeks red giant for binary relationship.
cd /etc/mkinitramfs/scripts/local-top
echo "sleep 15" > _
chmod +x _
update-initramfs -u
С други думи, проблемът беше в баааааавното прочитане на дяловете. Докато ядрото разбере за sda1...sde4, скриптът за вдигане на RAID-а минава, но не намира никой и като резултат когато дойде момента за монтиране на root, на /dev/md0 няма никой.
Тъпанарски проблем, който всъщност заобиколих, а не реших (истинското решение е mdrun /dev да се пусне чак след като модулите за SCSI контролера са се заредили и дяловете са открити).
Най-лошото обаче се оказа хм, липсата на подходяща документация. Е, може би и в моето неумение да я търся, знам ли. HOWTO-то, за което говориш е първо, страшно остаряло и второ, не обяснява пълноценно mdadm, а само споменава, че го има като алтернатива на raidtools и че еди-кои си неща се правят така и така. Не намерих и описание как се очаква да работи boot процеса на Debian, затова дебъгвах.
Като човек без опит в RAID обаче за мен беше загадка например как при начално зареждане се разпознава къде е софтуерният RAID - кой том на кои дялове е. Информация се намира лесно, но за стари ядра. В 2.6 обаче автоматичното конфигуриране на RAID не се задава като опция на ядрото, а е неразделна част от кода. То обаче работи само, ако не използваш initrd. Когато използваш, очаква се някой от скриптовете в initrd да събере тома. Е как да се досетиш?
Да го кажа така - софтуерът не е никак лош (Debian-ския поне), но ако не беше Google и нямах няколко дена за ровене
Знам ли, може и да бъркам. Ако някой ми покаже място, където е описано принципно как са проектирани да работят отделните компоненти на Linux / Debian, за мен това би било многократно по-полезно от рецептите как да направим еди-какво си на tldp.org. Но такава информация или няма, или е трудна за намиране.
White dwarf seeks red giant for binary relationship.
Re: Решението ...
при мен правеше абсолютно същия проблем със hpt374 контролер, с техния драйвер (не този, който е стандартно в ядрото), та се наложи и аз да го лъжа с един sleep.. ;-)
the lord of destruction
the lord of destruction
Re: Решението ...
Първо, да ти кажа да не си губиш времето с TLDP, освен ако не си решил да оправиш някой от древнейшите документи там.
------------------цитат
Като човек без опит в RAID обаче за мен беше загадка например как при начално зареждане се разпознава къде е софтуерният RAID - кой том на кои дялове е. Информация се намира лесно, но за стари ядра. В 2.6 обаче автоматичното конфигуриране на RAID не се задава като опция на ядрото, а е неразделна част от кода. То обаче работи само, ако не използваш initrd. Когато използваш, очаква се някой от скриптовете в initrd да събере тома. Е как да се досетиш?
-------------------------
мога да ти кажа как работи, ама не ме питай откъде го научих. Не ми отне повече от 3-4 часа цялото:
Начално зареждане - на всяко появяване на блоково устройство ядрото гледа таблицата му на дяловете. Ако има дялове FD им се гледа суперблока (на дяла, не на FS) и се групират по масивчета. Като се появи ново масивче, се появява нов /dev/mdX, като му се появят всички нужни парчета статусът му става добър (/proc/mdstat) и може да се достъпва като дял.
От initrd зависи само как ще заредиш драйвера. Mасивите ще се появят след зареждането на md и storage драйвера. Никакви скриптове нямат пръст тука, а схемата е еднаква на повечето дистрибуции с ядро 2.4.15+ примерно.
there is no spoo^H^H^H^Hfork()
------------------цитат
Като човек без опит в RAID обаче за мен беше загадка например как при начално зареждане се разпознава къде е софтуерният RAID - кой том на кои дялове е. Информация се намира лесно, но за стари ядра. В 2.6 обаче автоматичното конфигуриране на RAID не се задава като опция на ядрото, а е неразделна част от кода. То обаче работи само, ако не използваш initrd. Когато използваш, очаква се някой от скриптовете в initrd да събере тома. Е как да се досетиш?
-------------------------
мога да ти кажа как работи, ама не ме питай откъде го научих. Не ми отне повече от 3-4 часа цялото:
Начално зареждане - на всяко появяване на блоково устройство ядрото гледа таблицата му на дяловете. Ако има дялове FD им се гледа суперблока (на дяла, не на FS) и се групират по масивчета. Като се появи ново масивче, се появява нов /dev/mdX, като му се появят всички нужни парчета статусът му става добър (/proc/mdstat) и може да се достъпва като дял.
От initrd зависи само как ще заредиш драйвера. Mасивите ще се появят след зареждането на md и storage драйвера. Никакви скриптове нямат пръст тука, а схемата е еднаква на повечето дистрибуции с ядро 2.4.15+ примерно.
there is no spoo^H^H^H^Hfork()