Säkerhetskopiera och återställ VMware ESXi Host-konfiguration: En steg-för-steg-guide
On december 3, 2021 by adminBackup är en av de viktigaste åtgärderna för kontinuerlig drift av en IT-infrastruktur. Att köra servrar som virtuella maskiner (VM) på ESXi-värdar i vSphere ger dig större fördelar när du säkerhetskopierar VM-data. Säkerhetskopiering på värdnivå gör att du kan använda användbara funktioner som agentlös säkerhetskopiering, fullständig säkerhetskopiering av virtuella maskiner (VM-data + VM-konfiguration), ögonblicksbilder för att göra säkerhetskopior av pågående virtuella maskiner och låg serverbelastning. Att ha friska ESXi-värdar är en nyckel till framgång när du kör virtuella maskiner. Därför är det bättre att säkerhetskopiera ESXi-konfigurationen. Om något går fel med en ESXi-värd kan konfigurationen således återställas på några minuter utan att man behöver lägga ner mycket tid på att konfigurera en ESXi-server från grunden. Dagens blogginlägg täcker ESXi säkerhetskopieringskonfiguration och utforskar hur man säkerhetskopierar ESXi värd med hjälp av olika metoder.
Användning av ESXi kommandoraden för att säkerhetskopiera ESXi värd
Användning av ESXi kommandoraden är den mest prisvärda metoden för att säkerhetskopiera ESXi värdkonfiguration. Du behöver inte installera någon ytterligare programvara för att använda ESXi kommandoraden. Du måste aktivera ESXi shell och fjärr-SSH-åtkomst till en ESXi-värd. Den här processen förklaras i blogginlägget om ESXCLI. När du har anslutit till din ESXi-värd via SSH kan du köra kommandona.
ESXi-konfigurationen sparas varje timme automatiskt till filen /bootblank/state.tgz. Därför bör du se till att den aktuella ESXi-konfigurationen skrivs till ESXi-konfigurationsfilerna just nu för att bekräfta att alla ändringar som gjorts i ESXi-konfigurationen sedan den senaste autosäkringen sparas:
vim-cmd hostsvc/firmware/sync_config
Backupera ESXi-konfigurationen:
vim-cmd hostsvc/firmware/backup_config
Som ett resultat får du en länk för att ladda ner configBundle.tgz-arkivet från ESXi-värden. Du bör ersätta asterisken med IP-adressen för din ESXi-värd. Arkivfilen som innehåller ESXi-konfigurationsbackupen sparas i katalogen /scratch/downloads under en kort tidsperiod (några minuter). Scratch-partitionen nämndes i blogginlägget om att installera ESXi på ett USB-flashminne.
IP-adressen till din ESXi-värd kan kontrolleras i ESXis direkta konsolgränssnitt eller med följande kommando:
esxcli network ip interface ipv4 get
IP-adressen till den ESXi-värd som används i det aktuella exemplet är 192.168.101.208.
Ladda ner ESXi-backuparkivet så snart som möjligt och förvara det på en säker plats.
Hur man automatiserar säkerhetskopiering av ESXi-konfigurationen i ESXi-kommandoraden
Fördelen med ett kommandoradsgränssnitt är möjligheten att automatisera de uppgifter som det ger; säkerhetskopiering av ESXi-konfiguration är inget undantag. Låt oss gå igenom hur man gör detta:
1. Skapa en katalog för att lagra säkerhetskopieringsfiler på din ESXi-datastore:
mkdir /vmfs/volumes/datastore1/ESXi_backup
2. Skapa ett skript för att ta säkerhetskopiering av ESXi-konfigurationen:
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
3. Lägg till följande rader i skriptet:
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 \;
4. Spara filen och avsluta vi:
:wq
Anmärkningar: För att det ska bli enklare kan du också inkludera namnet på ESXi-värddatorn eller IP-adressen till namnet på säkerhetskopian. Detta hjälper dig att undvika förvirring när du använder flera ESXi-värdar.
5. Gör skriptet körbart:
chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
6. Gå till katalogen där skriptet finns:
cd /vmfs/volumes/datastore1/ESXi_backup/
7. Kör skriptet:
./esxi_backup.sh
8. Kontrollera att en säkerhetskopieringsfil har skapats:
ls -al
9. Låt oss se till att skriptet för säkerhetskopiering av ESXi-värden körs enligt schemat (automatiskt). Redigera schemaläggarens konfiguration för detta ändamål:
vi /var/spool/cron/crontabs/root
10. Lägg till följande sträng för att utföra säkerhetskopiering av ESXi-konfigurationen varje dag klockan 02:10.
10 02 * * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
11. Spara ändringarna i filen. För att spara ändringar i den skrivskyddade filen anger du:
:wq!
Som ett alternativ kan du ändra filbehörigheterna innan du redigerar filen:
chmod +w /var/spool/cron/crontabs/root
Efter det kommer ESXi-konfigurationen att säkerhetskopieras automatiskt klockan 02:10 varje natt till filen som heter ESXi_config_bakup_date_time.tgz
Hur man återställer ESXi-konfiguration i ESXi kommandorad
Du bör ha ESXi med samma version och byggnadsnummer installerat på maskinen där du vill återställa ESXi-konfigurationen. Den här regeln gäller för alla metoder för återställning av ESXi-konfiguration som behandlas i det här blogginlägget. Om du ska återställa ESXi-konfigurationen på den ESXi-värd som är installerad från grunden (tydligt installerad) måste du ange IP-adressen för det nätverksgränssnitt som används för ESXi-hanteringsnätverket och aktivera SSH-åtkomst. Den initiala ESXi-konfigurationen förklaras i det här blogginlägget. UUID måste vara samma på både den ESXi-server som säkerhetskopierades och den ESXi-server som konfigurationen ska återställas på. Nedan i det här avsnittet kan du läsa vad du ska göra om UUID-värdena är olika.
När du har förberett din nyinstallerade ESXi-värd för att återställa ESXi-konfigurationen från en säkerhetskopia ansluter du till ESXi-värden via SSH och går in i underhållsläge på värden.
esxcli system maintenanceMode set -enable yes
eller
vim-cmd hostsvc/maintenance_mode_enter
Kopiera arkivet som innehåller säkerhetskopieringen av ESXi-konfigurationen till någon katalog på en ESXi-värd med hjälp av en SCP-klient, till exempel WinSCP. Låt oss kopiera arkivet configBundle-xxxx.tgz från en lokal dator till katalogen /tmp/ på ESXi-destinationsservern.
Beskriv filen configBundle-xxxx.tgz med namnet configBundle.tgz innan du anger ett kommando för att återställa ESXi-konfigurationen. Annars får du ett felmeddelande: ”File /tmp/configBundle.tgz was not found”.
Du kan byta namn på filen i ESXi-skalet som du har anslutit till via SSH:
mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz
Restaurera ESXi-konfigurationen:
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
När du kör det här kommandot startas en ESXi-värd om automatiskt.
När du har startat om ESXi-servern ska du avsluta underhållsläget, varefter du kan använda värden som vanligt.
esxcli system maintenanceMode set -enable no
eller
vim-cmd hostsvc/maintenance_mode_exit
Hur man ändrar UUID:t för att återställa ESXi-konfigurationen
UUUUID:t för ESXi-servern kan kontrolleras i kommandoradsgränssnittet ESXi med kommandot:
esxcfg-info -u
UUUID-värdet för den säkerhetskopierade ESXi-värden nämns i manifestet.txt-filen i backuparkivet configBundle.tgz som du har skapat med de kommandon som förklaras ovan.
Du kan inte ändra UUID-värdet för ESXi-servern eftersom identifieraren genereras beroende på maskinvaran. Du kan dock återställa ESXi-konfigurationen för ESXi-värd A till ESXi-värd B efter att ha ändrat UUID i filen Manifest.txt som lagras i säkerhetskopieringsarkivet för ESXi-konfiguration configBundle.tgz.
Låt oss utforska algoritmen som kan användas för att ändra UUID:n för att tillämpa den säkerhetskopierade konfigurationen på en annan fysisk server. Server A är en server vars konfiguration säkerhetskopieras och server B är en server som konfigurationen ska appliceras på.
Steg 1
Kontrollera UUID på den ESXi-värd som du vill applicera den säkerhetskopierade konfigurationen på (server B). Detta kan göras med minst två metoder, men med den andra metoden kan du också kontrollera ESXi-versionen.
1. Kör esxcfg-info -u
2.1 Säkerhetskopiera konfigurationen för ESXi-server B
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
2.2 Kopiera backuparkivet till den tillfälliga katalogen och gå till den katalogen
cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp
cd /tmp/
2.3 Extrahera filer från arkivet
tar zxvf configBundle.tgz
2.4 Öppna filen Manifest.txt med vi och kontrollera UUID-värdet (du kommer att se en separat rad med UUID). Skriv ner UUID:
vi Manifest.txt
I vårt fall är UUID:n 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
2.5 Du kan ta bort tillfälliga filer i katalogen /tmp/:
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
Steg 2
1. Kopiera konfigurationsbackuparkivet configBundle.tgz från ESXi-server A till server B, till exempel till katalogen /tmp/ och gå till den katalogen.
2. Extrahera filer från configBundle.tgz archive
tar zxvf configBundle.tgz
3. Öppna filen Manifest.txt med vi och uppdatera UUID-värdet för server A till UUID för server B.
vi Manifest.txt
I vårt fall måste vi ändra 9EA94D56-7E39-96A8-AB45-DF31EF0971EC till 1E9E4D56-B724-DFBE-D19D-4C2D827E0188.
Spara filen och avsluta textredigeraren :wq
4. Byt namn på din källkod configBundle.tgz-filen till configBundle1.tgz, till exempel (om namnet på din säkerhetskopieringsfil för ESXi-konfiguration skiljer sig från configBundle.tgz kan du hoppa över det här steget).
mv configBundle.tgz configBundle1.tgz
5. Tar Manifest.txt, state.tgz och jumpstrt.gz-filer till ett nytt configBundle.tgz-arkiv:
tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz
6. Sätt ESXi-värden i underhållsläge och återställ konfigurationen
esxcli system maintenanceMode set -enable yes
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Hur man säkerhetskopierar ESXi-värd med vSphere CLI
Ett annat kommandoradsgränssnitt som tillhandahålls av VMware för att hantera ESXi-värdar är vSphere CLI (inte att förväxla med VMware PowerCLI). Du bör installera vSphere CLI på en maskin som kör Linux eller Windows för att hantera ESXi-värdar på distans. Perl krävs för att installera vSphere CLI. Fördelen med att använda vSphere CLI är dess förmåga att använda bekvämlighet och kraften hos bash i Linux. Ubuntu Linux används i dagens exempel.
Installation och konfiguration av vCLI
Hämta vSphere CLI från VMwares webbplats.
Gå till katalogen där den nedladdade filen finns och extrahera filerna från arkivet.
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz
Installera de nödvändiga paketen:
Den officiella VMware-rekommendationen är att installera denna uppsättning paket:
apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl
Gå till katalogen där de utdragna filerna finns och kör installationsprogrammet:
./vmware-install.pl
Läs och acceptera licensavtalet. Om installationsprogrammet ber dig installera några nödvändiga moduler skriver du y och installerar modulerna.
Vissa moduler måste installeras manuellt i vårt fall. De kan installeras med hjälp av det interaktiva skalet i Perl.
Gå in i det interaktiva skalet i Perl:
perl -MCPAN -e shell
Kör kommandot för att installera den erforderliga Perlmodulen:
install Devel::StackTrace
Samma sak med att installera andra moduler.
Notera: I vårt fall kunde en modul inte installeras i det interaktiva Perl-skalet, men vi kan installera den modulen med kommandot i Ubuntus konsol:
apt-get install libcrypt-ssleay-perl
När du har installerat Perl-moduler kör du installationsprogrammet VMware vSphere CLI igen.
Installationen har slutförts framgångsrikt och du kan se följande skärm i det här fallet:
Nu ska vi försöka använda vSphere CLI och ange ett kommando i Linux-konsolen för att se en lista över enheter på ESXi-servern (192.168.101.208 är ESXi-serverns IP-adress).
esxcli -server 192.168.101.208 storage core device list
Serverns SHA-1-avtryck är inte betrodd och anslutningen till ESXi-värden har misslyckats. Detta innebär att du bör definiera tumavtrycket av säkerhetsskäl. Låt oss prova ett annat kommando:
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
Användarnamn och lösenord kommer att efterfrågas i konsolen i interaktivt läge.
Försök att inte använda kommandon där användarnamn och lösenord skrivs in som klartext som här:
Detta beror på säkerhetsskäl. De utförda kommandona sparas i Linux tills du kör kommandot history -c för att rensa historiken. Om du behöver undvika att använda det interaktiva läget och ange inloggning och lösenord manuellt kan du spara ESXi-sessionen i filen och använda den här filen när du kör kommandon. Att spara sessioner är säkert, till skillnad från att skriva in ett lösenord som klartext i kommandot. Att spara sessioner förklaras nedan i det här blogginlägget.
Spara ett tumavtryck för anslutning till ESXi-värdar
Att ange ett ESXi-tumavtryck varje gång för att köra ett kommando är inte bekvämt. Lyckligtvis är det möjligt att spara tumavtrycket och köra ytterligare kommandon med vSphere CLI utan att definiera ett tumavtryck.
Gå till katalogen:
cd /usr/lib/vmware-vcli/apps/general/
Du måste köra kommandot på följande sätt:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint
I vårt exempel är kommandot:
/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
Nu kan du köra kommandon i vSphere CLI utan att behöva ange ett tumavtryck varje gång.
esxcli -server 192.168.101.208 system maintenanceMode get
När det gäller att ange inloggning och lösenord har dock inte försvunnit – du måste fortfarande ange inloggning/lösenord. Hur kan du konfigurera vSphere CLI så att kommandon körs utan att du behöver ange ett lösenord varje gång? Svaret på den här frågan finns i avsnitten nedan.
Användning av en sessionsfil för att ansluta till ESXi-värdar
Användning av en sparad sessionsfil är en av metoderna för att undvika att ange användarnamn och lösenord när du kör ett kommando på en fjärr-ESXi-värd med hjälp av vSphere CLI.
Skapa först en katalog för att lagra säkerhetskopieringsfiler för ESXikonfigurationen, till exempel /backup/.
mkdir /backup
Gå till den katalogen:
cd /usr/lib/vmware-vcli/apps/session
Spara din auktoriserade ESXi-värdsession i filen med hjälp av ett Perl-skript med kommandot:
perl save_session.pl -savesessionfile /backup/192-168-101-208session -server 192.168.101.208 -username root -password TestPass_555
Var:
-savesessionfile /backup/192-168-101-208session är namnet på den skapade sessionsfilen
-server 192.168.101.208 är namnet på den ESXi-värd vars session sparas (denna ESXi-värd används i flera exempel)
-username root är namnet på den användare som är ansluten till ESXi-värden
-password TestPass_555 är lösenordet för den användare som är ansluten till ESXi-värden
Nu kan du köra kommandon utan att ange ett lösenord, men du bör ange nyckeln -sessionfile (alternativ) och definiera sökvägen till sessionsfilen. Till exempel:
esxcli -sessionfile /backup/192-168-101-208session system maintenanceMode get
Användning av en konfigurationsfil för anslutning till ESXi-värdar
Tanken bakom den här metoden är att spara autentiseringsuppgifter i konfigurationsfilen som ren text och hänvisa till den här filen när du kör ESXi-kommandon i vSphere CLI. Skapa först en konfigurationsfil:
vim /backup/vcli-config
Inför autentiseringsuppgifter i följande format:
VI_USERNAME=root
VI_PASSWORD=TestPass_555
Spara filen.
Kör ett kommando på en avlägsen ESXi-server med hjälp av vSphere CLI:
esxcli -server 192.168.101.208 -config vcli-config system maintenanceMode get
Då autentiseringsuppgifter sparas som ren text är den här metoden inte säker.
Användning av ett arkiv för autentiseringsuppgifter för anslutning till ESXi-värdar
Ett arkiv för autentiseringsuppgifter är den xml-fil som finns i användarkatalogen i underkatalogen vmware ~/.vmware/credstore/vicredentials.xml. Fördelen med att använda lagret för autentiseringsuppgifter för att köra kommandon på ESXi-värdar på distans är att ett lösenord inte sparas som klartext, därför ger den här metoden högre säkerhet.
För att lägga till autentiseringsuppgifter till lagret för autentiseringsuppgifter kör du kommandot:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -server 192.168.101.208 -username root
Listan över autentiseringsuppgifter som sparats i autentiseringsarkivet för att se till att de nödvändiga autentiseringsuppgifterna finns med:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list
Kör kommandot på fjärr-ESXi-värddatorn utan att ange något lösenord genom att använda autentiseringsarkivet.
# esxcli -server 192.168.101.208 -credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get
Om du använder en användare som inte är root-användare sparas autentiseringsfilen i /home/user_name/.vmware/credstore/vicredentials.xml
På skärmdumpen nedan kan du se hur autentiseringsuppgifter sparas i filen för autentiseringsuppgifter.
Användning av vSphere CLI för att säkerhetskopiera ESXi värdkonfigurationen
Nu när du har konfigurerat vSphere CLI på Ubuntu Linux-maskinen kan du köra kommandona och säkerhetskopiera ESXi konfigurationen.
Gå till katalogen /usr/bin/
cd /usr/bin
Nu kan du göra en säkerhetskopiering av ESXi-konfigurationen utan att ange användarnamn och lösenord efter att ha sparat autentiseringsuppgifter i autentiseringsarkivet:
Och efter att ha sparat en session i sessionsfilen:
vicfg-cfgbackup -sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz
Anmärkning: vicfg-kommandon är föråldrade. Det är bättre att använda ESXCLI-ekvivalenta kommandon i kommandoradsgränssnittet när du arbetar med ESXi-värdar.
Anmärkning: Nackdelen med att använda alternativet -sessionfile är timeout på 30 minuter när det är inaktivt efter att ha kört det sista kommandot i vSphere CLI. Därefter måste du autentisera dig och skapa en sessionsfil igen.
Om du vill skapa en säkerhetskopia av ESXi-konfigurationen samtidigt som du anger ett lösenord i interaktivt läge kan du köra kommandot:
vicfg-cfgbackup -server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz
Hur du gör säkerhetskopiering av ESXi-konfigurationen automatiserad
Om du har en dynamiskt förändrad miljö och konfigurationen av ESXi-värdar ofta ändras, kanske manuell säkerhetskopiering av ESXi-värdar inte är rationell. I det här fallet kan du automatisera din säkerhetskopiering av ESXi-konfigurationen genom att lägga till ett säkerhetskopieringskommando eller ett säkerhetskopieringsskript som innehåller flera kommandon till schemaläggaren.
Crontab är en schemaläggare i Linux. Redigera schemaläggarens konfiguration i Linux för att köra kommandot för säkerhetskopiering av ESXi-konfigurationen periodiskt och automatiskt.
crontab -e
Anmärkning: Om du redigerar crontab-konfigurationen för första gången ska du välja den standardtextredigerare som måste användas för att redigera crontab-konfigurationen. I vårt exempel använder vi /usr/bin/vim.basic för detta ändamål.
Formatet för crontab-konfigurationen är följande:
minuter timmar dag_av_månaden månad månad dag_av_veckan kommando
Låt oss säkerhetskopiera konfigurationen av ESXi-värdarna varje natt klockan 03:25:
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
Skriv konfigurationen för schemaläggaren crontab och avsluta textredigeraren vim.
:wq
Vänta till klockan 03:25 för att kontrollera katalogen som konfigurationsfilerna för ESXi-säkerhetskopiering måste sparas till.
ls -al
Som du ser på skärmdumpen nedan skapades säkerhetskopieringsfilen för ESXi värdkonfigurationen automatiskt klockan 03:25.
Nu har säkerhetskopieringen av ESXi konfigurationen gjorts automatiskt, vilket är bra, men det finns en nackdel. Varje gång när crontab kör ett schemalagt kommando för att göra en säkerhetskopiering av ESXi-konfigurationen skrivs den tidigare tgz-filen över av den nya tgz-filen. Denna situation kan orsaka problem för dig om säkerhetskopian med den korrekta ESXi-konfigurationen som gjordes igår skrivs över av en fil som skapas idag och som innehåller den felaktiga ESXi-konfigurationen. Det rätta sättet att förhindra ett sådant problem är att säkerhetskopiera ESXi-konfigurationen till olika filer.
Låt oss skapa ett enkelt skript för att spara ESXi-konfigurationen varje gång som en separat fil med ett unikt filnamn som innehåller datum och tid för skapandet av säkerhetskopieringsfilen för ESXi-konfigurationen i namnet på filen. Genom att skapa ett skript kan du lägga till kommandon för att säkerhetskopiera flera ESXi-värdar genom att köra ett enda skript.
1. Skapa filen esxi_backup.sh i katalogen /backup/:
vim /backup/esxi_backup.sh
2. Lägg till följande rader i filen:
#!/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. Skriv ändringarna till filen och avsluta textredigeraren vim.
:wq
4. Gör filen körbar:
chmod +x /backup/esxi_backup.sh
5. Redigera schemaläggarens konfiguration:
crontab -e
6. Lägg till en rad som denna:
50 06 * * * * * /backup/esxi_backup.sh
Låt oss ställa in crontab så att skriptet för säkerhetskopiering av ESXi-konfigurationen körs klockan 06:50. Inaktivera den tidigare schemalagda uppgiften som du har lagt till tidigare genom att lägga till tecknet # i början av raden.
7. Vänta på den inställda tiden och kontrollera sedan om arkivet för säkerhetskopiering av ESXi-konfigurationen har skapats.
Detta är ett enkelt skript som visar idén med automatisering. Du kan skapa komplexa skript för att säkerhetskopiera flera ESXi-värdar.
Notera: Efter varje omstart av ESXi eller 30 minuters inaktiv tid blir ESXi-sessionen inte autentiserad. Tänk på den här funktionen när du skapar ett skript för automatiserad säkerhetskopiering av ESXi.
Hur du återställer ESXi-konfiguration i vSphere CLI
Kraven för att återställa ESXi-konfigurationen med hjälp av vSphere CLI liknar de krav som gäller för andra metoder. För att återställa ESXi-konfigurationen ska du se till att fjärråtkomst via SSH är aktiverad och att ESXi-serverns IP-adress är känd (det rekommenderas att använda samma IP-adress som IP-adressen för den säkerhetskopierade ESXi-värden) och sedan köra kommandot enligt följande:
vicfg-cfgbackup -server=ESXi_host_IP_address -username=root -l backup_file
I vårt exempel är kommandot:
vicfg-cfgbackup -server=192.168.101.208 -username=root -l /backup/192-168-101-208-esxi-cfg.tgz
Om UUID:et för den ESXi-målvärd som du vill återställa konfigurationen på har ett UUID som skiljer sig från UUID:et för den säkerhetskopierade ESXi-servern (vars UUID definieras i filen Manifest.txt i tgz-arkivet för säkerhetskopiering), kan du använda nyckeln -f (force) för att åsidosätta UUID:et.
Du kan kontrollera UUID för den ESXi-värd som körs med kommandot, som du minns:
esxcfg-info -u
Användning av Power CLI för säkerhetskopiering av ESXi-värd
Användare som gillar Windows kan använda PowerCLI, som är en uppsättning PowerShell-cmdlets för säkerhetskopiering av ESXi-konfiguration. Några grundläggande PowerCLI-kommandon förklaras i det här blogginlägget. Först måste du installera PowerCLI på ditt operativsystem. Algoritmen är följande:
1. Kör PowerCLI som administratör i Windows.
2. Anslut till din ESXi-server:
Connect-VIServer ESXi_IP_address -user user_name -password your_password
I vårt fall använder vi kommandona:
Connect-VIServer 192.168.101.208 -user root -password TestPass_555
Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath ”C:\backup ESXi host”
Om dina ESXi-värdar hanteras av vCenter Server kan du ansluta till vCenter först och sedan säkerhetskopiera ESXi-konfigurationen på värddatorerna i PowerCLI utan att behöva autentisera dig varje gång innan du säkerhetskopierar varje värdkonfiguration.
Connect-VIServer 10.10.10.16
Inställ din administrativa inloggning och ditt lösenord för åtkomst till vCenter Server. Ett popup-fönster visas för detta ändamål.
Backupera ESXi-konfigurationen för varje värd:
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”
Hur du återställer ESXi-konfigurationen i PowerCLI
Kör VMware PowerCLI som administratör. Anslut till en ESXi-värd som du vill återställa konfigurationen på (i vårt exempel återställer vi konfigurationen på den ESXi-värd vars IP-adress är 192.168.101.208). Gå sedan in i underhållsläge för värden:
Set-VMHost -VMHost 192.168.101.208 -State Maintenance
Säkerställ att de virtuella maskiner som finns på den ESXi-värden är avstängda eller migrerade till en annan ESXi-värd innan du återställer ESXi-konfigurationen. Tänk på att ESXi-värden startas om automatiskt efter att ett kommando för återställning av konfigurationen har utförts. Återställ konfigurationen med kommandot Set-VMHostFirmware restore:
Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath ”C:\backup ESXi host\configBundle-192.168.101.20
8.tgz” -HostUser root -HostPassword TestPass_555
Versionen, byggnadsnumret och UUID för en ESXi-värd på vilken konfigurationen återställs måste matcha versionen, byggnadsnumret och UUID för en ESXi-värd vars säkerhetskopia du använder för att återställa konfigurationen. Använd nyckeln -force i kommandot för att hoppa över UUID-kontrollen.
Manuell säkerhetskopiering och återställning av ESXi-konfiguration
Du bör också vara beredd på en situation där du inte kan logga in på din ESXi-värd, eller när en ESXi-värd inte kan starta upp och du inte kan använda kommandoradsgränssnittet för att köra kommandot för säkerhetskopiering eller återställning av ESXi-konfiguration. Detta kan hända på grund av maskinvarufel eller programvaruproblem. I det här fallet är det bättre att veta hur man säkerhetskopierar och återställer ESXi-konfigurationen manuellt.
Anmärkning: Som du minns från standardkonfigurationen av crontab på en ESXi-värd körs skriptet /sbin/auto-backup.sh varje timme och när en ESXi-värd startas om eller stängs ner. Skriptet är avsett att säkerhetskopiera (spara) ESXi-konfigurationen som lagras i minnet till filen /bootbank/state.tgz.
En ESXi-konfiguration lagras i datorns RAM-minne när en ESXi-server körs (lämplig RAM-disk monteras i katalogen /etc/). När ESXi startar upp extraheras systemfiler från arkivet /bootbank/state.tgz till katalogen /etc/. Du kan manuellt kopiera filen /bootbank/state.tgz om din ESXi-värd är igång genom att använda en SCP-klient som WinSCP (fjärråtkomst via SSH måste vara aktiverad). Som ett alternativ kan du starta upp från Live DVD:n och kopiera filen state.tgz manuellt om din ESXi-värd inte går att starta upp (till exempel på grund av maskinvarufel).
Arbetsflöde för manuell återställning
1. Förbered det säkerhetskopieringsarkiv som du har gjort tidigare med ESXi shell, vSphere CLI eller PowerCLI. Namnet på nämnda fil är configBundle-192-168-101-208.tgz i vårt fall. Du kan till exempel kopiera filen till ett USB-flashminne och sätta in flashminnet i en USB-port på den ESXi-server som du ska återställa systemkonfigurationen på.
2. Starta upp från live-cd:n/dvd:n på den maskin där ESXi är installerat. Du kan använda Ubuntus installationsskiva som live-CD/DVD.
3. Öppna konsolen (terminalen) i Linux
4. Lista partitionerna:
ls -al /dev/sd*
fdisk -l | grep /dev/sda
I det här fallet behöver vi partitionen /dev/sda5/ som är markerad som Microsofts grunddata.
ESXi-diskpartitioner nämndes i blogginlägget om Uppstart av ESXi från ett USB-minne och Återställning av ESXi-lösenord.
Vi är intresserade av partitionen /dev/sda5 i det här fallet.
5. Skapa katalogen som /dev/sda5-partitionen ska monteras i:
mkdir /mnt/sda5
6. Montera diskpartitionen i den katalogen:
mount /dev/sda5 /mnt/sda5
7. I katalogen /mnt/sda5 hittar du filen state.tgz som innehåller ESXi-konfiguration. Den här katalogen (där state.tgz lagras) kallas /bootblank/ när en ESXi-värd startas upp.
8. Kopiera säkerhetskopieringsarkivet för ESXi-konfigurationen från ett USB-minne till /tmp/-katalogen i Ubuntu som laddats från en Live DVD. I vårt exempel kopierar vi:
cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz
9. Extrahera filer från backuparkivet:
tar zxvf /tmp/configBundle.tgz
10. Du kan se att filen state.tgz extraheras från arkivet.
ls -al /tmp/
11. Byt namn på den ursprungliga filen state.tgz som finns på partitionen /dev/sda5 monterad på /mnt/sda5/
mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz
12. Kopiera filen state.tgz som du har extraherat från säkerhetskopieringsarkivet för ESXi-konfiguration (configBundle.tgz) till katalogen /tmp/
cp /tmp/state.tgz /mnt/sda5/
13. Avmontera monterade partitioner
umount /dev/sda5/
14. Starta om servern. Skjut ut Ubuntu Live DVD:n och starta från disken där ESXi är installerat.
init 6
15. Nu bör din ESXi-konfiguration vara återställd.
Slutsats
Dagens blogginlägg har behandlat fyra metoder för att säkerhetskopiera och återställa ESXi-konfiguration. Att använda kommandoradsgränssnittet för ESXi är bra eftersom du inte behöver installera ytterligare programvara; fördelarna med vSphere CLI är möjligheten att köra kommandon på distans med hjälp av Linux-maskiner och möjligheten att göra säkerhetskopieringen av ESXi-konfigurationen automatiserad; PowerCLI kan uppskattas av Windows-användare. Om din ESXi-värd inte är frisk och du inte kan starta upp värden finns det möjlighet att säkerhetskopiera och återställa konfigurationen manuellt. Var medveten om att information om bootblank och information om virtuella maskiner inte lagras i säkerhetskopieringsfilen för ESXi-konfigurationen. När du har återställt ESXi-konfigurationen kan du behöva registrera virtuella maskiner i din inventarieförteckning.
Nu vet du hur du säkerhetskopierar ESXi-värden, men glöm inte att säkerhetskopiera dina virtuella maskiner. NAKIVO Backup & Replication är en universell säkerhetskopieringslösning som kan säkerhetskopiera dina VMware VMs, Hyper-V VMs, Amazon EC2-instanser samt fysiska Linux- och Windows-servrar. Ladda ner den kostnadsfria testversionen med alla funktioner för att se hur tillförlitlig säkerhetskopiering kan vara i din miljö.
Lämna ett svar