實時遷移 (live migration)是指在保證虛拟機上服務正常運作的同時,虛拟機在不同的實體主機之間進行遷移,其邏輯步驟與離線遷移幾乎完全一緻。不同的是,為了保證遷移過程中虛拟機服務的可用,遷移過程僅有非常短暫的停機時間。遷移的前面階段,服務在源主機運作,當遷移進行到一定階段,目的主機已經具備了運作系統的必須資源,經過一個非常短暫的切換,源主機将控制權轉移到目的主機,服務在目的主機上繼續運作。對于服務本身而言,由于切換的時間非常短暫,使用者感覺不到服務的中斷,因而遷移過程對使用者是透明的。線上遷移适用于對服務可用性要求很高的場景。
實驗環境:
192.168.1.190
XenServer1
192.168.1.91
XenServer2
192.168.1.202
ISCSI伺服器
配置ISCSI伺服器;
yum install scsi-target-utils -y
編輯配置檔案/etc/tgt/targets.conf
<target iqn.2014-09.com.tuchao:chap1>
backing-store /dev/sdb
initiator-address 192.168.1.0/24
</target>
重新開機tgt服務;
/etc/init.d/tgtd restart
XenServer1與XenServer2保證相同配置,XenServer的配置在上篇文章有詳細講到。這裡就不重複了。
我們這裡要準備GFS2叢集檔案系統,兩個節點安裝所需要的程式包:
yum install rgmanager cman -y
yum install gfs2-utils -y
yum install iscsi-initiator-utils -y
安裝libvirt,配置網絡橋接;
yum install libvirt -y
service libvirtd start
virsh iface-bridge eth0 xenbr0
來到192.168.1.190安裝配置高可用
建立一個叢集
ccs_tool create gcluster
指令執行成功後,會在/etc/cluster目錄下生成一個cluster.conf的檔案。
添加節點
ccs_tool addnode -n 1 192.168.1.190
ccs_tool addnode -n 2 192.168.1.91
将配置檔案同步到192.168.1.91
scp /etc/cluster/cluster.conf 192.168.1.91:/etc/cluster
兩個節點同時啟動cman;再啟動rgmanager
配置登入ISCSI-Server
iscsiadm -m discovery -t sendtargets -p 192.168.1.202
iscsiadm -m node -T iqn.2014-09.com.tuchao:chap1 -p 192.168.1.202:3260 -l
對共享的iSCSI磁盤分區格式化,然後每個節點重新開機系統。
格式化/dev/sdc1為gfs2檔案系統
指令幫助:
mkfs.gfs2
-J //指定日志區域大小
-j //日志區域個數
-p //指定鎖協定
-t //指定鎖表名稱
mkfs.gfs2 -j 2 -p lock_dlm -t gcluster:sdc1 /dev/sdc1
<a href="http://s3.51cto.com/wyfs02/M01/49/E6/wKiom1QenleAvMGFAAH7bUzEOXY599.jpg" target="_blank"></a>
修改fstab
UUID="b2a73a0e-37e7-511f-f44c-b0274e763a62" /store gfs2 defaults 0 0
啟動服務
service cman start
service rgmanager start
service gfs2 start
<a href="http://s3.51cto.com/wyfs02/M02/49/E6/wKiom1Qen5zCVAflAAHvID_-V4I494.jpg" target="_blank"></a>
遷移環境準備完畢
配置遷移功能,修改配置檔案/etc/xen/xend-config.sxp;
修改以下關鍵幾項:
(xend-relocation-server yes)
(xend-relocation-port 8002)
(xend-relocation-ssl no)
(xend-address '0.0.0.0')
(xend-relocation-address '0.0.0.0')
(xend-relocation-hosts-allow '')
将配置檔案同步到節點二,之後兩個節點重新開機xend服務。
scp /etc/xen/xend-config.sxp 192.168.1.91:/etc/xen/
/etc/init.d/xend restart
<a href="http://s3.51cto.com/wyfs02/M02/49/E8/wKioL1QeqgDRbgbGAAIkqODqWaQ701.jpg" target="_blank"></a>
來到節點一将虛拟機配置檔案同步到節點二,這時虛拟機的磁盤鏡像檔案是放在/store上的;
scp test1 192.168.1.91:/etc/xen/
啟動虛拟機執行個體
xm create test1
我們連上虛拟機,在上面運作一個ping程式,然後執行遷移。
xm migrate test1 192.168.1.91
<a href="http://s3.51cto.com/wyfs02/M01/49/E6/wKiom1QeqSPSunh9AAG5S1IgRBs718.jpg" target="_blank"></a>
我們來到節點二檢視
<a href="http://s3.51cto.com/wyfs02/M00/49/E8/wKioL1Qeqj6Qfj6zAAEn0iKAekg420.jpg" target="_blank"></a>
總結一下:
需要一個共享存儲,用來放在虛拟機執行個體的磁盤鏡像檔案,兩個節點必須挂載到同一個名稱路徑。
需要将虛拟機執行個體的配置檔案,同步到另一個節點的相同位置。
兩個節點需要修改/etc/xen/xend-config.sxp配置檔案,啟動xend服務。
本篇結束,感謝大家閱讀,哪裡有遺漏還請大家多多指點!
本文轉自qw87112 51CTO部落格,原文連結:http://blog.51cto.com/tchuairen/1556729