上期文章示範了如何針對ESX虛擬化平台上運作的VM虛擬主機進行離線備份作業,以及當虛擬主機崩潰時怎樣透過先前的離線備份進行還原作業。但離線備份僅能針對關機狀態的虛擬主機進行備份,這與企業實際營運環境必須保持服務不中斷的理念相違背,因此本文將進一步說明如何採用ESX虛擬化平台內建的vcbMounter及vcbRestore指令,針對持續提供服務的VM虛擬主機,以VCB和Snapshot機制為運作中的虛擬主機進行線上備份和災難復原作業。
雖然可以透過離線備份的方式將VM虛擬主機進行匯出備份的動作,但是這樣的備份方式有兩個非常大的缺點,首先,VM虛擬主機必須為關機狀態才能執行備份作業,另一個缺點是若要一次備份多台虛擬主機時,無法一次全部備份而必須單台執行,如此的備份方式對於企業營運中不重要的服務或是測試機還能接受,但對於必須保持服務不中斷的企業營運環境來說,此種備份方式就不符合需求。
因此本篇將實作利用ESX虛擬化平台中內建的vcbMounter及vcbRestore指令,呼叫VCB(VMware Consolidated Backup)及快照(Snapshot)機制,為運作中的VM虛擬主機進行線上備份作業(備份對象可以是開機、關機、暫停的虛擬主機),最後則分享筆者所撰寫的自動排程備份Script,以達成自動定期備份VM虛擬主機的目的,讓IT預算吃緊的中小企業管理人員,能夠享受到虛擬化技術所帶來的好處,同時又不用擔心VM虛擬主機備份還原的問題。
在ESX虛擬化平台中內建的備份機制為VCB(新版ESXi虛擬化平台則為vStorage API),它的運作方式為透過ESX虛擬化平台的快照機制,為VM虛擬主機的虛擬磁碟(.vmdk)製作一份快照複本,若搭配第三方備份軟體的話,則可以將複製的快照複本,掛載到一台獨立的備份代理伺服器(Backup Proxy Server)上,接著就可以將備份檔案備份到儲存設備或是磁帶機中,如圖1所示。
|
▲ 圖1 VCB(VMware Consolidated Backup)備份機制示意圖。圖片來源:VMware文件—Using VMware Infrastructure for backup and Restore |
當啟動ESX虛擬化平台的快照機制時,ESX Host會採用Pre-Backup Script機制,將VM虛擬主機對虛擬磁碟(.vmdk)寫入的權限關閉,以暫停資料寫入的動作,接著進行虛擬磁碟快照機制。
此時,若VM虛擬主機需要進行資料寫入的動作時,會將快照建立期間的資料寫入至.redo(Redo bitmap files)暫存檔案內,等到快照檔案建立完畢後,先將儲存於.redo暫存檔案中的資料內容回寫到虛擬磁碟(.vmdk)中,再重新開放讓VM虛擬主機可以將資料寫入至虛擬磁碟(.vmdk),最後執行Post-Backup Script機制讓VM虛擬主機繼續運作(圖2)。
|
▲圖2 VCB快照(Snapshot)機制示意圖。圖片來源:VMware文件—Using VMware Infrastructure for backup and Restore |
實作環境
本篇的實作所需的操作平台、作業系統及連線管理軟體,如下所示:
虛擬化技術平台:VMware vSphere ESX 4.1.0(Build Number 260247)
虛擬主機作業系統(Virtual Machine OS):CentOS 6.2(32bit)
連線管理軟體:vSphere Client 4.1.0(Build Number 258902)
VMware Consolidated Backup:Virtual Machine Mount Utility Version 4.0.0(build-260247)
SSH遠端管理ESX虛擬化平台
VCB備份指令vcbMounter及vcbRestore,必須在COS(Service Console)上執行才能運作,無法透過vSphere Client連線管理軟體執行,但若在ESX虛擬化平台本機Console上執行指令的話,則又失去了管理主機的彈性,所以可以使用SSH遠端登入的方式,來進行管理ESX虛擬化平台。
如果使用其他管理者帳號,雖然可以順利登入ESX Host(須確認主機SSH服務已啟動),但是若使用預設的超級管理者帳號root,將會發現無法使用SSH遠端登入ESX虛擬化平台。
無法登入的原因是,ESX虛擬化平台為了減少被密碼暴力攻擊的風險(主機安全性考量),雖然在預設情況下SSH服務會啟動,iptables防火牆也開放遠端連線本機Port 22,但並不允許root管理者帳號可以直接登入。
因為若預設開放root管理者帳號可以SSH遠端登入,那麼當ESX虛擬化平台只要網路狀態連通後,主機便已經暴露在被攻擊的危險當中(因為帳號已經知道了,剩下就只是猜密碼而已)。