一、基础环境准备 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 ________________________________________________