lvm – praktycznie wszystkie te rzeczy, które chciało się zrobić, a nie mogło z powodu ograniczeń klasycznego podejścia do partycjonowania.
Możliwości:
- rozmiar partycji nie jest ograniczony fizycznymi możliwościami nośników
- można zmieniać rozmiar całej dostępnej przestrzeni online, dodając lub usuwając nośniki
- można zmienić rozmiar partycji online
- można przemieszczać partycje online, ze zwykłego dysku na macierz raid (w tym po prostu wymieniając dyski twarde)
- można symulować raid0 i raid1
- można tworzyć wielokrotne migawki (snapshoty) woluminów i wykorzystywać je jak normalne woluminy bez wpływu na ich oryginały
- nazwy partycji mogą być dowolne, np /dev/mapper/vg00-mojapartycja (/dev/vg00/mojapartycja)
- etc
Wady:
- przy „skrobaniu” rozmiarów partycji może wystąpić niewielka fragmentacja
- odzyskiwanie danych przy poważnej awarii jest bardziej kłopotliwe
- /boot nie może być na lvm (tylko podczas używania grublegacy)
Najniższy szczebel – różnego rodzaju fizyczne nośniki danych, całe dyski, pojedyncze partycje, macierze raid, usb, lun
Wolumin – pojęcie dostępnej przestrzeni
Wolumin fizyczny – pierwszy poziom lvm, odpowiednik fizycznych dysków twardych
Grupa woluminów – całość dostępnej przestrzeni na fizycznych woluminach
Wolumin logiczny – wydzielona przestrzeń z grupy woluminów, odpowiednik zwykłej partycji
Kernel nie widzi różnicy pomiędzy partycją lvm a partycją zwykłą.
Typowe zastosowanie na domowym komputerze w czasie updatu systemu
1. Najpierw zrobić snapshot
Kod:
lvcreate -L2G -s -n snap /dev/vga/root
2. Wykonać upgrade
3. Po upgradzie
a) upgrade nas zadowala
Kod:
lvremove /dev/vga/snap
b) upgrade się nie powiódł
- wykonujemy dodatkowy snapshot
Kod:
lvcreate -L2G -s -n snapf /dev/vga/root
Teraz mamy dwa snapshoty. /dev/vga/snap z czasu przed upgradem i /dev/vga/snapf z czasu po upgradzie (czyli stan obecnego systemu)
- przywracamy pierwszy snapshot
Kod:
lvconvert --merge vga/snap
Teraz mamy system sprzed czasu wykonywania updatu. Dodatkowo mamy snapshot /dev/vga/snapf z systemem po upgradzie i chcemy do niego bootować w późniejszym czasie:
Na przykładzie grublegacy
a) w czasie botowania wybieramy pozycje, z której normalnie bootujemy
b) wciskamy 'e', wybieramy pole z kernelem, ponownie wciskamy 'e' i edytujemy /dev/mapper/vga-root na /dev/mapper/vga-snapf
b) wciskamy 'b' i system bootuje do snapshota ze stanem po upgradzie
W tym punkcie edytowanie fstab nie jest konieczne. Jakiekolwiek zmiany na plikach nie zostaną zapisane na oryginalnym woluminie. Jeżeli skorygowaliśmy wadliwy upgrade, możemy go wykonać ponownie na oryginalnej partycji lub ponownie połączyć snapshot z oryginałem, lvconvert --merge vga/snapf. Jeżeli chcemy po prostu powrócić do systemu sprzed upgradu, robimy zwyczajny restart.