文章目錄
待完善…
實驗環境
主機(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