pacemaker corosync drbd nfs高可用实例配置

配置部署

前期环境准备

各节点(即主机)的主机名与“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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值