虛擬機動態遷移drbd

衆所周知,xen支持虛擬機的動態遷移,我們實現了一個關於虛擬機動態遷移的實例:

   具體的操作如下:

    (1) 首先安裝drbd的安裝  

DRBD(Distributed Replicated Block Device),分佈式複製塊設備,是一種通過TCP/IP網絡實現塊設備數據實時鏡像的方案

linux version: 2.6.9-5.EL
drbd version:  drbd-8.3.1.tar.gz
     下載地址: http://oss.linbit.com/drbd/

主機
  主機名:iptx1
      IP:172.16.16.15
drbd分區:/dev/sda6 200M

備機
  主機名:iptx2
      IP:172.16.16.11
drbd分區:/dev/sda6 200M

 

修改/etc/hosts
172.16.16.15    iptx1
172.16.16.11    iptx2

 

1. DRBD安裝
# tar zxvf drbd-8.3.1.tar.gz
# cd drbd-8.3.1
# make
# make install

 

2. 測試DRBD模塊是否加載成功
# cd drbd-8.3.1
# insmod drbd/drbd.ko 或者 # modprobe drbd
# lsmod | grep drbd
  提示: drbd                  267132   0

 

3. 配置DRBD
# vi /etc/drbd.conf
-----------------------------
global { usage-count yes; }
       common { syncer { rate 100M; } }
       resource r0 {
            protocol C;
            net {
                 cram-hmac-alg sha1;
                 shared-secret "FooFunFactory";
                 allow-two-primaries;
            }
            on iptx1 {
                 device    /dev/drbd0;
                 disk      /dev/sda6;
                 address   172.16.16.15:7789;
                 meta-disk  internal;
            }
            on iptx2 {
                 device    /dev/drbd0;
                 disk      /dev/sda6;
                 address   172.16.16.11:7789;
                 meta-disk  internal;
            }
       }
-----------------------------
將該文件分別拷貝到兩臺主機上的/etc下面,兩臺主機上一樣

 

4. DRBD啓動


1) 創建供DRBD記錄信息的數據塊
# drbdadm create-md r0
創建塊設備後不需要格式化磁盤分區
刪除磁盤分區格式
# dd if=/dev/zero bs=1M count=1 of=/dev/sda6

 

2) 啓動drbd服務
# service drbd start 或者 /etc/init.d/drbd start
正常情況提示:Starting DRBD resources: [ ].
如果提示找不到peer,請輸入yes永久等待,請檢查/etc/hosts和iptables

 

查看狀態: service drbd status
[root@iptx1 mnt]# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.1 (api:88/proto:86-89)
GIT-hash: fd40f4a8f9104941537d1afc8521e584a6d3003c build by root@localhost , 2010-11-19 14:49:22
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Secondary/ Secondary  UpToDate/UpToDate  C

 

3) 初始化一個爲主機(在iptx1上執行)
drbdsetup /dev/drbd0 primary -o
等待同步完成……

[root@iptx1 mnt]# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.1 (api:88/proto:86-89)
GIT-hash: fd40f4a8f9104941537d1afc8521e584a6d3003c build by root@localhost , 2010-11-19 14:49:22
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary /Secondary  UpToDate/UpToDate  C

 

5. DRBD驗證
1) 在主機上執行
格式化塊設備(只需要格式化主機上的drbd0)
# mkfs.ext3 /dev/drbd0
掛載
# mount /dev/drbd0 /mnt/drbd
創建一個文件
# dd if=/dev/zero of=/mnt/drbd0/tempfile1.tmp bs=104857600 count=2

 

2) 操作完成後,在備機上執行
先停止DRBD
# /etc/init.d/drbd stop

將sda6進行掛載
# mount /dev/sda6 /mnt/drbd

# ls /mnt/drbd -hl
total 201M
drwx------  2 root root  12K Jul 28 23:44 lost+found
-rw-r--r--  1 root root 200M Jul 29 00:20 tempfile1.tmp

# umount /mnt/drbd

 

6.DRBD的主備機切換
有時,你需要將DRBD的主備機互換一下.可以執行下面的操作:
在主機上,先要卸載掉DRBD設備.
[root@iptx1 /]# umount /mnt/drbd

 

將主機降級爲”備機”.
[root@iptx1 /]# drbdadm secondary r0
[root@iptx1 /]# cat /proc/drbd
version: 8.3.1 (api:88/proto:86-89)
GIT-hash: fd40f4a8f9104941537d1afc8521e584a6d3003c build by root@localhost , 2010-11-19 14:49:22
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----
    ns:211748 nr:0 dw:11000 dr:208733 al:27 bm:14 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

 

現在,兩臺主機都是”備機”.

在備機iptx2上,將它升級爲”主機”.
[root@iptx2 /]# drbdadm primary r0
[root@iptx2 /]# cat /proc/drbd
GIT-hash: fd40f4a8f9104941537d1afc8521e584a6d3003c build by root@iptx2 , 2010-11-18 15:18:44
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r---
    ns:0 nr:37 dw:37 dr:0 al:0 bm:1 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
        resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0
        act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0

 

(2) 在根據上述操作完成安裝後,在primary機器的/dev/sda6中加入虛擬機的鏡像,然後完成同步操作,使用xen虛擬機 遷移指令完成遷移。

             xm migrate --live <domU> <destination-host>

           可以具體查詢xen指令和drbd的使用。

 

(3) 如果在同步進行過程中意外中斷了,下次啓動drbd時,

   cat  /proc/drbd

  出現Secondary/Unknown ,Primary/Unknown 兩臺機器的drbd 無法連接

   在secondary機器上執行drbdadm -- --discard-my-data connect r0,然後重新啓動drbd便可連接上。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章