續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
在server5上添加一塊虛擬硬盤
爲新添加的硬盤進行分區
[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
<target iqn.2018-09.com.example:server.target4>
backing-store /dev/vdb #添加的虛擬硬盤名
initiator-address 172.25.70.1 #iscsi所在的主機的ip
initiator-address 172.25.70.4
</target>
[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也做相同的操作
此時可以在網頁上通過9425端口訪問到mfs的內容
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