概念
SAP – SAP HANA 和 Hana 系统复制
SAP HANA 是内存中面向列的关系数据库管理系统,由 SAP 开发。它使用 HANA 系统复制(HSR),将数据和更改从主系统复制到一个或多个辅助系统。在横向扩展部署中,这种复制发生在主系统和辅助系统的对应节点之间,每项服务在辅助系统中都有对应的服务。HSR 确保持续复制更改,从而最大限度地减少恢复点目标(RPO)。虽然您可以使用 HANA 工具手动触发接管,但添加 Pacemaker 集群后,可通过监控、编排以及与用于硬件连接和管理的资源代理集成,来实现失效转移过程的自动化。
AWS – 可用区
可用区是 AWS 区域中一个或多个具有冗余电源、网络和连接的分隔的数据中心。有关更多信息,请参阅区域和可用区。
对于以最小化恢复时间目标(RTO)为目标的任务关键型 SAP on AWS 部署,建议将单点故障分散在不同可用区上。与单实例或单可用区部署相比,这可以增强韧性,实现更好的隔离,可以防范包括自然灾害在内的各种故障场景和问题。
各个可用区之间相隔合理的距离(数千米)。一个 AWS 区域中的所有可用区都采用完全冗余的专用城域光纤,实现高带宽和低延迟的网络互联。这样可以实现同步复制。可用区之间的所有流量都是加密的。
AWS – 重叠 IP
重叠 IP 用于实现与应用程序的连接,无论活动主节点包含在哪个可用区(和子网)中。
在 AWS 云端部署 Amazon EC2 实例时,IP 地址是从所分配子网的 CIDR 范围中分配的。子网不能跨越多个可用区,因此在出现故障后(包括网络连接或硬件问题),子网 IP 地址可能不可用,需要失效转移到不同可用区中的复制目标。
为了解决这个问题,我们建议您配置重叠 IP,并在应用程序的连接参数中使用它。此 IP 地址是来自 VPC CIDR 数据块之外的非重叠 RFC1918 私有 IP 地址,在一个或多个路由表中配置为一个条目。该路由将连接定向到活动的节点,并在失效转移期间由集群软件更新。
您可以为重叠 IP 地址选择以下任意一个 RFC1918 私有 IP 地址:
-
10.0.0.0 - 10.255.255.255(10/8 前缀)
-
172.16.0.0 - 172.31.255.255(172.16/12 前缀)
-
192.168.0.0 - 192.168.255.255(192.168/16 前缀)
例如,如果您在 SAP VPC 中使用 10/8 前缀,则可以选择 172 或 192 IP 地址来区分重叠 IP。请考虑使用 Amazon VPC IP 地址管理器等 IP 地址管理(IPAM)工具,来计划、跟踪和监控 AWS 工作负载的 IP 地址。有关更多信息,请参阅什么是 IPAM?
在子网关联或连接有需要时,您也可以对集群中的重叠 IP 代理进行配置,来更新包含重叠 IP 条目的多个路由表。
访问重叠 IP
重叠 IP 不在 VPC 的范围内,因此无法从与路由表无关的位置(包括本地和其他 VPC)访问。
使用 AWS Transit Gateway 作为中央枢纽,以便从多个位置(包括 Amazon VPC、其他 AWS 区域以及使用 AWS Direct Connect 或 AWS 客户端 VPN 的本地部署)使用到重叠 IP 地址的网络连接。
如果您没有将 AWS Transit Gateway 设置为网络中转中心,或者如果该服务在您的首选 AWS 区域不可用,则可以使用网络负载均衡器启用对重叠 IP 的网络访问。
有关更多信息,请参阅 SAP on AWS 高可用性设置。
AWS – 共享 VPC
企业登录区设置或安全要求可能需要使用单独的集群账户,将对重叠 IP 所需的路由表访问权限限制为隔离账户。有关更多信息,请参阅与其他账户共享 VPC。
在设置共享 VPC 之前,请评估该操作对安全态势的影响。
Pacemaker – STONITH 隔离代理
在 SAP HANA 部署中,无论是在纵向扩展配置(双节点)还是横向扩展配置(每个站点两个或更多节点)中,通过确保在任何给定时间只有指定的一个或多个主节点才能处理写入操作来保持数据一致性,这一点至关重要。当节点变成无响应或无法通信时,为了保持数据一致性,可能需要在集群开始其他操作(例如提升新的主节点)之前关闭故障节点的电源,将其隔离。此仲裁是隔离代理的职责。
在双节点纵向扩展场景中,需要考虑隔离竞赛问题。当通信故障导致两个节点均认为另一个节点已经出现故障并同时尝试隔离(断电)对方时,就会发生这种情况。隔离代理通过提供外部见证方来应对这种风险。在横向扩展部署中,虽然由于有多个节点可以参与仲裁决策,因此出现隔离竞赛的可能性较小,但在大型节点集中,妥善的隔离机制对于保持数据一致性仍然至关重要。
SUSE 支持多种隔离代理,包括推荐用于 Amazon EC2 实例(external/ec2)的隔离代理。