Wyszukiwanie w witrynie

Konfigurowanie woluminów alokacji elastycznej w zarządzaniu woluminami logicznymi (LVM) — część IV


Zarządzanie woluminami logicznymi ma świetne funkcje, takie jak migawki i Thin Provisioning. Poprzednio w (Część III) widzieliśmy, jak wykonać migawkę woluminu logicznego. W tym artykule zobaczymy, jak skonfigurować woluminy cienkiej alokacji w LVM.

Co to jest cienka alokacja?

Thin Provisioning jest używany w lvm do tworzenia dysków wirtualnych w cienkiej puli. Załóżmy, że na moim serwerze mam pojemność 15 GB. Mam już 2 klientów, z których każdy ma 5 GB pamięci. Jesteś trzecim klientem i prosiłeś o 5 GB przestrzeni dyskowej. Wtedy zapewnialiśmy całe 5 GB (gruby wolumin), ale możesz użyć 2 GB z tych 5 GB, a 3 GB będą wolne i będziesz mógł je później zapełnić.

Jednak to, co robimy w przypadku alokowania elastycznego, polega na zdefiniowaniu cienkiej puli w jednej z dużych grup woluminów i zdefiniowaniu cienkich woluminów w tej cienkiej puli. Tak więc wszelkie pliki, które napiszesz, zostaną zapisane, a Twoja pamięć będzie pokazana jako 5 GB. Ale pełne 5 GB nie przydzieli całego dysku. Ten sam proces zostanie wykonany również dla innych klientów. Jak mówiłem, jest dwóch klientów, a ty jesteś moim trzecim klientem.

Załóżmy więc, ile łącznie GB przydzieliłem klientom? W sumie 15 GB zostało już skompletowane. Jeśli ktoś przyjdzie do mnie i poprosi o 5 GB, czy mogę mu dać? Odpowiedź brzmi „Tak”. W przypadku cienkiej alokacji mogę dać 5 GB dla czwartego klienta, mimo że przydzielono mi 15 GB.

Ostrzeżenie: od 15 GB, jeśli udostępniamy więcej niż 15 GB, nazywa się to nadmiernym udostępnianiem.

Jak to działa? oraz Jak udostępniamy przestrzeń dyskową nowym Klientom?

Udostępniłem Ci 5 GB, ale możesz wykorzystać tylko 2 GB, a pozostałe 3 GB będą bezpłatne. W Thick Provisioning nie możemy tego zrobić, ponieważ na początku sam przydzieli całą przestrzeń.

W przypadku Thin Provisioning, jeśli zdefiniuję dla Ciebie 5 GB, nie przydzieli to całego miejsca na dysku podczas definiowania woluminu, wzrośnie do 5 GB zgodnie z zapisanymi danymi. Mam nadzieję, że to rozumiesz! tak samo jak Ty, inni klienci również nie będą korzystać z pełnych woluminów, więc będzie szansa na dodanie 5 GB do nowego klienta. Nazywa się to over Provisioning.

Monitorowanie każdego wzrostu wolumenu jest jednak obowiązkowe, w przeciwnym razie zakończy się to katastrofą. Podczas gdy nadmierne udostępnianie jest wykonywane, jeśli wszyscy 4 klienci zapisują dane na dysku w sposób nieprawidłowy, możesz napotkać problem, ponieważ zapełnią one Twoje 15 GB i przepełnią, co spowoduje utratę woluminów.

Wymagania

  1. Utwórz pamięć dyskową za pomocą LVM w systemie Linux – CZĘŚĆ 1
  2. Jak rozszerzyć/zmniejszyć LVM w systemie Linux – część II
  3. Jak utworzyć/przywrócić migawkę woluminu logicznego w LVM – część III
Konfiguracja mojego serwera
  1. System operacyjny – CentOS 6.5 z instalacją LVM
  2. Adres IP serwera – 192.168.0.200

Krok 1: Skonfiguruj cienką pulę i woluminy

Zróbmy to praktycznie, jak skonfigurować cienką pulę i cienkie woluminy. Najpierw potrzebujemy dużego rozmiaru grupy woluminów. Tutaj tworzę grupę woluminów o pojemności 15 GB w celach demonstracyjnych. Teraz wyświetl listę grupy woluminów za pomocą poniższego polecenia.

vgcreate -s 32M vg_thin /dev/sdb1

Następnie przed utworzeniem cienkiej puli i woluminów sprawdź dostępność woluminu logicznego.

vgs
lvs

Widzimy, że istnieją tylko domyślne woluminy logiczne dla systemu plików, a w powyższym wyjściu lvs występuje zamiana.

Tworzenie cienkiej puli

Aby utworzyć pulę cienką dla 15 GB w grupie woluminów (vg_thin), użyj następującego polecenia.

lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  1. -L – Rozmiar grupy woluminów
  2. –thinpool – Aby utworzyć cienką pulę
  3. tp_tecmint_pool – nazwa cienkiej puli
  4. vg_thin – nazwa grupy woluminów, w której potrzebujemy utworzyć pulę

Aby uzyskać więcej szczegółów, możemy użyć polecenia „lvdisplay”.

lvdisplay vg_thin/tp_tecmint_pool

W tym przypadku nie utworzyliśmy wirtualnych cienkich woluminów w tej cienkiej puli. Na obrazku widzimy dane o przydzielonej puli pokazujące 0,00%.

Tworzenie cienkich woluminów

Teraz możemy zdefiniować cienkie woluminy wewnątrz cienkiej puli za pomocą polecenia „lvcreate” z opcją -V (wirtualny).

lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool

Utworzyłem wolumin wirtualny Thin o nazwie thin_vol_client1 w tp_tecmint_pool w mojej grupie woluminów vg_thin. Teraz wyświetl listę woluminów logicznych za pomocą poniższego polecenia.

lvs 

Właśnie utworzyliśmy powyższy cienki wolumin, dlatego nie wyświetlają się żadne dane, tj. 0,00%M.

Dobrze, pozwól mi utworzyć 2 więcej woluminów Thin dla pozostałych 2 klientów. Tutaj możesz zobaczyć, że w puli (tp_tecmint_pool) utworzono 3 cienkie woluminy. Od tego momentu dowiedzieliśmy się, że wykorzystałem całą pulę 15 GB.

Tworzenie systemu plików

Teraz utwórz punkty montowania i zamontuj te trzy cienkie woluminy i skopiuj do nich niektóre pliki, używając poniższych poleceń.

mkdir -p /mnt/client1 /mnt/client2 /mnt/client3

Lista utworzonych katalogów.

ls -l /mnt/

Utwórz system plików dla utworzonych cienkich woluminów za pomocą polecenia „mkfs”.

mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3

Zamontuj wszystkie trzy woluminy klienckie w utworzonym punkcie montowania za pomocą polecenia „mount”.

mount /dev/vg_thin/thin_vol_client1 /mnt/client1/ && mount /dev/vg_thin/thin_vol_client2 /mnt/client2/ && mount /dev/vg_thin/thin_vol_client3 /mnt/client3/

Wypisz punkty podłączenia za pomocą polecenia „df”.

df -h

Tutaj widzimy, że wszystkie 3 woluminy klientów są zamontowane i dlatego tylko 3% danych jest używanych na każdym woluminie klienta. Dodajmy więc więcej plików do wszystkich 3 punktów montowania na moim pulpicie, aby wypełnić trochę miejsca.

Teraz wypisz punkt montowania i zobacz przestrzeń używaną w każdym cienkim woluminie oraz wypisz cienką pulę, aby zobaczyć rozmiar używany w puli.

df -h
lvdisplay vg_thin/tp_tecmint_pool

Powyższe polecenie pokazuje trzy kufle montowania wraz z ich rozmiarami w procentach.

13% of datas used out of 5GB for client1
29% of datas used out of 5GB for client2
49% of datas used out of 5GB for client3

Patrząc na cienką pulę, widzimy, że tylko 30% danych jest zapisanych w całości. Jest to suma powyższych trzech woluminów wirtualnych klientów.

Nadmierne zaopatrzenie

Teraz przyszedł do mnie czwarty klient i poprosił o 5 GB przestrzeni dyskowej. Czy mogę dać? Ponieważ przekazałem już pulę 15 GB 3 klientom. Czy jest możliwość przekazania 5 GB więcej innemu klientowi? Tak, można dać. Dzieje się tak wtedy, gdy używamy opcji Nadmierna alokacja, co oznacza udostępnienie przestrzeni większej niż ta, którą posiadam.

Pozwólcie, że utworzę 5 GB dla czwartego klienta i zweryfikuję rozmiar.

lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool
lvs

Mam w puli tylko 15 GB, ale utworzyłem 4 woluminy w cienkiej puli o pojemności do 20 GB. Jeśli wszyscy czterej klienci zaczną zapisywać dane na swoich woluminach, aby nabrać tempa, wówczas będziemy mieli do czynienia z krytyczną sytuacją, a jeśli nie, nie będzie żadnego problemu.

Teraz utworzyłem system plików w thin_vol_client4, następnie zamontowałem go w /mnt/client4 i skopiowałem do niego kilka plików.

lvs

Na powyższym obrazku widać, że całkowity wykorzystany rozmiar w nowo utworzonym kliencie 4 wyniósł 89,34%, a rozmiar cienkiej puli wyniósł 59,19%. Jeśli wszyscy ci użytkownicy nie piszą źle na woluminie, będzie on wolny od przepełnienia, upuszczenia. Aby uniknąć przepełnienia, musimy zwiększyć rozmiar cienkiej puli.

Ważne: pule cienkie to po prostu woluminy logiczne, więc jeśli chcemy zwiększyć rozmiar puli cienkiej, możemy użyć tego samego polecenia, którego użyliśmy dla woluminów logicznych rozciąga się, ale nie możemy zmniejszyć rozmiaru cienkiej puli.

lvextend

Tutaj możemy zobaczyć, jak rozszerzyć logiczną cienką pulę (tp_tecmint_pool).

lvextend -L +15G /dev/vg_thin/tp_tecmint_pool

Następnie podaj rozmiar cienkiej puli.

lvs

Wcześniej nasz rozmiar tp_tecmint_pool wynosił 15 GB i 4 cienkie woluminy, co oznaczało przekroczenie udostępniania o 20 GB. Teraz rozszerzono go do 30 GB, więc nasze nadmierne udostępnianie zostało znormalizowane, a cienkie woluminy są wolne od przepełnienia i upuszczenia. W ten sposób możesz dodawać do puli coraz więcej cienkich woluminów.

W tym artykule widzieliśmy, jak utworzyć cienką pulę przy użyciu grupy woluminów o dużym rozmiarze i utworzyć cienkie woluminy w cienkiej puli przy użyciu nadmiernej alokacji i rozszerzania puli. W następnym artykule zobaczymy jak skonfigurować lvm Striping.