DRBD
节点1:Server1.example.com 172.25.23.1
节点2:Server2.example.com 172.25.23.2
VIP:172.25.23.100
Selinux和iptables处于disabled状态 redhat 6.5版本
一.安装drbd
将源码做成rpm包 并安装
下载的安装包为drbd-8.4.2.tar.gz
[root@server1 ~]# yum install rpm-build -y #做rpm包的工具
[root@server1 ~]# tar zxf drbd-8.4.2.tar.gz
[root@server1 ~]# cd drbd-8.4.2
[root@server1 drbd-8.4.2]# ./configure --enable-spec --with-km(内核编译)
yum install -y gcc flex#解决依赖性
./configure --enable-spec --with-km
#编译成功后生成三个文件 drbd.spec drbd-km.spec drbd-kernel.spec
rpmbuild -bb drbd.spec
#编译生成drbd rpm包
cp ~/drbd-8.4.2.tar.gz /root/rpmbuild/SOURCES/
#在家目录生成 rpmbuild 编译所需路径 即将源代码拷到 rpmbuild的路径下
rpmbuild -bb drbd.spec
rpmbuild -bb drbd-km.spec
#编译生成drbd的内核模块
yum install kernel-devel -y
#安装kernel-devel,再重新编译
rpmbuild -bb drbd-km.spec
cd /root/rpmbuild/RPMS/x86_64/
#生成的安装包在这里/root/rpmbuild/RPMS/x86_64/
rpm -ivh *
scp * 172.25.23.2:
#将生成的安装包复制到server2,并安装
二.配置drbd
1.serveer1 server2 上各新加一个磁盘4G的即可
2.编辑配置文件
cd /etc/drbd.d/
[root@server1 drbd.d]# cat /etc/drbd.conf
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res"; #配置文件都是以res结尾
vim example.res
# device /dev/drbd1 设备/dev/drbd1,名称必须是drbd*
# disk /dev/vda 为新增的磁盘名称
scp example.res root@172.25.23.2:/etc/drbd.d/
3. 创建
drbdadm create-md example
# example是配置文件中的资源名
......
drbdadm create-md example
4.启动,设置主从
/etc/init.d/drbd start
# server2也同时启动,不然server1会一直等待,直到另外一个主机开启服务为止
# 刚启动的设备都是secondary且没有建立连接inconsistent
drbdadm primary example --force
# 强制将该设备设为primary,两边会开始同步
watch cat /proc/drbd
# 可查看两边同步的进度
5.挂载测试
# 只能格式化/dev/drbd1 并只用在主设备格式化
mkfs.ext4 /dev/drbd1
mount /dev/drbd1 /mnt
cd /mnt
cp /etc/passwd /mnt
cd
umount /mnt
mount /dev/drbd1 /mnt
# 两台设备不能同时挂载,并且只能在primary上挂载
drbdadm secondary example
# 将server1设为secondary
drbdadm primary example
# server2设为primary ,再次挂载,成功
mount /dev/drbd1 /mnt
cd /mnt
# 可以看到在server1挂载时添加的数据,若再将server2 设为secondary , server1设为primary , 再挂载,会看到在server2中修改的数据。确定数据可以同步。
6.常见的任务管理语句
drbd-overview #查看状态
drbdadm down example
drbdadm up example
drbdadm disconnect example
drbdadm connect example
drbdadm connect --discard-my-data example #放弃数据,连接
三.把drbd挂载到httpd默认发布目录上(drbd+heartbeat)
1.编写配置文件
/etc/init.d/heartbeat stop
cd /etc/ha.d
vim haresources
server1.example.com #主节点,两边都是主节点的主机名
IPaddr::172.25.23.100/24/eth0 #vip
drbddisk::example #因为只有primary才能挂载,转换身份为primary
Filesystem::/dev/drbd1::/var/www/html #挂载点
httpd #服务
scp haresources 172.25.23.2:/etc/ha.d
etc/init.d/heartbeat start
echo > /var/www/html/index.html
2.测试
curl localhost
#会自动挂载
/etc/init.d/heartbeat stop
df
#发现已经卸载,并在server2上发现挂载
/etc/init.d/heartbeat start
df
#重新挂载到server1上