天天看點

通過heartbeat搭建lvs高可用性叢集

首先,在主、備節點上配置lvs資訊,一般通過ldirectord配置

在搭建Director Server的雙機熱備系統之前,首先需要在兩台主機上安裝heartbeat軟體,安裝軟體後在/etc/ha.d/ha.cf産生主配置檔案

1.配置heartbeat的主配置檔案/etc/ha.d/ha.cf

#debugfile /var/log/ha-debug

logfile /var/log/ha-log   #指定heartbeat的日志存放位置

#crm yes     #是否開啟ClusterResourceManager(叢集資源管理)功能

bcast eth1   #指定心跳使用以太網廣播方式,并且在eth1接口上進行廣播

logfacility local0

keepalive 2   #指定心跳間隔時間為2s(即每2s在eth1上發送一次廣播)

deadtime 30   #如果指定備用節點在30s内沒有收到主節點的心跳信号,則立即接管

             #主節點的資源

warntime 10  #指定心跳延遲的時間為10s。當10s内備機不能接受到主節點的心跳信

            #号時,就會在日志中寫入一個警告資訊,但此時不會切換服務

initdead 120  #在某些系統上,系統啟動或重新開機之後需要經過一段時間網絡才能正常

    #工作,該選項用于設定這種情況産生的時間間隔,取值至少為deadtime的2倍

udpport 694  #設定廣播通信的端口,694為預設使用的端口号

baud  19200  #設定串行通信的比特率

serial /dev/ttyS0   #選擇串行通信裝置,用于雙機使用序列槽線連接配接情況,如果雙機通

                   #過以太網連接配接,則應該關閉該選項

#ucast eth0 192.168.1.1  #采用網卡eth0的UDP單點傳播來組織心跳,後面跟的IP位址應為

                        #雙機中對方的IP位址

#mcast eth0 225.0.0.1 694 1 0   #采用網卡eth0的UDP多點傳播來組織心跳,一般在備機不

                 #止一台時使用。bcast、ucast和mcast分别代表廣播、單點傳播和多點傳播,

                 #是組織心跳的3種方式,任選其一即可

auto_failback on   #用來定義當主節點恢複後,是否将服務自動切回,heartbeat的兩

    #台主機分别表示主節點和備用節點。主節點在正常情況下占用資源并運作所有服

    #務,遇到故障時把資源交給備用節點并由備用節點運作服務。在将該選項設定on的

    #情況下,一旦主節點恢複運作,則自動擷取資源并取代備用節點;如果該選項設定

    #為off,那麼主節點恢複後,将變為備用節點,而原來的備用節點變成主節點

#stonith bayteach /etc/ha.d/conf/stonith.baytech   #stonish的主要作用是使出現 

                #問題的節點從叢集環境中脫離,進而釋放叢集資源,避免兩個節點争

                #用一個資源的情況發生。保證共享資料的安全性和完整性

#watchdog /dev/watchdog  #該選項是可選配置,通過heartbeat來監控系統的運作狀

      #态。使用該特性,需要在核心中載入“softdog”核心子產品,用來生成實際的裝置

      #檔案,如果系統中沒有這個核心子產品,就需要指定此子產品,重新編譯核心。編譯

      #完成後輸入“insmod softdog”加載該子產品,然後輸入grep misc /proc/devices  

      #(結果應為10),輸入cat /proc/misc |grep watchdog  (結果應為130)。最好,

      #生成裝置檔案mknod /dev/watchdog c 10 130即可完成此功能

node DR1    #主節點主機名稱,必須要和uname -n檢視的一緻

node DR2    #備用節點主機名稱,必須要和uname -n檢視的一緻

ping 192.168.12.1   #選擇ping的節點。ping節點選擇的越好,HA的叢集就越健壯。可

                   #以選擇固定的路由器作為ping節點,但是最好不要選擇叢集中的成

                   #員作為ping的節點,ping節點僅用來測試網絡連接配接

ping node 192.168.12.188 192.168.12.100  #指定ping node。ping node并不是雙機中

                                      #的兩個節點,僅僅用來測試網絡的連通性

respawn hacluster /usr/lib/heartbeat/ipfail   #該選項是可選配置,列出與

                 #heartbeat一起啟動和關閉的程序,該程序一般是heartbeat的內建的

                 #插件,這些程序遇到故障可以自動重新啟動。最常用的程序是

                 #ipfail,此程序用來檢測和處理網絡故障,需要配合ping語句指定的

           #ping node來檢測網絡的連通性。其中hacluster表示啟動ipfail程序的身份

2.配置heartbeat的資源檔案/etc/ha.d/haresources

  haresources檔案用于指定雙機系統的主節點、叢集ip、子網路遮罩、廣播位址以及啟動

  服務等叢集資源。檔案每一行可以包括一個或多個資源腳本名,資源腳本名之間用空格隔開,參數之間是有兩個冒号隔開。

DR1 IPaddr::192.168.12.200/24/eth0  ldirectord  

#設定DR1為主節點,叢集伺服器的IP位址為192.168.12.200,netmask為255.255.255.0,同時指定此IP使用的網絡接口為eth0,heartbeat托管的服務為ldirectord

注意:這裡的ldirectord對應的檔案為/etc/init.d/ldirectord,即ldirectord服務的啟動檔案,也就是将ldirectord的啟動與關閉交給heartbeat來管理。另外,LVS主節點和備份節點的資源檔案haresources要完全一緻,當指定DR1是主節點後,另一個節點DR2就是備用節點。

3.配置heartbeat的認證檔案/etc/ha.d/authkeys

  authkeys檔案用于設定heartbeat的認證方式,該檔案中有3種可用的認證方式crc、sha1和md5,這裡使用crc認證方式。設定如下:

auth 1

1 crc

#2 sha1 sha1_any_password

#3 md5 md5_any_password

需要說明的一點是無論auth後面指定的是什麼數字,在下一行必須作為關鍵字再次出現,例如指定“auth 6 ”下面一定要有一行“6 認證類型”,最後確定這個檔案的權限是600

4.啟動heartbeat服務

  所有配置完成後,就可以在主、備Director Server上啟動heartbeat服務了

  /etc/init.d/heartbeat {start|stop|status|restart|reload|force-reload}

  由于heartbeat托管了主、備Director Server上的ldirectord服務,是以隻需在主、備 

  上啟動heartbeat服務即可,這樣ldirectord服務就在主機上起來了

  啟動Real Server節點服務

繼續閱讀