2010/8/5 Mircea MITU <[email protected]>: > Ehlo, > > se dau doua discuri cu 2 partitii fiecare si raid 1 software (mdadm) > intre ele, ce la momentul T0 arata astfel: > > md0: sda1, sdb1 - sistem de operare (inclusiv /boot) > md1: sda2, sdb2 - date > > Fiind raid 1 software si /boot e md0, grub e instalat pe ambele discuri > > La momentul T1, se scoate fizic un disc din ele, se pune deoparte > (neutilizat) si sistemul/raid-ul merge cu un singur disc. > > in acest moment (T1) raidul arata: > > md0: sda1/_ > md1: sda2/_ > > La momentul T2, se adauga inapoi discul luat la momentul T1, si de aici > incepe partea "fun": > - sda de la T1 devine sdb in T2 > - noul disc devine sda > - md0 isi face sync: sda -> sdb > - md1 isi face sync: sdb -> sda > > Efectul imediat a fost mucificarea partiala a partitiei sda1 (T1). > > Daca exista vreo minte mai luminata si mai limpede decat a mea, imi > poate explica de ce anume s-a produs acest fenomen si cum anume se poate > evita pe viitor? Singura explicatie ce mi-o pot da este: > > - logica de sync este: discul cu timestamp mai recent e sursa de sync > - biosul a ales pt boot disc-ul celalalt > - grub, la boot, scrie ceva (i.e butez) pe disc-ul de pe care booteaza > - astfel, discul devine mai recent si sursa pt sync array > - partitiile din md1 nu au fost modificate la boot si se sincronizeaza > in ordinea fireasca
Nota: nu-s vreun expert in md, dar zic din cargo-cultingul adunat in timp. Posibil sa ma insel. - md n-are absolut nici o treaba cu numele de tip sdXY, device-urile au metadate scrise pe ele (la sfarsit) care contin uuid-ul lor si uuid-ul device-ului md. Pot fi asamblate doar pe baza acestor informatii; - mdadm --query/detai/examine <device> sunt mari prieteni cu asamblorii de md-uri - e _foarte_ indicat ca atunci cand scoti un disc din raid (si nu intentionezi sa-l mai folosesti drept sursa de date pt. sync) sa-l marchezi ca failed, tocmai ca sa nu se intample ce ai zis tu mai sus -re: instalare grub pe ambele discuri, recomand urmatoarea reteta (yeah, more cargo-culting): shell$ grub --no-floppy grub> device (hd0) /dev/sda grub> root (hd0,0) grub> setup (hd0) grub> device (hd0) /dev/sdb grub> root (hd0,0) grub> setup (hd0) grub> ^C Dracia de mai sus asigura ca orice disc ar fi vazut de bios ca discul de boot, sa-si incarce stage2, kernelul si initrd-ul de pe membrul raid de pe acelasi disc. Inteleg ca gruburi ceva mai noi fac ce trebuie la grub-install /dev/md0, dar n-as paria pe asta. - grub nu scrie nimic pe discul care booteaza, altfel s-ar invalida raidurile 1 la orice boot (ma rog ar fi savedefault dar ala se pune in mbr din cate stiu, si in orice caz, nu stie el de metadatele de raid incat sa schimbe vreun mtime pe-acolo). Sa rezum pt. cei cu "tl;dr" syndrome: parerea mea e ca e de la lipsa de mdadm --fail. -- Petre. _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
