LVS+Keepalived高可用群集
LVS+Keepalived高可用群集
一、LVS+keepalived高可用群集
1、LVS(Linux虛擬伺服器Linux virtual server)
LVS實際上相當於基於IP地址的虛擬化應用,為基於IP地址和內容請求分發的負載均衡提出了一種高效的解決方法
2、keepalived
支援故障自動切換(Failover)
支援節點健康狀態檢查(Health Checking)
判斷LVS負載排程器、節點伺服器的可用性,當master主機出現故障及時切換到backup節點保證業務正常,當 master 故障主機恢復後將其重新加入群集並且業務重新切換回 master 節點
3、keepalived實現原理
keepalived採用VRRP熱備份協議實現Linux 伺服器的多機熱備功能
VRRP(虛擬路由冗餘協議)是針對路由器的一種備份解決方案。
由多臺路由器組成一個熱備份組,透過共用的虛擬IP地址對外提供服務
每個熱備組內同時只有一臺主路由器提供服務,其他路由器處於冗餘狀態
若當前線上的路由器失效,則其他路由器會根據設定的優先順序自動接替虛擬IP地址,繼續提供服務
二、實驗
1、配置負載排程器
systemctl stop firewalld.service
setenforce 0
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p ###載入/etc/sysctl.conf配置引數
ipvsadm-save > /etc/sysconfig/ipvsadm ###儲存負載分配策略
systemctl start ipvsadm ##開啟服務,開啟前需儲存
ipvsadm -C ###清空分配策略
ipvsadm -A -t 192.168.184.10:80 -s rr #這裡指定的虛擬IP為ens33網路卡ip,重啟keepliaved後會自動繫結虛擬網路卡
ipvsadm -a -t 192.168.184.10:80 -r 192.168.184.40:80 -g
ipvsadm -a -t 192.168.184.10:80 -r 192.168.184.50:80 -g
ipvsadm ###啟用策略
ipvsadm -ln ###檢視節點狀態
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
2、部署NFS共享伺服器
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum -y install nfs-utils rpcbind ##安裝nfs兩安裝包
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service
mkdir /opt/lic
mkdir /opt/kiki
chmod 777 /opt/lic
chmod 777 /opt/kiki
vim /etc/exports ##寫入共享策略
/opt/lic 192.168.184.0/24(rw,sync)
/opt/kiki 192.168.184.0/24(rw,sync) ###其許可權可讀寫, 資訊同步
exportfs -rv ###釋出共享
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
3、配置節點伺服器 (兩臺)
systemctl stop firewalld
setenforce 0
yum -y install httpd
systemctl start httpd
vim /etc/sysconfig/network-scripts/ifcfg-lo:0 ###編輯環回口的虛擬網路卡
DEVICE=lo:0
>
IPADDR=192.168.184.188
NETMASK=255.255.255.255
service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
vim /etc/sysctl.conf ###編輯系統核心配置
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p ## 載入核心配置檔案引數
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
web 1 和 2一樣
showmount -e 192.168.184.30
mount.nfs 192.168.184.30:/opt/lic /var/www/html
echo 'this is lic web!' > /var/www/html/index.html
1.
2.
3.
mount.nfs 192.168.184.30:/opt/kiki /var/www/html
echo 'this is kiki web!' > /var/www/html/index.html
1.
2.
4、配置keepalived(主備DR伺服器都要設)
cd /etc/keepalived/ ##將keepalived配置檔案進行備份
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
......
global_defs { #定義全域性引數
1.
2.
3.
4.
5.
smtp_server 127.0.0.1 ##10行修改郵件服務指向本地
router_id LVS_01 ##12行,指定伺服器名稱,主備不同,備為LVS_02
#vrrp_strict #加註釋
}
vrrp_instance VI_1 { #定義VRRP熱備例項引數 ###14行,vrrp_strict:嚴格遵守VRRP協議
state MASTER ##20行,指定熱備狀態,主為MASTER,備為BACKUP
interface ens33 ##21行,指定承載vip地址的物理介面
virtual_router_id 10 ##22行,指定虛擬路由器的ID號,每個熱備組保持一致
##23行,指定優先順序,主為100 ,備為99
priority 100
advert_int 1 #通告間隔秒數(心跳頻率)
authentication { #定義認證資訊,每個熱備組保持一致
auth_type PASS #認證型別
##27行,指定驗證碼,主備一致
auth_pass 123123
}
virtual_ipaddress { #指定群集vip地址
192.168.184.188
}
}
##34行,指定虛擬伺服器地址(VIP),埠,定義虛擬伺服器和web伺服器池引數
virtual_server 192.168.184.188 80 {
delay_loop 6 #健康檢查的間隔時間(秒)
lb_algo rr #指定排程演算法,輪詢(rr)
##37行,指定群集工作模式,DR模式
lb_kind DR
persistence_timeout 50 #連線保持時間(秒)
protocol TCP #應用服務採用的是 TCP協議
##41行,指定第一個web節點地址,埠
real_server 192.168.184.40 80 {
weight 1 #節點的權重
##43行,新增一下健康檢查方式
TCP_CHECK {
connect_port 80 #新增檢查的目標埠
connect_timeout 3 #新增連線超時(秒)
nb_get_retry 3 #新增重試次數
delay_before_retry 4 #新增重試間隔
}
}
real_server 192.168.184.50 80 { #新增第二個 Web節點的地址、埠
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22198239/viewspace-2868431/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LVS+Keepalived 高可用群集(理論+實戰部署)
- LVS+keepalived高可用
- LVS+Keepalived群集
- Pfsense HA(高可用性群集)
- LVS+Keepalived 實現高可用負載均衡負載
- MySQL——MHA高可用群集部署及故障測試MySql
- MySQL高可用群集MHA部署及故障測試分析MySql
- PostgreSQL repmgr高可用叢集+keepalived高可用SQL
- Keepalived 高可用
- EurekaServer高可用Server
- 什麼是高可用?高可用軟體哪家好?
- 高可用系列文章之三 - NGINX 高可用實施方案Nginx
- 高可用架構架構
- MMM高可用配置
- nt高可用部署
- Redis高可用 SentinelRedis
- keepalived(三)LVS+Keepalived
- 伺服器群集—Haproxy+keepalived群集伺服器
- 高可用架構設計全面詳解(8大高可用方案)架構
- 高可用 proxysql + mysql MGRMySql
- mysql高可用之keepalivedMySql
- Keepalived 高可用詳解
- 高可用(keepalived)部署方案
- MHA高可用+VIP漂移
- Mysql 5.7 MHA 高可用MySql
- 微服務高可用方案微服務
- springcloud-高可用部署SpringGCCloud
- raft 高可用嘗試Raft
- nginx+keepalived高可用Nginx
- Redis 哨兵高可用(Sentinel)Redis
- 高可用解決方案
- HBase可用性分析與高可用實踐
- 搭建高併發、高可用的系統
- Mysql高可用架構方案MySql架構
- NFS-Ganasha 高可用配置NFS
- Redis叢集與高可用Redis
- 聊聊PowerJob Server的高可用Server
- Keepalived高可用叢集部署