Wyszukiwanie w witrynie

LFCS: Jak zarządzać i tworzyć LVM za pomocą poleceń vgcreate, lvcreate i lvextend — część 11


Ze względu na zmiany w wymaganiach egzaminacyjnych LFCS obowiązujące od lutego. 2 lutego 2016 dodajemy niezbędne tematy do publikowanej tutaj serii LFCS. Aby przygotować się do tego egzaminu, gorąco zachęcamy do korzystania z serii LFCE.

Jedną z najważniejszych decyzji podczas instalacji systemu Linux jest ilość miejsca przeznaczonego na pliki systemowe, katalogi domowe i inne. Jeśli w tym momencie popełnisz błąd, powiększanie partycji, na której zabrakło miejsca, może być uciążliwe i nieco ryzykowne.

Zarządzanie woluminami logicznymi (znane również jako LVM), które stało się ustawieniem domyślnym podczas instalacji większości (jeśli nie wszystkich) dystrybucji Linuksa, ma wiele zalet w porównaniu z tradycyjnym zarządzaniem partycjami. Być może najbardziej wyróżniającą cechą LVM jest to, że pozwala na dowolną zmianę rozmiaru podziałów logicznych (zmniejszanie lub zwiększanie) bez większych problemów.

Struktura LVM składa się z:

  1. Jeden lub więcej całych dysków twardych lub partycji jest skonfigurowanych jako woluminy fizyczne (PV).
  2. Grupa woluminów (VG) jest tworzona przy użyciu jednego lub większej liczby woluminów fizycznych. Grupę woluminów można traktować jak pojedynczą jednostkę pamięci.
  3. Następnie w grupie woluminów można utworzyć wiele woluminów logicznych. Każdy wolumin logiczny jest w pewnym sensie odpowiednikiem tradycyjnej partycji – z tą zaletą, że można dowolnie zmieniać jego rozmiar, jak wspomnieliśmy wcześniej.

W tym artykule użyjemy trzech dysków o pojemności 8 GB każdy (/dev/sdb, /dev/sdc i /dev /sdd), aby utworzyć trzy woluminy fizyczne. Możesz albo utworzyć PV bezpośrednio na urządzeniu, albo najpierw je podzielić.

Chociaż wybraliśmy pierwszą metodę, jeśli zdecydujesz się skorzystać z drugiej (jak wyjaśniono w części 4 – Tworzenie partycji i systemów plików w systemie Linux z tej serii), pamiętaj o skonfigurowaniu każdej partycji jako typu 8e.

Tworzenie woluminów fizycznych, grup woluminów i woluminów logicznych

Aby utworzyć woluminy fizyczne na /dev/sdb, /dev/sdc i /dev/sdd, wykonaj:

pvcreate /dev/sdb /dev/sdc /dev/sdd

Możesz wyświetlić listę nowo utworzonych PV za pomocą:

pvs

i uzyskaj szczegółowe informacje o każdym PV za pomocą:

pvdisplay /dev/sdX

(gdzie X to b, c lub d)

Jeśli pominiesz parametr /dev/sdX, otrzymasz informacje o wszystkich PV.

Aby utworzyć grupę woluminów o nazwie vg00 przy użyciu /dev/sdb i /dev/sdc (zapiszemy /dev/sdd na później, aby zilustrować możliwość dodania innych urządzeń w celu zwiększenia pojemności pamięci, jeśli zajdzie taka potrzeba):

vgcreate vg00 /dev/sdb /dev/sdc

Podobnie jak miało to miejsce w przypadku woluminów fizycznych, informacje o tej grupie woluminów można także przeglądać wydając:

vgdisplay vg00

Ponieważ plik vg00 składa się z dwóch dysków 8 GB, będzie widoczny jako pojedynczy dysk 16 GB:

Jeśli chodzi o tworzenie woluminów logicznych, rozkład przestrzeni musi uwzględniać zarówno obecne, jak i przyszłe potrzeby. Za dobrą praktykę uważa się nadawanie każdemu woluminowi logicznemu nazwy zgodnie z jego przeznaczeniem.

Na przykład utwórzmy dwa LV o nazwach vol_projects (10 GB) i vol_backups (pozostała przestrzeń), które będziemy mogli później wykorzystać do przechowywania dokumentacji projektu i kopie zapasowe systemu, odpowiednio.

Opcja -n służy do wskazania nazwy LV, podczas gdy -L ustawia stały rozmiar, a opcja -l (małe L) jest używany do wskazania procentu pozostałego miejsca w kontenerze VG.

lvcreate -n vol_projects -L 10G vg00
lvcreate -n vol_backups -l 100%FREE vg00

Tak jak poprzednio, możesz przeglądać listę LV i podstawowe informacje za pomocą:

lvs

i szczegółowe informacje z

lvdisplay

Aby wyświetlić informacje o pojedynczym LV, użyj lvdisplay z parametrami VG i LV w następujący sposób:

lvdisplay vg00/vol_projects

Na powyższym obrazku widać, że LV zostały utworzone jako urządzenia pamięci masowej (patrz linia LV Path). Zanim będzie można użyć każdego woluminu logicznego, musimy utworzyć na nim system plików.

Użyjemy tutaj ext4 jako przykładu, ponieważ pozwala nam zarówno zwiększać, jak i zmniejszać rozmiar każdego LV (w przeciwieństwie do xfs, który pozwala tylko zwiększać rozmiar):

mkfs.ext4 /dev/vg00/vol_projects
mkfs.ext4 /dev/vg00/vol_backups

W następnej sekcji wyjaśnimy, jak zmienić rozmiar woluminów logicznych i dodać dodatkową fizyczną przestrzeń dyskową, gdy zajdzie taka potrzeba.

Zmiana rozmiaru woluminów logicznych i rozszerzanie grup woluminów

Teraz wyobraź sobie następujący scenariusz. Zaczyna brakować Ci miejsca w vol_backups, podczas gdy masz dużo wolnego miejsca w vol_projects. Ze względu na naturę LVM, możemy łatwo zmniejszyć rozmiar tego drugiego (powiedzmy 2,5 GB) i przydzielić go dla pierwszego, jednocześnie zmieniając rozmiar każdego systemu plików.

Na szczęście jest to tak proste, jak:

lvreduce -L -2.5G -r /dev/vg00/vol_projects
lvextend -l +100%FREE -r /dev/vg00/vol_backups

Ważne jest, aby podczas zmiany rozmiaru woluminu logicznego uwzględnić znak minus (-) lub plus (+). W przeciwnym razie ustawiasz stały rozmiar LV zamiast zmieniać jego rozmiar.

Może się zdarzyć, że dojdziesz do punktu, w którym zmiana rozmiaru woluminów logicznych nie będzie już w stanie zaspokoić Twoich potrzeb w zakresie pamięci masowej i będziesz musiał kupić dodatkowe urządzenie pamięci masowej. Dla uproszczenia będziesz potrzebować innego dysku. Zamierzamy symulować tę sytuację, dodając pozostałą wartość PV z naszej początkowej konfiguracji (/dev/sdd).

Aby dodać /dev/sdd do vg00, wykonaj

vgextend vg00 /dev/sdd

Jeśli uruchomisz vgdisplay vg00 przed i po poprzednim poleceniu, zobaczysz wzrost rozmiaru VG:

vgdisplay vg00

Teraz możesz użyć nowo dodanej przestrzeni, aby zmienić rozmiar istniejących LV zgodnie ze swoimi potrzebami lub utworzyć dodatkowe w razie potrzeby.

Montowanie woluminów logicznych podczas rozruchu i na żądanie

Oczywiście nie ma sensu tworzyć woluminów logicznych, jeśli nie będziemy ich faktycznie używać! Aby lepiej zidentyfikować wolumin logiczny, musimy dowiedzieć się, jaki jest jego UUID (niezmienny atrybut, który jednoznacznie identyfikuje sformatowane urządzenie pamięci masowej).

Aby to zrobić, użyj blkid, a następnie ścieżki do każdego urządzenia:

blkid /dev/vg00/vol_projects
blkid /dev/vg00/vol_backups

Utwórz punkty montowania dla każdego LV:

mkdir /home/projects
mkdir /home/backups

i wstaw odpowiednie wpisy w /etc/fstab (upewnij się, że używasz uzyskanych wcześniej identyfikatorów UUID):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

Następnie zapisz zmiany i zamontuj LV:

mount -a
mount | grep home

Jeśli chodzi o faktyczne korzystanie z LV, będziesz musiał przypisać odpowiednie uprawnienia ugo+rwx, jak wyjaśniono w Części 8 – Zarządzanie użytkownikami i grupami w systemie Linux z tej serii.

Streszczenie

W tym artykule przedstawiliśmy Logical Volume Management, wszechstronne narzędzie do zarządzania urządzeniami pamięci masowej, które zapewnia skalowalność. W połączeniu z RAID (co wyjaśniliśmy w części 6 – Tworzenie i zarządzanie RAID w systemie Linux z tej serii), możesz cieszyć się nie tylko skalowalnością (zapewnianą przez LVM), ale także redundancją (oferowaną przez RAID).

W tego typu konfiguracji zazwyczaj LVM znajduje się nad RAID, co oznacza, że najpierw skonfigurujesz RAID, a następnie skonfigurujesz na nim LVM.

Jeśli masz pytania dotyczące tego artykułu lub sugestie dotyczące jego ulepszenia, skontaktuj się z nami, korzystając z poniższego formularza komentarza.