2009. április 12., vasárnap

# Ha költöztetni kell egy másik fizikai HDD-re, kiesés nélkül [LVM]


Ha azt látjuk, hogy szeretne meghalni egy HDD, amin éppenséggel a rendszerünk van... és anno LVM-et használtunk telepítéskor, akkor vegyünk egy másik, pl.: legalább ugyan akkora HDD-t, tegyük bele a gépbe és helyezzük át az adatokat az új HDD-re [kiesés nélkül, a futó szolgáltatások kellenek], és később bootolni is lehessen az új HDD-ről, mivel a régi vinyót kivesszük, ha végzünk.
A példában a VG-ban [vg] van két LV ["root", és "swap"]. Az LVM a régi vinyón a "hda2"-őn volt. [Debian Lenny-t használtam, de az tetszőleges ^ ^ ]. Mielőtt elkezdi az ember, BACKUP!
Eredetileg a "/dev/hda1" volt EXT3-ban a "/boot", és a "/dev/hda2"-n az LVM:
fdisk -l # felismerte, az új HDD-t? OK
pl.: fdisk-el hozzunk létre két partíciót, egyet a "/boot"-nak, és még egyet a későbbi LVM-nek:
fdisk /dev/hdb
n
p
1
enter
+256M
t
83

n
p
2
enter
enter
t
2
8e

w
mkfs.ext3 /dev/hdb1
Ok, az új HDD rendesen particionálva fdisk-el [hdb1: EXT3 - 256 MByte; hdb2: LVM - maradék hely], most adjuk hozzá az új HDD-t a PV-khez:
pvdisplay # mi volt előtte?
pvcreate /dev/hdb2
pvdisplay # hozzáadta? OK
Adjuk hozzá a VG-hoz:
vgdisplay # mi volt előtte?
vgextend vg /dev/hdb2
vgdisplay # hozzáadta? OK
Most:
pvdisplay
Az utolsó paranccsal egyben megtudjuk, hogy mik a PV-ok nevei, tehát mozgassuk át az adatokat a régi HDD-ről, az újra:
pvmove /dev/hda2 /dev/hdb2 -i 10
Ez előbbi parancs sok ideig futhat [ezért a "-i 10" kapcsoló]. Esetleg előzetesen infót tudhatunk meg az adatok elhelyezkedéséről a következővel:
pvdisplay -m
Ok. A LV-ok át lettek helyezve a "hda"-ról a "hdb"-re.
A /boot
Akkor még a "/boot". A GRUB még nem tud bootolni LVM-ről, ezért kell külön "/boot" [a GRUB2 elvileg támogatja amúgy], szóval egyelőre marad az, hogy külön "partíción" van [említetten] a "/boot" [pl.: EXT3 filerendszerrel].
Szóval azzal külön kell foglalkozni, ezért is hagytam particionáláskor egy külön "/dev/hdb1"-et, vagy anno "/dev/hda1/"-et.

Csatoljuk fel a "hdb1"-en levő EXT3-as partíciót, "ujboot"-nak:
mkdir ujboot
mount /dev/hdb1 ujboot/
A régi "/boot" lemásolása:
cp -a /boot/* ujboot/
Csatoljuk le az "/ujboot"-ot, töröljük az ideiglenesen létrehozott könyvtárát, majd a régi "/boot"-ot is csatoljuk le [menet közben nem okoz gondot - FIXME].
umount /dev/hdb1
rmdir ujboot/
umount /boot
Ekkor esetleg egy "mount|grep hda" paranccsal nézzük meg, hogy biztos nincs már semmi felmountolva rá, csak hogy azzal már ne kelljen később törődni.
Most csatoljuk a "/boot"-ot a "hdb1"-re:
mount /dev/hdb1 /boot
Még az fstab-ban írjuk át a "/boot" helyét:
vim /etc/fstab # és ne a "/dev/hda1"-en legyen a "/boot", hanem a "/dev/hdb1"-en!
Még nincs kész!:

Ez után, még FONTOS, szabályosan szedjük ki a VG-ból a régi "hda2" PV-ot, sorrendet betartva [ekkor előtte esetleg még egy "pvmove", hátha írtak azóta rá]:
vgreduce vg /dev/hda2
Most a PV-ból is:
pvremove /dev/hda2
Rakjuk rendbe a GRUB-ot:
grub-mkdevicemap
grub-install /dev/hdb
A régi "hda" HDD-t vegyük ki.
ui.: Virtuális szg.-ben tevékenykedtem, működött ^ ^
ui2.: a man-ok nem írják, de szintén hasznos dolog, akár általánosságban, hogy a "-vvv"
kapcsolók bőbeszédebbűvé teszik a kimeneteket... ^ ^ ..hibakeresésnél ez jól jöhet... ui3.: Egy jó dok. itt.
ui4.: Még egy jó dok itt.
ui5.: LV létrehozása pl.: "lvcreate -L 10G vg -n lvneve"
ui6.: Ha elfogy a szabad terület [LVM] - korábbi LVM-es írás.

Nincsenek megjegyzések:

Megjegyzés küldése