在 Nested Virtualization 環境下,能夠嘗試使用 Fault Tolerance 功能嗎? 在以前的 vSphere 版本無法達成 (聽說 4.1 有人成功過,不過未經證實),但現在已經可以實現。在小弟即將出版的新書中,只使用一台實體電腦,配備 8GB 記憶體,就實作了 vSphere FT。本月教學文,就將這個部分的內容以及做法,分享給大家。
但要注意的是,下面的內容是由書裡面後段擷取而來,若讀者不清楚怎麼達成 vSphere in a box,或者沒有一些 vSphere 基礎的話,閱讀起來可能稍微會覺得吃力或不好理解,這一點請各位見諒。
要在 Nested Virtualization 的環境上實作 FT,以我們目前配置的虛擬化環境,實體只有 8GB 記憶體算是相當吃緊,容易出現資源不足的狀況。所以我們要將實作 FT 的VM(VM_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 disk、DRS 自動化將關閉、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 測試成功。
留言列表