Wyszukiwanie w witrynie

Jak utworzyć wolumin VDO na urządzeniu pamięci masowej w systemie RHEL 8


Wprowadzona przez RedHat w wersji RHEL 7.5 i nowszych, VDO, skrót od Virtual Date Optimizer, to technologia wirtualizacji bloków, która zapewnia deduplikacja inline i kompresja danych na poziomie urządzenia blokowego.

Idea deduplikacji jest dość prosta: usunąć kopie zduplikowanych danych i pozostać tylko z jedną kopią. Kiedy na urządzeniu blokowym dodawany jest identyczny plik, jest on oznaczany jako duplikat i zamiast tego pojawia się odniesienie do oryginalnego pliku. W ten sposób VDO pomaga zaoszczędzić miejsce w wolumenie bloku.

W tym samouczku dowiesz się, jak utworzyć wolumin VDO na urządzeniu pamięci masowej w systemie RHEL 8.

Krok 1: Zainstaluj VDO w RHEL 8

Aby rozpocząć, zaloguj się na swój serwer i zaktualizuj RHEL za pomocą polecenia dnf.

sudo dnf update -y

Po zakończeniu aktualizacji pakietów i jądra kontynuuj instalację modułów jądra VDO i zależności za pomocą polecenia.

sudo dnf install kmod-kvdo vdo
  • vdo – Jest to zestaw narzędzi do zarządzania dla Virtual Data Optimizer.
  • kmod-kvdo – jest to grupa modułów jądra dla Virtual Data Optimizer.

Po udanej instalacji uruchom, włącz i zweryfikuj demona vdo.

sudo systemctl start vdo
sudo systemctl enable vdo
sudo systemctl status vdo

Krok 2: Utwórz wolumin VDO w RHEL 8

Przed utworzeniem wolumenu vdo upewnij się, że w systemie znajduje się dodatkowy dysk twardy. W tym samouczku dołączyliśmy dodatkowy wolumin xvdb. Można to zademonstrować, uruchamiając poniższą komendę lsblk.

lsblk

Na wyjściu wyraźnie widać, że drugi dysk ma pojemność 100 GB.

Teraz utworzymy pusty wolumen VDO na dysku /dev/xvdb.

sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

Pojawi się pokazany błąd.

Jest to częsty błąd i rozwiązaniem jest po prostu ponowne uruchomienie serwera.

sudo reboot

Podczas drugiej próby polecenie zostanie wykonane, tworząc pusty wolumen VDO na urządzeniu /dev/xvdb.

sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

Rozłóżmy polecenie i przyjrzyjmy się użytej opcji:

  • utwórz – inicjuje utworzenie woluminu VDO.
  • –name=vdo1 – nadaje woluminowi etykietę znaną jako vdo1. Zachęcamy do nadania dowolnej nazwy.
  • –device=/dev/xvdb – opcja urządzenie określa dysk, na którym zostanie utworzony wolumen.
  • –vdoLogicalSize=300G – wskazuje efektywną pojemność wolumenu wykorzystywaną przez system operacyjny, w tym przypadku 300G.

Krok 3: Sondowanie nowego woluminu VDO

Nowy wolumin VDO został utworzony w /dev/mapper/vdo1 w oparciu o dane wyjściowe, które widzieliśmy w poprzednim kroku. Możemy użyć polecenia ls, jak pokazano, aby sprawdzić uprawnienia i własność plików.

ls -l /dev/mapper/vdo1

Aby uzyskać bardziej wnikliwe informacje, użyj polecenia vdostats, aby pobrać statystyki dotyczące rozmiaru i wykorzystania woluminu.

vdostats --hu

Flaga --hu wyświetla informacje w formacie czytelnym dla człowieka, tj. formacie, który jest znacznie łatwiejszy do odczytania i łatwego rozszyfrowania. Możemy przeglądać atrybuty takie jak nazwa urządzenia, rozmiar dodatkowego dysku, zajęte i dostępne miejsce jako wykorzystanie %.

Uważnie zauważ, że % oszczędności jest oznaczone jako Nie dotyczy (nie dotyczy).

Pamiętaj też, że mamy już pewne wykorzystanie wolumenu 4,1 G, co przekłada się na 4%, ale nie napisaliśmy nic na temat wolumenu. Dlaczego? Dzieje się tak dlatego, że uniwersalna deduplikacja została już zapisana na dysku i to właśnie umożliwia deduplikację.

Polecenie vdostats może zostać użyte z flagą --verbose w celu pobrania bardziej szczegółowych informacji, jak pokazano:

sudo vdostats --verbose /dev/mapper/vdo1 | grep -B6 ‘saving percent’

To, co widzisz, to w zasadzie te same dane, co w poprzednim przykładzie, ale w innym formacie.

Krok 4: Partycjonowanie woluminu VDO

Po uzyskaniu wystarczających informacji z woluminu musimy go podzielić na partycje, a później utworzyć system plików, aby można go było używać jak normalnego dysku.

Utwórzmy wolumin fizyczny i grupę woluminów, jak pokazano, uruchom następujące polecenia.

sudo pvcreate /dev/mapper/vdo1
sudo vgcreate vdo1vg /dev/mapper/vdo1

Aby wyświetlić statystyki przebiegu grupy woluminów:

sudo vgdisplay vdo1vg

Teraz utworzymy 2 woluminy logiczne o jednakowej wielkości, każdy o pojemności 50G.

sudo lvcreate -n vdo1v01 -L 50G vdo1vg
sudo lvcreate -n vdo1v02 -L 50G vdo1vg

Możesz później wyświetlić statystyki nowo utworzonych woluminów, uruchamiając komendę.

sudo lvs

Krok 4: Formatowanie i montowanie systemów plików

Zwykle podczas tworzenia systemu plików na urządzeniu przeprowadzana jest operacja przycinania. Jest to niepożądane w przypadku VDO. Podczas formatowania za pomocą polecenia mkfs użyj opcji -K, aby poinstruować polecenie, aby nie odrzucało bloków podczas tworzenia systemu plików.

sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v01
sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v02

Jeśli używasz systemu plików EXT$, użyj opcji „-E nodiscard”.

Utwórz punkty montowania do montażu woluminów:

sudo mkdir /data/v01
sudo mkdir /data/v02

Teraz zamontuj systemy plików w punktach montowania, jak pokazano.

sudo mount -o discard /dev/vdo1vg/vdo1v01  /data/v01
sudo mount -o discard /dev/vdo1vg/vdo1v02  /data/v02

Teraz, gdy sprawdzisz głośność VDO, zauważysz, że oszczędność % zmieniła się do 99%, co jest dość imponujące. Oznacza to, że deduplikacja działa zgodnie z oczekiwaniami.

sudo vdostats --hu

Możesz dokładniej sprawdzić, używając polecenia df -Th. W dolnej części zobaczysz systemy plików zamontowane odpowiednio na /data/v01 i /data/v02.

df -hT

W tym samouczku zademonstrowaliśmy, jak utworzyć wolumin VDO z dodatkowego urządzenia pamięci masowej w RHEL 8. Później poszliśmy dalej i zademonstrowaliśmy, jak można utworzyć więcej woluminów i stworzyć z nich systemy plików.