LVS
Cluster,集群,群集
有多台主机构成,对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机
特点:由堕胎主机构成,都干同一件事,对外展现为一个整体
集群分类#
根据集群针对的目标差异,可分为三种类型
负载均衡集群 (LB)
提高系统响应效率,处理更多的访问请求,减少响应延迟,实现高并发,高负载的能力。
典型代表:软件类(nginx LVS Haproxy SLB) 硬件类(F5 绿盟)
高可用集群 (HA)
提高系统的可靠性,减少中断时间,确保服务的连续性 (通常使用 N 个 9 代表高可用的而指标。)3个9 99.9% 一年连续服务的时间99.9%的时间,中断时间0.1% <font color='red'>非关键业务三个9 或四个9</font>
典型代表:Keepalived heartbeat
高性能运算集群 (HPC)
通过云计算或分布式计算获取高性能的CPU、内存等资源,来提高整体运算能力
负载均衡集群(Load Balance Cluster)
提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发,高负载(LB)的整体性能
LB的负载分配依赖于主节点的分流算法,将来自客户机的访问<font color='red'>请求分担给多个服务器节点</font>,从而缓解而整个系统的负载压力,如DNS询,反向代理等
负载均衡集群架构#
第一层,负载调度器(Load Balancer或Director)访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集IP 地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。
. 第二层,服务器池 (Server Pool)
群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址 (真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池 . 第三层,共享存储 (Share Storage)为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性共享存储可以使用 NAS设备,或者提供 NFS共享服务的专用服务器.
LVS的三种工作模式#
1)NAT 地址转换
调度器会作为所欲节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,所以调度器会承受双向流量的负载压力,可能会为整个群集的性能瓶颈。由于节点服务器都会处于内网环境,使用私网IP,所以具有一点的安全性。
2)TUN IP隧道 ip Tunnel
调度器仅作为客户端的访问入口,节点服务器的响应信息时直接返回客户端的,不需要经过调度器,但是由于节点服务器需要部署在不同的公网环境,所以要有独立的公网IP,而且调度器与节点服务器时通过专用的IP隧道实现相互通信,因此IP隧道模式的成本较高,安全性较低,且数据在IP隧道传输过程中需要额外的封装和解放装。性能也会受到一定的影响。
3)DR 直接路由 Direct Routing
调度器仅作为客户端的访问入口,节点服务器的响应消息是直接而返回客户端,不需要经过调度器。 (与NAT模式的区别)
节点服务器与调度器时部署在同规格物理网络里,因此不需要建立专用的IP隧道 (与IP隧道模式的区别)
DR模式时企业首选的LVS 模式
LVS的负载调度算法#
轮询 (Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器)均等地对待每一台服务器,而不管服务器实际的连接数和系统负载加权轮询(Weighted Round Robin)根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
保证性能强的服务器承担更多的访问流量
最少连接 (Least Connections)
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
加权最少连接(Weighted Least Connections)
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重性能较高的节点将承担更大比例的活动连接负载
LVS调度算法 rr (轮询) wrr (加权轮询) sh(源地址哈希) dh(目的地址哈希) lc(最小连接) wlc(加权最小链家) lblc(基于地址的最小连接) wlc(加权最小链家):优先分配请求给<连接数>/<权重值>的值最小的节点服务器 lblc(基于地址的最小连接):优先根据目的地址哈希将请求分配给同样一个节点服务器,若此节点服务器满负荷了,则优先将请求分配给当前连接数最小的节点服务器
ipcsadm工具#
yum安装
创建虚拟服务器
添加或删除节点服务器
查看集群及节点请况
保存负载分配策略
-A:添加虚拟服务器 -D:删除整个虚拟服务器 -s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc) -a:表示添加真实服务器(节点服务器) -d:删除某一个节点 -t:指定 VIP地址及 TCP端口 -r:指定 RIP地址及 TCP端口 -m:表示使用 NAT群集模式 -g:表示使用 DR模式 -i:表示使用 TUN模式 -w:设置权重(权重为 0 时表示暂停节点) 默认权重为1 -p 60:表示保持长连接60秒(默认关闭连接保持) -l:列表查看 LVS 虚拟服务器(默认为查看所有) -n:以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln [-t ]
LVS-NAT模式#
1)部署NFS共享存储
2)部署web节点服务器,注意:节点服务器的默认网关 要指向调度器的内网IP,测试时候可关闭连接保持
3)部署调度器,配置双网卡,开启IP路由转发功能,如果内网中的节点服务器需要访问外网则需要配置SNAT规则,安装ipvsadm工具,添加虚拟服务器和真实服务器的相关配置 ,使用(-m)选项选择NAT 模式
4)客户端配置设置默认网关指向节点调度器的外网IP并使用客户端工具测试
#准备四个服务器,22是负载调度器,23,28是节点服务器,24是共享存储
共享存储#
#创建两个目录
#给新创建的目录权限
#重定向输出到新建目录下创建index.html下
#给两个创建的目录,可写可读权限,同步
#刷新比详细显示
#开启rpcbind和nfs
节点服务器#
#安装httpd
#开启http
#开启rpc和nfs
#永久挂载
#指定共享存储服务器IP,opt下的kgc 挂载目录 指定nfs服务,参数 第一个0不备份,第2个0开机不自检
#刷新挂载
#查看挂载情况
#去28节点服务器配置与23服务器一样。永久挂载不一样
#修改网卡配置
#网关指向负载调度器的IP
#另一个节点服务器也是指向负载调度器的IP
#重启网络
配置负载调度器#
#给22设配器添加个网卡
#复制ens33 名为ens36
#修改网卡配置
#重启网络
#编辑内核参数配置文件
#添加路由
#删除所有规则
#指定规则
#加载ip_vs模块
#安装ipvsadm
#启动服务器需保存负载策略
ipvsadm –save > /etc/sysconfig/ipvsadm 另一种保存
#开启ipvsadm
#清空所有策略
#指定外网接口 80端口 -s 轮询
#启用策略
#保存策略
#打开虚拟window ping几个网卡
#访问调度器的外网端口
#刷新一下