在 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 測試成功。

請問大作何時出版呢,vsphere 4 觀念就是從你的書學到的.
我也不確定能否在六月底前出版,目前正在校稿階段。但這本新書承襲之前的架構所改版,仍然以基礎入門為主 :)
請問如果只使用一台實體PC 實驗測試學習環境時(Lab),是否有可能透過VMware Workstation 8 模擬出VMware vSphere 5 的 Fault Tolerance (VM OS: Windows Server 2008 R2 64Bit ) 完整架構,謝謝。 目前個人計畫想實現Fault Tolerance 的 Lab學習架構: 第一層:實體機安裝的 host OS : Windows Server 2008 R2 64Bit SP1 (1)安裝VMware vCenter Server 5.0 系統。 (2)安裝VMware vSphere Client 5.0。 (3)搭配Microsoft iSCSI Software Target 3.3 成為 VMware vSphere Shared Storage 共享網路儲存裝置) 第二層:VMware Workstation 8 創建的 Nested ESXi 5 Server。 (模擬出VMware vSphere 5 完整架構,並掛載Microsoft iSCSI 共享網路儲存裝置) 第三層:Nested ESXi 創建的 Guet OS :Windows Server 2008 R2 64Bit SP1 (模擬測試 Fault Tolerance 容錯功能)
這樣的安排是可以的,但請確認你的實機記憶體夠多。 如果沒有16GB 的話,建議將 vCenter Server 放在第二層,與Nested ESXi 一起成為 VM。這樣的好處是記憶體分配比較好Control,你給 vCenter VM 多少記憶體就是多少,它不會超用。如果安裝在 Host OS 這一層,基本上 vCenter 會額外吃掉不少 RAM。放第二層的另一個好處是,試用期限到了或是不想玩了,直接關閉 VM 就好,也不用移除。之後還可以順便開一個 vCSA VM 代替 Windows vCenter。
非常感謝 Johnny 提供解說與Lab規劃建議,目前Lab 學習架構更改為: 第一層:實體機安裝的 host OS : Windows Server 2008 R2 64bit (1)安裝VMware vSphere Client 5.0。 (2)搭配Free Microsoft iSCSI Software Target 3.3 成為 VMware vSphere Shared Storage 共享網路儲存裝置) 第二層:VMware Workstation 8 創建VM虛擬機器有三台: (1)Nested ESXi 5 Server 兩台虛擬機器。 (兩台ESXi VM CPU 設定勾選 Virtualize Intel-VT-x/EPT or AMD-V/RVI 選項) (虛擬三張網卡,啟動vMotion 與FT及 iSCSI功能,並掛載Microsoft iSCSI 共享網路儲存裝置) (2)Windows Server 2K8 R2 + vCenter Server 5.0 系統,一台虛擬機器 (建置模擬 vSphere 5 完整架構) 第三層:Nested ESXi 5創建 Guet OS :Windows Server 2008 R2 64Bit SP1 將Guet OS VM Windows Server 2008 R2 的VMX 檔設定檔新增一行 hypervisor.cpuid.v0 = "FALSE" ,可以安裝好Server 2008 R2與VM Tools。 (模擬測試 Fault Tolerance 容錯功能) 經過測試 VMware Workstation 8 真的可以實作出第三層:Nested ESXi 5.0中所創建的 Guet OS :Windows Server 2008 R2 64Bit SP1(Fault Tolerance 容錯功能),即使一台PC 真的很方便研究與學習vSphere 5 完整架構。 ※比較可惜 VMware 原廠 VMware vCenter Server Virtual Appliance (vCSA ,vCenter Server的Linux發行版) 已取消下載點連結。
VMware 取消 vCSA 的下載連結了?我倒是不知道有這回事 @@
請問一下,VMware vSphere 5 能實現,多台實體 ESXi Server,共同 Run 一台 VM Host 嗎? 也就是讓一個 VM Host 可以做實體 ESXi Server 的橫向擴充,像是把很多台實體 Server 做成一台 實體 ESXi Server,讓在上面 RUN 的 VM Host,能同時使用這幾台實體 Server 的 CPU 運算及 RAM
不能,至少以目前來說無法達成。這牽扯到的不只 vmware 一家而已,還有 OS level、Hardware level 的問題。
GUSET OS 可以裝Windows 2012 R2 嗎 謝謝
會一直顯示錯誤 使用某些CPU,64位元虛擬機器才支援記錄/重播功能
您好,並沒有試過 2012 R2 使用 Nested Virtualization 的方式運行 FT,不過如果顯示以上的訊息,應該就是 vSphere 版本或硬體規格不符合的問題。