Cluster,集群(也称群集)由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机。
对于企业服务的的性能提升一般会有两种方式:
纵向扩展: 对服务器的CPU 内存 硬盘 等硬件进行升级或者扩容来实现的 性能上限会有瓶颈,成本昂贵,收效比不高等问题。
横向扩展:通过增加服务器主机数量来应该高并发的场景。
提高性能:计算密集应用。如天气预报,核试验模拟。 降低成本:相对百万美元的超级计算机,价格便宜。 提高可扩展性:只要增加集群节点即可。 增强可靠性:多个节点完成相同功能,避免单点失败。
负载均衡(LB):提高应用系统的响应效率,处理更多的访问请求,减少延迟,提高并发和负载能力。 同时也是如今企业运用最多的群集类型。
高可用(HA): 提高应用系统的可靠性,减少服务中断时间,确保服务的连续性
高性能运算(HPC):将多台主机的硬件计算资源整合到一起实现分布式运用,比如 云计算
DS:Director Server。指的是前端负载均衡器。
RS:Real Server。节点服务器,后端真实的工作服务器。
VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
RIP:Real Server IP,后端服务器的IP地址。
CIP:Client IP,访问客户端的IP地址。
1.当用户向负载均衡器(Director Server)发起请求,调度器将请求发送至内核空间。
2.Prerouting链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发送到INPUT链。
3.IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已经定义好的集群服务进行对比,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发送到POSTROUTING链。
4.POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送到后端的服务器。
群集的负载调度技术有三种工作模式:地址转换(NAT模式) ,直接路由(DR模式),IP隧道(IP-TUN)。对于商用来说,最常用是NAT模式和DR模式。
Network Address Translation,简称NAT模式
类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机 的访问入口,也是各节点回应客户机的访问出口。
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两 种方式。
缺点:由于NAT的负载均衡器既作为用户的访问请求入口,也作为节点服务器响应请求的出口,承载两个方向的压力,调度器的性能会成为整个集群的瓶颈。
rr:轮询算法(Round Robin)
wrr:加权轮询调度(Weighted Round Robin)
dh:目的地址哈希调度(destination hashing)
sh:源地址哈希调度(source hashing)
lc:最小连接数调度( Least Connections)
wlc:加权最小连接数调度(Weighted Least Connections)
lblc:基于地址的最小连接数调度(locality-based least-connection)
将来自同一个目的地址的请求分配给同一-台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。
NFS服务器 7-5 192.168.222.105
#关闭防火墙
systemctl stop firewalld
setenforce 0
#安装nfs服务
yum install nfs-utils rpcbind -y
#新建目录,并创建站点文件
cd /opt/
mkdir zhao qian
echo "zhaoqiansunli" >zhao/index.html
echo "zhouwuzhengwang" >qian/index.html
#开启服务
systemctl start rpcbind
systemctl start nfs
#授权
chmod 777 zhao/ qian/
#设置共享策略
vim /etc/exports /opt/fl
192.168.222.0/24(rw,sync) /opt/dl
192.168.222.0/24(rw,sync)
#发布服务
systemctl restart nfs
exportfs -rv
节点服务器1 7-4 192.168.222.104
#关闭防火墙
systemctl stop firewalld
setenforce 0
#安装httpd
yum install -y httpd
#查看nfs服务
showmount -e 192.168.222.105
#挂载站点
#法一:临时挂载
dfmount 192.168.222.105:/opt/zhao /var/www/html/
cat /var/www/html/index.html
#法二:永久挂载
vim /etc/fstab
192.168.222.105:/opt/zhao/ /var/www/html/ nfs defaults,_netdev 0 0
mount -a
#开启httpd服务
systemctl start httpd
#指定网关
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.222.100
#DNS1=8.8.8.8
#重启网络服务
systemctl restart network
节点服务器2 7-3 192.168.222.103【和7-4操作相同】
负载调度器 7-2 192.168.222.100 需要两块网卡
#关闭防火墙
systemctl stop firewalld
setenforce 0
#安装ipvsadm
yum install -y ipvsadm*
#添加一块网卡,配置网卡,重启网络
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens35
vim ifcfg-ens35 去掉网关、UUID、修改IP
vim ifcfg-ens33 去掉网关
systemctl restart network
#打开路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
#防火墙做策略
#查看策略
iptables -nL -t nat
#清空策略
iptables -F
#添加策略
iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o ens35 -j SNAT --to 12.0.0.1
#查看策略
iptables -nL -t nat
#加载LVS内核模块
modprobe ip_vs
cat /proc/net/ip_vs
#开启ipvsadm服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
#清空策略
ipvsadm -C
#制定策略
#指定IP地址 外网的入口 -s rr 轮询 ipvsadm -A -t 12.0.0.1:80 -s rr
#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.222.103:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.222.104:80 -m
#开启服务 ipvsadm
#查看策略
ipvsadm -ln
客户端主机
修改ip
访问12.0.0.1