版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
实验环境:
server1:172.25.16.1 | master |
---|---|
server2:172.25.16.2 | chunk server |
server3:172.25.16.3 | chunk server |
server4:172.25.16.4 | backup-mfsmaster |
server4:
[root@server4 ~]# yum install moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm -y
[root@server4 ~]# vim /etc/hosts
[root@server4 ~]# cd /usr/lib/systemd/system
[root@server4 system]# vim moosefs-master.service
8 ExecStart=/usr/sbin/mfsmaster -a
[root@server4 system]# systemctl daemon-reload
[root@server4 system]# systemctl start moosefs-master
[root@server4 system]# netstat -antlp
2.高可用配置
[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# vim westos.repo
[westos]
name=westos
baseurl=http://172.25.16.250/westos73
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.16.250/westos73/addons/HighAvailability
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.16.250/westos73/addons/ResilientStorage
gpgcheck=0
[root@server1 yum.repos.d]# yum clean all
[root@server1 yum.repos.d]# yum repolist
3.server1和server4上安装pacemaker、corosync
[root@server1 yum.repos.d]# yum install pacemaker corosync -y
[root@server1 yum.repos.d]# scp westos.repo server4:/etc/yum.repos.d/
[root@server4 ~]# yum install pacemaker corosync -y
4.server1和server4之间实现免密
5.在server1和server4上安装资源管理工具并且开启相应服务
//server1
[root@server1 ~]# yum install -y pcs
[root@server1 ~]# systemctl start pcsd
[root@server1 ~]# systemctl enable pcsd ##开启该服务之后会在/etc/passwd目录下生成hacluster用户,及高可用管理用户
[root@server1 ~]# passwd hacluster ##配置高可用集群管理用户的密码
//server4
[root@server4 ~]# yum install -y pcs
[root@server4 ~]# systemctl start pcsd
[root@server4 ~]# systemctl enable pcsd ##开启该服务之后会在/etc/passwd目录下生成hacluster用户,及高可用管理用户
[root@server4 ~]# passwd hacluster ##配置高可用集群管理用户的密码
6.在server1上使用集群管理工具创建mfsmaster集群并且启动集群
[root@server1 ~]# pcs cluster auth server1 server4 ##创建集群
[root@server1 ~]# pcs cluster setup --name mycluster server1 server4 ##为集群命名
[root@server1 ~]# pcs cluster start --all ##启动集群
[root@server1 ~]# pcs status ##查看集群状态
[root@server1 ~]# corosync-cfgtool -s
[root@server1 ~]# pcs status corosync
7.检查集群并解决报错
[root@server1 ~]# crm_verify -L -V
[root@server1 ~]# pcs property set stonith-enabled=false
[root@server1 ~]# crm_verify -L -V
注意:查看集群状态时出现错误是因为默认配置fence模块的这里先不配置fence所以先将fence设置关掉,等后面配置fence的时候再将其打开即可,这里的stonith指的是fence设备
8.给mfs高可用集群添加资源,此次资源添加vip
在这里插入代码片//查看资源
[root@server1 ~]# pcs resource standards ##查看集群资源
[root@server1 ~]# pcs resource agents ocf:heartbeat ##查看该资源下支持的资源类型
//创建资源
[root@server1 ~]# pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.16.100 cidr_netmask=32 op monitor interval=30s
[root@server1 ~]# pcs resource show
[root@server4 ~]# crm_mon ##查看集群信息
高可用测试:
关闭cluster集群中的server1,查看vip的变化
发现vip由server1漂移到server4
server4上查看监控信息
[root@server4 ~]# crm_mon
开启cluster集群里的server1,查看监控信息
[root@server1 ~]# pcs cluster start server1
[root@server1 ~]# crm_mon
pacemaker+corosync实现高可用后的iscsi实现数据共享
1.关闭master及其chunkserver服务为iscsi的实验环境做准备
[root@server1 ~]# systemctl stop moosefs-master
[root@server2 ~]# systemctl stop moosefs-chunkserver
[root@server3 ~]# systemctl stop moosefs-chunkserver
[root@server4 ~]# systemctl stop moosefs-master
2.配置iscsi
server3(targetcli):
1.添加共享磁盘
fdisk -l:
2.安装targetcli并做相应配置
//安装targetcli
[root@server3 ~]# yum install -y targetcli
//登录targetcli并且将添加的硬盘当作targetcli磁盘共享存储的磁盘
[root@server3 ~]# targetcli
/> ls ##查看targetcli的相关信息,里面会有目录及其相应目录下的文件
//添加磁盘:
/> cd backstores/block
/backstores/block> create my_disk1 /dev/vda
在iscis目录下:
/backstores/block> cd /
/> cd iscsi
创建磁盘目录,进入目录下的相应目录创建已添加磁盘:
/iscsi> create iqn.2019-05.com.example:server3
/iscsi> cd iqn.2019-05.com.example:server3/
/iscsi/iqn.20...ample:server3> cd tpg1/luns
/iscsi/iqn.20...er2/tpg1/luns>
/iscsi/iqn.20...er2/tpg1/luns> create /backstores/block/my_disk1
创建client磁盘共享目录:
/iscsi/iqn.20...er2/tpg1/luns> cd /iscsi/iqn.2019-05.com.example:server3/tpg1/acls
/iscsi/iqn.20...er2/tpg1/acls> create iqn.2019-05.com.example:client
server1(iscsi):
1.下载iscsi客户端并且做相应配置
[root@server1 ~]# yum install -y iscsi-*
[root@server1 ~]# vim /etc/iscsi/initiatorname.iscsi
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.31.3
172.25.31.3:3260,1 iqn.2019-05.com.example:server3
[root@server1 ~]# systemctl restart iscsid
[root@server1 ~]# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2019-05.com.example:server3, portal: 172.25.31.3,3260] (multiple)
Login to [iface: default, target: iqn.2019-05.com.example:server3, portal: 172.25.31.3,3260] successful.
fdisk -l查看
挂载创建分区并进行格式化
//因为mfs文件存储的相应信息都在/var/lib/mfs/ ,要创建mfs文件系统必须将其信息写到已经共享成功的磁盘里面,实现mfs文件系统的相应操作:
[root@server1 ~]# mount /dev/sdb1 /mnt
[root@server1 ~]# cd /var/lib/mfs/ 这是mfs的数据目录
[root@server1 mfs]# ls
changelog.2.mfs changelog.4.mfs changelog.6.mfs metadata.mfs metadata.mfs.empty
changelog.3.mfs changelog.5.mfs metadata.crc metadata.mfs.back.1 stats.mfs
[root@server1 mfs]# cp -p * /mnt/ 带权限拷贝/var/lib/mfs的所有数据文件到/dev/sdb1上
[root@server1 mfs]# cd /mnt/
[root@server1 mnt]# ls
changelog.2.mfs changelog.4.mfs changelog.6.mfs metadata.crc metadata.mfs.back.1 stats.mfs
changelog.3.mfs changelog.5.mfs lost+found metadata.mfs metadata.mfs.empty
[root@server1 mnt]# chown mfs.mfs /mnt 当目录属于mfs用户和组时,才能正常使用
[root@server1 mnt]# cd
[root@server1 ~]# umount /mnt
[root@server1 ~]# mount /dev/sdb1 /var/lib/mfs/ # 使用分区,测试是否可以使用共享磁盘
[root@server1 ~]# systemctl start moosefs-master 服务开启成功,就说明数据文件拷贝成功,共享磁盘可以正常使用
[root@server1 ~]# systemctl stop moosefs-master 关闭服务因为要进行高可用测试,是集群开启服务而不能手动开启
server4(iscsi)同server1操作
[root@server4 system]# yum install -y iscsi-*
[root@server4 system]# vim /etc/iscsi/initiatorname.iscsi
文件编辑内容如下:
InitiatorName=iqn.2019-05.com.example:client
[root@server4 system]# iscsiadm -m discovery -t st -p 172.25.31.3
[root@server4 system]# iscsiadm -m node -l
注意:在mfs文件系统创建完成之后,对于在主从及server1上和server4上的mfs文件系统用户的所属组及其相应id都要相同,如果不同可能会导致共享出错
卸载之前挂载的/var/lib/mfs