天天看點

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

xen虛拟化實戰系列文章清單

<a href="http://koumm.blog.51cto.com/703525/1286408">xen虛拟化實戰系列(七)之xen虛拟機vnc通路配置</a>

<a href="http://koumm.blog.51cto.com/703525/1286477">xen虛拟化實戰系列(十一)之xen虛拟機磁盤檔案挂載</a>

<a href="http://koumm.blog.51cto.com/703525/1286643">xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移</a>

xen虛拟化實戰系列(十三)之xen虛拟機集中管理之convirt

本文是有對我們一個xen虛拟化生産環境将要改造的一個方案而來,在項目上線初期,沒有上存儲,也沒有采用商業化的伺服器虛拟化解決方案如vmware esxi,而是采用的開源的xen虛拟化平台。xen虛拟機磁盤也都是采用本地磁盤,當時為了項目上線,風險也是很大的,隻能充分的做好備份了。現在伺服器運作了幾年,需要更新改造,但是完全采用新的虛拟化方案來安裝,部署,遷移系統,工作量太大,也不太實際,也隻有在原有環境上進行改造了。

初步方案是在虛拟化伺服器增加hba卡,用于連接配接一台現有光纖存儲,虛拟化伺服器連接配接同一個存儲空間,配置成叢集檔案系統,并将虛拟機磁盤檔案遷移到叢集檔案系統上, 這樣就構成了一個高可用的環境架構,本文就是在這種環境背景下進行的一個環境測試。本文出自:http://koumm.blog.51cto.com

架構圖如下:

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

應用場景如下:

(1) 在虛拟化伺服器挂掉的情況下,可以在另一虛拟化伺服器上手動啟動,減少故障時間,最基本的是保證資料不會丢失。

(2) 可以利用xen虛拟化高可用線上遷移,實作虛拟化伺服器計劃内停機。

注:為了實作以上方案測試,采用nfs挂載來模拟叢集檔案系統,實作以上方案與測試。

(1) xen虛拟化伺服器node1

作業系統版本  : oel5.8 x64    

開源xen虛拟化 : 自帶版本     

橋接ip位址1   : 192.168.233.150     

橋接ip位址2   : 10.10.10.10

測試虛拟機:test01

橋接ip位址1 : 192.168.233.133      

橋接ip位址2 : 10.10.10.11

虛拟磁盤檔案位置: /data/test01.img

(2) xen虛拟化伺服器node2

作業系統版本    : oel5.8 x64    

橋接ip位址1   : 192.168.233.151     

橋接ip位址2   : 10.10.10.20

(3) nfs伺服器

作業系統版本 : oel5.8 x64    

橋接ip位址1   : 192.168.233.152     

橋接ip位址2   : 10.10.10.30

(1)  nfs服務配置

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

啟動nfs服務 

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

# chkconfig nfs on 

(2)  xen node1伺服器上

首先關機test01虛拟機,檢視到test01虛拟機的磁盤檔案是/data/test01.img,這裡先将test01.img檔案移到其它目錄,然後挂載nfs目錄到/data目錄下。再将test01.img移回來。

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

挂載nfs目錄

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

将test01.img虛拟磁盤檔案移回到/data目錄下。

配置/etc/fstab加入自動挂載

# vi /etc/fstab

10.10.10.30:/data /data nfs hard,rw,rsize=32768,wsize=32768 0 0

(3) xen node2伺服器上

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

原理: 線上遷移法是通過疊代的方式将記憶體拷貝到目标主機,然後暫停虛拟機100ms以内的時間,這段時間内,将最後修改過的記憶體與cpu狀态發送到目标主機。然後關閉虛拟機,并在目标主機上恢複。

(1) 在xen虛拟主機node2上建立虛拟機配置檔案

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

(2) 修改兩虛拟主機xen配置檔案

注:node1,node2都要修改,這個是最關鍵的内容。

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

18行加上注釋

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

33行取消注釋

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

47行取消注釋

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

60行取消注釋,61上加上注釋

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

(3) 分别重新開機兩虛拟主機xend服務

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移
xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移
xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

檢視虛拟機的ip位址

# xm console test01 

oracle linux server release 5.8    

kernel 2.6.18-308.el5xen on an x86_64 

test01 login: root    

password:     

last login: sun sep  1 00:08:50 on xvc0     

[root@test01 ~]#     

[root@test01 ~]# ifconfig     

eth0      link encap:ethernet  hwaddr 00:16:3e:66:ff:31  

          inet addr:192.168.233.133  bcast:192.168.233.255  mask:255.255.255.0

          up broadcast running multicast  mtu:1500  metric:1     

          rx packets:30 errors:0 dropped:0 overruns:0 frame:0     

          tx packets:24 errors:0 dropped:0 overruns:0 carrier:0     

          collisions:0 txqueuelen:1000     

          rx bytes:3287 (3.2 kib)  tx bytes:2831 (2.7 kib) 

eth1      link encap:ethernet  hwaddr 00:16:3e:1a:00:01  

          inet addr:10.10.10.11  bcast:10.10.10.255  mask:255.255.255.0

          rx packets:32 errors:0 dropped:0 overruns:0 frame:0     

          tx packets:22 errors:0 dropped:0 overruns:0 carrier:0     

          rx bytes:3449 (3.3 kib)  tx bytes:2723 (2.6 kib) 

lo        link encap:local loopback  

          inet addr:127.0.0.1  mask:255.0.0.0     

          up loopback running  mtu:16436  metric:1     

          rx packets:8 errors:0 dropped:0 overruns:0 frame:0     

          tx packets:8 errors:0 dropped:0 overruns:0 carrier:0     

          collisions:0 txqueuelen:0     

          rx bytes:560 (560.0 b)  tx bytes:560 (560.0 b) 

[root@test01 ~]# 

(2) 準備一個視窗不停的ping test01虛拟機ip

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

可以看到整個過程比較平穩,就一兩個包超過1ms,其它都在1ms以下。網絡完全沒有中斷,整個遷移過程比較快速。

(3) 在node1虛拟主機上操作開始遷移

可以看到test01 xen虛拟機在node1 xen虛拟主機上,并開始執行線上遷移指令。

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

# xm migrate -l test01 192.168.233.151 

下面指令用來檢視test01 xen虛拟機在遷移中與遷移後的狀态,可以看到test01 xen虛拟機先變成遷移狀态。遷移完成後,test01 xen虛拟機在node1 xen虛拟主機清單中消失。已經遷移到node2 xen虛拟主機上。

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

(3) 在node2虛拟主機上

下面指令用來檢視test01 xen虛拟機在遷移中與遷移後的狀态,可以看到test01 xen虛拟機在接收遷移狀态。遷移完成後,test01 xen虛拟機在node2 xen虛拟主機上已經成功遷移過來。

xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移

至此xen虛拟化實戰系列(十二)之xen虛拟機高可用之線上遷移文章結束,簡單總結如下:對開源xen真是又愛又恨,希望開源xen在centos6.x能發展更好。

繼續閱讀