本章主要內(nèi)容:
- Keepalived 雙機(jī)熱備基礎(chǔ)知識(shí)
- 學(xué)會(huì)構(gòu)建雙機(jī)熱備系統(tǒng)
- 學(xué)會(huì)構(gòu)建LVS+HA 高可用群集
簡(jiǎn)介
? ? ? ? 在這個(gè)高度信息化的IT時(shí)代,企業(yè)的生產(chǎn)系統(tǒng),業(yè)務(wù)運(yùn)營(yíng),銷售和支持,以及日常管理等環(huán)節(jié)越來越依賴于計(jì)算機(jī)和服務(wù),對(duì)于高可用(HA)技術(shù)的應(yīng)用需求不斷提高,以便提供持續(xù)的,不間斷的計(jì)算機(jī)系統(tǒng)或網(wǎng)絡(luò)服務(wù)。
? ? ? ? 本章將學(xué)習(xí)如何使用 Keepalived 實(shí)現(xiàn)雙機(jī)熱備,包括針對(duì)IP地址的故障切換,以及在 LVS 高可用群集中的熱備應(yīng)用
1.1 Keepalived 雙機(jī)熱備基礎(chǔ)知識(shí)
? ? ? ? Keepalived 起初是專門針對(duì)LVS 設(shè)計(jì)的一款強(qiáng)大的輔助工具,主要用來提供故障切換(Failover)和健康檢查(Health Checking)功能——判斷 LVS 負(fù)載調(diào)度器,節(jié)點(diǎn)服務(wù)器的可用性,及時(shí)隔離并替換新的服務(wù)器,當(dāng)故障主機(jī)恢復(fù)后將其重新加入群集
1.1.1Keepalived 概述及安裝
? ? ? ? Keepalived 的官方網(wǎng)站位于 http://www.keepalived.org/ 本章將以yum 方式講解 Keepalived 的安裝,配置和使用過程,在非 LVS 群集環(huán)境中使用時(shí),Keepalived 也可以作為熱備軟件使用。
1.Keepalived 的熱備方式
? ? ? ? Keepalived 采用 VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議)熱備份,以軟件的方式實(shí)現(xiàn) Linux 服務(wù)器的多機(jī)熱備功能,VRRP 時(shí)針對(duì)路由器的一種備份解決方案--由多臺(tái)路由器組成一個(gè)熱備組,通過共用的虛擬IP 地址對(duì)外提供服務(wù):每個(gè)熱備組內(nèi)同一時(shí)只有一臺(tái)路由器提供服務(wù),其他路由器處于冗余狀態(tài),若當(dāng)前在線的路由器失效,則其他路由器會(huì)自動(dòng)接替(優(yōu)先級(jí)決定接替順序)虛擬IP,以繼續(xù)提供服務(wù) 如圖所示
? ? ? ? 熱備組內(nèi)的每臺(tái)路由器都可能成為主路由器,虛擬路由器的IP地址(VIP)可以在熱備組的路由器之間進(jìn)行轉(zhuǎn)移,所以也稱為漂移IP地址。使用Keepalived 時(shí),漂移地址的實(shí)現(xiàn)不需要手動(dòng)建立虛接口配置文件(如上一章講解的ens33:0)而是由Keepalived 根據(jù)配置文件自動(dòng)管理。
2.Keepalived 的安裝與服務(wù)控制
1)安裝Keepalived
? ? ? ? 在CentOS7 系統(tǒng)中,使用YUM 方式安裝 keepalived 會(huì)自動(dòng)安裝keepalived 所需的軟件包。除此之外,在LVS 群集環(huán)境中應(yīng)用時(shí),也需要用到 ipvsadm 管理工具
[root@Keepalived01 ~]# yum -y install keepalived ipvsadm
2)控制 Keepalived 服務(wù)
YUM 安裝 keepalived 后,執(zhí)行以下命令將 keepalived 服務(wù)設(shè)置為開機(jī)啟動(dòng)。
[root@Keepalived01 ~]# systemctl enable keepalived.service
1.1.2 使用 Keepalived 實(shí)現(xiàn)雙機(jī)熱備
? ? ? ? 基于 VRRP 的熱備方式,Keepalived 可以用作服務(wù)器的故障切換,每個(gè)熱備組可以有多臺(tái)服務(wù)器——當(dāng)然,最常用的就是雙機(jī)熱備了。在這種雙機(jī)熱備方案中,故障切換主要針對(duì)虛擬IP地址的漂移來實(shí)現(xiàn),因此能夠適用于各種應(yīng)用服務(wù)器(不管 Web,F(xiàn)TP,Mail,還是SSH,DNS.....)
? ? ? ? 本小結(jié)將通過一個(gè)簡(jiǎn)單的案例來說明 Keepalived 雙機(jī)熱備的配置方法。其中,主,備服務(wù)器的IP地址為 192.168.182.100 和 192.168.182.101,基于漂移地址 192.168.182.200 提供Web服務(wù)
? ? ? ? 主,備服務(wù)器中都需要安裝 Keepalived,具體步驟參考1.1.1節(jié),使用YUM方式安裝 httpd 提供web服務(wù)
1.主服務(wù)器的配置
? ? ? ? Keepalived 服務(wù)的配置目錄位于 /etc/keepalived/ 其中,Keepalived.conf 是主配置文件:另外包括一個(gè)子目錄 samples/ 提供了許多配置詳例作為參考。在Keepalived 的配置文件中,使用 global_defs {....} 區(qū)段指定全局參數(shù),使用 vrrp_instance 實(shí)例名稱 {....} 區(qū)段指定VRRP 熱備參數(shù),注釋文件以 “ !”號(hào)開頭
[root@Keepalived01 ~]# systemctl stop firewalld
[root@Keepalived01 ~]# cd /etc/keepalived/
[root@Keepalived01 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@Keepalived01 keepalived]# vim keepalived.conf
global_defs {
router_id Keepalived01 //本路由器(服務(wù)器)的名稱
}
vrrp_instance VI_1 { //定義VRRP 熱備實(shí)例
state MASTER //熱備狀態(tài),MASTER 表示主服務(wù)器
interface ens33 //承載VIP接口的 ID 號(hào),每個(gè)熱備組保存一致
virtual_router_id 1 //虛擬路由器的ID號(hào),每個(gè)熱備組保持一致
priority 100 //優(yōu)先級(jí),數(shù)值越大優(yōu)先級(jí)越高
advert_int 1 //通告間隔秒數(shù)(心跳頻率)
authentication { //認(rèn)證信息,每個(gè)熱備組保持一致
auth_type PASS //認(rèn)證類型
auth_pass 1111 //密碼字串
}
virtual_ipaddress {
192.168.182.200 //指定漂移地址(VIP)可以多有個(gè)
}
}
? ? ? ? 確認(rèn)上述配置無誤,然后啟動(dòng)Keepalived 服務(wù),實(shí)際狀態(tài)為 master 的主服務(wù)器將為 ens33 接口自動(dòng)添加 VIP 地址,通過 ip 命令可以查看(注意:ifconfig 命令看不到)
[root@Keepalived01 keepalived]# systemctl start keepalived.service //啟動(dòng)服務(wù)
[root@Keepalived01 keepalived]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e8:c0:2b brd ff:ff:ff:ff:ff:ff
inet 192.168.182.100/24 brd 192.168.182.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.182.200/32 scope global ens33 //自動(dòng)設(shè)置的VIP地址
valid_lft forever preferred_lft forever
inet6 fe80::8898:d4ee:8e2f:474b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@Keepalived01 keepalived]#
2.備份服務(wù)器的配置
????????在同一個(gè)keepalived熱備組內(nèi)所有的服務(wù)器的keepalived配置文件基本相同,包括虛擬路由器的id號(hào)認(rèn)證信息、漂移地址、心跳幀率等,不同之處主要在于路由器名稱、熱備狀態(tài)、優(yōu)先級(jí)、
- 路由器名稱(router_id)建議為每個(gè)參與熱備份服務(wù)器指定不同的名稱
- 熱備狀態(tài)(state)至少應(yīng)有一臺(tái)主服務(wù)器,將狀態(tài)設(shè)為 MASTER;可以有多臺(tái)備用的服務(wù)器,將狀態(tài)設(shè)置為 BACKUP
- 優(yōu)先級(jí)(priority)數(shù)值越大取得VIP 控制權(quán)的優(yōu)先級(jí)越高,因此主服務(wù)器的優(yōu)先級(jí)應(yīng)該設(shè)為最高;其他備用服務(wù)器的優(yōu)先級(jí)可以依次減遞,但不要相同,以免爭(zhēng)奪 VIP 控制權(quán)時(shí)發(fā)生沖突
? ? ? ? 配置備用服務(wù)器(可以有多臺(tái))時(shí),可以參考主服務(wù)器的 keepalived.conf 配置文件內(nèi)容,只要修改路由器名稱,熱備狀態(tài),優(yōu)先級(jí)就可以了
[root@Keepalived02 ~]# systemctl stop firewalld.service
[root@Keepalived02 ~]# cd /etc/keepalived/
[root@Keepalived02 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@Keepalived02 keepalived]# vim keepalived.conf
global_defs {
router_id keepalived02 //本路由器(服務(wù)器)名稱
}
vrrp_instance VI_1 {
state BACKUP //備份狀態(tài)為BACKUP
interface ens33
virtual_router_id 1
priority 99 //優(yōu)先級(jí),數(shù)值低于主服務(wù)器
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.182.200
}
}
? ? ? ? 確認(rèn)配置無誤,一樣需要啟動(dòng) Keepalived 服務(wù),此時(shí)主服務(wù)器任然在線,VIP地址實(shí)際上任然由主服務(wù)器控制,其他服務(wù)器處于備用狀態(tài),因此在備用服務(wù)器中將不會(huì)有 ens33 添加VIP 地址
[root@Keepalived02 keepalived]# systemctl start keepalived.service
[root@Keepalived02 keepalived]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:10:f2:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.182.101/24 brd 192.168.182.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::47b8:3cc0:3783:e45f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@Keepalived02 keepalived]#
3.測(cè)試雙機(jī)熱備功能
? ? ? ? Keepalived 的日志消息保存在 /var/log/messages 文件中,在測(cè)試主,備故障自動(dòng)切換功能時(shí),可以跟蹤此日志文件來觀察備份狀態(tài)的變化。以針對(duì)連通性和 Web 服務(wù)的測(cè)試為例,主要操作如下所述。
1)測(cè)試連通性
? ? ? ? 在客戶機(jī)中執(zhí)行 ping -t 192.168.182.200 命令,能夠正常,持續(xù)ping通,根據(jù)以下操作繼續(xù)觀察測(cè)試結(jié)果
(1)停止啟用主服務(wù)器的Keepalived 服務(wù)器,發(fā)現(xiàn)ping測(cè)試只中斷了 1 或 2 個(gè)包即恢復(fù)正常,說明已有其他服務(wù)器接替 VIP地址,并及時(shí)響應(yīng)客戶機(jī)請(qǐng)求。可以看到主服務(wù)器沒用ens33這個(gè)VIP控制權(quán)了
[root@Keepalived01 keepalived]# systemctl stop keepalived.service
[root@Keepalived01 keepalived]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e8:c0:2b brd ff:ff:ff:ff:ff:ff
inet 192.168.182.100/24 brd 192.168.182.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::8898:d4ee:8e2f:474b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@Keepalived01 keepalived]#
?
?可以看到備用服務(wù)器已經(jīng)奪取VIP控制權(quán)
[root@Keepalived02 keepalived]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:10:f2:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.182.101/24 brd 192.168.182.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.182.200/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::47b8:3cc0:3783:e45f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@Keepalived02 keepalived]#
(2)重新啟動(dòng)主服務(wù)器的 Keepalived 服務(wù),發(fā)現(xiàn) ping 測(cè)試只中斷了 1 或 2 個(gè)包即恢復(fù)正常,說明主服務(wù)器已恢復(fù)正常,并奪回 VIP 地址的控制權(quán)
再次使用 ip addr show dev ens33 查看主,備服務(wù)器可以看到VIP已經(jīng)重新被主服務(wù)器奪回控制權(quán)?
2)Web 訪問測(cè)試
在客戶機(jī)中訪問 http://192.168.182.200 ,將看到由主服務(wù)器 192.168.182.100 提供的網(wǎng)頁(yè)文檔
(1)停止啟用主服務(wù)器的 Keepalived 服務(wù),再次訪問上述 Web 服務(wù),將看到由備用服務(wù)器192.168.182.101 提供的網(wǎng)頁(yè)文檔,說明 VIP 地址以切換至備用服務(wù)器
(2)在重啟啟用主服務(wù)器的 Keepalived 服務(wù),再次訪問上述 Web 服務(wù),將看到重新由主服務(wù)器192.168.182.100 提供的晚飯也文檔,說明主服務(wù)器已重新奪取VIP 地址
3)查看日志記錄
? ? ? ? 在執(zhí)行主,備服務(wù)器故障切換的過程中,分別觀察各自的 /var/log/messages 日志文件,可以看到MASTER,SLAVE 狀態(tài)遷移記錄
(1)主服務(wù)器中 Keepalived 服務(wù)狀態(tài)先變?yōu)?stop 移除 VIP 地址,恢復(fù)后重新變更為 MASTER
[root@Keepalived01 keepalived]# less /var/log/messages
? ? ? ? 通過上述測(cè)試過程,可以發(fā)現(xiàn)雙機(jī)熱備已經(jīng)正常,客戶機(jī)只要通過 VIP 地址就可以訪問服務(wù)器所提供的 Web 等應(yīng)用,其中任何一臺(tái)服務(wù)器失效,另一臺(tái)將會(huì)立即接替服務(wù),從而實(shí)現(xiàn)調(diào)高可用性。實(shí)際應(yīng)用時(shí),注意主,備服務(wù)器所提供的 Web 服務(wù)內(nèi)容要保存一致
1.2 LVS+Keepalived 高可用群集
? ? ? ? Keepalived 的設(shè)計(jì)目標(biāo)時(shí)構(gòu)建高可用的 LVS 負(fù)載均衡群集,可以調(diào)用 ipvsadm 工具來創(chuàng)建虛擬服務(wù)器,管理服務(wù)器池,而不僅僅用作雙機(jī)熱備,使用,Keepalived 構(gòu)建 LVS 群集更加簡(jiǎn)單易用,主要優(yōu)勢(shì)體現(xiàn)在:對(duì) LVS 負(fù)載調(diào)度器實(shí)現(xiàn)熱備切換,提高可用性:對(duì)服務(wù)器池中的節(jié)點(diǎn)進(jìn)行健康檢查,自動(dòng)移除失效節(jié)點(diǎn),恢復(fù)后再重新加入
? ? ? ? 在基于LVS+Keepalived 群集結(jié)構(gòu)中,至少包括兩臺(tái)熱備的負(fù)載均衡調(diào)度器,三臺(tái)以上的節(jié)點(diǎn)服務(wù)器。本節(jié)將以 DR 模式的 LVS 群集為基礎(chǔ),增加一臺(tái)從負(fù)調(diào)度器,使用 Keepalived 來實(shí)現(xiàn)主,從調(diào)度器的熱備,從而構(gòu)建兼有負(fù)載均衡,糕可用兩種能力的 LVS 網(wǎng)站群集平臺(tái),如圖
? ? ? ? 使用 Keepalived 構(gòu)建 LVS 群集時(shí),也需要用到 ipvsadm 管理工具,但大部分工作會(huì)由 Keepalived 自動(dòng)完成,不需要手動(dòng)執(zhí)行 ipvsadm (除了查看和監(jiān)控群集以為)
1.配置主調(diào)度器
1)配置全局。熱備配置
首先為主,從調(diào)度器實(shí)現(xiàn)熱備功能,漂移地址使用LVS 群集的 VIP地址
[root@Keepalived01 ~]# vim /etc/keepalived/keepalived.conf
[root@Keepalived01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id Keepalived01
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.182.200
}
}
[root@Keepalived01 ~]#
2)Web 服務(wù)器池配置
? ? ? ? 在Keepalived 的熱備配置基礎(chǔ)上添加 virtual_server VIP 端口 {.....} 區(qū)段來配置虛擬服務(wù)器主要包括對(duì)負(fù)載調(diào)度算法,群集工作模式,健康檢查間隔,真實(shí)服務(wù)器地址等參數(shù)的設(shè)置
[root@Keepalived01 ~]# vim /etc/keepalived/keepalived.conf
virtual_server 192.168.182.200 80 { //虛擬服務(wù)器地址(VIP)端口
delay_loop 15 //健康檢查的時(shí)間間隔(秒)
lb_algo rr //輪詢r(jià)r調(diào)度算法
lb_kind DR //直接路由DR群集工作模式
persistence_timeout 60 //連接保持時(shí)間(秒) 若啟用請(qǐng)去掉!號(hào)
protocol TCP //應(yīng)用服務(wù)器采用的是TCP協(xié)議
real_server 192.168.182.102 80 { //第一個(gè)Web節(jié)點(diǎn)的地址,端口
weight 1 //節(jié)點(diǎn)的權(quán)重
TCP_CHECK{ //檢查健康方式
connect_port 80 //檢查的目標(biāo)端口
connect_timeout 3 //連接超時(shí)(秒)
nb_get_retry 3 //重試次數(shù)
delay_before_retry 4 //重試間隔(秒)
}
}
real_server 192.168.182.103 80 { //第二個(gè)Web節(jié)點(diǎn)的地址,端口
weight 1
TCP_CHECK{
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
3)重啟Keepalived fuwu
[root@Keepalived01 ~]# systemctl restart keepalived.service
2.配置從調(diào)度器
?? ? ? ?從調(diào)度器的配置與主調(diào)度器基本相同,也包括全局配置,熱備配置,服務(wù)器池配置,只需要調(diào)整 router_id state priority 參數(shù)即可,其余內(nèi)容完全相同。配置完成以后重啟 Keepalived 服務(wù)
[root@Keepalived02 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id keepalived02
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 1
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.182.200
persistence_timeout 60
protocol TCP
real_server 192.168.182.102 80 {
weight 1
TCP_CHECK{
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 192.168.182.103 80 {
weight 1
TCP_CHECK{
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
[root@Keepalived02 ~]# systemctl restart keepalived.service
3.主/從服務(wù)器的參數(shù)配置
1)主服務(wù)器
[root@Keepalived01 ~]# vim /etc/sysctl.conf
[root@Keepalived01 ~]# cat /etc/sysctl.conf | grep net
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@Keepalived01 ~]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@Keepalived01 ~]# systemctl restart keepalived.service
?2)從服務(wù)器
[root@Keepalived02 ~]# cat /etc/sysctl.conf | grep net
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@Keepalived02 ~]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@Keepalived02 ~]# systemctl restart keepalived.service
4.Web 服務(wù)池參數(shù)配置
[root@node01 ~]# vim /etc/sysctl.conf
[root@node01 ~]# cat /etc/sysctl.conf | grep net
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@node01 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@node01 ~]# cd /etc/sysconfig/network-scripts/
[root@node01 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@node01 network-scripts]# vim ifcfg-lo:0
[root@node01 network-scripts]# vim ifcfg-lo:0
[root@node01 network-scripts]# cat ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.182.200
NETMASK=255.255.255.255
ONBOOT=yes
[root@node01 network-scripts]# ifup ifcfg-lo:0
[root@node01 network-scripts]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.182.200 netmask 255.255.255.255
loop txqueuelen 1000 (Local Loopback)
[root@node01 network-scripts]#
5.配置NFS共享存儲(chǔ)
1)安裝 nfs-utils,rpcbind 軟件包
????????提供 RPC 支持的服務(wù)為 rpcbind,提供 NFS 共享的服務(wù)為 nfs,完成安裝以后建議調(diào)整這兩個(gè)服務(wù)的自啟動(dòng)狀態(tài),以便每次開機(jī)后自動(dòng)啟用。手動(dòng)加載 NFS 共享服務(wù)時(shí),應(yīng)該先啟動(dòng) rpcbind,再啟動(dòng) nfs。
[root@NFS ~]# yum -y install nfs-utils rpcbind
[root@NFS ~]# systemctl enable nfs
[root@NFS ~]# systemctl enable rpcbind
2)設(shè)置共享目錄
? ? ? ? NFS 的配置文件為/etc/exports,文件內(nèi)容默認(rèn)為空(無任何共享)。在 exports 文件中設(shè)置共享資源時(shí),記錄格式為“目錄位置客戶機(jī)地址(權(quán)限選項(xiàng))”。例如,若要將文件夾/opt/wwwroot 共享給 192.168.182.0/24 網(wǎng)段使用,允許讀寫操作,具體配置如下所示
?
[root@NFS ~]# mkdir /aaa
[root@NFS ~]# vim /etc/exports
[root@NFS ~]# cat /etc/exports
/aaa 192.168.182.0/24(rw,sync,no_root_squash)
3)啟動(dòng)NFS 服務(wù)程序
[root@NFS ~]# systemctl start rpcbind
[root@NFS ~]# systemctl start nfs
[root@NFS ~]# netstat -anpt | grep rpc
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 67104/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 67238/rpc.mountd
tcp 0 0 0.0.0.0:33982 0.0.0.0:* LISTEN 67235/rpc.statd
tcp6 0 0 :::50091 :::* LISTEN 67235/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 67104/rpcbind
tcp6 0 0 :::20048 :::* LISTEN 67238/rpc.mountd
[root@NFS ~]#
4)查看本機(jī)發(fā)布的NFS 共享目錄
[root@NFS ~]# showmount -e
Export list for NFS:
/aaa 192.168.182.0/24
[root@NFS ~]#
6.在客戶機(jī)中訪問 NFS 共享存儲(chǔ)
? ? ? ? NFS 協(xié)議的目標(biāo)是提供一種網(wǎng)絡(luò)文件系統(tǒng),因此對(duì) NFS 共享的訪問也使用 mount 命令來進(jìn)行掛載,對(duì)應(yīng)的文件系統(tǒng)類型為 nfs。既可以手動(dòng)掛載,也可以加入/etc/fstab 配置文件來實(shí)現(xiàn)開機(jī)自動(dòng)掛載??紤]到群集系統(tǒng)中的網(wǎng)絡(luò)穩(wěn)定性,NFS 服務(wù)器與客戶機(jī)之間最好使用專有網(wǎng)絡(luò)進(jìn)行連接。
1)Web池安裝 rpcbind 軟件包,并啟動(dòng) rpcbind 服務(wù)
????????若要正常訪問 NFS 共享資源,客戶機(jī)中也需要安裝 rpcbind 軟件包,并啟動(dòng) rpcbind 系統(tǒng)服務(wù)。另外,為了使用 showmount 查詢工具,建議將 nfs-utils 軟件包也一并裝上
[root@node01 ~]# yum -y install rpcbind nfs-utils
[root@node01 ~]# systemctl enable rpcbind
[root@node01 ~]# systemctl start rpcbind
???????如果已經(jīng)安裝了 nfs-utils 軟件包,則客戶機(jī)也可以使用 showmount 查看 NFS 服務(wù)器端共享了哪些目錄,查詢格式為“showmount -e 服務(wù)器地址
[root@node01 ~]# showmount -e 192.168.182.105
Export list for 192.168.182.105:
/aaa 192.168.182.0/24
[root@node01 ~]#
1.3 Web池安裝 httpd 創(chuàng)建測(cè)試網(wǎng)頁(yè)
1)Web池安裝httpd,創(chuàng)建測(cè)試網(wǎng)頁(yè)的命令如下
[root@node01 ~]# yum -y install httpd
[root@node01 ~]# mount 192.168.182.105:/aaa /var/www/html/
[root@node01 ~]# vim /var/www/html/index.html
[root@node01 ~]# cat /var/www/html/index.html
<h1>Hello Word</h1>
[root@node01 ~]#
[root@node02 ~]# mount 192.168.182.105:/aaa /var/www/html/
2)Web池啟動(dòng)httpd 服務(wù)程序
[root@node01 ~]# systemctl enable httpd
[root@node01 ~]# systemctl start httpd
3)Web服務(wù)器池配置 fstab 自動(dòng)掛載
? ? ? ? 修改/etc/fstab 配置文件,加入 NFS 共享目錄的掛載設(shè)置。注意將文件系統(tǒng)類型設(shè)為 nfs,掛載參數(shù)建議添加_netdev(設(shè)備需要網(wǎng)絡(luò))。若添加 soft、intr 參數(shù)可以實(shí)現(xiàn)軟掛載,允許在網(wǎng)絡(luò)中斷時(shí)放棄掛載。這樣,客戶機(jī)就可以在每次開機(jī)后自動(dòng)掛載 NFS 共享資源了。
?
[root@node01 ~]# vim /etc/fstab
[root@node01 ~]# cat /etc/fstab | grep nfs
192.168.182.105:/aaa /var/www/html nfs defaults,netdev 0 0
[root@node01 ~]#
?
1.4 測(cè)試 LVS+Keepalived 高可用群集
? ? ? ? 在客戶機(jī)的瀏覽器中,能夠通過LVS+Keepalived 群集的 VIP 地址(192.168.182.200)正常訪問Web 頁(yè)面內(nèi)容。當(dāng)主,從調(diào)度器任何一個(gè)失效時(shí),Web站點(diǎn)任然何以訪問(可能需要刷新或者重新打開瀏覽器)只需服務(wù)器池有兩臺(tái)及以上的真實(shí)服務(wù)器可用,就可以實(shí)現(xiàn)訪問量的負(fù)載均衡。
? ? ? ? 通過主,從調(diào)度器的 /var/log/messages 日志文件,可以追蹤故障切換過程,若要查看負(fù)載分配情況,可以執(zhí)行 ipvsadm-ln? ? ?或 ipvsadm -lnc 等操作。最終可以驗(yàn)證 LVS+Keepalived 高可用負(fù)載均衡群集的健壯性文章來源:http://www.zghlxwxcb.cn/news/detail-798759.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-798759.html
[root@Keepalived01 ~]# ipvsadm -lnc
IPVS connection entries
pro expire state source virtual destination
TCP 00:28 NONE 192.168.182.1:0 192.168.182.200:80 192.168.182.102:80
TCP 00:52 FIN_WAIT 192.168.182.1:59054 192.168.182.200:80 192.168.182.102:80
TCP 01:21 FIN_WAIT 192.168.182.1:59194 192.168.182.200:80 192.168.182.102:80
TCP 00:50 FIN_WAIT 192.168.182.1:59193 192.168.182.200:80 192.168.182.102:80
[root@Keepalived01 ~]#
到了這里,關(guān)于Keepalived 雙機(jī)熱備的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!