关于群集服务的一些概念介绍
1,群集,表示一群,一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器。至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址)相当于一台大型计算机。
2,负载均衡群集(Load Balance Cluster);以提高应用系统的响应能力,尽可能处理更多的访问请求,以减少延迟为目标,获得高并发,高负载的整体性能。LB的负载分配依赖于主节点的分流算法,将来自客户端的请求分担给多个服务器节点,从而缓解整个系统的负载压力。
3,负载均衡的分层结构
在典型的负载均衡群集中,包括三个层次的组件,前端至少有一个负载均衡调度器(Load Balance,或称为Director)负责响应并分发来自客户机的访问请求;
后端由大量真实服务器构成服务器池,提供实际的应用服务,整个群集的伸缩性通过增加,删除服务器节点来完成,而这些过程对客户机是透明的;
为了保持服务的一致性,所有节点使用共享存储设备。
(1)第一层,负载调度器;这是访问整个群集系统的唯一入口,对外使用所有服务器共用的VIP(Virturl IP,虚拟IP)地址,也成为群集IP地址。通常会配置主,备两台调度器实现热备份,当主调度器失效后平滑替换至备份调度器,确保高可用性
(2)第二层,服务器池;群集所提供的应用服务(如HTTP,FTP)由服务器池承担,其中的每个节点具有独立的RIP(Real IP,真实IP)地址,只处理调度器分发过来的访问请求。当某个节点服务器暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
(3)第三层,共享存储;为服务器池中的所有节点提供稳定,一致的存储服务,确保整个群集的统一性。在Linux/UNIX环境中,共享存储可以使用NAS设备,或者NFS(Network File System,网络文件系统)共享服务的专用服务器。
4,负载均衡的NAT工作模式;地址转换,简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有IP地址,与负载调度器位于同一个物理网络。
5,LVS群集是针对Linux内核开发的一个负载均衡项目,基于IP地址虚拟化应用VIP,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决办法。可使用ipvsadm管理工具。通过整合多台相对廉价的普通服务器,以同一个地址对外提供相同的服务。
6,LVS的负载调度轮询算法(Round Robin);将收到的访问请求按照顺序轮流分配给群集中的各节点服务器,均等地对待每一台服务器,而不管服务器的实际连接数和系统负载。
7,ipvsadm管理工具,ipvsadm是在负载调度器上使用的LVS群集管理工具,通过ip_vs模块来添加,删除服务器节点,以及查看群集的运行状态。
实验部署简单拓扑图;
实验环境配置介绍
服务器 IP 需要安装配置 系统
LVS调度器及网关 192.168.30.1 12.0.0.1 双网卡,ipvsadm工具 CentOS7
节点服务器web1 192.168.30.15 NFS,httpd RedHat6.5
节点服务器web2 192.168.30.99 NFS,httpd RedHat6.5
共享存储服务器 192.168.30.77 NFS CentOS7
客户机 12.0.0.12 测试实验结果 Windows7
配置LVS负载调度器
(1)配置双网卡 ens33:192.168.30.1 ens36:12.0.0.1
(2)配置SNAT转发规则
vim /etc/sysctl.conf
.................
net.ipv4.ip_forward = 1 #开启路由转发功能
sysctl -p #刷新内核参数
iptables -F -t nat #清空防火墙nat表中之前的设定的规则iptables -t nat -I POSTROUTING -s 192.168.30.0/24 -o ens36 -j SNAT --to-source 12.0.0.1 #设定SNAT策略
(3)安装ipvsadm管理工具,加载ip_vs模块,配置负载分配策略
modprobe ip_vs #加载ip_vs模块
yum -y install ipvsadm #安装ipvsadm
ipvsadm --save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service #开启ipvsadm服务
ipvsadm -C #清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.15:80 -m #设置lvs策略
ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.99:80 -m
ipvsadm #启用
配置NFS共享存储服务器
systemctl stop firewalld.service #关闭防火墙
setenforce 0 #关闭增强型功能
rpm -q rpcbind #检查rpcbind是否安装
rpm -q nfs-utils #检查nfs-utils是否安装
systemctl start rpcbind.service #打开rpcbind服务
systemctl start nfs.service #打开nfs服务
vim /etc/exports #设定NFS共享规则
/usr/share *(ro,sync)
/var/www/html/accp 192.168.30.15(rw,sync)
/var/www/html/benet 192.168.30.99(rw,sync)
exportfs -rv #发布NFS共享
exporting 192.168.30.99:/var/www/html/benet
exporting 192.168.30.15:/var/www/html/accp
exporting *:/usr/sharemkdir /var/www/html/benet
chmod 777 /var/www/html/benet #创建共享目录benet,并赋予普通用户完全权限
mkdir /var/www/html/accp
chmod 777 /var/www/html/accp #创建共享目录accp,并赋予普通用户完全权限
配置节点服务器,web1和web2配置设定大部分相同(个别不同下面单独标识)
service iptables stop #关闭防火墙
setenforce 0 #关闭增强型功能
service httpd start #开启httpd服务(RedHat6.5系统桌面安装,系统自带httpd)
showmount -e 192.168.30.77 #查看NFS服务共享信息
mount.nfs 192.168.30.77:/var/www/html/accp /var/www/html/ #节点服务器web1挂载NFS共享存储:/var/www/html/accp
echo "<h1>this is accp web</h1>">/var/www/html/index.html #节点服务器web1添加web测试页面
mount.nfs 192.168.30.77:/var/www/html/benet /var/www/html/ #节点服务器web2挂载NFS共享存储目录:/var/www/html/benet
echo "<h1>this is benet web</h1>">/var/www/html/index.html #节点服务器web2添加web测试页面
客户机上配置网卡ip地址设为12.0.0.12 网关指定12.0.0.1
在浏览器上通过ip地址12.0.0.1访问网页,不断刷新,可以看到两个不同的网页不断切换。证明LVS负载均衡群集设定成功