Resize Xen + LVM

Deși probabil nu e cea mai bună investiție a timpului meu, pasiunea pt system administration a rămas, așa că eu sunt cel care se ocupă de serverele Avanticart.

Folosesc Xen pentru virtualizare, cu LVM în Dom0, fiecare mașină virtuală având propriul volum. În DomU sunt partiții „clasice”, fară LVM. De fapt e doar partiția de root (/) și cea de swap.

Recent, o mașină virtuală a ajuns să umple 90% din disc. Așa că a trebuit să-i aloc mai mult spațiu. N-am mai făcut treaba asta până acum și a fost o experiență interesantă să descopăr ce e de făcut. Scriu aici pașii făcuți pentru că sigur o să mai am nevoie să fac aceeași operațiune în viitor. A, și poate mai au și alții nevoie.

Toate lucrurile de mai jos le-am făcut prima dată pe o mașină de test, ceea ce vă recomand și vouă.

Să începem. Prima dată redimensionăm volumul:
lvresize -L +30G /dev/vmachines/avanti01

Apoi facem o copie de siguranță:
lvcreate -L10G -s -n snap-avanti /dev/vmachines/avanti01

Apoi oprim mașina virtuală. Până aici, totul e frumos. Acum vine partea mai nasoală deoarece trebuie să ne jucăm cu fdisk iar din neatenție putem strica totul.

fdisk /dev/vmachines/avanti01

Cam așa arată partițiile mele:

                   Device Boot      Start         End      Blocks   Id  System
/dev/vmachines/avanti01p1               1        6973    56010591   83  Linux
/dev/vmachines/avanti01p2            6974        7832     6899917+   5  Extended
/dev/vmachines/avanti01p5            6974        7832     6899886   83  Linux

În cazul meu, ținta e să fac resize la prima partiție, așa că trebuie să șterg toate partițiile. După ce le-am șters, am refăcut prima partiție cu dimensiunea dorită. Am recreat și partiția de swap, bineînțeles. În cazul în care aveți mai multe partiții, trebuie să aveți grijă ce ștergeți și cum re-creați partițiile, puteți să pierdeți datele foarte ușor.

Ok, am făcut partițiile. Acum ne folosim de kpartx pentru a putea accesa local (Dom0) partițiile din DomU. Așadar:
kpartx -av /dev/vmachines/avanti01

Înainte de a apela resize2fs trebuie să rulăm un disk check:
e2fsck -f /dev/mapper/vmachines-avanti01p1

În sfârșit ajungem și la resize-ul propriuzis:
resize2fs -p /dev/mapper/vmachines-avanti01p1

Dacă totul a mers ok, putem ștergem mapările:
kpartx -d /dev/vmachines/avanti01

Pornim mașina virtuală, iar dacă totul e în regulă, ștergem copia de siguranță.
lvremove /dev/vmachines/snap-avanti

Totul a durat 10 minute. Un downtime acceptabil :)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>