Junos Space 高可用性软件架构概述
Junos Space 平台旨在通过群集、多层、分布式架构确保“五个 9”的可用性,该架构具有以下功能:
基于浏览器的标准 Web 2.0 GUI 客户端和基于 REST/HTTPS 的 NBI 客户端
Apache 负载均衡器作为顶级负载均衡器
基于J2EE技术的JBoss应用服务器提供应用框架
用于管理持久数据的 MySQL 数据库
Cassandra 分布式文件系统,用于存储设备映像文件和 Junos Space 应用程序中的文件
以下部分介绍 Junos Space 架构,并确定 Junos Space 群集中节点之间通信的基本要求:
Junos Space 软件架构
图 1 提供了 Junos Space 软件架构的高级视图。GUI 和 NBI 客户端可通过群集的单个虚拟 IP 地址访问 Junos Space 服务。
来自客户端的请求通过 Apache HTTP 负载均衡器在群集中的多个节点之间进行负载平衡,该负载均衡器以主动-热备用配置部署在群集中的两个节点上。拥有虚拟 IP (VIP) 地址的节点上的负载均衡器充当活动实例。如果当前拥有 VIP 地址的节点出现故障,Linux 虚拟服务器 (LVS) 群集中的另一个节点将检测到此故障并自动接管 VIP 地址。HTTP 请求使用轮询算法在集群中的所有活动 JBoss 服务器之间进行负载平衡。
集群中的主动 JBoss 服务器为 Junos Space 应用程序提供应用程序框架,包括以下服务:
托管应用程序和关联的业务逻辑
群集内的应用程序级负载均衡
应用程序监控和自动恢复
群集节点监视和自动恢复
通过 JDBC 直接访问 MySQL 数据库的数据库服务
托管设备中介逻辑
负载平衡架构
Junos Space 群集提供两种负载:
来自 GUI 和 NBI 客户端的传入请求
与受管理设备的通信
Junos Space 旨在跨群集中的所有活动节点对传入请求进行负载平衡。来自 GUI 和 NBI 客户端的请求作为 HTTP 请求到达,由 Apache HTTP 负载均衡器的活动实例提供服务。负载均衡器使用轮询算法将请求分发到集群中的所有活动 JBoss 服务器。粘性会话用于确保与特定 GUI 会话关联的所有 HTTP 请求在该会话的生命周期内都由同一 JBoss 服务器提供服务。为了实现应用级负载均衡,JBoss 业务逻辑将复杂请求作为一组子作业进行处理,这些子作业分布在集群中的多个节点上。例如,对四节点 Space 群集重新同步 100 台设备的单个请求被分成四个子作业,这些子作业在四个不同的节点上执行,每个节点重新同步 25 个设备。有关负载平衡的详细概述,请参阅 主题了解 Junos Space 群集中的逻辑群集。
为了执行设备级负载平衡,Junos Space 采用设备中介层 (DML) 中的逻辑,以便设备连接平均分布在群集中的所有活动节点上。设备级负载平衡是在设备发现期间执行的,方法是比较各个节点提供的设备连接数并选择负载最小的节点。如果任何节点出现故障,所有关联的设备连接都将分布到群集中的其余活动节点,从而防止节点中断影响设备连接。有关设备连接管理的详细概述,请参阅 主题了解 DMI 连接的高可用性管理。
数据库架构
MySQL 企业版用于提供数据库服务,用于管理平台和应用程序的持久数据。MySQL 数据库服务器在群集中的两个节点上运行,采用主动-备用配置。数据库事务近乎实时地在两个MySQL服务器之间复制。有关在每个 Junos Space 群集内形成的 MySQL 群集的信息,请参阅 了解 Junos Space 群集内的逻辑群集。
Junos Space 平台还集成了用于故障和性能管理的网络监控,它使用 PostgreSQL 关系数据库服务来存储故障和性能相关数据。PostgreSQL 服务器以主动-主动配置在 Space 群集中的两个节点上运行,具有实时复制功能,以确保故障和性能数据继续可用,即使其中一个节点发生故障。有关详细信息,请参阅 网络监视的高可用性。
Junos Space 群集中节点之间的节点间通信
为了促进 Space 群集中节点之间的无缝通信并实现群集的最佳性能,您需要确保以下几点:
Junos Space 群集中的所有节点都配置了同一子网内的 IP 地址。这对于 VIP 切换机制正常工作非常重要。
Space 群集中的所有节点都通过 1-Gbps 或 100 Mbps 的本地网络连接,延迟可以忽略不计。
Junos Space 集群中的 JBoss 服务器通过 UDP 组播进行通信,以形成逻辑集群。
注意:群集中的节点内必须允许 UDP 组播流量,这也意味着您应该在互连群集的交换机上禁用 IGMP 侦听,或者将其显式配置为允许节点之间的 UDP 组播。