備份 ESXi 主機設定:4 種不同方法
虛擬化為備份與還原作業帶來多項優勢,這些作業正是資料保護、營運連續性與可用性的核心支柱。最重要的是,虛擬化使無代理程式且基於映像檔的主機層級備份成為可能。這類備份能夠完整擷取虛擬機器,包含虛擬機器的設定以及虛擬機器的資料。
然而,保護主機同樣至關重要,因為健康的 ESXi 主機是虛擬機器正常運作的關鍵。建議您同時備份 ESXi 設定,因為一份可用的主機備份能協助您在數分鐘內還原主機設定,無需從頭建立 ESXi 伺服器。請繼續閱讀以了解 ESXi 主機備份的各種方法。
備份 ESXi 設定主要有四種方法:
- 使用 VMware ESXi 命令列
- 使用 VMware vSphere CLI
- 使用 Microsoft PowerCLI
- 手動備份與還原
掌握多種方法,能讓您在不同情境下執行 ESXi 配置的備份與還原作業時,擁有更大的彈性。
方法 1:使用 ESXi 命令列備份 ESXi 主機
使用 ESXi 命令列是備份 ESXi 主機設定最經濟實惠的方法。您無需安裝任何額外軟體即可使用 ESXi 命令列。您只需 啟用 ESXi 命令列介面並允許透過 SSH 遠端存取 ESXi 主機. 透過 SSH 連線至 ESXi 主機後,即可執行以下指令:
。ESXi 的設定會每小時自動儲存至 /bootblank/state.tgz 檔案。因此,您應立即將當前的 ESXi 設定寫入 ESXi 設定檔案,以確保自上次自動儲存以來對 ESXi 設定所做的所有變更皆已儲存。操作步驟如下:
- 檢查並將 ESXi 設定與持久性儲存裝置同步:
vim-cmd hostsvc/firmware/sync_config - 同步完成後,請備份 ESXi 設定:
vim-cmd hostsvc/firmware/backup_config
因此,您將收到一個連結,用以下載該 configBundle.tgz 從 ESXi 主機備份。
http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz - 請將星號 (
*) 並替換為您的 ESXi 主機的 IP 位址。包含 ESXi 設定備份的壓縮檔將儲存至 /scratch/downloads 目錄中短暫停留(幾分鐘)。
您可以在 ESXi 直接主控台介面中,或透過以下指令在命令列中找到您的 ESXi 主機的 IP 位址:
esxcli network ip interface ipv4 get本範例中使用的 ESXi 主機的 IP 位址是 192.168.101.208
- 請儘快下載 ESXi 備份檔案,並將其存放在安全的地方。
如何在 ESXi 命令列中自動化 ESXi 設定備份
命令列介面的優勢在於能夠實現自動化,而 ESXi 設定的備份也不例外。讓我們來看看具體的操作步驟:
- 在您的 ESXi 資料存放區上建立一個目錄來儲存備份檔案:
mkdir /vmfs/volumes/datastore1/ESXi_backup - 建立一個腳本以備份 ESXi 設定:
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh - 請在腳本中加入以下幾行:
vim-cmd hostsvc/firmware/sync_configvim-cmd hostsvc/firmware/backup_configfind /scratch/downloads/ -name *.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +'%Y%m%d_%H%M%S').tgz ;
- 儲存檔案並退出 vi:
:wqNOTE:為了更方便起見,您也可以將 ESXi 主機名稱或 IP 位址加入備份檔名稱中。這樣有助於避免在有多台 ESXi 主機時產生混淆。 - 將腳本設為可執行:
chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh - 前往腳本的位置:
cd /vmfs/volumes/datastore1/ESXi_backup/ - 執行此腳本:
./esxi_backup.sh - 請確認已建立備份檔案:
ls -al
- 請確認 ESXi 配置備份腳本是否已按排程(自動)執行。為此,請編輯排程器設定:
vi /var/spool/cron/crontabs/root - 請加入以下指令,以設定每天凌晨 02:10 執行 ESXi 配置備份:
10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh - 將變更儲存至檔案中。若要將變更儲存至唯讀檔案中,請輸入:
:wq!另外,您也可以在編輯檔案之前先變更檔案權限:
chmod +w /var/spool/cron/crontabs/root
設定完成後,ESXi 設定檔將於每晚凌晨 02:10 自動備份至以下檔案: ESXi_config_bakup_date_time.tgz
如何在 ESXi 命令列中還原 ESXi 設定
您應在欲還原 ESXi 設定的機器上,安裝與備份來源 ESXi 主機版本及建置編號相同的 ESXi。此規則適用於本篇部落格文章中探討的所有 ESXi 設定還原方法。
若您打算在 從頭開始安裝的 ESXi 主機 (剛安裝完畢),您需要為用於 ESXi 管理網路的網路介面設定 IP 位址,並啟用 SSH 存取。
備份來源的 ESXi 伺服器與將還原設定的 ESXi 伺服器,其 UUID 必須相同。若 UUID 值不同時應遵循的步驟,將於下一節中說明。
若要還原 ESXi 設定:
- 在您將新安裝的 ESXi 主機準備好以從備份還原 ESXi 設定後,請透過 SSH 連線至該 ESXi 主機,並將主機切換至維護模式(在此模式下,虛擬機器將被停止)。
esxcli system maintenanceMode set --enable yes或
vim-cmd hostsvc/maintenance_mode_enter - 請使用 SCP 客戶端(例如 WinSCP)將包含 ESXi 配置備份的壓縮檔複製到 ESXi 主機上的某個目錄中。現在我們來複製該 configBundle-xxxx.tgz 將檔案從本地電腦備份至 /tmp/ 目標 ESXi 伺服器上的目錄。

- 將 configBundle-xxxx.tgz 檔案至 configBundle.tgz 在輸入恢復 ESXi 設定的指令之前。否則,您將會收到錯誤訊息:”找不到檔案 /tmp/configBundle.tgz“.
您可以透過 SSH 連線至 ESXi 命令列介面,並在其中重新命名該檔案:
mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz - 還原 ESXi 設定:
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz執行此指令後,ESXi 主機將會自動重新啟動。

- 重新啟動 ESXi 伺服器後,請退出維護模式,此後即可如常使用該主機。
esxcli system maintenanceMode set --enable no或
vim-cmd hostsvc/maintenance_mode_exit
如何變更 UUID 以還原 ESXi 設定
您可以透過以下兩種方式之一來查看 ESXi 伺服器的 UUID:
- 在 ESXi 命令列介面中:
esxcfg-info -u - 在 Manifest.txt 位於 configBundle.tgz 您使用上述說明的指令所建立的備份檔案。

您無法變更 ESXi 伺服器的 UUID,因為此識別碼是根據硬體生成的。不過,您可以在變更 UUID 後,將 ESXi 主機 A 的 ESXi 設定還原至 ESXi 主機 B。 Manifest.txt 儲存於 configBundle.tgz ESXi 配置備份檔案。
現在讓我們來看看如何變更 UUID,以便將備份的配置套用至另一台實體伺服器。 Server A 是指其設定已備份的伺服器,以及 Server B 是將套用此設定的伺服器。
第一階段
請檢查您要套用備份設定的 ESXi 主機(伺服器 B)的 UUID。這至少有兩種方法可以做到,但第二種方法還可讓您一併確認 ESXi 版本:
- 執行
esxcfg-info -u - 備份 ESXi 伺服器 B 的設定:
vim-cmd hostsvc/firmware/sync_configvim-cmd hostsvc/firmware/backup_config - 將備份檔案複製到暫存目錄,並切換至該目錄:
cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmpcd /tmp/ - 從壓縮檔中解壓縮檔案:
tar zxvf configBundle.tgz - 開啟 Manifest.txt 使用 vi 編輯該檔案,並查看 UUID 值(您會看到一行專門顯示 UUID 的內容)。將 UUID 記錄下來:
vi Manifest.txt在我們的情況下,UUID 為 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
- 您可以在 /tmp/ 目錄:
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
第二階段
- 複製 configBundle.tgz 將 ESXi 伺服器 A 的配置備份存檔複製到伺服器 B,例如複製到 /tmp/ 目錄,並進入該目錄。
- 從 configBundle.tgz 存檔:
tar zxvf configBundle.tgz - 開啟 Manifest.txt 與……提交
vi並將伺服器 A 的 UUID 值更新為伺服器 B 的 UUID:vi Manifest.txt在我們的情況下,我們將 9EA94D56-7E39-96A8-AB45-DF31EF0971EC 改為 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
儲存檔案並關閉文字編輯器:
:wq
- 重新命名您的來源 configBundle.tgz 檔案至 configBundle1.tgz例如(如果您的 ESXi 配置備份檔名稱與 configBundle.tgz(若已完成,可跳過此步驟):
mv configBundle.tgz configBundle1.tgz - 瀝青 Manifest.txt, state.tgz 以及 jumpstrt.gz 檔案至新的 configBundle.tgz 存檔:
tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz - 將 ESXi 主機設為維護模式,並還原設定:
esxcli system maintenanceMode set --enable yesvim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
方法 2:如何使用 vSphere CLI 備份 ESXi 主機
VMware 提供的另一種用於管理 ESXi 主機的命令列介面是 vSphere CLI(請勿與 VMware PowerCLI 混淆)。您應在執行 Linux 或 Windows 的電腦上安裝 vSphere CLI,以便遠端管理 ESXi 主機。 Perl 安裝 vSphere CLI 需具備以下需求。
使用 vSphere CLI 的優勢在於其便利性,以及 Linux 中 bash 的強大功能。此方法對於 ESXi 6.x 特別方便。若您使用的是 ESXi 8,請選擇本文中說明的其他方法。
安裝與設定 vCLI
- 請從 VMware 網站下載適用於您作業系統的 vSphere CLI 版本。本範例使用 Ubuntu Linux。
- 前往下載檔案的位置,並從壓縮檔中解壓縮檔案:
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz - 安裝所需的套件:
apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essentialVMware 的官方建議是安裝這組套件:
apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl - 請前往解壓縮檔案的位置,並執行安裝程式:
./vmware-install.pl - 請閱讀並接受授權協議。若安裝程式要求您安裝某些需求模組,請輸入
y並安裝這些模組。
- 在我們的使用情境下,某些模組必須手動安裝。您可以透過 Perl 的互動式殼層來安裝這些模組。

進入 Perl 的互動式命令列介面:
perl -MCPAN -e shell - 執行以下指令以安裝所需的 Perl 模組:
install Devel::StackTrace請以同樣的方式安裝其他模組。

NOTE:在我們的情況下,有一個模組無法在互動式 Perl 殼層中安裝,但我們可以透過在 Ubuntu 終端機中執行以下指令來安裝該模組:apt-get install libcrypt-ssleay-perl - 安裝完 Perl 模組後,請再次執行 VMware vSphere CLI 安裝程式。
- 安裝已成功完成,此時您將看到以下畫面:

- 現在,讓我們嘗試使用 vSphere CLI,並在 Linux 控制台輸入以下指令,以顯示 ESXi 伺服器的裝置清單:
esxcli --server 192.168.101.208 storage core device list其中 192.168.101.208 是 ESXi 伺服器的 IP 位址。

- 伺服器的 SHA-1 指紋未獲信任,且與 ESXi 主機的連線已失敗。這表示您應基於安全考量定義該指紋。讓我們嘗試執行另一條指令:
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在互動模式下,主控台會提示輸入使用者名稱和密碼。

請盡量避免使用像這樣將使用者名稱和密碼以明文形式輸入的指令:
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 getNOTE:這是出於安全考量。在 Linux 中,已執行的指令會被儲存下來,直到您執行history -c清除歷史紀錄的指令。若您希望避免使用互動模式並手動輸入使用者名稱和密碼,可以將 ESXi 工作階段儲存至檔案,並在執行指令時使用該檔案。與在指令中以明文輸入密碼不同,儲存工作階段是安全的。以下將說明如何儲存工作階段。
儲存拇指印以連線至 ESXi 主機
每次執行命令時都必須輸入 ESXi 指紋,這相當不方便。所幸,您可以儲存該指紋,並在 vSphere CLI 中執行後續命令時,無需再次定義指紋。
- 前往該目錄:
cd /usr/lib/vmware-vcli/apps/general/ - 請執行以下指令:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint在這個具體範例中,指令是:
/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
- 現在,您可以在 vSphere CLI 中執行命令,而無需每次都輸入指紋:
esxcli --server 192.168.101.208 system maintenanceMode get
不過,您仍需輸入使用者名稱和密碼。您可以依照以下各節的說明,設定 vSphere CLI 以便執行命令時無需每次都輸入密碼。
使用會話檔案連線至 ESXi 主機
使用已儲存的會話檔,是透過 vSphere CLI 在遠端 ESXi 主機上執行命令時,避免輸入使用者名稱和密碼的方法之一。
- 建立一個目錄來儲存 ESXi 配置備份檔案,例如: /備份/
mkdir /backup - 前往該目錄:
cd /usr/lib/vmware-vcli/apps/session - 請使用 Perl 腳本並執行以下指令,將您已授權的 ESXi 主機連線儲存至檔案中:
perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555地點:
––savesessionfile /備份/192-168-101-208session 是所建立的會話檔名稱
––伺服器 192.168.101.208 是該 ESXi 主機的名稱,其工作階段已儲存(此 ESXi 主機在多個範例中皆有使用)
––使用者名稱 root 是指連線至 ESXi 主機的使用者名稱
––密碼 TestPass_555 是連線至 ESXi 主機之使用者的密碼
現在您可以無需輸入密碼即可執行指令,但您應輸入 --sessionfile 鍵(選項)並定義工作階段檔案的路徑。
例如:
esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get

使用設定檔連線至 ESXi 主機
此方法的原理是將憑證以純文字形式儲存於設定檔中,並在 vSphere CLI 中執行 ESXi 指令時參照此檔案。
- 建立一個設定檔:
vim /backup/vcli-config - 請在以下欄位中輸入憑證:
VI_USERNAME=rootVI_PASSWORD=TestPass_555 - 儲存檔案。
- 請使用 vSphere CLI 在遠端 ESXi 伺服器上執行此指令:
esxcli --server 192.168.101.208 --config vcli-config system maintenanceMode get
NOTE: 由於憑證是以純文字形式儲存的,因此此方法並不安全。
使用憑證儲存庫連線至 ESXi 主機
憑證儲存庫的位置是在使用者目錄中,位置是 XML 檔案 VMware 子目錄 ~/.vmware/credstore/vicredentials.xml. 使用憑證儲存庫在遠端 ESXi 主機上執行命令的優勢在於,密碼不會以明文形式儲存。因此,此方法能提供更高的安全性。
- 若要將憑證新增至憑證儲存庫,請執行以下指令:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root - 列出儲存於憑證儲存庫中的憑證,以確認所需憑證是否存在:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list - 使用憑證儲存庫,在遠端 ESXi 主機上執行該指令,無需輸入密碼:
# esxcli --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get如果您使用非 root 使用者,憑證檔案將儲存於 /home/使用者名稱/.vmware/credstore/vicredentials.xml

在下方的螢幕截圖中,您可以看到憑證是如何儲存於憑證儲存庫檔案中的。

使用 vSphere CLI 備份 ESXi 主機設定
既然您已在 Ubuntu Linux 機器上設定好 vSphere CLI,現在就可以執行指令並備份 ESXi 設定:
- 前往 /usr/bin/ 目錄:
cd /usr/bin - 若要建立 ESXi 設定的備份,且無需輸入使用者名稱和密碼,請使用以下其中一個指令。
- 對於儲存於憑證儲存庫中的使用者名稱和密碼,請使用以下指令:
vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz - 或者在將工作階段儲存至工作階段檔案後,請使用以下指令:
vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz
NOTE:vicfg- 這些指令已不再建議使用。若 vicfg 在您的使用情境下無法運作,請使用 ESXCLI 在處理最新版本的 ESXi 主機時,請參閱命令列介面中的等效指令。有關其他 ESXi 配置備份方法的指令,請參閱相關說明。使用該方法的缺點是 ––會話檔案 此選項指定在 vSphere CLI 執行最後一個命令後,若處於閒置狀態 30 分鐘所觸發的超時設定。屆時,您必須重新進行驗證並建立新的工作階段檔案。
- 若要在互動模式下輸入密碼時建立 ESXi 設定的備份,您可以執行以下指令:
vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz
- 對於儲存於憑證儲存庫中的使用者名稱和密碼,請使用以下指令:
如何自動化 ESXi 設定備份
如果您處於動態變化的環境中,且 ESXi 主機的配置經常變更,手動備份 ESXi 主機可能並不實際。在這種情況下,您可以透過將備份指令或包含多個指令的備份腳本新增至排程器,來自動化 ESXi 配置的備份。Crontab 是 Linux 系統中的排程工具。
- 在 Linux 中編輯排程器設定,以定期且自動執行 ESXi 設定備份指令。
crontab -eNOTE:如果您是第一次編輯 crontab 設定,應選擇預設的文字編輯器,因為必須使用該編輯器來編輯 crontab 設定。在本範例中,我們使用 /usr/bin/vim.basic 為此目的。crontab 設定的格式如下:
minutes hours day_of_the_month month day_of_the_week command - 讓我們透過在 crontab 設定中加入以下行,每晚凌晨 03:25 備份 ESXi 主機的設定:
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 - 請寫下 crontab 排程程式並關閉文字編輯器 vim (本範例中使用的):
:wq
- 讓我們等到凌晨 03:25 之後,再檢查 ESXi 備份設定檔必須儲存的目錄:
ls -al如下方截圖所示,ESXi 主機設定的備份檔案已於 03:25 自動建立。

現在 ESXi 配置備份已自動建立,這固然很好,但也有一個缺點。每當 crontab 執行排程指令來建立 ESXi 配置備份時,之前的 tgz 檔案將被新檔案覆寫 tgz 檔案。如果前天建立的、包含正確 ESXi 設定的備份檔案,被隔天建立的、包含錯誤 ESXi 設定的檔案所覆寫,可能會導致問題。為避免此問題,您應將 ESXi 設定備份至不同的檔案中。
讓我們建立一個簡單的腳本,每次將 ESXi 設定儲存為獨立檔案,且檔案名稱包含 ESXi 設定備份檔案建立的日期與時間。建立腳本後,您只需執行單一腳本,即可透過新增指令來備份多個 ESXi 主機。
- 建立 esxi_backup.sh 位於 /backup/ 目錄中的檔案:
vim /backup/esxi_backup.sh - 請依下列方式在檔案中新增以下內容:
#!/bin/bashESXI101_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 - 將變更儲存至檔案,並關閉文字編輯器 vim:
:wq - 將檔案設為可執行:
chmod +x /backup/esxi_backup.sh - 編輯排程器設定:
crontab -e - 請按以下方式加入這行:
50 06 * * * /backup/esxi_backup.sh此設定行可讓我們將 crontab 設定為在上午 06:50 執行 ESXi 設定備份腳本。
請在該行程任務的行首加上 # 字元,以停用您先前新增的行程任務。
儲存設定。

- 請等待預設時間,然後檢查 ESXi 配置備份存檔是否已建立。

這是一個簡單的腳本,用以展示自動化的概念。您可以建立更複雜的腳本,用來備份多個 ESXi 主機。
NOTE: 每次 ESXi 重新啟動後,或閒置 30 分鐘後,ESXi 工作階段的驗證即會過期。在建立用於自動執行 ESXi 備份的腳本時,請務必留意此特點。
如何在 vSphere CLI 中還原 ESXi 設定
使用 vSphere CLI 還原 ESXi 設定的需求,與其他方法的需求類似。若要還原 ESXi 設定,請確保已啟用透過 SSH 的遠端存取,且已知 ESXi 伺服器的 IP 位址(建議使用與備份的 ESXi 主機相同的 IP 位址)。
若要還原 ESXi 設定,請執行類似以下的命令:
vicfg-cfgbackup --server=ESXi_host_IP_address --username=root -l backup_file
在這個具體範例中,指令是:
vicfg-cfgbackup --server=192.168.101.208 --username=root -l /backup/192-168-101-208-esxi-cfg.tgz
如果要還原設定的目標 ESXi 主機的 UUID 與已備份的 ESXi 伺服器的 UUID 不同(該 UUID 定義於 Manifest.txt 位於 tgz (備份存檔),您可以使用 -f 鍵值(強制)以覆寫 UUID。

如您所知,您可以透過以下指令查看正在運行的 ESXi 主機的 UUID:
esxcfg-info -u
NOTE: 自 ESXi 7.0 U2 起,若 ESXi 主機上使用了 TPM(可信平台模組),則強制覆寫 UUID 的功能將無法運作。
方法 3:使用 PowerCLI 備份 ESXi 主機
喜歡 Windows PowerShell 的使用者可以使用 用於 vSphere 管理的 PowerCLI 以及備份 ESXi 設定。PowerCLI 是一組 PowerShell 指令,其中一些基本的 PowerCLI 指令說明如下: 這篇部落格文章.
若要使用 PowerCLI 備份 ESXi 主機,您必須先 安裝 PowerCLI 在您的作業系統上:
- 以以下方式執行 PowerCLI: 管理員 在 Windows 中。
- 連線至您的 ESXi 伺服器:
Connect-VIServer ESXi_IP_address -user user_name -password your_password在我們的情況下,我們使用以下指令:
Connect-VIServer 192.168.101.208 -user root -password TestPass_555Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath "C:backup ESXi host"
- 如果您的 ESXi 主機由 vCenter Server 管理,您可以先連線至 vCenter,然後在 PowerCLI 中備份主機上的 ESXi 設定,無需在備份每台主機的設定前每次都進行驗證:
Connect-VIServer 10.10.10.16請輸入您的管理員登入名稱和密碼,以便存取 vCenter Server。系統將顯示一個彈出視窗供您輸入。

- 如果您的 ESXi 主機由 vCenter Server 管理,您可以先連線至 vCenter,然後在 PowerCLI 中備份主機上的 ESXi 設定,無需在備份每台主機的設定前每次都進行驗證:
- 備份每台主機的 ESXi 設定:
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"
如何在 PowerCLI 中還原 ESXi 設定
- 以系統管理員身分執行 VMware PowerCLI。
- 連線至您要還原設定的 ESXi 主機。在本範例中,我們將在 IP 位址為 192.168.101.208 的 ESXi 主機上還原設定
- 將 ESXi 主機切換至維護模式:
Set-VMHost -VMHost 192.168.101.208 -State Maintenance - 在還原 ESXi 設定之前,請務必確保該 ESXi 主機上的虛擬機器已關機,或已遷移至另一台 ESXi 主機。請注意,執行還原設定的指令後,ESXi 主機將會自動重新啟動。
- 使用
Set-VMHostFirmware restore指令:Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:backup ESXi hostconfigBundle-192.168.101.208.tgz" -HostUser root -HostPassword TestPass_555
用於還原設定的 ESXi 主機之版本、建置編號及 UUID,必須與您用以還原設定的備份所對應之 ESXi 主機的版本、建置編號及 UUID 相符。請使用 -force 輸入此指令以跳過 UUID 檢查。
方法 4:手動備份與還原 ESXi 設定
您也應做好準備,以應對無法登入 ESXi 主機,或 ESXi 主機無法開機,且無法透過命令列介面執行備份或還原 ESXi 設定指令的情況。這可能是由於硬體故障或軟體問題所致。在此情況下,最好了解如何手動備份和還原 ESXi 設定。
如您所知,在預設情況下 crontab 在 ESXi 主機上的設定,該 /sbin/auto-backup.sh 此腳本每小時執行一次,並在 ESXi 主機重新啟動或關機時執行。此腳本旨在將儲存於記憶體中的 ESXi 設定備份(儲存)至 /bootbank/state.tgz 檔案。
NOTE: 該 /bootbank/state.tgz 若要使用此方法,檔案不得經過加密。
當 ESXi 伺服器正在運行時,ESXi 配置會儲存於電腦的 RAM 中(相應的 RAM 磁碟已掛載在 /etc/ 目錄)。當 ESXi 啟動時,系統檔案會從 /bootbank/state.tgz 歸檔至 /etc/ 目錄。您可以手動複製該 /bootbank/state.tgz 如果您的 ESXi 主機正在運行,請使用 WinSCP 等 SCP 客戶端複製該檔案(必須已啟用遠端 SSH 存取)。此外,您也可以從 Live DVD 開機,並複製該 state.tgz 如果您的 ESXi 主機無法開機(例如因硬體故障),請手動提交檔案。
手動還原工作流程
- 請準備先前使用 ESXi shell、vSphere CLI 或 PowerCLI 建立的備份存檔。檔案名稱是 configBundle-192-168-101-208.tgz 在我們的情況下,您可以將檔案複製到 USB 隨身碟中,然後將該隨身碟插入需要恢復系統設定的 ESXi 伺服器的 USB 埠中。
- 在安裝了 ESXi 的電腦上,從 Live CD/DVD 開機。您可以使用 Ubuntu 安裝光碟作為 Live CD/DVD。
- 在 Linux 中開啟控制台(終端機)。
- 列出磁碟分割:
ls -al /dev/sd*fdisk -l | grep /dev/sda在這種情況下,我們需要 /dev/sda5/ 標記為 Microsoft 基本資料的分區。
在關於……的部落格文章中提到了 ESXi 磁碟分割 從 USB 隨身碟啟動 ESXi 以及 ESXi 密碼還原.

我們對 /dev/sda5 在此情況下,分區。
- 建立將用於掛載 /dev/sda5 分區的目錄:
mkdir /mnt/sda5 - 將磁碟分割掛載至該目錄:
mount /dev/sda5 /mnt/sda5 - 在 /mnt/sda5 目錄中,您可以找到 state.tgz 檔案,其中包含 ESXi 設定。此目錄(位於 state.tgz (儲存的位置)被稱為 /bootblank/ 當 ESXi 主機啟動時。
- 將 ESXi 配置備份檔案從 USB 隨身碟複製到 /tmp/從 Live DVD 載入的 Ubuntu 目錄。在本範例中,我們複製:
cp /media/Ubuntu/Ubuntu 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz - 從備份存檔中提取檔案:
tar zxvf /tmp/configBundle.tgz - 你可以看到,該 state.tgz 檔案已從壓縮檔中解壓縮:
ls -al /tmp/ - 重新命名原始檔案 state.tgz 文件的位置
/dev/sda5已掛載至的分區 /mnt/sda5/mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz - 複製 state.tgz 您從 ESXi 配置備份存檔中解壓縮的檔案(configBundle.tgz) 至 /tmp/ 目錄:
cp /tmp/state.tgz /mnt/sda5/ - 卸載已掛載的分割區:
umount /dev/sda5/ - 重新啟動伺服器。取出 Ubuntu Live DVD,並從安裝了 ESXi 的磁碟開機。
init 6
現在您的 ESXi 設定應該已經還原了。
ESXi 設定備份的最佳實踐
若要將 ESXi 主機備份作業整合至您的整體備份策略中,並確保該策略發揮實效,請遵循 ESXi 配置備份的最佳實踐。透過這些最佳實踐,您可以確保備份的一致性與安全性,並能在需要時進行還原。
定期備份排程
定期執行 ESXi 配置備份非常重要,這能確保備份中能完整記錄各項配置變更,例如網路設定、虛擬機器註冊及其他設定。若您擁有最新的 ESXi 配置備份,即可將 ESXi 主機還原至最新配置狀態,並將停機時間降至最低(無需手動重新設定最近的變更)。
關於 ESXi 配置備份頻率的最佳實踐包括:
- 在進行重大變更(例如更新網路設定、變更虛擬機器設定、變更資料存放區設定等)後,請備份 ESXi 設定。
- 設定定期排程,以確保您記得備份 ESXi 設定。請根據您環境中 ESXi 設定的變更頻率,設定每日、每週或每月的排程。
- 透過在 ESXi 命令列、PowerCLI 及其他受支援的介面中使用排程腳本,來自動化備份作業。
- 請保留在不同時間點建立的多個 ESXi 設定備份版本。如此一來,若較新的設定有誤,或最新設定發生損毀,您便能還原較早的正確設定。
備份檔案的安全防護
請妥善保護 ESXi 備份檔案,以確保第三方、未經授權的使用者或攻擊者無法存取您的 ESXi 設定。此做法不僅能降低安全風險,亦可將意外刪除備份檔案的風險降至最低。
- 請使用加密工具來保護儲存於磁碟或雲端中的備份。針對本機備份,請使用 AES-256 加密。
- 請將備份儲存於存取受限的安全位置(例如專用的備份伺服器,或具備 IAM 政策規範的雲端儲存空間)。
- 僅限授權人員進入。
- 將備份儲存於多個位置(例如:本地儲存裝置、NAS 以及 AWS S3 等雲端服務)。
- 在系統之間傳輸備份檔案時,請使用 SCP 或 SFTP 等安全通訊協定。
測試還原程序
測試 ESXi 備份可讓您確保,一旦發生需要執行還原操作的事件時,相關設定能夠成功還原。進行測試是為了確保還原流程能如預期般完成,並有助於找出潛在問題。
- 請定期測試還原程序,以確保備份的完整性。
- 請在測試用的 ESXi 主機或沙盒環境中還原設定。
- 編寫說明文件,詳述 ESXi 設定還原程序。製作一份逐步指南,說明如何還原 ESXi 設定,內容應包含相關指令及先決條件。
- 請檢查已還原的設定是否正確,包括網路設定、資料存放區對應以及虛擬機器註冊。
模擬災難還原情境,以驗證您的備份與還原策略是否有效。
結論
使用 ESXi 命令列介面(CLI)的好處在於無需安裝額外軟體。vSphere CLI 的優勢在於能夠透過 Linux 機器遠端執行指令,以及能將 ESXi 配置備份流程自動化。另一方面,Windows 使用者可能會更青睞 PowerCLI。
若 ESXi 主機狀態異常且無法開機,您可以手動備份並還原配置。請注意, bootblank ESXi 配置備份檔案中不會儲存虛擬機器相關資訊。還原 ESXi 配置後,您可能需要將虛擬機器註冊到清單中。
除了備份 ESXi 主機外,建議您也備份 vSphere 虛擬機器。 NAKIVO Backup & Replication 這是一款通用的備份解決方案,可備份您的 VMware 虛擬機器、Hyper-V 虛擬機器和 Amazon EC2 執行個體,以及實體 Linux 和 Windows 伺服器。