第20章:VI最重要功能的基礎:VMotion

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

VI 最重要功能的基礎:

VMotion

VMware 是全世界最大的虛擬機廠商,其產品佔據了 75% 以上的市場份


額,其產品線的完整、功能的強大、設定的複雜,需要硬體的配合程度,
都再再顯示了其整體解決方案的多面性。VMware 鑽研企業級的應用有十
多年的經驗,當競爭對手還在埋頭單一的虛擬機產品時,VMware 已經開
發出以虛擬機技術為主的整體解決方案了。VMware 的 VI 產品線,不是一
個虛擬機產品,而是一個「以虛擬機為技術」的企業整體解決方案。方案
中的整體服務,可以讓系統當機,計劃停機等惡夢完全消失,提供企業永
遠不中斷的服務。我們在這一章中,就來看看 VI 中最值得期待,也是本
書在 VMware 產品中的壓軸技術: VMotion 。
第 20 章 VI 最重要功能的基礎:VMotion

20.1 使用 VMotion 環境的準備工作


承續上一章,我們在三台實體伺服器上安裝了 vCenter Server 的環境。其中一台
實體伺服器上安裝 VMware Workstation,並且在其上安裝了一台 Windows Server
2003 的虛擬機作為 DC,一台 OpenFiler 的虛擬機作為 iSCSI,其餘的兩台實體伺
服器則分別執行兩台 ESX。為了更有效模擬實際的環境,我們必須先進行整個網路
以及伺服器的規劃,才能運行 VMotion 等功能。

圖 20-1 vc 和 OpenFiler 運行在虛擬機中

20.1.1 網路的劃分
在一個完整的 VI 環境中,不同的功能走不同的網路路由是十分重要的。在本章
VI 的範例中使用了三片網路卡。每一片網路卡連接到不同的實體交換機上,因此
每一片網路卡都必須有一個網段。我們分別以封閉網路的 IP 分配。

20-2
20.1 使用 VMotion 環境的準備工作

y 第一片網路卡:10.0.0.X/255.255.255.0

y 第二片網路卡:10.0.2.X/255.255.255.0

y 第三片網路卡:10.0.3.X/255.255.255.0

圖 20-2 劃分三個網段

20.1.2 虛擬交換機的劃分
在本章的範例中,我們分別在三張不同的網路卡上建立三個虛擬交換機
vSwitch。其上並且有不同的功能。由於 ESX 的網路功能都必須依賴虛擬交換機,
因此我們會在建立功能時同時建立虛擬交換機,並且綁定到不同的網路卡上。

vSwitch0
這 個交 換 機 綁 定在 vmnic0 上, 是 系 統 預設 的 交 換 機。 上 面 有 預設 的 Service
Console 和 給 虛 擬 機 使 用 的 Virtual Machines 通 訊 埠 組 , DNS 指 定 在 vc 這 台
Windows Server 2003 的虛擬機上。

圖 20-3 第一個虛擬交換的設定

20-3
第 20 章 VI 最重要功能的基礎:VMotion

vSwitch1
這個交換機綁定在 vmnic1 上,主要是以 VMotion 為主的 VMkernal 通訊埠所在。
不需要設定 Gateway。

圖 20-4 第二個虛擬交換機的設定為 VMotion

vSwitch2
這個交換機綁定在 vmnic2 上,主要是以 iSCSI 的 VMkernel 為主。為了方便 ESX
系統測試和連通,也特別安裝一個 Service Console 的通訊埠。

圖 20-5 第三個虛擬路由為 iSCSI

20.1.3 ESX 通訊埠 / 組功能劃分


當網路卡、虛擬交換機都分配好之後,我們就必須在每一台 ESX 上設定不同的
通訊埠/組功能了。我們就來看看每一個通訊埠/組的功能。

Service Console 1
這個位於 vmnic0 的 vSwitch0 上的主控台,是安裝 ESX 時預設的。主要是給
vCenter Server 管理用的。使用的 IP 為 10.0.0.10/20。

20-4
20.1 使用 VMotion 環境的準備工作

Service Console 2
這是位於 vmnic2,vSwitch2 上的主控台,我們必須手動安裝。安裝的目的是為
了測試同一網路卡上,同一虛擬交換機上的 iSCSI VMkernel 是否能連通。使用的
IP 為 10.0.3.10/20

VMKernel VMOTION
這是位於 vmnic1 上,vSwitch1 上的 VMkernel 通訊埠。必須手動安裝,安裝時
必須確定 VMotion 啟動。使用的 IP 為「10.0.2.10/20」。在了解執行 VMotion 的網
路設定之後,接下來我們就以上面的流程來製作一個 VMotion 專用的 VMkernel 通
訊埠,替讀者們複習一下製作 VMkernel 的方式。

1. 進 入 vCenter Server , 並 且 在 esx1.vmware.com 這 台 ESX 主 機 上 , 選 擇


「Configuration>Networking>Add Networking」。

圖 20-6 選擇新增網路

2. 由於 VMotion 的動作必須使用 VMkernel,因此我們選擇「VMkernel」,如圖


20-7。

3. 使用另一片網路卡 vmnic1,並且按下「Next」,如圖 20-8。

20-5
第 20 章 VI 最重要功能的基礎:VMotion

圖 20-7 選擇 VMkernel

圖 20-8 使用獨立的網路卡來進行

20-6
20.1 使用 VMotion 環境的準備工作

4. 在 Network Label 的地方我們輸入全大寫的「VMOTION」,最重要的就是下面


「 Use this port for VMotion」 一 定 要 打 勾 。 接 下 我 們 輸 入 這 個 通 訊 埠 的 IP
(10.0.2.10)和 Subnet mask。使用 VMotion 的通訊埠不需要 Gateway。

圖 20-9 給這個 VMkernel 命名為 VMOTION

5. 此時會出現完成之後的網路
示意圖,按下「Finish」繼續。

6. 之 後 我 們 可 以 看 到 這 個
VMkernel 已經建立完成,專
門給 VMotion 用。

7. 同 樣 也 在 esx2.vmware.com
建立一個 IP 為「10.0.2.20」
的 VMkernel 通訊埠。

圖 20-10 建立完成

20-7
第 20 章 VI 最重要功能的基礎:VMotion

VMkernel:iSCSI
這是位於 vmnic2 上,vSwitch2 上的 VMkernel 通訊埠,必須手動安裝,主要是
用於 iSCSI 的通訊。使用的 IP 為「10.0.3.10/20」。

Virtual Machines:VM
這 是 位 於 vmnic0 上 , vSwich0 上 的 Virtual
Machines 通訊埠組。必須手動安裝,主要是用於將
ESX 上虛擬機和實體網路段相連接的通訊埠組,使
用的 IP 為「10.0.0.x」。

本章 VI3 範例的網路總整理 圖 20-11 以後所有的虛擬


機都會使用這個網段
有關新增虛擬交換機、通訊埠組的詳細步驟,讀
者們可以參考第 18 章中的完整說明,我們在此就不再重複了。而在將所有的網路
卡、虛擬路由器和通訊埠/組設定完之後,我們特別將這些網路設定做一個總整理,
在設定時可以參閱下表:

VI 中的網路路由組合
網路卡#1 網路卡#2 網路卡#3

10.0.0.X 10.0.2.X 10.0.3.X


網段
255.255.255.0 255.255.255.0 255.255.255.0

在 ESX 上名稱 vmnic0 vmnic1 vmnic2

所在虛擬交換機 vSwitch0 vSwitch1 vSwtich2

有(系統預設) 無 有(用於 ping 測試)


Service Console
10.0.0.10/20 10.0.3.10/20

無 VMOTION iSCSI
VMkernel
10.0.2.10/20 10.0.3.11/21

Virtual Machine VM 無 無

Group 10.0.0.X 網段

Windows 名稱 Local Area Network Local Area Network 2 Local Area Network 3

20-8
20.1 使用 VMotion 環境的準備工作

20.1.4 虛擬機中的 vc 主機網路卡對應到實體交換機上


我 們 在 每 一 台 實 體 伺 服 器 上 都 安 裝 了 三 片 網 路 卡 。 由 於 安 裝 Windows Server
2003 的實體伺服器使用的是虛擬機,因此我們必須將其上的虛擬機安裝三片虛擬網
路卡,並且將每一片網路卡對應到正確的網段上。

將虛擬網路卡接到實體路由器上
首先我們必須針對 vc 這台虛擬機增加到一共三片的網路卡,並且讓每一片網路
卡對應到實體網路上。我們就來看看步驟。

1. 首先將位於虛擬機中的 vc 這台 Windows
Server 2003 關機。

2. 進入安裝在實體 Windows Server 2003 伺


服 器 的 VMware Workstation 中 。 選 擇
「Edit>Virtual Network Editor」。

3. 選擇「Host Virtual Network Mapping」,


並且選定 VMnet0、VMnet2、VMnet3 作
圖 20-12 選擇設定 VMware
為我們要用的虛擬網路卡。 Workstation 6.5 的網路對應

圖 20-13 選定這三片,其中 VMnet1 被用掉了

20-9
第 20 章 VI 最重要功能的基礎:VMotion

4. 以 VMnet0 為 例 , 我 們 選 擇 實 體 機 上 的 第 一 片 網 路 卡 「 Atheros L1 Gigabit


Ethernet 10/100/1000Base-T Controller」。

圖 20-14 對應到第一片實體網路卡

5. 這樣選的目的就是在 Bridged 模式中,虛擬機 vc 就會直接連上這片網路卡所代


表的實體交換機。舉例來說,這片網路卡在本章的 VI3 範例中,是連線到 10.0.0.X
這個網段,因此在身處虛擬機的 vc 上,也可以直接控制實體伺服器 esx1 和 esx2。

6. 同樣的我們將 VMnet2 對應到第二片實體網路卡上 D-Link,將 VMnet3 對應到


第三片實體網路卡上即可。

圖 20-15 其它的虛擬機路由器也對應到實體網路卡上

替 Windows Server 2003 新增網路卡


當網路卡的對應完畢之後,接下來就是在 VMware Workstation 中替其下的虛擬
機 vc 增加網路卡,以便能對應到實體網路。下面就是步驟。

1. 將虛擬機 vc 先關
機,並且進入其設
定。

2. 在圖 20-16 的畫面
中選擇「Add」。

圖 20-16 新增硬體設備

20-10
20.1 使用 VMotion 環境的準備工作

3. 選擇「Network Adapter」,並且
按下「Next」。

圖 20-17 選擇網路卡

4. 由於 VMnet0 已經對應好,因此
我們就增加第二片網路卡,選擇
「Custom」,並且選擇剛才對應
的 VMnet2 , 按 下 「 Finish 」
即可。

圖 20-18 選擇對應的網路

5. 接下來我們也新增第三片網路卡。

6. 新增完畢後,可以看到這個虛擬機 vc 已
經有三片網路卡了。

圖 20-19 三片網路卡都對應好了

20-11
第 20 章 VI 最重要功能的基礎:VMotion

設定網路卡的 IP 及新增 DNS 記錄


雖然 vc 這台電腦是虛擬機,但其上安裝了 vCenter Server 和 SQL 等重要資料,
並且提供了 DNS 服務,因此我們必須將新增的網路卡 IP 設定完畢,並且將所有參
與 VI3 架構的電腦都在 DNS 中設定記錄。下面就是詳細的步驟。

1. 首先我們進入 vc 這台機器,並且進入網路的設定。

2. 由於第一片網路卡 Local Area Connect 已經設定,我們就直接設定第二片網路


卡的 IP。設定為 10.0.2.1。這邊不需要設定 Gateway。

3. 之後我們也將第三片網路卡的 IP 設定為「10.0.3.1」。

4. 之後我們可以用 ipconfig 來檢查三片網路卡的 IP。

圖 20-20 當網路卡對應完畢之後,可以用 ipconfig 來檢查

5. 接著進入 DNS 的設定,並且將所有電腦(vc、esx1、esx2、openfiler)的三個


網段 IP 都加入 DNS 的設定。

20-12
20.1 使用 VMotion 環境的準備工作

圖 20-21 將四個主機都放入 DNS 中

20.1.5 VI3 主機的設定及說明


在本章的範例中,參與 VI3 架構的電腦一共有四台,分別是 esx1、esx2、vc 和
openfiler。esx1/2 使用的是實體機,而 vc 和 openfiler 則是在 VMware Workstation
中的兩台虛擬機,其中 vc 安裝的是 Windows Server 2003,並且作為 Active Directory
域控制器和 vCenter Server 的主機。我們先分別說明。

主機 vc.vmware.com
是實體機中的虛擬機,安裝 Windows Server 2003,主要的功能為 Active Directory
域控制器、vCenter Server/Client、DNS 等。

主機 openfiler.vmware.com
也是實體機中的虛擬機,安裝 OpenFiler,主要的功能為提供 iSCSI Target Server。

主機 esx1/esx2.vmware.com
兩台執行 ESX 的實體機,被 vc.vmware.com 的主機管理。

參與 VI3 架構的主機總整理
在本小節的最後,我們就來看看這四台參與 VI3 架構的機器列表,讀者們在安裝
前,可以和上面的網路列表做交叉整理。

20-13
第 20 章 VI 最重要功能的基礎:VMotion

VI3 的主機總整理
主機名稱 vc1 openfiler esx1 esx2

位於 VMware 位於 VMware 實體機 實體機


位置 Workstation 中的虛 Workstation 中的虛
擬機 擬機

Active Directory 域 iSCSI ESX 伺服器 ESX 伺服器


制器

SQL
功能
DNS

VCenter
Server/Client

10.0.0.1 10.0.0.2 10.0.0.10 10.0.0.20

IP 10.0.2.1 (無) 10.0.2.10 10.0.2.20

10.0.3.1 10.0.3.2 10.0.3.10 10.0.3.20

20.2 VI3 的動態轉移 – VMotion


一提到 VI3 的強大功能,大部分的人馬上就想到 VMotion。VMotion 目的十分簡
單,就是當有一台實體的 ESX 伺服器停機上,其上的虛擬機可以在最快的時間內
移動到另一台沒有停機的 ESX 實體伺服器,這和 14、15 章介紹的 Hyper-V Live
Migration 幾乎一模一樣。事實上,在 Windows Server 2008 上的虛擬機轉移,只是
利用 Windows Server 2008 本身的 Failover Cluster 功能來轉移虛擬機,當時被稱之
為「Quick Migration」。但由於微軟競爭對手 VMware 的 VMotion 實在是太強悍
了,因此 Live Migration 才在 Windows Server 2008 R2 上出現。

VMotion 在上一代的 ESX 伺服器中就已經出現,這一代的 VMotion 功能上更強,


也支援了更直覺性的操作。我們就在這一小節中,先了解 VMotion 的原理,並且以
上一章建立的範例環境來實際操作 VMotion。

20-14
20.2 VI3 的動態轉移 – VMotion

VMotion 是一切 VI3 高級功能的基礎


VMware 中的 VI3 企業解決方案提供的高級功能如 DRS 、 HA 等等,事實上都是
以 VMotion 為基礎,再加上 VI3 的叢集功能組合而成的。因此在設計一個 VI 環
境時,我們第一個實作的服務一定是 VMotion 。當 VMotion 完成,再加上良好
的叢集設計,才有可能實現 DRS 、 HA 或是 VCB 等服務。

20.2.1 VMotion 的原理


事實上,VMotion 和 Live Migration 可說是使用完全一樣的原理。VMotion 在啟
動之後,系統也是先將在 ESX1 上的虛擬機的記憶體狀態複製到 ESX2 上,再從獨
立的共享儲存接管虛擬機硬碟檔案(VMDK),當所有的動作完成後,就在 ESX2
上啟動這台虛擬機。但 VMotion 的動作和速度,遠非 Live Migration 可比擬,而
VMotion 也必須相當的準備動作才能進行,我們就來看看 VMotion 的進行步驟和
原理。

1. 記憶體的複製

當具有權限的使用者在 vCenter Server 中啟動了由 ESX1 轉移到 ESX2 上的


VMotion 時,此時虛擬機還在正常使用的情況。來源的實體伺服器 ESX1 立即將本
身使用中虛擬機的記憶體分頁複製到目的實體伺服器 ESX2 上。在複製的過程中,
ESX1 上的虛擬機仍然繼續保持服務狀態(如提供客戶端的終端服務)。事實上在
複製的過程中,ESX1 上虛擬機的記憶體分頁還是有可能會改變。ESX 伺服器會將
這些改變記錄下來,這些改變的記錄檔稱之為記憶體對應圖(Memory Bitmap)。
記憶體對應圖並不會記錄記憶體中的內容,反而是記錄內容發生改變的記憶體的位
置,稱之為「髒記憶體(Dirty memory)」。

20-15
第 20 章 VI 最重要功能的基礎:VMotion

圖 20-22 先複製記憶體的位置

2. 虛擬機進入等待狀態

當整個虛擬機的記憶體內容被移轉到目的 ESX 伺服器 ESX2 之後,在 ESX1 上的


虛擬機就會進入靜止狀態(quiesced)。進入靜止狀態的虛擬機無法再提供服務,
如終端服務,但這台虛擬機的資料仍然保持在記憶體中。此時系統會將記憶體對應
圖從 ESX1 複製到 ESX2 上。

圖 20-23 原始主機上的虛擬機會進入等待狀態

20-16
20.2 VI3 的動態轉移 – VMotion

3. ESX2 讀取實際記憶體內容

當 ESX2 獲得記憶體對應圖之後,就會依照圖中的記憶體位置開始複製每一個記
憶體位置中的內容。這個動作就好像 ESX1 先將一個移交清單交給 ESX2,之後
ESX2 就會照著移交清單中的條列,真正將指定的資料從 ESX1 搬到對應的 ESX2
的記憶體中。

圖 20-24 將內容移交清單給 ESX2

4. 啟動 ESX2 上的虛擬機

當 ESX1 上虛擬機進入靜止模式之前的所有記憶體狀態都被複製到 ESX2 上之


後,ESX 上就會根據記憶體對應圖的狀態啟動這個虛擬機(因為 VMDK 都在共享
儲存中)。由於資料早已經存在記憶體中,因此 ESX2 上的虛擬機並不是「重新啟
動」,而是「啟動後直接對應到記憶體上」。這個觀念有點像較新電腦的「狀態存
入硬碟」功能,只是這邊是兩台實體伺服器之間的切換,ESX2 上的虛擬機不是重
啟,而是對應到一個固定的記憶體狀態。

20-17
第 20 章 VI 最重要功能的基礎:VMotion

圖 20-25 啟動 ESX 上的原始虛擬機,讀取其記憶體位置

5. 網路卡 MAC 的重新對應

此時系統會啟動一個稱之為「反向位置解析通訊協定(Reverse Address Resolution


Protocol, RARP)」的動作,在實體的交換機上,將原來 ESX1 所代表的 MAC 位
置換成 ESX2 的 MAC 位置。這麼做的動作是要讓網路上原來存取 ESX1 上虛擬機
的客戶端,在不知情的情況下,將交換機上的封包重新定位到 ESX2 上的虛擬機。

圖 20-26 對應 MAC 位址

20-18
20.2 VI3 的動態轉移 – VMotion

6. 刪除來源機上的記憶體內容

當資料複製完畢,網路 MAC 位址也指向成功之後,虛擬機使用的記憶體就會在


來源的 ESX1 上被刪除,並且記憶體會被釋放出來留給 VMkernel 做為日後的使用。

圖 20-27 將原始 ESX 上的虛擬機刪除

20.2.2 VMotion 的準備工作


除了安裝好 vCenter Server 以及對應的環境之外,我們要在 vCenter Server 中實
行 VMotion,必須滿足三個前題。分別是 ESX 伺服器部分、網路交換機部分以及
虛擬機部分,我們就來看看。

ESX 伺服器部分
ESX 伺服器群的設定是 VMotion 成功的關鍵,因此在執行 VMotion 之前,我們
必須針對兩台伺服器進行檢查。由於我們在上一章已經完成了所有的環境設定,因
此我們只要針對實體伺服器的部分做檢查。

y 參與 VMotion 的所有 ESX 伺服器要聯上同一個共享的外部儲存。本例中兩台


ESX 伺服器都連上了由 OpenFiler 建立的 iSCSI Target Server。

y 兩台參與 VMotion 的 ESX 伺服器必須使用完全一樣的硬體設備,尤其是 CPU。

20-19
第 20 章 VI 最重要功能的基礎:VMotion

„ 同樣的品牌(都是 INTEL 或是 AMD)

„ 同樣的型號(都是 Xeon 5530)

„ 同樣的核心數(都是四核)

„ 同樣的指令集(都支援 SSE4、支援 NX)

„ 如 果 是 64 位 元 的 虛 擬 機 , 都 要 支 援 硬 體 的 虛 擬 機 指 令 ( INTEL-VT 或
AMD-V)

為了不要被排除錯誤佔用太多寶貴的時間和功夫,在準備 VMotion 的執行環境


時,一定要讓所有參與 VMotion 的機器都使用完全一樣的廠牌、型號、CPU、記憶
體大小、HBA 等等,所有的機器都要完全一樣(Completely identical)才行。

網路的需求
要完成 VMotion 的動作,網路上的設定比 CPU 更為重要。兩台參與 VMotion 的
主機,一定要擁有完全一樣名稱的 vSwitch,一樣名稱的 VMkernel Port。如果讀者
們對於 vSwitch、VMkernel 通訊埠這一些觀念還不太熟悉,可以回到 18 章複習一
下,這些都是 VMotion 的基礎,必須了解才能進行 VMotion。我們在此就來檢查
一下執行 VMotion 時,兩台 ESX 上的網路設定

1. 兩台電腦必須連上同一個實體網段,例如都是 10.0.0.X/255.255.255.0 網段。

2. 兩台電腦都有第二張實體網路卡,vmnic1 上都有一個同名同編號的 vSwitch。


這個網路卡專門用來作為 VMotion,如 vmnic1 這個網路卡。

3. 在作為 VMotion 的網路卡 vnmic1 上,要設定一個完全一樣名稱的 vSwitch。,


如 vSwitch1。

4. 在 vSwitch1 之上,都要有一個 VMkernel 通訊埠,用來作為 VMotion 之用。其


名稱要完全一樣,如全大寫的「VMOTION」。注意大小寫要完全一樣。

5. 在給虛擬機用的通訊埠組上,其名稱要完全一樣,如 VM Network。這樣子在
虛擬機從 ESX1 移轉到 ESX2 時,其網路上也能正常使用。

6. 在 ESX1 上所有 vSwtich、通訊埠組的數量、功能和名稱,ESX2 上要完全擁有


一模一樣的。如果 ESX1 有連上某個 VLAN,ESX2 也必須連上一樣的 VLAN。

20-20
20.2 VI3 的動態轉移 – VMotion

7. 確定兩台 ESX 能找到對方。你可以進入任何一台 ESX 上,並且在主控台中 ping


對方的位置。ESX 提供了一個 vmkping 工具,主要用來 ping VMkernel 這個通
訊埠,只要能 ping 通對方,兩台 ESX 在 VMotion 中就沒有什麼問題了。

圖 20-28 必須使用 vmkping 通對方才行

虛擬機的需求
要進行 VMotion 的虛擬機,也必須遵守 VI3 的規定。最重要的就是不能讓這個
虛擬機在兩台實體伺服器之間造成差異,下面就是詳細的說明。

y 虛擬機不可以連上任何只有某台 ESX 主機才辨識出來的裝置。如光碟機、軟碟


機或是 USB、序列埠等等。如果要做 VMotion 的虛擬機必須擁有這些設備,那
麼在進行 VMotion 之前,將這些設備的「Connected」選擇取消。

y 虛擬機不可以連入沒有接上實體網路的虛擬機交換機。

y 虛擬機不可將 CPU 的權限設定到某一個實體 CPU 上

y 虛擬機不可以對應到微軟叢集服務的 Raw 格式磁碟機上

y 和虛擬機有關的所有檔案,包括 VMX、LOG、隨機記憶體檔案(NVRAM)、
VMDK、LCK 等等都必須放在共享的儲存設備上。

y 一定要安裝 VMware Tools。

20-21
第 20 章 VI 最重要功能的基礎:VMotion

圖 20-29 可以在開機前將外加裝置斷開

圖 20-30 一定要安裝 VMware Tools

20.2.3 立即實作 VMotion


在完成了所有 VMotion 的設定之後,讀者們一定認為 VMotion 十分複雜吧!事
實上,就和 Hyper-V 的 Live Migration 一樣,當你的設定完全正確時,啟動 VMotion
竟然只是幾個滑鼠動作就可以完成的事!當然在使用 VMotion 之前,我們得安裝一
個作業系統才能進行 VMotion。

安裝虛擬機作業系統
在 ESX 中安裝 Windows 系列的作業系統時,由於 ESX 本身提供的硬碟為 SCSI,
因此安裝 Windows XP 時必須使用 ESX 中自己附的 SCSI 驅動,並且指定到軟碟中。
而 Windows Server 2003 直接支援 SCSI,因此我們就在 ESX 中安裝一個 Windows
2003 較為方便。而安裝 ESX 中虛擬機的步驟相當簡單,讀者們一定已經駕輕就熟
了,只要注意在安裝 Windows Server 2003 時,在選擇網路卡時,一定要選擇剛才

20-22
20.2 VI3 的動態轉移 – VMotion

設定在 vmnic0/vSwitch0 上的 VM 這個通訊埠組。其它就照常安裝即可。在安裝完


畢後,別忘了安裝 VMware Tools。

圖 20-31 安裝虛擬機時不要忘了選擇在 vmnic0 中建立的虛擬機通訊埠組

先從簡單的非即時轉移開始
在進行 VMotion 之前,我們可以先來看看舊的作法是如何進行的。舉例來說,如
果有一台實體機 ESX1 上運行了一個虛擬機 Windows Server 2003,名字叫 2003,
其提供了終端服務,當我們要針對 ESX1 進行維修時,必須先將 ESX1 上的 2003
關機,移到正常使用的 ESX2 上。在沒有 VMotion 時的作法如下。

1. 確定 ESX1 上的虛擬機 2003 是關機的狀態。

圖 20-32 確定是關機的狀態

20-23
第 20 章 VI 最重要功能的基礎:VMotion

2. 直接將 2003 這個虛擬機從 ESX 上拖到 ESX2 上,或是在虛擬機 2003 上按下滑


右鍵,並且選擇「Migrate」。

圖 20-33 在關機時選擇 Migrate 不是 VMotion

3. 選擇要轉移的機器。

4. 此時系統會 詢問是否要 移動檔案。 由於我們所 有的檔案都 放在獨立 的 iSCSI


上,因此沒必要移動檔案。

圖 20-34 沒有必要移動檔案

20-24
20.2 VI3 的動態轉移 – VMotion

5. 由於沒有需要複製的記憶體,因此可以看到拖
過去之後,虛擬機 2003 就出現在 ESX2 上了。

圖 20-35 出現在 esx2 上了

啟動 VMotion
終於到了等待已久的時刻了!VMotion 的啟動重點,就是 ESX1 上的虛擬機正在
開機狀態,在完全不關機,不影響使用者使用的情況下,將虛擬機 2003 從實體伺
服器 ESX1 移到實體伺服器 ESX2 上。我們就來看看 VMotion 是如何完成的。

1. 確定虛擬機 2003 是在開機狀態,並且 VMware Tools 在虛擬機已經正確安裝啟


動,如圖 20-36。

2. 一樣在虛擬機上按下滑鼠右鍵,並且選擇「Migrate」,如圖 20-37。

圖 20-36 確定是開機狀態 圖 20-37 選擇轉移

20-25
第 20 章 VI 最重要功能的基礎:VMotion

3. 此時系統會要求輸入目的 ESX 伺服器,我們就選擇 ESX2。

圖 20-38 選擇目的伺服器,並且會在下方顯示認證成功

4. 之後系統會驗證是否成功,成功後按下「Next」。

5. 接下來系統會重新驗證一次。我們也在成功後按下「Next」。

圖 20-39 會重新認證一次

20-26
20.2 VI3 的動態轉移 – VMotion

6. 之後系統會要求設定優先序,使用高優先序可以讓整個 VMotion 的速度加快,


因此我們選擇第一項。

圖 20-40 選擇高優先序會讓系統速度加快

7. 之後系統就會再重新確定一次整個設置,按下「Finish」之後就會開始轉移。

圖 20-41 重新確認設置

20-27
第 20 章 VI 最重要功能的基礎:VMotion

8. 此時下方的事件檢視器會列出進度。一般來說,系統會在 10% 的地方停留較


久,主要就是先進行記憶體的複製。

圖 20-42 一般在 10% 會停住,如果這邊沒有通過,一般是 ESX 之間無法找到

9. 當突破 10% 之後,系統的速度就會加快。

圖 20-43 開始加快了

10. 當 VMotion 完成之後,事件檢視器也會顯示 VMotion 完成的畫面。

圖 20-44 事件檢視器會說明 VMotion 完成

圖 20-45 順利移到另一台機器上了

20-28
20.2 VI3 的動態轉移 – VMotion

近距離觀察 VMotion
我們從 vc 主機來 ping 虛擬機 2003,並且直接觀察 VMotion 的作用情況,看看
在整個過程中,虛擬機 2003 是否有停機或是無法使用。

1. 首先我們把虛擬機的 IP 設成 10.0.0.88,和 ESX 及 vc 同一個網段,並且確定能


從 vc 上 ping 通,使用「ping –t 10.0.0.88」。

圖 20-46 開始 ping 虛擬機

2. 在 ping 的同時開啟 VMotion,將 2003 這台虛擬機開始轉移。

3. 我們會發現本來 ping 的時間都在 1ms 以下,但開始 VMotion 之後,整個 ping


的速度慢下來,但還是沒有不通。

圖 20-47 變慢的現象產生時,表示開始轉移了

20-29
第 20 章 VI 最重要功能的基礎:VMotion

4. 此時會有很短的時間,ping 掉了一個封包,但之後馬上恢復。

圖 20-48 大部分的情況下並不會掉封包

5. 當 VMotion 完成時,ping 的速度恢復正常,顯示整個 VMotion 時,虛擬機的服


務幾乎沒有中斷。

圖 20-49 恢復正常

筆者在實際操作 VMotion 時,只要網路的速度夠快,90% 以上的是不會掉封包


的,因此在 VMotion 的操作上,更快速的網路卡、交換機、網路儲存設備等,會讓
整個 VMotion 的轉移更快速完成。

20-30
20.3 本章重點回顧

20.3 本章重點回顧

網路卡#1 網路卡#2 網路卡#3

10.0.0.X 10.0.2.X 10.0.3.X


網段
255.255.255.0 255.255.255.0 255.255.255.0

在 ESX 上名稱 vmnic0 vmnic1 vmnic2

所在虛擬交換機 vSwitch0 vSwitch1 vSwtich2

有(系統預設) 無 有(用於 ping 測試)


Service Console
10.0.0.10/20 10.0.3.10/20

無 VMOTION iSCSI
VMkernel
10.0.2.10/20 10.0.3.11/21

Virtual Machine VM 無 無

Group 10.0.0.X 網段

Windows 名稱 Local Area Network Local Area Network 2 Local Area Network 3

主機名稱 vc1 openfiler esx1 esx2

位於 VMware 位於 VMware 實體機 實體機


位置 Workstation 中的虛 Workstation 中的虛
擬機 擬機

Active Directory 域 iSCSI ESX 伺服器 ESX 伺服器


制器

SQL
功能
DNS

VCenter
Server/Client

10.0.0.1 10.0.0.2 10.0.0.10 10.0.0.20

IP 10.0.2.1 (無) 10.0.2.10 10.0.2.20

10.0.3.1 10.0.3.2 10.0.3.10 10.0.3.20

20-31
第 20 章 VI 最重要功能的基礎:VMotion

1. 準備虛擬機 vc

„ 虛擬機中的 vc 主機網路卡對應到實體交換機上

„ 替 Windows Server 2003 新增網路卡

„ 設定網路卡的 IP 及新增 DNS 記錄

2. VMotion 的原理

„ 記憶體的複製

„ 虛擬機進入等待狀態

„ ESX2 讀取實際記憶體內容

„ 啟動 ESX2 上的虛擬機

„ 網路卡 MAC 的重新對應

„ 刪除來源機上的記憶體內容

3. ESX 伺服器部分

„ 參與 VMotion 的所有 ESX 伺服器要聯上同一個共享的外部儲存。本例中兩


台 ESX 伺服器都連上了由 OpenFiler 建立的 iSCSI Target Server。

„ 兩台參與 VMotion 的 ESX 伺服器必須使用完全一樣的硬體設備,尤其是


CPU。

„ 同樣的品牌(都是 INTEL 或是 AMD)

„ 同樣的型號(都是 Xeon 5530)

„ 同樣的核心數(都是四核)

„ 同樣的指令集(都支援 SSE4、支援 NX)

„ 如果是 64 位元的虛擬機,都要支援硬體的虛擬機指令(INTEL-VT 或 AMD-V)

4. 網路的需求

„ 兩台電腦必須連上同一個實體網段,都是 10.0.0.X/255.255.255.0 網段。

„ 兩 台 電 腦 都 有 第 二 張 實 體 網 路 卡 , vmnic1 上 都 有 一 個 同 名 同 編 號 的
vSwitch。這個網路卡專門用來作為 VMotion,如 vmnic1 這個網路卡。

„ 在作為 VMotion 的網路卡 vnmic1 上,要設定一個完全一樣名稱的 vSwitch1

„ 在 vSwitch1 之上,都要有一個 VMkernel 通訊埠 VMOTION」

20-32
結語

„ 在給虛擬機用的通訊埠組上,其名稱要完全一樣,如 VM Network 在 ESX1


上所有 vSwtich、通訊埠組的數量、功能和名稱,ESX2 上要完全擁有一模
一樣的。如果 ESX1 有連上某個 VLAN,ESX2 也必須連上一樣的 VLAN。

„ 確定兩台 ESX 能找到對方。只要能 ping 通對方,兩台 ESX 在 VMotion 中


就沒有什麼問題了。

5. 執行 VMotion 虛擬機的需求

„ 虛擬機不可以連上任何只有某台 ESX 主機才辨識出來的裝置。如光碟機、


軟碟機或是 USB、序列埠等等。如果要做 VMotion 的虛擬機必須擁有這些
設備,那麼在進行 VMotion 之前,將這些設備的「Connected」選擇取消。

„ 虛擬機不可以連入沒有接上實體網路的虛擬機交換機。

„ 虛擬機不可將 CPU 的權限設定到某一個實體 CPU 上

„ 虛擬機不可以對應到微軟叢集服務的 Raw 格式磁碟機上

„ 和虛擬機有關的所有檔案,包括 VMX、LOG、隨機記憶體檔案(NVRAM)、
VMDK、LCK 等等都必須放在共享的儲存設備上。

„ 一定要安裝 VMware Tools。

6. 實作 VMotion

„ 安裝虛擬機作業系統

„ 從簡單的非即時轉移開始

„ 啟動 VMotion

„ 近距離觀察 VMotion,使用 ping

結語
VMotion 是一切高級 VI 架構的基礎,在 ESX 主機之間移動虛擬機的 DRS、HA
架構都靠著 VMotion 來進行。也許讀者們在經過了將近 90% 的設置,發現 VMotion
竟然只需要幾個動作就可以完成,但 VI 架構的龐大和複雜,必須有多方的配合,
包括硬體、軟體、Active Directory 域、資料庫、vCenter Server,網路環境,獨立
儲存設備等等。當然在完成了 VMotion 之後,接下來的 DRS 和 HA 就好辦了,我
們在接下來的一章,就看看以 VMotion 為基礎,DRS 和 HA 的威力吧!

20-33
第 20 章 VI 最重要功能的基礎:VMotion

20-34

You might also like