日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pacemaker+corosync实现集群管理

發(fā)布時(shí)間:2025/3/11 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pacemaker+corosync实现集群管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:

高可用集群,是指以減少服務(wù)中斷(如因服務(wù)器宕機(jī)等引起的服務(wù)中斷)時(shí)間為目的的服務(wù)器集群技術(shù)。簡(jiǎn)單的說(shuō),集群就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶提供一組網(wǎng)絡(luò)資源。這些單個(gè)的計(jì)算機(jī)系統(tǒng)就是集群的節(jié)點(diǎn)。
高可用集群的出現(xiàn)是為了減少由計(jì)算機(jī)硬件和軟件易錯(cuò)性所帶來(lái)的損失。它通過(guò)保護(hù)用戶的業(yè)務(wù)程序?qū)ν獠婚g斷提供的服務(wù),把因軟件/硬件/人為造成的故障對(duì)業(yè)務(wù)的影響降低到最小程度。

什么是pacemaker :

Pacemaker是一個(gè)集群資源管理器。它利用集群基礎(chǔ)構(gòu)件(OpenAIS 、heartbeat或corosync)提供的消息和成員管理能力來(lái)探測(cè)并從節(jié)點(diǎn)或資源級(jí)別的故障中恢復(fù),以實(shí)現(xiàn)群集服務(wù)(亦稱資源)的最大可用性。

Corosync
Corosync是集群管理套件的一部分,他在傳遞信息的時(shí)候可以通過(guò)一個(gè)簡(jiǎn)單的配置文件來(lái)定義信息傳遞的方式和協(xié)議等。也就是說(shuō),corosync是Messaging Layer集群信息層軟件,需要pacemaker資源管理器,才能構(gòu)成一個(gè)完整的高可用集群。它也是運(yùn)行于心跳層的開(kāi)源軟件。(是集群框架引擎程序)

實(shí)驗(yàn)搭建:

準(zhǔn)備三臺(tái)7.3的虛擬機(jī)
server1:ip為172.25.5.111 作為管理節(jié)點(diǎn)和HA節(jié)點(diǎn)
server2:ip為172.25.5.112 作為HA節(jié)點(diǎn)
server3:ip為172.25.5.113 作為iscsi共享磁盤

三臺(tái)虛擬機(jī)關(guān)火墻,selinux狀態(tài)disabled,

首先需要配好高可用yum源(server1和server2):



yum源配好之后安裝工具(一和二都裝)

yum install pacemaker pcs corosync -y systemctl start pcsd systemctl enable pcsd passwd hacluster 為高可用用戶設(shè)定密碼 yum install bash-* -y 安裝pcs相關(guān)命令

因?yàn)楣俜揭?guī)定為了安全起見(jiàn)要生成ssh密鑰,給自己和server2發(fā)送一份
server2重復(fù)相同操作

ssh-keygen ssh-copy-id server1 ssh-copy-id server2

發(fā)送不了你看下自己的解析寫(xiě)好沒(méi):

在server1上

pcs cluster auth server1 server2 pcs cluster setup --name mycluster server1 server2 pcs cluster start --all pcs cluster enable --all pcs status pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore crm_verify -L pcs resource list pcs resource standards

在server1和server2上安裝httpd,并寫(xiě)入網(wǎng)頁(yè)

在server1上創(chuàng)建vip:

pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.5.100 cidr_netmask=32 op monitor interval=30s

在server2上查看

crm_mon

測(cè)試:

pcs cluster stop server1 crm_mon pcs cluster start server1

在sever1上添加httpd資源和組

pcs resource create apache systemd:httpd op monitor interval=1min pcs resource group add apache_group vip apache crm_mon pcs constraint order vip then apache

添加fence柵設(shè)備

在server1、server2和物理機(jī)上分別安裝fence

yum install fence-virt -y mkdir /etc/cluster

在物理機(jī)上

fence_virtd -c ##配置fence Interface [virbr0]: br0 ##設(shè)備選擇br0,其他用默認(rèn)生成fence_xvm.key mkdir /etc/cluster dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1把fence_xvm.key分發(fā)到HA節(jié)點(diǎn),通過(guò)這個(gè)key來(lái)管理節(jié)點(diǎn) scp fence_xvm.key root@server1:/etc/cluster/ scp fence_xvm.key root@server2:/etc/cluster/systemctl start fence_virtd.service

在server1上識(shí)別并添加fence

注意:server1(主機(jī)名):server1(虛擬機(jī)名)

stonith_admin -I pcs stonith create vmfence fenxe_xvm pcmk_host_map="server1:server1;server2:server2" op monitor interval=1min

測(cè)試:

寫(xiě)壞server2的內(nèi)核,通過(guò)fence重啟

pcs property set stonith-enabled=true echo c >/proc/sysrq-trigger

添加iscsi網(wǎng)絡(luò)共享磁盤

server3作為共享磁盤
為server3添加一塊20G的虛擬磁盤

fdisk /dev/vda 建個(gè)分區(qū) partprobe

安裝共享磁盤服務(wù)并設(shè)置

yum install targetcli -y targetcli /backstores/block create my_disk1 /dev/vdaiscsi/ create iqn.2019-06.com.example:server3iscsi/iqn.2019-06.com.cc.example:server3:/tpg1/luns create /backstores/block/my_disk1 iscsi/iqn.2019-06.com.cc.example:server3/tpg1/acls create iqn.2019-06.com.example:client exit

在server1和server2上安裝iscsi
并編寫(xiě)文件

yum install iscsi-* -y cat /etc/iscsi/initiatorname.iscsi InitiatorName=iscsi/iqn.2019-06.com.cc.example:client systemctl restart iscsid

識(shí)別并登陸共享磁盤

iscsiadm -m discovery -t st -p 172.25.5.113 iscsiadm -m node -l partprobe cat /proc/partitions

在共享磁盤上創(chuàng)建一個(gè)分區(qū)并格式化

fdisk /dev/sdb mkfs.ext4 /dev/sdb1 partprobe

在server2同步并查看

partprobe cat /proc/partitions

添加mysql數(shù)據(jù)庫(kù)資源

在server1和server2上分別安裝mariadb

yum install mariadb-* -y sysemctl start mariadb

server1掛載到共享磁盤并登陸數(shù)據(jù)庫(kù)

chown mysql.mysql /var/lib/mysql mount /dev/sdb1 /var/lib/mysql systemctl start mariadb mysql -uroot

關(guān)閉server1的mariadb并在server2登陸數(shù)據(jù)庫(kù)

server1 systemctl stop mariadbserver2 mount /dev/sdb1 /var/lib/mysqlsystemctl start mariadbmysql -uroot

測(cè)試完畢卸載并關(guān)閉mariadb

umount /var/lib/mysql systemctl stop mariadb

刪除之前創(chuàng)建的apache組
并創(chuàng)建新的vip和組

pcs resource delete apache_group pcs resource create vip1 ocf:heartbeat:IPaddr2 ip=172.25.11.200 cidr_netmask=32 op monitor interval=30s pcs resource create mysql_data ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mysql fstype=xfs op monitor interval=30s df crm_mon pcs resource create mariadb systemd:mariadb op monitor interval=1min pcs resource group add mysql_group vip1 mariadb crm_mon

在server1登陸mysql測(cè)試

mysql -uroot

在server2把內(nèi)核寫(xiě)崩測(cè)試fence

pcs property set stonith-enabled=true echo c >/proc/sysrq-trigger

解決fence資源的bug

目的:寫(xiě)崩server2內(nèi)核,在server2重啟過(guò)程中,資源會(huì)回到server1上,當(dāng)server2重啟以后,資源也會(huì)一直在server1上

解決辦法:
刪除之前創(chuàng)建資源、組、fence

pcs resource delete mysql_group pcs resource delete vmfence pcs property set stonith-enabled=false crm_verify -L -V

重新添加資源、組、fence

pcs resource create vip1 ocf:heartbeat:IPaddr2 ip=172.25.5.200 cidr_netmask=32 op monitor interval=30s pcs resource create mysql_data ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mysql fstype=xfs op monitor interval=30s pcs resource create mariadb systemd:mariadb op monitor interval=1min pcs resource group add mysql_group vip1 mariadb

更改resource-stickiness值

pcs resource defaults pcs resource defaults resource-stickiness=100 pcs resource defaults

添加fence并再次更改resource-stickiness值

pcs stonith create vmfence fenxe_xvm pcmk_host_map="server1:server1;server2:server2" op monitor interval=1min pcs resource defaults resource-stickiness=0 pcs resource defaults pcs property set stonith-enabled=true

測(cè)試:
寫(xiě)崩server2內(nèi)核,在server2重啟過(guò)程中,資源會(huì)回到server1上,當(dāng)server2重啟以后,資源也會(huì)一直在server1上

總結(jié)

以上是生活随笔為你收集整理的pacemaker+corosync实现集群管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。