Woluminy logiczne

wg. Wikipedii – Logical Volume Manager (zarządca woluminów logicznych) – mechanizm systemu operacyjnego do zarządzania przestrzenią pamięci masowej. W szczególności, zarządca pozwala na połączenie partycji znajdujących się na różnych urządzeniach pamięci masowej w jeden dysk wirtualny. Jego rozmiar nie jest zdefiniowany na stałe – jeśli zachodzi taka potrzeba, istnieje możliwość jego rozszerzenia o nową przestrzeń pamięciową. Obsługa woluminów logicznych zaimplementowana jest w większości systemów operacyjnych, może różnić się funkcjonalnością i stosowaną terminologią.

LVM zapewnia warstwę abstrakcji pomiędzy fizycznym dyskiem a systemem plików. System plików może mieć zmieniony rozmiar, może obejmować wiele fizycznych dysków, może obejmować losowe obszary dysku. LVM pozwala akumulować przestrzenie jednej lub wielu partycji bądź dysków (woluminy fizyczne) to sformowania logicznego kontenera (wolumin logiczny).

Korzyści jakie oferuje LVM to także:

  • zmiana rozmiaru grup woluminów i woluminów logicznych,
  • przenoszenie online danych pomiędzy logicznymi i fizycznymi woluminami,
  • własne nazewnictwo dla grup woluminów i woluminów logicznych,
  • mirroring i stripping danych na wielu fizycznych dyskach,
  • snapshoty woluminów logicznych.

Struktura LVM jest zbudowana z trzech obiektów: fizycznego woluminu, grupy woluminów i logicznego woluminu. Te obiekty są dalej podzielone na fizyczne ekstenty i logiczne ekstenty.

 

Wolumin fizyczny (ang. PV – physical volume).

Jest tworzony gdy magazyn dyskowy taki jak partycja czy cały dysk przekazywany jest pod kontrolę LVM. Taki proces konstruuje strukturę danych na urządzeniu obejmującą etykietę  i metadane. Etykieta zawiera UUID, rozmiar urządzenia i wskaźniki do położenia danych i metadanych. LVM przechowuje kopię metadanych na końcu fizycznego woluminu.

Lista fizycznych woluminów w systemie:

 

Grupa woluminów (ang. VG – volume group).

Jest tworzona gdy przynajmniej jeden wolumin fizyczny jest do niej dodany.  Przestrzeń dyskowa ze wszystkich woluminów fizycznych wchodzących w skład grupy woluminów jest agregowana w jeden duży magazyn przeznaczony do budowy jednego lub więcej woluminów logicznych. Fizyczne woluminy dodane do grupy woluminów mogą mieć różne rozmiary. LVM zapisuje metadane grupy woluminów na każdym fizycznym woluminie dodawanym do tej grupy.

Lista grup woluminów:

 

Fizyczny ekstent (PE – physcial extent).

Gdy wolumin fizyczny dodawany jest do grupy woluminów, dzielony jest na wiele małych logicznych kawałków zwanych ekstentami fizycznymi. Ekstent jest najmniejszą jednostką obszaru możliwą do zaalokowania w LVM. Domyślnym rozmiarem PE są 4MB, możemy go zmienić w czasie tworzenia grupy woluminów. Każdy fizyczny wolumin dodany do grupy woluminów będzie miał taki sam rozmiar PE.

Wyświetlanie rozmiary fizycznego ekstentu grupy woluminów np. vg00:

 

Wolumin Logiczny (LV – logical volume).

Grupa woluminów zawiera pulę magazynów składającą się z jednego lub więcej woluminów. Obszar grupy woluminów podzielony jest na jedną lub wiele partycji logicznych zwanych woluminami logicznymi. Logiczny wolumin może być rozszerzany lub kurczony i może wykorzystywać przestrzeń jednego lub wielu fizycznych woluminów wchodzących w skład grupy woluminów.

Lista woluminów logicznych w systemie:

 

Logiczny ekstent (LE – logical extent).

Wolumin logiczny złożony jest z ekstentów zwanych logicznymi. Logiczne ekstenty wskazują na fizyczne ekstenty i mogą tworzyć obszar losowo lub w sposób ciągły. Im większy jest wolumin logiczny tym więcej posiada logicznych ekstentów. Ekstenty logiczne są zbiorem ekstentów fizycznych zaalokowanych dla woluminu logicznego. Rozmiary ekstentów fizycznych i logicznych są zazwwyczaj takie same w ramach grupy woluminów, może się jednak zdażyć, że logiczny ekstent jest mniejszy lub większy niż ekstent fizyczny. Domyślnym rozmiarem LE są podobnie jak PE 4MB.

Informacje o logicznym woluminie root w grupie woluminów vg00:

 

Zarządzanie przestrzenią dyskową przez LVM.

Komendy LVM przedstawiają poniższe tabele.

Komendy związane z fizycznymi woluminami.
Komenda Opis
pvck Sprawdza integralność woluminu fizycznego.
pvcreate Inicjalizuje dysk lub partycję do wykorzystania przez LVM.
pvdisplay Wyświetla dokładne informacje o fizycznym woluminie.
pvresize Zmienia rozmiar woluminu fizycznego.
pvmove Przenosi dane z jednego fizycznego woluminu do innego.
pvremove Deaktywuje (uninitialize) wolumin fizyczny.
pvs Listuje woluminy fizyczne.
pvscan Skanuje cały system i listuje wszystkie znalezione woluminy fizyczne.
Komendy związane z grupami woluminów
vgck Sprawdza integralność grupy woluminów.
vgcreate Tworzy grupę woluminów.
vgdisplay Wyświetla dokładne informacje o grupie woluminów.
vgextend Dodaje fizyczny wolumin do grupy woluminów.
vgreduce Usuwa fizyczny wolumin z grupy woluminów.
vgrename  Zmienia nazwę grupy woluminów.
vgremove Usuwa grupę woluminów.
vgs Listuje grupy woluminów.
vgscan Skanuje cały dysk, listuje znalezione grupy woluminów i przebudowuje cache.
Komendy związane z woluminami logicznymi
lvcreate Tworzy wolumin logiczny.
lvdisplay Wyświetla dokładne informacje o woluminie logicznym.
lvextend Rozszerza rozmiar woluminu logicznego.
lvreduce Zmniejsza rozmiar woluminu logicznego.
lvremove Usuwa logiczny wolumin.
lvrename Zmienia nazwę logicznego woluminu.
lvresize Zmienia rozmiar woluminu logicznego. Z opcją -r komenda odwołuje się do polecenia resize2fs celem zmniejszenia także systemu plików tworzącego wolumin.
lvs Listuje woluminy logiczne.
lvscan Skanuje cały dysk twardy i listuje wszystkie znalezione woluminy logiczne
Różne komendy LVM
 lvm Interaktywne narzędzie do zarządzania LVM.
 lvmdiskscan Skanuje system w poszukiwaniu dysków i partycji LVM a także tych, które mogą być zainicjalizowane do użycia przez LVM.

 

Ćwiczenie 1. Tworzenie fizycznego woluminu i grupy woluminów.

Tworzymy partycję o rozmiarze 200MB korzystając z parted:

Inicjalizujemy fizyczny wolumin vdb i vdc1 korzystając z komendy pvcreate:

Użyj lsblk do określenia ile jest dostępnej przestrzeni dyskowej.

Tworzymy grupę woluminów vg0 komendą vgcreate i dodajemy do niej fizyczne woluminy vdb i vdc1. Opcji -s używamy do określenia rozmiaru fizycznego ekstentu w MB.

Wyświetlamy podstawowe informacje o grupie woluminów vg01 korzystając z komendy vgs i vgscan:

Możemy także wyświetlić dokładniejsze informacje korzystając z polecenia vgdisplay z opcją -v:

Wyświetlamy podstawowe informacje o fizycznym woluminie vdb korzystając z poleceń pvs i pvscan:

Dokładniejsze informacje o fizycznym woluminie wyświetlamy poleceniem pvdisplay:

LVM podczas inicjalizacji i dodawania do grupy woluminów traktuje partycję i dysk w sposób jednakowy.

 

Ćwiczenie 2. Tworzenie woluminu logicznego.

Tworzymy wolumin logiczny lvol0 o rozmiarze 600MB.

Rozmiar może być podany w KB, MB, GB, TB, PB, EB, bajtach, sectorach lub ilości LE (logicznych ekstentów).
MB są domyślną jednostką. Minimalnym rozmiarem woluminu logicznego jest jest rozmiar fizycznego ekstentu i jest zawsze jego wielokrotnością. Powinno to być brane pod uwagę aby nie marnować przestrzeni dyskowej.

Tworzymy wolumin logiczny oravol o rozmiarze 1.3GB. Opcja -L służy do podania rozmiaru a opcja -n do podania nazwy.

Wyświetlamy podstawowe informacje o dwóch logicznych woluminach:

Używamy komendy vgdisplay na grupie woluminów vg01 z opcją -v aby uzyskać dokładne informacje o całej grupie woluminów wraz z logicznymi woluminami, które wchodzą w skład grupy.

vgdisplay informacje o grupie woluminów bierze z plików w katalogu /etc/lvm/backup.

 

Ćwiczenie 3. Rozszerzenie grupy woluminów i logicznego woluminu.

Tworzymy fizyczny wolumin /dev/vdd komendą pvcreate:

Dodajemy fizyczny wolumin vg01 do grupy woluminów vg01:

Wyświetlamy podstawowe informacje o grupie woluminów vg01:

Rozszerzamy logiczny wolumin lvo10 podając całkowity pożądany rozmiar woluminu lub podajemy dodatkową przestrzeń o jaką rozszerzamy wolumin:

lub

Zmieniamy rozmiar logicznego woluminu oravol:

lub

Wyświetlamy szczegółowe informacje o grupie woluminów vg01:

 

Ćwiczenie 4. Zmiana nazwy, zmniejszenie rozmiaru i usuwanie woluminu logicznego.

Zmieniamy nazwę lvo10 na lvolnew:

Potwierdzamy:

Redukujemy rozmiar woluminu logicznego lvolnew do 800MB komendą lvreduce:

lub

Redukujemy rozmiar woluminu logicznego lvolnew do 700MB komendą lvresize:

lub

Podczas zmniejszania rozmiaru woluminu logicznego jest ryzyko utraty danych zlokalizowanych usuwanych na logicznych ekstentach. Najlepiej zrobić zatem backup woluminu logicznego przed zmniejszeniem jego rozmiaru.

Usuwamy woluminy logiczne lvolnew i oravol poleceniem lvremove. Opcja -f potwierdzi zapytanie “Do you really want to remove active logical volume <lvol_name>” .

Wyświetlamy informacje o grupie volumminów poleceniem vgdisplay. Cur LC powinnno wskazywać teraz 0.

 

Ćwiczenie 5. Redukcja i usunięcie grupy woluminów.

Usuwamy fizyczne woluminy vdb i vdc1 z grupy woluminów vg01 poleceniem vgreduce:

Usuwamy grupę woluminów vg01 korzystając z polecenia vgremove. Spowoduje to także usunięcie ostatniego fizycznego woluminu z grupy.

Można także użyć opcji -f do wymuszenia usunięcia grupy woluminów nawet jeżeli zawiera logiczne i fizyczne woluminy.

 

Ćwiczenie 6. Deinicializacja fizycznego woluminu.

Deinicjalizujemy fizyczne woluminy vdb, vdc1 i vdd poleceniem pvremove:

Dysk został przywrócony do stanu pierwotnego.

Leave a Reply

Your email address will not be published. Required fields are marked *