|
LVM (Logical Volume Management) to
system zaawansowanego zarządzania przestrzenią dyskową,
który jest o wiele bardziej
elastyczny, niż klasyczne partycje dyskowe.
LVM ma dosyć złożoną strukturę, składa się z następujących
rodzajów obiektów:
-
PV (physical volumes) - fizyczne woluminy: są bezpośrednio
związane z partycjami dyskowymi
(np. /dev/hda1, /dev/sdb3).
-
VG (volume groups) - grupy woluminów: składają się z
co najmniej jednego PV, ich wielkość to suma objętości
wszystkich PV należących do danej grupy.
Uzyskane miejsce dyskowe może być dowolnie dysponowane
pomiędzy kolejne LV.
-
LV (logical volumes) - woluminy logiczne: są
obszarami użytecznymi dla systemu (podobnie jak partycje dyskowe).
LV są obszarami wydzielonymi z VG, zatem suma wielkości woluminów
nie może zatem przekraczać objętości VG, do którego należą.
Przykładowy schemat LVM-u:
PV1 PV2
\ /
VG
/ | \
LV1 LV2 LV3 |
Instalacja
Omawiamy implementację LVM2, zatem
instalujemy pakiet lvm2, jeśli LVM ma być użyty
jako główny system plików to potrzebujemy
jeszcze pakiet lvm2-initrd
do wygenerowania odpowiedniego obrazu initrd.
Planowanie woluminów
Musimy przygotować partycje na dyskach, które chcemy
użyć do stworzenia struktur PV.
Jeśli główny system plików ma być umieszczony na
woluminie logicznym to musimy przeznaczyć małą partycję
dla gałęzi /boot, gdyż bootloadery lilo i grub nie
potrafią czytać danych z woluminów. Szczegółowy opis
dzielenia dysków na partycje zamieściliśmy w tym dokumencie.
Planujemy utworzenie woluminów logicznych dla
danych systemowych o następujących objętościach:
/home - 5GB
/var - 3GB
/tmp - 2GB |
Dane będą przechowywane na
"połączonych" partycjach /dev/hdd2 i /dev/hdc1
(zgodnie ze schematem we wstępie).
Budowanie woluminów
Ładujemy moduł device mappera:
tworzymy Physical Volumes:
# pvcreate /dev/hdd2 /dev/hdc1 |
tworzymy Volume Group o nazwie np. "sys":
# vgcreate sys /dev/hdd2 /dev/hdc1 |
Zakładamy, że suma objętości partycji dała nam 14GB miejsca
Tworzymy woluminy o podanych pojemnościach w MB (-L)
i dowolnych nazwach (-n)
# lvcreate -L 5000 -n homes sys
# lvcreate -L 3000 -n var sys
# lvcreate -L 2000 -n tmp sys |
tak więc na VG pozostaje 4GB wolnego miejsca, które
możemy rozdysponować w przyszłości (o tym w dalszej części rozdziału).
Rzucającą się w oczy cechą woluminów logicznych jest
możliwość swobodnego nadawania im nazw, co znacznie ułatwia
określenie zawartości takiego woluminu. Do utworzonych
powyżej woluminów odwołujemy się za pomocą urządzeń
/dev/sys/homes,
/dev/sys/var i
/dev/sys/tmp.
Konfiguracja
Woluminy są już gotowe do pracy, musimy jeszcze tylko
utworzyć na nich systemy plików np.:
# mkfs.xfs /dev/sys/homes |
Teraz mountujemy woluminy w klasyczny sposób i
jeśli wszystko przebiegło bez błędów
dokonujemy odpowiednich modyfikacji w
/etc/fstab.
Jeśli chcemy umieścić
główny system plików na LV to musimy jeszcze wygenerować
nowy obraz initrd, co zostało przedstawione w
tym dokumencie.
Woluminy są składane automatycznie przez rc-skrypt
/etc/rc.d/rc.sysinit lub
initrd. Moduł device mappera
również jest ładowany automatycznie.
Narzędzia diagnostyczne
Skrócone informacje o każdym z rodzaju komponentów (PV/VG/LV)
wyświetlimy za pomocą programów pvs,
vgs, lvs. Więcej informacji
uzyskamy za pomocą programów: pvdisplay,
vgdisplay, lvdisplay.
Do niektórych operacji z voluminami będziemy musieli je
odmontować i deaktywować. Aby deaktywować wszystkie woluminy
użyjemy polecenia
aby wszystkie aktywować wywołujemy:
Zarządzanie - Powiększanie woluminu
Teraz przedstawimy potęgę LVM-a: pokażemy jak powiększyć wolumin, gdy dochodzimy
do wniosku, że przeznaczonego miejsca jest za mało.
Załóżmy, że mamy woluminy utworzone zgodnie z wcześnijeszymi przykładami
i chcemy przenaczyć całą dostępną wolną przestrzeń na naszym VG (4GB)
dla /dev/sys/homes:
# lvextend -l 100%VG /dev/sys/homes |
Teraz, kiedy wolumin jest powiększony, musimy rozszerzyć system plików,
w naszych przykładach jest to XFS, zatem musimy podmontować wolumin,
a następnie:
Operacja trwa krótko i nie powoduje utraty danych, jednak jak przypadku
każdych operacji dyskowych, powinniśmy wczeniej wykonać kopię zapasową.
Każdy system plików posiada własne narzędzia do zmiany rozmiaru systemu plików,
szczegóły w ich dokumentacji.
Porady
Woluminy LVM powodują zwiększone ryzyko uszkodzenia
danych, gdyż awaria jednego dysku jest jednoznaczna
z utratą wszystkich danych. Z tego powodu zaleca się
tworzenie woluminów na macierzach RAID.
|