Wstęp
Logical Volument Managment (LVM) pozwala stworzyć bardzo elastyczny system zardządzania dyskami i przestrzenią dyskową (zwiększać w locie wielkość partycji oraz tworzyć partycje rozciągnięte między partycjami fizycznymi i dyskami fizycznymi).
LVM składa się z trzech warstw:
- Logival Volumens (lv) – są to odpowiedniki partycji, je montujemy w systemie oraz na nich zapisujemy dane,
- physical volumes (pv) – są to volumeny bezpośrednio związane z partycjami dyskowymi (np. /dev/hda1, /dev/sda3),
- VG (volume groups) – grupują fizyczne wolumeny w grupy twrzorząc „pule przesrzeni” z ktorych tworzeone są logical Volumens, dzięki grupom możliwe jest więc tworzenie partycji przekraaczających rozmiarem pojedyńcze dyski. Grupy volumentów można porównać do wirtualnych dysków na których tworzymy partycje (logical Volumens).
Ze względów technicznych nie będziemy omawiać starszej wersji LVM, tylko nowszą LVM2.
Operacje podstawowe
Volumeny fizyczne (phisical volumens – pv)
Tworzenie volumenów fizycznych (pv)
Tworzenie volumenu fizycznego na partycji /dev/hdb1
pvcreate /dev/hdb1
Uwaga: Tworzenie fizycznych volumenów na całych dyskach jest niezalecane, gdyż nie wszystkie programy do pracy z dyskami i partycjami poprawnie rozpoznają taki układ i mogą oznaczyć miejsce jako wolne.
pvdisplay – informacje o fizycznych volumenach
Polcenie vpdisplay pozwoli nam obejrzeć informacje dostepnych fizycznych volumenach w systemie.
[root@localhost lvmtest]# pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name lvm PV Size 1019.75 MB / not usable 3.75 MB Allocatable yes PE Size (KByte) 4096 Total PE 254 Free PE 254 Allocated PE 0 PV UUID HFMMMi-pkwC-IOxP-E77D-C160-xKQY-HZatwd
Grupy volumenów (volumen groups – vg)
Tworzenie grup volumenów
Poleceniem vgcreate tworzymy z fizycznych volumenów grupę volumenów. Jako pierwszy parametr podajemy nazwę przyszłej grupy volumenów a na końcu nazwy fizycznych volumentów (urządzeń przetworzonych w poprzednim punkcie na fizyczne volumeny), które włączymy do grupy:
vgcreate sys /dev/hdd2 /dev/hdc1
Uwaga: Nie można utworzyć grupy wolumenów, ktora nie zawiera żadnego volumena fizycznego (jest pusta).
Raport o grupach volumenów
debian:/usr/share/doc# vgs File descriptor 3 left open File descriptor 5 left open File descriptor 7 left open VG #PV #LV #SN Attr VSize VFree debian 1 3 0 wz--n- 772,00M 0 vgdata1 2 0 0 wz--n- 1,99G 1,99G
Logiczne volumeny (logical volumens -lv)
Tworzenie logicznych volumenów (lv)
lvcreate -L 5000 -n homes sys
Następne na tak utworznym volumenie należy utworzyć system plików:
mkfs.ext3 /dev/sys/homes
Jaki system plików wybrać?
ext2/ext3 może mieć problemy ze zmianą wielkości partycji podczas pracy on-line (wymaga odmountowania, mozliwe jest jednak zastosowanie patch-a ex2online).
Dalsze zarządzanie volumenami
Zmiana wielkości logicznego volumenu
Zmiane wielkości volumenu logicznego przewaznie odbywa sie w locie :). Wszystko jednak zależy od systemu plików na którym pracujemy.
Zmniejszenie volumenu logincznego i partycji, ktora jest na nim:
umount /dev/lvm/testlv resize_reiserfs /dev/lvm/testlv mount -treiserfs /dev/lvm/testlv /home
lvreduce -L500M /dev/lvm/testlv
Zwiększenie volumenu logicznego i partycji, ktora na niej jest:
pvcreate /dev/sda1 vgextend -L9.8G extra lvextend -L9.8G /dev/extra/pub resize2fs /dev/extra/pub
Dodanie nowego fizycznego volumenu do grupy volumenów
Napierw tworzymy nowy volumen fizyczny (jeżeli jeszcze go nie mamy)
debian:~# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
A następnie dodajemy go do volumenu logicznego
debian:~# vgextend debian /dev/sdb1 Volume group "debian" successfully extended
Inne działania
Scanowanie urządzeń w systemie w celu wykrycia volumenów
debian:/usr/share/doc# lvmdiskscan File descriptor 3 left open File descriptor 5 left open File descriptor 7 left open /dev/ram0 [ 8,00 MB] /dev/dm-0 [ 775,54 MB] LVM physical volume /dev/ram1 [ 8,00 MB] /dev/sda1 [ 243,14 MB] /dev/dm-1 [ 512,00 MB] /dev/ram2 [ 8,00 MB] /dev/dm-2 [ 96,00 MB] /dev/ram3 [ 8,00 MB] /dev/dm-3 [ 164,00 MB] /dev/ram4 [ 8,00 MB] /dev/ram5 [ 8,00 MB] /dev/sda5 [ 776,55 MB] /dev/ram6 [ 8,00 MB] /dev/ram7 [ 8,00 MB] /dev/ram8 [ 8,00 MB] /dev/ram9 [ 8,00 MB] /dev/ram10 [ 8,00 MB] /dev/ram11 [ 8,00 MB] /dev/ram12 [ 8,00 MB] /dev/ram13 [ 8,00 MB] /dev/ram14 [ 8,00 MB] /dev/ram15 [ 8,00 MB] /dev/sdb [ 1,00 GB] LVM physical volume /dev/sdc [ 1,00 GB] LVM physical volume 0 disks 21 partitions 2 LVM physical volume whole disks 1 LVM physical volume
Raport o fizycznych volumenach (pv) dla skryptów
debian:/usr/share/doc# pvs PV VG Fmt Attr PSize PFree /dev/dm-0 debian lvm2 a- 772,00M 0 /dev/sdb vgdata1 lvm2 a- 1020,00M 1020,00M /dev/sdc vgdata1 lvm2 a- 1020,00M 1020,00M
Sprwadzenie poprawnosci matadabych grup volumenów
Do tego zadania można użyć polecenia vgck.
vgmknodes
recreate volume group directory and logical volume special files
przenoszenie pv pomiędzy dyskami
[root@localhost ~]# lvdisplay -m /dev/VolGroup00/LogVol01
— Logical volume —
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID GQ2lTR-rVP0-WQ0v-LBcE-XfpE-HDrb-jV3KDC
LV Write Access read/write
LV Status available
# open 1
LV Size 320.00 MB
Current LE 10
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1
— Segments —
Logical extent 0 to 9:
Type linear
Physical volume /dev/sda2
Physical extents 48 to 57
[root@localhost ~]# pvmove -n /dev/VolGroup00/LogVol01 /dev/sda2 /dev/sdb
/dev/sda2: Moved: 30.0%
/dev/sda2: Moved: 60.0%
/dev/sda2: Moved: 90.0%
/dev/sda2: Moved: 100.0%
[root@localhost ~]#
[root@localhost ~]# lvdisplay -m /dev/VolGroup00/LogVol01
— Logical volume —
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID GQ2lTR-rVP0-WQ0v-LBcE-XfpE-HDrb-jV3KDC
LV Write Access read/write
LV Status available
# open 1
LV Size 320.00 MB
Current LE 10
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1
— Segments —
Logical extent 0 to 9:
Type linear
Physical volume /dev/sdb
Physical extents 0 to 9
Backupowanie danych
backupowanie informacji o grupach volumenów
W przypadku backupowania danych o grupach volumenów przydatne mogą być polecenia vgcfgbackup oraz vgcfgrestore.
Sprawdzenie wersji LVM
lvmiopversion 200
Uwagi
- LVM powoduje zwiększenie zagrożenia utratą danych związanych z fizycznymi uszkodzeniami dysków. Zaleca się używanie go razem z systemami RAID.
- Dla pojedynczego dysku zaleca sie stworzenie jednego fizycznego volumenu (pv), gdyz tylko wtedy moznabyc pewnym ze wprowadzenie striped LV nie obnizy wydajnosci
- Partycja /boot nie moze byc na umieszczona na logicznych wolumenach, wynika to z problemow z bootowaniem systemu.
Zalety
- lvm pozwala lepiej zarządzać miejscem na partycjach
- lvm pozwala na lepsze zardządanie przestrzeniami nazw partyacji (np. mozna nazwać partycje swap czy home :)).
- Po dodaniu nowej partycji nie trzeba restartowac systemu 🙂
Wady
- Większa wrażlliwość na uszkodzenia dysków (zaleca się stosowanie rozwiazań RAID)
W Internecie
http://www.tldp.org/HOWTO/LVM-HOWTO/
Todo
jaki system plików dla LVM jest najlepszy 😉