天天看點

heartbeat-gui

一、簡介gui

 heartbeat的v2版本将v1中haresources配置檔案使用GUI圖形配置接口來配置高可用叢集。更加便捷,直覺。

三、heartbeat-gui配置

1、安裝

<code>解決依賴關系</code>

<code>[root@node1 heartbeat]</code><code># yum install libtool-ltdl -y</code>

<code>[root@node1 heartbeat]</code><code># yum install net-snmp-libs libnet PyXML pygtk2-libglade -y</code>

<code>[root@node1 heartbeat]</code><code># rpm -ivh heartbeat-pils-2.1.4-12.el6.x86_64.rpm</code>

<code>[root@node1 heartbeat]</code><code># rpm -ivh heartbeat-stonith-2.1.4-12.el6.x86_64.rpm</code>

<code>[root@node1 heartbeat]</code><code># yum -y localinstall heartbeat-2.1.4-12.el6.x86_64.rpm </code>

<code>安裝gui</code>

<code>[root@node1 heartbeat]</code><code># yum -y localinstall heartbeat-gui-2.1.4-12.el6.x86_64.rpm</code>

<code>heartbeat 安裝元件說明</code>

<code>    </code><code>heartbeat 核心元件  *    </code>

<code>    </code><code>heartbeat-devel 開發包    </code>

<code>    </code><code>heartbeat-gui 圖形管理接口 *    (這個必須安裝,這篇博文重點講解圖形資料總管)</code>

<code>    </code><code>heartbeat-ldirectord 為lvs高可用提供規則自動生成及後端realserver健康狀态檢查的元件    </code>

<code>    </code><code>heartbeat-pils 裝載庫插件接口 *    </code>

<code>    </code><code>heartbeat-stonith 爆頭接口 *</code>

2、配置

<code>複制配置檔案至</code><code>/etc/ha</code><code>.d目錄下</code>

<code>[root@node1 ~]</code><code># cp /usr/share/doc/heartbeat-2.1.4/{ha.cf,haresources,authkeys} /etc/ha.d/ </code>

<code>配置認證檔案</code>

<code>auth 2</code>

<code>#1 crc</code>

<code>2 sha1 XUcb+fkiktY49z6zVHTy2A</code>

<code>#3 md5 Hello!</code>

<code>[root@node2 heartbeat-2.1.4]</code><code># openssl rand -base64 16</code>

<code>XUcb+fkiktY49z6zVHTy2A==</code>

<code>配置ha.cf檔案,定義叢集的工作方式</code>

<code>定義日志檔案位置(二選一) logfacility為将日志交由syslog管理     </code>

<code>logfile        </code><code>/var/log/ha-log</code>

<code>#logfacility     local0</code>

<code>多長時間發送一次心跳資訊,預設為2秒</code>

<code>#keepalive 2</code>

<code>多長時間宣布某節點死亡,預設30秒</code>

<code>#deadtime 30</code>

<code>多長時間警告對方心跳資訊延遲了,預設10秒</code>

<code>#warntime 10</code>

<code>第一次死去時間,避免因網絡問題導緻宣布死亡</code>

<code>#initdead 120</code>

<code>使用udp694端口傳遞心跳,并選擇哪種方式傳遞心跳</code>

<code>#udpport        694</code>

<code>串行線纜傳遞心跳</code>

<code>#serial /dev/ttyS0      # Linux</code>

<code>#serial /dev/cuaa0      # FreeBSD</code>

<code>#serial /dev/cuad0      # FreeBSD 6.x</code>

<code>#serial /dev/cua/a      # Solaris</code>

<code>串行線纜的工作頻率</code>

<code>#baud   19200</code>

<code>廣播傳遞心跳</code>

<code>#bcast  eth0            # Linux</code>

<code>#bcast  eth1 eth2       # Linux</code>

<code>#bcast  le0             # Solaris</code>

<code>#bcast  le1 le2         # Solaris</code>

<code>多點傳播傳遞心跳,網卡必須支援多點傳播,</code><code>ifconfig</code> <code>| </code><code>grep</code> <code>MULTICAST</code>

<code>mcast eth0 225.0.0.1 694 1 0          </code><code>#端口694,TTL為1,不允許回傳為0</code>

<code>#啟用網卡支援多點傳播</code>

<code>[root@node1 ha.d]</code><code># ip link set eth0 multicast on</code>

<code>  </code> 

<code>單薄傳遞心跳</code>

<code>#ucast eth0 192.168.1.2</code>

<code>自動故障轉回</code>

<code>auto_failback on</code>

<code>指明節點</code>

<code>#node   ken3</code>

<code>#node   kathy</code>

<code>node    node1</code>

<code>node    node2</code>

<code>加入crm開啟這行,on或者respawn都可以</code>

<code>crm on</code>

<code>指明網關為</code><code>ping</code> <code>node裝置(仲裁裝置)</code>

<code>#ping 10.10.10.254</code>

<code>ping</code> <code>192.168.0.1</code>

<code>指明一個組為</code><code>ping</code> <code>node裝置(仲裁裝置)</code>

<code>#ping_group group1 10.10.10.254 10.10.10.253</code>

<code>指明節點間傳送的壓縮算法</code>

<code>compression     bz2</code>

<code>指明節點間傳送資料壓縮的最小資料為2KB</code>

<code>compression_threshold 2</code>

<code>配置haresource檔案,加入資源</code>

<code>node1 192.168.0.17</code><code>/24/eth0/192</code><code>.168.0.255 httpd</code>

3、配置雙節點

<code>[root@node1 ha.d]</code><code># scp /etc/ha.d/{ha.cf,authkeys} node2:/etc/ha.d/</code>

<code>ha.cf                                               100%   10KB  10.3KB</code><code>/s</code>   <code>00:00    </code>

<code>authkeys                                            100%  662     0.7KB</code><code>/s</code>   <code>00:00</code>

<code>[root@node1 ha.d]</code><code># scp /etc/ha.d/haresources node2:/etc/ha.d/</code>

<code>haresources                                         100% 5952     5.8KB</code><code>/s</code>   <code>00:00</code>

<code>将認證檔案的權限改為600</code>

<code>[root@node1 ha.d]</code><code># chmod 600 authkeys ; ssh node2 'chmod 600 /etc/ha.d/authkeys '</code>

<code>啟動服務</code>

<code>[root@node1 ha.d]</code><code># service heartbeat start; ssh node2 'service heartbeat start'</code>

<code>logd is already running</code>

<code>Starting High-Availability services: </code>

<code>Done.</code>

此時以禁用haresource資料總管,下面使用gui界面配置資源

4、gui配置

<code>因為gui需要使用者密碼登入,是以為hacluster設定密碼</code>

<code>[root@node1 ~]</code><code># echo "linus" | passwd --stdin hacluster</code>

<code>Changing password </code><code>for</code> <code>user hacluster.</code>

<code>passwd</code><code>: all authentication tokens updated successfully.</code>

<code>将Resources配置檔案通過腳本生成crm,可省略,crm會自動生成</code>

<code>[root@node2 crm]</code><code># cd /usr/lib64/heartbeat</code>

<code>[root@node2 heartbeat]</code><code># ./haresources2cib.py /etc/ha.d/haresources</code>

<code>因為gui需要圖形化界面支援,是以安裝KDE桌面,遠端軟體中xshell支援,CRT等不支援</code>

<code>xshell配置步驟如下</code>

<code>File --&gt; Properties --&gt; SSH --&gt; Tunneling --&gt; Forward X11 connections to下的Xmanager</code>

<code>[root@node1 ~]</code><code># yum groupinstall KDE Desktop -y</code>

<code>安裝完畢後退出xshell,重新登入後即可</code>

<code>檢視狀态</code>

<code>[root@node2 ha.d]</code><code># crm_mon</code>

<code>指令行接口</code>

<code>[root@node2 ha.d]</code><code># crm_sh</code>

<code>/usr/sbin/crm_sh</code><code>:31: DeprecationWarning: The popen2 module is deprecated.  Use the subprocess module.</code>

<code>  </code><code>from popen2 </code><code>import</code> <code>Popen3</code>

<code>crm </code><code># nodes</code>

<code>crm nodes </code><code># list</code>

<code>   </code><code>&lt;node </code><code>id</code><code>=</code><code>"da321285-0881-449f-b249-d912a65c1954"</code> <code>uname</code><code>=</code><code>"node2"</code> <code>type</code><code>=</code><code>"normal"</code><code>/&gt;</code>

<code>   </code><code>&lt;node </code><code>id</code><code>=</code><code>"0b161e79-35d1-44a9-a09a-e7ae7e80659d"</code> <code>uname</code><code>=</code><code>"node1"</code> <code>type</code><code>=</code><code>"normal"</code><code>/&gt;</code>

<code>crm nodes </code><code># status</code>

<code>   </code><code>&lt;node_state </code><code>id</code><code>=</code><code>"da321285-0881-449f-b249-d912a65c1954"</code> <code>uname</code><code>=</code><code>"node2"</code> <code>crmd=</code><code>"online"</code> <code>crm-debug-origin=</code><code>"do_lrm_query"</code> <code>shutdown</code><code>=</code><code>"0"</code> <code>in_ccm=</code><code>"true"</code> <code>ha=</code><code>"active"</code> <code>join</code><code>=</code><code>"member"</code> <code>expected=</code><code>"member"</code><code>&gt;</code>

<code>   </code><code>&lt;node_state </code><code>id</code><code>=</code><code>"0b161e79-35d1-44a9-a09a-e7ae7e80659d"</code> <code>uname</code><code>=</code><code>"node1"</code> <code>crmd=</code><code>"online"</code> <code>crm-debug-origin=</code><code>"do_lrm_query"</code> <code>shutdown</code><code>=</code><code>"0"</code> <code>in_ccm=</code><code>"true"</code> <code>ha=</code><code>"active"</code> <code>join</code><code>=</code><code>"member"</code> <code>expected=</code><code>"member"</code><code>&gt;</code>

<code>檢視端口與服務是否正常(所有節點一緻)</code>

<code>[root@node1 ~]</code><code># ss -tunlp | grep heartbeat</code>

<code>udp    UNCONN     0      0             225.0.10.1:694                   *:*      </code><code>users</code><code>:((</code><code>"heartbeat"</code><code>,3451,8),(</code><code>"heartbeat"</code><code>,3452,8))</code>

<code>udp    UNCONN     0      0                      *:36708                 *:*      </code><code>users</code><code>:((</code><code>"heartbeat"</code><code>,3451,7),(</code><code>"heartbeat"</code><code>,3452,7))</code>

<code>[root@node1 ~]</code><code># ss -tunlp | grep mgmtd</code>

<code>tcp    LISTEN     0      10                     *:5560                  *:*      </code><code>users</code><code>:((</code><code>"mgmtd"</code><code>,3463,10))</code>

<code>[root@node1 ~]</code><code># ps -ef | grep heartbeat</code>

<code>root       3445      1  0 19:42 ?        00:00:00 heartbeat: master control process</code>

<code>nobody     3450   3445  0 19:42 ?        00:00:00 heartbeat: FIFO reader        </code>

<code>nobody     3451   3445  0 19:42 ?        00:00:00 heartbeat: write: mcast eth0  </code>

<code>nobody     3452   3445  0 19:42 ?        00:00:00 heartbeat: </code><code>read</code><code>: mcast eth0   </code>

<code>nobody     3453   3445  0 19:42 ?        00:00:00 heartbeat: write: </code><code>ping</code> <code>192.168.0.1</code>

<code>nobody     3454   3445  0 19:42 ?        00:00:00 heartbeat: </code><code>read</code><code>: </code><code>ping</code> <code>192.168.0.1</code>

<code>498        3457   3445  0 19:42 ?        00:00:00 </code><code>/usr/lib64/heartbeat/ccm</code>

<code>498        3458   3445  0 19:42 ?        00:00:00 </code><code>/usr/lib64/heartbeat/cib</code>

<code>nobody     3459   3445  0 19:42 ?        00:00:00 </code><code>/usr/lib64/heartbeat/lrmd</code> <code>-r</code>

<code>nobody     3460   3445  0 19:42 ?        00:00:00 </code><code>/usr/lib64/heartbeat/stonithd</code>

<code>498        3461   3445  0 19:42 ?        00:00:00 </code><code>/usr/lib64/heartbeat/attrd</code>

<code>498        3462   3445  0 19:42 ?        00:00:00 </code><code>/usr/lib64/heartbeat/crmd</code>

<code>root       3463   3445  0 19:42 ?        00:00:00 </code><code>/usr/lib64/heartbeat/mgmtd</code> <code>-</code><code>v</code>

<code>root       4208   3476  0 19:50 pts</code><code>/2</code>    <code>00:00:00 </code><code>grep</code> <code>heartbeat</code>

<code>啟動gui</code>

<code>[root@node1 ~]</code><code># hb_gui &amp;</code>

圖形界面如下

登入後界面如下

<a href="http://s4.51cto.com/wyfs02/M01/8A/51/wKiom1gtO-eiJn9oAADwzEBN3SE788.png-wh_500x0-wm_3-wmp_4-s_2682614655.png" target="_blank"></a>

配置資源

<a href="http://s1.51cto.com/wyfs02/M01/8A/54/wKiom1gtXHfCPq4DAADNuAKBOGU480.png-wh_500x0-wm_3-wmp_4-s_3880063266.png" target="_blank"></a>

loction,order,colocation是位置順序序列的限制條件

<a href="http://s5.51cto.com/wyfs02/M01/8A/58/wKiom1gtm9aRs-F9AAA9W3EL7Eo981.png-wh_500x0-wm_3-wmp_4-s_617722561.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/8A/54/wKioL1gtnpyQ6SzCAAEtNa_X9xg802.png-wh_500x0-wm_3-wmp_4-s_1666454492.png" target="_blank"></a>

<a href="http://s5.51cto.com/wyfs02/M01/8A/54/wKioL1gtoZDgqvhqAACmrOq0h1E378.png-wh_500x0-wm_3-wmp_4-s_2473199307.png" target="_blank"></a>

定義組資源

<a href="http://s3.51cto.com/wyfs02/M02/8A/58/wKiom1gtovSizymlAABAjgk9Qoo677.png-wh_500x0-wm_3-wmp_4-s_1089039900.png" target="_blank"></a>

之後在定義資源的時候選擇加入組即可

定義限制關系(序列限制)

<a href="http://s3.51cto.com/wyfs02/M02/8A/58/wKiom1gtpk3yp7NBAADpQOfHRGs612.png-wh_500x0-wm_3-wmp_4-s_890072259.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/8A/54/wKioL1gtpk7xIkOnAADCkeIA0UY534.png-wh_500x0-wm_3-wmp_4-s_2936193368.png" target="_blank"></a>

其餘限制關系定義,位置限制要選明score

<a href="http://s2.51cto.com/wyfs02/M00/8A/58/wKiom1gtqGbhTlJIAAE6tP9r1ck261.png-wh_500x0-wm_3-wmp_4-s_3597037694.png" target="_blank"></a>

<a href="http://s5.51cto.com/wyfs02/M01/8A/54/wKioL1gtqOKiaHTWAAFLD2t2xFM000.png-wh_500x0-wm_3-wmp_4-s_739717352.png" target="_blank"></a>

<code>資源限制(3種類型):</code>

<code>    </code><code>位置限制(locations):資源更傾向于哪個節點上 ,使用數值表示;    </code>

<code>        </code><code>inf: 無窮大</code>

<code>        </code><code>n: 表示數值,要對節點間的做比較來決定最後落在那個節點上(此處n為正值)</code>

<code>        </code><code>-n: 同上,如果節點間的位置限制均為負值,則最後運作于接近正值的節點上</code>

<code>        </code><code>-inf: 負無窮(隻要有其它選擇,就不會選擇此節點 )</code>

<code>    </code><code>排列限制(Colocations):資源運作在同一節點的傾向性;</code>

<code>        </code><code>inf: 無限傾向于在一起</code>

<code>        </code><code>-inf: 無限傾向于不在一起</code>

<code>    </code><code>順序限制(orders):資源啟動次序及關閉次序;</code>

<code>位置限制說明</code>

<code>    </code><code>ID:表示為限制記錄起一個名字</code>

<code>    </code><code>from to:表示那一個資源與那一個資源(此處寫上面定義資源名字即可)</code>

<code>    </code><code>score:在一起的可能性(也可以是數值,比如10,-10)</code>

<code>    </code><code>INFINITY:webip必須要和webserver在一個節點上</code>

<code>    </code><code>-INFINITY:webipbu不和webserver在一個節點上</code>

<code>    </code> 

<code>一般來說,我們可以将資源定義為組,也可以将基本資源使用限制關系定義。</code>

<code>高可用叢集啟動順序:webip --&gt; webfilesystem(nfs)--&gt;webserver</code>

本文轉自 元嬰期 51CTO部落格,原文連結:http://blog.51cto.com/jiayimeng/1873712

繼續閱讀