做家政网站,wordpress地址插件,网站制作价格与售后视频,非交互式网站备案目录
一. 集群概述
1.1 集群的定义
1.2 集群的分类
1. 高可用集群 HA
2. 高性能运输群集 HPC
3.负载均衡群集 LB
4. 分布式存储集群
二. LVS概述
2.1 LVS的定义
2.2 LVS的工作原理
2.3 LVS 的三种工作模式
2.4 LVS 三种工作模式的对比
2.5 LVS 调度算法
1. 静态…目录
一. 集群概述
1.1 集群的定义
1.2 集群的分类
1. 高可用集群 HA
2. 高性能运输群集 HPC
3.负载均衡群集 LB
4. 分布式存储集群
二. LVS概述
2.1 LVS的定义
2.2 LVS的工作原理
2.3 LVS 的三种工作模式
2.4 LVS 三种工作模式的对比
2.5 LVS 调度算法
1. 静态方法
2. 动态方法
三. LVS集群创建与管理
3.1 LVS集群类型中的术语
3.2 ipvsadm工具
3.2.1 ipvsadm工具选项
3.2.2 常见操作
1. 列出规则
2. 建立集群
3. 添加后端服务器
4. 删除后端服务器
5. 删除集群
四. DR模式部署
4.1 配置负载调度器
4.2 配置节点服务器
五. keepalive概述
5.1 vrrp技术
5.1.2 vrrp相关术语
5.2 keepalive的定义
5.3 keepalive的功能
5.4 keepalive架构
六. 安装keepalive
6.1 centos7-yum安装
6.2 Ubuntu-apt安装
6.3 centos7-编译安装
6.4 Ubuntu-编译安装
七. keepalived的相关文件
7.1 配置组成
7.1.1 全局配置
7.1.2 配置虚拟路由器 一. 集群概述
1.1 集群的定义
集群Cluster 是指将多台计算机或服务器通过某种方式连接在一起作为一个整体来提供服务或执行任务的技术架构。
1.2 集群的分类
1. 高可用集群 HA
目标确保服务的高可用性减少停机时间。
实现方式通过冗余节点和故障转移机制当主节点故障时备用节点立即接管服务。
例如Keepalived、heartbeat
2. 高性能运输群集 HPC
目标通过并行计算解决复杂的科学计算或数据处理任务
实现方式将任务分解为多个子任务分配到多个节点并行执行。
3.负载均衡群集 LB
目标将请求或任务均匀分配到多个节点提高系统性能和资源利用率。
实现方式通过负载均衡器如LVS、Nginx、HAProxy将请求分发到后端服务器。
例如LVS、Nginx
4. 分布式存储集群
目标提供高可用、可扩展的存储服务。
实现方式将数据分布到多个节点存储并通过冗余机制确保数据安全。 二. LVS概述
2.1 LVS的定义
LVSLinux Virtual Server 是一种基于 Linux 内核的高性能、高可用的负载均衡技术用于将客户端请求分发到多个后端服务器节点以提高系统的处理能力和可用性。
2.2 LVS的工作原理 客户端发起请求 客户端通过访问 LVS 的虚拟 IPVIP发起请求。 负载均衡器接收请求 负载均衡器接收客户端的请求并根据预定义的调度算法选择一个后端服务器节点。 请求分发 负载均衡器将请求转发到选定的后端服务器节点。转发方式取决于 LVS 的工作模式NAT、DR 或 TUN。 后端服务器处理请求 后端服务器节点处理请求并生成响应。 响应返回客户端 后端服务器将响应返回给客户端。返回方式取决于 LVS 的工作模式NAT、DR 或 TUN。
2.3 LVS 的三种工作模式
1. NAT 模式 工作原理 客户端发送请求到 LVS 的虚拟 IPVIP。 负载均衡器将请求的源 IP 地址修改为自身的 IP 地址并将请求转发到后端服务器。 后端服务器处理请求并将响应返回给负载均衡器。 负载均衡器将响应的目标 IP 地址修改为客户端的 IP 地址并将响应返回给客户端
2. DR 模式 工作原理 客户端发送请求到 LVS 的虚拟 IPVIP。 负载均衡器将请求直接转发到后端服务器不修改 IP 地址。 后端服务器处理请求并直接将响应返回给客户端。 3. TUN 模式
工作原理 客户端发送请求到 LVS 的虚拟 IPVIP。负载均衡器通过 IP 隧道将请求封装并转发到后端服务器。后端服务器解封装请求处理请求并直接将响应返回给客户端。
2.4 LVS 三种工作模式的对比
NATTUNDR优点端口转换WAN性能最好缺点性能瓶颈服务器支持隧道模式不支持跨网段真实服务器要求anyTunnelingNon-arp device支持网络private私网LAN/WAN私网/公网LAN私网真实服务器数量low (10~20)High (100)High (100)真实服务器网关lvs内网地址Own router网工定义Own router网工定义
2.5 LVS 调度算法
分为两种
静态方法 不管后端真实服务器的 状态根据自身 算法进行调度
动态方法 会根据后端服务器的状态来进行调度
1. 静态方法
轮询RR将请求依次分发到每个后端服务器节点。
加权轮询WRR根据后端服务器的权重分发请求权重越高分配的请求越多
源地址哈希SH根据客户端的源 IP 地址哈希值分发请求确保同一客户端的请求被分发到同一台后端服务器。
目标地址哈希DH通过让后端服务器直接响应客户端请求来优化性能和简化配置。
2. 动态方法
最小连接数LC将请求分发到当前连接数最少的后端服务器节点。
加权最小连接数WLC根据后端服务器的权重和连接数分发请求。
预期延迟最短(SED):选择预期延迟最短的后端服务器来处理请求。
空闲(NQ):优先选择 空闲 的后端服务器如果没有空闲服务器则退化为 SED 算法。
基于地址的最小连接数(LBLC)基于 请求的源地址 和 后端服务器的活动连接数 进行分发确保同一客户端的请求被分发到同一台后端服务器。 三. LVS集群创建与管理
3.1 LVS集群类型中的术语 VS代理服务器Virtual ServerDirector Server(DS), Dispatcher(调度器)Load Balancerlvs服务器 代理服务器 RS真实服务器Real Server(lvs), upstream server(nginx), backend server(haproxy)真实服务器 CIPClient IP客户机IP 客户机的ip VIPVirtual serve IP VS外网的IP 代理服务器的 外网ip DIPDirector IP VS内网的IP 代理服务器的 内网ip RIPReal server IP 真实服务器的 ip地址
3.2 ipvsadm工具
LVS集群通过ipvsadm工具创建管理
3.2.1 ipvsadm工具选项
-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 -ln
3.2.2 常见操作
1. 列出规则
ipvsadm -L
2. 建立集群
格式
ipvsadm -A -t 虚拟IP:端口 -s 调度算法例子
ipvsadm -A -t 192.168.91.188:80 -s rr
3. 添加后端服务器
格式
ipvsadm -a -t 虚拟IP:端口 -r 后端服务器IP:端口 -g -w 权重例子
ipvsadm -a -t 192.168.91.188:80 -r 192.168.91.100:80 -g
4. 删除后端服务器
格式
ipvsadm -d -t 虚拟IP:端口 -r 后端服务器IP:端口例子
ipvsadm -d -t 192.168.91.188:80 -r 192.168.91.100:80
5. 删除集群
格式
ipvsadm -D -t 虚拟IP:端口例子
ipvsadm -D -t 192.168.91.188:80 四. DR模式部署
4.1 配置负载调度器
ubuntu 调度器配置1.更新系统并安装 ipvsadm
apt update
apt install ipvsadm -y2.添加虚拟IPVIP
ifconfig ens33:0 192.168.52.188/243.配置LVS规则
添加虚拟服务器VIP并设置调度算法为轮询rr
ipvsadm -A -t 192.168.52.188:80 -s rr
添加真实服务器RIP
ipvsadm -a -t 192.168.52.188:80 -r 192.168.52.100:80 -g
ipvsadm -a -t 192.168.52.188:80 -r 192.168.52.101:80 -g4.修改内核参数
net.ipv4.ip_forward 0
net.ipv4.conf.all.send_redirects 0
net.ipv4.conf.default.send_redirects 0
net.ipv4.conf.ens33.send_redirects 0使配置生效
sudo sysctl -p
4.2 配置节点服务器
centos7-13真实服务器1配置1.安装Nginx
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx2.设置测试页面
echo 7-13 /usr/share/nginx/html/index.html3.修改内核参数
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore 1
net.ipv4.conf.all.arp_announce 2
net.ipv4.conf.default.arp_ignore 1
net.ipv4.conf.default.arp_announce 2
net.ipv4.conf.lo.arp_ignore 1
net.ipv4.conf.lo.arp_announce 24.添加虚拟IPVIP
ifconfig ens33:0 192.168.52.188/24
centos7-14 真实服务器2配置yum install epel-release -y
yum install nginx -y
systemctl start nginx7-14 /usr/share/nginx/html/index.htmlvim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore 1
net.ipv4.conf.all.arp_announce 2
net.ipv4.conf.default.arp_ignore 1
net.ipv4.conf.default.arp_announce 2
net.ipv4.conf.lo.arp_ignore 1
net.ipv4.conf.lo.arp_announce 2sysctl -pifconfig ens33:0 192.168.52.188/24 测试
在集群外的新机器上测试
curl 192.168.52.188
多次执行 curl 命令观察返回的内容是否在 7-13 和 7-14 之间轮换。 五. keepalive概述
5.1 vrrp技术
VRRP 是一种用于实现 路由器高可用性的网络协议。它通过将多个路由器组成一个虚拟路由器组并分配一个虚拟 IP 地址VIP确保在主路由器故障时备用路由器能够接管流量从而实现网络服务的连续性。
5.1.2 vrrp相关术语
虚拟路由器Virtual Router由多个物理路由器组成的一个逻辑路由器。
虚拟 IP 地址VIP虚拟路由器对外提供的 IP 地址客户端通过该 IP 地址访问网络服务。
主路由器Master Router在虚拟路由器组中负责转发流量的路由器持有虚拟 IP 地址。
备用路由器Backup Router在主路由器故障时接管流量并成为新的主路由器平时处于监听状态不转发流量。
优先级Priority用于选举主路由器的参数优先级越高越有可能成为主路由器。
5.2 keepalive的定义
Keepalived 是一个用于实现 高可用性和负载均衡的开源软件。它基于 VRRPVirtual Router Redundancy Protocol 协议通过虚拟 IPVIP的切换来确保服务的连续性同时可以与 LVSLinux Virtual Server 集成提供负载均衡功能。
5.3 keepalive的功能 基于vrrp协议完成地址流动 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义) 为ipvs集群的各RS做健康状态检测 基于脚本调用接口完成脚本中定义的功能进而影响集群事务以此支持nginx、haproxy等服务
5.4 keepalive架构 vrrp stackVIP消息通告 虚拟ip checkers监测real server简单来说 就是监控后端真实服务器的服务是否存活 system call实现 vrrp 协议状态转换时调用脚本的功能 SMTP邮件组件报警邮件 IPVS wrapper生成IPVS规则直接生成ipvsadm Netlink Reflector监控网络接口状态变化 WatchDog监控进程整个架构是否有问题
六. 安装keepalive
6.1 centos7-yum安装
yum install keepalived -yvim /etc/keepalived/keepalived.conf#修改 interface eth0 为
interface ens33 systemctl start keepalived.servicesystemctl status keepalived.service 6.2 Ubuntu-apt安装
apt updateapt install keepalived -ycp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.confvim /etc/keepalived/keepalived.conf#修改interface eth0为
interface ens33systemctl start keepalivedsystemctl status keepalived 6.3 centos7-编译安装
yum install gcc curl openssl-devel libnl3-devel net-snmp-devel -y
# 安装依赖包环境https://keepalived.org/download.html
# 官网下载安装包mkdir -p /data/cd /data/wget https://keepalived.org/software/keepalived-2.2.2.tar.gztar xf keepalived-2.2.2.tar.gzcd keepalived-2.2.2/./configure --prefix/usr/local/keepalivedmake make install#编译好后起不来没有配置文件/etc/keepalived/keepalived.confmkdir /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.confsed -i s/eth0/ens33/ /etc/keepalived/keepalived.confsystemctl start keepalivedsystemctl status keepalived 6.4 Ubuntu-编译安装
ubuntu尽可能安装比较新的keepalive安装包
cd /optapt update apt -y install make gcc ipvsadm build-essential pkg-config automake autoconf libipset-dev libnl-3-dev libnl-genl-3-dev libssl-dev libxtables-dev libip4tc-dev libip6tc-dev libmagic-dev libsnmp-dev libglib2.0-dev libpcre2-dev libnftnl-dev libmnl-dev libsystemd-devhttps://keepalived.org/download.html
# 官网下载安装包wget https://keepalived.org/software/keepalived-2.3.3.tar.gztar xf keepalived-2.3.3.tar.gzcd keepalived-2.3.3/./configure --prefix/usr/local/keepalivedmake -j2 make installmkdir /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.confvim /etc/keepalived/keepalived.conf#interface ent0改为
interface ens33systemctl start keepalivedsystemctl status keepalived七. keepalived的相关文件 软件包名keepalived 主程序文件/usr/sbin/keepalived 主配置文件/etc/keepalived/keepalived.conf
7.1 配置组成
7.1.1 全局配置
global_defs {notification_email {rootlocalhost#keepalived 发生故障切换时邮件发送的目标邮箱可以按行区分写多个rootlocalhost360601212qq.com
}notification_email_from keepalivedlocalhost #发邮件的地址smtp_server 127.0.0.1
#邮件服务器地址smtp_connect_timeout 30
#邮件服务器连接timeoutrouter_id LVS01
#每个keepalived主机唯一标识建议使用当前主机名但多节点重名不影响vrrp_skip_check_adv_addr
#对所有通告报文都检查会比较消耗性能启用此配置后如果收到的通告报文和上一个报文是同一个路由器则跳过检查默认值为全检查vrrp_strict
#严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则默认导致VIP无法访问,建议不加此项配置。vrrp_garp_interval 0
#gratuitous ARP messages 免费ARP报文发送延迟0表示不延迟vrrp_gna_interval 0
#unsolicited NA messages 不请自来消息发送延迟vrrp_mcast_group4 225.0.0.18
#指定组播IP地址范围224.0.0.0到239.255.255.255,默认值224.0.0.18 vrrp_iptables
#此项和vrrp_strict同时开启时则不会添加防火墙规则,如果无配置vrrp_strict项,则无需启用此项配置
}
7.1.2 配置虚拟路由器
vrrp_instance STRING {
#String为vrrp的实例名,一般为业务名称配置参数......}#配置参数
state MASTER|BACKUP
#当前节点在此虚拟路由器上的初始状态状态为MASTER或者BACKUPinterface IFACE_NAME
#绑定为当前虚拟路由器使用的物理接口如eth0,bond0,br0,可以和VIP不在一个网卡virtual_router_id VRID
#每个虚拟路由器惟一标识范围0-255每个虚拟路由器此值必须唯一否则服务无法启动同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 100
#当前物理节点在此虚拟路由器的优先级范围1-254值越大优先级越高,每个keepalived主机节点此值不同advert_int 1
#vrrp通告的时间间隔默认1sauthentication {
#认证机制auth_type AH|PASS
#AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)auth_pass PASSWORD
#预共享密钥仅前8位有效同一个虚拟路由器的多个keepalived节点必须一样
}include /etc/keealived/conf.d/*.conf
virtual_ipaddress {
#虚拟IP,生产环境可能指定上百个IP地址IPADDR/MASK brd IPADDR dev STRING scope SCOPE label LABEL
192.168.200.100
#指定VIP不指定网卡默认为,注意不指定/prefix,默认为/32192.168.200.101/24 dev eth1
#指定VIP的网卡建议和interface指令指定的岗卡不在一个网卡192.168.200.102/24 dev eth2 label eth2:1
#指定VIP的网卡label ifconfig eth2:1 192.168.200.102/24
}track_interface {
#配置监控网络接口一旦出现故障则转为FAULT状态实现地址转移
eth0
eth1…
}