文章目录
待完善…
实验环境
主机(IP) | 服务 |
---|---|
server1(172.25.11.1) | mfsmaster corosync+pacemaker |
server2(172.25.11.2) | chunk server |
server3(172.25.11.3) | chunk server |
server4(172.25.11.4) | mfsmaster corosync+pacemaker |
真机(172.25.11.250) | client |
pacemaker+corosync实现高可用
server1与server4主机mfs master的部署
- 下面以server1的安装为例,server4的安装同理。
- 下载并安装。
[root@server1 ~]# ls
moosefs-cgi-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-cgiserv-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-cli-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-client-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-metalogger-3.0.103-1.rhsystemd.x86_64.rpm
[root@server1 ~]# yum install moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cli-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cgiserv-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cgi-3.0.103-1.rhsystemd.x86_64.rpm -y
- server1添加解析
[root@server1 ~]# vim /etc/hosts
172.25.11.1 server1 mfsmaster
- 开启服务,查看端口
[root@server1 mfs]# systemctl start moosefs-master
[root@server1 mfs]# netstat -antlp
[root@server1 mfs]# systemctl start moosefs-cgiserv
[root@server1 mfs]# netstat -antlp
- 浏览器中访问查看:
http://172.25.11.1:9425/mfs.cgi
server1与server4配置高可用的yum源
- 以server1为例,server4的搭建同理
[root@server1 system]# vim /etc/yum.repos.d/rhel7.repo
[rhel7.3]
name=rhel7.3
gpgcheck=0
baseurl=http://172.25.11.250/rhel7.3
[HighAvailability]
name=HighAvailability
gpgcheck=0
baseurl=http://172.25.11.250/rhel7.3/addons/HighAvailability
[ResilientStorage]
name=ResilientStorage
gpgcheck=0
baseurl=http://172.25.11.250/rhel7.3/addons/ResilientStorage
server1和server4安装pacemaker+corosync
- server1:
[root@server1 system]# yum install pacemaker corosync -y
- server4:
[root@server4 ~]# yum install pacemaker corosync -y
因为要实现高可用,所以server1与server4之间需要免密
[root@server1 system]# ssh-keygen
[root@server1 system]# ssh-copy-id server4
[root@server1 system]# ssh server4
[root@server1 system]# ssh-copy-id server1
[root@server1 ~]# ssh server1
在server1和server4上安装资源管理工具并且开启相应服务
- server1与server4同理,这里以server1为例。
[root@server1 ~]# yum install pcs -y
[root@server1 ~]# systemctl start pcsd
[root@server1 ~]# systemctl enable pcsd
[root@server1 ~]# id hacluster
uid=189(hacluster) gid=189(haclient) groups=189(haclient)
[root@server1 ~]# passwd hacluster
在server1上创建mfs集群并且启动
- 创建集群
[root@server1 ~]# pcs cluster auth server1 server4
Username: hacluster
Password:
server4: Authorized
server1: Authorized
- 为集群命名
[root@server1 ~]# pcs cluster setup --name mycluster server1 server4
- 开启集群
[root@server1 ~]# pcs cluster start --all
server1: Starting Cluster...
server4: Starting Cluster...
查看集群状态
[root@server1 ~]# corosync-cfgtool -s
[root@server1 ~]# pcs status corosync
检查并解决报错
[root@server1 ~]# crm_verify -L -V
[root@server1 ~]# pcs property set stonith-enabled=false
[root@server1 ~]# crm_verify -L -V
创建集群资源及添加VIP
- 在server1上:
[root@server1 ~]# pcs resource create --help
[root@server1 ~]# pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.11.100 cidr_netmask=32 op monitor interval=30s
[root@server1 ~]# pcs resource show
[root@server1 ~]# pcs status
- 在server4上查看vip:
[root@server4 ~]# crm_mon
测试
- 查看vip此时在server1上:
- 将cluster集群中的server1关掉,此时vip漂移到server4上。
[root@server1 ~]# pcs cluster stop server1
- 查看监控信息显示此时在线的也只有server4:
[root@server4 ~]# crm_mon
- 再次开启集群中的server1,发现vip还是在server4上,但是监控信息查看时server1和server4都是在线的。
[root@server1 ~]# pcs cluster start server1
server1: Starting Cluster...
[root@server4 ~]# crm_mon
[root@server4 ~]# ip a
综上,高可用部署成功!
[root@server1 ~]# pcs resource standards
[root@server1 ~]# pcs resource providers
[root@server1 ~]# pcs resource agents ocf:heartbeat
存储(数据共享)
注意:在客户端如果在数据恢复时进行了相应的挂载,df是查看不到的,用mount命令查看,如果有挂载需要先卸载。(/mnt/mfsmeta)
关闭server1和server4的master服务及其server2和server3的chunkserver服务为iscsi的实验环境做准备。
server2(chunk server)
- 添加一块20G的虚拟硬盘/dev/vdb。
- 安装服务端的targetcli。
[root@server2 ~]# yum install targetcli -y
[root@server2 ~]# systemctl start target
- 共享/dev/vdb1。
[root@server2 ~]# targetcli
/backstores/block> create storage1 /dev/vdb
/iscsi> create iqn.2019-08.org.westos:target1
/iscsi/iqn.20...et1/tpg1/luns> create /backstores/block/storage1
/iscsi/iqn.20...et1/tpg1/acls> create iqn.2019-08.org.westos:client
server1&server4(mfsmaster)
- sevrer1与server4的操作步骤相同,这里以server1为例。
- 安装客户端软件。
[root@server1 ~]# yum install iscsi-* -y
- 修改连接的密码。
[root@server1 ~]# vim /etc/iscsi/initiatorname.iscsi
[root@server1 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-08.org.westos:client
- 客户端发现共享的磁盘并使用,划分一块/dev/sda1,并格式化成ext4的格式。
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.11.2
[root@server1 ~]# iscsiadm -m node -l
[root@server1 ~]# fdisk -l
[root@server1 ~]# fdisk /dev/sda
[root@server1 ~]# mkfs.ext4 /dev/sda1
[root@server4 ~]# cat /proc/partitions
- 挂载格式化后的
- 创建一个存储资源。
IPAddr2 资源代理 传参 就是一个脚本 每个30s对资源做一个监控
[root@server1 mfs]# pcs resource create mfsdata Filesystem device=/dev/sda1 directory=/var/lib/mfs fstype=ext4 op monitor interval=60s
[root@server1 mfs]# crm_mon
此时vip资源和存储资源并不在一台mfsmaster服务器上。
- 创建一个服务资源。
[root@server1 mfs]# pcs resource create mfsmaster systemd:moosefs-master op monitor interval=60s
[root@server1 mfs]# pcs resource group add mfsgroup vip mfsdata mfsmaster
4个节点做解析,写入vip
[root@server1 ~]# vim /etc/hosts
172.25.11.100 mfsmaster
[root@server2 ~]# systemctl start moosefs-chunkserver
[root@server3 ~]# systemctl start moosefs-chunkserver
真机
挂载
[root@foundation11 ~]# mfsmount
[root@foundation11 ~]# df