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.