Aprig Posted February 25, 2010 Report Posted February 25, 2010 După cum zice şi titlul. Mi-am luat un al doilea hard, pe care l-am pus în RAID 1 (mirroring) cu primul. Este vorba de RAID software. Nu o să insist cum se face, e plin netul de documentaţie şi tutoriale, o să descriu doar ce trebuie făcut ca să şi meargă. Pe scurt, paşii de urmat. 1. Se face un RAID 1 degraded pe al doilea hard, opţional LVM pe el, se copiază totul de pe primul cu tar sau rsync şi cu mare atenţie, preferabil cu păstrarea tuturor permisiunilor, hard-linkurilor etc. 2. Se şterge primul hard, se adaugă la al doilea ca cealaltă componentă RAID, se aşteaptă replicarea datelor. 3. Se instalează grub pe ambele harduri. 4. Se actualizează uuid-urile în grub şi /etc/fstab. 5. Se verifică că totul e în ordine şi se resetează calculatorul. Pînă aici totul e simplu, clar şi frumos. Ne aşteptăm să pornească şi să meargă. Surpriză: calculatorul nu mai porneşte. (Asta am păţit-o aseară, motiv pentru care n-am dormit bine toată noaptea ) Problema stă cam aşa. 1. În primul rînd, numele dispozitivelor RAID s-au schimbat din /dev/md0 în /dev/md_d0 şi tot aşa. Însă în /lib/udev/rules.d/65-mdadm.vol_id.rules avem linia KERNEL!="md[0-9]*", GOTO="mdadm_end" care nu se mai potriveşte, prin urmare nu se mai creează nodurile în /dev/disk/by-uuid şi altele. Ştergem "[0-9]" KERNEL!="md*", GOTO="mdadm_end" 2. Numele calculatorului (se află uşor cu comanda hostname) se stochează în superblocul fiecărei componente RAID, şi la boot se compară cu numele actual al calculatorului, care din păcate nu a fost setat încă. Deci niciun dispozitiv nu mai porneşte. Pentru asta, edităm /etc/mdadm/mdadm.conf şi modificăm linia care zice HOMEHOST <System> cu numele corect. Fără de-astea < >, alea dispar. Dacă tot sîntem aici, în caz că nu folosim partiţii pe dispozitive, putem modifica şi linia CREATE owner=root group=disk mode=0660 auto=yes Dacă înlocuim yes cu md obţinem CREATE owner=root group=disk mode=0660 auto=md ceea ce va face ca dispozitivele să folosească numele vechi (/dev/md0 ş.a.m.d.), ceea ce ne-ar putea scuti de modificarea de la punctul 1. Care oricum, nu strică. 3. Asta e povestea cea mai dureroasă. În Karmic Koala, cineva mai iresponsabil a schimbat regulile din udev să folosească mdadm --incremental în locul scanării tuturor partiţiilor. Ceea ce în sine e bine, nu e o idee rea, comanda aia chiar pentru asta a fost făcută. Însă versiunea 2.6.7 cu care vine Ubuntu are un bug, şi --incremental nu funcţionează corect, motiv pentru care din fiecare RAID este detectat doar un singur dispozitiv, ceea ce le face să nu pornească (sau să pornească degradate). Ceea ce mă face să cred că cine a făcut asta nu a testat să vadă dacă merge Rezolvarea este să se ia de pe net mdadm 3.0 şi să se compileze (compilarea este foarte uşoară: make strip mdadm ), apoi se copiază fişierul mdadm rezultat în /sbin: mv /sbin/mdadm /sbin/mdadm.orig cp ./mdadm /sbin/mdadm Odată astea rezolvate, se regenerează initramfs: dpkg-reconfigure mdadm Asta e tot. La următorul restart, presupunînd că restul a fost făcut bine, ar trebui să meargă uns. Succes. PS. Recomandare: nu fiţi inconştienţi ca mine, faceţi un backup masiv înainte. N-am pierdut nimic, dar asta pentru că am avut noroc. Am fost totuşi conştient care-s riscurile. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.