一,什么是集群:
? ? ? ? 集群,群集,Cluster,由多臺主機構成,但是對外只表現為一個整體,只提供一個訪問入口(域名與ip地址),相當于一臺大型計算機。
二,集群適用場景:高并發
三,集群的分類:
? ? ? ? 1,負載均衡集群
????????????????減少響應延遲,提高并發處理能力
? ? ? ? 2,高可用集群(HA)
????????????????提高系統的穩定性,減少服務器中斷的時間,減少損失
? ? ? ? 3,高性能運算集群
????????????????分布式計算
四,負載均衡的集群架構
? ? ? ? 數據流向:用戶----vip---訪問
????????第一層:負載調度器通過調度算法,以及rip的發送
????????第二層:服務器池所有服務器用的資源通過
????????第三層:共享存儲提供網站,存儲資源
五,負載均衡器的工作模式:
? ? ? ? 1,地址轉換(NAT模式)
? ? ? ? ? ? ? ? 調度器做網關的同時還承擔請求入口與訪問出口,在高并發場景下負載壓力很高,但是安全性很高。缺點:一臺設備承擔入口,出口,負載調度,高并發模型可能性能不足。
? ? ? ? 2,ip隧道(TUN模式)
????????????????僅作為訪問的入口,響應不經過調度器,但是需要大量的公網ip,還需要專用的ip隧道(成本太高)數據轉發受ip隧道的額外的影響。缺點:對公網ip數量要求比較高,對ip隧道數量有要求。
? ? ? ? 3,直接路由(DR模式)
????????????????僅作為請求的入口,響應數據不經過調度器,節點服務器和調度器在一個物理網絡中,轉發數據不受額外影響。
六,lvs的負載均衡算法
? ? ? ? 1,輪詢
? ? ? ? 2,加權輪詢
? ? ? ? 3,最少鏈接數
? ? ? ? 4,加權最少鏈接數
七,lvs組成
- 基于內核態的netfilter框架來實現的ipvs功能,工作在內核態。用戶配置vip等相關信息并且傳遞到ipvs就需要用到ipvs當中的adm工具。
- Ipvs adm是lvs用戶態的一個配套工具,可以實現vip和rs增刪改查。Ipvsadm就是類似于iptables工具的地位。
八,lvs的作用:
- 主要用于多服務器的負載均衡
- 工作在網絡層,可實現高性能,高可用的服務集群技術
- 廉價,可把我們的許多低性能的服務器組合在一起形成一個超級設備
- 易用,配置簡單,有多重負載均衡的方式
- 穩定可靠,即使在集群的服務器中某臺服務器無法正常工作,也不會影響整體效果
- 可擴展性好
九,lvs支持與工具
? ? ? ? 1,查看系統是否支持lvs:
????????????????modprobe ip_vs
? ? ? ? 2,lvs管理工具:ipvsadm
????????????????-A?? ?添加虛擬服務器
????????????????-D?? ?刪除整個虛擬服務器
????????????????-s?? ?指定負載調度算法 (輪詢:rr、加權輪詢: wrr、最少連接: lc、加權最少連接: wlc )
????????????????-a?? ?表示添加真實服務器 (節點服務器)
????????????????-d?? ?刪除某一個節點
????????????????-t?? ?指定 VIP地址及 TCP端口
????????????????-r?? ?指定 RIP地址及 TCP端口
????????????????-m?? ?表示使用 NAT群集模式.
????????????????-g?? ?表示使用 DR模式
????????????????-i?? ?表示使用 TUN模式
????????????????-w?? ?設置權重 (權重為 0 時表示暫停節點)
????????????????-p 60?? ?表示保持長連接60秒
????????????????-l?? ?列表查看 LVS 虛擬服務器 (默認為查看所有)
????????????????-n?? ?以數字形式顯示地址、端口等信息,常與 “-l” 選項組合使用。ipvsadm -ln
十,具體配置:
本次實驗需要在vmware中添加一塊新網卡,并且給負載均衡器設置新的網卡。
NFS服務器:
安裝nfs及其相關程序
yum install -y nfs-utils rpcbind開啟并設置自啟動
systemctl start nfs.service
systemctl start rpcbind.service
systemctl enable nfs.service
systemctl enable rpcbind.service創建共享目錄兩個,對應兩個web服務器,然后更改權限
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet進項共享目錄的設置
/usr/share *(ro,sync)
/opt/kgc 192.168.10.0/24(rw,sync)
/opt/benet 192.168.10.0/24(rw,sync)發布共享
exportfs -rv
showmount -e
web服務器1(192.168.10.16)
安裝httpd,開啟并設置自啟動
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service安裝nfs以及相關組件,開啟并設置自啟動
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service檢測來自192.168.10.18的掛載目錄
showmount -e 192.168.10.18掛載目錄后寫入網頁內容
mount.nfs 192.168.10.18:/opt/kgc /var/www/html/
echo 'this is kgc' > /var/www/html/index.html設置永久掛載
vim /etc/fstab
192.168.10.18:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a修改網卡網關為lvs服務器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.10.19
web服務器2(192.168.10.17)
安裝httpd,開啟并設置自啟動
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service安裝nfs以及相關組件,開啟并設置自啟動
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service檢測來自192.168.10.18的掛載目錄
showmount -e 192.168.10.18掛載目錄后寫入網頁內容
mount.nfs 192.168.10.18:/opt/benet /var/www/html/
echo 'this is benet' > /var/www/html/index.html設置永久掛載
vim /etc/fstab
192.168.10.18:/opt/benet /var/www/html nfs defaults,_netdev 0 0
mount -a修改網卡網關為lvs服務器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.10.19
負載調度器
添加網卡后,使用ifconfig掃描新加入的網卡,然后復制原有的網卡信息到新的網卡文件中,不使用DNS與網關,ip地址用新加入的vmnet3,vmnet3在本次實驗中用的網段為10.0.0.0配置snat轉發規則
vim /etc/sysctl.conf
net.ipv4.ip_forward=1查看配置是否生效
sysctl -p清空iptables策略并且寫入新的策略
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to-source 10.0.0.1加載lvs內核模塊并查看版本
modprobe ip_vs
cat /proc/net/ip_vs安裝管理工具
yum install -y ipvsadm啟動服務(啟動之前需要先保存策略)
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service配置負載均衡策略
ipvsadm -C
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.10.16:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.10.17:80 -m -w 1啟動策略并查看節點狀態,查看后保存
ipvsadm
ipvsadm -ln
ipvsadm-save > /etc/sysconfig/ipvsadm
配置結束后使用win10訪問負載均衡服務器即可。