LVS負載均衡羣集的實現


 1、羣集的類型

①負載均衡羣集(Load Balancer):提高應用系統的響應能力,減少延遲,獲得高併發、高負載;負載的分配依賴於主節點的分流算法,將客戶機的請求分擔給多個節點服務器

②高可用羣集(High Available):提高應用系統的可靠性,減少中斷時間,達到高可用性;

HA包括雙工、主從兩種工作模式,雙工即所有節點可同時在線,主從即只有主節點在線

③高性能運算羣集(High Performance Computer):提高運算速度、擴展硬件資源和分析能力;HPC的高性能依賴於分佈式運算、並行計算,將多個資源整合在一起

2、負載均衡的分層結構

①負載調度器:羣集唯一入口,對外提供羣集IP地址(虛擬IPVirtual  IP

②服務器池:提供應用服務的服務器的集合,每個節點具有獨立的RIP(真實IPReal  IP

③共享存儲:爲所有節點提供穩定、一致的文件存取服務,使用NAS設備或NFS服務器

3、負載均衡的工作模式

①地址轉換模式(NAT):負載調度器作爲所有節點的網關,既是客戶機訪問的入口,也是節點回應客戶機的出口,各節點使用私有IP地址,安全性高

IP隧道模式(TUN):負載調度器僅作爲客戶機訪問的入口,各節點通過各自的Internet連接回應客戶機,不再經過負載調度器,各節點使用獨立公網IP地址,分散在不同位置

③直接路由模式(DR):與TUN模式類似,負載調度器僅作爲客戶機訪問的入口,各節點通過各自的Internet連接回應客戶機,各節點使用獨立公網IP地址,但各節點並非分散在各地,而是與調度器位於同一個物理網絡

4LVS虛擬服務器

Linux Virtual Server是針對Linux內核的負載均衡解決方案,由我國的章文嵩博士創建

主要負載調度算法:

①輪詢(Round Robin):將收到的訪問請求按順序輪流分配給羣集中的各節點,均等對待

②加權輪詢(Weighted Round Robin):根據服務器的處理能力輪流分配收到的訪問請求

③最少連接(Least Connections):根據服務器已建立連接數分配,優先分配給連接數少的

④加權最少連接(Weighted Least Connections):自動調整權重,適應於節點性能差異較大

5NFS共享存儲服務

Network File System是基於TCP/IP傳輸的網絡文件系統協議,通過NFS協議,客戶機可以像訪問本地目錄一樣訪問遠程服務器上的共享資源。

NFS服務依賴於RPCRemote Process Call)機制,以完成遠程到本地的映射過程,在RHEL6中需要安裝nfs-utilsrpcbind軟件包來提供NFS共享服務,其中nfs-utils用於NFS共享發佈和訪問,rpcbind用於RPC支持

 

實驗一:構建LVS-NAT負載均衡羣集

實驗環境:一臺win2003、四臺RHEL6

Snip20190101_1.png

 

一、基本配置

1、配置各Linux主機名

vi /etc/sysconfig/network

HOSTNAME=lvs.benet.com

vi /etc/hosts

192.168.7.254   lvs.benet.com

2、配置IP地址、網關、關閉iptables

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.16.16.172

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.7.254

NETMASK=255.255.255.0

GATEWAY=192.168.7.254

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot          --------其他虛擬機配置與之類似

注:①在局域網中或互聯中,linux的主機名不能相同

VMWare克隆或複製Linux虛擬機後可能會導致找不到eth0網卡等問題,可通過刪除 /etc/udev/rules.d/70-persistent-net.rules文件解決,需重啓系統

③如果各虛擬機網卡MAC地址相同,可在ifcfg-eth0文件中添加

MACADDR=22:22:22:22:22:22配置項,以指定不同的MAC地址 

④內部的節點服務器需要指定網關,可添加配置項GATEWAY=192.168.7.254

 

二、配置負載調度器

1、配置SNAT轉發規則

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl –p

iptables –F

iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o eth0 -j SNAT --to-source 172.16.16.172

iptables-save  >  /etc/sysconfig/iptables

2、加載模塊、安裝LVS羣集管理工具

modprobe ip_vs

cat /proc/net/ip_vs

yum -y install vsftpd        -----通過FTP配置yum倉庫,方便安裝軟件包

vi /etc/vsftpd/vsftpd.conf

anon_root=/mnt/iso

service vsftpd start

chkconfig --level 35 vsftpd on

rpm -ivh /mnt/iso/Packages/ipvsadm-1.25-9.el6.i686.rpm

3、創建虛擬服務器、添加web節點、保存負載分配策略

service ipvsadm stop              -----清除原有策略

ipvsadm -A -t 172.16.16.172:80 -s rr

ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.21:80 -m -w 1

ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.22:80 -m -w 1

ipvsadm -Ln

service ipvsadm save               -----保存策略

chkconfig ipvsadm on

注:

ipvsadm命令用於管理LVS羣集,通過調用ip_vs模塊來添加、刪除服務器節點,以及查看羣集的運行狀態,需要手工安裝ipvsadm-1.25-9.el6.i686.rpm軟件包

②常用選項:

-A      添加虛擬服務器

-t       指定VIP地址及端口號

-s       指定負載調度算法,輪詢rr、加權輪詢wrr、最少連接lc、加權最少連接wlc

-a       添加節點服務器

-d     刪除服務器節點,如ipvsadm -d -t 172.16.16.172:80 -r 192.168.7.21:80

-r       指定各節點RIP地址及端口號

-m     使用NAT羣集模式

-g    使用DR羣集模式

-i        使用TUN羣集模式

-w      設置權重,0表示暫停節點

-L              查看LVS狀態

-n       以數字形式顯示地址、端口等信息

-c              查看各節點負載情況

 

三、配置NFS服務器

配置yum,方便安裝軟件包

1、安裝ntf-utilsrpcbind軟件包

yum -y install nfs-utils rpcbind

chkconfig rpcbind on

chkconfig nfs on

2、設置共享目錄

mkdir -p /opt/wwwroot

vi /etc/exports

/opt/wwwroot    192.168.7.0/24(rw,sync,no_root_squash)

3、啓動服務並查看發佈的共享目錄

service rpcbind start

service nfs start

netstat -anpt | grep rpcbind             -----使用111端口

showmount -e

 

四、配置節點服務器

1、安裝rpcbind軟件包以實現訪問NFS共享資源

yum -y install nfs-utils rpcbind

service rpcbind start

chkconfig rpcbind on

showmount -e 192.168.7.250         -----查看NFS服務器共享的目錄

注:①如果報錯“clnt_create: RPC: Program not registered”,可能是未修改各Linux主機名或服務器的nfs服務未運行

     ②如果報錯“clnt_create: RPC: Port mapper failure - Unable to receive:error....”,可能是被服務器上iptables防火牆阻止,關閉防火牆即可

2、掛載NFS共享目錄

mkdir -p /var/www/html

mount -t nfs 192.168.7.250:/opt/wwwroot /var/www/html

vi /etc/fstab

192.168.7.250:/opt/wwwroot  /var/www/html    nfs   defaults,_netdev 0 0

3、安裝httpd軟件包並創建測試頁面

yum –y install httpd

service httpd start

chkconfig httpd on

echo welcome to web! > /var/www/html/index.html

五、測試LVS羣集

在外網主機中訪問http://172.16.16.172進行測試,刷新時可以看到不同的節點提供的內容

在負載調度器上查看

ipvsadm -Ln             -----查看節點狀態

ipvsadm Lnc       -----查看負載連接情況

 

 

實驗二:構建LVS-DR負載均衡羣集

 

Snip20190101_2.png

DR模式的負載均衡羣集中由於入站、出站數據被分別處理,所以LVS負載調度器和各節點服務器都需要配置有VIP地址,以便響應對整個羣集的訪問;而共享存儲設置一般會放在內部網絡中

 

一、基本配置

配置各Linux主機名、關閉iptables

二、配置負載調度器

1、爲eth0eth1eth0:0配置IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.16.16.254

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=192.168.7.254

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

DEVICE=eth0:0

ONBOOT=yes

IPADDR=172.16.16.172

NETMASK=255.255.255.0

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot                --------重新啓動虛擬機

2、調整/proc內核參數,關閉重定向響應

由於負載調度器和各節點共用VIP地址,爲避免ARP解析異常,故關閉內核的重定向響應

vi /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0

net.ipv4.conf.eth1.send_redirects = 0

sysctl –p

3、加載模塊、安裝LVS羣集管理工具

modprobe ip_vs

rpm -ivh /mnt/iso/Packages/ipvsadm-1.25-9.el6.i686.rpm

yum -y install vsftpd        -----配置yum倉庫,方便安裝軟件包

vi /etc/vsftpd/vsftpd.conf

anon_root=/mnt

service vsftpd start

chkconfig vsftpd on

4、創建虛擬服務器、添加web節點、保存負載分配策略

service ipvsadm stop

ipvsadm -A -t 172.16.16.172:80 -s rr

ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.21:80 -g -w 1

ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.22:80 -g -w 1

service ipvsadm save

chkconfig ipvsadm on

三、配置NFS服務器

1、爲eth0配置IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.7.250

NETMASK=255.255.255.0

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot

2、安裝ntf-utilsrpcbind軟件包

yum -y install nfs-utils rpcbind

3、設置共享目錄

mkdir -p /opt/wwwroot

vi /etc/exports

/opt/wwwroot    192.168.7.0/24(rw,sync,no_root_squash)

4、啓動服務並查看發佈的共享目錄

service rpcbind start

service nfs start

chkconfig rpcbind on

chkconfig nfs on

netstat -anpt | grep rpcbind             -----使用111端口

showmount -e 127.0.0.1

四、配置節點服務器

1、爲eth0eth1lo:0配置IP地址,並添加路由記錄

①配置IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.16.16.21

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=192.168.7.21

NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

ONBOOT=yes

IPADDR=172.16.16.172          -----此地址僅用作響應數據包的源地址

NETMASK=255.255.255.255      -----子網掩碼必須全爲1

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot             -------重新啓動虛擬機,節點2的配置與之類似

②添加VIP本地訪問路由

vi /etc/rc.local

/sbin/route add -host 172.16.16.172 dev lo:0

route add -host 172.16.16.172 dev lo:0

2、調整/proc內核參數,關閉重定向響應

vi /etc/sysctl.conf

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

sysctl –p

3、安裝rpcbind軟件包以實現訪問NFS共享資源

yum -y install nfs-utils rpcbind

service rpcbind start

chkconfig rpcbind on

showmount -e 192.168.7.250

4、掛載NFS共享目錄

mkdir -p /var/www/html

mount 192.168.7.250:/opt/wwwroot /var/www/html

vi /etc/fstab

192.168.7.250:/opt/wwwroot /var/www/html        nfs     defaults,_netdev 0 0

5、安裝httpd軟件包並創建測試頁面

yum –y install httpd

echo welcome to web! > /var/www/html/index.html

service httpd start

chkconfig httpd on

五、測試LVS羣集

在外網主機中訪問http://172.16.16.172進行測試,刷新時可以看到不同的節點提供的內容

在負載調度器上查看

ipvsadm -Ln     -----查看節點狀態

ipvsadm -Lnc     -----查看負載連接情況


講師介紹.jpg


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