O kopiach zapasowych w Proxmox VE

O kopiach zapasowych w Proxmox VE
W artykule „Magia wirtualizacji: wprowadzenie do Proxmox VE” skutecznie zainstalowaliśmy hipernadzorcę na serwerze, podłączyliśmy magazyn, zadbaliśmy o podstawowe zabezpieczenia i nawet stworzyliśmy pierwszą maszynę wirtualną. Teraz omówimy, jak zrealizować najważniejsze zadania, które trzeba wykonać, aby zawsze mieć możliwość przywrócenia działania usług w przypadku awarii.

Narzędzia Proxmox pozwalają nie tylko na wykonywanie kopii zapasowych danych, ale także na tworzenie zestawów wstępnie skonfigurowanych obrazów systemów operacyjnych do szybkiego uruchamiania. To nie tylko pomaga w stworzeniu nowego serwera dla dowolnej usługi w zaledwie kilka sekund, ale również minimalizuje czas przestoju do minimum.

Nie będziemy opowiadać o potrzebie tworzenia kopii zapasowych, ponieważ jest to oczywiste i od dawna uznawane za aksjomat. Skupimy się na kilku nieoczywistych kwestiach i szczegółach.

Najpierw omówimy, w jaki sposób dane są zapisywane podczas procedury tworzenia kopii zapasowej.

Algorytmy tworzenia kopii zapasowych

Zacznijmy od tego, że Proxmox posiada dobre narzędzia do tworzenia kopii zapasowych maszyn wirtualnych. Umożliwia to łatwe zapisanie wszystkich danych maszyny wirtualnej i obsługuje dwa mechanizmy kompresji oraz trzy metody tworzenia tych kopii.

Rozważmy najpierw mechanizmy kompresji:

  1. Kompresja LZO. Algorytm kompresji danych bez utraty jakości, wymyślony jeszcze w połowie lat 90. Kod został napisany Markusem Oberheimerem (realizowane w Proxmox za pomocą narzędzia lzop). Główną cechą tego algorytmu jest bardzo szybkie dekompresowanie. W związku z tym każda kopia zapasowa stworzona za pomocą tego algorytmu może być w razie potrzeby przywrócona w minimalnym czasie.
  2. Kompresja GZIP. Przy użyciu tego algorytmu kopia zapasowa będzie „w locie” kompresowana przez narzędzie GNU Zip, które wykorzystuje potężny algorytm Deflate, stworzony przez Phila Katze. Główny nacisk kładziony jest na maksymalną kompresję danych, co pozwala zaoszczędzić miejsce na dysku zajmowane przez kopie zapasowe. Główną różnicą w porównaniu do LZO jest to, że procedury kompresji/dekompresji zajmują stosunkowo dużo czasu.

Tryby archiwizacji

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

  1. Tryb Snapshot (Zrzut). Tryb ten można również nazwać Live backup, ponieważ jego użycie nie wymaga zatrzymania pracy wirtualnej maszyny. Użycie tego mechanizmu nie przerywa pracy VM, ale ma dwie bardzo poważne wady — mogą występować problemy z powodu zablokowania plików przez system operacyjny oraz najniższa prędkość tworzenia. Kopie zapasowe utworzone tym metodą zawsze należy sprawdzać w środowisku testowym. W przeciwnym razie istnieje ryzyko, że podczas nagłej potrzeby przywrócenia, mogą zawieść.
  2. Tryb Suspend (Wstrzymanie). Wirtualna maszyna tymczasowo "zamraża" swoje ścisłości, aż do zakończenia procesu tworzenia kopii zapasowej. Zawartość pamięci RAM nie jest usuwana, co pozwala na kontynuację pracy dokładnie w punkcie, w którym była wstrzymana. Oczywiście powoduje to przestój serwera na czas kopiowania informacji, ale nie ma potrzeby wyłączania/włączania wirtualnej maszyny, co jest dość krytyczne dla niektórych usług. Szczególnie jeśli uruchomienie części usług nie jest automatyczne. Niemniej jednak takie kopie zapasowe również należy rozwijać w środowisku testowym w celu weryfikacji.
  3. Tryb Stop (Zatrzymanie). Najbardziej niezawodny sposób tworzenia kopii zapasowej, ale wymagający pełnego wyłączenia wirtualnej maszyny. Wysyłane jest polecenie do normalnego wyłączenia, po zatrzymaniu wykonywana jest kopia zapasowa, a następnie wydawane jest polecenie włączenia wirtualnej maszyny. Liczba błędów w takim podejściu jest minimalna i zwykle sprowadza się do zera. Kopie zapasowe utworzone w ten sposób zazwyczaj rozwijają się prawidłowo.

Wykonywanie procedury tworzenia kopii zapasowej

Aby utworzyć kopię zapasową:

  1. Przechodzimy do odpowiedniej wirtualnej maszyny.
  2. Wybieramy opcję Rezerwa.
  3. Klikamy przycisk Zrób kopię teraz. Otworzy się okno, w którym będzie można wybrać parametry przyszłej kopii zapasowej.

    O kopiach zapasowych w Proxmox VE

  4. Jako magazyn wskazujemy ten, który podłączaliśmy w poprzedniej części.
  5. Po wybraniu parametrów klikamy przycisk Rezerwa i czekamy, aż kopia zapasowa zostanie utworzona. O tym poinformuje napis TASK OK.

    O kopiach zapasowych w Proxmox VE

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 obsługuje protokół SFTP.

  1. W polu Host wprowadzamy adres IP naszego serwera wirtualizacji, w polu Nazwa użytkownika wprowadzamy root, w polu Hasło – to, które zostało wybrane podczas instalacji, a w polu Port wskazujemy „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 prawidłowo, na aktywnej panelu zobaczysz wszystkie pliki znajdujące się na serwerze.
  3. Przechodzimy do katalogu /mnt/storage. Wszystkie tworzone kopie zapasowe będą leżały w podkatalogu „dump”. Będą miały postać:
    • vzdump-qemu-numer_maszyny-data-czas.vma.gz w przypadku wyboru metody GZIP;
    • vzdump-qemu-numer_maszyny-data-czas.vma.lzo w przypadku wyboru metody LZO.

Zaleca się natychmiastowe pobranie kopii zapasowych z serwera i przechowywanie ich w bezpiecznym miejscu, na przykład w naszej chmurze. Jeśli rozpakujesz plik o rozszerzeniu vma przy użyciu narzędzia dostarczonego z Proxmox, wewnątrz będą pliki o rozszerzeniach raw, conf i fw. W tych plikach znajdują się następujące informacje:

  • raw – obraz dysku;
  • conf – konfiguracja VM;
  • fw – ustawienia firewalla.

Przywracanie z kopii zapasowej

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

  1. Otwieramy magazyn, w którym znajduje się kopia zapasowa.
  2. Przechodzimy na zakładkę Zawartość.
  3. Wybieramy odpowiednią kopię i klikamy przycisk Przywracanie.

    O kopiach zapasowych w Proxmox VE

  4. Wskazujemy docelowe magazyn i ID, które zostanie przypisane maszynie po zakończeniu procesu.
  5. Klikamy przycisk Przywracanie.

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

Klonowanie maszyny wirtualnej

Na przykład, załóżmy, że w firmie konieczne jest wprowadzenie zmian w jakimś krytycznym serwisie. Taka zmiana realizowana jest poprzez wprowadzenie wielu poprawek w plikach konfiguracyjnych. Wynik jest w tym przypadku nieprzewidywalny, a każdy błąd może spowodować awarię serwisu. Aby taki eksperyment nie wpłynął na działający serwer, zaleca się wykonanie klonowania maszyny wirtualnej.

Mechanizm klonowania utworzy dokładną kopię serwera wirtualnego, z którą można przeprowadzać wszelkie zmiany, nie wpływając na działanie głównego serwisu. Następnie, jeśli zmiany zostaną pomyślnie zastosowane, nowa VM jest uruchamiana, a stara wyłączana. W tym procesie jest jedna szczególność, o której zawsze należy pamiętać. Na sklonowanej maszynie adres IP będzie dokładnie taki sam, jak na oryginalnej VM, co oznacza, że przy jej uruchomieniu dojdzie do konfliktu adresów.

Powiedzmy, jak uniknąć takiej sytuacji. Bezpośrednio przed wykonaniem klonowania, należy wprowadzić zmiany w konfiguracji sieci. W tym celu konieczne jest tymczasowe zmienienie adresu IP, ale nie należy restartować usługi sieciowej. Po wykonaniu klonowania na głównym urządzeniu należy przywrócić ustawienia, a na sklonowanej maszynie ustawić jakikolwiek inny adres IP. W ten sposób uzyskamy dwie kopie tego samego serwera pod różnymi adresami. Pozwoli to szybko uruchomić nowy serwis.

Jeśli tym serwisem jest serwer webowy, wystarczy jedynie zmienić wpis A u swojego dostawcy DNS, po czym zapytania klientów pod tym nazwą domeny będą kierowane już na adres sklonowanej maszyny wirtualnej.

A propos, Selectel oferuje wszystkim swoim klientom usługę hostowania dowolnej ilości domen na serwerach NS za darmo. Zarządzanie wpisami odbywa się zarówno za pomocą naszego panelu zarządzania, jak i za pomocą specjalnego API. Więcej na ten temat przeczytaj w naszej bazie wiedzy.

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

  1. Przejdź do potrzebnej nam maszyny.
  2. Wybierz z menu Więcej punkt Klonuj.
  3. W otwartym oknie uzupełnij parametr Nazwa.

    O kopiach zapasowych w Proxmox VE

  4. Wykonaj klonowanie naciskając przycisk Klonuj.

To narzędzie umożliwia stworzenie kopii maszyny wirtualnej nie tylko na lokalnym serwerze. Jeśli kilka serwerów wirtualizacyjnych zostanie połączonych w klaster, za pomocą tego narzędzia można od razu przenieść stworzoną kopię na odpowiedni fizyczny serwer. Przydatną funkcją jest wybór miejsca przechowywania danych (parametr Target Storage), co jest bardzo wygodne przy przenoszeniu maszyny wirtualnej z jednego fizycznego nośnika na inny.

Formaty wirtualnych nośników

Przybliżymy używane w Proxmox formaty nośników:

  1. RAW. Najbardziej zrozumiały i prosty format. To plik z danymi dysku twardego „bajt po bajcie” bez kompresji czy optymalizacji. Jest to bardzo wygodny format, ponieważ można go łatwo zamontować standardową komendą mount w każdej systemie linuxowym. Co więcej, to najszybszy „typ” nośnika, ponieważ hipernadzorca nie musi go w żaden sposób przetwarzać.

    Poważnym wadą tego formatu jest to, że ile miejsca przydzielisz dla maszyny wirtualnej, tyle miejsca na dysku twardym zajmie plik w formacie RAW (niezależnie od rzeczywiście zajmowanej przestrzeni wewnątrz maszyny wirtualnej).

  2. Format obrazu QEMU (qcow2). To chyba najbardziej uniwersalny format do wykonywania wszelkich zadań. Jego zaletą jest to, że plik z danymi będzie zawierał tylko rzeczywiście zajęte miejsce wewnątrz maszyny wirtualnej. Na przykład, jeśli przydzielono 40 GB miejsca, a rzeczywiście zajęto tylko 2 GB, to pozostałe miejsce będzie dostępne dla innych VM. Jest to szczególnie ważne w kontekście oszczędności miejsca na dysku.

    Niewielką wadą pracy z tym formatem jest to, że aby zamontować taki obraz w innym systemie, należy najpierw załadować specjalny sterownik nbd, a także użyć narzędzia qemu-nbd, które pozwala systemowi operacyjnemu uzyskać dostęp do pliku jak do zwykłego urządzenia blokowego. Po tym obraz stanie się dostępny do montowania, partycjonowania, przeprowadzania kontroli 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 prowadzi do spowolnienia podczas intensywnej pracy z podsystemem dyskowym. Jeśli celem jest uruchomienie bazy danych na serwerze, lepiej wybrać format RAW.

  3. Format obrazu VMware (vmdk). Ten format jest „rodzimy” dla hypervisora VMware vSphere i został włączony w Proxmox w celu zapewnienia zgodności. Umożliwia migrację maszyny wirtualnej VMware do infrastruktury Proxmox.

    Używanie vmdk jako stałego formatu nie jest zalecane, ten format jest najwolniejszy w Proxmox, dlatego nadaje się tylko do migracji, nic więcej. Prawdopodobnie w niedalekiej przyszłości ta niedogodność 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 konwersja obrazów wirtualnych dysków. Aby z niego skorzystać, wystarczy otworzyć konsolę hypervisora 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 przekształcony do formatu qcow2. To bardzo przydatne polecenie, gdy trzeba naprawić błąd wynikający z początkowego wyboru formatu.

Dzięki temu poleceniu można również wymusić utworzenie potrzebnego obrazu, używając argumentu create:

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

To polecenie utworzy obraz test w formacie RAW, o rozmiarze 40 GB. Teraz nadaje się do podłączenia do którejkolwiek z maszyn wirtualnych.

Zmiana rozmiaru wirtualnego dysku

I na koniec pokażemy, jak zwiększyć rozmiar obrazu dysku, jeśli z jakiegoś powodu zabrakło na nim miejsca. 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 zapominaj, że samo rozszerzenie obrazu nie zwiększy automatycznie rozmiaru partycji — po prostu doda dostępne wolne miejsce. Aby zwiększyć partycję, użyj polecenia:

resize2fs /dev/sda1

gdzie /dev/sda1 — potrzebna partycja.

Automatyzacja tworzenia kopii zapasowych

Używanie ręcznej metody tworzenia kopii zapasowych to zadanie bardzo czasochłonne i wymagające dużego nakładu pracy. Dlatego Proxmox VE zawiera narzędzie do automatycznego tworzenia kopii zapasowych według harmonogramu. Zobaczmy, jak to zrobić:

  1. Używając interfejsu webowego hypervisora, otwieramy punkt Centrum danych.
  2. Wybieramy opcję Rezerwa.
  3. Klikamy przycisk Dodaj.
  4. Ustalamy parametry dla harmonogramu.

    O kopiach zapasowych w Proxmox VE

  5. Zaznaczamy pole Włącz.
  6. Zapisujemy zmiany, używając przycisku Utwórz.

Teraz zlecenie będzie automatycznie uruchamiać program tworzenia kopii zapasowych dokładnie o wyznaczonej godzinie, zgodnie z określonym harmonogramem.

Podsumowanie

Rozważaliśmy standardowe metody tworzenia kopii zapasowych i przywracania maszyn wirtualnych. Ich użycie pozwala na bezproblemowe przechowywanie wszystkich danych i szybkie ich przywracanie w przypadku sytuacji awaryjnych.

Oczywiście, to nie jedyny sposób na zachowanie ważnych danych. Istnieje wiele narzędzi, takich jak Duplicity, dzięki którym można tworzyć pełne i inkrementalne kopie zawartości serwerów wirtualnych działających na systemie Linux.

Podczas wykonywania procedur tworzenia kopii zapasowych zawsze należy pamiętać, że obciążają one aktywnie system dyskowy. W związku z tym zaleca się wykonanie tych procedur w momentach minimalnego obciążenia, aby uniknąć opóźnień podczas operacji wejścia-wyjścia w maszynach. Status opóźnień operacji dyskowych można monitorować bezpośrednio z interfejsu webowego hyperwizora (parametr IO delay).

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster