日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

pacemaker+corosync实现集群管理

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

前言:

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

什么是pacemaker :

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

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

實驗搭建:

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

三臺虛擬機(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)命令

因為官方規(guī)定為了安全起見要生成ssh密鑰,給自己和server2發(fā)送一份
server2重復(fù)相同操作

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

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

在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,并寫入網(wǎng)頁

在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

測試:

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é)點,通過這個key來管理節(jié)點 scp fence_xvm.key root@server1:/etc/cluster/ scp fence_xvm.key root@server2:/etc/cluster/systemctl start fence_virtd.service

在server1上識別并添加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

測試:

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

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

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

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

fdisk /dev/vda 建個分區(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
并編寫文件

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

識別并登陸共享磁盤

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

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

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

在server2同步并查看

partprobe cat /proc/partitions

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

在server1和server2上分別安裝mariadb

yum install mariadb-* -y sysemctl start mariadb

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

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

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

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

測試完畢卸載并關(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測試

mysql -uroot

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

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

解決fence資源的bug

目的:寫崩server2內(nèi)核,在server2重啟過程中,資源會回到server1上,當(dāng)server2重啟以后,資源也會一直在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

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

總結(jié)

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

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