Back Up and Restore VMware ESXi Host Configuration: A Step-By-Step Guide
On 3 grudnia, 2021 by adminBackup jest jednym z najważniejszych działań zapewniających ciągłość działania każdej infrastruktury IT. Uruchamianie serwerów jako maszyn wirtualnych (VM) na hostach ESXi w środowisku vSphere zapewnia większe korzyści podczas tworzenia kopii zapasowych danych maszyn wirtualnych. Tworzenie kopii zapasowych na poziomie hosta umożliwia korzystanie z przydatnych funkcji, takich jak tworzenie kopii zapasowych bez agentów, tworzenie kompletnych kopii zapasowych maszyn wirtualnych (dane maszyn wirtualnych + konfiguracja maszyn wirtualnych), migawki do tworzenia kopii zapasowych działających maszyn wirtualnych oraz niskie obciążenie serwera. Posiadanie zdrowych hostów ESXi jest kluczem do sukcesu przy uruchamianiu maszyn wirtualnych. Dlatego też lepiej jest tworzyć kopie zapasowe konfiguracji ESXi. W ten sposób, jeśli coś pójdzie nie tak z hostem ESXi, jego konfiguracja może być przywrócona w ciągu kilku minut, bez konieczności poświęcania dużej ilości czasu na konfigurowanie serwera ESXi od zera. W dzisiejszym wpisie na blogu omówimy konfigurację kopii zapasowej ESXi i zbadamy, jak utworzyć kopię zapasową hosta ESXi przy użyciu różnych metod.
Usługiwanie się wierszem poleceń ESXi w celu utworzenia kopii zapasowej hosta ESXi
Usługiwanie się wierszem poleceń ESXi jest najbardziej przystępną metodą tworzenia kopii zapasowej konfiguracji hosta ESXi. Nie trzeba instalować żadnego dodatkowego oprogramowania, aby korzystać z wiersza poleceń ESXi. Musisz włączyć powłokę ESXi i zdalny dostęp SSH do hosta ESXi. Proces ten jest wyjaśniony we wpisie na blogu o ESXCLI. Po połączeniu się z hostem ESXi przez SSH, możesz uruchomić polecenia.
Konfiguracja ESXi jest zapisywana co godzinę automatycznie do pliku /bootblank/state.tgz. Z tego powodu należy upewnić się, że bieżąca konfiguracja ESXi jest zapisywana do plików konfiguracyjnych ESXi właśnie teraz, aby potwierdzić, że wszystkie zmiany dokonane w konfiguracji ESXi od ostatniego autozapisu zostały zapisane:
vim-cmd hostsvc/firmware/sync_config
Zrób kopię zapasową konfiguracji ESXi:
vim-cmd hostsvc/firmware/backup_config
W efekcie otrzymasz link do pobrania configBundle.tgz z hosta ESXi. Należy zastąpić gwiazdkę adresem IP hosta ESXi. Plik archiwum zawierający kopię zapasową konfiguracji ESXi jest zapisywany w katalogu /scratch/downloads na krótki okres czasu (kilka minut). Partycja scratch została wspomniana we wpisie na blogu dotyczącym instalacji ESXi na dysku USB Flash.
Adres IP hosta ESXi można sprawdzić w bezpośrednim interfejsie konsoli ESXi lub za pomocą następującego polecenia:
esxcli network ip interface ipv4 get
Adres IP hosta ESXi użytego w bieżącym przykładzie to 192.168.101.208.
Pobierz archiwum kopii zapasowej ESXi tak szybko, jak to możliwe 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 zadań, które zapewnia; tworzenie kopii zapasowej konfiguracji ESXi nie jest wyjątkiem. Sprawdźmy, jak to zrobić:
1. Utwórz katalog do przechowywania plików kopii zapasowych na twoim magazynie danych ESXi.
mkdir /vmfs/volumes/datastore1/ESXi_backup
2. Utwórz skrypt do tworzenia kopii zapasowej konfiguracji ESXi:
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
3. Dodaj następujące wiersze do skryptu:
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
find /scratch/downloads/ -name \u00.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +’%Y%m%d_%H%M%S’).tgz \\;
4. Zapisz plik i zakończ vi:
:wq
Uwaga: Dla większej wygody do nazwy pliku kopii zapasowej można również dołączyć nazwę hosta ESXi lub adres IP. Pozwoli to uniknąć pomyłek podczas korzystania z wielu hostów ESXi.
5. Uczyń skrypt wykonywalnym:
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
9. Upewnijmy się, że skrypt backupu hosta ESXi jest uruchamiany zgodnie z harmonogramem (automatycznie). W tym celu edytujemy konfigurację schedulera:
vi /var/spool/cron/crontabs/root
10. Dodaj następujący ciąg znaków, aby wykonywać kopię zapasową konfiguracji ESXi codziennie o 02:10 AM.
10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
11. Zapisz zmiany w pliku. Aby zapisać zmiany w pliku przeznaczonym tylko do odczytu, wpisz:
:wq!
As alternative, you can change file permissions before editing the file:
chmod +w /var/spool/cron/crontabs/root
After that, ESXi configuration will be backuped automatically at 02:10 AM every night to the file named ESXi_config_bakup_date_time.tgz
Jak odzyskać konfigurację ESXi w wierszu poleceń ESXi
Na maszynie, na której chcesz przywrócić konfigurację ESXi, powinieneś mieć zainstalowany ESXi w tej samej wersji i o tym samym numerze kompilacji. Ta zasada jest prawdziwa dla wszystkich metod odzyskiwania konfiguracji ESXi rozważanych w tym wpisie na blogu. Jeśli zamierzasz przywrócić konfigurację ESXi na hoście ESXi, który jest zainstalowany od podstaw (wyraźnie zainstalowany), musisz ustawić adres IP dla interfejsu sieciowego używanego do sieci zarządzania ESXi i włączyć dostęp SSH. Wstępna konfiguracja ESXi jest wyjaśniona w tym wpisie na blogu. UUID musi być taki sam zarówno na serwerze ESXi, który był backupowany, jak i na serwerze ESXi, na którym ma być przywrócona konfiguracja. Poniżej w tej sekcji przeczytaj, co zrobić, jeśli wartości UUID są różne.
Po przygotowaniu świeżo zainstalowanego hosta ESXi do przywrócenia konfiguracji ESXi z kopii zapasowej, połącz się z hostem ESXi przez SSH i wprowadź hosta w tryb konserwacji.
esxcli system maintenanceMode set -enable yes
lub
vim-cmd hostsvc/maintenance_mode_enter
Kopiujemy archiwum zawierające kopię zapasową konfiguracji ESXi do jakiegoś katalogu na hoście ESXi za pomocą klienta SCP, na przykład WinSCP. Skopiujmy archiwum configBundle-xxxx.tgz z maszyny lokalnej do katalogu /tmp/ na docelowym serwerze ESXi.
Zmień nazwę pliku configBundle-xxxx.tgz na configBundle.tgz przed wprowadzeniem polecenia przywrócenia konfiguracji ESXi. W przeciwnym razie otrzymasz komunikat o błędzie: „File /tmp/configBundle.tgz was not found”.
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
Przywróć konfigurację ESXi:
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Po uruchomieniu tego polecenia host ESXi zostanie automatycznie zrestartowany.
Po ponownym uruchomieniu serwera ESXi należy wyjść z trybu konserwacji, po czym można korzystać z hosta jak zwykle.
esxcli system maintenanceMode set -enable no
lub
vim-cmd hostsvc/maintenance_mode_exit
Jak zmienić UUID, aby przywrócić konfigurację ESXi
UUID serwera ESXi można sprawdzić w interfejsie wiersza poleceń ESXi za pomocą polecenia:
esxcfg-info -u
Wartość UUID zarchiwizowanego hosta ESXi jest wymieniona w pliku Manifest.txt wewnątrz archiwum kopii zapasowej configBundle.tgz, które zostało utworzone za pomocą poleceń opisanych powyżej.
Nie można zmienić identyfikatora UUID serwera ESXi, ponieważ jest on generowany w zależności od sprzętu. Można jednak odzyskać konfigurację ESXi hosta ESXi A na hosta ESXi B po zmianie identyfikatora UUID w pliku Manifest.txt przechowywanym w archiwum kopii zapasowej konfiguracji ESXi configBundle.tgz.
Zbadajmy algorytm, który można wykorzystać do zmiany identyfikatora UUID w celu zastosowania konfiguracji z kopii zapasowej na innym serwerze fizycznym. Serwer A jest serwerem, na którym tworzona jest kopia zapasowa konfiguracji, a serwer B jest serwerem, na którym należy zastosować tę konfigurację.
Etap 1
Sprawdź identyfikator UUID na hoście ESXi, na którym chcesz zastosować kopię zapasową konfiguracji (serwer B). Można to zrobić za pomocą co najmniej dwóch metod, ale druga metoda umożliwia również sprawdzenie wersji ESXi.
1. Uruchomić polecenie esxcfg-info -u
2.1 Wykonać kopię zapasową konfiguracji serwera ESXi B
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
2.2 Skopiuj archiwum kopii zapasowej do katalogu tymczasowego i przejdź do tego katalogu
cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp
cd /tmp/
2.3 Wypakuj pliki z archiwum
tar zxvf configBundle.tgz
2.4 Otwórz plik Manifest.txt za pomocą vi i sprawdź wartość UUID (zobaczysz osobną linię z UUID). Zapisz UUID.
vi Manifest.txt
W naszym przypadku UUID to 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
2.5 Można usunąć pliki tymczasowe w katalogu /tmp/:
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
Etap 2
1. Skopiuj archiwum kopii zapasowej konfiguracji configBundle.tgz serwera ESXi A na serwer B, na przykład do katalogu /tmp/ i przejdź do tego katalogu.
2. Wypakuj pliki z archiwum configBundle.tgz archive
tar zxvf configBundle.tgz
3. Otwórz plik Manifest.txt za pomocą vi i zaktualizuj wartość UUID serwera A do UUID serwera B.
vi Manifest.txt
W naszym przypadku musimy zmienić 9EA94D56-7E39-96A8-AB45-DF31EF0971EC na 1E9E4D56-B724-DFBE-D19D-4C2D827E0188.
Zapisz plik i wyjdź z edytora tekstu :wq
4. Zmień nazwę swojego źródłowego pliku 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. Tarować pliki Manifest.txt, state.tgz i 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
How to Back up ESXi Host with vSphere CLI
Innym interfejsem wiersza poleceń udostępnionym przez VMware do zarządzania hostami ESXi jest vSphere CLI (nie mylić z VMware PowerCLI). Aby móc zdalnie zarządzać hostami ESXi, należy zainstalować vSphere CLI na komputerze z systemem Linux lub Windows. Do instalacji vSphere CLI wymagany jest Perl. Zaletą korzystania z vSphere CLI jest możliwość wykorzystania wygody i mocy basha w Linuksie. W dzisiejszych przykładach używany jest system Ubuntu Linux.
Instalacja i konfiguracja vCLI
Pobierz vSphere CLI ze strony VMware.
Przejdź do katalogu, w którym znajduje się pobrany plik i wypakuj pliki z archiwum.
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz
Instaluj wymagane pakiety:
Oficjalnym zaleceniem VMware jest zainstalowanie tego 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
Przejdź do katalogu, w którym znajdują się rozpakowane pliki i uruchom instalator:
./vmware-install.pl
Przeczytaj i zaakceptuj umowę licencyjną. Jeśli instalator zapyta Cię o instalację niektórych wymaganych modułów, wpisz y i zainstaluj moduły.
W naszym przypadku niektóre moduły muszą być zainstalowane ręcznie. Można je zainstalować, używając interaktywnej powłoki Perla.
Wejdź do interaktywnej powłoki Perla:
perl -MCPAN -e shell
Wykonaj polecenie, aby zainstalować wymagany moduł Perla:
install Devel::StackTrace
Podobnie zainstaluj inne moduły.
Uwaga: W naszym przypadku jeden moduł nie mógł zostać zainstalowany w interaktywnej powłoce Perla, ale możemy zainstalować ten moduł za pomocą polecenia w konsoli Ubuntu:
apt-get install libcrypt-ssleay-perl
Po zainstalowaniu modułów Perla uruchom ponownie instalator VMware vSphere CLI.
Instalacja została zakończona pomyślnie i można zobaczyć następujący ekran w tym przypadku:
Teraz spróbujmy użyć vSphere CLI i wprowadź polecenie w konsoli Linuksa, aby zobaczyć listę urządzeń serwera ESXi (192.168.101.208 to adres IP serwera ESXi).
esxcli -server 192.168.101.208 storage core device list
Odcisk kciuka SHA-1 serwera nie jest zaufany, a połączenie z hostem ESXi nie powiodło się. Oznacza to, że należy zdefiniować odcisk kciuka ze względów bezpieczeństwa. 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
Nazwa użytkownika i hasło zostaną wyświetlone w konsoli w trybie interaktywnym.
Staraj się nie używać poleceń, w których nazwa użytkownika i hasło są wpisywane jako zwykły tekst, jak to:
Jest to spowodowane względami bezpieczeństwa. Wykonane polecenia są zapisywane w Linuksie dopóki nie uruchomisz polecenia history -c aby wyczyścić historię. Jeśli chcesz uniknąć używania trybu interaktywnego i ręcznego wpisywania loginu i hasła, możesz zapisać sesję ESXi do pliku i używać tego pliku podczas wykonywania poleceń. Zapisywanie sesji jest bezpieczne, w przeciwieństwie do wpisywania hasła jako zwykłego tekstu w poleceniu. Zapisywanie sesji jest wyjaśnione poniżej w tym wpisie na blogu.
Zapisywanie odcisku kciuka do łączenia się z hostami ESXi
Wpisywanie odcisku kciuka ESXi za każdym razem do uruchomienia polecenia nie jest wygodne. Na szczęście możliwe jest zapisanie odcisku kciuka i uruchamianie kolejnych poleceń za pomocą vSphere CLI bez definiowania odcisku kciuka.
Przejdź do katalogu:
cd /usr/lib/vmware-vcli/apps/general/
Trzeba uruchomić polecenie jak:
/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
Teraz można uruchamiać polecenia w vSphere CLI bez konieczności wpisywania za każdym razem odcisku kciuka.
esxcli -server 192.168.101.208 system maintenanceMode get
Nie zniknęła jednak konieczność podawania loginu i hasła – nadal trzeba podawać login/hasło. Jak można skonfigurować vSphere CLI, aby uruchamiał komendy bez konieczności każdorazowego wpisywania hasła? Odpowiedź na to pytanie znajduje się w poniższych sekcjach.
Używanie pliku sesji do łączenia się z hostami ESXi
Używanie zapisanego pliku sesji jest jedną z metod pozwalających uniknąć wpisywania nazwy użytkownika i hasła podczas uruchamiania polecenia na zdalnym hoście ESXi za pomocą vSphere CLI.
Na początek utwórz katalog do przechowywania plików kopii zapasowych konfiguracji ESXi, na przykład /backup/.
mkdir /backup
Przejdź do tego katalogu:
cd /usr/lib/vmware-vcli/apps/session
Zapisz autoryzowaną sesję hosta ESXi do pliku za pomocą skryptu Perla 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)
-username root to nazwa użytkownika, który jest podłączony do hosta ESXi
-password TestPass_555 to hasło użytkownika, który jest podłączony do hosta ESXi
Teraz można uruchamiać polecenia bez podawania hasła, ale należy podać klucz (opcję) -sessionfile i określić ścieżkę do pliku sesji. Na przykład:
esxcli -sessionfile /backup/192-168-101-208session system maintenanceMode get
Używanie pliku konfiguracyjnego do łączenia się z hostami ESXi
Pomysł tej metody polega na zapisaniu danych uwierzytelniających w pliku konfiguracyjnym jako zwykłego tekstu i odwoływaniu się do tego pliku podczas uruchamiania poleceń ESXi w vSphere CLI. Najpierw należy utworzyć plik konfiguracyjny:
vim /backup/vcli-config
Wprowadź dane uwierzytelniające w następującym formacie:
VI_USERNAME=root
VI_PASSWORD=TestPass_555
Zapisz plik.
Uruchom polecenie na zdalnym serwerze ESXi za pomocą vSphere CLI:
esxcli -server 192.168.101.208 -config vcli-config system maintenanceMode get
Ponieważ dane uwierzytelniające są zapisywane jako zwykły tekst, ta metoda nie jest bezpieczna.
Używanie magazynu danych uwierzytelniających do łączenia się z hostami ESXi
Magazyn danych uwierzytelniających to plik xml znajdujący się w katalogu użytkownika w podkatalogu vmware ~/.vmware/credstore/vicredentials.xml. Zaletą używania magazynu poświadczeń do uruchamiania poleceń na zdalnych hostach ESXi jest to, że hasło nie jest zapisywane jako zwykły tekst, stąd ta metoda zapewnia większe bezpieczeństwo.
Aby dodać poświadczenia do magazynu poświadczeń, wykonaj polecenie:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -server 192.168.101.208 -username root
List credentials saved in the credentials store to make sure that the needed credentials are present:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list
Uruchom polecenie na zdalnym hoście ESXi bez wpisywania hasła za pomocą credentials store.
# esxcli -server 192.168.101.208 -credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get
Jeśli używasz użytkownika innego niż root, plik poświadczeń jest zapisywany w /home/user_name/.vmware/credstore/vicredentials.xml
Na poniższym zrzucie ekranu widać, jak dane uwierzytelniające są zapisywane w pliku credentials store.
Używanie vSphere CLI do tworzenia kopii zapasowej konfiguracji hosta ESXi
Po skonfigurowaniu vSphere CLI na maszynie Ubuntu Linux można uruchomić polecenia i utworzyć kopię zapasową konfiguracji ESXi.
Przejdź do katalogu /usr/bin/
cd /usr/bin
Teraz możesz wykonać kopię zapasową konfiguracji ESXi bez wpisywania nazwy użytkownika i hasła po zapisaniu danych uwierzytelniających w magazynie danych uwierzytelniających:
Albo po zapisaniu sesji w pliku sesji:
vicfg-cfgbackup -sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz
Uwaga: komendy vicfg- są przestarzałe. Podczas pracy z hostami ESXi lepiej używać odpowiedników poleceń ESXCLI w interfejsie wiersza poleceń.
Uwaga: Wadą używania opcji -sessionfile jest limit czasu 30 minut w stanie bezczynności po wykonaniu ostatniego polecenia w vSphere CLI. Po tym czasie trzeba się uwierzytelnić i ponownie utworzyć plik sesji.
Jeśli chcesz utworzyć kopię zapasową konfiguracji ESXi podczas wprowadzania hasła w trybie interaktywnym, możesz uruchomić polecenie:
vicfg-cfgbackup -server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz
Jak zautomatyzować tworzenie kopii zapasowych konfiguracji ESXi
Jeśli masz dynamicznie zmieniające się środowisko i konfiguracja hostów ESXi często się zmienia, ręczne tworzenie kopii zapasowych hostów ESXi może nie być racjonalne. W takim przypadku można zautomatyzować tworzenie kopii zapasowej konfiguracji ESXi, dodając polecenie tworzenia kopii zapasowej lub skrypt kopii zapasowej zawierający wiele poleceń do harmonogramu.
Crontab jest harmonogramem w systemie Linux. Edytuj konfigurację harmonogramu w systemie Linux, aby okresowo i automatycznie uruchamiać polecenie tworzenia kopii zapasowej konfiguracji ESXi.
crontab -e
Uwaga: Jeśli edytujesz konfigurację crontab po raz pierwszy, powinieneś wybrać domyślny edytor tekstu, który musi być używany do edycji konfiguracji crontab. W naszym przykładzie, używamy /usr/bin/vim.basic do tego celu.
Format konfiguracji crontab jest następujący:
minuty godziny dzień_miesiąca miesiąc dzień_tygodnia Polecenie
Wykonujmy kopię zapasową konfiguracji hosta ESXi co noc o 03:25 rano:
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
Zapisz konfigurację harmonogramu crontab i zamknij edytor tekstowy vim.
:wq
Zaczekajmy na 03:25 AM, aby sprawdzić katalog, do którego muszą być zapisane pliki konfiguracyjne kopii zapasowych ESXi.
ls -al
Jak widać na poniższym zrzucie ekranu, plik kopii zapasowej konfiguracji hosta ESXi został utworzony o 03:25 automatycznie.
Teraz kopia zapasowa konfiguracji ESXi została wykonana automatycznie, co jest świetne, ale ma pewną wadę. Za każdym razem, gdy crontab uruchamia zaplanowane polecenie w celu wykonania kopii zapasowej konfiguracji ESXi, poprzedni plik tgz jest nadpisywany przez nowy plik tgz. Sytuacja ta może powodować problemy, jeśli backup z poprawną konfiguracją ESXi wykonany wczoraj zostanie nadpisany przez plik utworzony dzisiaj, który zawiera niepoprawną konfigurację ESXi. Właściwym sposobem zapobiegania takim problemom jest tworzenie kopii zapasowych konfiguracji ESXi w różnych plikach.
Stwórzmy prosty skrypt zapisujący konfigurację ESXi za każdym razem jako osobny plik o unikalnej nazwie, który w nazwie pliku zawiera datę i godzinę utworzenia pliku kopii zapasowej konfiguracji ESXi. Tworzenie skryptu umożliwia dodawanie poleceń do tworzenia kopii zapasowych wielu hostów ESXi poprzez uruchamianie pojedynczego 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-$(data +’%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 do pliku i zamknij edytor tekstowy vim.
:wq
4. Uczyń plik wykonywalnym:
chmod +x /backup/esxi_backup.sh
5. Edytuj konfigurację schedulera:
crontab -e
6. Dodaj następującą linię:
50 06 * * * /backup/esxi_backup.sh
Ustawmy crontab, aby uruchamiał skrypt kopii zapasowej konfiguracji ESXi o 06:50 rano. Wyłącz poprzednio dodane zaplanowane zadanie, dodając znak # na początku wiersza.
7. Poczekaj na ustawiony czas, a następnie sprawdź, czy archiwum kopii zapasowej konfiguracji ESXi zostało utworzone.
To jest prosty skrypt, który demonstruje ideę automatyzacji. Można tworzyć złożone skrypty do tworzenia kopii zapasowych wielu hostów ESXi.
Uwaga: Po każdym ponownym uruchomieniu ESXi lub 30 minutach bezczynności sesja ESXi staje się nieuwierzytelniona. Należy pamiętać o tej funkcji podczas tworzenia skryptu do automatycznego tworzenia kopii zapasowych ESXi.
Jak odzyskać konfigurację ESXi w vSphere CLI
Wymagania dotyczące przywracania konfiguracji ESXi za pomocą vSphere CLI są podobne do wymagań obowiązujących w przypadku innych metod. Aby przywrócić konfigurację ESXi, należy upewnić się, że włączony jest zdalny dostęp przez SSH i znany jest adres IP serwera ESXi (zaleca się użycie tego samego adresu IP, co adres IP hosta ESXi z kopii zapasowej), a następnie uruchomić polecenie takie jak:
vicfg-cfgbackup -server=ESXi_host_IP_address -username=root -l backup_file
W naszym konkretnym przykładzie polecenie to:
vicfg-cfgbackup -server=192.168.101.208 -username=root -l /backup/192-168-101-208-esxi-cfg.tgz
Jeśli UUID docelowego hosta ESXi, na którym chcesz przywrócić konfigurację, ma UUID, który różni się od UUID serwera ESXi z kopii zapasowej (którego UUID jest zdefiniowany w pliku Manifest.txt wewnątrz archiwum kopii zapasowej tgz), możesz użyć klucza -f (force), aby nadpisać UUID.
Możesz sprawdzić UUID działającego hosta ESXi za pomocą polecenia, jak pamiętasz:
esxcfg-info -u
Usługiwanie Power CLI do tworzenia kopii zapasowych hosta ESXi
Użytkownicy, którzy lubią system Windows, mogą używać PowerCLI, który jest zestawem cmdletów PowerShell do tworzenia kopii zapasowych konfiguracji ESXi. Kilka podstawowych poleceń PowerCLI zostało wyjaśnionych w tym wpisie. Najpierw należy zainstalować PowerCLI na swoim systemie operacyjnym. Algorytm jest następujący:
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”
Jeśli hosty ESXi są zarządzane przez vCenter Server, można 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 wykonaniem kopii zapasowej konfiguracji każdego hosta.
Connect-VIServer 10.10.10.16
Wprowadź swój login i hasło administracyjne, aby uzyskać dostęp do serwera vCenter. W tym celu pojawi się okno popup.
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”
Jak przywrócić konfigurację ESXi w PowerCLI
Uruchom VMware PowerCLI jako administrator. Połącz się z hostem ESXi, na którym chcesz przywrócić konfigurację (w naszym przykładzie przywrócimy konfigurację na hoście ESXi, którego adres IP to 192.168.101.208). Następnie wprowadź hosta w tryb konserwacji:
Set-VMHost -VMHost 192.168.101.208 -State Maintenance
Przed przystąpieniem do odzyskiwania konfiguracji ESXi upewnij się, że maszyny wirtualne rezydujące na tym hoście ESXi są wyłączone lub zmigrowane do innego hosta ESXi. Należy pamiętać, że po wykonaniu polecenia przywracającego konfigurację, host ESXi zostanie automatycznie zrestartowany. Przywróć konfigurację za pomocą polecenia Set-VMHostFirmware restore:
Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath „C:®backup ESXi hosta ESXi -configBundle-192.168.101.20
8.tgz” -HostUser root -HostPassword TestPass_555
Wersja, numer kompilacji i UUID hosta ESXi, na którym odzyskiwana jest konfiguracja, muszą być zgodne z wersją, numerem kompilacji i UUID hosta ESXi, którego kopii zapasowej używasz do przywracania konfiguracji. Użyj klawisza -force w poleceniu, aby pominąć sprawdzanie UUID.
Ręczna kopia zapasowa i przywracanie konfiguracji ESXi
Powinieneś być również przygotowany na sytuację, w której nie możesz zalogować się do hosta ESXi lub gdy host ESXi nie może się uruchomić i nie możesz użyć interfejsu wiersza poleceń, aby uruchomić polecenie tworzenia kopii zapasowej lub przywracania konfiguracji ESXi. Może się to zdarzyć z powodu awarii sprzętu lub problemów z oprogramowaniem. W takim przypadku lepiej jest wiedzieć, jak tworzyć kopie zapasowe i odzyskiwać konfigurację ESXi ręcznie.
Uwaga: Jak pamiętasz z domyślnej konfiguracji crontab na hoście ESXi, skrypt /sbin/auto-backup.sh jest uruchamiany co godzinę oraz po ponownym uruchomieniu lub wyłączeniu hosta ESXi. Skrypt ten ma za zadanie wykonać kopię zapasową (zapisać) konfiguracji ESXi przechowywanej w pamięci do pliku /bootbank/state.tgz.
Konfiguracja ESXi jest przechowywana w pamięci RAM komputera, gdy uruchomiony jest serwer ESXi (odpowiedni dysk RAM jest zamontowany w katalogu /etc/). Podczas uruchamiania ESXi pliki systemowe są wypakowywane z archiwum /bootbank/state.tgz do katalogu /etc/. Możesz ręcznie skopiować plik /bootbank/state.tgz, jeśli twój host ESXi jest uruchomiony, używając klienta SCP, takiego jak WinSCP (zdalny dostęp SSH musi być włączony). Alternatywnie można uruchomić komputer z dysku Live DVD i ręcznie skopiować plik state.tgz, jeśli hosta ESXi nie można uruchomić (na przykład z powodu awarii sprzętu).
Ręczny proces odzyskiwania
1. Przygotuj archiwum kopii zapasowej, które wykonałeś wcześniej za pomocą ESXi shell, vSphere CLI lub PowerCLI. W naszym przypadku plik ten nazywa się configBundle-192-168-101-208.tgz. Plik ten można skopiować na przykład na pamięć USB i włożyć ją do portu USB serwera ESXi, na którym chcemy odzyskać konfigurację systemu.
2. Uruchomienie z płyty live CD/DVD na komputerze, na którym zainstalowany jest ESXi. Jako live CD/DVD można użyć dysku instalacyjnego Ubuntu.
3. Otwórz konsolę (terminal) w systemie Linux
4. Wylistuj partycje:
ls -al /dev/sd*
fdisk -l | grep /dev/sda
W tym przypadku potrzebujemy partycji /dev/sda5/, która jest oznaczona jako Microsoft basic data.
Partycje dysków ESXi zostały wspomniane we wpisie na blogu dotyczącym uruchamiania ESXi z pamięci USB oraz odzyskiwania hasła ESXi.
Interesuje nas w tym przypadku 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 zawierający konfigurację ESXi. Ten katalog (w którym przechowywany jest plik state.tgz) nosi nazwę /bootblank/, gdy host ESXi jest uruchamiany.
8. Skopiuj archiwum kopii zapasowej konfiguracji ESXi z pamięci USB do katalogu /tmp/directory w Ubuntu załadowanym z 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. Wyodrębnij pliki z archiwum kopii zapasowej:
tar zxvf /tmp/configBundle.tgz
10. Widać, że plik state.tgz został wyodrębniony z archiwum.
ls -al /tmp/
11. Zmień nazwę oryginalnego pliku state.tgz, który znajduje się na partycji /dev/sda5 zamontowanej na /mnt/sda5/
mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz
12. Skopiuj plik state.tgz, który wyodrębniłeś 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. Wysuń Ubuntu Live DVD i uruchom komputer z dysku, na którym zainstalowany jest ESXi.
init 6
15. Teraz konfiguracja ESXi powinna zostać przywrócona.
Wnioski
W dzisiejszym wpisie na blogu omówione zostały cztery metody tworzenia kopii zapasowej i przywracania konfiguracji ESXi. Korzystanie z interfejsu wiersza poleceń ESXi jest dobre, ponieważ nie trzeba instalować dodatkowego oprogramowania; zalety vSphere CLI to możliwość zdalnego uruchamiania poleceń za pomocą maszyn z systemem Linux oraz możliwość zautomatyzowania tworzenia kopii zapasowej konfiguracji ESXi; PowerCLI może być doceniony przez użytkowników Windows. Jeśli Twój host ESXi nie jest zdrowy i nie możesz go uruchomić, istnieje możliwość wykonania kopii zapasowej i przywrócenia konfiguracji ręcznie. Należy pamiętać, że informacje o bootblank oraz informacje o maszynach wirtualnych nie są przechowywane w pliku kopii zapasowej konfiguracji ESXi. Po przywróceniu konfiguracji ESXi może być konieczne zarejestrowanie maszyn wirtualnych w inwentarzu.
Teraz wiesz, jak wykonać kopię zapasową hosta ESXi, ale nie zapomnij wykonać kopii zapasowej swoich maszyn wirtualnych. NAKIVO Backup & Replication jest uniwersalnym rozwiązaniem do tworzenia kopii zapasowych, które może tworzyć kopie zapasowe maszyn wirtualnych VMware, maszyn wirtualnych Hyper-V, instancji Amazon EC2, jak również fizycznych serwerów Linux i Windows. Pobierz w pełni funkcjonalną bezpłatną wersję próbną, aby przekonać się, jak niezawodna może być kopia zapasowa w Twoim środowisku.
Dodaj komentarz