Centos 7.4 DRBD、NFS 集群(Pacemaker Corosync)配置

一、基础环境准备
1.1、操作系统:Centos 7.4 最小化安装
1.2、硬件配置:服务器2台,每台,网卡三块 硬盘 2 块。
1.3、IP规划
主机名称:pcs01              pcs02
内网网络:192.168.189.80   192.168.189.81
心跳网络:192.168.229.80   192.168.229.81
数据网络:192.168.217.80   192.168.217.81

二、基础环境配置(每个节点上都要配置-- --- 2.12.4)
2.1、关闭selinux

2.2、配置hosts 文件

2.3、配置SSH Key (互信)
pcs01 :
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub root@pcs01
ssh-copy-id -i /root/.ssh/id_rsa.pub root@pcs02





pcs02:





2.4、配置 时钟服务器:
yum install ntpdate -y
ntpdate time.windows.com
crontab -e
*/30 * * * * /sbin/ntpdate time.windows.com & >/dev/null
三、安装集群软件并配置
3.1、安装群集软件 (每个节点上都要操作)
yum -y install pacemaker corosync pcs psmisc policycoreutils-python fence-agents-all vim
3.2、启动PCS (每个节点上都要操作)
systemctl start pcsd
systemctl enable pcsd
3.3、配置防火墙(每个节点上都要操作),本实验是开启了防火墙的。


firewall-cmd --add-service=high-availability
firewall-cmd --add-service=high-availability --permanent
firewall-cmd --reload
3.4、设置 hacluster 帐户密码 (每个节点上都要操作)
安装群集软件包时,系统会创建一个帐户hacluster ,它的密码是禁用的。此帐户用于群集间通信的身份验证,必须在每个节点上设置其相同的密码,以启用此帐户。本次实验密码为hacluster




3.5、认证群集中的节点 (任何一个节点上操作即可)
pcs cluster auth cr01 cr02


3.6、创建群集的配置文件。 (在任何一个节点上创建即可)
群集软件安装完成后,并没有生成配置文件,只有一个配置实例的文件,默认位置在/etc/corosync/   配置文件可以手动创建,也可以通过命令自动创建。
pcs cluster setup --name cluster1 cr01 cr02


3.7、启动群集服务。(在任何一个节点操作即可)
pcs cluster start --all

3.8、创建VIP资源 (在任何一个节点操作即可)
pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.189.88 cidr_netmask=24 op monitor interval=30s --group dbgroup

查看创建的资源






四、配置DRBD
4.1、格式化sdb,创建LVM分区。 (每个节点都要做)






4.2、配置LVM逻辑卷 (每个节点都要做)
创建物理卷
pvcreate /dev/sdb1
创建卷组
vgcreate drbdvg0 /dev/sdb1

创建LVM 卷
lvcreate --name lvmariadb --size 40G drbdvg0

4.3、安装DRBD (每个节点都要做)
安装内核软件包
yum install kernel kernel-devel kernel-headers -y
安装完成后,需要重启。
pcs cluster start --all 启动群集节点
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum install -y kmod-drbd84 drbd84-utils
4.4、配置防火墙,允许DRBD 、心跳网络通过。(每个节点都要做)
firewall-cmd --zone=trusted --add-source=192.168.229.0/24 --permanent 
firewall-cmd --zone=trusted --add-source=192.168.217.0/24 --permanent 
firewall-cmd --reload
4.5、配置DRBD 参数配置文件
关闭计数,修改全局配置文件 /etc/drbd.d/global_common.cnf
sed -i 's#usage-count yes#usage-count no#g' /etc/drbd.d/global_common.conf
vi /etc/drbd.d/mydrbd.res 名称可以随便取
resource mydrbd1 {
 protocol C;
 meta-disk internal;
 device /dev/drbd0;
 disk /dev/drbdvg0/lvmariadb;
 syncer {
 verify-alg sha1;
 } 
 net {
 allow-two-primaries;
 }
 on pcs01 {
 address 192.168.217.80:7789;
 } 
 on pcs02 {
 address 192.168.217.81:7789;
 } 
}

两个节点的DRBD参数配置文件都一样,拷贝配置文件到另一个节点相同位置。
scp -r /etc/drbd.d/mydrbd.res root@pcs02:/etc/drbd.d/


4.6、初始化DRBD (每个节点都要做)
modprobe drbd
drbdadm create-md mydrbd1 (配置文件里面写的资源名称)
drbdadm up mydrbd1


pcs02 上面做如下操作

pcs01 设置为主
drbdadm primary mydrbd1 --force

4.7、格式化DRBD,在主节点上操作。pcs01
mkfs.xfs /dev/drbd0

4.8、创建DRBD资源,在任意节点上都可以操作。
随便进入一个目录,通过创建临时文件,来创建资源。
pcs cluster cib drbd_cfg
pcs -f drbd_cfg resource create mydrbd ocf:linbit:drbd drbd_resource=mydrbd1 op monitor interval=60s --group dbgroup
drbd_resource=mydrbd1 这里的mydrbd1就是,/et/drbd.d/mydrbd.res 中resource 后面跟的名称
pcs -f drbd_cfg resource master drbdclone mydrbd master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true --group dbgroup
pcs cluster cib-push drbd_cfg


4.9、创建文件系统资源
mkdir -p /drbdnfs chmod o+w /drbdnfs(每个节点上都做)
创建文件系统资源,在任何节点上都可操作。
pcs cluster cib fs_cfg 这个文件也可以放在任何文件夹下面。
pcs -f fs_cfg resource create drbdfs ocf:heartbeat:Filesystem device="/dev/drbd0" directory="/drbdnfs" fstype="xfs" --group dbgroup


4.10、配置约束 在任何节点上做
添加位置约束
pcs -f fs_cfg constraint colocation add drbdfs with drbdclone INFINITY with-rsc-role=Master
添加启动的顺序约束:
pcs -f fs_cfg constraint order promote drbdclone then start drbdfs
pcs cluster cib-push fs_cfg


文件系统资源启动后,将会自动挂载设备到指定的目录。


五、配置NFS资源 (5.1-------5.3 每个节点都做。)
5.1、安装DNS
yum install rpcbind nfs-utils -y
mkdir -p /drbdnfs/exports/dir1
chmod 777 /drbdnfs/exports/dir1
5.2、配置DNS 防火墙
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=mountd --permanent
firewall-cmd --reload
5.3 启动NFS
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
5.4、添加DNS 服务资源 (任何节点上操作)
pcs resource create nfserver ocf:heartbeat:nfsserver nfs_shared_infodir=/drbdnfs/nfs_shared_infodir nfs_ip=192.168.189.88 op start timeout=30s op stop timeout=30s op monitor interval=30s --group dbgroup

5.5、添加exportfs资源 (任何节点上操作)
pcs resource create exportfs_dir1 ocf:heartbeat:exportfs clientspec=192.168.0.0/16 directory=/drbdnfs/exports/dir1 fsid=1 unlock_on_stop=1 options=rw,sync op start timeout=30s op stop timeout=30s op monitor interval=30s --group dbgroup


5.6、配置约束 (任何节点上操作)
添加位置约束
pcs constraint colocation add exportfs_dir1 with nfserver INFINITY
添加启动顺序约束
pcs constraint order nfserver then exportfs_dir1




六、测试
6.1、找一台客户端,安装NFS,启动NFS,并挂载。
mkdir /db
mount -t nfs 192.168.189.88:/drbdnfs/exports/dir1 /db

6.2、利用for循环 创建文件,模拟数据写操作。
for i in `seq 5000`;do cp /bin/cat /db/bc$i;done
在DRBD主节点上,查看数据。

过一段时间,DRBD主节点上最后一次查看数据,然后马上重启主节点。检查 DRBD数据切换。




这时查看 pcs02 ,数据是否有延迟
ls /drbdnfs 经测试,延迟很小,在2s 以内。






_________________________________ End ________________________________________________