pacemaker+corosync
Pacemaker
Server1 172.25.23.1節(jié)點(diǎn)1
Server2 172.25.23.2節(jié)點(diǎn)2
Server3 172.25.23.3做存儲分離的
VIP 172.25.23.100
Selinux iptables 關(guān)掉 做解析及時(shí)間同步
?
1.安裝軟件
將原來做的實(shí)驗(yàn)全部停掉防止干擾如keepalived.....
Server1 server2 獲取安裝包 ?
??crmsh-1.2.6-0.rc2.2.1.x86_64.rpm ?pssh-2.3.1-2.1.x86_64.rpm
??安裝好pacemaker后就沒有crm shell命令行工具我們得單獨(dú)安裝即yum installcrmsh
yum?install -y crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm ????
yum install -y pacemaker corosync
?
2.修改配置文件
cd /etc/corosync
cp corosync.conf.example corosync.conf
vim corosync.conf
---->
compatibility: whitetank
totem {
????????version: 2# totme的版本
????????secauth: off# 安全認(rèn)證
????????threads: 0# 安全認(rèn)證開啟并行線程數(shù)
????????interface {
????????????????ringnumber: 0# 回環(huán)數(shù)
????????????????bindnetaddr: 172.25.23.0?# 網(wǎng)段地址
????????????????mcastaddr: 226.94.1.1# 心跳信息組播地址
????????????????mcastport: 5428?# 同一個(gè)廣播域的要不同
????????????????ttl: 1
????????}
}
?
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 {
????????name: pacemaker# 添加的服務(wù)名
????????ver: 0# 0:啟動(dòng)corosync時(shí)會(huì)自動(dòng)啟動(dòng)pacemaker以插件的方式來啟動(dòng)不是以腳本的方式來啟動(dòng),1:不會(huì)自動(dòng)啟動(dòng)
?
}
?
scp corosync root@172.25.23.2:/etc/corosync?????
/etc/init.d/corosync start# server1和server2都啟動(dòng)服務(wù)
tail -f /var/log/messages
?
3.在物理機(jī)上配置fence_xvm.key并啟動(dòng)服務(wù)查看1229是否啟動(dòng)
??systemctl start fence_virtd
??在server1和server2
yum install -y fence-virt
stonith_admin -I #查看安裝的fence相關(guān)軟件主要有fence_xvm
?
stonith_admin -a fence_xvm -M #查看相關(guān)的配置內(nèi)容
?
?
4.基本指令
crm_mon ?#查看在線情況
crm_verify ?-LV?#檢測是否有語法錯(cuò)誤
crm status#查看狀態(tài)
crm #輸入crm命令進(jìn)入資源配置模式?
crm(live)# help #輸入help查看一下會(huì)出現(xiàn)很多子命令
crm(live)# configure #輸入configure就會(huì)進(jìn)入configure模式下
crm(live)configure# help node #輸入help加你想了解的任意命令就會(huì)顯示該命令的使用幫助與案例
crm(live)# standby#令該節(jié)點(diǎn)掛掉
?
注簡單說不會(huì)的命令help一下
?
5.配置高可用的Web集群
(1)做映射 ??
#?commit提交配置的資源在命令行配置資源時(shí)只要不用commit提交配置好資源就不會(huì)生效一但用commit命令提交就會(huì)寫入到cib.xml的配置文件中
?
[root@server1 corosync]# crm
?
(2)添加VIP
?
[root@server1 cluster]# /etc/init.d/corosync restart
?
(3)當(dāng)一臺機(jī)器掛掉之后另一臺接管VIP
[root@server1 cluster]# crm
?
?
vim /etc/httpd/conf/httpd.conf
(4)添加apache服務(wù)
[root@server1 cluster]# crm
?
# warnning為設(shè)置的時(shí)間過長
[root@server1 cluster]# crm_mon
?
(5)VIP 和服務(wù)不在同一個(gè)機(jī)子上需要進(jìn)行綁定將website服務(wù)和 VIP 兩個(gè)綁定
?
?
?
[root@server1 cluster]# /etc/init.d/corosync resatrt
[root@server1 cluster]# crm_mon
?
測試Server2 down了之后由server1接管
[root@server2 corosync]# /etc/init.d/corosync stop
?
?
?
?
3.存儲分離iscsi
1.在服務(wù)端新建一個(gè)新的磁盤
vim /etc/tgt/targerts.conf
......
<target iqn.2016-07.com.example:storage1>
????backing-store /dev/vda1
????initiator-address 172.25.23.1
????initiator-address 172.25.23.2
</target>
?
......
?
tgt-admin -s
......
???????Backing store type: rdwr
????????????Backing store path: /dev/vda1
????????????Backing store flags:
????Account information:
????ACL information:
????????172.25.23.1
????????172.25.23.2
?
2.兩邊同步server1 server2
[root@server1 cluster]# iscsiadm -m discovery -t st -p 172.25.23.3
Starting iscsid: ??????????????????????????????????????????[ ?OK ?]
172.25.23.3:3260,1 iqn.2016-07.com.example:storage1
[root@server1 cluster]# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2016-07.com.example:storage1, portal: 172.25.23.3,3260] (multiple)
Login to [iface: default, target: iqn.2016-07.com.example:storage1, portal: 172.25.23.3,3260] successful.
?
[root@server1 cluster]# fdisk -l??#檢測出多了一個(gè)sdb
[root@server1 cluster]# fdisk /dev/sdb
......
[root@server1 cluster]# partprobe
[root@server1 cluster]# cat /proc/partpitions
......
??8 ??????16 ???8388544 sdb
??8 ??????17 ???8387568 sdb1?#發(fā)現(xiàn) sdb1
[root@server1 cluster]#?mkfs.ext4 /dev/sdb1
?
(2)添加存儲
[root@server1 cluster]# crm
?
[root@server1 cluster]# crm_mon
?
(3) VIP 服務(wù) 存儲不在一臺機(jī)子上進(jìn)行綁定設(shè)置新的資源組apacheservice將VIP webdata website綁定在一起并且確定先后的啟動(dòng)順序
?
[root@server1 cluster]# crm_mon
?
?
?
(4)測試
在被掛載的主機(jī)上添加測試頁
echo hello > /var/www/html/index.html
訪問的時(shí)候會(huì)一直訪問這個(gè)測試頁不管如何刷新服務(wù)如何停止
?
問題
?
出現(xiàn)這種情況時(shí)注意啟動(dòng)物理機(jī)中的fence虛擬機(jī)中再重新啟動(dòng)corosync
?
補(bǔ)充
從上面的信息中可以看出vip和httpd有可能會(huì)分別運(yùn)行于兩個(gè)節(jié)點(diǎn)上這對于通過此IP提供Web服務(wù)的應(yīng)用來說是不成立的即此兩者資源必須同時(shí)運(yùn)行在某節(jié)點(diǎn)上。有兩種方法可以解決一種是定義組資源將vip與httpd同時(shí)加入一個(gè)組中可以實(shí)現(xiàn)將資源運(yùn)行在同節(jié)點(diǎn)上另一種是定義資源約束可實(shí)現(xiàn)將資源運(yùn)行在同一節(jié)點(diǎn)上。
定義組資源 group webservice vip httpd
定義資源約束
crm(live)configure?#colocation httpd-with-ip INFUNTY: httpd vip
接著我們還得確保httpd在某節(jié)點(diǎn)啟動(dòng)之前得先啟動(dòng)vip這可以使用如下命令實(shí)現(xiàn)
crm(live)configure# order httpd-after-vip mandatory: vip httpd?
?
?
刪除組資源操作
crm(live)# resource?
crm(live)resource# show??
crm(live)resource# stop webservice? #停止資源?
crm(live)resource# show?
crm(live)resource# cleanup webservice? #清理資源?
crm(live)# configure?
crm(live)configure# delete??
crm(live)configure# delete webservice #刪除組資源?
crm(live)configure# commit
?
定義約束使資源運(yùn)行在同一節(jié)點(diǎn)上。首先我們來回憶一下資源約束的相關(guān)知識資源約束則用以指定在哪些群集節(jié)點(diǎn)上運(yùn)行資源以何種順序裝載資源以及特定資源依賴于哪些其它資源。pacemaker共給我們提供了三種資源約束方法
Resource Location資源位置定義資源可以、不可以或盡可能在哪些節(jié)點(diǎn)上運(yùn)行
Resource Collocation資源排列排列約束用以定義集群資源可以或不可以在某個(gè)節(jié)點(diǎn)上同時(shí)運(yùn)行
Resource Order資源順序順序約束定義集群資源在節(jié)點(diǎn)上啟動(dòng)的順序
定義約束時(shí)還需要指定分?jǐn)?shù)。各種分?jǐn)?shù)是集群工作方式的重要組成部分。其實(shí)從遷移資源到?jīng)Q定在已降級集群中停止哪些資源的整個(gè)過程是通過以某種方式修改分?jǐn)?shù)來實(shí)現(xiàn)的。分?jǐn)?shù)按每個(gè)資源來計(jì)算資源分?jǐn)?shù)為負(fù)的任何節(jié)點(diǎn)都無法運(yùn)行該資源。在計(jì)算出資源分?jǐn)?shù)后集群選擇分?jǐn)?shù)最高的節(jié)點(diǎn)。INFINITY無窮大目前定義為 1,000,000。加減無窮大遵循以下3個(gè)基本規(guī)則
任何值 + 無窮大 = 無窮大
任何值 - 無窮大 = -無窮大
無窮大 - 無窮大 = -無窮大
定義資源約束時(shí)也可以指定每個(gè)約束的分?jǐn)?shù)。分?jǐn)?shù)表示指派給此資源約束的值。分?jǐn)?shù)較高的約束先應(yīng)用分?jǐn)?shù)較低的約束后應(yīng)用。通過使用不同的分?jǐn)?shù)為既定資源創(chuàng)建更多位置約束可以指定資源要故障轉(zhuǎn)移至的目標(biāo)節(jié)點(diǎn)的順序。因此對于前述的vip和httpd可能會(huì)運(yùn)行于不同節(jié)點(diǎn)的問題可以通過以下命令來解決
crm(live)configure?#colocation httpd-with-ip INFUNTY: httpd vip
接著我們還得確保httpd在某節(jié)點(diǎn)啟動(dòng)之前得先啟動(dòng)vip這可以使用如下命令實(shí)現(xiàn)
crm(live)configure# order httpd-after-vip mandatory: vip httpd?
此外由于HA集群本身并不強(qiáng)制每個(gè)節(jié)點(diǎn)的性能相同或相近。所以某些時(shí)候我們可能希望在正常時(shí)服務(wù)總能在某個(gè)性能較強(qiáng)的節(jié)點(diǎn)上運(yùn)行這可以通過位置約束來實(shí)現(xiàn)
crm(live)configure# location prefer-node1 vip node_pref::200: node1
?
?
?
轉(zhuǎn)載于:https://blog.51cto.com/11851085/1851685
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的pacemaker+corosync的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 包税是什么意思?
- 下一篇: I.MX6 Surfaceflinger