Logical Volume Manager

Z funus.net

Logical Volume Manager (LVM) w Linuksie.

Spis treści

[edytuj] Podstawy

Terminologia:

  • PV (Physical Volume) -- wolumen fizyczny -- dysk albo partycja zarządzana przez LVM;
  • LV (Logical Volume) -- wolumen logiczny, na którym można np. postawić system plików;
  • VG (Volume Group) -- grupuje wolumeny fizyczne oraz logiczne; przestrzeń dla LV przydzialana jest z PV należących do danej VG;
  • PE (Physical Extent) -- jednostka przydziału na wolumenach fizycznych, domyślne 4 MB;
  • LE (Logical Extent) -- jak wyżej, ale dla LV.

Do zarządzania systemem LVM służy szereg poleceń zaczynających się od liter: pv, lv i vg. Alternatywnie można użyć polecenia lvm, które udostępnia całość funkcjonalności.

Niektóre polecenia:

  • pvcreate -- utwórz wolumen fizyczny (PV);
  • vgcreate -- utwórz grupę (VG);
  • lvcreate -- utwórz wolumen logiczny (LV);
  • lvextend, lvreduce, lvresize -- pozwalają zmieniać rozmiar wolumenów logicznych.

[edytuj] Uwagi

[edytuj] Bootowanie

Boot loadery nie obsługują raczej LVM, więc nie można startować systemu z takiej partycji. Trzeba zostawić jedną normalną (może to być na przykład osobna, niewielka partycja dla katalogu /boot).

[edytuj] Udostępnienie LV

Przed użyciem (zamontowaniem) logicznych wolumentów, trzeba uczynić je widocznymi, czy może raczej - uaktywnić:

  • vgchange -ay

Powyższe grupowo udostępni do montowania wszystkie wolumeny logiczne w (chyba wszystkich? nie jestem pewien, bo mam raptem jedną) grupach. Można też aktywować poszczególne wolumeny logiczne, podając ścieżki do nieistniejących (jeszcze) plików specjalnych je reprezentujących:

  • lvchange -ay /dev/vg_name/lv_name

Jeśli nic nie znajdzie, to można spróbować przeszukać dyski:

  • vgscan

Normalnie wykonuje to skrypt startowy LVM-a, ale jeśli dysk nie jest dostępny podczas startu systemu, to trzeba będzie ręcznie wywołać polecenie.

[edytuj] Rozszerzanie LV

Rozszerzanie wolumenu logicznego (LV) jest proste i przyjemne. Oczywiście grupa (VG), do której należy dany LV, musi mieć wolne miejsce. Po powiększeniu LV (np. przy pomocy polecenia lvextend) należy zwiększyć rozmiar systemu plików, który się tam znajduje. W przypadku ext3 służy do tego polecenie resize2fs, które można wywołać bez podawania docelowego rozmiaru, a wówczas powiększy filesystem tak, by zajmował całą partycję - w tym przypadku cały LV.

System plików ext3 ma tę zaletę, że można go powiększać online, bez odmontowywania.

[edytuj] Zmniejszanie LV

Najpierw trzeba zmniejszyć system plików do wymaganego rozmiaru. W przypadku ext3 służy do tego polecenie resize2fs, ale - inaczej niż przy powiększaniu - żeby zmniejszyć filesystem trzeba go odmontować.

Następnie należy obliczyć rozmiar, jaki zajmuje zmniejszony system plików. Można to zrobić mnożąc rozmiar bloku (na ogół 4KB) przez liczbę bloków. Dla ext3 obie wartości można uzyskać przy pomocy polecenia tune2fs.

Następnie należy zmniejszyć LV do obliczonego wcześniej rozmiaru (poleceniem lvreduce). Teraz można zamonstawać zmniejszoną partycję i wszystko powinno być OK.

[edytuj] Zobacz też