博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建lvs集群NAT模式
阅读量:3961 次
发布时间:2019-05-24

本文共 3715 字,大约阅读时间需要 12 分钟。

文章目录

规划工作

在这里插入图片描述

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

机器名称 ip配置 ip配置附加 备注信息
lvs调度器 192.168.40.200 192.168.168.200 有2个网卡地址,
RS1 192.168.40.201 和lvs的第一个ip地址,rs2,rs3属于同一网段
RS2 192.168.40.202 和lvs的第一个ip地址,rs2,rs3属于同一网段
RS3 192.168.40.203 和lvs的第一个ip地址,rs2,rs3属于同一网段
RS4 192.168.168.10 和lvs的第二个ip地址属于同一网段

ipvsadm

#检查操作系统支持lvs情况grep -i 'vs' /boot/config-2.6.32-279.el6.i686      #有输出说明支持,我们使用的rhel6,默认的编译就有lvs模块。#安装ipvsadm工具yum -y install ipvsadm#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

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

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

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

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

创建LVS

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

打开ip转发机制

#调度器要能访问168,40两个网段的,需要打开ipforward功能。echo 1 >/proc/sys/net/ipv4/ip_forward #打开ipv的ip转发机制,当前生效vim /etc/sysctl.conf #打开ipv的ip转发机制,永久生效net.ipv4.ip_forward = 1

确保集群的时间不能太大

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

我们使用宿主机进行测试

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

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

ab -n 10000 -c 200 http://192.168.168.200/index.htmlipvsadm -L -n --rateIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS  -> RemoteAddress:PortTCP  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

转载地址:http://mmezi.baihongyu.com/

你可能感兴趣的文章
记一次解决jenkins持续构建,自动部署的问题
查看>>
敏捷开发实践(2)-要不要文档?
查看>>
《java系统性能调优》--2.缓存
查看>>
JAVA注解引发的思考
查看>>
写博意味着什么
查看>>
比较Cint() , int() , fix() ,round()的区别
查看>>
举例说明常用字符串处理函数
查看>>
软件生存期模型
查看>>
制定计划(问题的定义,可行性研究)
查看>>
需求分析
查看>>
软件设计
查看>>
程序编码
查看>>
软件测试
查看>>
软件维护
查看>>
软件项目管理
查看>>
面向过程的分析方法
查看>>
软件设计基础
查看>>
UML的基本结构
查看>>
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
查看>>
用例图(UseCase Diagram)—UML图(一)
查看>>