Jump to content
Vesperala Forum

Recommended Posts

Posted

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...