基于corosync+pacemaker的高可用集群
為棲霞等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及棲霞網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、棲霞網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!Pacemaker即Cluster Resource Manager (簡稱CRM),用來管理整個(gè)HA的控制中心,客戶端通過pacemaker來配置管理監(jiān)控整個(gè)集群。它不能提供底層心跳信息傳遞的功能,它要想與對方節(jié)點(diǎn)通信需要借助底層(新拆分的heartbeat或corosync)的心跳傳遞服務(wù),將信息通告給對方。
pacemaker管理資源的工具由命令行界面的crmsh、pcs和圖形化界面pygui、hawk等進(jìn)行管理。
因此,一般來說都是選擇corosync來進(jìn)行心跳的檢測,搭配pacemaker的資源管理系統(tǒng)來構(gòu)建高可用的系統(tǒng),下面就來介紹下corosync+pacemaker構(gòu)建高可用系統(tǒng)。
配置共有兩個(gè)測試節(jié)點(diǎn),分別server2和server3,相的IP地址分別為172.25.80.2和172.25.80.3;
模擬實(shí)現(xiàn)的集群服務(wù)是web服務(wù);
提供web服務(wù)的地址為172.25.80.1
1,基礎(chǔ)環(huán)境設(shè)置:
首先配置一臺HA主機(jī)需要做的準(zhǔn)備工作:
1)固定IP地址
2)所有節(jié)點(diǎn)的主機(jī)名稱和對應(yīng)的IP地址解析服務(wù)可以正常工作,只需要保證兩個(gè)節(jié)點(diǎn)上的/etc/hosts文件均為下面的內(nèi)容:
172.25.80.2 server2 node1
172.25.80.3 server3 node2
以上三步配置完成后能實(shí)現(xiàn)相互解析主機(jī)名,如下:
3)配置節(jié)點(diǎn)信任關(guān)系:
節(jié)點(diǎn)1:
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
節(jié)點(diǎn)2:
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
2,安裝環(huán)境需要的相應(yīng)的軟件包:
#yum install -y libibverbs librdmacm lm_sensors libtool-ltdl openhpi-libs openhpiperl-TimeDate
3,安裝corosync和pacemaker,我們這里將軟件包放在/root/corosync目錄下(兩個(gè)節(jié)點(diǎn)都要做):
cluster-glue-1.0.6-1.6.el5.i386.rpm
cluster-glue-libs-1.0.6-1.6.el5.i386.rpm
corosync-1.2.7-1.1.el5.i386.rpm
corosynclib-1.2.7-1.1.el5.i386.rpm
heartbeat-3.0.3-2.3.el5.i386.rpm
heartbeat-libs-3.0.3-2.3.el5.i386.rpm
libesmtp-1.0.4-5.el5.i386.rpm
openais-1.1.3-1.6.el5.i386.rpm
openaislib-1.1.3-1.6.el5.i386.rpm
pacemaker-1.0.11-1.2.el5.i386.rpm
pacemaker-libs-1.0.11-1.2.el5.i386.rpm
perl-TimeDate-1.16-5.el5.noarch.rpm
resource-agents-1.0.4-1.1.el5.i386.rpm
開始安裝:
# cd /root/corosync/
# yum -y --nogpgcheck localinstall *.rpm
這里我們使用本地yum安裝,并忽略包的檢查。
4,corosync的相關(guān)配置(在節(jié)點(diǎn)1上執(zhí)行):
# cd /etc/corosync
# cp corosync.conf.example corosync.conf
這里corosync.conf.example是配置樣本,我們只需拷貝一份,并進(jìn)行修改即可:
vim /etc/corosync/corosync.conf
compatibility: whitetank
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.25.0.0
mcastport: 5405
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile:/var/log/cluster/corosync.log //此處日志存放的地方
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode: disabled
}
service {
ver: 0
name: pacemaker
}
aisexec {
user: root
group: root
}
生成節(jié)點(diǎn)間通信時(shí)用到的認(rèn)證密鑰文件:
# corosync-keygen //此處會在當(dāng)前目錄下生成一個(gè)認(rèn)證密鑰文件
然后拷貝相關(guān)的文件到節(jié)點(diǎn)2上:
# scp -p corosync.conf authkey node2:/etc/corosync/
為兩個(gè)節(jié)點(diǎn)創(chuàng)建corosync生成的日志所在的目錄:
# mkdir /var/log/cluster
# ssh node2 -- mkdir /var/log/cluster
5,開始啟動(dòng)corosync(在節(jié)點(diǎn)1上執(zhí)行):
# /etc/init.d/corosync start
Starting Corosync Cluster Engine(corosync): [ OK ] //出現(xiàn)此,說明corosync已經(jīng)啟動(dòng)
啟動(dòng)節(jié)點(diǎn)2:
# ssh node2 -- /etc/init.d/corosync start //此步您需要在節(jié)點(diǎn)1上進(jìn)行
Starting Corosync Cluster Engine (corosync): [ OK ] //出現(xiàn)此,說明您的節(jié)點(diǎn)2corosync已經(jīng)啟動(dòng),節(jié)點(diǎn)2上繼續(xù)驗(yàn)證是否出現(xiàn)異常錯(cuò)誤
Online: [ server2 server3 ] //此處說明您的兩個(gè)集群節(jié)點(diǎn)均已運(yùn)行正常。
6,配置集群的工作屬性:
因?yàn)閏orosync默認(rèn)已經(jīng)啟用了stonith,而當(dāng)前又沒有添加stonith設(shè)備,會出現(xiàn)默認(rèn)配置不可用的狀態(tài),為防止以后出現(xiàn)錯(cuò)誤,影響操作,我們這里可以禁用stonith:
# crm configure property stonith-enabled=false //這樣執(zhí)行的命令會提交而且會立即生效
INFO: building help index
crm,crm_verify相關(guān)的命令是1.0后的版本的pacemaker提供的基于命令行的集群管理工具;可以在集群中的任何一個(gè)節(jié)點(diǎn)上執(zhí)行,查看相應(yīng)的信息。
7,為集群添加集群資源:
corosync支持heartbeat,lsb和ocf等類型的資源代理,目前較為常用的類型為lsb和lsb兩類,stonith類專為配置stonith設(shè)備而用。
8,配置相試網(wǎng)頁:
#echo "
可以通過主機(jī)的瀏覽器輸入http://172.25.80.1進(jìn)行訪問web服務(wù):
9,在節(jié)點(diǎn)2上使節(jié)點(diǎn)1離線:
# ssh node1 -- /etc/init.d/corosync stop
# crm status
============
Stack: openais
Current DC: server3 - partition WITHOUT quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ server3 ]
OFFLINE: [ server2 ]
此時(shí)節(jié)點(diǎn)1已經(jīng)離線,而節(jié)點(diǎn)2卻無法獲得相應(yīng)的資源,當(dāng)然也無法訪問相應(yīng)的服務(wù),,此時(shí)的集群狀態(tài)是“WITHOUT quorum”,沒有了quorum,就無法使節(jié)點(diǎn)獲得相應(yīng)的資源,集群服務(wù)無法正常運(yùn)行??梢圆扇≡O(shè)置quorum,來忽略quorum。如下設(shè)置:
# crm configure property no-quorum-policy=ignore
# crm status
============
Stack: openais
Current DC: server3 - partition WITHOUT quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ seerver3 ]
OFFLINE: [ server2 ]
Resource Group: Web
WebIP (ocf::heartbeat:IPaddr):Started server3
WebSite (lsb:httpd): Started server3//此時(shí)節(jié)點(diǎn)2已經(jīng)獲得資源
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。