Bootování z poškozeného RAID 1

Bootování z poškozeného RAID 1
« kdy: 28. 11. 2013, 22:51:17 »
Dobrý den,
jsem poněkud neznalý problematice softwarového RAIDu a chtěl bych se zeptat, zda-li pokud mám 2 disky v mirroru a použiji softwarový RAID (použitá distribuce Centos 6.4) pak jestli bude možné totožně bootovat z obou disků? Jinak řečeno selže-li mi libovolný jeden disk, tak bude možné okamžitě nabootovat systém z druhého disku?

Děkuji.
« Poslední změna: 29. 11. 2013, 00:00:03 od Petr Krčmář »


Lol Phirae

Re:SW RAID 1 - CentoOS 6.4 - Bootable?
« Odpověď #1 kdy: 28. 11. 2013, 23:01:28 »
Ano. Teda nevím, jak to má ošetřeno instalátor, já jsem grub na každý MBR disk instaloval pro jistotu extra ručně, ale třeba už doba pokročila. Nejlepší je bootovat rovnou EFI z "BIOSu". ;D

PANKapitanRUM

Re:SW RAID 1 - CentoOS 6.4 - Bootable?
« Odpověď #2 kdy: 28. 11. 2013, 23:11:32 »
Hele, to bootování je někdy kapku problém, nejvíc se mi osvědčil asi podobný postup, který zmínil Phirae.
Vytvořit samostatný bootovací oddíl na obou discích a druhý oddíl na data, kdy bootovací oddíly nejsou v raidu.
Asi to není nejčistší řešení, ale poměrně osvědčené.


M.

Re:SW RAID 1 - CentoOS 6.4 - Bootable?
« Odpověď #3 kdy: 28. 11. 2013, 23:39:18 »
Je třeba na druhý disk to narvat ručně. Protože instalátor tam boot loader nainstaluje, ale blbě. Dá tam odkaz na 1. disk, takže boot čte z druhého disku fází jedna z MBR, z druhého disku čte fázi 1.5 a 2. Ale kernel začne tahat z 1. disku.
Normálně to při umřetí prvního disku pak nenajede. Jde to nabootovat ručně zadáním vhodných parametrů....

Lol Phirae

Re:SW RAID 1 - CentoOS 6.4 - Bootable?
« Odpověď #4 kdy: 28. 11. 2013, 23:41:39 »
Vytvořit samostatný bootovací oddíl na obou discích a druhý oddíl na data, kdy bootovací oddíly nejsou v raidu.

Ten RAID-1 na /boot ani nevadil, jen jsem instaloval ručně grub do MBR extra pro /dev/sd[ab...]. Ono to bootuje i z toho /boot/efi v RAID-1 přímo z BIOSu, akorát je potřeba zajistit, že ten RAID-1 na /boot/efi používá metadata v1.0 (se superblokem na konci disku).


PANKapitanRUM

Re:SW RAID 1 - CentoOS 6.4 - Bootable?
« Odpověď #5 kdy: 28. 11. 2013, 23:48:10 »
Hm, tak to budu muset vyzkoušet!
Dík za radu ;)

Palo M.

Re:Bootování z poškozeného RAID 1
« Odpověď #6 kdy: 29. 11. 2013, 04:46:30 »
To s tym EFI bootom ma zaujalo (na serveri, kde mam RAID1, mam len BIOS, na desktope s UEFI zas nemam RAID1, takze UEFI+RAID som zatial neriesil)...
Pri EFI boote je /boot/efi len mount-point pre samostatnu EFI System Partition a vlastne to ani nemusi byt mountnute pre chod systemu (je to tam len kvoli updatom balikov a pripadnym zmenam bootovacieho poradia/multibootu z OS).
ESP je pomerne mala a musi byt naformatovana ako FAT... Preto veta "Ono to bootuje i z toho /boot/efi v RAID-1 přímo z BIOSu" sa mi zdala najprv trocha cudna, pretoze /boot/efi nie je z RAID-u, ale je to samostatny oddiel disku (tento typ oddielu ma samostatne UUID, ine ako UUID pouzivane pre RAID oddiely).

Ale ako som sa prave docital, pri metadatach v1.0 je RAID superblok na konci oddielu disku, takze takyto oddiel disku by sa mal dat primountovat aj ako ne-RAID, takze UEFI by ho snad mohol precitat... ale nema tato finta nejake neziaduce efekty? Napriklad to s tym UUID, pripadne ci nehrozi prepisanie toho RAID superbloku na konci?

Ak by sa to malo robit bez finty a korektne, tak pre EFI boot musi mat kazdy z diskov na zaciatku svoju samostatnu ESP. A potom uz moze byt len RAID oddiel disku (v RAID1 moze byt cely /, netreba samostatny oddiel pre /boot). Pri zavadzani UEFI nacita len linuxovy EFI-bootloader (grubx64.efi, pripadne elilo.efi) z ESP prveho disku, ktory uz vie pracovat s RAID...
Teda, este som RAID s EFI neskusal, ale vzhladom na to, ze ako /boot/efi moze byt mountnuty len jeden z diskov, tak predpokladam, ze pri EFI boot-e bude potrebna podobna "rosada" ako kedysi, teda nainstalovat bootloader manualne aj na druhy disk (odmountovat /boot/efi, mountnut tam tu ESP z druheho disku a nainstalovat EFI-bootloader pomocou grub-install)... inak by sa stalo, ze bootloader bude len v ESP prveho disku a druhy disk bude mat ESP prazdnu - a keby nahodou rupol prvy disk, tak by system uz nenabehol (a navyse by to neslo obist "pouzitim inych parametrov grub-u", pretoze prave bootloader grub-u by uplne chybal na tom druhom disku). Ono sa ale ta ESP az tak casto neprepisuje (asi len ak sa zmeni ten bootloader v dosledku updatu)... takze ja sam by som skor isiel cestou samostatnych ESP. (Ale tuto fintu si pri najblizsej prilezitosti urcite vyskusam ;).)

No a na uplne povodnu otazku (Pavel Šlechta) by som poradil: Rozhodne to cele treba preskusat. Akonahle je RAID nastaveny (a syncnuty!), vypnut masinu, odpojit jeden disk, bootnut stroj a skontrolovat, ci bezi len s jednym diskom. Potom vypnut, zapojit disk znova, bootnut, skontrolovat znova (disk by mal byt "vykopnuty" z pola, treba ho znovu pridat). Potom znovu pockat, az sa dokonci synchronizacia pola (opat velmi dolezite!) a test zopakovat, len tentokrat odpojit ten druhy disk.
Po takomto odskusani sa clovek citi omnoho istejsie. 8)

Lol Phirae

Re:Bootování z poškozeného RAID 1
« Odpověď #7 kdy: 29. 11. 2013, 07:53:47 »
Ale ako som sa prave docital, pri metadatach v1.0 je RAID superblok na konci oddielu disku, takze takyto oddiel disku by sa mal dat primountovat aj ako ne-RAID, takze UEFI by ho snad mohol precitat... ale nema tato finta nejake neziaduce efekty? Napriklad to s tym UUID, pripadne ci nehrozi prepisanie toho RAID superbloku na konci?

Žádné nežádoucí efekty jsem nepozoroval. Pravda je, že ten oddíl jsem nikdy nezaplnil.  ;D

Rozhodne to cele treba preskusat. Akonahle je RAID nastaveny (a syncnuty!), vypnut masinu, odpojit jeden disk, bootnut stroj a skontrolovat, ci bezi len s jednym diskom. Potom vypnut, zapojit disk znova, bootnut, skontrolovat znova (disk by mal byt "vykopnuty" z pola, treba ho znovu pridat). Potom znovu pockat, az sa dokonci synchronizacia pola (opat velmi dolezite!) a test zopakovat, len tentokrat odpojit ten druhy disk. Po takomto odskusani sa clovek citi omnoho istejsie. 8)

Tak každopádně, bez testování nedoporučuju.

Jinak obecně mě dost překvapuje, jak mizerně je to (stále ještě) v distribucích řešeno a jak je to zabugované, to snad sakra přece není takový problém ošetřit, že u RAID-1 je potřeba bootloader nainstalovat na všechny disky.  :(

j

Re:Bootování z poškozeného RAID 1
« Odpověď #8 kdy: 29. 11. 2013, 08:51:41 »
Spis bude problem i v tom, ze kdyz ty gruba zaktualizujes ... tak by system musel nejakou obezlickou delat porad dokola totez. Problem je problem zkratka v tom, ze SWraid neni RAID ... kdyby byl, tak by grub nidky nemoh videt nic jako "disk 1". Jenze ty musis chte nechte nejdriv nastartovat neco z jednoho disku, abys zjistil, ze ten disk je soucasti RAIDU ... a to je ten problem.

Lol Phirae

Re:Bootování z poškozeného RAID 1
« Odpověď #9 kdy: 29. 11. 2013, 09:04:15 »
Spis bude problem i v tom, ze kdyz ty gruba zaktualizujes ... tak by system musel nejakou obezlickou delat porad dokola totez.

Ano, zatímco teď to dělá taky, pouze blbě na jednom disku. Fakt nerozumím, co se myslí pojmem "obezlička"

Problem je problem zkratka v tom, ze SWraid neni RAID ... kdyby byl, tak by grub nidky nemoh videt nic jako "disk 1".

Ehm... Nevím, jakou představu přesně máte o "hardwarových" RAIDech, ale vytáhl jsem jeden disk z Fujitsu serveru s jakýmsi "enterprise" SAS RAID řadičem, s baterkou, vlastním BIOSem s ovládáním myší apod. krávovinami, jsou na něm Widle v RAID-1. Ten disk je normálně mountovatelný a čitelný a bootuje.  ;D

Re:Bootování z poškozeného RAID 1
« Odpověď #10 kdy: 29. 11. 2013, 09:16:46 »
Já používám LILO. A to má v lilo.conf možnost zadat, zda chci bootloader dát na jeden konkrétní disk (např jen na /dev/sda), a nebo jestli chci bootloader instalovat na všechny disky  nějakého mirror raidu (např. /dev/md0) - pro tento účel přidám do konfiguráku akorát todle: raid-extra-boot=mbr-only

LILO se pak automaticky nainstaluje do MBR sektoru na všech diskách, které jsou v /dev/md0 (samo si to zdetekuje) a systém pak bootuje z jakéhokoli disku. Pro zvídavé začátečníky, MBR sektor je prvních 512 bajtů na disku (z čehož 446 bajtů je místo pro bootloader a zbylých 66 bajtů je pro tabulku s oddílama). A právě v těch 446 bajtech musí být proveditelný kód bootloaderu (LILO, GRUB, atd) který defakto ani není bootloader, tam se vejde tak maximálně kód pro skok na nějaký sektor v nějaké partišně, a odtamtud se fakticky teprv spustí samotný bootloader.

Lol Phirae

Re:Bootování z poškozeného RAID 1
« Odpověď #11 kdy: 29. 11. 2013, 09:32:29 »
Njn. LILO jsem nepoužil už mnoho let. Prostě ta zoufalost, že po aktualizaci jádra to jaksi už nenabootovalo, protože jsem nezaktualizoval to LILO, to bych si vždycky vytrhal zbytky vlasů.  >:( ::) A teď nějak nemám náladu zkoumat tu příšernou konfiguraci u grub2, jestli to 1/ něco podobného vůbec umí; 2/ kam to přidat, aby se to vůbec použilo; 3/ aby se to použilo automaticky. Ono už to taky není zas až tak aktuální, když se něco hodně pomrví, tak se dá nabootovat ze sítě prakticky cokoliv a opravit to v rozumném prostředí, než se mořit s takovýmhle laborováním. Ale to je zas věc toho, že to máte v serverovně za zadkem, ne v serverhousingu na druhém konci města/republiky.

Pajk

Re:Bootování z poškozeného RAID 1
« Odpověď #12 kdy: 29. 11. 2013, 10:04:21 »
Pro Lol Phirae ad enterprise SAS RAID a raid1 bootuje: setkal jsem se se řadou hw raid řadičů (LSI, Dell Perc, Infortrend - co si vzpomínám), které měly metadata zřejmě na konci disku a tudíž raid1 disk byl čitelný i mimo raid řadič, protože od začátku disku byla MBR a parcely, akorát ty parcely nesahaly až na hw konec disku, protože skrz ten raid se do OS hlásila o něco menší velikost (o ta metadata, resp. nějaké zaokrouhlené cylindry na ta metadata). Takže osamostatnění disku bylo v pořádku, akorát nemohl být vrácen zpět do raidu k druhému disku, protože by to nepoznalo změnu "generace" - prostě změnu nějakého počtu startů raidu a tedy by to nezahájilo resync na partnerský disk.
Vracet do raidu se to muselo samostatné, bylo to rozpoznáno jako degraded raid1 a pak se k tomu mohl přidat partnerský disk a bylo zaručeno, že jako zdroj pro resync se bude brát ten, který v raidu naposledy naběhl jako samostatný.
Ale základní rozdíl mezi hw a sw raidem je v tom, že s hw raidem OS vidí jen ty logické disky, tj. ty raidy. Ne jednotlivé fyzické členy raidů.