CentOS环境DRBD的编译安装

DRBD安装环境介绍

DRBD的安装需要两台机器,后面都称为节点(node1和node2),node1和node2都是CentOS-6.2操作系统,所使用镜像为CentOS-6.2-x86_64-bin-DVD.iso,IP地址分别为10.255.48.24和10.255.48.22,node1和node2各自有一个5G的硬盘sdb,安装drbd版本是drbd-8.4.6,需要强调的是:两个节点都要执行本文档全部操作。
注: 上面的IP地址和硬盘sdb大小根据自身情况进行修改(这个是同步盘),注意两个节点的硬盘大小要相同。

DRBD编译安装

安装所需依赖:

yum -y install gcc flex

查看当前内核版本信息:

uname -r

打开CentOS-6.2-x86_64-bin-DVD.iso镜像,选择Packages

这里写图片描述
查找并导出kernel-devel-2.6.32-220.el6.x86_64.rpm和
kernel-headers-2.6.32-220.el6.x86_64.rpm 分别上传到两个节点上
注:kernel-devel和kernel-headers要和uname -r 查询出的版本一致!!!否则后期加载内核时会出现问题!!!
分别安装kernel-devel和kernel-headers:

rpm -ivh kernel-devel-2.6.32-220.el6.x86_64.rpm
rpm -ivh kernel-headers-2.6.32-220.el6.x86_64.rpm

注意,/usr/src/kernels/下的内核版本应该与uname -r查询结果是一致的。

安装用户空间工具:

cd /tmp
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
tar xzf drbd-8.4.6.tar.gz
cd drbd-8.4.6
make KDIR=/usr/src/kernels/2.6.32-220.el6.x86_64/
make install 
mkdir -p /usr/local/drbd/var/run/drbd
cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d
chkconfig --add drbd
chkconfig drbd on

安装drbd模块:

cd drbd
make clean
make KDIR=/usr/src/kernels/2.6.32-220.el6.x86_64/
cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
depmod

注:usr/src/kernels/2.6.32-220.el6.x86_64/这个内核源码树路径需要根据自己的系统修改。

DRBD配置

建立分区:
这个时候需要使用第二块硬盘sdb,这个硬盘将来也作为drbd同步的硬盘,两个节点(node)都要分区。
注:主备节点的两块硬盘要大小相同。
准备为 sdb 建立分区:

fdisk /dev/sdb      

这里写图片描述
键入 n 表示要建立分区:
这里写图片描述
键入 p 表示建立主要分区:
这里写图片描述
键入 1 为此主要分区代号:
这里写图片描述
开始磁柱值,按下 enter 即可:
这里写图片描述
结束磁柱值,按下 enter 即可:
这里写图片描述
键入 w 表示确定执行刚才设定:
这里写图片描述
使刚才的 partition table 变更生效:

partprobe

注:partprobe作用是在不重启服务器的情况下识别创建的分区,Centos 默认下是没有安装这个命令的需要的话可以运行如下命令进行安装。如果安装不上重启是同样效果的。

yum install -y parted

建立分区完成后使用指令 fdisk -l 确定 partition talbe 状态:

fdisk -l

这里写图片描述
如图是/dev/sdb部分,分区完成。
建立 /db 目录:
新建的/db目录就是drbd的同步工作目录:

mkdir /db

建立drbd配置文件:

vi /usr/local/drbd/etc/drbd.conf

写入:

include "drbd.d/global_common.conf";
include "drbd.d/*.res";

这里写图片描述

vi /etc/drbd.conf

drbd每次启动都要调用/etc/drbd.conf文件,以后再对drbd的参数配置也都写入这里。
写入:

global{
        usage-count yes;
}
common{
        syncer{ rate 30M; }         #同步速率,同步的速率是bytes字节,而不是bits/s。根据经验同步速率比较合理的是可用带宽的30%,以网络带宽110MB/ s为例,同步速率这样就得出同步速率的推荐值为33M。
}
handlers{
        split-brain "/usr/local/drbd/lib/drbd/notify-split-brain.sh root";

}
        resource r0{
                protocol C;     #采用协议C的写模式
                net{
                cram-hmac-alg sha1;
                shared-secret "FooFunFactory";
                }
                on node1 {                      #主节点
                device /dev/drbd1;              #设备
                disk /dev/sdb1;                 #磁盘
                address 10.255.48.24:7789;      #IP和端口
                meta-disk internal;
                }
                on node2{                       #备节点
                device /dev/drbd1;
                disk /dev/sdb1;
                address 10.255.48.22:7789;
                meta-disk internal;
                }
}

然后添加资源文件:

vi /usr/local/drbd/etc/drbd.d/r0.res

写入:

resource r0 {
  on node1 {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   10.255.48.24:7789;
    meta-disk internal;
  }
  on node2 {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   10.255.48.22:7789;
    meta-disk internal;
  }
}

在防火墙中打开7789端口:

vi /etc/sysconfig/iptables 

添加下面这一行在如图的位置:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7789 -j ACCEPT

这里写图片描述
最后重启防火墙使配置生效:

service iptables restart

设置hostname:
根据上面的resource配置文件,需要对10.255.48.24和10.255.48.22分别设置hostname为node1和node2,设置方法如下:

vi /etc/sysconfig/network

修改HOSTNAME为node1(备节点修改为node2):
这里写图片描述
这里写图片描述
然后:

vi /etc/hosts

填加:

10.255.48.24 node1
10.255.48.22 node2

hostname node1使主机名生效(备节点为hostname node2):

hostname node1  #另一个是hostname node2

设置resource:
加载drbd模块:

modprobe drbd

确认drbd模块是否载入:

lsmod|grep drbd

这里写图片描述
在/dev/sdb1中放入1M大小的文件,否则在创建资源时可能会有问题:

dd if=/dev/zero of=/dev/sdb1 bs=1M count=100

创建brbd资源:

drbdadm create-md r0

启动drbd:

service drbd start

这时先启动的节点会等待另一个节点的启动,因为在配置文件中会有设置启动等待对方时间的选项,我们没有设置默认的值就是0,即永远等待。
这里写图片描述
输入yes之后回车是单节点启动,或者直至另一个节点也输入启动命令之后,两个节点同时启动成功。下面是查看节点状态:

cat /proc/drbd

这里写图片描述
注:当前两个节点都是Secondary/Secondary状态,即没有主节点,如果要启动热备需要设置主节点,请看下一篇 DRBD使用及运维文档,但是现在证明drbd已经启动服务了,安装drbd成功!

发布了27 篇原创文章 · 获赞 3 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章