柚子快報(bào)邀請碼778899分享:lvs集群
柚子快報(bào)邀請碼778899分享:lvs集群
lvs集群:
linux virtual server
章文嵩發(fā)起的開源項(xiàng)目,阿里。Linux的內(nèi)核層面實(shí)現(xiàn)負(fù)載均衡的軟件。
主要作用:將多個后端服務(wù)器組成一個高可用,高性能的服務(wù)器集群,通過負(fù)載均衡的算法將客戶端的請求,分發(fā)到后端服務(wù)器上。
來實(shí)現(xiàn)高可用和負(fù)載均衡。
阿里的SLB
server loab balance lvs+keepalive 實(shí)現(xiàn)的。
集群和分布式:
系統(tǒng)的拓展方式:
垂直擴(kuò)展:向上擴(kuò)展,增強(qiáng),性能更強(qiáng)的計(jì)算機(jī)。計(jì)算機(jī)本身設(shè)備的限制,硬件本身的性能瓶頸。
水平擴(kuò)展:向外擴(kuò)展,增加設(shè)備。并行的運(yùn)行多個服務(wù),依靠網(wǎng)絡(luò)解決內(nèi)部通信的問題,cluster 集群。
集群:為了解決某個特定的問題將多臺計(jì)算機(jī)組合起來形成的單個系統(tǒng)。
集群的類型,三種類型:
LB:load balance 負(fù)載均衡集群,多個主機(jī)組成,每個主機(jī)只承擔(dān)一部分的訪問請求。
HA:high availiablity 高可用,在設(shè)計(jì)系統(tǒng)時(shí),采取一定的措施,確保系統(tǒng)當(dāng)中某一組件或者部分出現(xiàn)故障,整個系統(tǒng)依然能夠正常的運(yùn)行。為了維護(hù)系統(tǒng)的可用性,可靠性,容錯性。
HPC:high-performance computing 高性能 對響應(yīng)時(shí)間,處理能力要求更高。
系統(tǒng)可靠性指標(biāo):
MTBF:Mean Time Between Failure 平均無故障時(shí)間
MTTR:Mean Time Resotration Reoair 平均故障恢復(fù)時(shí)間
A=MTBF/(MTBF+MTTR) 范圍在0~1之間,A指標(biāo)就是系統(tǒng)可用性的度量,0表示系統(tǒng)越不可用,1表示系統(tǒng)越可用。
A指標(biāo)要無線接近于1。
99.99%
都是以小時(shí)為單位:
365天=8760小時(shí)
停機(jī)時(shí)間:
計(jì)劃內(nèi)時(shí)間,計(jì)劃內(nèi)的時(shí)間可以不計(jì)。但是現(xiàn)在也算在內(nèi)
計(jì)劃外時(shí)間,故障時(shí)間,從故障方式到故障解決的總時(shí)間,尤其是運(yùn)維,計(jì)劃外時(shí)間是我們必須關(guān)注的一個指標(biāo)。(當(dāng)天事必須當(dāng)天解決,沒有解決之前,人是不可以離開的,解決完之后必須生成報(bào)告,備案。)
運(yùn)維精神:7*24小時(shí)待命(出了問題,及時(shí)響應(yīng),及時(shí)處理,及時(shí)總結(jié)。)
lvs適用場景:
小集群不需要使用lvs,大集群使用lvs。
lvs集群中的術(shù)語:
VS Vittual Server lvs服務(wù)的邏輯名稱,也就是我們外部訪問lvs集群時(shí)使用的IP地址和端口
DS Driector Server lvs集群中的主服務(wù)器,也就是調(diào)度器(nginx的代理服務(wù)器),是集群的核心
調(diào)度器就是用來接收客戶端的請求轉(zhuǎn)發(fā)到后端的服務(wù)器。
RS Real Server lvs集群中的真實(shí)fwq,后端服務(wù)器,用來接收DS轉(zhuǎn)發(fā)來的請求,并且響應(yīng)結(jié)果。
CIP Client IP 客戶端的地址,發(fā)起請求的客戶端地址。
VIP Virtual IP lvs集群使用的ip地址,對外提供集群訪問的虛擬ip地址。
DIP Director IP 調(diào)度器在集群當(dāng)中的地址,用于和RS進(jìn)行通信
RIP Real IP 后端服務(wù)器在集群當(dāng)中的IP地址。
lvs的工作方式:
NAT模式 由調(diào)度器響應(yīng)給客戶端
DR模式(直接路由模式) 真實(shí)服務(wù)器直接響應(yīng)給客戶端
TUN 隧道模式
常用的模式:NAT和DR模式
NAT模式:
nat模式是常用的lvs的模式之一。在nat模式下,lvs會將來自客戶端的請求報(bào)文中的目標(biāo)IP地址和端口,修改為lvs內(nèi)部的IP地址和端口。然后把請求轉(zhuǎn)發(fā)到后端服務(wù)器。
響應(yīng)結(jié)果返回客戶端的過程中,響應(yīng)報(bào)文經(jīng)過lvs的處理,把目標(biāo)ip和端口修改成客戶端的IP地址和端口。
好處在于,對于客戶端來說,請求的目標(biāo)地址始終不變,客戶端的配置不需要做特殊修改,只是調(diào)度器再對IP地址和端口進(jìn)行轉(zhuǎn)換,后端的服務(wù)器也不需要更改任何配置。
缺點(diǎn)在于,性能損失,請求和響應(yīng)都需要調(diào)度器做地址轉(zhuǎn)換,影響性能,nat模式只能有一個調(diào)度器,調(diào)度器故障,整個集群就不能正常工作。
地址轉(zhuǎn)換:
內(nèi)網(wǎng)--------外網(wǎng) 轉(zhuǎn)換的源IP地址
外網(wǎng)--------內(nèi)網(wǎng) 轉(zhuǎn)換的目的地址
1、客戶端發(fā)起請求,訪問vip地址達(dá)到調(diào)度器
2、調(diào)度器接收到請求之后,根據(jù)負(fù)載均衡算法選一個后端服務(wù)器
3、請求的地址,轉(zhuǎn)成可以直接和內(nèi)部RS通信的IP地址
4、后端服務(wù)器處理請求
5、目的地址轉(zhuǎn)換,轉(zhuǎn)換成vip地址
6、調(diào)度器的vip響應(yīng)給客戶端。
lvs的工具
ipvsadm工具,用來配置和管理lvs集群的工具
-A 添加虛擬服務(wù)器 vip
-D 刪除虛擬服務(wù)器地址
-s 指定負(fù)載均衡的調(diào)度算法
算法:
rr 默認(rèn)輪詢
加權(quán)輪詢 wrr
最小連接 lc
加權(quán)最小連接 wlc
-a 添加真實(shí)服務(wù)器
-t 指定vip的地址和端口
-r 指定rip(真實(shí))的地址和端口
-m 使用nat模式
-g 使用DR模式
-i 使用隧道模式
-w 設(shè)置權(quán)重
-p 設(shè)置連接保持時(shí)間 -p 60
-l 列表查看
-n 數(shù)字化展示
nat集群實(shí)驗(yàn):
操作:
1、在test7中安裝ipvsadm配置文件
[root@test7 ~]# yum -y install ipvsadm
2、配置網(wǎng)卡
[root@test7 ~]# cd /etc/sysconfig/network-scripts/
[root@test7 network-scripts]# cp ifcfg-ens33 ifcfg-ens36
ens33
[root@test7 network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.60.70
NETMASK=255.255.255.0
#GATEWAY=192.168.60.2
#DNS1=218.2.135.1
#DNS2=221.131.143.69
ens36
[root@test7 network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
DEVICE=ens36
ONBOOT=yes
BOOTPROTO=static
IPADDR=12.0.0.1
NETMASK=255.255.255.0
#GATEWAY=192.168.60.2
#DNS1=218.2.135.1
#DNS2=221.131.143.69
3、配置nginx1和nginx2的網(wǎng)卡
nginx1:
[root@test3 network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.60.30
NETMASK=255.255.255.0
GATEWAY=192.168.60.70
DNS1=218.2.135.1
DNS2=221.131.143.69
nginx2
[root@test4 network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.60.40
NETMASK=255.255.255.0
GATEWAY=192.168.60.70
DNS1=218.2.135.1
DNS2=221.131.143.69
4、更改nginx1和nginx2的靜態(tài)網(wǎng)頁頁面
nginx1
[root@test3 network-scripts]# vim /usr/local/nginx/html/index.html
this is test3
nginx2
[root@test4 network-scripts]# vim /usr/local/nginx/html/index.html
this is test4
5、在test7中指定表名創(chuàng)建策略
[root@test7 network-scripts]# iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -o -ens36 -j SNAT --to 12.0.0.1
[root@test7 network-scripts]# iptables -t nat -vnL
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target ? ? prot opt in ? ? out ? ? source ? ? ? ? ? ? ? destination ? ? ? ?
? 0 ? ? 0 SNAT ? ? ? all -- * ? ? -ens36 192.168.60.0/24 ? ? 0.0.0.0/0 ? ? ? ? ? to:12.0.0.1
6、指定好vip的地址和端口
[root@test7 opt]# ipvsadm -A -t 12.0.0.1:80 -s rr
7、添加真實(shí)服務(wù)器
[root@test7 opt]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.60.30:80 -m
[root@test7 opt]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.60.40:80 -m
[root@test7 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port ? ? ? ? ? Forward Weight ActiveConn InActConn
TCP 12.0.0.1:80 rr
-> 192.168.60.30:80 ? ? ? ? ? ? Masq ? 1 ? ? 0 ? ? ? ? 0 ? ? ? ?
-> 192.168.60.40:80 ? ? ? ? ? ? Masq ? 1 ? ? 0 ? ? ? ? 0 ?
8、保存并重啟策略
[root@test7 opt]# systemctl restart ipvsadm
[root@test7 opt]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@test7 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port ? ? ? ? ? Forward Weight ActiveConn InActConn
TCP 12.0.0.1:80 rr
-> 192.168.60.30:80 ? ? ? ? ? ? Masq ? 1 ? ? 0 ? ? ? ? 0 ? ? ? ?
-> 192.168.60.40:80 ? ? ? ? ? ? Masq ? 1 ? ? 0 ? ? ? ? 0
9、開啟路由轉(zhuǎn)發(fā)的功能
[root@test7 opt]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
10、更改客戶端test8的網(wǎng)關(guān)配置
[root@test8 network-scripts]# vim ifcfg-ens33
?
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=12.0.0.10
NETMASK=255.255.255.0
GATEWAY=12.0.0.1
DNS1=218.2.135.1
DNS2=221.131.143.69
11、結(jié)果
設(shè)置權(quán)重:
1、創(chuàng)建權(quán)重策略
[root@test7 opt]# ipvsadm -A -t 12.0.0.1:80 -s wrr
[root@test7 opt]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.60.30:80 -m -w 2
[root@test7 opt]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.60.40:80 -m -w 1
[root@test7 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port ? ? ? ? ? Forward Weight ActiveConn InActConn
TCP 12.0.0.1:80 wrr
-> 192.168.60.30:80 ? ? ? ? ? ? Masq ? 2 ? ? 0 ? ? ? ? 0 ? ? ? ?
-> 192.168.60.40:80 ? ? ? ? ? ? Masq ? 1 ? ? 0 ? ? ? ? 0
2、結(jié)果
柚子快報(bào)邀請碼778899分享:lvs集群
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。