Logikai kötetkezelőA logikai kötetkezelő (logical volume manager, LVM) a Linux operációs rendszerben a diszkek (blokkos tárolóeszközök) kényelmesebb kezelésére szolgáló eszköz. A legfőbb probléma a hagyományos diszkkezeléssel az, hogy fájlrendszert csak folytonos merevlemez-területen lehet létrehozni, és a diszkterület (partíció) méretváltoztatása nem megoldott. Ugyancsak probléma két nem szomszédos, vagy különböző diszkeken található partíció területének egyesítése. GPT és LVMA PC-n a hagyományos, DOS alapú partícionálás (MBR-partíciók) legfeljebb 15 partíció létrehozását teszi lehetővé, melyek egyike – az extended partíció – adatot nem, csak másik partíciós táblát tartalmazhat. Egy fájlrendszer egy partícióban van, és sok előnye van a különböző típusú adatok külön fájlrendszerben tárolásának.[1] A mai terabájtos méretű diszkeknél kevés a 14 partíció, és az is gond, hogy a hagyományos partíciós tábla legfeljebb 2 TByte méretű diszkek felosztására alkalmas. Az LVM legalább 2.6-os 32 bites kernellel 16 TByte, 64 bites kernellel 8 exabájt méretű fizikai kötet kezelésére képes,[2] ehhez azonban a teljes diszket LVM-területté kell tenni, így csak linuxból lehet elérni, más operációs rendszer nem kaphat területet belőle. A diszkméret és partíciószám korlátja megoldható egy viszonylag új partícionálással, a GUID partíciós táblával(en) (GPT), mely tetszőleges számú partíciót és gyakorlatilag (belátható időn belül) végtelen méretű diszket képes részekre osztani. A GPT-t az újabb változatú BIOS-ok és Windows-ok is ismerik. Ez megoldja a diszkméret és partíciószám problémáját is, de nem segít a nem szomszédos ill. különböző diszkeken levő területek egyesítésén és a partícióméretek változtatásán. Az LVM és GPT együtt is alkalmazható: az LVM képes GPT-partíciókat is diszkterületként (fizikai kötetként) használni. Az LVM működéseAz LVM képes diszkterületeket (teljes diszkeket vagy partíciókat, LVM-terminológiával fizikai köteteket) egy vagy több területté (kötetcsoporttá, volume group-pá) szervezni, e területekből folytonos területeket (logikai köteteket) kijelölni, melyeken fájlrendszereket lehet létrehozni. A területek számára nincs megkötés, és átmérezhetők folytonos kisebb vagy nagyobb területté. Az LVM a kernelben a fájlrendszer és a diszk között helyezkedik el, a device mapper(en) driverben. (A device mappernek az LVM mellett más funkciói is vannak, pl. szoftver RAID, fájlrendszer titkosítás.) Megfeleltetést hoz létre a fájlrendszer és a diszk blokkjai között, és egyszerűsége okán igen hatékony: sebességben és input/output terhelésben nem lehet észrevenni a használatát. UtasításokAz utasításokat tartalmazó csomag neve lvm2 a legtöbb disztribúcióban. Az utasítások első két betűje a kötetet adja meg:
A harmadik betűtől kezdődik a művelet neve:
Az utasítások paraméterei már a kötettől függően különbözőek. Logikai kötet létrehozásaTegyük fel, hogy az sda diszk 6-os partíciója üres, és ezen akarunk logikai kötetet létrehozni. Felírjuk az információt a partícióba, hogy mostantól fizikai kötetként fogjuk használni: pvcreate /dev/sda6
Létrehozzuk a kötetcsoportot, melyből később területeket lehet kérni: vgcreate volg /dev/sda6
volg a kötetcsoport neve. A létrehozáskor egy vagy több fizikai kötetet kell megadni. Minden fizikai kötet legfeljebb egy kötetcsoporthoz tartozik. Diszkek utólag is hozzáadhatók, és bizonyos korlátok között kivehetők. 1 gigabájt területet kérünk a logikai kötet számára a kötetcsoportból ter1g néven: lvcreate -L 1G -n ter1g volg
A terület kétféleképpen érhető el: /dev/mapper/volg-ter1g vagy /dev/volg/ter1g, amit mostantól úgy használhatunk, mint a partíciót. Fájlrendszer létrehozása és csatolása: mkfs.ext4 /dev/volg/ter1g
mount /dev/volg/ter1g /mnt
Ellenőrzés: root@sid64:~# pvs PV VG Fmt Attr PSize PFree /dev/sda6 volg lvm2 a-- 3.94g 2.94g root@sid64:~# vgs VG #PV #LV #SN Attr VSize VFree volg 1 1 0 wz--n- 3.94g 2.94g root@sid64:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert ter1g volg -wi-ao---- 1.00g MéretnövelésA fenti területet 500M-mel meg akarjuk növelni. Először a logikai kötet méretét kell növelni, majd ezt tudatni a fájlrendszerrel is. Az előbbi mehet menet közben, az utóbbi fájlrendszerfüggő. Az ext4 fájlrendszer mérete menet közben is növelhető, nem kell lecsatolni. lvextend -L +500M /dev/volg/ter1g
resize2fs /dev/volg/ter1g
Ellenőrzés: root@sid64:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert ter1g volg -wi-ao---- 1.49g root@sid64:~# df -h /mnt Filesystem Size Used Avail Use% Mounted on /dev/mapper/volg-ter1g 1.5G 1.5M 1.4G 1% /mnt Méret csökkentésekor először a fájlrendszert kell csökkenteni (ext3 és ext4 fájlrendszerben csak lecsatolt állapotban lehet méretet csökkenteni), majd a logikai kötetét az Kötetcsoportok használataA diszkterületek kötetcsoportba rendezésekor két szempontot kell figyelembe venni. Egyrészt a kötetcsoportban levő szabad hely nem használható más kötetcsoportból. Másrészt a kötetcsoport működéséhez valamennyi diszkje elérhető kell legyen.[3] Ez azt jelenti, hogy a cserélhető tárolókon levő fizikai kötetek számára (pl. USB diszk) külön kötetcsoportot kell létrehozni. Ha két kötetcsoport neve azonos lenne, az LVM az egyiket a memóriában átnevezi (ezzel az eszközfájlok neve is megváltozik). A cserélhető diszk behelyése után a pvs, vgs, lvs mutatja az adatokat, de az eszközfájlok nem jönnek létre automatikusan, így a kötetek nem csatolhatók fel.[4] Az eszközfájlokat a A SnapshotA snapshot gyors logikai másolat egy logikai kötetről. A snapshot ugyanabban a kötetcsoportban kell legyen, mint az eredeti kötet. A számára kijelölt diszkterület lehet kisebb az eredeti köteténél (nagyobbat nincs értelme lefoglalni). A snapshot ugyanúgy csatolható fel, mint a többi kötet,[5] ugyanúgy növelhető a mérete, és ugyanúgy törölhető az A snapshot létrehozásától kezdve az LVM az eredeti kötet módosítandó blokkjainak régi értékét átmásolja a snapshot területére, amikor az először változik meg, és csak ezután írja felül. Az eredeti kötetben az aktuális, a snapshotban pedig a másolat pillanatában aktuális értékek találhatók. A snapshot addig működőképes, amíg az eredeti kötet módosított blokkjai ráférnek a snapshot számára kijelölt területre. Ha megtelt, már csak törölni lehet a snapshotot. Egy blog szerint megoldható a snapshot területének automatikus növelése is a megtelés megakadályozására.[6] Snapshot létrehozása: lvcreate -Lméret -nsnapshotnév -s /dev/kötetcsoport/eredetikötet A snapshotot előszeretettel használják mentéskor. A mentés előtt létrehozott snapshot biztosítja, hogy a mentés ideje alatt a kötet tartalma nem változik meg. Az eredeti kötet visszatölthető a snapshotból is az lvconvert—merge /dev/logvg/snapshotnév utasítással (mindkét kötet lecsatolása után). A snapshot írható is, így alkalmas az eredeti köteten futtatandó program tesztelésére az érvényes értékek veszélyeztetése nélkül. Jegyzetek
Források
Kapcsolódó lapok |