群集

群集表示大量服务器的集合体,以区分于单个服务器。通常只提供一个访问入口(域名或者IP地址),对外表现为一个整体。

群集的三种类型:

  1. 负载均衡群集: 以提高应用系统的响应能力,尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整理性能。例如,DNS轮询、应用层交换、反向代理。
  2. 高可用群集: 以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用的容错效果。例如,故障切换、双机热备、多机热备。
  3. 高性能运算群集: 以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算能力。例如,云计算、网格计算。高性能运算群集的高性能依赖于分布式运算和并行计算,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。

负载均衡的分层结构:

典型的负载均衡群集中,包括三个层次的组件。前端至少有一个负载调度器负责响应并分发来自客户端的访问请求,后端有大量真实服务器构成的服务器池来提供实际的应用服务,整个群集的伸缩性通过增加、删除服务器节点来完成,而这些过程对客户机是透明的,为了保持服务的一致性,所有节点使用共享存储设备。

  • 第一层,负载调度器:这是整个群集的唯一入口,对外使用所有服务器共有的VIP(虚拟IP)地址,也称为群集IP地址。
  • 第二层,服务器池:群集所提供的应用服务由服务器池承担,其中的每个节点具有独立的RIP(真实IP)地址,只处理调度器分发来的客户机请求。
  • 第三层,共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。

负载均衡的工作模式

群集的负载调度技术可以基于IP、端口、内容等进行分发,其中基于IP的效率最高。基于IP的负载均衡模式中,常见的有地址转换、IP隧道和直接路由三种工作模式

  • 地址转换:简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有IP地址与负载调度器位于同一个物理网络,安全性要优于其他方式。
  • IP隧道:简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器。服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信。
  • 直接路由:简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。

在以上三种模式中,NAT方式只需要一个公网IP地址,从而成为最易用的一种负载均衡模式,安全性也比较好,许多硬件负载均衡设备就是采用这种方式;相比较而言,DR模式和TUN模式的负载能力更加强大、适用范围更广,但是节点的安全性要稍差一些。

LVS虚拟服务器

LVS虚拟服务器是针对Linux内核开发的一个负载均衡项目,它实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法。
LVS现在已经是Linux内核的一部分,默认编译为ip_vs模块,必要时能够自动调用。

系统环境

  • 负载调度器(网关):内网:192.168.100.1 外网:12.0.0.1
  • web服务器1:192.168.100.26 web:apache
  • web服务器2:192.168.100.27 web:apache
  • NFS服务器(存储):192.168.100.29
  • win7客户端:12.0.0.10

NFS服务器:192.1688.100.29

1. 安装(默认已经安装)

#先查询系统是否已经安装该软件包
rpm -q nfs-utils rpcbind

LVS负载均衡群集---NAT模式

2. 没有安装,则使用以下命令安装

yum install -y nfs-utils rpcbind

3. 启动服务

systemctl start rpcbind.service
systemctl restart nfs.service

4. 创建共享目录并修改用户权限

mkdir -p /data/web1 /data/web2
chmod 777 /data/web1 /data/web2

5. 编辑配置文件

vi /etc/exports

/data/web1 192.168.100.0/24(rw,sync) #192.168.100.0/24网段可以读写、同步/data/web1目录
/data/web2 192.168.100.0/24(rw,sync) #192.168.100.0/24网段可以读写、同步/data/web2目录

6. 发布共享

exportfs -rv

LVS负载均衡群集---NAT模式

7. 关闭防火墙及selinux

setenforce 0
systemctl stop firewalld.service

web服务器1:192.168.100.26

1. 安装apache

yum install -y httpd

2. 客户端查看、挂载

showmount -e 192.168.100.29
mount.nfs 192.168.100.29:/data/web1 /var/www/html

3. 创建默认首页文件

echo "<h1>this is web1 site.</h1>" > /var/www/html/index.html

4. 启动服务

systemctl enable httpd.service
systemctl start httpd.service

5. 关闭防火墙及selinux

setenforce 0
systemctl stop firewalld.service

测试

LVS负载均衡群集---NAT模式


web服务器2:192.168.100.27 web:apache

1. 安装apache

yum install -y httpd

2. 客户端查看、挂载

showmount -e 192.168.100.29
mount.nfs 192.168.100.29:/data/web2 /var/www/html

3. 创建默认首页文件

echo "<h1>this is web2 site.</h1>" > /var/www/html/index.html

4. 启动服务

systemctl enable httpd.service
systemctl start httpd.service

5. 关闭防火墙及selinux

setenforce 0
systemctl stop firewalld.service

测试

LVS负载均衡群集---NAT模式


负载调度器(网关):外网:12.0.0.1 内网:192.168.100.1

1. 开启路由转发功能

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

2. 使配置生效

sysctl -p

3. 清空防火墙及设置snat地址转换

iptables -t nat -F
iptable -F
iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100.0/24 -j SNAT --to-sourcec 12.0.0.1

4. 加载LVS内核模块

modprobe ip_vs

5. 查看ip_vs模块版本

cat /proc/net/ip_vs

LVS负载均衡群集---NAT模式

6. 安装管理软件

rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

7. centos7之后必须先保存后才可以启动服务,不然会报错

ipvsadm-save  > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

8. 创建虚拟服务器

#清空
ipvsadm -C
#添加虚拟服务器采用rr(轮询)的负载均衡算法
ipvsadm -A -t 12.0.0.1:80 -s rr
#添加真实服务器节点,分别为web1、web2服务器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.26:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.27:80 -m

9. 查看群集节点状态(Masq:表示群集模式为NAT;若为Router则表示为DR模式)

ipvsadm -ln

LVS负载均衡群集---NAT模式

10. 关闭selinux

setenforce 0

测试

win7测试客户机:
LVS负载均衡群集---NAT模式
客户机能够ping通调度服务器
LVS负载均衡群集---NAT模式
客户机对调度服务器进行访问,已实现了轮询访问
LVS负载均衡群集---NAT模式

LVS负载均衡群集---NAT模式