续Mfs分布式存储的搭建以及部署这篇博客,下面我们将利用corosync+pacemaker+iscsi+mfs实现一个高可用集群文件系统。
实验环境:rhel6.5
实验主机:
server1 mfsmaster 172.25.70.1
server4 mfsmaster 172.25.70.4
server2 mfschunker 172.25.70.2
server4 mfschunker 172.25.70.4
server5 scsi 172.25.70.5
foundation70 mfsclient 172.25.25.70 (真机)
注意:mfsmaster和mfschunker以及mfsclient的安装详见Mfs分布式存储的搭建以及部署这篇博客,下面我们只需要在安装mfsmaster在server4上即可。
[root@server4 ~]# yum install moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm moosefs-master-3.0.97-1.rhsysv.x86_64.rpm -y
1、corosync和pacemaker的安装
配置yum源,由于我们是rhel6.5的系统,所以只需要在域名源重添加HighAvailability的配置即可
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.70.250/rhel6.5/HighAvailability
gpgcheck=0
server1和server4上安装pacemaker、corosync
[root@server4 ~]# yum install pacemaker corosync
修改corosync的配置文件
[root@server1 ~]# vim /etc/corosync/corosync.conf
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.25.70.0 #该实验环境的ip域
mcastaddr: 226.94.1.1 #多播地址
mcastport: 5405
ttl: 1
}
}
service {
name: pacemaker #corosync支持pacemaker服务
ver: 0 corosync与pacemaker一起启动
}
将修改好的corosync的配置文件直接scp到server4的/etc/corosync上
[root@server1 corosync]# scp corosync.conf server4:/etc/corosync/
启动server1和server4上的corosync服务
[root@server1 corosync]# /etc/init.d/corosync start
[root@server4 corosync]# /etc/init.d/corosync start
2、server1和server4安装插件crmsh来进行pacemaker资源管理
所需rpm包:
crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm(该rpm包为crmsh的依赖包)
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y
利用crm_mon来查看server1和server4的状态
利用crm命令可以进入交互界面
关闭fence stonith功能:
crm(live)# configure
crm(live)configure# property stonith-enabled=false
crm(live)configure# commit
添加vip
crm(live)# configure
crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.70.100 cidr_netmask=24 op monitor interval=30s
crm(live)configure# commit
给实验真机添加本地解析
[root@foundation70 Desktop]# vim /etc/hosts
172.25.70.100 mfsmaster
3、server1和server4上创建高可用mfsd启动模版
[root@server1 ~]# vim /etc/init.d/moosefs-master
[root@server1 ~]# /etc/init.d/moosefs-master restart
[root@server1 ~]# scp /etc/init.d/moosefs-master server4:/etc/init.d/moosefs-master #将该配置文件复制一份到server4上
[root@server4 ~]# /etc/init.d/moosefs-master restart
4.在server5上安装scsi、在server1和server4上安装iscsi
[root@server5 ~] fdisk /dev/vdb
server5安装scsi
[root@server5 ~]# yum install scsi-target-utils.x86_64 -y
server1和server4安装iscsi
yum install iscsi-initiator-utils.x86_64 -y
server5修改scsi的配置文件来关联scsi的客户端
[root@server5 ~]# vim /etc/tgt/targets.conf
.2018-09.com.example:server.target4>
backing-store /dev/vdb #添加的虚拟硬盘名
initiator-address 172.25.70.1 #iscsi所在的主机的ip
initiator-address 172.25.70.4
[root@server5 ~]# /etc/init.d/tgtd start
检测,成功添加
[root@server5 ~]# tgt-admin -s
5、server1和server4上的iscsi发现和登录server5上的设备
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.70.5
[root@server1 ~]# iscsiadm -m node -l
server1上多了一块磁盘分区用fdisk -l查看
为该磁盘分进行格式化,并将他挂载在/var/lib/mfs下
[root@server1 ~]# mkfs.ext4 /dev/sda1
[root@server1 mnt]# mount /dev/sda1 /var/lib/mfs/
[root@server1 mnt]# cd /var/lib/mfs/
[root@server1 mfs]# chown mfs:mfs . -R
[root@server1 mfs]# /etc/init.d/moosefs-master restart
[root@server1 mfs]# /etc/init.d/moosefs-cgiserv restart
##给server4也做相同的操作
6、对pacemaker进行策略设置
设置存储
[root@server1 mfs]# crm
crm(live)# configure
crm(live)configure# primitive mfsdata ocf:heartbeat:Filesystem params device=/dev/sda1 directory=/var/lib/mfs fstype=ext4 op monitor interval=1min #设置存储
crm(live)configure# primitive mfsmaster lsb:moosefs-master op monitor interval=1min #设置服务
crm(live)configure# group mfsgroup vip mfsdata mfsmaster #将vip、存储、服务都添加到资源组里
crm(live)configure# commit
在server4上用crm_mon命令查看
将server1设置为standby,各类资源就启动在server4上
[root@server1 ~]# crm node standby
7、mfsclient上挂载
入前面所述,真机上已经安装mfsclient
[root@foundation70 ~]# mfsmount #执行mfsmount,成功挂载
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@foundation70 ~]# cd /mnt/mfs
[root@foundation70 mfs]# ls #有之前建立的数据目录,读者可以自行建立
dir1 dir2
[root@foundation70 mfs]# cd dir1/
[root@foundation70 mfs]# dd if=/dev/zero of=bigfile bs=1M count=1024
8、测试高可用
[root@foundation70 dir1]# cp /etc/passwd .
当前vip在server4上
令server4的pacemaker和corosync停掉
[root@server4 ~]# /etc/init.d/corosync stop
mfsclient还能正常操作
[root@foundation70 dir1]# ls #文件还存在
passwd