Hirdetés

Mi az LVM és mire jó?

Az LVM használatával kényelmesen hozzácsaphatod az új lemezed kapacitását egy régi partíciódhoz.

Méretnövelés

Most, hogy beüzemeltük az új „merevlemezünket”, jöjjön egy példa arra, hogyan tudjuk megnövelni a méretét.

$ sudo lvs
LV VG Attr LSize
home fedora -wi-ao---- 19,36g
root fedora -wi-ao---- 39,66g
swap fedora -wi-ao---- <3,97g
adatok kotet0 -wi-ao---- 52,00m

Mint látható, csak 52 MiB kapacitású a kötetünk, de ha figyeltél, emlékezhetsz, hogy a kotet0 kötetcsoportunk kapacitásának csak a felét használtuk ki, és van rajta szabad kapacitás.

$ sudo vgdisplay kotet0 | grep Free
Free PE / Size 11 / 44,00 MiB

Növeljük meg az adatok nevű fizikai kötet méretét.

$ sudo lvresize -l +100%FREE /dev/kotet0/adatok
Size of logical volume kotet0/adatok changed from 52,00 MiB (13 extents) to
96,00 MiB (24 extents).
Logical volume kotet0/adatok successfully resized.

$ sudo lvs
LV VG Attr LSize
home fedora -wi-ao---- 19,36g
root fedora -wi-ao---- 39,66g
swap fedora -wi-ao---- <3,97g
adatok kotet0 -wi-ao---- 96,00m

Százalékos (%) értéket is megadhatsz, így sokkal egyszerűbb elmagyarázni, mit kérünk, mintsem számolgatni a pontos értékeket. És lám, valóban megnőtt a mérete (52 -» 96). A 13 PE-ből felépített adatok0-hoz, hozzáadtuk a még rendelkezésre álló 11 PE-t. Viszont a rajta elhelyezkedő fájlrendszer mérete nem változott.

$ df -h | grep adatok
/dev/mapper/kotet0-adatok 47M 46M0M 100% /mnt

Vagyis a 47 MiB kapacitású fájlrendszeren 46 MiB-nyi adatot tárolok, ezért 0 MiB szabad, a telítettsége 100%. Növeljük meg a fájlrendszer méretét.

$ sudo resize2fs /dev/kotet0/adatok
resize2fs 1.44.3 (10-July-2018)
A fájlrendszer (/dev/kotet0/adatok) csatolva van ide: /mnt, online átméretezés
szükséges
old_desc_blocks = 1, new_desc_blocks = 1
A fájlrendszer ezen: /dev/kotet0/adatok mostantól 98304 (1k) blokk hosszú.

$ df -h | grep adat
/dev/mapper/kotet0-adatok 90M 46M 39M 55% /mnt

A fájlrendszer mérete 90 MiB lett, amin 46 MiB-nyi adat van, ezért 39 MiB-nyi szabad hely van rajta, telítettsége 55%. Vagyis úgy növeltük meg a partíció, majd a fájlrendszer méretét, hogy közben fel volt csatolva, és végig elérhetőek voltak a rajta tárolt adatok.

Persze ez sem tart örökké, nem ússzuk meg egy új adattároló megvásárlását. De hogyan vigyük át az adatokat a régi lemezről az újra? Erre is is van megoldás.

Modellezzük le, hogy vásároltunk egy új merevlemezt. Létrehozunk az eddig használtnál 2-szer nagyobb méretű fájlt, és block device-t hozunk létre belőle.

$ sudo dd if=/dev/zero of=lemez1 bs=1M count=200
200+0 beolvasott rekord
200+0 kiírt rekord
209715200 bájt (210 MB, 200 MiB) másolva, 0,406785 s, 516 MB/s
$ sudo losetup -f
/dev/loop1
$ sudo losetup loop1 lemez1
$ sudo losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop1 0 0 0 0 /home/szekerestamas/lemez1 0 512
/dev/loop0 0 0 0 0 /home/szekerestamas/lemez0 0 512

Majd ahogy az igazi merevlemezzel is történne, létrehozzuk a Linux LVM partíciót, és létrehozunk rajta egy új fizikai kötetet, amit hozzáadunk a kotet0 logikai kötetcsoporthoz.

$ sudo fdisk /dev/loop1
$ sudo partx --update /dev/loop1
$ sudo pvcreate /dev/loop1p1
Physical volume "/dev/loop1p1" successfully created.
$ sudo vgextend kotet0 /dev/loop1p1
Volume group "kotet0" successfully extended
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
fedora 1 3 0 wz--n- <63,00g 0
kotet0 2 1 0 wz--n- 292,00m 196,00m

Jól látszik, hogy az eddig 96 MiB méretű kotet0 292 MiB lett. Megtehetnénk, hogy a fent leírt módon kiterjesztjük az adatok logikai kötet méretét az új szabad terület kapacitásával, hiszen a kotet0-n megint lett egy csomó szabad hely. De én azt szeretném, hogy a régi lemezről (/dev/loop0p1) mozgasson minden adatot az újra (/dev/loop1p1), mivel a régi lemezt ki akarom venni a rendszerből.

$ sudo pvmove -v /dev/loop0p1 /dev/loop1p1
Cluster mirror log daemon is not running.
Archiving volume group "kotet0" metadata (seqno 7).
Creating logical volume pvmove0
activation/volume_list configuration setting not defined: Checking only host tags
for kotet0/adatok.
Moving 24 extents of logical volume kotet0/adatok.
activation/volume_list configuration setting not defined: Checking only host tags
for kotet0/adatok.
Creating kotet0-pvmove0
Loading table for kotet0-pvmove0 (253:5).
Loading table for kotet0-adatok (253:4).
Suspending kotet0-adatok (253:4) with device flush
Resuming kotet0-pvmove0 (253:5).
Resuming kotet0-adatok (253:4).
Creating volume group backup "/etc/lvm/backup/kotet0" (seqno 8).
activation/volume_list configuration setting not defined: Checking only host tags
for kotet0/pvmove0.
Checking progress before waiting every 15 seconds.
/dev/loop0p1: Moved: 58,33%
/dev/loop0p1: Moved: 100,00%
Polling finished successfully.

Ez eltarthat egy ideig, legyél türelmes! Bár még mindig 2 db fizikai kötetből épül fel a kötetcsoportom, a régi fizikai kötetről minden adatot átmozgatott az újra. Az adatot nem tartalmazó régi fizikai kötetet (/dev/loop0p1) eltávolítom a kotet0 kötetcsoportból, majd megszüntetem a rajta levő fizikai kötetet.

$ sudo vgreduce kotet0 /dev/loop0p1
Removed "/dev/loop0p1" from volume group "kotet0"
$ sudo pvremove /dev/loop0p1
Labels on physical volume "/dev/loop0p1" successfully wiped.

Az adatokat most is úgy költöztettük át az új, kétszer nagyobb kapacitású lemezre, hogy azok végig elérhetőek voltak, hiszen az adatok végig fel volt csatolva az /mnt alá. A rajta tárolt fájlokat lehetett írni, olvasni, törölni. Most már kivehetjük a régi lemezt, és leadhatjuk elektronikai hulladéknak, vagy aprópénzért eladhatjuk. Viszont ne felejtsük el, hogy a logikai kötet (/dev/kötet/adatok), és a rajta lévő fájlrendszer mérete nem változott. Az adatok mérete még mindig csak 96 MiB. Adjuk hozzá a kötetcsoport fennmaradó kapacitását, és növeljük meg a fájlrendszer méretét is.

$ sudo lvresize -l +100%FREE /dev/kotet0/adatok
Size of logical volume kotet0/adatok changed from 96,00 MiB (24 extents) to
196,00 MiB (49 extents).
Logical volume kotet0/adatok successfully resized.
$ sudo resize2fs /dev/kotet0/adatok
resize2fs 1.44.3 (10-July-2018)
A fájlrendszer (/dev/kotet0/adatok) csatolva van ide: /mnt, online átméretezés
szükséges
old_desc_blocks = 1, new_desc_blocks = 2
A fájlrendszer ezen: /dev/kotet0/adatok mostantól 200704 (1k) blokk hosszú.
$ df -h|grep adat
/dev/mapper/kotet0-adatok 187M 89M 89M 50% /mnt

Már kétféle módon is meg tudjuk növelni a kapacitást. Vagy úgy, hogy a régi lemez bent marad a gépben, de úgy is, hogy kivesszük. Ugye már nem is olyan bonyolult?

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények