全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网

SAP HANA 高可用和灾备

更新时间:2017-08-23 15:53:36

阿里云服务的高可用性

全球基础设施

地域和可用区

阿里云基础设施分布在全球许多不同的地域和可用区。地域(Region) 是指全球某个部署有阿里云基础设施的物理地点;绝大多数情况下,在该地点,我们会有多个可用区。您可以选择离您的用户最近的阿里云基础设施来部署您的SAP系统,从而满足法律和其他业务需求。地域之间的基础设施相互独立;阿里云不会自动的对您在不同地域的基础设施中的资源之间进行同步。

可用区(Zone) 是指在同一地域内,电力和网络互相独立的数据中心。可用区让您在阿里云上运行的生产系统与数据库拥有更高的可用性、更强的容错能力和更好的可扩展能力。

阿里云目前在全球范围内运行有14个地域和29个可用区。关于阿里云地域和可用区的更详细信息,请访问 阿里云全球基础设施

通过多个可用区来实现高可用性

阿里云过去多年提供云计算服务的经验告诉我们:对应用程序高可用性和性能更关注的客户,可以通过把应用程序部署在同一地域的不同可用区来实现更好的容错能力和更低的网络时延。

在同一地域内,可用区与可用区之间内网互通,可用区之间能做到故障隔离;这样的架构能够让您通过将应用程序部署在同一地域的不同可用区中,来实现应用程序遇到问题时候,系统自动在不同的可用区之间进行故障切换,而无需人工参与。

通过跨地域数据同步来提高系统的持续性

在阿里云上,块存储(云盘)会在可用区内自动复制您的业务数据,防止意外的硬件故障导致数据不可用,以保护您的业务免于组件故障的威胁。除此之外,您还可以选择将业务数据存放在对象存储(OSS)中,在不同的地域之间进行同步来达到进一步的数据冗余。

计算

云服务器 ECS 是阿里云最核心的服务之一。它让您可以在短短几分钟内,通过部署一个 ECS 实例,实时的满足您的计算需求:不同的CPU、内存、操作系统、IP 地址等等。

简洁的阿里云控制台让您轻松选择不同操作系统来运行应用程序,并且管理网络访问的权限。在控制台中,您可以也使用各种最新的存储功能,如:自动快照。自动快照 让您可以迅速拷贝和复制一个云服务器,对于您测试新的功能与操作系统非常有效。更多详细信息,请访问 云服务器 ECS

存储

块存储(云盘),是阿里云为云服务器 ECS 提供的低时延、持久性、高可靠的数据块级随机存储。您可以为一个 ECS 实例挂载多个云盘来持久地保存数据。您可以对挂载到 ECS 实例的云盘进行格式化、创建文件系统,并且在上面存放数据。由于不同业务场景对于 I/O 性能有完全不同需求,阿里云提供了不同类型的云盘,让您可以单独或者组合使用不同类型的云盘,来满足相应需求。在同一可用区内,云盘上的数据都会有3份副本被自动保存在不同的位置,来帮助您最大程度的保护数据安全。与此同时,您也可以使用云盘快照来保存和恢复您的云盘。您也可以按照您的意愿,对云盘配置自动快照策略。更多详细信息,请访问 块存储

对象存储(OSS),是阿里云提供的一种使用简单、价格低廉的存储服务。OSS 能够用来在阿里云上,长期保存备份和归档数据。存放在 OSS 中的文件,可以在全球任何一个地方被安全的访问。OSS 可以达到 99.99999999% 数据可靠性,非常适合全球团队和国际项目的数据存储。OSS 提供跨地域数据复制功能,允许您将数据在不同地域之间进行实时同步。对于 SAP 解决方案,OSS非常适合用来长期保存数据库备份文件、SAP 归档文件等。更多详细信息,请访问 对象存储 OSS

宕机自动迁移

宕机自动迁移 功能是云服务器 ECS 的一个提高云服务器高可用性的功能。当部署在物理机上的云服务器 ECS 由于底层物理机性能出现异常或者其他原因导致物理机宕机时,ECS 实例会启动保护性迁移,将受影响的 ECS 实例迁移到性能正常的物理机上,ECS 实例的实例 ID、私有 IP 地址、弹性公网 IP 地址及实例的元数据等都不变。

同时,阿里云会发送宕机迁移短信通知受影响的用户。为了有效利用云服务器 ECS 的宕机自动迁移功能来提高 SAP HANA 运行环境的高可用性,我们推荐您将 ECS 实例内部的 SAP HANA 设置为开机自动启动。关于云服务器 ECS 宕机迁移的更多细节,请访问相关文档 云服务器 ECS 宕机迁移 FAQ

注意:宕机自动迁移功能只对挂载云盘的 ECS 实例有效。对于使用本地磁盘的 ECS 实例,当系统发送了宕机短信通知之后,阿里云服务专家将会联系客户一起决定下一步操作。

阿里云上支持的 SAP HANA 原生高可用性方案

SAP HANA 服务自动重启(Auto-Restart Service)

当 SAP HANA 的服务,如 Index Server、Name Server 等,由于程序奔溃,或者管理员的人工干预导致停止运行时,SAP HANA 会通过自动重启监控进程发现被停止的服务,并且将其重启。在重启过程中,服务会将数据装载进内存并且恢复它的相关功能。服务自动重启在恢复数据安全的同时,也需要相应的时间。

SAP HANA 服务自动重启,在阿里云平台上与其他平台上运行没有区别。

SAP HANA 节点失效自动切换(Host Auto-Failover)

SAP HANA 节点失效自动切换是 SAP 提供的一个 N+m 节点宕机恢复解决方案。一台或多台节点可以被配置为待命状态,加入到一个单节点或者分布式的 SAP HANA 系统中;系统中处于待命状态的节点,不会存放任何数据,也不会接受任何请求和查询。

当一个工作节点不可用时,系统中的一个待命节点会自动接管它的工作。因为待命节点可能接管系统中任何一个工作节点的工作,因此它必须可以访问所有数据库的数据。这个需要通过共享网络存储(NFS)或者存储连接接口(storage connector API)实现。

阿里云建议您可以充分利用阿里云 ECS 的宕机自动迁移功能,即当您的 ECS 实例所在的物理机出现问题的时候,ECS 实例被自动移动到同一可用区内另一个没有问题的物理机上。本质上,该功能让您可以在无需任何额外费用的情况下,即可拥有一个高可用的 ECS 实例。在新的物理机上恢复的 ECS 实例,和原实例完全相同,包括:存储、各种配置、IP 地址、ECS 实例 ID。同时,我们建议您将 SAP HANA 配置为开机自动启动,以便在您的 SAP HANA ECS 实例发生宕机自动迁移之后,HANA 服务会自动恢复。另一方面,重启之后,将数据加载到内存也需要一定的时间,具体所需要的时间,会因为 HANA 数据量不同而不同。

SAP HANA 系统复制(HANA System Replication)

SAP HANA 系统复制(HANA System Replication, 简称 HSR)是 SAP HANA 提供的高可用和容灾解决方案。通常,经过 HSR 设置,备用节点系统被配置为主节点的一个完全拷贝。

备用节点可以被放置在主节点附近,来构建一个快速的故障切换解决方案,用来解决计划内宕机,或者主节点存储系统损坏及其他本地错误;备用节点也可以被安装在远端(通常是异地),用来构架容灾解决方案。根据您对于恢复时间目标(RTO)和数据库的恢复点目标(RPO)的不同要求,HSR 允许您有完全多种不同的设置:内存同步、同步、异步。关于 HSR 的更多详细信息,请参见 SAP 的官方文档 How to Perform System Replication for SAP HANA

SAP HANA 系统复制在阿里云上完全支持,而且您可以将 HSR 和阿里云的可用区有效结合来更好地保护您的数据安全。通常,同一地域的同一可用区内的网络速度会更加快,我们会建议内在同一可用区内配置的 HSR 设置为同步;而不同的地域的 HSR,我们建议配置为异步。

SAP HANA 备份与恢复

虽然 SAP HANA 是内存数据库,但为了在例如突然停电时,能够恢复数据并确保数据不丢失,所有数据修改都会被 SAP HANA 保存在持久存储系统中。为了在灾难发生后,能够恢复数据,还必须定期将持久存储系统中的数据和数据库日志备份到远端。关于 SAP HANA 数据库更多的备份和恢复细节,请参见 SAP 官方文档 Backup and Recovery - SAP HANA

您在阿里云上进行 SAP HANA 数据库的备份和恢复,和在其他平台上没有任何区别。而且您还能利用对象存储 OSS 安全、持久、高度可扩展、性价比高的优势,将 HANA 备份文件放到 OSS bucket 中长期保存,或者通过对存放 HANA 备份文件的云盘做快照的方式来实现灾备。

关于存储复制的说明

SAP HANA 硬件合作伙伴为 SAP HANA 灾备提供了存储系统级别的系统复制解决方案,来将 SAP HANA 数据库的相关数据、日志或者文件系统等同步到远端的联网的存储系统上,得以实现灾难过后,在尽可能短的恢复时间目标(RTO)内恢复 SAP HANA 数据库。

但是,阿里云上无法提供存储级别的复制(Storage Replication)。

阿里云上的 SAP HANA 高可用性和容灾方案

您需要结合您的业务场景和业务关键程度,来选择在阿里云上为您的 SAP HANA 系统选择合适的高可用性和容灾方案。作为最核心的两个考量因素:

  • Recovery Point Objective (RPO) = 恢复点目标,主要考量有多少数据丢失
  • Recovery Time Objective (RTO) = 恢复时间目标,主要考量服务不可用时间有多长

相关概念,可参考下图
sap-hana-hadr-rporto

对于各方案的 RPO、RTO、以及成本的简单比较

方案 成本 RPO RTO
SAP HANA 系统复制 ¥¥
SAP HANA 系统复制 + 备用节点作为开发和测试环境 ¥¥¥
SAP HANA 系统复制 + 备用节点数据预加载 ¥¥¥
ECS 宕机自动迁移 + SAP HANA 备份与恢复

ECS 宕机自动迁移

通常情况下,云服务器 ECS 宕机自动迁移功能可以帮助您在 ECS 实例所在底层物理硬件发生故障的时候,自动将您的 SAP HANA ECS 实例恢复到 同一可用区 内的另外一台物理机上运行。而当整个可用区出现故障的时候,您可以参考以下 跨可用区方案 来帮助您保护 SAP HANA 数据库中的数据。

SAP HANA 系统复制

您将 SAP HANA 主节点部署在可用区 A,备用节点部署在可用区 B,两个节点之间配置了 HSR。因为使用了 HSR,SAP HANA 主节点上的数据变化,会被持续地复制到备用节点上。当可用区 A 内的主节点不可用时,您可以立刻在可用区 B 内的备用节点上恢复整个 HANA 实例。

注意:在这个场景中,您需要将 HSR 配置异步同步,这样主节点不需要因为等待备用节点的同步反馈而产生性能影响。

sap-hana-hadr-hsr-without-preload

这里需要说明一下,HSR 有一个配置选项:备用节点预加载

如果该预加载选项被关闭,同步到备用节点的数据不会被加载到备用节点的内存中。这也意味着对于备用节点,您可以选择相对较低配置的 ECS 实例,从而降低总的运行成本。在故障切换的过程中,您可以将备用节点的 ECS 实例配置调整为与主节点 ECS 实例配置相同。当 SAP HANA 系统在备用节点上被完全恢复起来之后,您再将客户端的 HANA 访问重新定向到备用节点。

SAP HANA 系统复制 + 备用节点作为开发和测试环境

基于 SAP HANA 的 HSR 方案,你还可以更加充分地利用您的备用节点,降低总的运维成本。通常,您选用的备用节点的 ECS 实例配置和主节点的完全相同。而在备用节点的 ECS 实例中,除了配置 HANA HSR 备用节点,还可以安装您的 HANA 开发和测试环境。

当系统发生故障切换时,备用节点的 HANA 实例将提供整个 HANA 数据库服务,这时您必须将备用节点上的 HANA 开发和测试环境关闭,将其占用的资源释放出来给 HANA 生产环境使用。当备用节点上的 SAP HANA 运行正常后,您就可以将客户端的 HANA 访问重新定向到备用节点。

sap-hana-hadr-hsr-devqa

SAP HANA 系统复制 + 备用节点数据预加载

前面提到 HSR 的配置选项 备用节点预加载

如果该预加载选项被开启,这意味着同步到备用节点的数据会在第一时间被加载到备用节点的内存中。这样的好处是,您的备用节点需要更少的时间就可以将 HANA 系统投入正常运行。不过使用这种方案要求备用节点的 ECS 实例配置必须和主节点的始终保持一致。

sap-hana-hadr-hsr-with-preload

ECS 宕机自动迁移 + SAP HANA 备份与恢复

您可以通过自定义镜像,在另外一个可用区(比如下图中的可用区 B)重新搭建一个和原来配置一样的 ECS 实例,并且将保存在别的地域的 OSS bucket 中的 SAP HANA 数据库备份文件,拷贝到新的 ECS 实例所挂载的云盘。一旦备份文件拷贝到了 ECS 实例挂载的云盘,您就可以通过 SAP HANA 的恢复功能,在新的实例上恢复 SAP HANA 数据库。当 SAP HANA 数据库在新的 ECS 实例上正常运行后,您可以将客户端的 HANA 访问切换到新的 ECS 实例来。

sap-hana-hadr-backuprestore

SAP HANA 数据库的恢复点(RPO),依赖于您备份 SAP HANA 数据库的频率和将备份文件拷贝到 OSS 中的频率。

节点失效时触发接管程序

为了启动容灾功能,您还需要考虑如何触发 SAP HANA 系统复制的备用节点的接管程序。具体c操作,请参考 HSR 官方文档 How to Perform System Replication for SAP HANA 中系统接管流程 (Takeover) 的章节。

此外,在 SAP Note 2063657 中也提供了 SAP 官方的指导方针,帮助您决定备用节点接管是否是一个最佳选择。

SAP HANA 客户端重定向

在 SAP HANA 的备用节点接管工作最后,您需要确保 SAP HANA 的各类客户端应用(例如: NetWeaver 应用服务器、JDBC 链接、ODBC 连接等)能够在故障切换完成后,和新的 SAP HANA 服务器节点之间建立连接。然后您可以通过更新客户端的 SAP HANA 数据库的 IP 地址或者 DNS 来完成重定向。

关于 SAP HANA 故障切换后,客户端访问重定向的更详细解释,请参见 SAP HANA Administration Guide 中 “Client Connection Recovery” 章节。

更多参考文档

本文导读目录