您好,登錄后才能下訂單哦!
如何在Linux系統中安裝Keepalived?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
1、keepalived 原理
1、keepalived是什么
keepalived是集群管理中保證集群高可用的一個服務軟件,其功能類似于heartbeat,用來防止單點故障。
2、keepalived工作原理
keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗余協議。
虛擬路由冗余協議,可以認為是實現路由器高可用的協議,即將N臺提供相同功能的路由器組成一個路由器組,這個組里面有一個master和多個backup,master上面有一個對外提供服務的vip(該路由器所在局域網內其他機器的默認路由為該vip),master會發組播,當backup收不到vrrp包時就認為master宕掉了,這時就需要根據VRRP的優先級來選舉一個backup當master。這樣的話就可以保證路由器的高可用了。
keepalived主要有三個模塊,分別是core、check和vrrp。core模塊為keepalived的核心,負責主進程的啟動、維護以及全局配置文件的加載和解析。check負責健康檢查,包括常見的各種檢查方式。vrrp模塊是來實現VRRP協議的。
3、keepalived的配置文件
keepalived只有一個配置文件keepalived.conf,里面主要包括以下幾個配置區域,分別是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server
2、keepalived 在Linux下的安裝
1、準備工作
Linux主機:10.122.111.80 、
Linux主機:10.122.111.81、
虛擬IP:10.122.111.99、
操作系統:銀河麒麟 V3.3
2、安裝Keepalived
兩臺Linux主機都需要安裝Keepalived,如下步驟兩臺機需要重復進行。
1、下載Keepalived
下載至目錄:/home/zz/user/software
wget http://keepalived.org/software/keepalived-1.3.8.tar.gz
2、解壓Keepalived
tar -zxvf keepalived-1.3.8.tar.gz
3、配置Keepalived
cd keepalived-1.3.8/
./configure
此步驟可能出現錯誤,
checking libnfnetlink/libnfnetlink.h usability... no
checking libnfnetlink/libnfnetlink.h presence... no
checking for libnfnetlink/libnfnetlink.h... no
configure: error: libnfnetlink headers missing
如下圖:
解決方法如下:
將 usr.zip 包解壓至keepalived-1.3.8目錄,解壓,然后執行
cp -R usr/ /
成功后,重新執行
./configure
成功,如下圖:
4、編譯安裝Keepalived
make
make install
3、配置防火墻
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 \ --in-interface p4p1 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 \ --out-interface p4p1 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload
注意:上述【p4p1】為配置的網卡名稱。
4、配置服務啟動
cp /home/zz/user/software/keepalived-1.3.8/keepalived/etc/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
執行完成后,即可使用服務的形式啟動Keepalived,如下:
service keepalived start
如果使用 service keepalived status命令查看狀態出現如下問題:
/etc/init.d/keepalived:行15: /etc/sysconfig/keepalived: 沒有那個文件或目錄
則需要執行:
ln -s /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
執行成功后,重啟Keepalived服務,即可查看狀態。
如果Keepalived啟動不成功,錯誤信息如下:
Keepalived_vrrp exited with permanent error CONFIG. Terminating
說明Keepalived 核心配置文件配置有誤,繼續往下配置即可,此問題先不用處理。
5、配置雙機
Keepalived配置文件為:/etc/keepalived/keepalived.conf,
現進行如下配置:
使用10.122.111.80 為主節點,
使用10.122.111.81為從節點 進行配置,
修改主節點80的配置文件 keepalived.conf,內容修改如下所示:
! Configuration File for keepalived global_defs { notification_email { # acassen@firewall.loc # failover@firewall.loc # sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc # smtp_server 192.168.200.1 # smtp_connect_timeout 30 router_id SERVER_1 vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface p4p1 virtual_router_id 55 priority 100 protocol TCP advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.122.111.99/24 } }
修改從節點81的配置文件 keepalived.conf,內容修改如下所示:
! Configuration File for keepalived global_defs { notification_email { # acassen@firewall.loc # failover@firewall.loc # sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc # smtp_server 192.168.200.1 # smtp_connect_timeout 30 router_id SERVER_2 vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state BACKUP interface p4p1 virtual_router_id 55 priority 50 protocol TCP advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.122.111.99/24 } }
配置完成后,分別啟動 Keepalived,并進行狀態查看,如下圖:
6、配置非搶占模式
Keepalived默認為搶占模式,主節點Master在故障回復重新開啟使用時會掠奪當前從服務器的虛擬IP,重新占據中心地位,在一個去中心化的集群中,可配置非搶占模式,即正在處于服務狀態的主機虛擬IP不會被搶走知道此臺服務器出現問題。
只需要在原有Master配置文件中修改如下配置即可(Backup節點無需更改):
nopreempt
state BACKUP
調整后的配置文件如下:
! Configuration File for keepalived global_defs { notification_email { # acassen@firewall.loc # failover@firewall.loc # sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc # smtp_server 192.168.200.1 # smtp_connect_timeout 30 router_id SERVER_1 vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state BACKUP # 此處由MASTER調整為BACKUP nopreempt # 此處添加非搶占模式配置 interface p4p1 virtual_router_id 55 priority 100 protocol TCP advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.122.111.99/24 } }
7、查看虛擬IP指向
判斷當前服務器是否擁有虛擬IP,執行如下命令,如果有結果則說明當前服務器正處于服務狀態,如果查詢為空,則說明當前服務器不用有虛擬IP,處于備用狀態。
ip addr|grep 10.122.111.99
說明當前服務器擁有虛擬IP。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。