在 Nested Virtualization 環境下,能夠嘗試使用 Fault Tolerance 功能嗎? 在以前的 vSphere 版本無法達成 (聽說 4.1 有人成功過,不過未經證實),但現在已經可以實現。在小弟即將出版的新書中,只使用一台實體電腦,配備 8GB 記憶體,就實作了 vSphere FT。本月教學文,就將這個部分的內容以及做法,分享給大家。 

但要注意的是,下面的內容是由書裡面後段擷取而來,若讀者不清楚怎麼達成 vSphere in a box,或者沒有一些 vSphere 基礎的話,閱讀起來可能稍微會覺得吃力或不好理解,這一點請各位見諒。

要在 Nested Virtualization 的環境上實作 FT,以我們目前配置的虛擬化環境,實體只有 8GB 記憶體算是相當吃緊,容易出現資源不足的狀況。所以我們要將實作 FT VMVM_B)記憶體配置先調降到 200MB(因 FT reserve VM 現有的 memory),並關閉其餘運作中的 VM

 

 1. 由於 Nested VM 要實作 FT,容易產生資源不足,VM 無法啟動的問題,所以們先將 vSphere HA Admission Control 改為 Disable

   

 

2. 接著請將 3 VM 全部關機,稍後我們只啟動要實作 Fault Tolerance VM_B

   

 

3. 再觀察一下 Datastore VM_B VMDK 大小,目前是採用 thin provisioning

  

 

4. 然後點選VM_B,按右鍵選 Fault Tolerance / Turn On Fault Tolerance

  

 

5. 出現訊息告知,這個 VM thin-provisioned disk 會轉換成 zeroed out diskDRS 自動化將關閉、memory reservation 會等於 VM memory size。按下是Y

  

 

6. 磁碟轉換的過程需要一段時間,然後我們可以看到 VM_B.vmdk 已經完全佔用原始空間了。

  

 

7. Fault Details 顯示有配置上的錯誤產生,因為 CD/DVD 有連接 host device 的關係。

  

 

8. 請將 VM_B CD/DVD 裝置連結取消。

  

 

9. 再點選 VM_B,按下 Power On

  

 

10. 無法 Power On VM_B,主要有 2 個原因,一個是沒有 vNIC FT logging,另一個原因是我們使用 Nested VM,顯示 host 不相容。接下來就要嘗試解決這 2 個問題。

  

 

11. 先看 ESXi01 的網路配置,已經有出現 VM_B secondary VM,但因 primary VM 無法開機,所以 secondary 也無法作用。目前已經沒有剩餘的 vmnic 可以單獨供應給 FT logging,所以我們使用 vSwitch3 VMkernel port,透過 vmnic5 來載送,原本是給 vMotion 單獨使用的,在網路資源有限的情況,就必須是混用的狀態。請在 vSwitch3 按下 Properties

  

12. 點選for vMotion,按一下 Edit

  

 

13. Network Label 改為:for vMotion / FT,並勾選 Fault Tolerance Logging,按 OK

  

 

14. 出現警告訊息,告知此 VMkernel port 會同時載送 FT logging 以及 vMotion,並建議將這兩個區分成不同的 port group,以及使用不同的實體網路卡,否則混用頻寬會互相影響。按下是(Y,表示知道,但仍要繼續。

  

 

15. 配置完成,現在 vmk2 已經可以用來做 FT logging 了。

  

註:這個 Lab 只是要讓各位在 Nested Virtualization 可以實際體驗FT的功能,在企業環境中,請勿真的將 vMotion FT logging traffice 混在一起使用。因 FT 在作用時須一定的頻寬佔用,如果此時再有 vMotion 執行,會有潛在的效能危機。(除非是 10GbE 的環境,並使用 vSphere NIOC 或硬體式頻寬切割來隔離)

 

16. 完成 ESXi01 的網路配置後,接著 ESXi02 也需如此配置一次。

  

17. 點選VM_B,按右鍵選 Edit Settings

  

 

18. 接著我們要調整 VM 參數,讓 Nested VM 的運作模式也能支援 FT。在 Options label 點選 General,再按右邊的 Configuration Parameters

  

 

19. 找到一個名為 replay.supported 的項目,目前 value false

  

 

20. 將它從 false 改成 true

  

   

21. 檢查 replay.allowFT 是否為 true,然後再按 Add Row 新增 replay.allowBTOnly

  

 

22. Power On VM_B,這次沒問題了,開機成功並開始運作 Fault Tolerance

  

 

23. 我們可以在 Virtual Machines label 看到 VM_B 的主體(Primary)與影子(Secondary)同時在運行。

  

 

24. ESXi02 Secondary VM Console 也開啟,現在 Console read-only 狀態。

  

 

25. Fault Tolerance 區塊顯示目前 Secondary VM 狀態良好,vLockstep Interval 傳遞正常。

  

 

26. 操作 VM_B 畫面時,可發現 Secondary VM 跟著連動。

  

 

27. 開啟小畫家寫一些字,證明 Nested VM 下的 Fault Tolerance 測試成功。

  

 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 Johnny 的頭像
Johnny

天空之城 - my Cloud DataCenter

Johnny 發表在 痞客邦 留言(6) 人氣(6,287)