linux下keepalived 安裝配置

2022-08-24 22:24:18 字數 3001 閱讀 1095

keepalived是乙個類似於layer3, 4 & 7交換機制的軟體,也就是我們平時說的第3層、第4層和第7層交換。keepalived的作用是檢測web伺服器的狀態,如果有一台web伺服器宕機,或工作出現故障,

keepalived將檢測到,並將有故障的web伺服器從系統中剔除,當web伺服器工作正常後keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的web伺服器。

下面講解如何在linux安裝keepalived並搭建高可用的web伺服器。

首先是keepalived 的安裝。keepalived是需要即時編譯的,這裡使用的是keepalived-1.2.2.tar.gz,這裡假設把壓縮檔案上傳到了/usr下。

首先登入到root使用者下,並定位到/usr下。

#編譯安裝keepalived

unzip keepalived-1.2.2.tar.gz #或者使用「tar zxvf keepalived-1.2.2.tar.gz」命令來解壓

cd keepalived-1.2.2

./configure --prefix=/usr/local/keepalived

make && make install #編譯keepalived原始碼

#設定keepalived的配置檔案並將keepalived註冊為服務然後設定為開機啟動(開機啟動前面有講)

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

chkconfig --level 2345 keepalived on #註冊開機啟動

說明一下,這裡keepalived的本身安裝在了/usr/local下,keepalived的配置檔案keepalived.conf放在了/etc/keepalived下。

至此keepalived已經安裝完成並新增到了開機啟動下,先不要著急啟動keepalived,我們還要配置一下它的配置檔案。

先說一下我們要達到的要求:

1.當其中一台機器或者keepalived掛掉之後,虛擬ip自動飄移到另外一台機器上,從而實現高可用。當作為主的機器恢復後,虛擬ip會自動漂移回來。

2.當keepalived切換時,需要執行指定的指令碼,在指令碼中我們可以執行一些其他操作(例如啟動或停止資料庫)。

這裡首先介紹一下虛擬ip(vip)。

vip是乙個不與特定計算機或乙個計算機中的網路介面卡(nic)相連的ip位址。資料報被傳送到這個vip位址,但是所有的資料還是進過真實的網路介面。

它ip技術的一種,增強網路管理,發揮出vlan的優勢,改變了網路結構,合理分配網路資源,均衡網路負載,有效降低網上廣播資訊,方便對使用者的分組管理。

用白話說vip就是乙個ip位址,但並不是分配給特定網絡卡的。這樣的話,多個網絡卡之間可以輪流與這個vip進行繫結,從而在不需要改變web服務位址的情況下,實現程式的高可用。

vip簡單介紹完了,下面講解如何配置keepalived的,從而實現高可用。

這裡我用一句話來概括keepalived實現高可用的原理:兩台機器之間(也可以多台)之間輪流提供vip,從而讓web服務不間斷。

當一台伺服器掛掉之後,vip進行漂移,而這個過程是自動由keepalived幫我們完成的,我們要做的就是維護出問題的web伺服器。

這裡假設有兩台機器a和b,他們的ip位址分別為192.168.1.8和192.168.1.9,而vip我們設定為192.168.1.10。

先來配置機器a,我的目的是盡可能直白簡單的介紹配置,從而讓大家更容易理解。。。。

先vi /etc/keepalived/keepalived.conf這個檔案

! configuration file for keepalived

global_defs

vrrp_instance vi_1

virtual_ipaddress

notify_master "/1.sh" #在keepalived切換到本機時會執行此指令碼

notify_backup "/2.sh" #在keepalived從本機切換走時會執行此指令碼

notify_fault "/2.sh" #在keepalived停止時會執行此指令碼

#注意下notify_backup和notify_fault的區別,比如從機,當vip從從機切換到主機時,從機上的notify_backup指令碼會執行;當從機的keepalived服務停止時(不僅僅是vip漂移走了,而是keepalived的程序停止了),notify_fault的指令碼會執行。

}機器b

! configuration file for keepalived

global_defs

vrrp_instance vi_1

virtual_ipaddress

}ok,配置完成。在兩台機器的root使用者下分別執行:

service keepalived start

然後ping一下vip:

ping 192.168.1.10

發現有返回。

然後我們關掉a機器或者停止a機器的keepalived(service keepalived stop),然後ping一下vip,發現有返回,這是vip已經票已到b機器了。

最後我們恢復a機器上的keepalived服務,然後ping一下vip,也有返回,其實這時vip已經漂移到機器a了。

大家可以在兩台機器上安裝乙個web伺服器或者直接使用linux的apache伺服器,然後在瀏覽器裡測試一下。

至於兩個啟動/停止指令碼,大家有興趣的可以自己測試下。

linux網路程式設計 keepalive

我們說到keepalive的時候,需要先明確一點,這個keepalive說的是tcp的還是http的。一 tcp keepalive tcp的keepalive是側重在保持客戶端和服務端的連線,一方會不定期傳送心跳包給另一方,當一方斷掉的時候,沒有斷掉的定時傳送幾次心跳包,如果間隔傳送幾次,對方都返...

vue路由在keep alive下的重新整理問題

問題描述 在keep alive中的在跳轉到指定的路由時重新整理對應的路由,其餘不重新整理。有幾種解決方式 1.在keep alive中直接新增 include,cachedviews array型別 包含vue檔案的元件name都將被快取起來 反之exclude則是不包含 注意 所有.vue元件檔...

keepalive的來龍去脈

今天有同事反應在效能測試環境cpu load 很高有500 多,我的分析過程是這樣的,先用visualvm 連上去觀察了下,發現請求都卡在channelsocket 的read 上面。這一步是mod jk 的 並未真正進入應用 所以懷疑是apache 和jboss 之間出現了為題,為了印證這個猜測,...