corosync+pacemaker+iscsi实现mfs的高可用

续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的状态
corosync+pacemaker+iscsi实现mfs的高可用_第1张图片
利用crm命令可以进入交互界面
corosync+pacemaker+iscsi实现mfs的高可用_第2张图片
关闭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

corosync+pacemaker+iscsi实现mfs的高可用_第3张图片

[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

在server5上添加一块虚拟硬盘
corosync+pacemaker+iscsi实现mfs的高可用_第4张图片
为新添加的硬盘进行分区

[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

corosync+pacemaker+iscsi实现mfs的高可用_第5张图片

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查看
corosync+pacemaker+iscsi实现mfs的高可用_第6张图片
为该磁盘分进行格式化,并将他挂载在/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也做相同的操作

此时可以在网页上通过9425端口访问到mfs的内容
corosync+pacemaker+iscsi实现mfs的高可用_第7张图片

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命令查看
corosync+pacemaker+iscsi实现mfs的高可用_第8张图片
将server1设置为standby,各类资源就启动在server4上

[root@server1 ~]# crm node standby

corosync+pacemaker+iscsi实现mfs的高可用_第9张图片
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上
corosync+pacemaker+iscsi实现mfs的高可用_第10张图片
令server4的pacemaker和corosync停掉

[root@server4 ~]# /etc/init.d/corosync stop

mfsclient还能正常操作

[root@foundation70 dir1]# ls   #文件还存在
passwd

你可能感兴趣的:(corosync+pacemaker+iscsi实现mfs的高可用)