zoukankan      html  css  js  c++  java
  • (转)centos7.0安装配置DRBD

    原文:http://gushiren.blog.51cto.com/3392832/1685207

    首先确保两台机器时间同步,配置ssh。

    方法一通过yum源安装:yum安装默认路径是/etc/drbd.d/下

    # rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
    # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
    # yum -y install drbd84-utils kmod-drbd84

    方法二编译安装:默认路径是/usr/local/drbd/etc

    #yum install docbook-style-xsl          #编译drbd时候用到
    #mkdir -p /tmp/drbdinst
    #wget --directory-prefix=/tmp/drbdinst/ http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
    #cd /tmp/drbdinst
    #tar -zxfp drbd-8.4.6.tar.gz
    #cd drbd-8.4.6
    #yum -y install flex gcc make
    #make KDIR=/usr/src/kernels/3.10.0-229.11.1.el7.x86_64

    #make install
    mkdir -pv /usr/local/drbd/var/run/drbd

    cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d

    systemctl enable drbd

    cd drbd

    make clean

    make KDIR=/usr/src/kernels/3.10.0-229.11.1.el7.x86_64

    换成自己的内核版本

    cp drbd.ko /lib/modules/`uname -r`/kernel/lib5

    depmod

    modprobe drbd 加载模块

    lsmod |grpe drbd  查看是否加载成功

    我是通过yum源安装的,其实配置大同小异

    vim /etc/drbd.d/global_common.conf

    global {
        usage-count no;
    }
    common {
        protocol C;
        handlers {
            pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
            pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
            local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
        }
        startup {
            wfc-timeout 30;
            degr-wfc-timeout 30;
        }
        options {
        }
        disk {
                    on-io-error detach;  
                    fencing resource-only;
        }
        net {
            cram-hmac-alg "sha1";  
                    shared-secret "mydrbd";
        }
        
        syncer {
            rate 100M;
        }
    }
    5.定义一个资源,r0是资源名,可以自己改:

    vim /etc/drbd.d/r0.res

    resource r0 {  
        device /dev/drbd0;  
            disk /dev/sda1;  
            meta-disk internal;
            on drbdAA {  
            address 9.111.222.59:7789;  
            }  
            on drbdBB {  
            address 9.111.222.60:7789;  
            }  
    }  

    6.以上文件在两个节点上必须相同,因此,可以基于ssh将刚才配置的文件全部同步至drbdBB节点:

    7.scp -r /etc/drbd.d/r0.res global_common.conf root@drbdBB:/etc/drbd.d/

    8.在两个节点上初始化已定义的资源并启动服务:

    drbdadm create-md r0

    systemctl start drbd

    [root@drbdBB drbd.d]# cat /proc/drbd
    version: 8.4.6 (api:1/proto:86-101)
    GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by phil@Build64R7, 2015-04-10 05:13:52
     0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
        ns:1600728 nr:2048 dw:1600636 dr:3325 al:37 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

    9.我们接下来需要将其中一个节点设置为Primary,在要设置为Primary的节点上执行如下命令,这里在drbdAA上操作

    drbdadm primary --force r0

    [root@drbdAA yum.repos.d]# cat /proc/drbd
    version: 8.4.6 (api:1/proto:86-101)
    GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by phil@Build64R7, 2015-04-10 05:13:52
     0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
        ns:2048 nr:1600728 dw:1606877 dr:3714 al:2 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

    10.创建文件系统并挂载:

    文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化,这里在drbdAA上进行操作。

    mkfs.ext4 /dev/drbd0   格式化块存储

    mkdir /mydata                        //创建挂载点

    mount /dev/drbd0 /mydata/

            

    11.切换Primary和Secondary节点:

    对主Primary/Secondary模型的drbd服务来讲,在某个时刻只能有一个节点为Primary,因此要切换两个节点的角色,只能在先将原有的Primary节点设置为Secondary后,才能原来的Secondary节点设置为Primary。

    在coro1上:

    1 umount /mydata/2 drbdadm secondary web                //变为secondary节点

          在coro2上:

    1 drbdadm primary web                   //变为primary节点2 cat /proc/drbd3 mkdir /mydata                         //创建挂载点4 mount /dev/drbd0 /mydata/5 ls /mydata/

    可以看到,coro2已经成为了Primary,之前在coro1上创建的目录也能够访问到。测试完成后,再次将coro1变为Primary并挂载。

  • 相关阅读:
    IK分词器插件
    倒排索引
    logstash-安装、基本使用、入门
    Anaconda使用-详解
    java之反射
    Java中级路线jdbc第一天
    Java字符串及字符串的常用方法知识点总结
    Java基本类型的类包装知识点总结
    Java Class类知识点总结
    java异常类知识点总结
  • 原文地址:https://www.cnblogs.com/liujiacai/p/7775268.html
Copyright © 2011-2022 走看看