Rhel6 drbd 配置
系统环境:rhel6 x86_64 selinux and iptables disabled
软件下载:http://oss.linbit.com/drbd
主机:server39 192.168.0.139 /dev/vdb (附加磁盘)
     host39 192.168.0.239   /dev/vdb (附加磁盘)注意这里是磁盘整个分区什么的都会进行同步,主要用于数据库大容量的同步。
注意:在附加磁盘的时候注意选择Add Hardware -> storeage -> create a disk p_w_picpath on the computer‘s hard driver(选择1G就可以了) Device type选择Virtio Disk 即可了。。注意添加磁盘的时候要注意将机子关闭。
Cache mode 选择default        select managed or other existing storage-> Bowse -> /dev/sda5    ......
    (1)yum install gcc flex rpm-build kernel-devel  libxslt-y
    (2)rpmbuild ~
    #解决软件依赖性
    #在家目录生成 rpmbuild 编译所需路径
    (3) lftp 192.168.0.254
                 cd /pub/docs/drbd/rhel6
                  mget *
        tar zxf drbd-8.4.0.tar.gz
       cd drbd-8.4.0
            ./configure
     make rpm(这可能需要一段时间的。。。。。。)
     #编译drbd,产生rpm包
    make km-rpm #编译 drbd 内核模块(error: Bad exit status from /var/tmp/rpm-tmp.KBphEC (%prep)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.KBphEC (%prep)
make: *** [km-rpm] Error 1 如果编译的时候出现上述错误有可能是你的内核模块不一致uname -r 与rpm -qa | grep kernel-devel是否版本一致,在本人实验室所在服务器上只留dvd.repo即可。)
    (4)cd ~/rpmbuild/RPMS/x86_64
           rpm -ivh *
    (5)拷贝生成的 rpm 包到另一主机,并安装软件包:
        scp ~/rpmbuild/RPMS/x86_64/* desktop86:/root
        ssh root@desktop86 'rpm -ivh /root/drbd-*.rpm'
       (在对方主机上运行命令 rpm -ivh *.rpm 意思是在对方机子上安装rpm安装包)
        (6)   以下配置在两台主机上完成:
        cp /usr/share/doc/drbd-utils-8.4.0/drbd.conf.example /etc/drbd.d/
     echo 'include "drbd.d/drbd.conf.example";' >> /etc/drbd.conf
    (7)编辑/etc/drbd.d/drbd.conf.example,修改如下:
         resource example {
            options {
                on-no-data-accessible suspend-io;
                      }
             net     {
                 cram-hmac-alg "sha1";
                shared-secret "secret_string";
                }
    on desktop85.example.com {
    address 192.168.0.85:7780;
    volume 0 {
    device minor 0;
    disk /dev/vdb;
    meta-disk internal;
     }
    }
    on desktop86.example.com {
    address 192.168.0.86:7780;
    volume 0 {
    device minor 0;
    disk /dev/vdb;
    meta-disk internal;
    }
    }
   }
    或者:
       resource example {
    ......
on-no-data-accessible suspend-io;
                      }
             net     {
                 cram-hmac-alg "sha1";
                shared-secret "secret_string";
                }


        volume 0 {
    device minor 0;
    disk /dev/vdb;
    meta-disk internal;
     }//
这是属于公共的部分。
    on server39.example.com {
    address 192.168.0.139:7780;
    }
    on host39.example.com {
    address 192.168.0.239:7780;
    }
 }
    (8)在两台主机上分别执行以下命令:
        drbdadm create-md example
       /etc/init.d/drbd start
    (9)将 server39 设置为 primary 节点,并同步数据:(在 demo 主机执行以下命令)
        drbdsetup /dev/drbd0 primary --force(强制性的)
     (10)在两台主机上查看同步状态:
     watch cat /proc/drbd
        version: 8.4.0 (api:1/proto:86-100)
        GIT-hash: 28753f559ab51b549d16bcf487fe625d5919c49c build by             root@server36.example.com,
        2011-08-14 09:44:01
    0: cs:SyncSource ro:Primary/Secondary               ds:UpToDate/           
        Inconsistent C r-----       ns:126192 nr:0 dw:0             dr:126856 al:0 bm:7 lo:0 pe:145 ua:0              ap:0 ep:1 wo:d oos:922896
        [=>..................] sync'ed: 12.2% (922896/1048508)K
        finish: 0:02:41 speed: 5,692 (4,484) K/sec
    (11)数据同步结束后创建文件系统:
         mkfs.ext4 /dev/drbd0
    (12) 挂载文件系统:
         mount /dev/drbd0 /var/www/html
    (13) 存放数据:
         cp -r /etc/* /var/www/html
    (14) 卸载文件系统:
         umount /dev/drbd0
     (15)将 server39 设置为 secondary 节点:
        drbdadm Secondary example
    (16) 将 host39 设置为 primary 节点:(在 host39 主机执行一下命令)
         drbdadm Primary example
    (17) 挂载文件系统,查看数据是否同步:
        mount /dev/drbd0 /var/www/html
     ls 查看是否同步。
注意:两台主机上的/dev/drbd0 不能同时挂载,只有状态为 primary 时,才能被挂载,状态为secondary的时候不能挂载。
使用,而此时另一方的状态为 secondary。