+38 067 569 61 50

info@clapkey.com

Traktat o istocie mechanizmu backupów w Proxmox VE

Traktat o istocie mechanizmu backupów w Proxmox VE

W artykule «Magia wirtualizacji: kurs wprowadzający do Proxmox VE» pomyślnie zainstalowaliśmy na serwerze hiperwizor, podłączyliśmy do niego magazyn danych, zadbaliśmy o elementarne bezpieczeństwo i nawet stworzyliśmy pierwszą maszynę wirtualną. Teraz omówimy, jak zrealizować podstawowe zadania, które trzeba wykonywać, aby zawsze mieć możliwość przywrócenia działania usług w razie awarii.

Standardowe narzędzia Proxmox pozwalają nie tylko na wykonywanie kopii zapasowych danych, ale też na tworzenie zestawów wcześniej skonfigurowanych obrazów systemów operacyjnych do szybkiego wdrażania. Pomaga to nie tylko w razie potrzeby utworzyć nowy serwer dla dowolnej usługi w ciągu kilku sekund, ale też zmniejsza czas przestoju do minimum.

Nie będziemy opowiadać o konieczności tworzenia kopii zapasowych, ponieważ jest to oczywiste i od dawna jest aksjomatem. Skupimy się na kilku nieoczywistych rzeczach i szczegółach.

Najpierw rozważmy, w jaki sposób przechowywane są dane podczas procedury tworzenia kopii zapasowej.

Algorytmy tworzenia kopii zapasowych

Zacznijmy od tego, że Proxmox posiada niezłe standardowe narzędzia do tworzenia kopii zapasowych maszyn wirtualnych. Pozwala łatwo zachować wszystkie dane maszyny wirtualnej i obsługuje dwa mechanizmy kompresji, a także trzy metody tworzenia tych kopii.

Rozpatrzmy najpierw mechanizmy kompresji:

1. Kompresja LZO. Bezstratny algorytm kompresji danych, wymyślony jeszcze w połowie lat 90. Kod został napisany przez Markusa Oberhumera (w Proxmox realizowana za pomocą narzędzia lzop). Główną cechą tego algorytmu jest bardzo szybkie rozpakowywanie. Dlatego każda kopia zapasowa utworzona za pomocą tego algorytmu może w razie potrzeby zostać przywrócona w minimalnym czasie.

2. Kompresja GZIP. Przy użyciu tego algorytmu kopia zapasowa jest kompresowana «w locie» narzędziem GNU Zip, które wykorzystuje potężny algorytm Deflate, stworzony przez Phila Katza. Główny nacisk kładzie się na maksymalną kompresję danych, co pozwala zmniejszyć miejsce na dysku zajmowane przez kopie zapasowe. Główną różnicą w stosunku do LZO jest to, że procedury kompresji/dekompresji zajmują sporo czasu.

Tryby archiwizacji

Proxmox oferuje administratorowi systemu do wyboru trzy metody tworzenia kopii zapasowych. Dzięki nim można rozwiązać potrzebne zadanie, określając priorytet między koniecznością przestoju a niezawodnością wykonanej kopii zapasowej:

1. Tryb Snapshot (Migawka). Ten tryb można nazwać Live backup, ponieważ do jego użycia nie trzeba zatrzymywać pracy maszyny wirtualnej. Zastosowanie tego mechanizmu nie przerywa pracy VM, ale ma dwie bardzo poważne wady - mogą wystąpić problemy z powodu blokowania plików przez system operacyjny oraz najniższa szybkość tworzenia. Kopie zapasowe utworzone tą metodą zawsze trzeba sprawdzać w środowisku testowym. W przeciwnym razie istnieje ryzyko, że w razie potrzeby awaryjnego przywrócenia mogą zawieść.

2. Tryb Suspend (Wstrzymanie). Maszyna wirtualna tymczasowo zamraża swój stan do zakończenia procesu tworzenia kopii zapasowej. Zawartość pamięci operacyjnej nie jest usuwana, co pozwala kontynuować pracę dokładnie od miejsca, w którym została przerwana. Oczywiście powoduje to przestój serwera na czas kopiowania informacji, ale nie ma potrzeby wyłączania/włączania maszyny wirtualnej, co jest dość istotne dla niektórych usług, zwłaszcza jeśli uruchomienie części usług nie jest automatyczne. Jednak takie kopie zapasowe również należy wdrażać w środowisku testowym w celu weryfikacji.

3. Tryb Stop (Zatrzymanie). Najbardziej niezawodny sposób tworzenia kopii zapasowej, ale wymaga pełnego wyłączenia maszyny wirtualnej. Wysyłane jest polecenie standardowego wyłączenia, po zatrzymaniu wykonywana jest kopia zapasowa, a następnie wydawane jest polecenie włączenia maszyny wirtualnej. Liczba błędów przy takim podejściu jest minimalna i najczęściej wynosi zero. Kopie zapasowe utworzone w ten sposób niemal zawsze wdrażają się poprawnie.

Wykonanie procedury tworzenia kopii zapasowej

Aby utworzyć kopię zapasową:

1. Przechodzimy do potrzebnej maszyny wirtualnej.

2. Wybieramy pozycję Kopie zapasowe.

3. Klikamy przycisk Utwórz kopię teraz. Otworzy się okno, w którym będzie można wybrać parametry przyszłej kopii zapasowej. Parametry kopii zapasowej

4. Jako magazyn wskazujemy ten, który podłączyliśmy w poprzedniej części.

5. Po wybraniu parametrów klikamy przycisk Kopie zapasowe i czekamy, aż kopia zapasowa zostanie utworzona. Poinformuje o tym napis TASK OK.

Teraz utworzone archiwa z kopiami zapasowymi maszyn wirtualnych będą dostępne do pobrania z serwera. Najprostszym i najbardziej podstawowym sposobem kopiowania jest SFTP. W tym celu skorzystaj z popularnego wieloplatformowego klienta FTP FileZilla, który potrafi pracować z protokołem SFTP.

1. W polu Host wpisujemy adres IP naszego serwera wirtualizacji, w polu Nazwa użytkownika wpisujemy root, w polu Hasło - to hasło wybrane podczas instalacji, a w polu Port wpisujemy "22" (lub dowolny inny port, który został ustawiony dla połączeń SSH).

2. Klikamy przycisk Szybkie połączenie i jeśli wszystkie dane zostały wprowadzone poprawnie, w aktywnym panelu zobaczysz wszystkie pliki znajdujące się na serwerze.

3. Przechodzimy do katalogu /mnt/storage. Wszystkie tworzone kopie zapasowe będą znajdować się w podkatalogu «dump». Będą miały postać:

vzdump-qemu-numer_maszyny-data-czas.vma.gz w przypadku wyboru metody kompresji GZIP;

vzdump-qemu-numer_maszyny-data-czas.vma.lzo w przypadku użycia metody LZO.

Kopie zapasowe zaleca się od razu pobierać z serwera i przechowywać w bezpiecznym miejscu, na przykład w naszym magazynie w chmurze. Jeśli rozpakować plik za pomocą vma, narzędzia o tej samej nazwie dołączonego do Proxmox, wewnątrz znajdą się pliki o rozszerzeniach raw, conf i fw. Pliki te zawierają:

raw - obraz dysku;

conf - konfigurację VM;

fw — ustawienia zapory sieciowej.

Przywracanie z kopii zapasowej

Rozważmy sytuację, gdy maszyna wirtualna została przypadkowo usunięta i konieczne jest jej awaryjne przywrócenie z kopii zapasowej:

1. Otwieramy magazyn, w którym znajduje się kopia zapasowa.

2. Przechodzimy do zakładki Zawartość.

3. Wybieramy potrzebną kopię i klikamy przycisk Przywracanie.

Przywracanie

Przywracanie

4. Wskazujemy docelowy magazyn oraz ID, które zostanie nadane maszynie po zakończeniu procesu.

5. Klikamy przycisk Przywracanie.

Gdy tylko przywracanie się zakończy, VM pojawi się na liście dostępnych.

Klonowanie maszyny wirtualnej

Załóżmy na przykład, że w firmie trzeba wprowadzić zmiany w jakiejś krytycznej usłudze. Taka zmiana realizowana jest poprzez wprowadzenie wielu poprawek do plików konfiguracyjnych. Wynik przy tym jest nieprzewidywalny, a każdy błąd może spowodować awarię usługi. Aby taki eksperyment nie dotknął działającego serwera, zaleca się wykonanie klonowania maszyny wirtualnej.

Mechanizm klonowania utworzy dokładną kopię serwera wirtualnego, na której można wprowadzać dowolne zmiany, nie dotykając przy tym pracy głównej usługi. Następnie, jeśli zmiany zostaną pomyślnie zastosowane, nowa VM zostaje uruchomiona do pracy, a stara wyłączona. W tym procesie jest pewna cecha, o której zawsze należy pamiętać. Na sklonowanej maszynie adres IP będzie taki sam, jak u pierwotnej VM, czyli przy jej uruchomieniu wystąpi konflikt adresów.

Opowiemy, jak uniknąć takiej sytuacji. Bezpośrednio przed wykonaniem klonowania należy wprowadzić zmiany w konfiguracji sieci. W tym celu trzeba tymczasowo zmienić adres IP, ale nie restartować usługi sieciowej. Po wykonaniu klonowania na maszynie głównej należy przywrócić poprzednie ustawienia, a na maszynie sklonowanej ustawić dowolny inny adres IP. Dzięki temu otrzymamy dwie kopie jednego serwera pod różnymi adresami. Pozwoli to szybko wprowadzić nową usługę do pracy.

Jeśli tą usługą jest serwer WWW, wystarczy zmienić rekord A u swojego dostawcy DNS, po czym żądania klientów dla tej domeny będą kierowane już na adres sklonowanej maszyny wirtualnej.

Nawiasem mówiąc, Selectel udostępnia wszystkim swoim klientom usługę hostowania dowolnej liczby domen na serwerach NS bezpłatnie. Zarządzanie rekordami odbywa się zarówno za pomocą naszego panelu zarządzania, jak i za pomocą specjalnego API. Więcej na ten temat przeczytasz w naszej bazie wiedzy.

Klonowanie VM w Proxmox jest bardzo prostym zadaniem. Aby je wykonać, należy wykonać następujące czynności:

1. Przejść do potrzebnej maszyny.

2. Wybrać z menu More pozycję Clone.

3. W oknie wypełnić parametr Nazwa.

4. Wykonać klonowanie klikając przycisk Clone.

To narzędzie pozwala wykonać kopię maszyny wirtualnej nie tylko na lokalnym serwerze. Jeśli kilka serwerów wirtualizacji połączyć w klaster, za pomocą tego narzędzia można od razu przenieść utworzoną kopię na potrzebny serwer fizyczny. Przydatną funkcją jest wybór magazynu dyskowego (parametr Target Storage)), co jest bardzo wygodne przy przenoszeniu maszyny wirtualnej z jednego nośnika fizycznego na inny.

Formaty wirtualnych nośników

Opowiemy szczegółowiej o formatach nośników używanych w Proxmox:

1. RAW. Najbardziej zrozumiały i najprostszy format. Jest to plik z danymi dysku twardego "bajt w bajt" bez kompresji czy optymalizacji. Jest to bardzo wygodny format, ponieważ łatwo go zamontować standardowym poleceniem mount w dowolnym systemie linuksowym. Co więcej, jest to najszybszy "typ" nośnika, ponieważ hiperwizor nie musi go w żaden sposób przetwarzać.

Poważną wadą tego formatu jest to, że ile miejsca przydzielisz dla maszyny wirtualnej, tyle dokładnie miejsca na dysku twardym będzie zajmował plik w formacie RAW (niezależnie od faktycznie zajętego miejsca wewnątrz maszyny wirtualnej).

2. QEMU image format (qcow2). Prawdopodobnie najbardziej uniwersalny format do wykonywania dowolnych zadań. Jego zaletą jest to, że plik z danymi będzie zawierał tylko faktycznie zajęte miejsce wewnątrz maszyny wirtualnej. Na przykład, jeśli przydzielono 40 GB miejsca, a faktycznie zajęto tylko 2 GB, cała reszta miejsca będzie dostępna dla innych VM. Jest to bardzo istotne w warunkach oszczędzania przestrzeni dyskowej.

Niewielkim minusem pracy z tym formatem jest to, że aby zamontować taki obraz w dowolnym innym systemie, trzeba najpierw załadować specjalny sterownik nbd, a także użyć qemu-nbd narzędzia, które pozwoli systemowi operacyjnemu odwoływać się do pliku jak do zwykłego urządzenia blokowego. Po tym obraz stanie się dostępny do montowania, podziału na partycje, sprawdzania systemu plików i innych operacji.

Należy pamiętać, że wszystkie operacje wejścia-wyjścia przy użyciu tego formatu są przetwarzane programowo, co powoduje spowolnienie aktywnej pracy z podsystemem dyskowym. Jeśli zadaniem jest wdrożenie na serwerze bazy danych, lepiej wybrać format RAW.

3. VMware image format (vmdk). Ten format jest "natywny" dla hiperwizora VMware vSphere i został dołączony do Proxmox dla kompatybilności. Pozwala wykonać migrację maszyny wirtualnej VMware do infrastruktury Proxmox.

Stałe używanie vmdk nie jest zalecane, ten format jest najwolniejszy w Proxmox, dlatego nadaje się jedynie do wykonania migracji, nic więcej. Prawdopodobnie w najbliższej przyszłości ta wada zostanie usunięta.

Praca z obrazami dysków

W zestawie z Proxmox znajduje się bardzo wygodne narzędzie o nazwie qemu-img. Jedną z jego funkcji jest konwertowanie obrazów dysków wirtualnych. Aby z niego skorzystać, wystarczy otworzyć konsolę hiperwizora i wykonać polecenie w formacie:

qemu-img convert -f vmdk test.vmdk -O qcow2 test.qcow2

W podanym przykładzie obraz vmdk wirtualnego nośnika VMware o nazwie test zostanie przekonwertowany do formatu qcow2. To bardzo przydatne polecenie, gdy trzeba naprawić błąd popełniony przy wstępnym wyborze formatu.

Dzięki temu poleceniu można wymuszenie utworzyć potrzebny obraz, używając argumentu create:

qemu-img create -f raw test.raw 40G

Takie polecenie utworzy obraz test w formacie RAW o rozmiarze 40 GB. Teraz nadaje się on do podłączenia do dowolnej maszyny wirtualnej.

Zmiana rozmiaru dysku wirtualnego

I na koniec pokażemy, jak zwiększyć rozmiar obrazu dysku, jeśli z jakichś powodów miejsca na nim przestało wystarczać. W tym celu skorzystamy z argumentu resize:

qemu-img resize -f raw test.raw 80G

Teraz nasz obraz ma rozmiar 80 GB. Szczegółowe informacje o obrazie można zobaczyć za pomocą argumentu info:

qemu-img info test.raw

Nie należy zapominać, że samo powiększenie obrazu nie zwiększy automatycznie rozmiaru partycji - po prostu doda dostępną wolną przestrzeń. Aby powiększyć partycję, skorzystaj z polecenia:

resize2fs /dev/sda1

gdzie /dev/sda1 – potrzebna partycja.

Automatyzacja tworzenia kopii zapasowych

Ręczne tworzenie kopii zapasowych to zadanie bardzo pracochłonne i czasochłonne. Dlatego Proxmox VE zawiera narzędzie do automatycznego tworzenia kopii zapasowych według harmonogramu. Zobaczmy, jak to zrobić:

1. Korzystając z interfejsu WWW hiperwizora, otwieramy pozycję Centrum danych.

2. Wybieramy pozycję Kopie zapasowe.

3. Klikamy przycisk Dodaj.

4. Ustawiamy parametry dla harmonogramu.

5. Zaznaczamy pole wyboru przy pozycji Włącz.

6. Zapisujemy zmiany za pomocą przycisku Utwórz.

Teraz harmonogram będzie automatycznie uruchamiał program tworzenia kopii zapasowych o wskazanej godzinie, zgodnie z ustalonym harmonogramem.

Podsumowanie

Omówiliśmy standardowe sposoby tworzenia kopii zapasowych i przywracania maszyn wirtualnych. Ich stosowanie pozwala bez większych problemów zachować wszystkie dane i awaryjnie je przywrócić w razie nietypowej sytuacji.

Oczywiście nie jest to jedyny możliwy sposób przechowywania ważnych danych. Istnieje wiele narzędzi, na przykład Duplicity, za pomocą których można tworzyć pełne i przyrostowe kopie zawartości serwerów wirtualnych opartych na Linuksie.

Podczas wykonywania procedur tworzenia kopii zapasowych zawsze należy pamiętać, że intensywnie obciążają one podsystem dyskowy. W związku z tym zaleca się wykonywanie tych procedur w momentach minimalnego obciążenia, aby uniknąć opóźnień podczas operacji wejścia-wyjścia wewnątrz maszyn. Status opóźnień operacji dyskowych można śledzić bezpośrednio z interfejsu WWW hiperwizora (parametr IO delay).

Jeśli mają Państwo pytania, chętnie odpowiemy na nie na czacie online lub w naszych komunikatorach!

Ta strona została przetłumaczona częściowo lub w całości przy użyciu SI. Uwagi dotyczące tłumaczenia prosimy przesyłać na adres info@clapkey.com.

#StandWithUkraine

Wesprzyj Siły Zbrojne Ukrainy podczas rosyjskiej inwazji

Kontakt

Biuro

4 piętro. CH Metropoliten (ul. Gogola 38), Połtawa, Ukraina, 36000