shell解決伺服器高可用

來源:互聯網
上載者:User

HA(High Availability)高可用,有如下三種工作模式。

(1)主從方式 (非對稱方式)

工作原理:主機工作,備機處於監控準備狀況;當主機宕機時,備機接管主機的一切工作,待主機恢複正常後,按使用者的設定以自動或手動方式將服務切換到主機上運行,資料的一致性通過共用儲存系統解決。

(2)雙機雙工方式(互備互援)

工作原理:兩台主機同時運行各自的服務工作且相互監測情況,當任一台主機宕機時,另一台主機立即接管它的一切工作,保證工作即時,應用服務系統的關鍵資料存放在共用儲存系統中。

(3)叢集工作方式(多伺服器互備方式)

工作原理:多台主機一起工作,各自運行一個或幾個服務,各為服務定義一個或多個備用主機,當某個主機故障時,運行在其上的服務就可以被其它主機接管。

Linux下有不少工具可以提供高可用的功能,如vrrp,heartbeat。

vrrp主機會定期廣播自己依然活著“我是master,我還活著,平安無事”,而當備機接受不到“平安無事”的時候,會接管主機的ip地址,也就接管了主機提供的服務,然後開始喊“我成主機了,我活著,平安無事”

heartbeat不使用廣播而使用心跳,也就是在高可用伺服器之間建立監控關係,避免了廣播對網路的負擔,功能也上更為強大,在接管ip的同時,還可以執行指令碼。

vrrp使用雙機雙工方式,但有些應用情境中並不適用,如mysql的高可用就不能使用vrrp。HA的三種模式中都有“共用儲存“目的是解決資料一致性的問題,mysql的資料檔案即data目錄如果建立在nfs服務上,啟動慢不說,備機即便能起來也是不能使用的,一段時間以後備機上的mysql服務會自動結束。由於伺服器不是那麼容易死掉的(在測試的時候為了簡單,一般是讓機器死掉),更多的時候是應用死掉。所以才有heartbeat+DRBD+MYSQL的組合,利用的就是heartbeat的指令碼執行功能(檢測、資源回收)。

我們在這裡用shell指令碼實現vrrp的主從方式 (非對稱方式)功能。環境如下:

web(主)             192.168.1.1      http服務

web(備)             192.168.1.2      http服務

實現思路:首先是狀態監控,既然是http服務,我們就監控httpd的狀態,使用curl -w %{http_code}獲得。 備機上運行指令碼,當curl獲得的狀態代碼不為200時,即主機已經死掉,我們就讓備機接管主機ip。並使用arping命令更新區域網路對主機ip的mac記錄。

# /bin/bash

while true do

code=`curl -o /dev/null -w %{http_code} http://192.168.1.1/ 2>/dev/null`

if ! [ $code -eq 200 ];then

 ifconfig eth0 192.168.1.1

 arping -A -c 1 -I eth0 192.168.1.1

 kill -9 $$ #IP已經切換,指令碼已經沒有繼續啟動並執行必要,把自己殺掉。

fi

sleep 5

done

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.