集群、群集
提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能
LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载
提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果
HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。
例如:“故障切换”、“双机热备” 等
以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
高性能依赖于"分布式运算”、“并行计算” , 通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力
负载均衡的结构:
访问整个群集系统的唯一入口, 对外使用所有服务器共有的VIP地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。
群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
为服务器池中的所有节点提供稳定、一致的文件存取服务, 确保整个群集的统一性共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。
使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS 架构从逻辑上可分为调度层、Server 集群层和共享存储层。
** 作用:**
选项 功能
-A 添加虚拟服务器
-D 删除整个虚拟服务器
-s 指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a 表示添加真实服务器(节点服务器)
-d 删除某一个节点
-t 指定 VIP地址及 TCP端口
-r 指定 RIP地址及 TCP端口
-m 表示使用 NAT群集模式
-g 表示使用 DR模式
-i 表示使用 TUN模式
-w 设置权重(权重为 0 时表示暂停节点)
-p 60 表示保持长连接60秒
-l 列表查看 LVS 虚拟服务器(默认为查看所有)
-n 以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -lnjiu

LVS调度器作为Web服务器池的网关,LVS两块网卡,分别连接内外网,使用rr轮询调度算法
LVS负载调度器:ens33:192.168.28.10 ens36:192.168.100.100
web节点服务器1:192.168.28.100
web节点服务器2:192.168.28.200


systemctl restart network ##修改前提前下好httpd
[root@httpd1 network-scripts]# systemctl start httpd
[root@httpd2 network-scripts]# systemctl start httpd
[root@httpd1 html]# cd /var/www/html/
[root@httpd1 html]# ls
[root@httpd1 html]# vim index.html
[root@httpd1 html]# cat index.html
this is httpd1

[root@httpd2 network-scripts]# cd /var/www/html/
[root@httpd2 html]# ls
[root@httpd2 html]# vim index.html
[root@httpd2 html]# cat index.html
this is httpd2


[root@lvs network-scripts]# vim /etc/sysctl.conf
[root@lvs network-scripts]# sysctl -p ##使内核文件立即生效
net.ipv4.ip_forward = 1
或
[root@lvs network-scripts]# echo '1' > /proc/sys/net/ipv4/ip_forward #开启路由转发功能

[root@lvs network-scripts]# iptables -t nat -F ##清空nat表规则
[root@lvs network-scripts]# iptables -F ##清空防火墙规则
[root@lvs network-scripts]# iptables -vnL ##查看防火墙规则,无规则
Chain INPUT (policy ACCEPT 91 packets, 5748 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 63 packets, 5492 bytes)
pkts bytes target prot opt in out source destination
[root@lvs network-scripts]# iptables -t nat -A POSTROUTING -s 192.168.28.0/24 -o ens36 -j SNAT --to-source 192.168.100.100 ##追加一条nat表规则,从192.168.28.0网段的过来的IP,将其转换成192.168.100.100

[root@lvs network-scripts]# modprobe ip_vs #手动加载ip_vs模块
[root@lvs network-scripts]# cat /proc/net/ip_vs #查看版本信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@lvs network-scripts]# yum install -y ipvsadm

准备启动前环境
启动服务前必须保存负载分配策略,否则会报错
ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
[root@lvs network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs network-scripts]# cat /etc/sysconfig/ipvsadm #没有任何东西,仅仅需要这个文件
[root@lvs network-scripts]# systemctl start ipvsadm
[root@lvs network-scripts]# ipvsadm -C #清除原有策略
[root@lvs network-scripts]# ipvsadm -A -t 192.168.100.100:80 -s rr ##添加虚拟服务器,指定VIP地址和端口,轮询方式
[root@lvs network-scripts]# ipvsadm -a -t 192.168.100.100:80 -r 192.168.28.100:80 -m -w 1 ##添加后端真实服务器,使用nat群集模式,权重为1
[root@lvs network-scripts]# ipvsadm -a -t 192.168.100.100:80 -r 192.168.28.200:80 -m -w 1
[root@lvs network-scripts]# ipvsadm #启动策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP yzq:http rr
-> 192.168.28.100:http Masq 1 0 0
-> 192.168.28.200:http Masq 1 0 0
[root@lvs network-scripts]# ipvsadm -ln #查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.100.100:80 rr
-> 192.168.28.100:80 Masq 1 0 0
-> 192.168.28.200:80 Masq 1 0 0
[root@lvs network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略

客户端访问192.168.100.100

