您的位置:首页 > 运维架构 > 网站架构

pacemaker corosync drbd nfs高可用实例配置

2017-12-27 11:12 441 查看
配置部署

前期环境准备

各节点(即主机)的主机名与“uname -n”的结果保持一致:

# pcmk-1+ pcmk-2:
vi /etc/hosts
192.168.10.253  pcmk-1.clusterlabs.org pcmk-1
192.168.10.254  pcmk-2.clusterlabs.org pcmk-2
#pcmk-1:
vi/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=pcmk-1
#pcmk-2:
NETWORKING=yes
HOSTNAME=pcmk-2


需要准备两个rpm包:drbd83-utils-8.3.16-1.el6.elrepo.x86_64.rpm、kmod-drbd83-8.3.16-2.el6.elrepo.x86_64.rpm



在VolGroup 上创建一个1G的drbd-demo分区:(可以看到错误信息:VolGroup自由空间不足:Volume
group "VolGroup" has insufficient free space (0 extents): 256 required.)

注意:如果空间足够可以忽略创建以下分配分区空间。

lvcreate -n drbd-demo -L 1G VolGroup




用vgdisplay查看VolGroup的信息:(Free  PE / Size:空间是0)

vgdisplay




用lvs查看分区信息大小

#查看分区
lvs




调整lv_swap VolGroup的分区大小:

#调整lv_swap分区大小
lvresize -L 1G /dev/VolGroup/lv_swap
#用lvs查看分区(原来2G变成了1G)
lvs
#在用vgdisplay来查看分区信息可以看到(Free  PE / Size)有1G的空间了
vgdisplay






重新在VolGroup上创建drbd-demo分区大小:

#创建drbd-demo空间大小为1GB
lvcreate -n drbd-demo -L 1G VolGroup
#查看分区(这个时候多了一个drbd-demo分区)
lvs




安装drbd 和 kmod:

#安装 drbd 和 kmod 软件包
rpm -ivh drbd83-utils-8.3.16-1.el6.elrepo.x86_64.rpm kmod-drbd83-8.3.16-2.el6.elrepo.x86_64.rpm




配置drbd

#进入到drbd 目录
cd /etc/drbd.d
#备份下 global_common.conf
cp global_common.conf global_common.conf.bak
#修改 global_common.conf配置文件
vi global_common.conf
#删除所有内容
:.,$d




global {
usage-count yes;
}
common {
protocol C;
}
resource wwwdata {
meta-disk internal;
device /dev/drbd1;
syncer {
verify-alg sha1;
}
net {
allow-two-primaries;
}
on pcmk-1 {
disk /dev/mapper/VolGroup-drbd--demo;
address 10.157.32.222:7789;
}
on pcmk-2 {
disk /dev/mapper/VolGroup-drbd--demo;
address 10.157.32.223:7789;
}
}

初始化加载drbd:

#初始化、加载drbd(注意:wwwdata是配置文件中的resource wwwdata)
drbdadm create-md wwwdata




加载drbd到内核模块:

#查看drbd(此时没有进程)
lsmod  |grep drbd
#加载DRBD模块到内核 modprobe drbd
modprobe drbd
#查看drbd(有drbd进程号了)
lsmod  |grep drbd




启动drbd

#启用drbd 的wwwdata资源
drbdadm up wwwdata
#查看drbd信息(现在可以看到当前两台服务的节点是Secondary)
cat /proc/drbd

注意:以上所有操作在另一台服务器上同样执行



设置主节点:

#设置主节点
drbdadm -- --overwrite-data-of-peer primary wwwdata
#查看drbd信息(这时候主节点在pcmk-1这台服务器上(primary))
cat /proc/drbd




快速格式化 /dev/drbd1:

#格式化 /dev/drbd1
mkfs.ext4 /dev/drbd1




挂载/dev/drbd1 做nfs数据同步:

#挂载 /dev/drbd1
mount /dev/drbd1 /mnt/
#在mnt下添加一个index.html文件 路径:/mnt/index.html
vi /mnt/index.html
#内容:
<html>
<body>My Test Site - drbd</body>
</html>




查看数据同步的时候drbd信息:

#用cat /proc/drbd 会显示数据同步的进度(同步完成会显示节点信息)
cat /proc/drbd




手动测试nfc数据是否同步:

#取消挂载 /dev/drbd1
umount /dev/drbd1
#查看drbd信息(现在pcmk-1还是主节点(primary))
cat /proc/drbd
#取消pcmk-1的主节点
drbdadm secondary wwwdata
#查看drbd信息(现在pcmk-1还是从节点(Secondary))
cat /proc/drbd




手动切换pcmk-2为主节点(primary)

#查看pcmk-2的drbd状态(现在都是从节点(Secondary))
cat /proc/drbd
#切换pcmk-2为主节点
drbdadm primary wwwdata
#查看pcmk-2的drbd状态(现在pcmk-2是主节点(primary))
cat /proc/drbd
#挂载 /dev/drbd1 /mnt下
mount /dev/drbd1 /mnt/
#查看 /mnt 下得nfs数据同步的index.html是否存在
ls /mnt/

注意:有index.html nfs数据同步成功



用pacemaker管理DRBD做HA切换:

用cib来管理drbd(创建一个drbd)

#用cib 来管理drbd
crm cib new drbd




创建DRBD资源

#创建DRBD资源,及其状态克隆资源 (使用ocf:linbit:drbd配置DRBD )
crm configure primitive wwwdrbd ocf:linbit:drbd params drbd_resource=wwwdata op monitor interval=60s
#ms表示配置主从资源
#WebData		#资源名
#wwwdrbd		#clone资源名
#mete			#表示配置主从资源
#master-max     #最大主节点(默认:1)
#master-node-max	#最大主节点数:(默认:1)
#clone-max			#在集群中最多能运行多少份克隆资源,默认和集群中的节点数相同;
#clone-node-max		#每个节点上最多能运行多少份克隆资源,默认是1;
#notify				#当成功启动或关闭一份克隆资源,要不要通知给其它的克隆资源,默认是true
crm configure ms WebData wwwdrbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true






查看DRBD的状态(如果显示失败,重启下Corosync):

可以看到DRBD启动状态:一个masters和slave

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pacemaker corosync httpd ha we