最近在部署openstack的雙控制節點上須要切換資源,因此學習了一下heartbeat和pacemaker,原本想用heartbeat 2可是操做系統是ubuntu 12.10的,apt下來版本直接是3.0.5的,爲了之後部署方便只能硬着頭皮學了,網上關於3的內容很少,不過和2區別不大,我的感受仍是關於資源的設置比較麻煩一些。 node
兩臺機器:10.1.1.2(compute-1) 10.1.1.3(compute-2) web
安裝heartbetat shell
apt-get install -y heartbeat
會自動安裝其餘三個關鍵包:pacemaker、resource-agents、 cluster-agents apache
配置heartbeat ubuntu
在/etc/heartbeat下面配置,ubuntu下自動作了一個軟鏈接/etc/heartbeat實際上是/etc/ha.d的鏈接。進入/etc/heartbeat 服務器
cp /usr/share/doc/heartbeat/ha.cf.gz . cp /usr/share/doc/heartbeat/authkeys . gzip -d ha.cf.gz
默認目錄下並無相關配置文件,能夠本身手動創建,也能夠直接修改軟件包中自帶的模板,由於使用pacemaker管理資源因此不須要拷貝haresources文件,若是使用了crm管理資源,而在配置文件目錄含有haresources文件,日誌中會提示haresources沒有使用。 網絡
配置authkeys文件 學習
auth 2 #1 crc 2 sha1 openstack #3 md5 Hello!官方不建議使用crc驗證,因此咱們使用sha1進行驗證, authkeys文件屬性必須是600,不然日誌會報錯。
配置ha.cf文件(10.1.1.2) spa
#集羣中的節點不會自動加入 autojoin none #heartbeat會記錄debug日誌,若是啓用use_logd,則此選項會被忽略 debugfile /var/log/ha-debug #記錄全部non-debug消息,若是啓用use_logd,則此選項會被忽略 logfile /var/log/ha-log #告訴heartbeat記錄那些syslog logfacility local0 #指定兩個心跳檢測包的時間間隔 keepalive 1 #多久之後心跳檢測決定集羣中的node已經掛掉 deadtime 30 #心跳包檢測的延時事件,若是延時,只是往日誌中記錄warning日誌,並不切換服務 warntime 10 #在heartbeat啓動後,在多長時間內宣佈node是dead狀態,由於有時候系統啓動後,網絡還須要一段時間才能啓動 initdead 120 #若是udpport指令在bcast ucast指令的前面,則使用哪一個端口進行廣播,不然使用默認端口 udpport 694 #設置使用哪一個網絡接口發送UDP廣播包,能夠設置多個網絡接口 #bcast eth1 eth0 #設置在哪一個網絡接口進行多播心跳檢測 #mcast eth0 239.0.0.1 694 1 0 #設置使用哪一個網絡接口進行UDP單播心跳檢測,在.3上爲10.1.1.2 ucast eth0 10.1.1.3 #在主節點的服務恢復後,是否把從節點的服務切換回來 auto_failback off #告訴集羣中有哪些節點,node名稱必須是uname -n顯示出來的名稱,能夠在一個node中設置多個節點,也能夠屢次設置node,每個在集羣中的node都必須被列出來 node compute-1 node compute-2 #設置ping節點,ping節點用來檢測網絡鏈接 ping 10.1.1.254 #開啓Pacemaker cluster manager,由於歷史緣由,次選項默認是off,可是應該保持該選項值爲respawn。在設置爲respawn默認自動使用如下配置 pacemaker respawn #默認配置文件中下面還有不少選項,因爲暫時用不到因此暫時忽略
啓動heartbeat 操作系統
/etc/init.d/heartbeat start
兩臺機器上執行相同的操做便可,注意:ucast的ip設置便可。
查看heartbeat運行情況:crm_mon -1
能夠看到兩臺機器均在線,可是因爲尚未配置資源因此沒有資源信息。
資源管理需求:兩臺機器做爲兩臺WEB服務器,使用apache軟件。對用戶接口爲VIP(10.1.1.6)。要求不論哪臺機器故障、apache服務故障都會把資源切換到正常的服務器上,不影響用戶訪問。
配置pacemaker,使用交互命令crm,也可使用非交互模式
crm configure property stonith-enabled=false crm configure property no-quorum-policy=ignore crm configure property start-failure-is-fatal=false crm configure rsc_defaults migration-threshold=1 crm configure primitive vip ocf:heartbeat:IPaddr2 params ip=10.1.1.6 nic=br100 op monitor interval=3s crm configure primitive www lsb:apache2 op monitor interval="10s" crm configure group group1 vip www
再次使用crm查看資源狀態
能夠看到vip資源和web資源目前運行在compute-1上面,這時候不管是中止compute-1上的apache服務仍是網絡都會致使vip資源和web資源一塊兒切換到compute-2上。
關鍵的難點在crm上,關於crm的信息在下一篇中介紹。