麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > CentOS > 正文

CENTOS7構建HA集群

2024-06-28 16:01:41
字體:
來源:轉載
供稿:網友

CENTOS7 上支持的RHCS組件包主要有cman(心跳管理)、luci+ricci(配置工具)、rgmanager(資源管理),通過圖形化配置相當簡單,但是自CENTOS7開始,系統已經不再集成RHCS套件,并且在rpmfind上找不到支持centos7的RHCS組件包,在CENTOS7中默認采用corosync(心跳管理)、pacemaker(資源管理)、pcs(配置工具)同樣可以構建HA集群,配置方法較之前有很大區別,但是原理相似。

yum -y install corosync pacemaker *pcs* *fence* gfs2*

一、系統環境配置

1.1、修改名稱

hostnamectl set-hostname node01

1.2兩臺機器修改關閉防火墻、SElinux、配置ip、修改HOSTS

禁止防火墻和selinux

# systemctl disable firewalld

# systemctl stop firewalld

修改/etc/sysconfig/selinux

確保SELINUX=disabled,然后執行setenforce 0 或者reboot服務器以生效

 

設置防火墻規則(如果關閉防火墻則不用配置)

# firewall-cmd --permanent--add-service=high-availability

# firewall-cmd--add-service=high-availability

配置IP地址及網關、DNS

vi /etc/sysconfig/network-scripts/ifcfg-eth0#編輯配置文件,添加修改以下內容

BOOTPROTO=static #啟用靜態IP地址

ONBOOT=yes #開啟自動啟用網絡連接

IPADDR=192.168.102.1 #設置IP地址

NETMASK=255.255.255.0 #設置子網掩碼

GATEWAY=192.168.102.250 #設置網關

DNS1=8.8.8.8 #設置主DNS

DNS2=8.8.4.4 #設置備DNS

IPV6INIT=no #禁止IPV6

配置HOSTS,兩邊一樣。

[root@node01 ~]# cat /etc/hosts

192.168.102.1   node01  

192.168.102.2   node02  

192.168.102.10  vip       #集群IP

二、集群環境準備

兩臺機器啟動PCSD

systemctl start pcsd.service

systemctl enable pcsd.service

 

兩臺機器passwd hacluster

輸入同一個密碼hacluster

 

配置節點之間的相互認證

pcs cluster auth node01 node02

 

[root@node01 ~]# pcscluster auth node01 node02

Username:hacluster

PassWord:

node01:Authorized

node02:Authorized

出現以下顯示表示認證成功。

[root@node02~]# pcs cluster auth node01 node02

node01:Already authorized

node02:Already authorized

 

各節點之間時間同步

在node1和node2分別進行時間同步,可以使用ntp實現。

 

[root@node1 ~]# ntpdate 172.16.0.1//172.16.0.1 為時間服務器(若無時間服務器手動調整時間也可以)

三、集群創建

以nascluster為本集群的名稱。

[root@node01 ~]# pcs cluster setup --namenascluster node01 node02

Shutting down pacemaker/corosyncservices...

Redirecting to /bin/systemctl stop  pacemaker.service

Redirecting to /bin/systemctl stop  corosync.service

Killing any remaining services...

Removing all cluster configuration files...

node01: Succeeded

node02: Succeeded

pcs在執行以上命令時會生產corosync.conf及修改cib.xml文件,corosync.conf問corosync的配置文件,cib.xml為pacemaker的配置文件。這兩個配置文件是集群的核心配置,重裝系統時建議做好這兩個配置文件的備份

 

開啟集群

pcs cluster start --all  開啟集群

pcs cluster enable --all 設置集群自動啟動

pcs cluster status 查看集群狀態

    當有半數以上的節點在線時,這個集群就認為自己擁有法定人數了,是“合法”的,換而言之就是下面的公式: total_nodes < 2 * active_nodes,也就是說假設集群中有4個節點,但是活動節點有3個,4<2*3,即是合法的集群,如果活動節點有2個,4=2*2不能滿足total_nodes < 2 * active_nodes了,這個集群就非法了。

    因此在雙節點的集群中只有當兩者都在線時才是合法的的這個規則會讓“雙節點集群”毫無意義,但是我們可以控制Pacemaker發現集群達不到法定人數時候的行為。簡單來說,我們告訴集群忽略它。

在兩個節點的情況下設置以下值

pcs property set no-quorum-policy=ignore

集群故障時候服務遷移

pcs resource defaults migration-threshold=1

查看集群狀態

[root@node01 ~]# pcs cluster status

Cluster Status:

 Lastupdated: Tue Sep 16 06:35:31 2014

 Lastchange: Tue Sep 16 06:35:24 2014 via crmd on node02

 Stack: corosync

 Current DC: node02 (2) - partition with quorum

 Version: 1.1.10-29.el7-368c726

 2Nodes configured

 0Resources configured

 

PCSD Status:

 node01: Online

 node02: Online

 

查看集群成員

[root@node01 ~]# corosync-cmapctl |grepmembers 

runtime.totem.pg.mrp.srp.members.1.config_version(u64) = 0

runtime.totem.pg.mrp.srp.members.1.ip (str)= r(0) ip(192.168.102.1)

runtime.totem.pg.mrp.srp.members.1.join_count(u32) = 1

runtime.totem.pg.mrp.srp.members.1.status(str) = joined

runtime.totem.pg.mrp.srp.members.2.config_version(u64) = 0

runtime.totem.pg.mrp.srp.members.2.ip (str)= r(0) ip(192.168.102.2)

runtime.totem.pg.mrp.srp.members.2.join_count(u32) = 1

runtime.totem.pg.mrp.srp.members.2.status(str) = joined

 

 

 

 

查看成員信息

[root@node01 ~]# pcs status corosync

 

Membership information

----------------------

   Nodeid      Votes Name

        1          1 node01 (local)

        2          1 node02

 

查看XML

[root@node01 ~]# pcs cluster cib

 

檢查配置文件,發現提示沒有STONITH設備。

[root@node01 ~]# crm_verify -L -V

 error: unpack_resources:    Resource start-up disabled since no STONITH resources have been defined

  error: unpack_resources:    Either configure some or disable STONITH with the stonith-enabled option

  error: unpack_resources:     NOTE:Clusters with shared data need STONITH to ensure data integrity

Errors found during check: config not valid

暫時關閉stonish,后面再詳細講講stonish的配置。

pcs property set stonith-enabled=false

 

配置集群IP

pcs resource create vipocf:heartbeat:IPaddr2 ip=192.168.102.10 cidr_netmask=24 op monitor interval=30s

vip為自定義的一個集群IP的名稱,監控時間為30S。

 

測試浮動IP地址在集群中能否正常切換:

停node01的集群服務pcs cluster stop node01

在node02上查看狀態

[root@node02 ~]# pcs  status

Cluster name: nascluster

Last updated: Tue Sep 16 07:28:33 2014

Last change: Tue Sep 16 07:26:41 2014 viacibadmin on node01

Stack: corosync

Current DC: node02 (2) - partition withquorum

Version: 1.1.10-29.el7-368c726

2 Nodes configured

1 Resources configured

 

 

Online: [ node02 ]

OFFLINE: [ node01 ]

 

Full list of resources:

 

 vip   (ocf::heartbeat:IPaddr2):      Started node02   ##此條表示vip在node02上執行了

 

PCSD Status:

 node01: Online

 node02: Online

 

Daemon Status:

 corosync: active/enabled

 pacemaker: active/enabled

 pcsd: active/disabled

 

在node01恢復后,為防止node02資源遷回node01(遷來遷去對還是會對業務有一定影響)

pcs resource defaultsresource-stickiness=100

pcs resource defaults

 

 

四、創建GFS2文件系統

mkfs.gfs2 -p lock_dlm -j 2 -tnascluster:nas /dev/my_vg/gfsdata

配置dlm鎖監控時間

pcs cluster cib dlm_cfg  ##由于cib.xml非常重要,為避免出錯不建議直接修改,故生產一個dlm_cfg文件,將配置寫入dlm_cfg文件后,再將dlm_cfg寫入cib.xml中。

pcs -f dlm_cfg resource create dlmocf:pacemaker:controld op monitor interval=60s

pcs -f dlm_cfg resource clone dlmclone-max=2 clone-node-max=1

pcs -f dlm_cfg resource show

pcs cluster cib-push dlm_cfg

普及一下dlm鎖的知識:

    DistributedLock Manager,簡稱DLM,是一個分布式鎖管理器,它是RHCS的一個底層基礎構件,同時也為集群提供了一個公用的鎖運行機制。DLM運行在每個節點上,GFS通過鎖管理器的機制來同步訪問文件系統的元數據。CLVM通過鎖管理器來同步更新數據到LVM卷和卷組。    DLM不需要設定鎖管理服務器,它采用對等的鎖管理方式,大大提高了處理性能。同時,DLM避免了單個節點失敗需要整體恢復的性能瓶頸。另外,DLM的請求是本地的,不需要網絡請求,因此請求會立即生效。最后,DLM通過分層機制,可以實現多個鎖空間的并行鎖模式。

查看狀態

[root@node01 nas]# pcs status

Cluster name: nascluster

Last updated: Tue Sep 16 07:48:09 2014

Last change: Tue Sep 16 07:44:08 2014 viacibadmin on node01

Stack: corosync

Current DC: node02 (2) - partition with quorum

Version: 1.1.10-29.el7-368c726

2 Nodes configured

3 Resources configured

 

 

Online: [ node01 node02 ]

 

Full list of resources:

 

 vip   (ocf::heartbeat:IPaddr2):      Started node02

 Clone Set: dlm-clone [dlm]

    Started: [ node01 node02 ]   ##DLM的狀態

 

PCSD Status:

 node01: Online

 node02: Online

 

Daemon Status:

 corosync: active/enabled

 pacemaker: active/enabled

 pcsd: active/enabled

 

五、stonith配置

查看本系統支持的fence設備

pcs stonith list

查看即將要使用的fence設備相關信息

pcs stonith describe fence_ilo4

由于服務器是HP DL380 GEN8的,支持ILO4,但是在實際配置中采用fence_ilo4卻發現怎么也不通,man  fence_ilo4發現fence_ipmilan也可以配置ilo4的FENCE設備,但是必須要加lanplus="true"參數。

 

pcs cluster cib stonith_cfg                             ##生產初始配置文件stonith_cfg

 

pcs -f stonith_cfg stonith create ipmi-fence-node01fence_ipmilan parms lanplus="true" pcmk_host_list="node01" pcmk_host_check="static-list"action="reboot" ipaddr="192.168.103.1" login=USERIDpasswd=password op monitor interval=60s

 

pcs -f stonith_cfg stonith create ipmi-fence-node02fence_ipmilan parms lanplus="true" pcmk_host_list="node02" pcmk_host_check="static-list"action="reboot" ipaddr="192.168.103.2" login=USERIDpasswd=password op monitor interval=60s

 

解釋:創建一個名為ipmi-fence-node01的fence設備名稱用于建node01的fence,pcmk_host_check="static-list"的功能是將node01與192.168.103.1對應,后面login=USERIDpasswd=password op monitor interval=60s不再解釋。

 

pcs -f stonith_cfg stonith

檢查stonith_cfg中stonith配置信息

pcs -f stonith_cfg property setstonith-enabled=true 上文關閉了stonish,現在開啟stonish

pcs property set stonith-enabled=true

pcs -f stonith_cfg property

檢查stonith_cfg中stonith是否已經開啟

pcs cluster cib-push stonith_cfg 將stonith_cfg寫入cib.xml

 

node02上測試FENCE是否成功stonith_admin--reboot node01

node01上測試FENCE是否成功stonith_admin--reboot node02

 

pcs cluster standbynode01 將node01業務VIP遷移到node02上測試集群是否正常。(手動切換)

 

在集群所有節點重啟后發現gfs的文件系統無法自動掛載,定義了fstab也不行,經過分析發現系統開機時候執行了pcs cluster start,而且很快就返回啟動成功的結果,但是系統日志里面顯示仍然還啟動完成,考慮到系統進入系統之后集群有可能還沒啟動完成,所有自然無法掛載gfs的文件系統。

如果無法自動掛載,我自己編寫了一個循環掛載的腳本。供參考。

編輯腳本

mountnas.sh

#!/bin/bash

i=1

while(($i<50))

do

mount |grep nas

if [ $? = 1 ];then mount /dev/my_vg/gfsdata/nas

else exit

fi

sleep 3

done                            

 

chmod 777 /etc/rc.local  centos7 還需要給rc.local加個權限,要不然開機不會執行rc.local

在/etc/rc.local

加入bash /mountnas.sh                                                                     

 

六、配置多路心跳

   在rhcs中,可以配置多路心跳,一路將fence作為心跳,一路將網絡作為心跳,在corosync pacemaker的集群中,找了國內外很多技術文章,均未做相關描述的。主要是因為corosync pacemaker的集群相對來說已經很可靠,在未配置多路心跳之前將業務網卡DOWN后,發現 node02的集群馬上失效,集群IP立即切換至node01上,未出現腦裂的情況。

   作為自己研究,嘗試了再配置了一個心跳。

在/etc/corosync.conf中,畢竟corosync管理心跳,所以只有在它里面想辦法了,在centos7之前的corosync.conf配置中,會定義interface {}作為多個網絡,但是在centos7中經過PCS統一管理后,經過測試發現pacemaker只認nodelist{}作為網絡,難道這又是一個變動?

在totem {}

定義:

rrp_mode: passive  #默認為none,修改為passive才可以支持兩個網段

 

nodelist {

node{

   ring0_addr:node01

   ring0_addr:test01  -test01為第二個心跳

    }

node{

   ring0_addr:node02

   ring0_addr:test02  -test02為第二個心跳

    }

 

         }

記得修改host表。

重啟集群即可生效,目前node01,node02對應192.168.102.0網段,test01 test02對應192.168.103.0網段,同時可以在192.168.103.0網段上再新建一個業務IP,

在配置集群IP之前需要對test01 test02配置認證。

[root@node01 ~]# pcs cluster auth test01 test02

Username: hacluster

Password:

test01: Authorized

test02: Authorized

出現以下顯示表示認證成功。

[root@node02 ~]# pcs cluster auth test01 test02

test01: Already authorized

test02: Already authorized

 

配置集群IP

pcs resource create testipocf:heartbeat:IPaddr2 ip=192.168.103.10 cidr_netmask=24 op monitor interval=30s  注意testip與上文的vip已經名字不一樣,兩個集群IP的名字不能一致。

 

七、配置集群應用

以apache為例:

apache安裝過程略。

pcs resource create webocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.confstatusurl="http://localhost/server-status" op monitor interval=1min

 

pcs status查看apache狀態,

pcs resource group add httpd(組名稱) vip web

pcs constraint colocation add Web vipINFINITY 將apache與vip綁定在同一個節點上。

pcs constraint order vip then Web,指定集群IP先啟動,然后再啟動apache

pcs constraint location Web prefers node01=200指定node01優先啟動apache

crm_simulate -sL 查看資源黏性值,集群業務優先在資源黏性值高的節點上運行。

Current cluster status:

Online: [ node01 node02]

vip (ocf:heartbeat:IPaddr2): Started node01

Web (ocf:heartbeat:apache): Started node01

Allocation scores:

native_color: vip allocation score on node01:200

native_color: vip allocation score on node02:50

native_color: Web allocation score on node01:200

native_color: Web allocation score on node02:50

Transition Summary:

 

手動切換集群資源

以上配置由集群自動分配資源到node01、node02上,有時候為了維護,必須手動遷移資源到指定節點上。

# pcs constraint location Web prefers node01=INFINITY

# pcs constraint --full 查看資源狀態

# pcs constraint remove location-Web-node01-INFINITY將控制權還給集群


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品99久久久久久久女警 | 91亚洲精品一区二区福利 | 国产免费一区视频 | 亚洲伊人色欲综合网 | 极品国产91在线网站 | 乱淫67194 | 国产精品久久久久久久午夜片 | 久草在线网址 | 久草影音 | 中文字幕电影免费播放 | 日本一区二区视频在线观看 | 黄片一级毛片 | 久久精品99北条麻妃 | xxxxhd86日本护士hd | 美女一级视频 | 久久久久夜色精品国产老牛91 | 欧美亚洲一级 | 欧美18一12sex性处hd | 久久国产综合视频 | 狠狠干夜夜草 | av在线不卡免费 | 欧美日韩成人一区二区 | 亚洲乱码精品久久久久 | 国产成人羞羞视频在线 | 九九热精品免费 | 在线免费观看毛片视频 | 中文字幕www. | av免费av| 久久欧美亚洲另类专区91大神 | 欧美精品一二三区 | 作爱在线观看 | 精品一区二区免费视频视频 | 中文字幕亚洲视频 | 日韩av在线网 | 色播一区 | 色综合视频 | 欧洲成人一区 | 国产精品视频免费网站 | 成人 精品 | 国产在线区 | 久久精品久久精品久久精品 |