我们在上博文“运维工程师必备之负载均衡集群及LVS详解”中详细介绍了负载均衡和集群的基本理论和类别,此处不在详细介绍,在本篇博文中则主要以LB负载均衡集群的类别:NAT和DR模型的web网络架构进行实例介绍,以便我们进一步了解负载均衡集群的理论架构和应用场景!
一、架构平台环境:
平台:RedHat Enterprise Linux 5.8ipvsadmipvs相关服务和名字的定义:Director:负载调度集群的主机,也简称DRVIP:Virtual IP,向外提供服务的IPRIP:Real Server IP,内部真正提供服务的DIP:与内部主机通信的IP,在DR主机上CIP:客户端IP
二、架构类型模型的简介
⑴、NAT模型
NAT模型:地址转换类型,主要是做地址转换,类似于iptables的DNAT类型,它通过多目标地址转换,来实现负载均衡,一个Director最多负载提供10个Real Server主机
特点和架构要求:
1、LVS上面需要双网卡:DIP和VIP
2、内网的Real Server主机的IP必须和DIP在同一个网络中,并且要求其网关都需要指向DIP的地址
3、RIP都是私有IP地址,仅用于各个节点之间的通信
4、Director位于client和Real Server之间,负载处理所有的进站、出站的通信
5、支持端口映射
6、通常应用在较大规模的应用场景中,但Director易成为整个架构的瓶颈!
⑵、DR模型
DR模型:直接路由模型,每个Real Server上都有两个IP:VIP和RIP,但是VIP是隐藏的,就是不能提高解析等功能,只是用来做请求回复的源IP的,Director上只需要一个网卡,然后利用别名来配置两个IP:VIP和DIP
Director在接受到外部主机的请求的时候转发给Real Server的时候并不更改目标地址,只是通过arp解析的MAC地址进行封装然后转给Real Server,Real Server在接受到信息以后拆除MAC帧封装,然后直接回复给CIP。
企业中最常用的就是LB架构就是DR模型
特点和架构要求:
1、各个集群节点必须和Director在同一个物理网络中
2、RIP地址不能为私有地址,可以实现便捷的远程管理和监控
3、Director仅仅负责处理入站请求,响应报文则由Real Server直接发往客户端
4、集群节点Real Server 的网关一定不能指向DIP,而是指向外部路由
5、Director不支持端口映射
6、Director能够支持比NAT多很多的Real Server
注意:由于在负载均衡集群和高可用集群的时候要求服务器的时间必须一致,否则将会出现服务不协调等致命性的错误,我们这里把DR设置成为时间服务器,来为RS1和RS2提供时间校准,从而来保证负载均衡集群的正常运行!(关于时间服务器NTP-SERVER的搭建和配置我会在后两天的时间里发表博文详细介绍时间服务器的安装和配置),当然如果没有时间服务器也可以自己手动设置各个服务器的时间来保证时间的一致性!
三、LB基于LVS的web架构之NAT实现web服务的负载均衡
⑴、方案规划和架构图
Director需要两个网卡:DIP和VIP
RS上各需一个网卡即可
由于此处是在虚拟机中测试实验,为了便于实验和搭建,此处的CIP和VIP没有选择公网内的IP,现实的搭建中选择公网IP的时候路由会自动寻路的,这里选择同一个网络中是为了不在设置路由信息了。可以直接搭建环境进行测试
⑵、架构步骤
1、在web-RS1和web-RS2上分别按照设计设置IP地址和web服务,此处利用yum进行软件包的安装,便于解决软件包之间的依赖关系!(yum的安装和配置见:Linux系统常用的软件管理工具rpm、yum及软件源码编译安装)
WEB-RS1:
配置web1的RIP
vim /etc/sysconfig/network-scripts/ifcfg-eth0#编辑网络配置,配置如下DEVICE=eth0BOOTPROTO=staticONBOOT=yesIPADDR=192.168.7.3NETMASK=255.255.255.0GATEWAY=192.168.7.2
然后重启网络服务即可
service network restart
为了服务出问题,我们这里先把selinux给关闭了
时间校准:
ntpdate 192.168.7.2 #注意时间的同步,我这里把DR和NTPserver设置在了同一台服务器上了!若没ntp-server也可也手动设置时间,只要保证各个服务器之间的时间相同就行!
然后来安装我们的httpd服务吧!
yum –y install httpd #利用yum安装httpd服务
echo "web1.chris.com" > /var/www/html/index.html #设置主页内容
至此web1上的基本配置基本完成!下面在web2上进行相关的配置吧!
WEB-RS2
配置web2的RIP
vim /etc/sysconfig/network-scripts/ifcfg-eth0 #编辑网络配置,配置如下DEVICE=eth0BOOTPROTO=staticONBOOT=yesIPADDR=192.168.7.4NETMASK=255.255.255.0GATEWAY=192.168.7.2
然后重启网络服务即可
service network restart
关闭selinux
setenforce 0
永久关闭
vim /etc/selinux/config 设置内容SELINUX=permissive
校准时间
安装httpd服务
yum -y install httpd
echo "web2.chris.com" > /var/www/html/index.html #设置主页内容
至此我们web-RS2上的基本设置基本完成了
⑵、测试web-RS1和web-RS2上的web服务能够正常工作
在RS1和RS2上启动httpd服务:
service httpd start
在DR服务器上进行httpd的服务的测试:
⑶、DR上面的配置
使用双手头脑与心灵的是艺术家,只有合作双手