Wykonywanie kopii zapasowej konfiguracji hosta ESXi: 4 różne metody

Wirtualizacja oferuje szereg korzyści w zakresie wykonywania kopii zapasowych i odzyskiwania danych, które stanowią podstawę ochrony danych, ciągłości działania i dostępności. Co najważniejsze, wirtualizacja umożliwia wykonywanie kopii zapasowych na poziomie hosta bez użycia agentów oraz w oparciu o obrazy. Tego typu kopie zapasowe pozwalają na przechwycenie całej maszyny wirtualnej, w tym zarówno jej konfiguracji, jak i danych.

Jednak ważne jest również zabezpieczenie hostów, ponieważ sprawne hosty ESXi są niezbędne do prawidłowego działania maszyn wirtualnych. Zaleca się również wykonać kopię zapasową konfiguracji ESXi, ponieważ użyteczna kopia zapasowa hosta pozwala przywrócić konfigurację hosta w ciągu kilku minut bez konieczności konfigurowania serwera ESXi od podstaw. Czytaj dalej, aby poznać różne metody wykonywania kopii zapasowej hostów ESXi.

Istnieją cztery główne metody wykonywania kopii zapasowej konfiguracji ESXi:

  • Korzystanie z wiersza poleceń VMware ESXi
  • Korzystanie z VMware vSphere CLI
  • Korzystanie z Microsoft PowerCLI
  • Ręczne wykonywanie kopii zapasowej i odzyskiwanie

Znajomość wielu metod zapewnia większą elastyczność w wykonywaniu operacji wykonywania kopii zapasowej i odzyskiwania konfiguracji ESXi w różnych sytuacjach.

NAKIVO do tworzenia kopii zapasowej VMware vSphere

NAKIVO do tworzenia kopii zapasowej VMware vSphere

Kompleksowa ochrona danych dla maszyn wirtualnych VMware vSphere oraz opcje natychmiastowego odzyskiwania. Bezpieczne lokalizacje kopii zapasowych na miejscu, zdalnie oraz w chmurze. Funkcje ochrony przed oprogramowaniem wymuszającym okup.

Metoda 1: Wykonywanie kopii zapasowej hostów ESXi za pomocą wiersza poleceń ESXi

Korzystanie z wiersza poleceń ESXi to najtańszy sposób na wykonanie kopii zapasowej konfiguracji hosta ESXi. Aby korzystać z wiersza poleceń ESXi, nie trzeba instalować żadnego dodatkowego oprogramowania. Wystarczy Włącz powłokę ESXi i zdalny dostęp SSH do hosta ESXi. Po nawiązaniu połączenia z hostem ESXi przez SSH można uruchomić odpowiednie polecenia.

Konfiguracja ESXi jest automatycznie zapisywana co godzinę w pliku /bootblank/state.tgz . Z tego powodu należy upewnić się, że aktualna konfiguracja ESXi została zapisana w plikach konfiguracyjnych ESXi w tej chwili, aby mieć pewność, że wszystkie zmiany wprowadzone w konfiguracji ESXi od ostatniego automatycznego zapisu zostały zapisane. Aby to zrobić:

  1. Sprawdź i zsynchronizuj konfigurację ESXi z pamięcią trwałej:

    vim-cmd hostsvc/firmware/sync_config

  2. Wykonaj kopię zapasową konfiguracji ESXi po zakończeniu synchronizacji:

    vim-cmd hostsvc/firmware/backup_config

    How to back up ESXi host configuration in ESXi command line

    W rezultacie otrzymasz link do pobrania configBundle . tgz archiwum z hosta ESXi.

    http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz

  3. Zastąp gwiazdkę (*) adresem IP swojego hosta ESXi. Plik archiwum zawierający kopię zapasową konfiguracji ESXi jest zapisywany w katalogu /scratch/downloads na krótki czas (kilka minut).

    The ESXi configuration backup bundle is available for downloading

    Adres IP hosta ESXi można znaleźć w interfejsie konsoli bezpośredniej ESXi lub w wierszu poleceń za pomocą polecenia:

    esxcli network ip interface ipv4 get

    Adres IP hosta ESXi użytego w bieżącym przykładzie to 192.168.101.208

  4. Pobierz archiwum kopii zapasowej ESXi jak najszybciej i przechowuj je w bezpiecznym miejscu.

Jak zautomatyzować tworzenie kopii zapasowej konfiguracji ESXi w wierszu poleceń ESXi

Zaletą interfejsu wiersza poleceń jest możliwość automatyzacji, a wykonanie kopii zapasowej konfiguracji ESXi nie jest tu wyjątkiem. Przejdźmy przez kolejne kroki:

  1. Utwórz katalog do przechowywania plików kopii zapasowych w magazynie danych ESXi:

    mkdir /vmfs/volumes/datastore1/ESXi_backup

  2. Utwórz skrypt do wykonania kopii zapasowej konfiguracji ESXi:

    vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  3. Dodaj następujące linie do skryptu:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

    find /scratch/downloads/ -name *.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +'%Y%m%d_%H%M%S').tgz ;

    Creating a simple backup script to back up ESXi host configuration

  4. Zapisz plik i zamknij vi :

    :wq

    NOTE: Dla większej wygody możesz również dołączyć nazwę hosta ESXi lub adres IP do nazwy pliku kopii zapasowej. Pomoże to uniknąć nieporozumień w przypadku wielu hostów ESXi.

  5. Nadaj skryptowi uprawnienia do wykonywania:

    chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  6. Przejdź do katalogu, w którym znajduje się skrypt:

    cd /vmfs/volumes/datastore1/ESXi_backup/

  7. Uruchom skrypt:

    ./esxi_backup.sh

  8. Sprawdź, czy plik kopii zapasowej został utworzony:

    ls -al

    An ESXi configuration backup file is created

  9. Upewnij się, że skrypt tworzenia kopii zapasowej konfiguracji ESXi działa zgodnie z harmonogramem (automatycznie). W tym celu edytuj konfigurację harmonogramu:

    vi /var/spool/cron/crontabs/root

  10. Dodaj następujący ciąg znaków, aby wykonywać kopię zapasową konfiguracji ESXi codziennie o godz. 02:10:

    10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  11. Zapisz zmiany w pliku. Aby zapisać zmiany w pliku tylko do odczytu, wpisz:

    :wq!

    Alternatywnie możesz zmienić uprawnienia pliku przed jego edycją:

    chmod +w /var/spool/cron/crontabs/root

    Scheduling the ESXi configuration backup process

Po skonfigurowaniu wykona się automatycznie codziennie o godz. 02:10 kopię zapasową konfiguracji ESXi w pliku o nazwie: ESXi_config_bakup_date_time.tgz

Jak przywrócić konfigurację ESXi w wierszu poleceń ESXi

Na komputerze, na którym chcesz przywrócić konfigurację ESXi, powinna być zainstalowana wersja ESXi o tym samym numerze wersji i kompilacji, co host ESXi, którego kopia zapasowa została wykonana. Zasada ta dotyczy wszystkich metod odzyskiwania konfiguracji ESXi omówionych w tym wpisie na blogu.

Jeśli zamierzasz przywrócić konfigurację ESXi na Host ESXi zainstalowany od podstaw (świeżo zainstalowanym), musisz ustawić adres IP interfejsu sieciowego używanego do sieci zarządzania ESXi oraz włączyć dostęp SSH.

UUID musi być taki sam zarówno na serwerze ESXi, którego kopia zapasowa została wykonana, jak i na serwerze ESXi, na którym konfiguracja zostanie przywrócona. Kroki, które należy wykonać, jeśli wartości UUID są różne, opisano w następnej sekcji.

Aby odzyskać konfigurację ESXi:

  1. Po przygotowaniu świeżo zainstalowanego hosta ESXi do przywrócenia konfiguracji ESXi z kopii zapasowej, połącz się z hostem ESXi przez SSH i przełącz host w tryb konserwacji (w tym trybie maszyny wirtualne są zatrzymane).

    esxcli system maintenanceMode set --enable yes

    lub

    vim-cmd hostsvc/maintenance_mode_enter

  2. Skopiuj archiwum zawierające kopię zapasową konfiguracji ESXi do katalogu na hoście ESXi za pomocą klienta SCP, na przykład WinSCP. Skopiujmy archiwum configBundle-xxxx.tgz z komputera lokalnego do katalogu /tmp/ na docelowym serwerze ESXi.

    Copying the ESXi configuration backup archive to the destination ESXi host

  3. Przed wprowadzeniem polecenia przywracającego konfigurację ESXi zmień nazwę pliku configBundle-xxxx.tgz na configBundle.tgz . W przeciwnym razie pojawi się komunikat o błędzie: „ Nie znaleziono pliku /tmp/configBundle.tgz ”.

    Możesz zmienić nazwę pliku w powłoce ESXi, z którą połączyłeś się przez SSH:

    mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz

  4. Przywróć konfigurację ESXi:

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

    Po uruchomieniu tego polecenia host ESXi zostanie automatycznie zrestartowany.

    How to restore ESXi configuration from a backup

  5. Po ponownym uruchomieniu serwera ESXi wyjdź z trybu konserwacji, po czym możesz korzystać z hosta jak zwykle.

    esxcli system maintenanceMode set --enable no

    lub

    vim-cmd hostsvc/maintenance_mode_exit

Jak zmienić identyfikator UUID, aby przywrócić konfigurację ESXi

Możesz skorzystać z jednego z dwóch sposobów sprawdzenia identyfikatora UUID serwera ESXi:

  1. W interfejsie wiersza poleceń ESXi:

    esxcfg-info -u

  2. W pliku Manifest.txt znajdującym się w archiwum kopii zapasowej configBundle.tgz utworzonym za pomocą poleceń opisanych powyżej.

    The ESXi UUID is stored in the Manifest.txt file inside the configBundle.tgz file

Nie można zmienić identyfikatora UUID serwera ESXi, ponieważ jest on generowany w zależności od sprzętu. Można jednak przywrócić konfigurację ESXi z hosta A na host B po zmianie identyfikatora UUID w pliku Manifest.txt przechowywanym w archiwum kopii zapasowej konfiguracji ESXi configBundle.tgz .

Przyjrzyjmy się teraz, jak zmienić identyfikator UUID w celu zastosowania kopii zapasowej konfiguracji na innym serwerze fizycznym. Server A to serwer, którego konfiguracja została wykonana kopię zapasową, a Server B to serwer, na którym zostanie zastosowana ta konfiguracja.

Etap 1

Sprawdź identyfikator UUID na hoście ESXi, na którym chcesz zastosować kopię zapasową konfiguracji (serwer B). Można to zrobić przynajmniej na dwa sposoby, ale druga metoda pozwala również sprawdzić wersję ESXi:

  1. Uruchom esxcfg-info -u
  2. Wykonaj kopię zapasową konfiguracji serwera ESXi B:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

  3. Skopiuj archiwum kopii zapasowej do katalogu tymczasowego i przejdź do tego katalogu:

    cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp

    cd /tmp/

  4. Wypakuj pliki z archiwum:

    tar zxvf configBundle.tgz

  5. Otwórz plik Manifest.txt za pomocą edytora vi i sprawdź wartość UUID (zobaczysz osobny wiersz z UUID). Zapisz UUID:

    vi Manifest.txt

    W naszym przypadku identyfikator UUID to 1E9E4D56-B724-DFBE-D19D-4C2D827E0188

  6. Możesz usunąć pliki tymczasowe z katalogu /tmp/ :

    rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz

Etap 2

  1. Skopiuj configBundle.tgz archiwum kopii zapasowej konfiguracji serwera ESXi A na serwer B, na przykład do katalogu / t mp/ i przejdź do tego katalogu.
  2. Rozpakuj pliki z configBundle.tgz archiwum:

    tar zxvf configBundle.tgz

  3. Otwórz Manifest.txt plik za pomocą vi i zaktualizuj wartość UUID serwera A na UUID serwera B:

    vi Manifest.txt

    W naszym przypadku zmieniamy 9EA94D56-7E39-96A8-AB45-DF31EF0971EC na 1E9E4D56-B724-DFBE-D19D-4C2D827E0188

    Zapisz plik i zamknij edytor tekstu:

    :wq

    Changing the UUID value in backup files of the ESXi host

  4. Zmień nazwę pliku źródłowego configBundle.tgz na configBundle1.tgz , na przykład (jeśli nazwa pliku kopii zapasowej konfiguracji ESXi różni się od configBundle.tgz , możesz pominąć ten krok):

    mv configBundle.tgz configBundle1.tgz

  5. Zarchiwizuj pliki Manifest.txt , state.tgz oraz jumpstrt.gz do nowego archiwum configBundle.tgz :

    tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz

  6. Przełącz host ESXi w tryb konserwacji i przywróć konfigurację:

    esxcli system maintenanceMode set --enable yes

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

Metoda 2: Jak wykonać kopię zapasową hosta ESXi za pomocą vSphere CLI

Innym interfejsem wiersza poleceń udostępnionym przez VMware do zarządzania hostami ESXi jest vSphere CLI (nie należy mylić z VMware PowerCLI). Aby zdalnie zarządzać hostami ESXi, należy zainstalować vSphere CLI na komputerze z systemem Linux lub Windows. Do zainstalowania vSphere CLI wymagany jest Perl .

Zaletą korzystania z vSphere CLI jest wygoda oraz możliwości, jakie oferuje bash w systemie Linux. Ta metoda jest szczególnie wygodna w przypadku ESXi 6.x. Jeśli korzystasz z ESXi 8, wybierz inne metody opisane w tym artykule.

Instalacja i konfiguracja vCLI

  1. Pobierz odpowiednią wersję vSphere CLI dla swojego systemu operacyjnego ze strony VMware. W tym przykładzie używamy Ubuntu Linux.
  2. Przejdź do katalogu, w którym znajduje się pobrany plik, i rozpakuj pliki z archiwum:

    tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz

  3. Zainstaluj wymagane pakiety:

    apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essential

    Oficjalne zalecenie firmy VMware dotyczy zainstalowania następującego zestawu pakietów:

    apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

  4. Przejdź do katalogu, w którym znajdują się rozpakowane pliki, i uruchom instalator:

    ./vmware-install.pl

  5. Zapoznaj się z umową licencyjną i zaakceptuj ją. Jeśli instalator poprosi o zainstalowanie niektórych modułów spełniających wymagania, wpisz y i zainstaluj moduły.

    Installing modules for vSphere CLI

  6. W naszym przypadku niektóre moduły należy zainstalować ręcznie. Można je zainstalować za pomocą interaktywnej powłoki języka Perl.

    Some modules must be installed manually

    Wejdź do interaktywnej powłoki Perla:

    perl -MCPAN -e shell

  7. Uruchom polecenie, aby zainstalować wymagany moduł Perla:

    install Devel::StackTrace

    W podobny sposób zainstaluj pozostałe moduły.

    Manual installation of Perl modules to back up ESXi configuration

    NOTE: W naszym przypadku jednego modułu nie udało się zainstalować w interaktywnej powłoce Perla, ale możemy go zainstalować za pomocą polecenia w konsoli Ubuntu:

    apt-get install libcrypt-ssleay-perl

  8. Po zainstalowaniu modułów Perla uruchom ponownie instalator VMware vSphere CLI.
  9. Instalacja zakończyła się pomyślnie i w tym przypadku zobaczysz następujący ekran:

    The vSphere CLI installation has been completed successfully

  10. Teraz spróbujmy użyć vSphere CLI i wpiszmy następujące polecenie w konsoli Linux, aby wyświetlić listę urządzeń serwera ESXi:

    esxcli --server 192.168.101.208 storage core device list

    Gdzie 192.168.101.208 to adres IP serwera ESXi.

    Using vSphere CLI for managing an ESXi host

  11. Odcisk SHA-1 serwera nie jest zaufany, a połączenie z hostem ESXi nie powiodło się. Oznacza to, że ze względów bezpieczeństwa należy zdefiniować odcisk. Spróbujmy innego polecenia:

    esxcli --server 192.168.101.208 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    W trybie interaktywnym konsola wyświetli monit o podanie nazwy użytkownika i hasła.

    A username and password are needed to run the command on an ESXi server

    Staraj się nie używać poleceń, w których nazwa użytkownika i hasło są wpisywane jako zwykły tekst, tak jak tutaj:

    esxcli --server 192.168.101.208 --username root --password TestPass_555 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    NOTE: Wynika to z względów bezpieczeństwa. Wykonane polecenia są zapisywane w systemie Linux, dopóki nie uruchomisz polecenia history -c w celu wyczyszczenia historii. Jeśli chcesz uniknąć korzystania z trybu interaktywnego i ręcznego wprowadzania loginu oraz hasła, możesz zapisać sesję ESXi do pliku i używać tego pliku podczas uruchamiania poleceń. Zapisywanie sesji jest bezpieczne w przeciwieństwie do wprowadzania hasła jako zwykłego tekstu w poleceniu. Zapisywanie sesji wyjaśniono poniżej.

Zapisywanie odcisku palca w celu połączenia się z hostami ESXi

Wprowadzanie odcisku palca ESXi za każdym razem w celu uruchomienia polecenia nie jest wygodne. Na szczęście można zapisać odcisk palca i wykonywać kolejne polecenia w vSphere CLI bez konieczności jego każdorazowego podawania.

  1. Przejdź do katalogu:

    cd /usr/lib/vmware-vcli/apps/general/

  2. Wprowadź polecenie w następującej postaci:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint

    W naszym konkretnym przykładzie polecenie brzmi:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA

    Saving a thumbprint for running commands in vSphere CLI

  3. Teraz możesz wykonywać polecenia w vSphere CLI bez konieczności każdorazowego wprowadzania odcisku palca:

    esxcli --server 192.168.101.208 system maintenanceMode get

    Entering a login and password to execute a command on an ESXi host remotely

Nadal jednak konieczne jest podanie nazwy użytkownika i hasła. Możesz skonfigurować vSphere CLI tak, aby uruchamiać polecenia bez konieczności każdorazowego wprowadzania hasła, jak pokazano w poniższych sekcjach.

Korzystanie z pliku sesji do łączenia się z hostami ESXi

Korzystanie z zapisanego pliku sesji jest jedną z metod pozwalających uniknąć wprowadzania nazwy użytkownika i hasła podczas uruchamiania polecenia na zdalnym hoście ESXi za pomocą vSphere CLI.

  1. Utwórz katalog do przechowywania plików kopii zapasowych konfiguracji ESXi, na przykład: /backup/

    mkdir /backup

  2. Przejdź do tego katalogu:

    cd /usr/lib/vmware-vcli/apps/session

  3. Zapisz autoryzowaną sesję hosta ESXi do pliku za pomocą skryptu Perl z poleceniem:

    perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555

    Gdzie:

    savesessionfile /backup/192-168-101-208session to nazwa utworzonego pliku sesji

    server 192.168.101.208 to nazwa hosta ESXi, którego sesja jest zapisywana (ten host ESXi jest używany w wielu przykładach)

    nazwa użytkownika główny to nazwa użytkownika, który jest połączony z hostem ESXi

    hasło TestPass_555 to hasło użytkownika głównego, który jest połączony z hostem ESXi

Teraz możesz uruchamiać polecenia bez wpisywania hasła, ale powinieneś wprowadzić --sessionfile klucz (opcję) i zdefiniować ścieżkę do pliku sesji.

Na przykład:

esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get

Running commands in vSphere CLI by using a session file

Korzystanie z pliku konfiguracyjnego do łączenia się z hostami ESXi

Ideą tej metody jest zapisanie poświadczeń w pliku konfiguracyjnym jako zwykłego tekstu i odwołanie się do tego pliku podczas uruchamiania poleceń ESXi w vSphere CLI.

  1. Utwórz plik konfiguracyjny:

    vim /backup/vcli-config

  2. Wprowadź poświadczenia w następujący sposób:

    VI_USERNAME=root

    VI_PASSWORD=TestPass_555

  3. Zapisz plik.
  4. Uruchom to polecenie na zdalnym serwerze ESXi za pomocą vSphere CLI:

    esxcli --server 192.168.101.208 --config vcli-config system maintenanceMode get

    Running commands in vSphere CLI by using a configuration file

NOTE: Biorąc pod uwagę, że poświadczenia są zapisane jako zwykły tekst, ta metoda nie jest bezpieczna.

Korzystanie z magazynu poświadczeń do łączenia się z hostami ESXi

Magazyn poświadczeń to plik XML znajdujący się w katalogu użytkownika w vmware podkatalogu ~/.vmware/credstore/vicredentials.xml . Zaletą korzystania z magazynu poświadczeń do uruchamiania poleceń na zdalnych hostach ESXi jest to, że hasło nie jest zapisywane w postaci zwykłego tekstu. Dzięki temu metoda ta zapewnia wyższy poziom bezpieczeństwa.

  1. Aby dodać poświadczenia do magazynu poświadczeń, uruchom polecenie:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root

  2. Wyświetl listę poświadczeń zapisanych w magazynie poświadczeń, aby upewnić się, że potrzebne poświadczenia są dostępne:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl list

  3. Uruchom polecenie na zdalnym hoście ESXi bez podawania hasła, korzystając z magazynu poświadczeń:

    # esxcli --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get

    Jeśli korzystasz z użytkownika głównego, plik poświadczeń jest zapisywany w /home/user_name/.vmware/credstore/vicredentials.xml

    Running commands in vSphere CLI without entering the credentials

    Na poniższym zrzucie ekranu widać, jak poświadczenia są zapisywane w pliku magazynu poświadczeń.

    ESXi credentials are saved in the credentials store

Tworzenie kopii zapasowej konfiguracji hosta ESXi za pomocą vSphere CLI

Po skonfigurowaniu vSphere CLI na komputerze z systemem Ubuntu Linux można uruchomić polecenia i wykonać kopię zapasową konfiguracji ESXi:

  1. Przejdź do katalogu /usr/bin/ :

    cd /usr/bin

  2. Aby wykonać kopię zapasową konfiguracji ESXi bez podawania nazwy użytkownika i hasła, użyj jednego z poniższych poleceń.
    • W przypadku nazwy użytkownika i hasła zapisanych w magazynie poświadczeń użyj polecenia:

      vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz

    • Lub po zapisaniu sesji w pliku sesji użyj polecenia:

      vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz

      Backup ESXi host configuration by using the session file for authentication

      NOTE: Polecenia vicfg- są przestarzałe. Jeśli vicfg nie działa w Twoim przypadku, użyj ESXCLI odpowiednich poleceń w interfejsie wiersza poleceń podczas pracy z hostami ESXi najnowszych wersji. Zobacz polecenia dotyczące innych metod wykonywania kopii zapasowej konfiguracji ESXi.

      Wadą korzystania z opcji sessionfile jest limit czasu po 30 minutach bezczynności od uruchomienia ostatniego polecenia w vSphere CLI. Po upływie tego czasu konieczne jest ponowne uwierzytelnienie i utworzenie pliku sesji.

    • Jeśli chcesz wykonać kopię zapasową konfiguracji ESXi, wprowadzając hasło w trybie interaktywnym, możesz uruchomić polecenie:

      vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz

      Backing up ESXi configuration and entering a login and password in interactive mode

Jak zautomatyzować tworzenie kopii zapasowej konfiguracji ESXi

Jeśli korzystasz ze środowiska, które dynamicznie się zmienia, a konfiguracja hostów ESXi ulega częstym zmianom, ręczne wykonywanie kopii zapasowych hostów ESXi może okazać się niepraktyczne. W takim przypadku można zautomatyzować tworzenie kopii zapasowej konfiguracji ESXi, dodając do harmonogramu polecenie wykonania kopii zapasowej lub skrypt zawierający wiele poleceń. Crontab to harmonogram w systemie Linux.

  1. Edytuj konfigurację harmonogramu w systemie Linux, aby polecenie wykonania kopii zapasowej konfiguracji ESXi było wykonywane okresowo i automatycznie.

    crontab -e

    NOTE: Jeśli edytujesz konfigurację crontab po raz pierwszy, wybierz domyślny edytor tekstu, którego należy używać do edycji konfiguracji crontab. W naszym przykładzie używamy /usr/bin/vim.basic do tego celu.

    Format konfiguracji crontab jest następujący:

    minutes hours day_of_the_month month day_of_the_week command 

  2. Wykonajmy kopię zapasową konfiguracji hosta ESXi każdej nocy o 03:25, dodając następujący wiersz do konfiguracji crontab:

    25 03 * * * /usr/bin/vicfg-cfgbackup --server 192.168.101.208 --config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz

  3. Zapisz konfigurację harmonogramu crontab i zamknij edytor tekstu vim (używanego w tym przykładzie):

    :wq

    Automating ESXi config backup by using crontab

  4. Poczekajmy do godziny 03:25, aby sprawdzić katalog, w którym muszą zostać zapisane pliki konfiguracji kopii zapasowej ESXi:

    ls -al

    Jak widać na poniższym zrzucie ekranu, plik kopii zapasowej konfiguracji hosta ESXi został automatycznie utworzony o godz. 03:25.

    ESXi configuration backup is saved automatically

Teraz kopia zapasowa konfiguracji ESXi została utworzona automatycznie, co jest świetne, ale ma też wadę. Za każdym razem, gdy crontab uruchamia zaplanowane polecenie tworzenia kopii zapasowej konfiguracji ESXi, poprzedni tgz plik jest nadpisywany przez nowy tgz plik. Może to powodować problemy, jeśli kopia zapasowa z prawidłową konfiguracją ESXi utworzona przedwczoraj zostanie nadpisana przez plik utworzony następnego dnia zawierający nieprawidłową konfigurację ESXi. Aby zapobiec temu problemowi, należy wykonać kopię zapasową konfiguracji ESXi w różnych plikach.

Stwórzmy prosty skrypt, który za każdym razem zapisuje konfigurację ESXi jako oddzielny plik o unikalnej nazwie zawierającej datę i godzinę utworzenia pliku kopii zapasowej konfiguracji ESXi. Utworzenie skryptu pozwala na dodanie poleceń do wykonywania kopii zapasowej wielu hostów ESXi poprzez uruchomienie jednego skryptu.

  1. Utwórz plik esxi_backup.sh w katalogu /backup/:

    vim /backup/esxi_backup.sh

  2. Dodaj do pliku następujące wiersze:

    #!/bin/bash

    ESXI101_208_BACKUP_NAME="192-168-101-208-$(date +'%Y%m%d_%H%M%S')esxi-cfg.tgz"

    vicfg-cfgbackup --server 192.168.101.208 --config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME

  3. Zapisz zmiany w pliku i zamknij edytor tekstowy vim:

    :wq

  4. Nadaj plikowi uprawnienia do wykonywania:

    chmod +x /backup/esxi_backup.sh

  5. Edytuj konfigurację harmonogramu:

    crontab -e

  6. Dodaj wiersz w następującej postaci:

    50 06 * * * /backup/esxi_backup.sh

    Ten wiersz konfiguracyjny pozwala ustawić crontab tak, aby skrypt wykonywania kopii zapasowej konfiguracji ESXi był uruchamiany o godz. 06:50.

    Wyłącz poprzednie zaplanowane zadanie, które dodałeś, dodając znak # na początku wiersza.

    Zapisz konfigurację.

    Cron configuration that creates ESXi config backup files with unique names

  7. Poczekaj do ustawionego czasu, a następnie sprawdź, czy archiwum kopii zapasowej konfiguracji ESXi zostało utworzone.

    ESXi configuration backup files have unique names

Jest to prosty skrypt, który ilustruje ideę automatyzacji. Możesz tworzyć złożone skrypty do wykonywania kopii zapasowych wielu hostów ESXi.

NOTE: Po każdym ponownym uruchomieniu ESXi lub 30 minutach bezczynności uwierzytelnienie sesji ESXi wygasa. Należy o tej funkcji pamiętać podczas tworzenia skryptu do automatycznego wykonywania kopii zapasowej ESXi.

Jak przywrócić konfigurację ESXi w vSphere CLI

Wymagania dotyczące przywracania konfiguracji ESXi przy użyciu vSphere CLI są podobne do wymagań dotyczących innych metod. Aby przywrócić konfigurację ESXi, upewnij się, że zdalny dostęp przez SSH jest włączony, a adres IP serwera ESXi jest znany (zaleca się użycie tego samego adresu IP, co adres IP hosta ESXi, którego kopia zapasowa została wykonana).

Aby przywrócić konfigurację ESXi, uruchom polecenie w następującej postaci:

vicfg-cfgbackup --server=ESXi_host_IP_address --username=root -l backup_file

W naszym konkretnym przykładzie polecenie to brzmi:

vicfg-cfgbackup --server=192.168.101.208 --username=root -l /backup/192-168-101-208-esxi-cfg.tgz

Jeśli identyfikator UUID docelowego hosta ESXi, na którym chcesz przywrócić konfigurację, różni się od identyfikatora UUID serwera ESXi objętego kopią zapasową (którego identyfikator UUID jest zdefiniowany w pliku Manifest.txt znajdującym się w archiwum kopii zapasowej tgz ), możesz użyć klucza -f (force), aby zastąpić identyfikator UUID.

How to restore ESXi configuration from your backup

Możesz sprawdzić identyfikator UUID uruchomionego hosta ESXi za pomocą polecenia, jak zapewne pamiętasz:

esxcfg-info -u

NOTE: Począwszy od wersji ESXi 7.0 U2, wymuszone nadpisanie identyfikatora UUID nie działa, jeśli na hoście ESXi używany jest moduł TPM (Trusted Platform Module).

Metoda 3: Użycie PowerCLI do wykonywania kopii zapasowej hostów ESXi

Użytkownicy preferujący Windows PowerShell mogą użyć PowerCLI do zarządzania vSphere do wykonywania kopii zapasowej konfiguracji ESXi. PowerCLI to zestaw poleceń cmdlet języka PowerShell; podstawowe polecenia PowerCLI opisano na stronie ten wpis na blogu.

Aby wykonać kopię zapasową hosta ESXi za pomocą PowerCLI, należy najpierw zainstaluj PowerCLI w systemie operacyjnym:

  1. Uruchom PowerCLI jako administrator w systemie Windows.
  2. Połącz się z serwerem ESXi:

    Connect-VIServer ESXi_IP_address -user user_name -password your_password

    W naszym przypadku używamy poleceń:

    Connect-VIServer 192.168.101.208 -user root -password TestPass_555

    Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath "C:backup ESXi host"

    How to take ESXi host backup with PowerCLI

    • Jeśli hosty ESXi są zarządzane przez vCenter Server, możesz najpierw połączyć się z vCenter, a następnie wykonać kopię zapasową konfiguracji ESXi na hostach w PowerCLI bez konieczności uwierzytelniania się za każdym razem przed utworzeniem kopii zapasowej konfiguracji każdego hosta:

      Connect-VIServer 10.10.10.16

      Wprowadź login administratora i hasło, aby uzyskać dostęp do vCenter Server. W tym celu pojawi się okno pop-up.

      Connecting to the vCenter server in PowerCLI

  3. Wykonaj kopię zapasową konfiguracji ESXi każdego hosta:

    Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath "C:backup ESXi host"

    Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath "C:backup ESXi host"

    How to back up configuration of each ESXi host in PowerCLI

Jak przywrócić konfigurację ESXi w PowerCLI

  1. Uruchom VMware PowerCLI jako administrator.
  2. Połącz się z hostem ESXi, na którym chcesz przywrócić konfigurację. W naszym przykładzie przywracamy konfigurację na hoście ESXi o adresie IP 192.168.101.208
  3. Przełącz host ESXi w tryb konserwacji:

    Set-VMHost -VMHost 192.168.101.208 -State Maintenance

  4. Przed przywróceniem konfiguracji ESXi upewnij się, że maszyny wirtualne znajdujące się na tym hoście ESXi są wyłączone lub przeniesione na inny host ESXi. Należy pamiętać, że po wykonaniu polecenia przywracania konfiguracji host ESXi uruchomi się ponownie automatycznie.
  5. Przywróć konfigurację za pomocą polecenia Set-VMHostFirmware restore :

    Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:backup ESXi hostconfigBundle-192.168.101.20

    8.tgz" -HostUser root -HostPassword TestPass_555

    ESXi configuration is recovered in PowerCLI

Wersja, numer kompilacji i identyfikator UUID hosta ESXi, na którym przywracana jest konfiguracja, muszą być zgodne z wersją, numerem kompilacji i identyfikatorem UUID hosta ESXi, którego kopia zapasowa jest używana do przywrócenia konfiguracji. Użyj klucza -force w poleceniu, aby pominąć sprawdzanie identyfikatora UUID.

Metoda 4: Ręczne tworzenie kopii zapasowej i przywracanie konfiguracji ESXi

Należy również być przygotowanym na sytuację, w której nie można zalogować się do hosta ESXi lub gdy host ESXi nie uruchamia się i nie można użyć interfejsu wiersza poleceń do uruchomienia polecenia wykonywania kopii zapasowej lub przywracania konfiguracji ESXi. Może to wynikać z awarii sprzętu lub problemów z oprogramowaniem. W takim przypadku lepiej jest wiedzieć, jak ręcznie wykonać kopię zapasową i przywrócić konfigurację ESXi. Jak zapewne pamiętacie z domyślnej konfiguracji crontab na hoście ESXi, skrypt /sbin/auto-backup.sh jest uruchamiany co godzinę oraz przy każdym ponownym uruchomieniu lub wyłączeniu hosta ESXi. Skrypt ten służy do wykonywania kopii zapasowej (zapisywania) konfiguracji ESXi przechowywanej w pamięci do pliku /bootbank/state.tgz .

NOTE: Aby skorzystać z tej metody, plik /bootbank/state.tgz nie może być poddany szyfrowaniu.

Konfiguracja ESXi jest przechowywana w pamięci RAM komputera podczas działania serwera ESXi (odpowiedni dysk RAM jest zamontowany w katalogu /etc/ ). Podczas uruchamiania ESXi pliki systemowe są wyodrębniane z archiwum /bootbank/state.tgz do katalogu /etc/ . Możesz ręcznie skopiować plik /bootbank/state.tgz , jeśli host ESXi działa, używając klienta SCP, takiego jak WinSCP (musi być włączony zdalny dostęp SSH). Alternatywnie możesz uruchomić system z płyty Live DVD i ręcznie skopiować plik state.tgz , jeśli host ESXi nie uruchamia się (na przykład z powodu awarii sprzętu).

Ręczny proces odzyskiwania

  1. Przygotuj archiwum kopii zapasowej utworzone wcześniej za pomocą powłoki ESXi, vSphere CLI lub PowerCLI. W naszym przypadku nazwa pliku to configBundle-192-168-101-208.tgz . Plik można skopiować na przykład na pamięć USB i podłączyć ją do portu USB serwera ESXi, na którym trzeba przywrócić konfigurację systemu.
  2. Uruchom komputer z płyty Live CD/DVD na maszynie, na której zainstalowano ESXi. Jako płytę Live CD/DVD można użyć dysku instalacyjnego Ubuntu.
  3. Otwórz konsolę (terminal) w systemie Linux.
  4. Wyświetl listę partycji:

    ls -al /dev/sd*

    fdisk -l | grep /dev/sda

    W tym przypadku potrzebujemy partycji /dev/sda5/ oznaczonej jako Microsoft basic data.

    O partycjach dyskowych ESXi wspomniano w poście na blogu dotyczącym Uruchamianie ESXi z pamięci USB oraz Odzyskiwanie hasła do ESXi.

    Mounting the partition that contains the ESXi configuration archive

    W tym przypadku interesuje nas partycja /dev/sda5 .

  5. Utwórz katalog, do którego zostanie zamontowana partycja /dev/sda5:

    mkdir /mnt/sda5

  6. Zamontuj partycję dyskową do tego katalogu:

    mount /dev/sda5 /mnt/sda5

  7. W katalogu /mnt/sda5 znajdziesz plik state.tgz , który zawiera konfigurację ESXi. Ten katalog (w którym przechowywane są pliki state.tgz ) nazywa się /bootblank/ po uruchomieniu hosta ESXi.
  8. Skopiuj archiwum kopii zapasowej konfiguracji ESXi z pamięci USB do katalogu /tmp/ systemu Ubuntu uruchomionego z płyty Live DVD. W naszym przykładzie kopiujemy:

    cp /media/Ubuntu/Ubuntu 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz

  9. Rozpakuj pliki z archiwum kopii zapasowej:

    tar zxvf /tmp/configBundle.tgz

  10. Można zauważyć, że plik state.tgz został wyodrębniony z archiwum:

    ls -al /tmp/

  11. Zmień nazwę oryginalnego pliku state.tgz znajdującego się na partycji /dev/sda5 zamontowanej w /mnt/sda5/

    mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz

  12. Skopiuj plik state.tgz wyodrębniony z archiwum kopii zapasowej konfiguracji ESXi ( configBundle.tgz ) do katalogu /tmp/ :

    cp /tmp/state.tgz /mnt/sda5/

  13. Odmontuj zamontowane partycje:

    umount /dev/sda5/

  14. Uruchom ponownie serwer. Wyjmij płytę Ubuntu Live DVD i uruchom system z dysku, na którym zainstalowano ESXi.

    init 6

Teraz konfiguracja ESXi powinna zostać przywrócona.

Najlepsze rozwiązania dotyczące tworzenia kopii zapasowych konfiguracji ESXi

Aby zintegrować operacje tworzenia kopii zapasowych hosta ESXi z ogólną strategią tworzenia kopii zapasowych i zapewnić jej skuteczność, należy stosować najlepsze rozwiązania dotyczące tworzenia kopii zapasowych konfiguracji ESXi. Praktyki te pozwalają zapewnić spójne kopie zapasowe i bezpieczeństwo kopii zapasowych oraz możliwość ich przywrócenia w razie potrzeby.

Regularny harmonogram tworzenia kopii zapasowych

Regularne harmonogramy tworzenia kopii zapasowych konfiguracji ESXi są ważne, aby zapewnić, że zmiany konfiguracji, takie jak konfiguracja sieci, rejestracje maszyn wirtualnych i inne ustawienia, są spójnie rejestrowane w kopiach zapasowych. Jeśli posiadasz aktualną kopię zapasową konfiguracji ESXi, możesz przywrócić host ESXi z najnowszą konfiguracją i zminimalizować przestoje (unikając ręcznej rekonfiguracji ostatnich zmian).

Najlepsze rozwiązania związane z częstotliwością wykonywania kopii zapasowej konfiguracji ESXi obejmują:

  • Wykonać kopię zapasową konfiguracji ESXi po wprowadzeniu istotnych zmian, takich jak aktualizacje ustawień sieciowych, zmiany konfiguracji maszyn wirtualnych, zmiany konfiguracji magazynów danych itp.
  • Skonfiguruj regularny harmonogram, aby mieć pewność, że nie zapomnisz o wykonywaniu kopii zapasowej konfiguracji ESXi. Skonfiguruj harmonogramy dzienne, tygodniowe lub miesięczne w zależności od tego, jak często zmienia się konfiguracja ESXi w Twoim środowisku.
  • Zautomatyzuj wykonywanie kopii zapasowej za pomocą zaplanowanych skryptów w wierszu poleceń ESXi, PowerCLI i innych obsługiwanych interfejsach.
  • Zachowaj wiele wersji kopii zapasowych konfiguracji ESXi utworzonych w różnych momentach. Takie podejście pozwala przywrócić starsze, poprawne konfiguracje, jeśli nowsze są nieprawidłowe lub jeśli najnowsze ulegną uszkodzeniu.

Zabezpieczanie plików kopii zapasowych

Zabezpiecz pliki kopii zapasowych ESXi, aby uniemożliwić osobom trzecim, nieuprawnionym użytkownikom lub atakującym dostęp do konfiguracji ESXi. Praktyka ta zmniejsza ryzyko związane z bezpieczeństwem, a także minimalizuje ryzyko przypadkowego usunięcia kopii zapasowych.

  • Używaj narzędzi do szyfrowania, aby zabezpieczyć kopie zapasowe przechowywane na dysku lub w chmurze. Używaj szyfrowania AES-256 dla lokalnych kopii zapasowych.
  • Przechowuj kopie zapasowe w bezpiecznej lokalizacji z ograniczonym dostępem (dedykowany serwer kopii zapasowych lub magazyn-chmura z zasadami IAM).
  • Ogranicz dostęp wyłącznie do upoważnionego personelu.
  • Przechowuj kopie zapasowe w wielu lokalizacjach (np. pamięć lokalna, NAS i usługi w chmurze, takie jak AWS S3).
  • Podczas przesyłania plików kopii zapasowych między systemami należy stosować bezpieczne protokoły, takie jak SCP lub SFTP.

Testowanie procedur odzyskiwania

Testowanie kopii zapasowych ESXi pozwala upewnić się, że konfiguracje mogą zostać pomyślnie odzyskane w przypadku incydentu wymagającego działań naprawczych. Testowanie jest konieczne, aby zapewnić, że procesy odzyskiwania przebiegają zgodnie z oczekiwaniami, a także pomaga zidentyfikować potencjalne problemy.

  • Należy okresowo testować procedury odzyskiwania, aby zapewnić integralność kopii zapasowych.
  • Należy przywrócić konfigurację na testowym hoście ESXi lub w środowisku sandbox.
  • Stwórz dokumentację wyjaśniającą procedury przywracania konfiguracji ESXi. Stwórz przewodnik krok po kroku dotyczący przywracania konfiguracji ESXi, zawierający polecenia i zależności.
  • Sprawdź poprawność przywróconej konfiguracji, w tym ustawienia sieciowe, mapowanie magazynów danych i rejestracje maszyn wirtualnych.

Symuluj scenariusze odzyskiwania awaryjnego, aby zweryfikować skuteczność strategii tworzenia kopii zapasowych i odzyskiwania danych.

Wnioski

Korzystanie z interfejsu wiersza poleceń ESXi jest dobrym rozwiązaniem, ponieważ nie wymaga instalowania dodatkowego oprogramowania. Zaletami vSphere CLI są możliwość zdalnego wykonywania poleceń za pomocą komputerów z systemem Linux oraz możliwość zautomatyzowania tworzenia kopii zapasowych konfiguracji ESXi. Z kolei PowerCLI może spodobać się użytkownikom systemu Windows.

Jeśli host ESXi nie działa prawidłowo i nie można go uruchomić, można ręcznie wykonać kopię zapasową i przywrócić konfigurację. Należy pamiętać, że bootblank informacje oraz dane dotyczące maszyn wirtualnych nie są przechowywane w pliku kopii zapasowej konfiguracji ESXi. Po przywróceniu konfiguracji ESXi może być konieczne zarejestrowanie maszyn wirtualnych w zasobach.

Zaleca się wykonywanie kopii zapasowych maszyn wirtualnych vSphere oprócz wykonywania kopii zapasowych hostów ESXi. NAKIVO Backup & Replication to uniwersalne rozwiązanie do wykonywania kopii zapasowych, które umożliwia wykonywanie kopii zapasowych maszyn wirtualnych VMware, maszyn wirtualnych Hyper-V i instancji Amazon EC2, a także fizycznych serwerów z systemem Linux i Windows.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read