从本文开始试着学习配置LVS的NAT和DR两种模式

一、什么是集群
集群:用一组服务器,一起处理用户的请求
目的:提高性能,降低成本,可靠性,灵活性,可扩展性

二、集群的分类
负载均衡LB集群 (多台主机共同分担同一项任务)
高可用HA集群 (一主一背,当主不能提供服务时 备用服务器接替主提供服务)
高性能计算集群HPC(要来作运算,应用在一些专业领域:气象云图、地质勘探、航天航空)

三、LVS集群组成
前端:负载均衡层 由一台或多台负载读调度器构成

中间:服务器群组层 由一组实际运行应用服务的服务器组成

低端:数据共享存储层 提供共享存储空间的存储区域

四、LVS术语
Director Server :调度服务器 将负载分发到Real Sserver的服务器
Reak Server:真实服务器
VIP:虚拟ip地址 公布给用户访问的虚拟ip地址
RIP:真实ip地址 集群节点上使用的IP地址
DIP:调度器连接节点服务器的ip地址
CIP:客户端主机的IP地址

五、LVS工作模式
①NAT模式
网络地址转换模式
通过网络地址转换实现的虚拟服务器
大并发访问时,调度器的性能成为瓶颈

②DR:直连路由模式
直接使用路由技术实现虚拟服务器
节点服务器需要配置vip,注意MAC地址广播

③TUN:隧道模式
通过隧道方式实现虚拟服务器
两边都是私网地址,通过隧道通道实现通讯

六、LVS常用的调度算法
①轮询(Round Robin)RR 将客户端请求平均分发到Real Server
加权轮询(Weighted Round Roubin)WRR根据Real Server权重值进行轮询调度

②最少连接(Least Connections)LC 选择连接数最少的服务器
加权最少连接(Weighted Least Round Roubin)WLC 根据Real Server的权重值,连接数最少的服务器

③源地址散列(Source Hashing)SH
根据请求的目标ip地址,作为散列键从静态分配的散列表找对应的服务器
类似于nginx ip_hash 当同一个client地址来访问时,交给第一次处理此客户端请求的服务器

七、LVS-NAT部署
环境准备:
web10:
eth0:192.168.9.2 (rip)
web20:
eth0:192.168.9.3 (rip)
LVS:
eth0:192.168.9.253 (dip)
eth1:192.168.2.253 (vip)
client:
eth0:192.168.2.5 (cip)
(pass:本文使用的redhat7系统,新建网卡名称是eno16777736,后面手动修改成了eth0,关于网卡名称修改的内容,有兴趣的朋友可以看一下https://blog.51cto.com/13843380/2428253)

1、环境配置

①准备网站服务器
分别在web10和web20上安装nginx服务,新建页面test.xml
web10
echo haha > /usr/local/nginx/html/test.html
web20
echo xixi > /usr/local/nginx/html/test.html

②开启分发器的内核路由转发功能(能够收发来自不同网络的包)
lvs
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 默认为0 开启内核路由转发功能
sysctl -p 打印以下配置文件内容

③分别给机器设置各自的网关
client10
vim /etc/sysconfig/network-scripts/ifcfg-eht0
GATEWAY=192.168.2.253

web10和web20
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=192.168.9.253

④所有机器关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

2、配置分发器

①装包ipvsadm
链接:https://pan.baidu.com/s/1NC44AmZ2IjBAZbryy1t3bA
提取码:uqao

cd /packages/lvs/;rpm -ivh ipvsadm-1.26-4.el6.x86_64.rpm

②添加虚拟服务
ipvsadm 用法
-A 添加虚拟服务
-D 删除虚拟服务
-C 清除虚拟服务
-t 设置集群地址
-s 指定负载调度算法
-L 查看虚拟服务列表
-n 用number形式表示
-E 修改调度器算法

ipvsadm -A -t 192.168.2.253:80 -s rr

ipvsadm -Ln
LVS系列一NAT模式_第1张图片

③向虚拟服务中添加real server
ipvsadm
-a 添加真实服务器
-d 删除真实服务器
-r 指定真实服务器的地址
-m 使用NAT模式
-g DR模式 不指定默认时DR
-i TUN模式
-w 为节点服务器设置权重,默认为1
-E 修改调度器算法
-e 修改real server的权重值
--stats 详细信息

ipvsadm -a -t 192.168.2.253:80 -r 192.168.9.2:80 -m

ipvsadm -a -t 192.168.2.253:80 -r 192.168.9.3:80 -m

/etc/init.d/ipvsadm save 保存以下配置

ipvsadm -Ln

LVS系列一NAT模式_第2张图片

3.客户端测试

①安装elinks命令行浏览器访问网站
yum -y install elinks
LVS系列一NAT模式

LVS系列一NAT模式_第3张图片

②安装ab压力测试命令

yum -y install httpd-tools

ab -c 10 -n 1000 192.168.2.253:80/1.html
-c:指定一次向服务器发出请求数
-n:指定测试会话使用的请求数

LVS系列一NAT模式_第4张图片

基本管理命令:
删除real server
ipvsadm -d -t 虚拟服务ip地址 -r real server服务ip地址

修改虚拟服务的调度器算法
ipvsadm -E -t 虚拟服务ip地址 -s 调度算法

修改real server的权重值 权重值得实现,必须调度算法是加权轮询wrr

ipvsadm -e -t 虚拟服务的ip地址 -r real server服务ip地址 -w 权重值 -m

删除虚拟服务
ipvsadm -D -t 虚拟服务ip地址