服务高可用之软件部署架构方案研究与设计含操作过程的完整版Word格式.docx
- 文档编号:17099510
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:10
- 大小:318.44KB
服务高可用之软件部署架构方案研究与设计含操作过程的完整版Word格式.docx
《服务高可用之软件部署架构方案研究与设计含操作过程的完整版Word格式.docx》由会员分享,可在线阅读,更多相关《服务高可用之软件部署架构方案研究与设计含操作过程的完整版Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
(二)方案设计
图1高可用架构设计图
1、实现原理
基于VRRP协议,使用Keepalived开源软件配置提供服务的主机间的优先等级和心跳检测实现多服务主机主/备工作状态实时切换。
同时,在各服务主机上引入守护者模式实时监控高可用服务进程和实际应用进程健康状态形成二层保护及提供故障恢复措施,以此保障服务7*24小时连续不中断服务。
此外,配套软件运行维护管理权限分割等管理措施,多管齐下以实现服务高可用目标。
2、设计思路
高可用方案从“软件部署架构”和“运行维护管理”两个维度进行架构设计。
“软件部署架构”分“高可用服务区”和“实际应用服务区”。
“高可用服务区”设计由2台以上主机组成前置机,负责对外提供统一服务和保障服务的高可用及负载均衡。
前置机的高可用功能由部署在前置机上的Keepalived软件实现,负载均衡功能由Nginx软件实现。
“实际应用服务区”是真正提供服务的应用服务集群,一般每个服务配置2个以上服务应用,以配合Nginx实现服务的负载均衡以及提升服务的可靠性。
此外,为进一步提升“软件部署架构”的可靠性,在外围设计“守护进程模式”即结合启动shell脚本实时监控Nginx进程健康状态,实时根据健康状态及时对Nginx进程中断故障做出快速应急恢复处置,避免Nginx业务进程中断,而Keepalived进程正常,引发流量转向错误的状况出现。
结合上图1所示,首先在高可用主机A(10.1.15.18)和B(10.1.15.19)分别安装Keepalived和Nginx软件。
然后在Nginx上配置实际应用服务的负载均衡(具体配置请参考项目实践章节)。
最后在Keepalived上配置主机高可用(具体配置请参考项目实践章节),初始设置主机A为主,主机B为备。
当主机A不可用时,Keepalived会自动检测发现并让主机B自动取代;
当主机A恢复后,可重新获取主位,主机B重新恢复到备位。
Keepalived在同一时刻,保证只有主位主机对外开放高可用服务地址10.1.15.21,这样对用户来说,始终是以高可用地址10.1.15.21来访问服务的,至于内部的高可用服务在集群(10.1.15.18、10.1.15.19)来回切换对用户来说是无感知的。
“运行维护管理”通过对“高可用服务区”和“实际应用服务区”的主机软件运行权限进行最小权限授权等分离管理,以最大限度避免人为过失破坏服务的可靠性。
用户
资源
系统管理员1
系统管理员2
高可用管理员
守护进程管理员
应用系统管理员
Keepalived/Nginx
守护进程权限
应用系统权限
高可用A
√
×
高可用B
应用服务1
应用服务2
备注:
√:
读写执行权限×
:
无读写执行权限
二、项目实践
(一)环境准备
高可用主机A
高可用主机B
应用服务主机1
应用服务主机2
硬件配置
云主机内存4G,CPU4核,硬盘40G
Keepalived
1.3.5-19.el7.x86_64
根据实际情况部署好具体应用系统即可
Nginx
1.16.1-3.el7.x86_64
操作系统
RedHat4.8.5-16
(3.10.0-693.el7.x86_64)
IP地址
10.1.15.18
10.1.15.19
10.1.12.23
10.1.12.24
10.1.15.21(高可用地址)
(二)具体执行
Keepalived安装部署
步骤1:
使用yum工具安装Keepalived软件。
命令:
yuminstallkeepalived
步骤2:
进行Keepalived配置。
图2:
“主”位的Keepalived配置文件
关键配置项说明如下:
router_id:
路由标识,主/备位配置须一致,且同一网络内唯一。
vrrp_script:
配置keepalived自动检测执行脚本,配合下面的
“track_script”使用。
script:
脚本文件;
interval:
间隔几秒执行一次;
weight:
权重,控制多个脚本间的执行顺序。
本次主要用来检测keepalived健康状态并进行应急重启。
具体如下:
vrrp_instance:
vrrp实例。
state:
状态位,MASTER/BACKUP;
interface:
网卡,一般为eth0;
virtual_router_id:
虚拟路由标识,统一网络内唯一;
priority:
优先级,值越大级别越高。
抢占模式下,优先级高占主位;
track_script:
跟踪执行脚本,引用vrrp_script的配置,两者配合使用;
virtual_ipaddress:
虚拟ip地址,主备一致。
图3:
“备”位的Keepalived配置文件
router_id:
路由标识,同主位配置一致。
状态位,BACKUP;
virtual_router_id:
虚拟路由标识,同主位配置一致;
优先级,设置比主位小;
virtual_ipaddress:
虚拟ip地址,同主位配置一致。
步骤3:
设置Keepalived随主机重启自启动。
systemctlstartkeepalived
systemctlenablekeepalived
Nginx安装部署
使用yum工具安装Nginx软件。
命令:
yuminstallnginx
进行Nginx负责均衡配置。
设置Nginx随主机重启自启动。
systemctlstartnginx
systemctlenablenginx
守护进程模式配置
编写守护进程shell脚本。
等所有配置及服务正常运行后启动shell脚本。
(三)应用测试
测试
用例
预期结果
真实结果
服务进程
用例01
运行
A
用例02
中断
B
用例03
用例04
用例05
用例07
A2
用例08
A1
用例09
B2
用例10
B1
关于结果A、A1、A2、B、B1、B2解释说明:
A1:
高可用地址10.1.15.21在“高可用主机A”生效即“高可用主机A”为“主”,“高可用主机B”为“备”,外部通过高可用地址最终访问到的是“应用服务器1”。
A2:
高可用地址10.1.15.21在“高可用主机A”生效即“高可用主机A”为“主”,“高可用主机B”为“备”,外部通过高可用地址最终访问到的是“应用服务器2”。
A:
高可用地址10.1.15.21在“高可用主机A”生效即“高可用主机A”为“主”,“高可用主机B”为“备”,外部通过高可用地址最终访问到的是“应用服务器1”或“应用服务器2”。
B1:
高可用地址10.1.15.21在“高可用主机B”生效即“高可用主机A”为“备”,“高可用主机B”为“主”,外部通过高可用地址最终访问到的是“应用服务器1”。
B2:
高可用地址10.1.15.21在“高可用主机B”生效即“高可用主机A”为“备”,“高可用主机B”为“主”,外部通过高可用地址最终访问到的是“应用服务器2”。
B:
高可用地址10.1.15.21在“高可用主机B”生效即“高可用主机A”为“备”,“高可用主机B”为“主”,外部通过高可用地址最终访问到的是“应用服务器1”或“应用服务器2”。
三、效果分析
从解决方案的实现原理、设计思路以及实践测试数据分析,理论扎实可靠、考虑周密慎重。
在服务高可用、流量负载均衡、故障应急恢复等实践中表现出了方案理论上应有的健壮性和可靠性。
方案整体架构具有流量负载均衡、业务高可用、运维便捷、成本较低、非侵入性等良好特性,在应对日常业务的流量负载、链路故障、应急恢复等上均符合设计预期,总体上可满足一般中小型信息系统的高可用需求。
四、后续改进
目前高可用软件部署架构至少需要两台主机构成,1台为master始终提供服务,1台作为backup始终处于空闲状态,只有在master服务器挂掉的时候backup才接替进入工作状态,造成资源的一定浪费。
后续改进方向为双主架构解决方案,即设计两条对外服务路径,两台主机互为主备同时对外提供服务。
具体方案如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 服务 可用 软件 部署 架构 方案 研究 设计 操作过程 完整版