您好,登錄后才能下訂單哦!
在這個高度信息化的IT時代,企業的生產系統、業務運營、銷售和支持,以及日常管理等環節越來越依賴于計算機信息和服務,對高可用(HA)技術的應用需求不斷提高,以便提供持續的、不間斷的計算機系統或網絡服務。
Keepalived起初是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換和健康檢查功能——判斷LVS負載調度器、節點服務器的可用性,及時隔離并替換為新的服務器,當故障主機恢復后將其重新加入群集。
Keepalived的官方網站:http://www.keepalived.org/ 雖然說主要是用于LVS群集環境,但是在非LVS群集環境中,也可以作為熱備軟件使用。
Keepalived采用VRRP(虛擬路由冗余協議)熱備份協議,以軟件的方式實現Linux服務器的多機熱備功能。VRRP是針對路由器的一種備份解決方案——由多臺路由器組成一個熱備組,通過共用的虛擬IP地址對外提供服務;每個熱備組內同一時刻只有一個路由器提供服務,其他路由器處于冗余狀態,若當前在線的路由器失效,則其他路由器會自動接替(根據優先級)虛擬IP地址,以繼續提供服務。
VRRP(虛擬路由冗余協議)和HSRP(熱備份路由協議)原理幾乎一樣,只不過VRRP是公有協議;HSRP是Cisco的私有協議。對于VRRP(虛擬路由冗余協議)原理不太明白,可以參考博文:HSRP(熱備份路由協議)詳解 博文中有詳細的解釋。
熱備組內的每臺路由器都可能稱為主路由器,虛擬路由器的IP地址(VIP)可以在熱備組內的路由器之間進行轉移,所以也稱為漂移IP地址,如圖:
使用Keepalived時,漂移地址的實現不需要手動建立虛接口配置文件(比如:ens33:0);而是由Keepalived根據配置文件自動管理的。
安裝Keepalived服務特別簡單,Centos 7系統盤中都有相應的軟件包,通過YUM安裝即可!除此之外,在LVS群集環境中應用時,也需要用到ipvsadm管理工具(查看負載分配情況時使用)。
[root@localhost ~]# yum -y install keepalived ipvsadm
//安裝Keepalived和ipvsadm
[root@localhost ~]# systemctl start keepalived
//啟動Keepalived服務
基于VRRP的熱備方式,Keepalived可以用作服務器的故障切換,每個熱備組可以有多臺服務器——當然,最常用的應該就是雙機熱備了。在這種雙機熱備方案中,故障切換主要針對虛擬IP地址的漂移來實現,因此能夠適用于各種應用服務器(比如:Web、FTP、Mail、SSH、DNS等)。
通過一個示例來了解Keepalived雙機熱備的配置方法,如圖:
主、備服務器中都需要安裝Keepalived。(httpd服務最好也都安上,用于測試!)詳細步驟如下:
Keepalived服務的配置文件是/etc/keepalived//keepalived.conf。具體操作如下:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install keepalived ipvsadm httpd
//安裝相應的服務、關閉防火墻和SELinux
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
//編輯Keepalived服務的配置文件
global_defs {
notification_email {
root@localhost.localdomain //收件人地址
}
notification_email_from root root@localhost.localdomain //發件人姓名、地址
smtp_server 127.0.0.1
smtp_connect_timeout 30 //以上信息是關于發送郵件的內容,根據實際情況填寫就好
router_id HA_TEST_R1 //本路由器(服務器)的名稱
}
vrrp_instance VI_1 { //定義VRRP熱備實例
state MASTER //熱備狀態,MASTER表示為主服務器
interface ens33 //承載VIP的物理網卡接口
virtual_router_id 1 //虛擬路由器的ID,每個熱備組保持一致
priority 100 //優先級100,數值越大優先級越高(最大255)
advert_int 1 //通告間隔秒數(心跳頻率)
authentication { //認證信息,每個熱備組要保持一致
auth_type PASS //認證類型
auth_pass 1111 //密碼字串
}
virtual_ipaddress {
192.168.1.254 //指定漂移地址(VIP),可以有多個(但必須跟物理接口是同網段的)
}
}
確認配置信息沒有錯誤后,啟動Keepalived服務。實際狀態為MASTER的主服務器將為ens33接口自動添加VIP地址,通過ip命令查看(ifconfig命令看不到)。
[root@localhost ~]# systemctl restart keepalived
//重啟服務
[root@localhost ~]# ip addr show dev ens33
//查看漂移IP地址是否存在
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:00:11:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.1.254/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::c4bc:2e5a:89b:8729/64 scope link
valid_lft forever preferred_lft foreve
[root@localhost ~]# echo “aaaaaaaaa” > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
//修改httpd服務的主頁文件,用于測試!
在同一個Keepalived熱備組內,所有服務器的Keepalived配置文件基本相同,包括虛擬路由器的ID、認證信息、漂移地址、心跳頻率等(必須一樣);不同之處主要在于路由器名稱、熱備狀態、優先級。
- 路由器名稱:建議為每個參與熱備的服務器指定不同的名稱;
- 熱備狀態:至少應有一個主服務器,將狀態設置為MASTER;可以有多臺備用服務器,將狀態設置為BACKUP;
- 優先級:數值越大則會取得VIP控制權的優先級越高,因此主服務器的優先級應為熱備組中的最高;其他備用服務器的優先級可依次遞減,但不要相同,以免爭奪VIP控制權時發生沖突;
配置備用服務器(可以有多臺)時,可參考主服務器的keepa.conf配置文件內容,只需修改路由器名稱、熱備狀態、優先級即可!如下:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install keepalived ipvsadm httpd
//安裝相應的服務、關閉防火墻和SELinux
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
//編輯Keepalived服務的配置文件
global_defs {
notification_email {
root@localhost.localdomain
}
notification_email_from root root@localhost.localdomain
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id HA_TEST_R2 //本路由器(服務器)名稱(修改)
}
vrrp_instance VI_1 {
state BACKUP //熱備狀態,BACKUP表示備用服務器(修改)
interface ens33
virtual_router_id 1
priority 99 //優先級(修改)
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.254
}
}
確認配置無誤,啟動Keepalived服務,此時主服務器在線。VIP仍然由主服務器控制,而其他服務器處于備用狀態。
[root@localhost ~]# systemctl start keepalived
[root@localhost ~]# ip addr show ens33
//啟動Keepalived服務、確認VIP地址(沒有VIP地址)
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:2b:56:b5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::aa26:7be4:3379:130f/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]# echo "qqqqqqqqqqq" > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
//啟動http服務,設置不一樣的主頁(用于測試!)
在客戶機上執行“ping -t 192.168.1.254”(VIP地址),能夠正常通信,持續測試!
[root@localhost ~]# systemctl stop keepalived
//主服務器故意停止Keepalived服務
查看客戶機測試效果,如圖:
切換時客戶機會有延遲,也可能丟一兩個包。
[root@localhost ~]# ip addr show ens33
//備用服務器查看VIP地址(發現VIP已經自動轉移到備用服務器上)
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:2b:56:b5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.1.254/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::aa26:7be4:3379:130f/64 scope link
valid_lft forever preferred_lft forever
客戶機訪問測試,如圖:
當原來優先級為100的服務器開啟Keepalived服務時,客戶機再次訪問,將會改變網頁內容。
[root@localhost ~]# systemctl start keepalived
//主服務器啟動Keepalived服務
客戶機訪問測試,如圖:
也可查看系統日志(/var/log/messages),來獲取詳細信息!
通過Keepalived服務搭建的是高可用群集,跟通過LVS搭建的負載均衡群集,不一樣。關于群集類型的信息介紹可以參考博文:LVS負載均衡群集詳解
本次博文主要是利用Keepalived構建雙機熱備(一主+一備);一樣的道理,利用Keepalived構建多機熱備一樣(一主+多備)。這里就是詳細介紹了!
———————— 本文至此結束,感謝閱讀 ————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。