一、LVS簡單介紹
LVS(Linux Virtual Server)其實就是針對高可伸縮、高可用網絡服務的需求,給出了基於IP層和基於內容請求分發的負載平衡調度解決方法,並在Linux內核中實現了這些方法,將一組服務器構成一個實現可伸縮的、高可用網絡服務的虛擬服務器。所以,lvs需要內核有ipvs支持,linux-2.4.23以後ipvs都編譯到內核裏,如果你是之前版本確保你的內核支持ipvs後,只需安裝ipvsadm就可以把一臺服務器配置成負載調度器(Load Balancer)。對外提供服務的IP,也就是我們訪問的IP稱做VIP。調度器LB的任務主要是分發請求,真正處理的是真實服務器(Real Server)。
網絡地址傳輸模式::LB收到用戶請求包後,LB將請求包中虛擬服務器的IP地址轉換爲某個選定RS的IP地址,轉發給RS;RS將應答包發給LB,LB將應答包中RS的IP轉爲虛擬服務器的IP地址,回送給用戶。
lvs-nat模型特徵
DR(Direct Routing)直接路由模式。LB收到請求包後,將請求包中目標MAC地址轉換爲某個選定RS的MAC地址後將包轉發出去,RS收到請求包後 ,可直接將應答內容傳給用戶。此時要求LB和所有RS都必須在一個物理段內,且LB與RS羣共享一個虛擬IP。
lvs-dr模型特徵 (常用)
IP隧道 (IP Tunneling)模式。LB收到用戶請求包後,根據IP隧道協議封裝該包,然後傳給某個選定的RS;RS解出請求信息,直接將應答內容傳給用戶。此時要求RS和LB都要支持IP隧道協議。
lvs-tun模型特徵
三、lvs scheduling methods調度算法有10種
靜態調度4個輪叫RR
動態調度6個
基於本地的最少鏈接(Locality-Based Least Connections:DH)LBLC
帶複製的基於本地最少鏈接(Locality-Based Least Connections with Replication)LBLCR
172.16.23.1是LVS與互聯網的虛擬server ip地址,簡稱爲VIP
192.168.23.1是LVS與內部真實服務器通信的ip地址,簡稱爲DIP
192.168.23.2與192.168.23.3就是LVS通過一些調度算法,選擇服務器響應的真實服務器地址
yum -y install httpd
service httpd start
設置ip地址爲192.168.23.2
(1)、sysctl -w net.ipv4.ip_forward=1 向內核傳遞參數開啓ip轉發功能,使立即生效
cat /proc/sys/net/ipv4/ip_forward 查看確保爲1
(4)、用ipvsadm設置規則
ipvsadm -A -t 172.16.23.1:80 -s rr //這裏定義一個集羣服務 –s指調度算法爲rr
ipvsadm -a -t 172.16.23.1:80 -r 192.16.23.2 –m //向集羣服務添加RS -m爲nat方式
ipvsadm -a -t 172.16.23.1:80 -r 192.16.23.3 –m //向集羣服務添加RS -m爲nat方式
(5)3.在web1和web2上設置默認網關指向DIP的地址
route add default gw 192.168.23.1
ping 172.16.23.1 確保能ping通
(6)、測試是否成功
ab -c 10 -n 1000 http://172.16.23.1/index.html 用ab命令做測試
watch -n1 'ipvsadm -L -n' 每秒刷新一次來查看變化
(7)ipvsadm命令詳細介紹
1.定義集羣服務
語法:
ipvsadm -A|-E -t|-u VIP:port -s scheduler -s指調度算法
ipvsadm -D -t|-u VIP:port
-A 在虛擬服務器表中添加新的虛擬服務器記錄
-E 編輯內核虛擬服務器表中虛擬服務器記錄。
-D 刪除虛擬服務器表中虛擬服務器記錄。
-L 查看
-t|-u 代表tcp和udp服務
VIP指虛擬服務器ip地址,即LVS與internet通信的網卡地址
2. 真實服務器的規則定義
ipvsadm -a|e -t|u VIP:port -r REALSERVER -g|-i|-m [-w weight]
ipvsadm -d -t|-u VIP:port -r REALSERVER
-a 在虛擬服務器表的添加一條新的真實服務器
-e 編輯虛擬服務器記錄中真實服務器記錄
-d刪除虛擬服務器記錄的真實服務器記錄
-r 提供服務響應的真實服務器
-g 指LVS 的工作模式爲直接路由模式
-i 指LVS 的工作模式爲隧道模式
-m 指LVS 的工作模式爲NAT 模式
-z 清空計數器
-n 數字的方式來顯示地址
--stats 狀態信息
--rate 每秒速率
添加或者修改REALSERVER:ipvsadm -a|e -t|u|f VIP:port -r REALSERVER[:port] -g|-i|-m [-w 權重]
刪除一個REALSERVER: ipvsadm -d -t|u|f VIP:port -r REALSERVER[:port]
VMware Network Adepter VMnet1:Host用於與Host-Only虛擬網絡進行通信的虛擬網卡
VMware Network Adepter VMnet8:Host用於與NAT虛擬網絡進行通信的虛擬網卡
1橋接網絡(Bridged Networking)
橋接網絡是指本地物理網卡和虛擬網卡通過VMnet0虛擬交換機進行橋接,物理網卡和虛擬網卡在拓撲圖上處於同等地位(虛擬網卡既不是Adepter VMnet1也不是Adepter VMnet8)。那麼物理網卡和虛擬網卡就相當於處於同一個網段,虛擬交換機就相當於一臺現實網絡中的交換機。所以兩個網卡的IP地址也要設置爲同一網段。
在NAT網絡中,會用到VMware Network Adepter VMnet8虛擬網卡,主機上的VMware Network Adepter VMnet8虛擬網卡被直接連接到VMnet8虛擬交換機上與虛擬網卡進行通信。
VMware Network Adepter VMnet8虛擬網卡的作用僅限於和VMnet8網段進行通信,它不給VMnet8網段提供路由功能,所以虛擬機虛擬一個NAT服務器,使虛擬網卡可以連接到Internet。在這種情況下,我們就可以使用端口映射功能,讓訪問主機80端口的請求映射到虛擬機的80端口上。
VMware Network Adepter VMnet8虛擬網卡的IP地址是在安裝VMware時由系統指定生成的,我們不要修改這個數值,否則會使主機和虛擬機無法通信。
在Host-Only模式下,虛擬網絡是一個全封閉的網絡,它唯一能夠訪問的就是主機。其實Host-Only網絡和NAT網絡很相似,不同的地方就是Host-Only網絡沒有NAT服務,所以虛擬網絡不能連接到Internet。主機和虛擬機之間的通信是通過VMware Network Adepter VMnet1虛擬網卡來實現的。