Bociek PLD - Pisarz
I. Informacje podstawowe
II. Instalacja
III. Podręcznik użytkownika
IV. Podręcznik administratora
Pamięci masowe
LVM
V. Tworzenie PLD - Praktyczny poradnik
VI. O podręczniku
O tej książce
Spis treści
Inne wersje tego dokumentu
PDF
HTML (jeden plik)
TXT
Odnośniki
Tworzymy dokumentację PLD
Strona PLD
Listy dyskusyjne PLD

LVM

<- ->
 

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:

# modprobe dm-mod

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

# vgchange -a n

aby wszystkie aktywować wywołujemy:

# vgchange -a y

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:

# xfs_growfs /home

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.

 
<- ->