虛擬化的好處之一就是什麼東西都是虛擬出來的,因此透過管理介面將 virtual Machine 在不同的 Server 上做轉移是可行的,這動作就叫做遷移 (migration), Xen 的虛擬化也提供了這一項功能.不過在做遷移時需要注意兩台主機都必須要啟動 RHEL5 的 xend 服務.兩端主機的處理器必需為同型號,比如兩端同時都需要為 x86 或是 EM64T (Intel VT-x) 或是 Itanium IA64 架構的 (Intel VT-i) 或是 AMD-V ,而且目的端主機必需提供足夠的記憶體和硬碟空間,建議兩台主機都處於於同一個網段的網域內.
RHEL5 提供了兩種方式的遷移一是離線 (offline) 另外一種則是線上 (Live) 遷移的方式.
-
離線遷移 (offline Migration)
如果系統還在運行中會被中斷,系統狀態會被暫停(pause),才進行遷移 (migration), 並且在執行遷移成功前 virtual Machine 上的 Guest OS 是無法提供任何服務.直到轉移到另外一台 Host 上. -
線上遷移 (Live Migration or online Migeation)
線上遷移的好處是 Virtual Machine 系統上的 Guest OS 不會因為轉移而造成系統上的服務暫停.
不過在做 migrate 時其 Guest OS 必須儲存在 SAN 或是 NAS 上,目前還不支援由本機硬碟裝置 (local hard drive) 做轉換.千萬不要做本機硬碟是的轉換會造成系統 crash 毀滅.還有一點要注意的是當我們轉換成功之後必須注意網路卡的 MAc 以及 IP ,通常在設定 Virtual Machine 時我們會指定 MAC ,所以不需擔心這一件事,但是當我們設定檔中並沒有特別指定網路卡的 MAC 時,被轉換的系統會因此而改變了 MAC 位置連帶的連 IP 都需要重新設定.
在 xen 底下 migrate 這一項服務被稱為 Relocation.Relocation 此項功能預設為關閉需要修改 xend 的設定檔才能將此項功能開啟.我們先來看看 xend-config.sxp 的設定檔.
假如我是要將 Host1 的 RHEL4 轉換到 Host2 上.Host1 ,Host2 都必須要設定.
[root@host1 ~]# vi /etc/xen/xend-config.sxp (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
-
xend-relocation-server yes
"yes" 代表要啟動 Relocation 的服務 -
xend-relocation-port 8002
Relocation 所使用的 TCP port 預設為 8002 -
xend-relocation-address ''
定義哪些 IP address 執行 relocation 服務,預設為空白表示本機的所有 IP,所以 Host1 以及 Host2 請保持空白就可以.當我們系統有多個 port 時可以限制對外的 port 不能使用這個服務.通常遇到這錯誤的訊息 "Error: Unable to connect to xend: Connection refused. Is xend running?" 就代表目前這 IP address 不在允許範圍內 -
xend-relocation-hosts-allow ''
定義哪些 Host 可以將 Virtual Machine 轉換到這一台 Host 上面,以我們的範例只需要將 Host2 做設定即可.設定可為 IP 或是 FQDN (只要是能解析的都可以).預設為空白也就是接受所有轉換的要求.
設定完畢請將 Host1 以及 Host2 重新啟動 Xend 的服務
[root@host1 ~]# service xend restart [root@host2 ~]# service xend restart
現在回到 Host1 進行 migrate,請先確定 Host1 的 RHEL4 是開啟的
[root@host1 ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 975 4 r----- 1153.6 RHEL4 4 511 1 -b---- 15.0
使用 #xm migrate 指令來進行轉移
[root@Host1 ~]# xm migrate RHEL4 host2
加入參數( -l :–live )代表將進行 Live migration.
[root@Host1 ~]# xm migrate RHEL4 host2 -l
回到 Host2 的 virt-manager 就可以看到 RHEL4 的 Virtual Machine 了,如果看到 "Console is not yet active for guest" 就代表目前還在轉換中.
在做完遷移之後有一點要注意的是,如果你是暫時做遷移的需要再下一次指令將 virtual Machine 遷移回原本的系統即可.如果是打算永久將 virtual Machine 常駐在新的 Server 上時還需要將 Virtual Machine 設定檔一同搬移到新的 Server 上.這樣才算是完整的將 virtual Machine 搬移完成.
參考資料: http://www.cdchen.idv.tw/node/541
One thought on “RHEL5 XEN – migrate (relocation)”