SAP HANA 高可用性规划指南

本指南简要介绍了在 Google Cloud 上部署高可用性 (HA) SAP HANA 系统之前需要了解的选项、建议和一般概念。

本指南假设您已经了解实现 SAP HANA 高可用性系统的通用概念和做法。因此,本指南主要关注在 Google Cloud 上实现此类系统需要了解的内容。

如果您需要详细了解实现 SAP HANA 高可用性系统所需的一般概念和做法,请参阅:

本规划指南仅关注 SAP HANA 的高可用性,不包括应用系统的高可用性。如需了解 SAP NetWeaver 的高可用性,请参阅适用于 Google Cloud 上的 SAP NetWeaver 的高可用性规划指南

本指南并不取代 SAP 提供的任何文档。

Google Cloud 上的 SAP HANA 高可用性选项

您可以在 SAP HANA 的高可用性配置设计中结合使用 Google Cloud 和 SAP,如此便可以处理基础架构或软件级层的故障。下表介绍了用于提供高可用性的 SAP 和 Google Cloud 功能。

功能 说明
Compute Engine 实时迁移

Compute Engine 会监控底层基础架构的状态,并自动迁移实例以使其不受基础架构维护事件影响。这个过程无需用户干预。

Compute Engine 会尽可能在迁移期间保持实例运行。在发生重大中断的情况下,实例发生故障和恢复可用之间可能会略有延迟。

在多主机系统中,共享卷(例如部署指南中使用的“/hana/shared”卷)是挂接到托管主实例主机的虚拟机的 Persistent Disk,并以 NFS 格式装载到工作器主机。如果主实例主机进行实时迁移,则 NFS 卷最多在几秒钟内无法访问。重启主实例主机后,NFS 卷将在所有主机上恢复运行,其他正常运行也自动恢复。

恢复的实例与原始实例相同,包括实例 ID、私有 IP 地址以及所有实例元数据和存储空间。默认情况下,标准实例均设置为实时迁移。我们建议您不要更改此设置。

如需了解详情,请参阅实时迁移

Compute Engine 自动重启

如果您的实例设置为在发生维护事件时终止,或者由于底层硬件问题导致实例崩溃,则可以设置 Compute Engine 自动重启实例。

默认情况下,实例设置为自动重启。我们建议您不要更改此设置。

SAP HANA 服务自动重启

SAP HANA 服务自动重启是 SAP 提供的故障恢复解决方案。

SAP HANA 拥有许多针对各种活动始终运行的已配置服务。如果这些服务中的任何服务由于软件故障或人为错误而停用,则 SAP HANA 服务自动重启监控定时器功能会自动重启该服务。该服务重启后,会将所有必要的数据加载回内存并恢复运行。

SAP HANA 备份

SAP HANA 备份会从您的数据库创建数据副本,可用于将数据库重建到某个时间点。

如需详细了解如何在 Google Cloud 上使用 SAP HANA 备份,请参阅 SAP HANA 操作指南

SAP HANA 存储复制

SAP HANA 存储复制通过特定硬件合作伙伴提供存储级灾难恢复支持。Google Cloud 不支持 SAP HANA 存储复制。您可以考虑改用 Compute Engine Persistent Disk 快照。

如需详细了解如何使用 Persistent Disk 快照在 Google Cloud 上备份 SAP HANA 系统,请参阅 SAP HANA 操作指南

SAP HANA 主机自动故障转移

SAP HANA 主机自动故障转移是一种本地故障恢复解决方案,该解决方案要求在横向扩容系统中配备一个或多个备用 SAP HANA 主机。如果主要的主机之一出现故障,则主机自动故障转移会自动让备用主机上线,并将故障主机作为备用主机重启。

有关详情,请参阅:

SAP HANA 系统复制

借助 SAP HANA 系统复制,您可以配置一个或多个系统,以便在高可用性或灾难恢复场景中接管您的主系统。您可以在性能和故障转移时间方面调整复制,以满足您的需求。

Google Cloud 上的 SAP HANA 的操作系统原生高可用性集群

Linux 操作系统集群为应用状态提供应用和访客感知功能,并在发生故障时自动执行恢复操作。

虽然适用于非云环境的高可用性集群原则通常适用于 Google Cloud,但某些因素(例如防护和虚拟 IP)的实现方式有所不同。

您可以针对 Google Cloud 上的 SAP HANA 使用 Red Hat 或 SUSE 高可用性集群 Linux 发行版。

如需了解在 Google Cloud for SAP HANA 上部署和手动配置高可用性集群的说明,请参阅:

如需了解 Google Cloud 提供的自动化部署选项,请参阅适用于 SAP HANA 高可用性配置的自动部署选项

集群资源代理

Red Hat 和 SUSE 都为 Google Cloud 的资源代理提供了 Pacemaker 集群软件的高可用性实现。Google Cloud 的资源代理可以管理 STONITH 防护、通过路由或别名 IP 实现的 VIP 以及存储操作。

为了分发基本操作系统资源代理中尚未随附的更新,Google Cloud 会定期为 SAP 高可用性集群提供配套资源代理。如果这些配套资源代理是必要的,则 Google Cloud 部署过程会提供一个下载步骤。

防护

防护在 Google Cloud Compute Engine 操作系统集群上下文中,采用 STORITH 形式,可让双节点集群中的每个成员都能够重启另一个节点。

Red Hat 和 SUSE 提供的资源代理会在 Google Cloud 上管理 STONITH 防护。

虚拟 IP 地址

Google Cloud 上的 SAP 高可用性集群在发生故障转移时使用虚拟或浮动 IP 地址 (VIP) 将网络流量从一个主机重定向到另一个主机。

典型的非云端部署使用不必要的地址解析协议 (ARP) 请求,通告将 VIP 迁移并重新配置到新的 MAC 地址。

在 Google Cloud 上,您可以使用多种不同的方法之一,将 VIP 迁移并重新配置到高可用性集群,而非使用不必要的 ARP 请求。建议的方法是使用内部 TCP/UDP 负载平衡器,但根据需求,您还可以使用基于路由的 VIP 实现或基于别名 IP 的 VIP 实现。

如需详细了解 Google Cloud 上的 VIP 实现,请参阅 Google Cloud 上的虚拟 IP 实现

存储和复制

SAP HANA 高可用性集群配置使用同步 SAP HANA 系统复制功能,让主 SAP HANA 数据库和辅助 SAP HANA 数据库保持同步。SAP HANA 的标准操作系统提供的资源代理在故障转移期间管理系统复制功能,启动和停止复制功能,以及在复制过程中切换哪些实例用作主实例和备用实例。

如果您需要共享文件存储,则基于 NFS 或 SMB 的文件管理器可以提供必需的功能。

您可以选择第三方文件共享解决方案(例如 NetApp Cloud Volumes)作为高可用性共享存储解决方案。Google Cloud 提供 NFS 文件服务器解决方案 Filestore,但目前 Filestore 不提供跨区域高度可用的文件服务器。

Compute Engine 的地区永久性磁盘可以跨区域提供同步复制的块存储。虽然 SAP 高可用性系统中的数据库存储不支持地区永久性磁盘,但您可以将地区永久性磁盘用于 NFS 文件服务器。

如需详细了解 Google Cloud 存储选项,请参阅:

Google Cloud 上 HA 集群的配置设置

Google Cloud 建议将某些集群配置参数的默认值更改为更适合 Google Cloud 环境中的 SAP 系统的值。如果您使用 Google Cloud 提供的 Deployment Manager 模板,系统将为您设置建议值。

建议将值视为调整高可用性集群中 Corosync 设置的起点。您需要确认故障检测和故障转移触发的灵敏度是否适用于您的 Google Cloud 环境中的系统和工作负载。

Corosync 配置参数值

在 SAP HANA 的高可用性集群配置指南中,Google Cloud 为与几个不同于 Corrosync 或 Linux 分发器设置的默认值的 corosync.conf 配置文件的 totem 部分的多个参数建议值。

下表显示了 Google Cloud 推荐不同值的 totem 参数,以及建议值和更改值的影响。如需了解参数的默认值(可能因 Linux 发行版而异),请参阅 Linux 发行版的文档。

参数 推荐的值 更改的影响
join 60 (ms) 增加节点在成员资格协议中等待“加入”消息的时间。
max_messages 20 增加在接收令牌后节点可能发送的最大消息数。
token 20000 (ms)

增加节点等待终止协议协议令牌的等待时间,此节点会声明令牌丢失、假定节点故障并开始执行操作。

增加“令牌”参数的值可让集群更严密地处理基础架构基础架构事件(例如实时迁移),但可让集群从节点故障中检测并恢复所花的时间更长。

`token` 参数的值还决定了`conensus`参数的默认值,该参数用于控制节点在尝试重新建立配置成员资格前等待的时间。如果未指定“consenus”,Corosync 的值将设置为“token”参数值的 1.2 倍。

token_retransmits_before_loss_const 10 增加节点在由于收件人节点发生故障和执行操作前令牌重新递送的尝试次数。

如需详细了解如何配置 corosync.conf 文件,请参阅 Linux 发行版的配置指南:

超时和时间间隔设置

定义集群资源时,您可以为各种资源操作 (op) 设置 intervaltimeout 值(以秒为单位)。例如:

primitive rsc_SAPHanaTopology_HA1_HDB00 ocf:suse:SAPHanaTopology \
 operations \$id="rsc_sap2_HA1_HDB00-operations" \
 op monitor interval="10" timeout="600" \
 op start interval="0" timeout="600" \
 op stop interval="0" timeout="300" \
 params SID="HA1" InstanceNumber="00"

clone cln_SAPHanaTopology_HA1_HDB00 rsc_SAPHanaTopology_HA1_HDB00 \
 meta is-managed="true" clone-node-max="1" target-role="Started" interleave="true"

timeout 值会对各项资源操作产生不同的影响,如下表所述。

资源 Operation 在超时时执行的操作
monitor 如果超出超时时间,监控状态通常会报告失败,而关联资源将被视为失败状态。集群尝试尝试,其中可能包括故障转移。集群不会重试失败的监控操作。
start 如果资源在超时之前无法启动,则集群将尝试重启资源。该行为由与资源关联的失败操作决定。
stop 如果资源在超时之前没有响应停止操作,则会触发栅栏 (STONITH) 事件。

和其他集群配置设置一样,集群资源的 intervaltimeout 设置会影响集群软件检测故障和触发故障转移的速度。

Google Cloud 在适用于 Compute Engine 实时迁移维护事件的集群配置指南中建议的 timeoutinterval 值。

无论您使用哪个 timeoutinterval 值,在测试集群时都需要评估这些值,特别是在实时迁移测试期间,因为实时迁移事件的时长可能会略有不同(具体取决于系统使用的机器类型)和其他因素(例如系统利用率)。

测试 Google Cloud 上的 HA 集群

配置集群且将集群和 SAP HANA 系统部署到测试环境中后,您需要测试集群以确认 HA 系统配置正确且按预期运行。

如需确认故障转移是否按预期工作,请使用以下操作模拟各种故障场景:

  • 关停虚拟机
  • 创建内核故障
  • 关停应用
  • 中断实例之间的网络

此外,请在主要主机上模拟 Compute Engine 实时迁移事件,以确认它是否未触发故障转移。您可以使用 Cloud SDK 命令 gcloud compute instances simulate-maintenance-event 来模拟故障转移事件。

日志记录和监控

资源代理可能包括将日志传播到 Google Cloud 的运维套件以进行分析的日志记录功能。每个资源代理都包括用于标识任何日志记录选项的配置信息。如果是 bash 实现,则日志记录选项为 gcloud logging

您还可以安装 Cloud Logging 代理以捕获来自操作系统进程的日志输出,并将资源利用率与系统事件相关联。Logging 代理会捕获默认系统日志,其中包括来自 Pacemaker 和集群服务的日志数据。如需了解详情,请参阅关于 Logging 代理

如需了解如何使用 Cloud Monitoring 配置服务检查以监控服务端点可用性,请参阅管理正常运行时间检查

服务帐号和高可用性集群

集群软件可以在 Google Cloud 环境中执行的操作由授予每个主机虚拟机服务帐号的权限保护。对于高安全性环境,您可以限制主机虚拟机服务帐号中的权限,以遵循最低权限原则。

在限制服务帐号权限时,请注意,系统可能会与 Google Cloud 服务(如 Cloud Storage)互动,因此您可能需要在主机虚拟机服务帐号中为这些服务互动提供权限。

如需获取限制性最高的权限,请创建具有所需最低权限的自定义角色。如需了解自定义角色,请参阅创建和管理自定义角色。您可以在资源的 IAM 政策的角色绑定中添加条件以进一步限制权限,只允许访问特定资源实例(例如高可用性集群中的虚拟机实例)。

您的系统所需的最低权限取决于您的系统访问的 Google Cloud 资源以及系统执行的操作。因此,要确定高可用性集群中的主机虚拟机所需的最低权限,您可能需要准确调查主机虚拟机上的系统可以访问的资源以及这些系统对那些资源执行的操作。

首先,以下列表显示了一些高可用性集群资源及其需要的关联权限:

  • STONITH 防护
    • compute.instances.list
    • compute.instances.get
    • compute.instances.reset
    • compute.instances.stop
    • compute.instances.start
    • logging.logEntries.create
    • compute.zones.list
  • 使用别名 IP 来实现 VIP
    • compute.instances.list
    • compute.instances.get
    • compute.zones.list
    • logging.logEntries.create
    • compute.instances.updateNetworkInterface
    • compute.zoneOperations.get
    • logging.logEntries.create
  • 使用静态路由来实现的 VIP
    • compute.instances.list
    • compute.instances.get
    • compute.zones.list
    • logging.logEntries.create
    • compute.routes.get
    • compute.routes.create
    • compute.routes.delete
    • compute.routes.update
    • compute.routes.list
    • compute.networks.updatePolicy
    • compute.networks.get
    • compute.globalOperations.get
    • logging.logEntries.create
  • 使用内部负载平衡器来实现 VIP 的帐号
    • 不需要特定权限 - 负载平衡器(不需要集群与 Google Cloud 中的资源互动,也不需要集群更改这些资源)会处理运行状况检查状态。

Google Cloud 上的虚拟 IP 实现

在出现意外故障或进行计划维护时,高可用性集群使用浮动或虚拟 IP 地址 (VIP) 将其工作负载从一个集群节点迁移到另一个集群节点。VIP 的 IP 地址不会更改,因此客户端应用不知道工作是否由其他节点提供。

VIP 也称为浮动 IP 地址

在 Google Cloud 上,VIP 的实现方式与本地安装模式略有不同,因为发生故障转移时,无法使用免费 ARP 请求来公告更改。您可以改为使用下列其中一种方法来实现 SAP 高可用性集群的 VIP 地址:

内部 TCP/UDP 负载平衡 VIP 实现

负载平衡器通常会在应用的多个实例之间分配用户流量,以在多个活动系统之间分配工作负载,并防范任何实例出现处理速度变慢问题或发生故障。

内部 TCP/UDP 负载平衡服务还提供故障转移支持,您可以将其与 Compute Engine 运行状况检查结合使用,以检测故障、触发故障转移及将流量重新路由到操作系统原生高可用性集群中新的主 SAP 系统集群。

出于各种原因,内部 TCP/UDP 负载平衡故障转移支持成为推荐的 VIP 实现,包括:

  • Compute Engine 上的负载平衡可提供 99.99% 可用性 SLA。
  • 负载平衡支持多区域高可用性集群,以防范区域故障,令跨区域故障转移时间可预测。
  • 使用负载平衡可减少检测和触发故障转移所需的时间(通常在故障发生后的几秒钟内)。总体故障转移时间取决于高可用性系统中每个组件的故障转移时间,其中可能包括主机、数据库系统和应用系统等。
  • 使用负载平衡可简化集群配置并减少依赖项。
  • 与使用路由的 VIP 实现不同,借助负载平衡,您可以使用自己的 VPC 网络中的 IP 范围,根据需要预留和配置这些范围。
  • 负载平衡可轻松用于将流量重新路由到辅助系统,以便进行计划内维护中断。

在为 VIP 的负载平衡器实现创建运行状况检查时,您需要指定运行状况检查探测的主机端口,以确定主机的运行状况。对于 SAP 高可用性集群,请指定专用范围 (49152-65535) 中的目标主机端口,以免与其他服务发生冲突。在主机虚拟机上,使用辅助帮助程序服务(例如 socat 实用程序或 HAProxy)配置目标端口。

对于辅助备用系统仍然处于在线状态的数据库集群,运行状况检查和帮助程序服务允许负载平衡将流量定向到集群中当前作为主系统的在线系统。

使用帮助程序服务和端口重定向,您可以在 SAP 系统上触发计划软件维护的故障转移。

如需详细了解内部 TCP/UDP 负载平衡的故障转移支持,请参阅为内部 TCP/UDP 负载平衡配置故障转移

如需部署实现了负载平衡器 VIP 的高可用性集群,请参阅:

静态路由 VIP 实现

静态路由实现还可以防范区域故障,但您需要在虚拟机所在的现有 VPC 子网的 IP 范围之外使用 VIP。因此,您还需要确保 VIP 不会与扩展网络中的任何外部 IP 地址相冲突。

与共享 VPC 配置搭配使用时,静态路由实现还会增加复杂性,这些配置旨在将网络配置隔离到宿主项目中。

如果您的 VIP 使用静态路由实现方式,请咨询您的网络管理员,以便为静态路由实现确定合适的 IP 地址。

别名 IP VIP 实现

对于多区域高可用性部署,不建议使用别名 IP VIP 实现,因为如果一个区域发生故障,则可能会延迟将别名 IP 重新分配到其他区域中的节点。使用具备故障转移支持的内部 TCP/UDP 负载平衡来实现 VIP。

如果要在同一区域部署 SAP 高可用性集群的所有节点,则可以使用别名 IP 来为高可用性集群实现 VIP。

如果您的现有多区域 SAP 高可用性集群使用了 VIP 的别名 IP 实现,则可以迁移到内部 TCP/UDP 负载平衡实现,而无需更改您的 VIP 地址。别名 IP 和内部 TCP/UDP 负载平衡都使用 VPC 网络中的 IP 范围。

虽然别名 IP 地址不建议用于多区域高可用性集群中的 VIP 实现,但它们在 SAP 部署中有其他使用场景。例如,它们可用于为灵活的 SAP 部署提供逻辑主机名和 IP 分配,例如由 SAP Landscape Management 管理的那些部署。

Google Cloud 上 VIP 的一般最佳做法

如需详细了解 Google Cloud 上的 VIP,请参阅浮动 IP 地址的最佳做法

Google Cloud 上的 SAP HANA 主机自动故障转移

Google Cloud 支持 SAP HANA 主机自动故障转移,后者是 SAP HANA 提供的本地故障解决方案。主机自动故障转移解决方案使用一个或多个备用主机,这些主机保持预留状态,以便在主机发生故障时从主实例或工作器主机接管工作。备用主机不包含任何数据,也不处理任何工作。

故障转移完成后,故障主机将作为备用主机重启。

SAP 在 Google Cloud 上的横向扩容系统中最多支持三个备用主机。备用主机不计入 SAP 在 Google Cloud 上的横向扩容系统中支持的 16 个(最大数量)活跃主机。

如需 SAP 提供的关于主机自动故障转移解决方案的更多信息,请参阅主机自动故障转移

何时应使用 Google Cloud 上的 SAP HANA 主机自动故障转移功能

SAP HANA 主机自动故障转移功能可预防会影响到 SAP HANA 横向扩容系统中单个节点的故障,包括以下故障:

  • SAP HANA 实例
  • 主机操作系统
  • 主机虚拟机

对于主机虚拟机故障,Google Cloud 的自动重启(通常能比主机自动故障转移更迅速地恢复 SAP HANA 主机虚拟机)和实时迁移结合使用可针对计划内和计划外的虚拟机中断提供保护。因此,就虚拟机保护的目的而言,SAP HANA 主机自动故障转移解决方案并非必需。

SAP HANA 主机自动故障转移功能不能提供针对可用区级故障的保护,因为 SAP HANA 横向扩容系统的所有节点都部署在单个可用区中。

SAP HANA 主机自动故障转移不会将 SAP HANA 数据预加载到备用节点的内存中,因此当备用节点接管时,整体节点恢复时间主要取决于将数据加载到备用节点的内存中所需的时间。

在以下情况下,请考虑使用 SAP HANA 主机自动故障转移:

  • 存在 Google Cloud 可能无法检测到的 SAP HANA 节点的件或主机操作系统故障。
  • 直接原样迁移,您需要先重现本地 SAP HANA 配置,然后才能针对 Google Cloud 优化 SAP HANA。
  • 如果完全复制的、跨可用区高可用性配置会造成高昂费用,并且贵公司可以容忍以下情形:
    • 由于需要将 SAP HANA 数据加载到备用节点的内存,因此节点恢复时间更长。
    • 存在可用区故障的风险。

适用于 SAP HANA 的存储空间管理器

/hana/data/hana/log 卷仅装载在主实例和工作器主机上。发生接管时,主机自动故障转移解决方案使用 SAP HANA Storage Connector API 和适用于 SAP HANA 备用节点的 Google Cloud Storage Manager,将卷装载从备用主机移动到备用主机。

在 Google Cloud 上,使用 SAP HANA 主机自动故障转移的 SAP HANA 系统需要适用于 SAP HANA 的存储空间管理器。

适用于 SAP HANA 的存储空间管理器的 1.n 版本弃用

适用于 SAP HANA 的存储空间管理器 1.n 版本已被弃用。

如果您使用的是 2.0 以上的版本,请更新您的 SAP HANA 系统,以使用适用于 SAP HANA 的最新版存储空间管理器。

要确定您使用的版本是否已被弃用,请打开 gceStorageClient.py 文件。默认安装目录是 /hana/shared/gceStorageClient

从 2.0 版本开始,版本号会显示在 gceStorageClient.py 文件顶部的注释中,如以下示例所示。

如果没有在这里看到版本号,则表示您看到的是适用于 SAP HANA 的存储空间管理器 1.n 版本。对于 1.n 版本的支持将于 2021 年 12 月 31 日停止。

"""Google Cloud Storage Manager for SAP HANA Standby Nodes.

The Storage Manager for SAP HANA implements the API from the SAP provided
StorageConnectorClient to allow attaching and detaching of disks when
running in GCE.

Build Date: Wed Jan 27 06:39:49 PST 2021
Version: 2.0.20210127.00-00

"""

安装适用于 SAP HANA 的存储空间管理器

安装适用于 SAP HANA 的存储空间管理器的建议是,使用 Google Cloud 提供的 Deployment Manager 模板来部署包含适用于 SAP HANA 的最新存储管理器的横向扩容 SAP HANA 系统。

如果您需要将 SAP HANA 主机自动故障转移功能添加到 Google Cloud 上的现有 SAP HANA 横向扩容系统,建议您采用类似的方法:使用 Google Cloud 提供的 Deployment Manager 模板来部署新的横向扩容 SAP HANA 系统,然后将现有系统中的数据加载到新系统中。要加载数据,您可以使用标准 SAP HANA 备份和恢复过程,也可使用 SAP HANA 系统复制,这可能会缩短停机时间。如需详细了解系统复制,请参阅 SAP 说明 2473002 - 使用 HANA 系统复制来迁移横向扩容系统

如果您无法使用 Deployment Manager 模板,请与 SAP 解决方案顾问联系(例如可通过 Google Cloud 咨询服务找到),以获取手动安装适用于 SAP HANA 的存储空间管理器方面的帮助。

当前还没有手动将适用于 SAP HANA 的存储空间管理器安装到现有或新的横向扩容 SAP HANA 系统中的文档。

如需详细了解用于 SAP HANA 主机自动故障转移的 Deployment Manager 模板,请参阅自动部署具备 SAP HANA 主机自动故障转移的 SAP HANA 横向扩容系统

更新适用于 SAP HANA 的存储空间管理器

若要更新适用于 SAP HANA 的存储空间管理器,您可以先下载安装软件包,然后运行安装脚本,该脚本可更新 SAP HANA /shared 驱动器中的适用于 SAP HANA 的存储空间管理器的可执行文件。

以下过程仅适合“适用于 SAP HANA 的存储空间管理器”的版本 2。如果您使用的是存储于 2020 年 2 月 1 日之前的 SAP HANA 版本管理器,请先安装第 2 版,然后再尝试更新 SAP HANA 的存储管理器。

如需更新适用于 SAP HANA 的存储空间管理器,请执行以下操作:

  1. 检查适用于 SAP HANA 的当前存储空间管理器的版本:

    RHEL

    sudo yum check-update google-sapgcestorageclient

    SLES

    sudo zypper list-updates -r google-sapgcestorageclient
  2. 如有更新,请安装更新:

    RHEL

    sudo yum update google-sapgcestorageclient

    SLES

    sudo zypper update

    更新后的适用于 SAP HANA 的存储空间管理器会安装在 /usr/sap/google-sapgcestorageclient/gceStorageClient.py 中。

  3. 将现有的 gceStorageClient.py 替换为更新后的 gceStorageClient.py 文件:

    • 如果您的现有 gceStorageClient.py 文件位于默认安装位置 /hana/shared/gceStorageClient,请使用安装脚本更新该文件:

      sudo /usr/sap/google-sapgcestorageclient/install.sh
    • 如果现有的 gceStorageClient.py 文件不在 /hana/shared/gceStorageClient 中,请将更新后的文件复制到现有文件所在位置,以替换现有文件。

global.ini 文件中的配置参数

适用于 SAP HANA 的存储空间管理器的某些配置参数(包括是否启用防护机制)存储在 SAP HANA global.ini 文件的存储部分中。当您使用 Google Cloud 提供的 Deployment Manager 模板来部署具有主机自动故障转移功能的 SAP HANA 系统时,部署脚本会将配置参数添加到 global.ini 文件中。

以下示例展示了为适用于 SAP HANA 的存储空间管理器创建的 global.ini 的内容:

[persistence]
basepath_datavolumes = %BASEPATH_DATAVOLUMES%
basepath_logvolumes = %BASEPATH_LOGVOLUMES%
use_mountpoints = %USE_MOUNTPOINTS%
basepath_shared = %BASEPATH_SHARED%

[storage]
ha_provider = gceStorageClient
ha_provider_path = %STORAGE_CONNECTOR_PATH%

#
# Example configuration for 2+1 setup
#
# partition_1_*__pd = node-mnt00001
# partition_2_*__pd = node-mnt00002
# partition_3_*__pd = node-mnt00003
# partition_*_data__dev = /dev/hana/data
# partition_*_log__dev = /dev/hana/log
# partition_*_data__mountOptions = -t xfs -o logbsize=256k
# partition_*_log__mountOptions = -t xfs -o logbsize=256k
# partition_*_*__fencing = disabled

[trace]
ha_gcestorageclient = info

用于 SAP HANA 主机自动故障转移的 NFS 存储空间

具备主机自动故障转移功能的 SAP HANA 横向扩容系统需要 NFS 解决方案(例如 Filestore)以在所有主机之间共享 /hana/shared/hanabackup 卷。您必须自行设置 NFS 解决方案。

使用 Deployment Manager 时,您可以在 template.yaml 配置文件中提供有关 NFS 服务器的信息,以便 Deployment Manager 可以在部署期间装载 NFS 目录。

您使用的 NFS 卷必须是空的。任何现有文件都可能与 Deployment Manager 脚本发生冲突,尤其是在相应文件或文件夹引用 SAP 系统 ID (SID) 时。部署脚本无法确定能否覆盖这些文件。

Deployment Manager 将 /hana/shared/hanabackup 卷存储在 NFS 服务器上,并在所有主机(包括备用主机)上装载该 NFS 服务器。然后,主实例主机管理该 NFS 服务器。

如果要实现备份解决方案(例如适用于 SAP HANA 的 Cloud Storage Backint 代理),您可以在 Deployment Manager 完成部署后从 NFS 服务器中移除 /hanabackup 卷。

如需详细了解 Google Cloud 上可用的共享文件解决方案,请参阅适用于 SAP on Google Cloud 的文件共享解决方案

操作系统支持

目前,Google Cloud 仅在以下操作系统上支持 SAP HANA 主机自动故障转移:

  • RHEL for SAP 7.6 或更高版本
  • RHEL for SAP 8.1 或更高版本
  • SLES for SAP 12 SP2 或更高版本
  • SLES for SAP 15 或更高版本

(针对 Compute Engine 提供的 SAP 公共映像)。如需查看 Compute Engine 提供的公共映像,请参阅映像

具备主机自动故障转移的 SAP HANA 系统的架构

下图显示了 Google Cloud 上的横向扩容架构,其中包括 SAP HANA 主机自动故障转移功能。在该图中,适用于 SAP HANA 的存储空间管理器由其可执行文件 gceStorageClient 的名称表示。

下图显示的是工作器节点 2 发生故障并且备用节点接管的情况。 适用于 SAP HANA 的存储空间管理器与 SAP Storage Connector API(未显示)协同工作,以便将包含 /hana/data/hana/logs 卷的磁盘从故障工作器节点中分离出来,并将其重新装载到备用节点上,该备用节点随后或变为工作器节点 2,而故障节点将成为备用节点。

该图描绘了横向扩容 SAP HANA 系统的架构,其中包括对主机自动故障转移的支持

SAP HANA 高可用性配置的自动部署选项

Google Cloud 提供的 Deployment Manager 模板可用于自动部署 SAP HANA 高可用性系统,您也可以手动部署和配置 SAP HANA 高可用性系统。

Google Cloud 提供的 Deployment Manager 模板包括您完成的 template.yaml 配置文件。Deployment Manager 会读取配置文件并为您部署 SAP HANA 系统,该系统受 SAP 完全支持并遵循 SAP 和 Google Cloud 的最佳做法。

自动部署适用于 SAP HANA 的 Linux 高可用性集群

对于 SAP HANA,Deployment Manager 会部署一个优化了性能的高可用性 Linux 集群,其中包括:

  • 自动故障转移。
  • 自动重启。
  • 指定的虚拟 IP 地址(VIP)的保留。
  • 内部 TCP/UDP 负载平衡提供了故障转移支持,该支持管理从虚拟 IP 地址(VIP)到 HA 集群节点的路由。
  • 允许 Compute Engine 运行状况检查来监视集群中的虚拟机实例的防火墙规则。
  • Pacemaker 高可用性集群资源管理器。
  • Google Cloud 防护机制
  • 包含每个 SAP HANA 实例所需 Persistent Disk 的虚拟机。
  • 已配置 SAP HANA 实例以进行同步复制和内存预加载。

如需了解自动部署,请参阅自动执行实现了负载平衡器 VIP 的 SAP HANA 高可用性部署

自动部署具备 SAP HANA 主机自动故障转移的 SAP HANA 横向扩容系统

对于包含 SAP HANA 主机自动故障转移功能的 SAP HANA 横向扩容系统,Deployment Manager 将会部署:

  • 1 个主 SAP HANA 实例
  • 1 到 15 个工作器主机
  • 1 到 3 个备用主机
  • 每个 SAP HANA 主机 1 个虚拟机
  • 主实例主机和工作器主机的永久性磁盘

具备主机自动故障转移功能的 SAP HANA 横向扩容系统需要 NFS 解决方案(例如 Filestore)以在所有主机之间共享 /hana/shared/hanabackup 卷。为了使 Deployment Manager 可以在部署期间装载 NFS 目录,您必须先自行设置 NFS 解决方案,然后再部署 SAP HANA 系统。

您可以按照创建实例中的说明快速轻松地设置 Filestore NFS 服务器实例。

如需部署包含备用主机的横向扩容系统,请参阅具备 SAP HANA 主机自动故障转移功能的 SAP HANA 横向扩容系统部署指南

后续步骤

Google Cloud 和 SAP 都提供了高可用性的更多信息。

Google Cloud 关于高可用性的更多信息

如需详细了解 Google Cloud 上的 SAP HANA 高可用性,请参阅:

如需了解有关保护 Google Cloud 上的系统以防范各种故障场景的一般信息,请参阅设计可靠的系统

SAP 关于 SAP HANA 高可用性功能的更多信息

如需了解 SAP 提供的有关 SAP HANA 高可用性功能的更多信息,请参阅以下文档: