标题提到了负载均衡和群集两个概念,首先得分别了解清楚负载均衡和群集的概念,接下来做一些简单的阐述
群集的类型:
负载均衡群集(Load Balance Cluster):以提高应用系统的响应能力尽可能处理更多的访问请求,减少延迟为目标,获得高并发、高负载的整体性能
高可用群集(High Availability Cluster):以提高应用系统的可靠性,达到高可用的容错效果
高性能运算群集(High Performance Computer Cluster):以提高应用系统的CPU运算速度,扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算能力
负载均衡的分层:
第一层,负载调度器:这是访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP(Virtual IP)地址
第二层,服务器池:群集所提供的所有应用服务都是由服务池承担,每个节点具有独立的RIP(Real IP),只处理调度器分发过来的客户机请求
第三层,共享存储:为服务器池中的所有节点提供稳定,确保整个群集的统一性
然后来看图说话:
负载均衡的分层大家了解之后很有必要牢记负载均衡的工作模式:
地址转换(Network Address Translation):NAT模式,说白了跟防火墙的NAT原理是一样的,与负载调度器位于同一个物理网络,安全性要优于其他两种方式,因为他们把真实的服务器隐藏在后面
IP隧道(IP Tunnel):TUN模式,适用于物理服务器分别在各地,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信
直接路由(Direct Routing):DR模式,采用半开放式的网络结构,负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道,访问速度快
接下来用示意图来方便理解:
接下来进入正题,了解LVS虚拟服务器:
Linux Virtual Server实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
LVS的负载调度算法:
轮询(Round Robin):将收到的请求均匀的分配给群集中的各个节点,而不管服务器实际的连接数和系统负载
加权轮询(Weighted Round Robin):比较人性化,调度器可以自动查询各个节点的负载情况,根据真实的处理能力分配收到的请求
最少连接(Least Connections):将收到的请求分配给连接数最少的节点,如果所有的服务器节点性能相近,采用这种方式比较好
加权最少连接(Weighted Least Connections):以上两种的综合体,适用于所有服务器节点的性能差异较大的情况下
以上概念性的东西已经了解的差不多了,接下来用两个实例来部署一下:
这种是地址转换模式
整体思路:
肯定是先把拓扑环境都部署好,通过NFS做好服务器的共享存储。然后安装LVS群集管理工具,做群集的管理工作的配置。注:本文档不做拓扑环境的部署
1.NFS的共享存储
NFS服务的实现依赖于RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
a.安装依赖包和主程序软件包
yum -y install nfs-utils rpcbind
chkconfig nfs on
chkconfig rpcbind on
b.设置共享目录
mkdir -p /opt/wwwroot
vim /etc/exports
/opt/wwwroot 192.168.1.0/24(rw,sync,no_root_squash)
rw:为读写权限
sync:表示同步写入
no_root_squash:表示当客户机以root身份访问时候,赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对待)
c.启动NFS服务即可
2.安装LVS群集管理工具
ipvsadm是在负载调度器上使用的LVS群集管理工具,通过调用ip_vs模块来添加、删除服务器节点,以及查看群集的运行状态
modprobe ip_vs
yum -y install ipvsadm
a. 配置负载调度器
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //开启转发
sysctl -p //让新添配置生效
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o etho -j SNAT --to-source 172.16.1.128
b.配置负载分配策略
service ipvsadm stop //清楚原有策略
ipvsadm -A -t 172.16.1.128:80 -s rr
ipvsadm -a -t 172.16.1.128:80 -r 192.168.1.1:80 -m -w 1
ipvsadm -a -t 172.16.1.128:80 -r 192.168.1.2:80 -m -w 1
ipvsadm -a -t 172.16.1.128:80 -r 192.168.1.3:80 -m -w 1
ipvsadm -a -t 172.16.1.128:80 -r 192.168.1.4:80 -m -w 1
service ipvsadm save //保存策略
ipvsadm -A -t 172.16.1.128:80 -s rr
-A 表示添加虚拟服务器
-t 用来指定VIP地址及端口号
-s 用来指定负载调度算法 ===> 轮询(rr)、加权轮询(wrr)、最少连接(lc)、加权最少连接(wlc)
ipvsadm -a -t 172.16.1.128:80 -r 192.168.1.1:80 -m -w 1
-a 表示添加真实服务器
-t 用来指定VIP地址及端口号
-r 用来指定RIP地址及端口号
-m 表示使用NAT群集模式
(-g 表示DR模式)
(-i 表示TUN模式)
-w 用来设置权重(权重为0时候表示暂停节点)
c. 配置节点服务器
安装好需要的web服务,最主要的就是挂载共享存储
mount 192.168.1.100:/opt/wwwroot /var/www/html
测试
从internet中直接访问http://172.16.1.128/即可
查看群集节点状态命令:
ipvsadm -ln