1、羣集的類型html
①負載均衡羣集(Load Balancer):提升應用系統的響應能力,減小延遲,得到高併發、高負載;負載的分配依賴於主節點的分流算法,將客戶機的請求分擔給多個節點服務器linux
②高可用羣集(High Available):提升應用系統的可靠性,減小中斷時間,達到高可用性;web
HA包括雙工、主從兩種工做模式,雙工即全部節點可同時在線,主從即只有主節點在線算法
③高性能運算羣集(High Performance Computer):提升運算速度、擴展硬件資源和分析能力;HPC的高性能依賴於分佈式運算、並行計算,將多個資源整合在一塊兒安全
2、負載均衡的分層結構服務器
①負載調度器:羣集惟一入口,對外提供羣集IP地址(虛擬IP,Virtual IP)網絡
②服務器池:提供應用服務的服務器的集合,每一個節點具備獨立的RIP(真實IP,Real IP)併發
③共享存儲:爲全部節點提供穩定、一致的文件存取服務,使用NAS設備或NFS服務器app
3、負載均衡的工做模式負載均衡
①地址轉換模式(NAT):負載調度器做爲全部節點的網關,既是客戶機訪問的入口,也是節點回應客戶機的出口,各節點使用私有IP地址,安全性高
②IP隧道模式(TUN):負載調度器僅做爲客戶機訪問的入口,各節點經過各自的Internet鏈接迴應客戶機,再也不通過負載調度器,各節點使用獨立公網IP地址,分散在不一樣位置
③直接路由模式(DR):與TUN模式相似,負載調度器僅做爲客戶機訪問的入口,各節點經過各自的Internet鏈接迴應客戶機,各節點使用獨立公網IP地址,但各節點並不是分散在各地,而是與調度器位於同一個物理網絡
4、LVS虛擬服務器
Linux Virtual Server是針對Linux內核的負載均衡解決方案,由我國的章文嵩博士建立
主要負載調度算法:
①輪詢(Round Robin):將收到的訪問請求按順序輪流分配給羣集中的各節點,均等對待
②加權輪詢(Weighted Round Robin):根據服務器的處理能力輪流分配收到的訪問請求
③最少鏈接(Least Connections):根據服務器已創建鏈接數分配,優先分配給鏈接數少的
④加權最少鏈接(Weighted Least Connections):自動調整權重,適應於節點性能差別較大
5、NFS共享存儲服務
①Network File System是基於TCP/IP傳輸的網絡文件系統協議,經過NFS協議,客戶機能夠像訪問本地目錄同樣訪問遠程服務器上的共享資源。
②NFS服務依賴於RPC(Remote Process Call)機制,以完成遠程到本地的映射過程,在RHEL6中須要安裝nfs-utils、rpcbind軟件包來提供NFS共享服務,其中nfs-utils用於NFS共享發佈和訪問,rpcbind用於RPC支持
實驗一:構建LVS-NAT負載均衡羣集
實驗環境:一臺win2003、四臺RHEL6
1、基本配置
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
2、配置負載調度器
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 查看各節點負載狀況
3、配置NFS服務器
配置yum,方便安裝軟件包
1、安裝ntf-utils、rpcbind軟件包
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
4、配置節點服務器
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
5、測試LVS羣集
在外網主機中訪問http://172.16.16.172進行測試,刷新時能夠看到不一樣的節點提供的內容
在負載調度器上查看
ipvsadm -Ln -----查看節點狀態
ipvsadm –Lnc -----查看負載鏈接狀況
實驗二:構建LVS-DR負載均衡羣集
在DR模式的負載均衡羣集中因爲入站、出站數據被分別處理,因此LVS負載調度器和各節點服務器都須要配置有VIP地址,以便響應對整個羣集的訪問;而共享存儲設置通常會放在內部網絡中
1、基本配置
配置各Linux主機名、關閉iptables等
2、配置負載調度器
1、爲eth0、eth1、eth0: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
3、配置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-utils、rpcbind軟件包
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
4、配置節點服務器
1、爲eth0、eth1、lo: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
5、測試LVS羣集
在外網主機中訪問http://172.16.16.172進行測試,刷新時能夠看到不一樣的節點提供的內容
在負載調度器上查看
ipvsadm -Ln -----查看節點狀態
ipvsadm -Lnc -----查看負載鏈接狀況