LVS在企業網中的應用

 

一、LVS簡單介紹

LVS(Linux Virtual Server)其實就是針對高可伸縮、高可用網絡服務的需求,給出了基於IP層和基於內容請求分發的負載平衡調度解決方法,並在Linux內核中實現了這些方法,將一組服務器構成一個實現可伸縮的、高可用網絡服務的虛擬服務器。所以,lvs需要內核有ipvs支持,linux-2.4.23以後ipvs都編譯到內核裏,如果你是之前版本確保你的內核支持ipvs後,只需安裝ipvsadm就可以把一臺服務器配置成負載調度器(Load Balancer)。對外提供服務的IP,也就是我們訪問的IP稱做VIP。調度器LB的任務主要是分發請求,真正處理的是真實服務器(Real Server)。

二、LVS三種模式介紹 網絡地址傳輸模式 、直接路由模式、ip遂道模式

網絡地址傳輸模式::LB收到用戶請求包後,LB將請求包中虛擬服務器的IP地址轉換爲某個選定RS的IP地址,轉發給RS;RS將應答包發給LB,LB將應答包中RS的IP轉爲虛擬服務器的IP地址,回送給用戶。

lvs-nat模型特徵

1、所有realserver與director在同一個子網中 2、rip真實服務器ip地址爲私有地址,僅用於集羣節點之間使 3、客戶端的請求,響應都要經過director 4、ripserver 網關指向dip 5、可以實現端口映射 80 6、realserver可以是任何操作系統 7、dirctor可能成爲系統瓶頸

DR(Direct Routing)直接路由模式。LB收到請求包後,將請求包中目標MAC地址轉換爲某個選定RS的MAC地址後將包轉發出去,RS收到請求包後 ,可直接將應答內容傳給用戶。此時要求LB和所有RS都必須在一個物理段內,且LB與RS羣共享一個虛擬IP。

lvs-dr模型特徵 (常用)

  1、集羣節點必須在一個物理網絡上(mac) 2、rip可以使用公網地址 3、director處理入站請求, 4、realserver網關不指向director 5、不支持端口映射 6、大多數操作系統支持realservers 7、dr dirctor 比nat director性能優越

IP隧道 (IP Tunneling)模式。LB收到用戶請求包後,根據IP隧道協議封裝該包,然後傳給某個選定的RS;RS解出請求信息,直接將應答內容傳給用戶。此時要求RS和LB都要支持IP隧道協議。

lvs-tun模型特徵

集羣節點可跨互聯網   1、director和realserver不需要在一個網絡中 2、rip一定不是私有地址 3、director 僅處理入站請求 4、realserver網關不能指向director ip 5、不支持端口映射 6、僅有支持ip遂道功能操作系統才能用在realserver  

三、lvs scheduling methods調度算法有10種

靜態調度4個輪叫RR

加權輪叫WRR 目標地址hash  DH 源地地址hash  SH

動態調度6個

最少鏈接(Least Connections) 加權最少鏈接(Weighted Least Connections)WLC linux默認的調度 shortest expected delay   SED never queue  NQ 

基於本地的最少鏈接(Locality-Based Least Connections:DH)LBLC

帶複製的基於本地最少鏈接(Locality-Based Least Connections with Replication)LBLCR

 

四:案例

案例一(LVS-NAT):

 

拓撲圖:

image 

(說明:在web服務器上需配置網關即網關爲192.168.10.1)

LVS上的配置:

開啓linux的路由轉發功能:

 

編輯[root@localhost ~]# vim /etc/sysctl.conf

把     7 net.ipv4.ip_forward = 0

改爲 7 net.ipv4.ip_forward = 1

使其生效:

[root@localhost ~]# sysctl -p

 

配置yum:

編輯:

[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

1 [rhel-debuginfo]
2 name=Red Hat Enterprise Linux server
3 baseurl=file:///mnt/cdrom/Server
4 enabled=1
5 gpgcheck=1
6 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
7 [rhel-debuginfo]
8 name=Red Hat Enterprise Linux cluster
9 baseurl=file:///mnt/cdrom/Cluster
10 enabled=1
11 gpgcheck=1
12 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

 

安裝ipvsadm:

[root@localhost ~]# yum install ipvsadm

 

增加條目:

[root@localhost ~]# ipvsadm -A -t 192.168.20.1:80 -s rr

[root@localhost ~]# ipvsadm -a -t 192.168.20.1:80 -r 192.168.10.2 -m

[root@localhost ~]# ipvsadm -a -t 192.168.20.1:80 -r 192.168.10.3 –m

 

[root@localhost ~]# service ipvsadm save

[root@localhost ~]# service ipvsadm start

 

web1服務器的配置:

安裝web:

[root@localhost ~]# yum install httpd   //安裝web服務器

[root@localhost ~]# cd /var/www/html/

[root@localhost html]# vim index.html

其內容爲:

web1(192.168.10.2)

 

[root@localhost html]# service httpd restart   //重啓web服務

 

 

web2服務器的配置:

安裝web:

[root@localhost ~]# yum install httpd           //安裝web服務器

[root@localhost ~]# cd /var/www/html/

編輯網頁:

[root@localhost html]# vim index.html

其內容爲:

web2(192.168.10.3)

 

[root@localhost html]# service httpd restart  //重啓web服務

 

測試:

 

用pc1訪問:

 

image

刷新頁面後:

 

image

在lvs上:

 

image

 

案例二(LVS-DR):

拓撲圖:

image

配置步驟:

diretor上的配置:

ip信息:

image

開啓linux的路由轉發功能:

編輯[root@localhost ~]# vim /etc/sysctl.conf

把     7 net.ipv4.ip_forward = 0

改爲 7 net.ipv4.ip_forward = 1

使其生效:

[root@localhost ~]# sysctl -p

 

配置yum:

編輯:

[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

1 [rhel-debuginfo]
2 name=Red Hat Enterprise Linux server
3 baseurl=file:///mnt/cdrom/Server
4 enabled=1
5 gpgcheck=1
6 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
7 [rhel-debuginfo]
8 name=Red Hat Enterprise Linux cluster
9 baseurl=file:///mnt/cdrom/Cluster
10 enabled=1
11 gpgcheck=1
12 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

 

安裝ipvsadm:

[root@localhost ~]# yum install ipvsadm

 

增加條目:

[root@localhost ~]# ipvsadm -A -t 192.168.10.100:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.2 -g
[root@localhost ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.3 –g

保存和啓動ipvsadm服務:

[root@localhost ~]# service ipvsadm save

[root@localhost ~]# service ipvsadm start

 

web1服務器上的配置:

Ip信息:

image

 

安裝web:

[root@localhost ~]# yum install httpd   //安裝web服務器

[root@localhost ~]# cd /var/www/html/

[root@localhost html]# vim index.html

其內容爲:

web1(192.168.10.2)

 

[root@localhost html]# service httpd restart   //重啓web服務

 

添加下列條目到/etc/sysctl.conf

[root@localhost ~]# echo "net.ipv4.conf.eth0.arp_announce = 2" >>/etc/sysctl.conf
[root@localhost ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1" >>/etc/sysctl.conf

[root@localhost ~]# sysctl –p                       //使其生效

 

[root@localhost ~]# route add -host 192.168.10.100 dev lo:0  //保證用vip還回

 

 

 

we21服務器上的配置:

Ip信息:

image

 

安裝web:

[root@localhost ~]# yum install httpd   //安裝web服務器

[root@localhost ~]# cd /var/www/html/

[root@localhost html]# vim index.html

其內容爲:

web2(192.168.10.3)

 

[root@localhost html]# service httpd restart   //重啓web服務

 

添加下列條目到/etc/sysctl.conf

[root@localhost ~]# echo "net.ipv4.conf.eth0.arp_announce = 2" >>/etc/sysctl.conf
[root@localhost ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1" >>/etc/sysctl.conf

[root@localhost ~]# sysctl –p                       //使其生效

 

[root@localhost ~]# route add -host 192.168.10.100 dev lo:0  //保證用vip還回

 

 

測試:

用pc訪問:

image

 

 

刷新頁面後:

 

image

 

在lvs上:

 

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章