一、簡介
1、理論已經在上一篇博客簡述,不了解得可以看看
https://www.cnblogs.com/zhangxingeng/p/10497279.html
2、LVS-NAT優缺點復習
關於這種模式
1、RIP和DIP一般處於同一私有網段中。但並非必須,RS的網關要指向DIP,這樣能保證將響應數據交給Director
2、支持端口映射,可修改請求報文的目標端口;
3、VS/NAT模式的最大缺點使Director負責所有進出數據:不僅處理客戶端發起的請求,還負責將響應傳輸給客戶端。而響應數據一般比請求數據大得多,調度器Director容易出現瓶頸。(也就是像7層負載的處理方式一樣,但卻沒有7層負載那么多功能)
4、vs必須使linux系統,RS可以是任何系統
缺點:在整個過程中,所有輸入輸出的流量都要經過LVS調度器,調度器網絡I/O壓力就會非常大,因此很容易稱為瓶頸,特別使對請求流量很小,而響應流量很大的web類應用來說更為如此;
優點:NAT模式配置管理簡單,由於使用了NAT技術,LVS調度器及應用服務器可以在不同網段中,網絡架構靈活,應用服務器只需要進行簡單的網絡設定即可加入集群。
3、實驗拓撲
說明:虛擬機做實驗有關網段的設計,Director調度器需要配置兩塊網卡,我們CIP和VIP可以用NAT模式,DIP、RS、NFS可以用僅主機模式。
二、開始部署
1、網絡配置
添加網卡后別忘了點擊設備狀態“已連接”
1 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37 2 TYPE="Ethernet" 3 BOOTPROTO="static" 4 DEFROUTE="yes" 5 IPV4_FAILURE_FATAL="no" 6 IPV6INIT="yes" 7 IPV6_AUTOCONF="yes" 8 IPV6_DEFROUTE="yes" 9 IPV6_FAILURE_FATAL="no" 10 IPV6_ADDR_GEN_MODE="stable-privacy" 11 NAME="ens37" 12 UUID="4f788070-131a-4f10-85a8-179b4f14gg48" 13 DEVICE="ens37" 14 ONBOOT="yes" 15 DNS1=192.168.13.2 16 IPADDR=192.168.13.11 17 #PREFIX=24 18 GATEWAY=192.168.13.2 19 IPV6_PEERDNS=yes 20 IPV6_PEERROUTES=yes 21 ~ 22 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 23 TYPE="Ethernet" 24 BOOTPROTO="static" 25 DEFROUTE="yes" 26 IPV4_FAILURE_FATAL="no" 27 IPV6INIT="yes" 28 IPV6_AUTOCONF="yes" 29 IPV6_DEFROUTE="yes" 30 IPV6_FAILURE_FATAL="no" 31 IPV6_ADDR_GEN_MODE="stable-privacy" 32 NAME="ens33" 33 UUID="4f788080-131a-4f10-85a8-179b4f14ab48" 34 DEVICE="ens33" 35 ONBOOT="yes" 36 DNS1=192.168.216.2 37 IPADDR=192.168.216.51 38 PREFIX=24 39 GATEWAY=192.168.216.2 40 IPV6_PEERDNS=yes 41 IPV6_PEERROUTES=yes
#在添加一塊網卡后,沒有網卡設置,請按照自己得ip自行配制即可
42 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37
43 TYPE="Ethernet"
44 BOOTPROTO="static"
45 DEFROUTE="yes"
46 IPV4_FAILURE_FATAL="no"
47 IPV6INIT="yes"
48 IPV6_AUTOCONF="yes"
49 IPV6_DEFROUTE="yes"
50 IPV6_FAILURE_FATAL="no"
51 IPV6_ADDR_GEN_MODE="stable-privacy"
52 NAME="ens37"
53 UUID="4f788070-131a-4f10-85a8-179b4f14gg48"
54 DEVICE="ens37"
55 ONBOOT="yes"
56 DNS1=192.168.13.2
57 IPADDR=192.168.13.11
58 #PREFIX=24
59 GATEWAY=192.168.13.2
60 IPV6_PEERDNS=yes
61 IPV6_PEERROUTES=yes
2、關閉防火牆及selinux
1 systemctl stop firewalld 2 3 systemctl disable firewalld 4 5 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
3、安裝軟件
1 51上安裝ipvsadm 2 yum install ipvsadm -y 3 12、13安裝httpd 4 yum install httpd -y 5 14上安裝nfs,rpcbind 6 yum install nfs-utils rpcbind -y
4、配置web2、web3的網關改為192.168.13.11
1 web2 2 3 echo "welcom to web2" >/var/www/html/index.html 4 5 web3 6 echo "welcom to web3" >/var/www/html/index.html 7 兩台同時配置網關
響應報文的目標地址是CIP,所以RS網關需要執行Director的DIP
8 route add default gw 192.168.13.11 9 systemctl restart httpd 10 systemctl enable httpd 11
5、配置director調度器
1 2 3 4 5 開啟轉發功能
director接收到CIP的數據包,需要轉發給RS處理,接着VIP收到數據需要轉發DIP,所以需要開啟轉發功能 6 7 echo 1 > /proc/sys/net/ipv4/ip_forward 8 9 配置負載調度器SNAT轉發規則 10 ipvsadm -A -t 192.168.216.51:80 -s rr 11 ipvsadm -a -t 192.168.216.51:80 -r 192.168.13.12:80 -m -w 1 12 ipvsadm -a -t 192.168.216.51:80 -r 192.168.13.13:80 -m -w 1 13 檢查規則 14 ipvsadm -Ln 15 16 17 18 [root@web1 ~]# ipvsadm -Ln 19 IP Virtual Server version 1.2.1 (size=4096) 20 Prot LocalAddress:Port Scheduler Flags 21 -> RemoteAddress:Port Forward Weight ActiveConn InActConn 22 TCP 192.168.216.51:80 rr 23 -> 192.168.13.12:80 Masq 1 0 0 24 -> 192.168.13.13:80 Masq 1 0 0 25 [root@web1 ~]#
6、測試功能
director調度器上基本測試
ping兩台RS,並訪問web
1 [root@web1 ~]# ping 192.168.13.12 2 PING 192.168.13.12 (192.168.13.12) 56(84) bytes of data. 3 64 bytes from 192.168.13.12: icmp_seq=1 ttl=64 time=0.683 ms 4 64 bytes from 192.168.13.12: icmp_seq=2 ttl=64 time=2.15 ms 5 ^C 6 --- 192.168.13.12 ping statistics --- 7 2 packets transmitted, 2 received, 0% packet loss, time 1001ms 8 rtt min/avg/max/mdev = 0.683/1.418/2.153/0.735 ms 9 [root@web1 ~]# ping 192.168.13.13 10 PING 192.168.13.13 (192.168.13.13) 56(84) bytes of data. 11 64 bytes from 192.168.13.13: icmp_seq=1 ttl=64 time=0.654 ms 12 64 bytes from 192.168.13.13: icmp_seq=2 ttl=64 time=0.589 ms 13 ^C 14 --- 192.168.13.13 ping statistics --- 15 2 packets transmitted, 2 received, 0% packet loss, time 1000ms 16 rtt min/avg/max/mdev = 0.589/0.621/0.654/0.040 ms 17 [root@web1 ~]# curl 192.168.13.12 18 welcom to web2 19 [root@web1 ~]# curl 192.168.13.13 20 welcom to web3
21 [root@web1 ~]#
client上訪問192.168.216.51
1 [root@web5 ~]# curl 192.168.216.51 2 welcom to web3 3 [root@web5 ~]# curl 192.168.216.51 4 welcom to web2 5 [root@web5 ~]# curl 192.168.216.51 6 welcom to web3 7 [root@web5 ~]# curl 192.168.216.51 8 welcom to web2
7、配置后端共享存儲NFS
前面已經安裝了程序包這里只需要配置
1 #設置共享目錄,權限 2 [root@web4 cdrom]# mkdir -p /data/www/ 3 [root@web4 cdrom]# vim /etc/exports 4 /data/www 192.168.13.0/24(ro,sync,no_root_squash) 5 #設置index.html文件 6 [root@web4 cdrom]# cd /data/www/ 7 [root@web4 www]# echo "this is www data" index.html 8 #啟動並開機自啟 9 [root@web4 cdrom]# systemctl start rpcbind 10 [root@web4 cdrom]# systemctl start nfs 11 [root@web4 cdrom]# systemctl enable rpcbind 12 [root@web4 cdrom]# systemctl enable nfs 13 #查看可掛載目錄,13網段其他機器也可以使用測試 14 [root@web4 www]# showmount -e 192.168.13.14 15 Export list for 192.168.13.14: 16 /data/www 192.168.13.0/24
測試
web2、web3執行掛載
1 [root@web2 yum.repos.d]# showmount -e 192.168.13.14 2 Export list for 192.168.13.14: 3 /data/www 192.168.13.0/24 4 [root@web2 yum.repos.d]# mount 192.168.13.14:/data/www /var/www/html
client測試
1 root@web5 ~]# curl 192.168.216.51 2 this is www data 3 [root@web5 ~]# curl 192.168.216.51 4 this is www data 5 [root@web5 ~]# curl 192.168.216.51 6 this is www data 7 [root@web5 ~]# curl 192.168.216.51 8 this is www data 9 [root@web5 ~]# curl 192.168.216.51 10 this is www data 11 [root@web5 ~]# curl 192.168.216.51 12 this is www data
調度器上可以看到統計信息及連接條目
1 [root@web1 ~]# ipvsadm -ln --stats #統計信息 2 IP Virtual Server version 1.2.1 (size=4096) 3 Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes 4 -> RemoteAddress:Port 5 TCP 192.168.216.51:80 55 327 212 21634 25072 6 -> 192.168.13.12:80 27 162 108 10746 12751 7 -> 192.168.13.13:80 28 165 104 10888 12321 8 [root@web1 ~]# ipvsadm -lnc #連接條目 9 IPVS connection entries 10 pro expire state source virtual destination 11 TCP 01:53 TIME_WAIT 192.168.216.55:56712 192.168.216.51:80 192.168.13.12:80 12 TCP 01:56 TIME_WAIT 192.168.216.55:56724 192.168.216.51:80 192.168.13.12:80 13 TCP 01:56 TIME_WAIT 192.168.216.55:56716 192.168.216.51:80 192.168.13.12:80 14 TCP 01:56 TIME_WAIT 192.168.216.55:56718 192.168.216.51:80 192.168.13.13:80 15 TCP 01:56 TIME_WAIT 192.168.216.55:56722 192.168.216.51:80 192.168.13.13:80 16 TCP 01:56 TIME_WAIT 192.168.216.55:56720 192.168.216.51:80 192.168.13.12:80 17 TCP 01:55 TIME_WAIT 192.168.216.55:56714 192.168.216.51:80 192.168.13.13:80 18 [root@web1 ~]#
轉載請注明出處:https://www.cnblogs.com/zhangxingeng/p/10538679.html