corosync+pacemaker+http高可用操作手記
前言:
因為公司大量用到了corosync+packmaker,本人之前只是瞭解,並沒深入比較keepalive及heatbeatcorosync+packmaker的區別,原理方面不探討,可以檢視官網,或者檢視網上資料。
這裡僅僅分享一下自己做的一個小實驗,算是基礎入門。新公司東西比較多,因此最近部落格更新會很慢,但是以後有時間分享的東西,則都是網上少見的,加上自己的經驗之談,熱愛開源,熱愛分享。
實驗目的:
利corosync+packmaker,做到http高可用訪問。當然可以結合drdb,nfs,MySQL等服務,玩出新花樣。
實驗規劃:
node1:httpd
192.168.179.129 業務地址
192.168.107.128 心跳地址
192.168.8.111 訪問地址
node2 httpd
192.168.179.130 業務地址
192.168.107.129 心跳地址
192.168.8.112
node3 NFS-Server
192.168.179.131 業務地址
192.168.107.130 訪問地址
fip(vip):192.168.8.140
準備工作:
1 2 3 4 5 6 7 8 9 |
# crontab -l
|
hosts檔案:
1 2 3 4 |
|
主機互信:
1 2 3 4 5 6 7 8 9 10 |
|
部署:
1 2 3 4 |
|
配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
為叢集生成corosync keys並拷貝到其他節點:
node1:
1 2 3 4 5 6 |
|
啟動服務:
1 2 3 4 5 6 7 |
|
#crm編譯安裝:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
#yum 安裝
1 2 3 4 |
|
#crm詳解:
crm有兩種工作方式
1,批處理模式,就是在shell命令列中直接輸入命令
2,互動式模式(crm(live)#)進入到crmsh中互動執行
1 2 3 4 5 6 7 |
|
一級子命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
resource資源狀態控制子命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
configure資源定義子命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
對配置進行操作
verify、show、edit、delete、save、load、commite都是對已有的配置進行的操作。
(1)verify
用於驗證剛剛完成的配置是否有效。如果出現錯誤,verify會給出一些有用的提示;
(2)show
格式為:
show [xml] [<id> ...]
show [xml] changed
打印出當前已有的配置。不加引數,會以與命令列相同格式的文字輸出配置。加上xml引數,會以xml的格式輸出配置。如果指定了資源或者屬性的id,show可以輸出指定部分的配置;
另外,show [xml] changed可以顯示配置檔案發生了那些變化。
(3)edit、delete
edit的格式為:
edit [xml] [<id> ...]
edit [xml] changed
edit可以修改已有的配置,不帶引數,則是修改命令列相同格式的文字。加上xml引數,則需要修改xml格式的文字。如果指定了資源或者屬性的id,就可以修改指定部分的配置。
edit [xml] changed可以對發生的變動進行編輯。
delete的格式為:
delete <id> [<id> ...]
delete用於刪除指定id的資源或者屬性,可以同時刪除多個,id之間使用空格分隔;
(4)save、load
save的格式為:
save [xml] <file>
save可以儲存當前已有的配置。
不加xml引數,save會以於命令列相同的格式將配置儲存為純文字檔案;加上xml引數,則save會將配置儲存為xml格式的檔案。
load命令的格式為:
load [xml] method URL
method :: replace | update
load可以載入之前儲存過的配置檔案。提供了2種載入方法;
replace,會清空原來的配置,使用載入的配置檔案;
update,會保留原來的配置,嘗試將載入的配置加入當前的配置中。
同樣的,不加xml引數,load會認為載入的檔案使用的是命令列格式;加上xml引數,則load會以xml的方式解析載入的檔案。
另外,load可以直接載入通過url地址載入遠端的配置檔案,如http://storage.big.com/cibs/bigcib.xml。
(5)commit
對於叢集配置的修改並不是立即生效的,需要執行commite之後才能真正產生作用。某些情況下,commite時可能會提示拒絕提交剛剛修改的配置,那麼肯定是配置的變化存在一些問題。如果能夠確定自己的配置沒有問題,可以使用commite force強制提交配置。
node節點管理子命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
ra資源代理子命令
1 2 3 4 5 6 7 8 9 10 |
|
檢視當前集群系統所支援的型別
1 2 3 4 5 6 7 8 |
|
檢視某種類別下的所用資源代理的列表
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
檢視某個資源代理的配置方法
1 2 3 4 5 6 7 8 9 |
|
如果想要檢視某種類別下的所用資源代理的列表,可以使用類似如下命令實現:
# crm ra list lsb
# crm ra list ocf heartbeat
# crm ra list ocf pacemaker
# crm ra list stonith
eg:示例
1 2 3 4 5 6 7 8 9 |
|
全域性配置:
crm(live)configure# property stonith-enabled="false"
crm(live)configure# property no-quorum-policy="ignore"
crm(live)configure# rsc_defaults resource-stickiness=100
配置fip資源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|