DRBD集群部署

DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是经过网络来镜像整个设备。您能够把它看做是一种网络RAID.
    Drbd 负责接收数据,把数据写到本地磁盘,而后发送给另外一个主机。另外一个主机再将数据存到本身的磁盘中。其余所需的组件有集群成员服务,如TurboHA 或 心跳链接,以及一些能在块设备上运行的应用程序
    drbd 1:192.168.6.106
    drbd 2:192.168.6.107
    OS:ubuntu server 8.04.1
    软件: drbd -8.2.6.tar.gz
    分别在两台机器安装,个人机器分区是用LVM来管理的
    因此,我给两台机器都分了一个G,在/dev/www/www~
    1。安装 drbd 所须要的,由于 DRBD 编译在内核里的,因此也要安装linux-headers
    #uname -r 看下内核版本
    2.6.24-19-serve  个人内核版本
    #apt-get install  flex  linux-headers-2.6.24-19-server
    2.编译安装 drbd
    #tar zxvf drbd -8.2.6.tar.gz
    #cd drbd -8.2.6
    #make clean    清除之前历史记录
    #make KDIR=/usr/scr/linux-headers-2.6.24-19-server  编译+内核路径
    #make install   安装
    #groupadd haclient    创建组否则会提示警告
    #chgrp haclient /sbin/drbdsetup
    #chmod o-x /sbin/drbdsetup
    #chmod u+s /sbin/drbdsetup
    3.修改配置文件
    #mv /etc/ drbd .conf /etc/ drbd .conf.bak 备份原配置文件
    #vim /etc/ drbd .conf
    贴入
    common {
    # 设置主备节点同步时的网络速率最大值,单位是字节.
    syncer { rate 10M; }
    }
    resource r0 {
    # 使用协议C.表示收到远程主机的写入确认后,则认为写入完成.
    protocol C;
    disk { on-io-error detach; }
    # 每一个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置.
    on drbd 1 {
    device /dev/ drbd 0;
    disk /dev/www/www;   (若是是新家的硬盘就写 /dev/sdb1;/dev/sdc...)
    address 192.168.6.106:7788;
    meta-disk internal;
    }
    on drbd 2 {
    device /dev/ drbd 0;
    disk /dev/www/www;   (若是是新家的硬盘就写 /dev/sdb1;/dev/sdc...)
    address 192.168.6.107:7788;
    meta-disk internal;
    }
    }
    个人是很简单的,为了测试,还须要你们根据本身的须要本身修改~
    好了两台机器都写完配置文件后,在 drbd 1和 drbd 2上分别输入命令
    #drbdadm create-md r0  “r0”是咱们在 drbd .conf里定义
    弹出的信息,敲回车,若是 drbd .conf配置好的话,有的信息是不会弹出的。
    如今咱们能够启动 DRBD 了,分别在两台主机上执行:
    [root@ drbd 1 local]#/etc/init.d/ drbd start
    [root@ drbd 2 local]#/etc/init.d/ drbd start
    [root@ drbd 1 ~]# cat /proc/ drbd
    version: 8.0.11 (api:86/proto:86)
    SVN Revision: 2713 build by
    root@ drbd 1
    , 2008-06-27 14:07:14 1: cs:Connected st:Secondary/Secondary ds:Inconsistent/Inconsistent C r---
        ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
            resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0
            act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0
    ”/proc/ drbd ”中显示了 drbd 当前的状态.第一行的st表示两台主机的状态,都是”备机”状态.
    ds是磁盘状态,都是”不一致”状态.
    这是因为, DRBD 没法判断哪一方为主机,以哪一方的磁盘数据做为标准数据.因此,咱们须要初始化
    一个主机.在 drbd 1上执行:
    [root@ drbd 1 local]#drbdsetup /dev/ drbd 0 primary -o
  

    主备机状态分别是”主/备”,主机磁盘状态是”实时”,备机状态是”不一致”.

     在第3行,能够看到数据正在同步中,即主机正在将磁盘上的数据,传递到备机上.如今的进度是[>...................] sync'ed:  0.4% (1040316/1040316)K
    稍等一会,在数据同步完后,再查看一下 drbd 1的 DRBD 状态:
   

    磁盘状态都是”实时”,表示数据同步完成了.
    你如今能够把主机上的 DRBD 设备挂载到一个目录上进行使用.备机的 DRBD 设备没法被挂载,由于它是
    用来接收主机数据的,由 DRBD 负责操做.
    在 drbd 1执行
    root@ drbd 1:~# mkfs.ext2 /dev/ drbd 0  (格式化)
    root@ drbd 1:~# mount /dev/ drbd 0 /mnt  (挂载到/mnt 目录)
    root@ drbd 1:~# cd /mnt
    root@ drbd 1:/mnt# touch aaa
    root@ drbd 1:/mnt# ls
    aa  lost+found
    而后在 drbd 2 上执行
    root@ drbd 2:~#/etc/init.d/ drbd stop
    Stopping all DRBD resources.
    root@ drbd 2:~# mkfs.ext2 /dev/ drbd 0  (格式化)
    root@ drbd 2:~# mount /dev/ drbd 0 /mnt
    root@ drbd 2:~# cd /mnt
    root@ drbd 1:~# ls
    aa  lost+found
    能够看到,在主机 drbd 1上产生的文件aa,也完整的保存在备机 drbd 2的 DRBD 分区上.
    这就是 DRBD 的网络RAID-1功能. 在主机上的任何操做,都会被同步到备机的相应磁盘分区上,达到数据备份的效果.
    =====================================================================
    DRBD 的主备机切换有时,你须要将 DRBD 的主备机互换一下.能够执行下面的操做:
    在主机上,先要卸载掉 DRBD 设备
    root@ drbd 1~# umount /mnt
    将主机降级为”备机”
    root@ drbd 1~# drbdadm secondary r0
    root@ drbd 1~# cat /proc/ drbd
    version: 8.0.11 (api:86/proto:86)
    SVN Revision: 2713 build by
    root@ drbd 1
    , 2008-06-27 14:07:14
    1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r---
        ns:497972 nr:0 dw:28 dr:498006 al:2 bm:36 lo:0 pe:0 ua:0 ap:0
            resync: used:0/31 hits:31100 misses:34 starving:0 dirty:0 changed:34
            act_log: used:0/127 hits:26 misses:2 starving:0 dirty:0 changed:2
    如今,两台主机都是”备机”.
    在备机 drbd 2上,将它升级为”主机”.  [root@ drbd 2 mnt]# drbdadm primary r0
    root@ drbd 2~# cat /proc/dr
    drbd     driver/
    [root@ drbd 2 mnt]# cat /proc/ drbd
    version: 8.0.11 (api:86/proto:86)
    SVN Revision: 2713 build by
    root@ drbd 2
    , 2008-06-27 14:11:24 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---
        ns:0 nr:16 dw:16 dr:0 al:0 bm:2 lo:0 pe:0 ua:0 ap:0
            resync: used:0/31 hits:6 misses:2 starving:0 dirty:0 changed:2
            act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
    如今 drbd 2成为主机了。
    ===============================================================
    特别注意,我在测试的时候发生一个问题,就是我作双机互备的时候,先把/dev/www/www 格式化老是出错,后来重新作,而后格式化的/dev/ drbd 0就没有错误`因此你们作的时候,不要先格式化。在有就是两个 drbd 用的盘同样的同等大小!
相关文章
相关标签/搜索