您好,登錄后才能下訂單哦!
以提高應用系統的響應能力、盡可能處理更多的訪問請求、減少延遲為目標,獲得高并發、高負載(LB)的整體性能LB的負載分配依賴于主節點的分流算法
將收到的訪問請求按照順序輪流分配給群集中的各節點(真實服務器)均等地對待每一臺服務器,而不管服務器實際的連接數和系統負載
根據真實服務器已建立的連接數進行分配,將收到的訪問請求優先分配給連接數最少的節點
調度服務器(centos7):
外(ens36):12.0.0.1
內(ens33):192.168.200.1
web服務器1(centos7):192.168.200.110
web服務器2(centos7):192.168.200.120
存儲服務器(centos7):192.168.200.130
client客戶端(win10):12.0.0.12
[root@localhost ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.48.el7.x86_64 #已安裝
[root@localhost ~]# rpm -q rpcbind
rpcbind-0.2.0-42.el7.x86_64 #已安裝
[root@localhost ~]#
第一臺:
[root@localhost ~]# rpm -q httpd
未安裝軟件包 httpd
[root@localhost ~]# yum install httpd -y
.................//省略安裝過程
[root@localhost ~]#
第二臺:
[root@localhost ~]# rpm -q httpd
未安裝軟件包 httpd
[root@localhost ~]# yum install httpd -y
.................//省略安裝過程
[root@localhost ~]#
[root@localhost ~]# rpm -q ipvsadm
未安裝軟件包 ipvsadm
[root@localhost ~]# yum install ipvsadm -y
.................//省略安裝過程
[root@localhost ~]#
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #dhcp改為static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=09073596-a7cf-404c-a098-28c3ff58c44b
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.130 #IP地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.200.1 #網關
[root@localhost ~]# systemctl restart network #重啟網絡服務
[root@localhost ~]# ifconfig #查看網卡信息,ip設置成功
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.130 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::5134:22f5:842b:5201 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:0d:f1:75 txqueuelen 1000 (Ethernet)
RX packets 818 bytes 69866 (68.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 319 bytes 44103 (43.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# systemctl stop firewalld.service #關閉防火墻
[root@localhost ~]# setenforce 0 #關閉增強性安全功能
[root@localhost ~]#
[root@localhost ~]# systemctl start nfs.service #開啟nfs服務
[root@localhost ~]# systemctl start rpcbind #開啟rpcbind服務
[root@localhost ~]#
[root@localhost ~]# vim /etc/exports
/usr/share *(ro,sync) #共享目錄給所有用戶,權限制度
/opt/abc/ 192.168.200.0/24(rw,sync) #共享目錄到固定網段用戶,權限讀寫
/opt/xyz/ 192.168.200.0/24(rw,sync) #共享目錄到固定網段用戶,權限讀寫
[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
rh
[root@localhost opt]# mkdir abc xyz #創建目錄
[root@localhost opt]# ll
總用量 0
drwxr-xr-x. 2 root root 6 11月 26 17:33 abc
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwxr-xr-x. 2 root root 6 11月 26 17:33 xyz
[root@localhost opt]# chmod 777 abc xyz #授權
[root@localhost opt]# ll
總用量 0
drwxrwxrwx. 2 root root 6 11月 26 17:33 abc
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwxrwxrwx. 2 root root 6 11月 26 17:33 xyz
[root@localhost opt]#
[root@localhost opt]# exportfs -rv
exporting 192.168.200.0/24:/opt/xyz
exporting 192.168.200.0/24:/opt/abc
exporting *:/usr/share
[root@localhost opt]#
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #dhcp改為static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=3ceed540-b04c-48d6-a4f7-79951f09ea1d
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.110 #IP地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.200.1 #網關
[root@localhost ~]# systemctl restart network #重啟網絡服務
[root@localhost ~]# ifconfig #查看網卡信息,ip設置成功
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.110 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::3e1d:31ba:f66a:6f80 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:27:1c:3f txqueuelen 1000 (Ethernet)
RX packets 12581 bytes 15759224 (15.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6118 bytes 501343 (489.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# systemctl stop firewalld.service #關閉防火墻
[root@localhost ~]# setenforce 0 #關閉增強性安全功能
[root@localhost ~]# systemctl start httpd.service #開啟http服務
[root@localhost ~]# netstat -ntap | grep 80 #查看端口
tcp6 0 0 :::80 :::* LISTEN 50076/httpd
[root@localhost ~]#
[root@localhost ~]# showmount -e 192.168.200.130
Export list for 192.168.200.130:
/usr/share *
/opt/xyz 192.168.200.0/24
/opt/abc 192.168.200.0/24
[root@localhost ~]#
[root@localhost ~]# mount.nfs 192.168.200.130:/opt/abc /var/www/html/ #掛載
[root@localhost ~]# df -h #查看掛載信息
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda2 20G 3.4G 17G 17% /
devtmpfs 898M 0 898M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 18M 895M 2% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 10G 37M 10G 1% /home
/dev/sda1 6.0G 174M 5.9G 3% /boot
tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs 183M 40K 183M 1% /run/user/0
192.168.200.130:/opt/abc 20G 3.3G 17G 17% /var/www/html #掛載成功
[root@localhost ~]#
web服務器1:
[root@localhost ~]# echo "this is abc web" > /var/www/html/index.html #創建首頁文件
[root@localhost ~]#
存儲服務器:
[root@localhost opt]# cd abc/
[root@localhost abc]# ls
index.html #創建成功
[root@localhost abc]#
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #將dhcp改為static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8ecd53ce-afdb-46f8-b7ff-b2f428a3bc8f
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.120 #IP地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.200.1 #網關
[root@localhost ~]# systemctl restart network #重啟網絡服務
[root@localhost ~]# ifconfig #查看網卡信息,ip設置成功
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.120 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::c776:9d00:618:88f2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:eb:34:07 txqueuelen 1000 (Ethernet)
RX packets 13713 bytes 15997026 (15.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5590 bytes 452930 (442.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# systemctl stop firewalld.service #關閉防火墻
[root@localhost ~]# setenforce 0 #關閉增強性安全功能
[root@localhost ~]# systemctl start httpd.service #開啟http服務
[root@localhost ~]# netstat -ntap | grep 80 #查看端口
tcp6 0 0 :::80 :::* LISTEN 50572/httpd
[root@localhost ~]#
[root@localhost ~]# showmount -e 192.168.200.130
Export list for 192.168.200.130:
/usr/share *
/opt/xyz 192.168.200.0/24
/opt/abc 192.168.200.0/24
[root@localhost ~]#
[root@localhost ~]# mount.nfs 192.168.200.130:/opt/xyz /var/www/html/ #掛載
[root@localhost ~]# df -h #查看掛載信息
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda2 20G 3.4G 17G 17% /
devtmpfs 898M 0 898M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 18M 895M 2% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 10G 37M 10G 1% /home
/dev/sda1 6.0G 174M 5.9G 3% /boot
tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs 183M 40K 183M 1% /run/user/0
192.168.200.130:/opt/xyz 20G 3.3G 17G 17% /var/www/html #掛載成功
[root@localhost ~]#
web服務器2:
[root@localhost ~]# echo "this is xyz web" > /var/www/html/index.html #創建首頁文件
[root@localhost ~]#
存儲服務器:
[root@localhost abc]# cd ../xyz/
[root@localhost xyz]# ls
index.html #創建成功
[root@localhost xyz]#
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #將dhcp改為static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c96bc909-188e-ec64-3a96-6a90982b08ad
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.1 #IP地址
NETMASK=255.255.255.0 #子網掩碼
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36 #復制一份ens33的配置文件作為ens36配置文件
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #將dhcp改為static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36 #ens33改為ens36,并刪除UUID
DEVICE=ens36 #ens33改為ens36
ONBOOT=yes
IPADDR=12.0.0.1 #IP地址
NETMASK=255.255.255.0 #子網掩碼
[root@localhost network-scripts]# systemctl restart network #重啟網絡服務
[root@localhost network-scripts]# ifconfig #查看網卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.1 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::28ad:c7f1:25e8:8708 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:95:9b:1b txqueuelen 1000 (Ethernet)
RX packets 11757 bytes 12899133 (12.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4731 bytes 325771 (318.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 12.0.0.1 netmask 255.255.255.0 broadcast 12.0.0.255
inet6 fe80::10ce:358b:94ed:c4e9 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:95:9b:25 txqueuelen 1000 (Ethernet)
RX packets 130 bytes 10117 (9.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 178 bytes 30232 (29.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #開啟路由功能
[root@localhost ~]# sysctl -p #重新加載/etc/sysctl.conf中配置
net.ipv4.ip_forward = 1
[root@localhost ~]#
[root@localhost ~]# iptables -t nat -F #清除nat緩存
[root@localhost ~]# iptables -F #清除規則
[root@localhost ~]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.200.0/24 -j SNAT --to-source 12.0.0.1
#配置NAT轉換
[root@localhost ~]#
[root@localhost ~]# modprobe ip_vs #啟動模塊
[root@localhost ~]# cat /proc/net/ip_vs #查看服務信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost ~]# ipvsadm --save > /etc/sysconfig/ipvsadm #保存服務配置
[root@localhost ~]# systemctl start ipvsadm.service #開啟服務
[root@localhost ~]#
[root@localhost ~]# cd /opt/ #切換目錄
[root@localhost opt]# vim nat.sh #編輯腳本
#!/bin/bash
ipvsadm -C #清除內核虛擬服務器表中的所有記錄
ipvsadm -A -t 12.0.0.1:80 -s rr #增加一臺新的虛擬服務器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.110:80 -m #在虛擬服務器中增加一臺新的真實服務器。
ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.120:80 -m #在虛擬服務器中增加一臺新的真實服務器。
ipvsadm #開啟服務
[root@localhost opt]# source nat.sh #執行腳本
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:http rr
-> 192.168.200.110:http Masq 1 0 0
-> 192.168.200.120:http Masq 1 0 0
[root@localhost opt]#
ipvsadm相關可選項含義:
-A:在內核的虛擬服務器列表中添加一條新的虛擬服務器記錄。也就是增加一臺新的虛擬服務器。虛擬服務器地址由三元組唯一定義:IP地址,端口號和協議。虛擬服務器也可以由防火墻標記定義。
-C:清除內核虛擬服務器表中的所有記錄。
-a:在內核虛擬服務器表的一條記錄里添加一條新的真實服務器記錄。也就是在一個虛擬服務器中增加一臺新的真實服務器。
-t:說明虛擬服務器提供的是tcp 的服務。
-s:將TCP連接和UDP數據報分配給真實服務器的算法。
-m:使用偽裝(網絡訪問轉換或NAT)。
rr:輪詢,調度器通過”輪詢”調度算法將外部請求按順序輪流分配到集群中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數和系統負載。
wrr:加權輪詢,調度器通過”加權輪詢”調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。
lc:最少連接,當有新的作業到達時,調度器選擇一個當前作業量較少的真實服務器,并把新到達的作業分配給它。如果集群系統的真實服務器具有相近的系統性能,采用”最小連接”調度算法可以較好地均衡負載。
wlc:加權最小連接,將更多的作業分配給作業較少且相對于權重較高(Ci / Wi)的服務器。這是默認值。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。