drbd.9.0版本部署

DRBD9.0部署

1) drbd软件安装

软件:drbd-9.0.0.tar.gz 、 drbd-utils-8.9.5.tar.gz(从8.4.5开始,drbd软件分成了两部分:核心模块和管理工具)、kernel-devel、flex

  • 安装drbd

[root@client5 ~] # yum install -y kernel-devel
[root@client5 drbd-utils-8.9.5]# yum install -y flex
[root@client5 package]# tar -zxf drbd-9.0.0.tar.gz
[root@client5 package]# cd drbd-9.0.0
[root@client5 drbd-9.0.0]# make
KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64
[root@client5 drbd-9.0.0]# make install

  • 加载drbd模块到内核:

[root@client5 ~]# cd /lib/modules/2.6.32-431.el6.x86_64/updates/
[root@client5 updates]# cp -p drbd.ko ../kernel/lib/
[root@client5 updates]# depmod

分析可加载模块的依赖性

[root@client5 updates]# modprobe drbd

加载drbd模块到内核

[root@client5 updates]# lsmod | grep drbd
drbd 454676 0

列出内核已载入模块的状态

输出为:

Module(模块名) Size(模块大小) Used by(使用者)

  • 安装drbd-utils

[root@client5 package]# tar -zxf drbd-utils-8.9.5.tar.gz
[root@client5 package]# cd drbd-utils-8.9.5
[root@client5 drbd-utils-8.9.5]# ./configure --prefix=/usr/local/drbd-utils --without-83support --without-84support --without-manual

由于我装的是9.0版本的drbd,所以不需要83support,也不需要84support,也不需要手册,否则会报错误。

安装目录为/usr/local/drbd-utils

[root@client5 drbd-utils-8.9.5]# make
[root@client5 drbd-utils-8.9.5]# make install

  • 遇到的问题:

报错如下:

make -C documentation/v9 doc

make过程会卡在这,这是因为./configure参数有问题,按照上面那样设置就没问题

2) 创建drbd镜像

1. 修改配置文件

[root@client5 drbd-utils]# cd /usr/local/drbd-utils/etc/
[root@client5 etc]# ls
bash_completion.d drbd.conf drbd.d ha.d rc.d xen

drbd.conf文件无需该动

[root@client5 drbd-utils]# cd /usr/local/drbd-utils/etc/drbd.d/
[root@client5 drbd.d]# ls
global_common.conf
[root@client5 etc]# vim global_common.conf

在common配置部分的net选项中添加protocol C;即可,表示使用协议C的方式进行数据复制

[root@client5 drbd.d]# vim dbdata.res
resource data {
meta-disk internal;
device /dev/drbd1;
on client5 {
disk /dev/vda1;
address 192.168.122.15:7789;
}
on client6 {
disk /dev/vda1;
address 192.168.122.16:7789;
}
}

该文件用于定义drbd镜像资源

两个结点上的以上三个文件必须保持相同,并且两个节点要能够互相解析到彼此。

2. 对节点的drbd操作

  • 在两个节点上都执行:

[root@client5 drbd.d]# lsmod | grep drbd
drbd 454676 0

确保drbd模块已经加载到内核

[root@client5 drbd.d]# dd if=/dev/zero
of=/dev/hdb1 bs=1M count=100
[root@client5 drbd.d]# drbdadm create-md data
[root@client5 drbd.d]# cp -p
/usr/local/package/drbd-utils-8.9.5/scripts/drbd /etc/init.d/
[root@client5 drbd.d]# /etc/init.d/drbd start

  • 在client5节点上执行:

[root@client5 drbd.d]# drbdadm primary data --force

设置client5节点为主节点

  • 注意:我所用的这个版本的drbd,执行cat /proc/drbd查看不到drbd镜像的信息,我采用的是drbd-overview来查看

[root@client5 ~]# cp -p
/usr/local/package/drbd-utils-8.9.5/scripts/drbd-overview.pl /usr/sbin

通过drbd-overview.pl 这个perl脚本查看到的信息类似下面这样:

[root@client5 ~]# drbd-overview.pl
1:data/0 Connected(2*) Primar/Second UpToDa/UpToDa

  • 测试drbd镜像

[root@client5 drbd.d]# mkfs.ext4 /dev/drbd1
[root@client5 ~]# mount /dev/drbd1 /mnt/

挂载文件系统之前确保这个节点是primary

[root@client5 mnt]# mkdir file{1..5}
[root@client5 ~]# umount /mnt
[root@client5 ~]# drbdadm secondary data
[root@client6 ~]# drbdadm primary data
[root@client6 ~]# mount /dev/drbd1 /mnt/
[root@client6 mnt]# ls
file1 file2 file3 file4 file5

posted @ 2017-08-01 20:05  forbest  阅读(1676)  评论(0编辑  收藏  举报