LINUX负载均衡LVS-NAT搭建

 2023-09-05 阅读 296 评论 0

摘要:1.搭建前的规划工作 这里从lvs官方网站找了一个nat模型的图,如下: 我这里使用虚拟机模拟出了4台rhel6机器。一台服务器作为lvs调度器(40网段使用的都是仅主机模式,168网段使用桥接模式),3台服务器作为具体的web服务器(使用仅

1.搭建前的规划工作

这里从lvs官方网站找了一个nat模型的图,如下:

我这里使用虚拟机模拟出了4台rhel6机器。一台服务器作为lvs调度器(40网段使用的都是仅主机模式,168网段使用桥接模式),3台服务器作为具体的web服务器(使用仅主机模式),我本是的宿主机就是作为web测试机器。

具体配置如下

机器名称ip配置ip配置附加备注信息
lvs调度器192.168.40.200192.168.168.200有2个网卡地址,
RS1192.168.40.201 和lvs的第一个ip地址,rs2,rs3属于同一网段
RS2192.168.40.202 和lvs的第一个ip地址,rs2,rs3属于同一网段
RS3192.168.40.203 和lvs的第一个ip地址,rs2,rs3属于同一网段
宿主机 192.168.168.10和lvs的第二个ip地址属于同一网段

配置好上面的环境,确保同一个网段的主机可以相互ping的通。 这里都先关闭防火墙和selinux设置。

2.检查操作系统支持lvs情况

[root@localhost ~]# grep -i 'vs' /boot/config-2.6.32-279.el6.i686      #有输出说明支持,我们使用的rhel6,默认的编译就有lvs模块。

3.安装ipvsadm工具

[root@localhost ~]# yum -y install ipvsadm

4.ipvsadm工具的简单使用

ipvsadm:管理集群服务添加:-A -t|u|f service-address [-s scheduler]-t: TCP协议的集群 -u: UDP协议的集群service-address:     IP:PORT-f: FWM: 防火墙标记 service-address: Mark Number修改:-E删除:-D -t|u|f service-address# ipvsadm -A -t 172.16.100.1:80 -s rr管理集群服务中的RS添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]-t|u|f service-address:事先定义好的某集群服务-r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;[-g|i|m]: LVS类型    -g: DR模型-i: TUN模型-m: NAT模型[-w weight]: 定义服务器权重修改:-e删除:-d -t|u|f service-address -r server-address# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m # ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m查看-L|l-n: 数字格式显示主机地址和端口--stats:统计数据--rate: 速率--timeout: 显示tcp、tcpfin和udp的会话超时时长-c: 显示当前的ipvs连接状况删除所有集群服务-C:清空ipvs规则保存规则-S # ipvsadm -S > /path/to/somefile载入此前的规则:-R# ipvsadm -R < /path/form/somefile

 5.设置所有的RS服务器的网关为调度器的ip地址

[root@localhost ntpstats]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
#修改网关为调度器的ip地址
GATEWAY=192.168.40.200
#三个rs服务器都需要设
确保在各个RS服务的路由信息的正确性
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.40.0    *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.40.200  0.0.0.0         UG    0      0        0 eth

6.给那个RS服务器安装http服务并测试

[root@localhost ntpstats]# yum install httpd              #每个rs服务器都安装httpd服务
[root@localhost ntpstats]# service httpd restart          #每个rs服务器都重新启动
[root@localhost ntpstats]# echo rs1> /var/www/html/index.html  #给rs1服务器创建一个主页,只在rs1上执行
[root@localhost ntpstats]# echo rs2> /var/www/html/index.html  #给rs2服务器创建一个主页,只在rs2上执行
[root@localhost ntpstats]# echo rs2> /var/www/html/index.html  #给rs3服务器创建一个主页,只在rs3上执行
#接下来使用在调度器lvs服务器先测试下各个页面是否可以正常访问
[root@localhost ~]# elinks -source 192.168.40.201
rs1
[root@localhost ~]# elinks -source 192.168.40.202
rs2
[root@localhost ~]# elinks -source 192.168.40.203
rs3

7.创建LVS

[root@localhost ~]# ipvsadm -A -t 192.168.168.200:80 -s rr              #创建一个集群服务,调度算法rr,
[root@localhost ~]# ipvsadm -a -t 192.168.168.200:80 -r 192.168.40.201 -m    #添加rs1 nat方式
[root@localhost ~]# ipvsadm -a -t 192.168.168.200:80 -r 192.168.40.202 -m    #添加rs2 nat方式
[root@localhost ~]# ipvsadm -a -t 192.168.168.200:80 -r 192.168.40.203 -m    #添加rs3 nat方式

 

8.打开ip转发机制

调度器要能访问168,40两个网段的,需要打开ipforward功能。

[root@localhost ~]# echo 1 >/proc/sys/net/ipv4/ip_forward #打开ipv的ip转发机制,当前生效
[root@localhost ~]# vim /etc/sysctl.conf 
#打开ipv的ip转发机制,永久生效
net.ipv4.ip_forward = 1

9. 确保集群的时间不能太大

这里建议在调度器lvs上安装ntp服务,其他RS服务器来同步时间

10.我们使用宿主机进行测试

浏览器输入http://192.168.168.200,不断刷新,就可以看到如下的三个图片信息。测试成功后,就可以把三个RS服务器页面做成一样的啦。

宿主机测试量太小了。 我们直接在调度器上使用ab命令测试下

[root@localhost ~]# ab -n 10000 -c 200 http://192.168.168.200/index.html
[root@localhost ~]# ipvsadm -L -n --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS-> RemoteAddress:Port
TCP  192.168.168.200:80                168      838      837    60477    90073-> 192.168.40.201:80                  56      279      279    20154    30036-> 192.168.40.202:80                  56      280      278    20162    29991-> 192.168.40.203:80                  56      279      279    20160    30045

上面可以看到,3个RS的任务是基本一样多的。

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/713.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息