企业群集应用
1. 群集的含义
1.1Cluster,群集,集群
2.1由多台主机构成,但对外,只表现为一个整体,只提供一个访问入口(域名或ip地址), 相当于一台大型计算机
2.问题出现
互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求
3.解决办法
1.使用价格昂贵的小型机、大型机
2.使用多台相对廉价的普通服务器构建服务群集
通过整合多台服务器,使用LVS来达到服务器的高可用和负载均衡,并以同一个ip地址 对外提供相同的服务。在企业中常用的一种群集技术——LVS(linux virtual server, linux虚拟服务器)
4.群集的分类
1.负载均衡群集 (LB)
2.高可用群集 (HA)
3.高性能运算群集(HPC)
5.负载均衡群集架构
调度器既作为客户端访问入口也作为各节点服务器访问出口承载的流量较大
1.第一层,负载调度器:对外,由调度器服务器提供一个VIP(群集ip地址)作为访问整个群集的唯一入口,对内,按照分流算法分发流量/请求给服务器池。通常会配置主备两台调度器实现热备份,确保高可用性
2.第二层,节点服务器池:能允许所有服务器的资源通过,每个节点都具有独立的RIP地址(真实ip),处理调度器分发过来的客户机请求
3.第三层,共享存储:共享存储为服务器提供存储空间,可以使用NAS设备或者提供NFS共享服务的专用服务器
6.负载均衡群集工作模式分析
1.地址转换(NAT模式)
2.IP隧道 (TUN模式)
3.直接路由(DR模式)
1. NAT模式——地址转换
1.Network Address Translation,简称NAT模式
2.类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,<u>即作为客户机的访问入口,也是各节点回应客户机的访问出口,在高并发场景中负载压力高,会成为整个负载均衡的瓶颈。
3.服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
####################################
2. TUN模式——IP隧道
1.IP Tunnel,简称TUN模式
2.采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器
3.服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信,数据转发受IP隧道影响
LVS虚拟服务器
Linux Virtual Server
针对Linux内核开发的负载均衡解决方案
1998年5月,由我国的章文嵩博士创建
官方网站: http://www.linuxvirtualserver.org/
LVS 实际上相当于基于IP地址的虚拟化应用, 为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
LVS现在已成为Linux内核的一部分,默认编译为ip_ vs模块,必要时能够自动调用。在CentOS 7系统中,以下操作可以手动加载ip_ vs模块,并查看当前系统中ip_ vs模块的版本信息。
1.LVS的负载调度算法
1)轮询(Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载2)加权轮询 (Weighted Round Robin)
根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
保证性能强的服务器承担更多的访问流量3)最少连接 (Least Connections )
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点4)加权最少连接(Weighted L east Connections )
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
性能较高的节点将承担更大比例的活动连接负载
2.ipvsadm工具
LVS默认编译为ip_vs模块,必要时能够自动调用。在centos7中,可以手动添加ip_vs模块,并查看模块版本信息
2.1 ip_vs用法
3. LVS-NAT部署
LVS调度器作为Web 服务器池的网关,LVS具有两块网卡,
分别连接内外网,使用轮询(rr)调度算法
LVS调度器:192.168.6.170 安装ipvsadm
server1节点服务器:192.168.6.155 rpcbind nfs-utils httpd
server2节点服务器:192.168.6.156 rpcbind nfs-utils httpd
nfs服务器: 192.168.6.169
客户端: Windows10 (12.0.0.12)
1、部署共享存储(NFS服务器:192.168.6.169)
(1)查看有无rpcbind . nfs-utils包,开启
(2)创建共享目录,mkdir /opt/nfs/one /opt/nfs/two
(3) 创建共享参数(加入配置)
vim /etc/exports /opt/nfs 192.168.6.0/24 (rw,no_root_squash,sync)
/opt/nfs/one 192.168.6.0/24(rw,no_root_squash,sync)
/opt/nfc/two 192.168.6.0/24 (rw,no_root_squash,sync)
查看共享目录 showmount -e
exporetfs -rv (在线发布共享)
(4)创建共享目录文件
vim /opt/nfs/one echo 'this is is web1 pages! ' > one/index.html
vim /opt/nfs/two echo 'this is is web2 pages!' > two/index.html
root@localhost nfs] # mkdir one two
[root@localhost nfs]# echo 'this is web1 page!'> one/index.html
[root@localhost nfs]# echo 'this is web2 page!'> two/index.html
[root@localhost nfs]# vim /etc/exports
[root@localhost nfs]# exportfs -rv
exporting 192.168.6.0/24:/opt/nfs/two
exporting 192.168.6.0/24:/opt/nfs/one
exporting 192.168.6.0/24:/opt/nfs
[root@localhost nfs]# showmount -e
2、配置节点服务器(192.168.6.155 192.168.163.156)两个步骤一样
(1)把共享目录挂载到节点服务器
节点服务器作web网站(nginx,httpd,都可以这里用的是httpd直接yum下载)
vim /etc/fstab(永久挂载)
节点服务器一: 192.168.6.169:/opt/nfs/one /var/www/html nfs defaults,_netdev 0 0
节点服务器二: 192.168.6.169:/opt/nfs/two /var/www/html nfs defaults,_netdev 0 0
(2)此时两个节点服务器下就有了/var/www/html/index.html
节点服务器一
节点服务器二
mount -a (加载一下配置)
(3)把两块节点服务器网关改为调度器的ip地址及作为自己的网关
3、配置负载调度器(内网关 ens33:192.168.163.10,外网关 ens36:12.0.0.1)
添加一块网卡:直接把地址修改为12.0.0.1(注释网关,12.0.0.1即为网关服务器)ens36
用于外部地址访问
(1)配置SNAT转发规则
iptables -F && iptables -t nat -F 清空规则
加入规则后作SNAT地址转换
iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -o ens36 -j SNAT --to 12.0.0.1
(2)配置调度服务器转发功能
vim /etc/sysctl.conf
添加一条配置: net.ipv4.ip_forward = 1
sysctl -p (加载一下)
(3)加载LVS内核模块
modprobe ip_vs ####加载ip_vs模块
cat /proc/net/ip_vs #####查看ip_vs版本信息
(4)安装ipvsadm 管理工具
yum install -y ipvsadm
(使用这条命令才能开启ipvsadm工具) ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
#启动服务前须保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadmsystemctl start ipvsadm.service
(5)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
ipvsadm -C #####清空原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.6.155
ipvsadm -a -t 12.0.0.1:80 -r 192.168.6.156
4、测试效果
在一台IP为12.0.0.12的客户机使用浏览器访问 http://12.0.0.1/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点。