Konfiguracja i zarządzanie LVM (cz.1)

By | 19 września 2013

Ten wpis prezentuje tworzenie oraz zarządzanie LVM (Logical Volume Manager) w systemach Linux.

Zacznę jednak krótkim wstępem opisując zalety LVM. Ideą używania LVM jest możliwość dynamicznego (na gorąco) rozszerzania przestrzeni poprzez dokładanie partycji bądź całych dysków do grup wolumenów, rozszerzając fizycznie dostępne miejsce. Prócz rozszerzania „na gorąco” możemy również skracać przestrzeń.

Dodatkowymi atutami LVM są: tworzenie kopii zapasowych w postaci snapshotów które możemy wykorzystywać jako backup danych (bez konieczności wykonywania kopi plików np. rsync) oraz łączenie różnych volume groups (w całości bądź fragmenty) w jedną całość. LVM daje również możliwość mirroringu.

Tworzenie LVM

1. Przygotowanie dysku do obsługi LVM

W tym przykładzie będziemy operować na osobnym dysku przeznaczonym tylko i wyłącznie na LVM.

Zacznijmy od przygotowania podstawowej partycji z LVM2:

Powyższe polecenie tworzy nam na dysku /dev/vdb podstawową partycję na całej powierzchni dysku z LVM (kod 8e).
Aby wyświetlić poprawność utworzonej partycji wykonujemy:

 

2. Tworzymy physical volume oraz volume group

Aby utworzyć pv na naszej partycji LVM wykonujemy:

Polecenie pvcreate przyjmuje jako parametr ścieżkę do fizycznych partycji na których mam zainicjować fizyczny wolumen.
Aby sprawdzić informacje o dostępnych physical volumes wykonujemy:

Teraz czas na utworzenie grupy woluminów:

Polecenie vgcreate jako parametr podstawowy przyjmuje nazwę grupy (w tym przypadku vgstor_01) oraz ścieżkę do partycji na której jest już utworzony PV. Warto zapoznać się z man 8 vgcreate aby poznać wszystkie możliwe opcje.

Aby wyświetlić wszystkie volume grupy wykonujemy:

 

3. Tworzenie logicznego wolumenu

W poniższym przykładzie utworzę wolumen na całej dostępnej przestrzeni. Aby zająć całe wolne miejsce nowym LV potrzebna jest nam informacja wyświetlana przez vgdisplay a dokładnie Total PE (total physical extents). W naszym przykładzie ten parametr ma wartość 3071 extentów (pe to wartość mówiąca o tym na ile części danych podzielony jest dany zasób LVM).

A więc tworzymy LV wykorzystując całą grupę wolumenów:

Teraz możemy wyświetlić wszystkie logiczne wolumeny:

 

Powyższe polecenie wyświetla nam informację takie jak np. rozmiar, nazwę vg na którym znajduje się logiczny wolumen, czas utworzenia oraz nazwę hosta na którym był tworzony.

4. Użytkujemy nowy wolumen logiczny

Teraz czas na konfigurację partycji do użytku. Logiczny wolumen jest widoczny jako urządzenie blokowe na którym możemy utworzyć dowolny system plików.
System plików tworzymy w taki sam sposób jak na innych partycjach, jako parametr do polecenia mkfs podajemy ścieżkę jak w przykładzie:

Tak oto nowo utworzoną partycję możemy podmontować i zacząć używać, na potrzeby kolejnego punktu wpisu utworzymy dodatkowo wyzerowany plik o rozmiarze 2GB.
[code language="bash"] mount /dev/vgstor_01/vstorage_01 /mnt

I w ten oto sposób utworzyliśmy nową partycję LVM dla naszych danych.

Zmiana rozmiaru wolumenu logicznego

Teraz pora na pokazanie możliwości zmiany rozmiaru naszej partycji vstorage_01 z 12GB na 6GB bez utraty danych.
Uwaga! Jeśli wykonujesz poniższe polecenia na partycji z danymi, pamiętaj że minimalny rozmiar partycji po zmianie musi być nieco większy niż ilość danych na partycji.

1. Odmontowanie partycji i przygotowanie do zmiany rozmiaru

Na początku musimy odmontować nasz zasób:

Następnie wykonujemy polecenie e2fsck na naszej partycji z LVM:

Teraz poprzez resize2fs wskazujemy nowy rozmiar partycji:

2. Redukcja miejsca na logicznym wolumenie

Następnie zmieniamy rozmiar już na samym wolumenie logicznym poprzez lvreduce

Jako parametr podajemy nowy rozmiar wolumenu (przełącznik -L pozwala na przekazanie rozmiaru w formie ‚human readable’, przełącznikiem -l możemy podać rozmiar w extentach) oraz ścieżkę do lv.

Na sam koniec wykonujemy dla bezpieczeństwa:

I testujemy naszą partycję:

Jak widać, nasza nowa partycja po zmianie rozmiaru działa a plik który utworzyliśmy wcześniej istnieje.

W kolejnym wpisie zaprezentuje możliwości tworzenia RAID1 na LVM, przesuwanie volume group oraz logical volume pomiędzy fizycznymi wolumenami.

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *