CentOS7/RHEL7高可用集群搭建
一、集群信息
使用光盤鏡像安裝好兩台RHEL7.4系統的虛擬機,主機信息如下:
| 主機名 |
node1 |
node2 |
| IP地址 |
192.168.110.168 |
192.168.110.169 |
| 系統版本 |
Red Hat Enterprise Linux Server release 7.4 |
|
| 掛載鏡像源 |
rhel-server-7.4-x86_64-dvd.iso |
|
|
資源組 (ftp-group) |
FTP-VIP:192.168.110.10 FTP-LVM:vg_ftp FTP-FS:/dev/vg_ftp/lv_ftp FTP:vsftpd |
|
|
資源組 (tomcat-group) |
TOMCAT-VIP:192.168.110.20 TOMCAT-LVM:vg_tomcat TOMCAT-FS:/dev/vg_tomcat/lv_tomcat TOMCAT:tomcat |
|
二、集群搭建
1、制作軟件源
● 掛載光盤

● 導入key文件,列出可用源
2、主機基礎配置
● 設置主機名

● 關閉防火牆

● 設置selinux為disabled

● 配置host文件

● 節點間配置免密互信


● 同步host文件

● 編輯/etc/chronyd.conf文件,增加時間服務器一行

● 配置時間服務器,使集群節點時間同步

● 設置時間同步,timedatectl輸出結果中NTP enabled為yes,已開始同步

● 查看chronyd狀態,設置為開機啟動

3、集群基礎環境准備
● 軟件安裝


● 修改集群管理賬號密碼

● 啟用並設置集群軟件開機自啟

● 集群節點認證

● 創建集群

注:
1、命令內容為創建集群的同時在各節點上啟動集群並設置為啟用狀態
● 查看當前集群狀態

注:
1、 注意命令輸出內容,在尚未配置stonith時,提示需將stonith-enabled屬性更改為false(不啟用)

2、Online:顯示當前在線節點
3、Full list of resources:顯示集群的資源列表
4、集群資源准備
● 文件系統創建

創建並格式化/dev/mapper/vg_tomcat-lv_tomcat,文件系統格式為xfs
創建並格式化/dev/mapper/vg_ftp-lv_ftp,文件系統格式為xfs
注:
使用共享存儲的集群,在節點一上創建好vg、lv之后,節點二上執行命令pvscan --cache /dev/sdb可以將vg,lv信息同步至節點二上
● 創建文件系統掛載點

● 安裝vsftp

● 新增用戶
新增用戶mcbadm,確保node2上mcbadm用戶的UID與node1一致,將用戶加入haclient集群管理組

● 安裝tomcat相關軟件包
將lv_tomcat掛在至/home/mcbadm后,將tomcat軟件包解壓至共享盤上

● 權限更改
更改/home/mcbadm下文件屬組及所屬者為mcbadm

● 創建tomcat.service文件
編輯/usr/lib/systemd/system/tomcat.service文件,將tomcat服務移交systemd管理

將tomca.service文件放在/usr/lib/systemd/system/目錄下,執行systemctl daemon-reload刷新
● 開放halvm功能
將集群的共享存儲交由集群管理,執行以下命令,開放halvm功能

● 備份lvm.conf文件

● 編輯lvm.conf文件

查看系統現有vg,放開volume_list的注釋,將除過集群共享存儲的vg加入中括號內
注意:主機后續添加新的非集群管理vg,必須將vg名加入volume_list內
● 生成initramfs文件
備份/boot/initramfs-$(uname –r).img文件

執行以下命令,重新生成initramfs-$(uname –r).img文件

重啟主機
5、資源配置
● 創建資源組ftp-group
FTP-VIP:192.168.110.10/24
FTP-LVM:vg_ftp
FTP-FS:/dev/vg_ftp/lv_ftp,/HOME,xfs
FTP:vsftpd
FTP:vsftpd

● 創建資源組tomcat-group
TOMCAT-VIP:192.168.110.20/24
TOMCAT-LVM:vg_tomcat
TOMCAT-FS:/dev/vg_tomcat/lv_tomcat,/home/mcbadm,xfs
TOMCAT:tomcat

● 檢查集群狀態

資源組創建完成,集群資源已在各節點上運行
注:
1、集群資源創建,資源創建需要一次完成,所有資源創建完成后加入資源組中,默認情況下,資源組內資源啟停順序為:按照從上往下的順序依次啟動;按照從下往上的順序依次停止。
2、因已配置vg_ftp和vg_tomcat僅由集群激活啟用,當FTP-FS和TOMCAT-FS資源在節點一/二配置完成但尚未加入資源組內時,pcs status會有報錯信息提示,提示在節點二/一上找不到相應的設備文件,此為正常現象,將FTP-FS和TOMCAT-FS按順序加入集群即可。
6、集群資源約束配置
● 檢查集群狀態
查看當前constraint設置

● 配置資源啟停順序

配置資源組內各資源啟停順序:
ftp-group內啟停順序:FTP-VIP--> FTP-LVM-->FTP-FS-->FTP
tomcat-group內啟停順序:TOMCAT-VIP-->TOMCAT-LVM-->TOMCAT-FS-->TOMCAT
● 配置資源組內各資源依附關系

● 配置資源組在各節點的粘性

ftp-group優先在node1上運行
tomcat-group優先在node2上運行
● 查看constraint設置結果
列出集群資源約束配置內容

7、stonith配置
注:
1、 virtualbox虛擬機無法配置,假設可用
2、 不同類型的服務器所需fence端口不同,惠普硬件服務器需開通fence設備的623/udp端口,vcenter主機需開啟80/tcp和443/tcp端口,其余類型請自行查證
● fence資源信息
| 主機名 |
node1 |
node2 |
| Fence設備地址 |
192.168.110.101 |
192.168.110.102 |
| Fence管理賬號 |
Administrator |
|
| Fence賬戶密碼 |
pass1234 |
|
● Fence查看節點狀態
通過fence設備查看主機狀態,確認fence設備可對主機進行管理
# fence_ipmilan –P –A password –a 192.168.110.101 –l Administrator –p pass1234 –o status
# Status on
# fence_ipmilan –P –A password –a 192.168.110.102 –l Administrator –p pass1234 –o status
# Status on
● 增加fence設備
# pcs stonith create ipmi-fence-node1 fence_ipmilan parms lanplus=’true’ pcmk_host_list=’node1’ pcmk_host_check=’static-list’ action=’reboot’ ipaddr=’192.168.110.101’ login=’Administrator’ passwd=’pass1234’ op monitor interval=30s
# pcs stonith create ipmi-fence-node2 fence_ipmilan parms lanplus=’true’ pcmk_host_list=’node2’ pcmk_host_check=’static-list’ action=’reboot’ ipaddr=’192.168.110.102’ login=’Administrator’ passwd=’pass1234’ op monitor interval=30s
8、集群功能驗證
● 切換前檢查
查看當前集群狀態,集群內各資源已正常運行使用(尚缺少fence設備)

● 禁用節點驗證
將node2 設置為standby(不使用),資源組tomcat-group正常切換至node1上運行
# pcs cluster standy node2
注:
1、node2 standby狀態下,資源組tomcat-group在node1上正常運行才能證明資源切換正常

unstandy node2,資源組tomcat-group切換回node2運行
# pcs cluster unstandy node2
注:
1、node2 unstandby后,資源組tomcat-group能夠自動切回node2上正常運行才能證明資源切換正常

● 重啟節點驗證
node1 重啟,資源組ftp-group切換至node2運行

node1 重啟完成,資源組ftp-group切換回node1運行

三、集群常用命令及作用
1、驗證群集安裝
[shell]# pacemakerd -F ## 查看pacemaker組件
[shell]# corosync-cfgtool -s ## 查看corosync序號
[shell]# corosync-cmapctl | grep members ## corosync 2.3.x
[shell]# corosync-objctl | grep members ## corosync 1.4.x
2、查看群集資源
[shell]# pcs resource standards ## 查看支持資源類型
[shell]# pcs resource providers ## 查看資源提供商
[shell]# pcs resource agents ## 查看所有資源代理
[shell]# pcs resource list ## 查看支持資源列表
[shell]# pcs stonith list ## 查看支持Fence列表
[shell]# pcs property list --all ## 顯示群集默認變量參數
[shell]# crm_simulate -sL ## 檢驗資源 score 值
3、使用群集腳本
[shell]# pcs cluster cib ra_cfg ## 將群集資源配置信息保存在指定文件
[shell]# pcs -f ra_cfg resource create ## 創建群集資源並保存在指定文件中(而非保存在運行配置)
[shell]# pcs -f ra_cfg resource show ## 顯示指定文件的配置信息,檢查無誤后
[shell]# pcs cluster cib-push ra_cfg ## 將指定配置文件加載到運行配置中
4、STONITH 設備操作
[shell]# stonith_admin -I ## 查詢fence設備
[shell]# stonith_admin -M -a agent_name ## 查詢fence設備的元數據, stonith_admin -M -a fence_vmware_soap
[shell]# stonith_admin --reboot nodename ## 測試 STONITH 設備
5、查看群集配置
[shell]# crm_verify -L -V ## 檢查配置有無錯誤
[shell]# pcs property ## 查看群集屬性
[shell]# pcs stonith ## 查看stonith
[shell]# pcs constraint ## 查看資源約束
[shell]# pcs config ## 查看群集資源配置
[shell]# pcs cluster cib ## 以XML格式顯示群集配置
6、管理群集
[shell]# pcs status ## 查看群集狀態
[shell]# pcs status cluster
[shell]# pcs status corosync
[shell]# pcs cluster stop [node11] ## 停止群集
[shell]# pcs cluster start --all ## 啟動群集
[shell]# pcs cluster standby node11 ## 將節點置為后備standby狀態 pcs cluster unstandby node11
[shell]# pcs cluster destroy [--all] ## 刪除群集,[--all]同時恢復corosync.conf文件
[shell]# pcs resource cleanup ClusterIP ## 清除指定資源的狀態與錯誤計數
[shell]# pcs stonith cleanup vmware-fencing ## 清除Fence資源的狀態與錯誤計數
