posted

0 Comments

作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化暨分散式安全防護技術方案的介紹與推廣。 

 

作為軟體定義資料中心內的網路與安全防護核心虛擬化構件,我們當然應該確認所有NSX相關的組態與構件能夠完善地受到保護,並且在出問題時能夠完整地回復。一般的網路與安全硬體設備的備份與回復方式通常都是將組態複製到一台外部設備如FTP Server進行儲存,然後在硬體失效,更換後再由原有的備份複製回更換的備品機器。NSX的備份與還原機制大致上也雷同,但因為架構上並非單台單台的硬體設備而是集中式架構,且同時具備多種網路及安全的功能,因此在備份與還原上要考慮的也需要更周全。

 

但同樣要提醒大家的,NSX本身的組態復原已經是災害發生後的最後一步。NSX的備份與還原這件事,一定要做、要演練,但應該是備而不用。在走到這最後一步之前,企業在建置NSX時就應該要考慮完整的架構高可靠度,避免系統失效時得要全部重新還原。我們在前面的網誌陸續都已經談到一些,這邊簡單的再列出:

 

  • NSX的所有管理構件,包括NSX Manager / NSX Controller以及相關的企業Infra服務,都應該於底層具備vSphere HA的保護

 

  • NSX Controller VM必須要建三台互為備援,且三台VM應該要放置在不同的vsphere host上,避免單台硬體失效時有兩台以上NSX Controller同時受到影響。因此,NSX Controller VM上應該要設定Anti-Affinity Rule,避免兩個Controller VM飄移到同一台實體主機去

 

  • NSX的Edge Service Gateway以及Logical Router VM在建立時,都應該要啟用High Availability功能,且同樣Active / Standby的Router VM上應設定Anti-Affinity Rule,避免兩個VM跑到同一台Host上

 

接下來我們開始對整個NSX環境應該如何進行備份及回復來進行說明,NSX應該備份的構件包含了下面所列出的不同部分:

 

 

上面列出的五個不同構件的備份沒有先後順序或是從屬的關係,用戶應該各自就這些使用到的構件都進行備份。

 

NSX Manager的備份與還原: 

 

NSX Manager的管理介面內就有備份與還原的相關設定。用戶用管理者帳號由瀏覽器登入NSX Manager頁面後,就可以在Manage頁面內選擇Backups & Restore工作項目進行備份及還原作業:

 

用戶應該先建立一個企業本身使用的FTP伺服器,在上面的頁面內,可以選擇要如何備份到此FTP伺服器內,比如說FTP伺服器的位址、備份的傳輸協定以及連接埠、登入用戶帳號及密碼、存取資料夾、儲存檔案名稱的前置名稱、儲存檔密碼等等。同樣,備份的頻率可以選擇每周、每天、或每小時均可。如果要手動備份,管理者也可以直接按Backup按鈕來手動進行。

 

上面的步驟進行時,建議大家用Screen Capture或相關檔案記錄所有我們設定備份時的FTP hostname / protocol / port / username / password / backup directory / prefix / pass phrase等等資訊。當需要進行還原時,上面的所有資訊都會需要使用到,而且有打錯的話會無法回復,因此請大家要注意。

 

NSX Manager要還原時,步驟如下:

 

  • 重新匯入並建立一台全新的NSX Manager。請注意,NSX唯一支援的Manager還原方式是在一台全新的NSX Manager上,於一台現有已經在運作的NSX Manager上要進行還原是不受支援的
  • 在這台全新的NSX Manager上,於Manage頁面內的Backups and Restore工作項目內,輸入之前採用的FTP Server所有相關資訊。如果所有資訊都輸入正確,之前於不同時間點所進行的備份紀錄都會出現於下面的頁面
  • 選擇要還原的備份檔,按Restore進行還原
  • 登出NSX Manager管理介面再重新登入,等待數分鐘,確認NSX Management Service有重新啟動並回到running的狀態,確認有正常連接到vCenter以及SSO Service
  • NSX Manager的Certificate是沒有備份的,如果之前企業有採用自己簽署的憑證,要再重新輸入

 

NSX Controller的快照與還原: 

 

三台NSX Controller都需要去進行快照動作。在現行的NSX版本,管理介面上僅能進行NSX Controller的快照動作,但無法進行還原動作;而且也沒辦法像NSX Manager一般設定schedule定期進行備份。因此我們的建議反而是找一台Linux機器,然後直接利用NSX的API來進行Controller的快照作業。

 

要進行快照作業前,要確認兩個狀態

 

  • 在NSX Installation的頁面內,顯示各台NSX Controller的狀態是Normal,而非Disconnected或其他異常狀態
  • 各台NSX Controller已經都加入同一個cluster majority

 

完整的指令說明請參考NSX的API Guide。不過在一個Linux機器上,可以很簡單的跑cron-job或是手動下指令來進行快照作業:

 

curl -u admin:<password> -H “Accept: application/octet-stream” -X GET -k https://<NSXManagerIPAddress>/api/2.0/vdn/controller/<controllerID>/snapshot > controller_backup.snapshot 

 

上面的API指令內的括號中,<password>是NSX admin的密碼、<NSXManagerIPAddress>是

NSX Manager VM的IP地址、controllerID則是要快照的那台controller機器ID,比如說controller-1 / controller-3等。藉由上面的API指令於cron-job內執行,可以定期將三台controller的快照取出並儲存,比較會寫script的也可以依據cron-job執行的時間將時間參數放置到儲存的快照檔名內。

 

當我們要將controller組態還原到之前的狀態時,先利用比如說WinSCP / Filezilla等工具,將各台controller備份的快照檔案上傳到各台controller的VM內。接著,利用像是putty以SSH登入到各台controller內 (輸入NSX controller的管理帳號及密碼),以下面的指令還原到之前快照的狀態:

 

restore control-cluster snapshot <filename>

 

上面的filename就是上傳的快照檔案名稱。接著當三台的controller都已經被restore,於第二及第三台controller上要執行下列指令,將這兩台NSX Controller加入第一台NSX Controller所建立的cluster內:

 

join control-cluster <ip of NSX Controller #1>

 

當join完成,controller正常運作時,我們用show controller status應該可以看到下面的訊息:

 

 

三台controller顯示都是Join complete且可以被safely restarted時,Controller的還原作業就成功了。本篇網誌暫先到此,下一篇網誌我們會與大家繼續介紹分散式防火牆、Service Composer、Distributed Switch等的備份與還原作業方式。