SAP S/4HANA 部署概览

本文档概要介绍了您可以使用 Workload Manager 中的引导式部署自动化工具部署的 SAP S/4HANA 系统,以及部署方面的其他注意事项。如需了解详情,请参阅 Google Cloud的 SAP S/4HANA 参考架构

SAP S/4HANA 部署流程

以下列表概述了 Workload Manager 在部署过程中完成的各种任务:

  • 启用所需的 API(如果项目中未启用)。
  • 配置和预配部署所需的基础架构。
  • 在虚拟机上配置操作系统。
  • 安装 SAP S/4HANA。
  • 将 SAP HANA 数据库完整备份到文件。
  • 为 SAP HANA 高可用性、所需的负载平衡器和健康检查配置 Pacemaker OS 集群(仅限 HA)
  • 启用 SAP HANA 系统复制 (HSR) 以实现高可用性。
  • 为 SAP 应用高可用性、所需的负载平衡器和健康检查配置 Pacemaker OS 集群。
  • 安装所选的 SAP 应用。
  • 启动 SAP HANA 数据库和已安装的 SAP 应用。
  • 在虚拟机上安装以下所需代理:
    • Google Cloud的 Agent for SAP
    • SAP Host Agent

成功部署的输出是一个空(“新建”)SAP S/4HANA 系统。如需详细了解成功部署后的后续步骤,请参阅 SAP S/4HANA 的部署后任务

使用 Google Cloud 控制台进行部署

当您选择使用 Google Cloud 控制台部署工作负载时,Workload Manager 会自动处理端到端部署,包括执行 Terraform 和 Ansible 脚本以及预配资源。您还可以访问部署过程中使用的所有底层文件。

Workload Manager 使用 Infrastructure Manager 自动执行部署流程。Infrastructure Manager 使用 Cloud Build 来初始化 Terraform 并运行其他 Terraform 命令。然后,Cloud Build 会将 Terraform 文件和 Terraform 状态文件存储在 Cloud Storage 存储分区中。

如需详细了解 Infrastructure Manager,请参阅 Infrastructure Manager 概览

除了 SAP 工作负载所需的 Compute Engine 资源之外,Terraform 还会部署一个 Ansible Runner 虚拟机,该虚拟机可以访问部署中的其他资源。Runner 虚拟机会自动执行 Ansible 脚本,以对已部署的基础架构执行进一步配置,包括操作系统配置、高可用性集群配置以及 SAP 应用安装流程的编排。

SAP S/4HANA 部署的高级架构

本部分概要介绍了使用 Workload Manager 中的引导式部署自动化工具部署 SAP S/4HANA 时部署的系统。请注意,确切架构可能会因您指定的配置和设置而异,并且图表中未包含所有已部署的资源。

除了这些资源之外,系统还会在主可用区部署一个临时 Ansible Runner 虚拟机,该虚拟机可以访问部署中的其他资源。Ansible Runner VM 会自动执行 Ansible 脚本,以对已部署的基础架构进行进一步配置,包括操作系统配置、高可用性集群配置以及 SAP 应用安装流程的编排。

具备高可用性的分布式模型

下图显示了一个具有高可用性的分布式部署,其中 Linux 集群设置为跨可用区设置,以帮助在给定可用区防范组件故障。

分布式 SAP S/4HANA(具有高可用性)
采用 HA 架构的分布式 SAP S/4HANA

分布式架构

下图展示了分布式部署中 SAP S/4HANA 的架构。

SAP S/4HANA 分布式
SAP S/4HANA 分布式架构

SAP HANA 磁盘布局

下图展示了 SAP HANA 数据库磁盘布局,该布局适用于分布式配置和分布式高可用性配置。

 Google Cloud上 SAP HANA 的推荐磁盘布局

上文磁盘布局中所述的磁盘会作为必需的 SAP HANA 文件系统的一部分直接挂载在操作系统中。这些磁盘不会被用作通过 LVM 创建的逻辑卷的一部分。例如,运行 df -h 命令时,输出类似于以下内容:

example-vm:~ # df -h | grep /dev/sd
    Filesystem                        Size  Used Avail Use% Mounted on
    /dev/sda3                          50G  4.3G   46G   9% /
    /dev/sda2                          20M  3.0M   17M  15% /boot/efi
    /dev/sda                           32G  293M   32G   1% /usr/sap
    /dev/sdc                          308G  164G  145G  54% /hana/data
    /dev/sdd                          128G   11G  118G   9% /hana/log
    /dev/sde                          256G   12G  245G   5% /hana/shared
    /dev/sdf                          256G   96G  161G  38% /hanabackup

部署期间创建的资源

Workload Manager 针对 SAP S/4HANA 部署使用以下 Google Cloud API 和服务。

Compute Engine

虚拟机实例

SAP S/4HANA 部署包含以下组件的 Compute Engine 资源。为这些组件配置虚拟机时,您只能选择经 SAP 认证的机器类型,以满足部署 S/4HANA 的大小要求。

  • SAP HANA 数据库
  • ASCS - ABAP SAP 中央服务
    • 包含任何 SAP ABAP 系统中都需要的消息服务器和 Enqueue Server。
    • 部署在自己的虚拟机实例上(在高可用性部署中),或是部署在托管 PAS 的虚拟机实例上。
    • 在高可用性部署中,ASCS 资源由 Linux 集群资源管理器(例如 Pacemaker)管理。
  • ERS - Enqueue Replication Server 或 Enqueue Replicator
    • 部署在高可用性部署中以保留锁定表的副本,以防 ASCS 实例发生问题。
    • 由 Linux 集群资源管理器(例如 Pacemaker)管理。
  • PAS - 主应用服务器。
    • SAP 系统的第一个或唯一一个应用服务器。
  • AAS - 附加应用服务器。
    • 通常用于应用级负载平衡。从应用层角度来看,您也可以安装多个 AAS 以实现更高的可用性。如果其中一个应用服务器出现故障,则连接到该应用服务器的所有用户会话都将终止,但用户可以重新登录到环境中的其他 AAS。
    • 在高可用性配置中,应用服务器会平均分配到主可用区和次要可用区。

存储选项

Persistent Disk 或 Hyperdisk 用于为 SAP S/4HANA 部署中的虚拟机实例提供存储容量。

系统会根据所选机器和块存储类型的 SAP S/4HANA 最佳实践自动计算每个卷的磁盘大小。

下表显示了在 SAP S/4HANA 部署中创建的磁盘。

适用于以下用途的虚拟机实例 磁盘 支持的类型*
HANA 数据库 启动 SSD 永久性磁盘
HANA 数据库 /hana/data 平衡永久性磁盘
SSD 永久性磁盘
Hyperdisk Extreme
HANA 数据库 /hana/log 平衡永久性磁盘
SSD 永久性磁盘
Hyperdisk Extreme
HANA 数据库 /hana/shared 平衡永久性磁盘
SSD 永久性磁盘
HANA 数据库 /usr/sap 平衡永久性磁盘
SSD 永久性磁盘
HANA 数据库 /hanabackup 平衡永久性磁盘
SSD 永久性磁盘
ASCS/ERS 启动 SSD 永久性磁盘
ASCS/ERS /usr/sap 平衡永久性磁盘
PAS/AAS 启动 SSD 永久性磁盘
PAS/AAS /usr/sap 平衡永久性磁盘
PAS/AAS export-interfaces 平衡永久性磁盘

*对于 SAP HANA 数据库,您可以选择平衡永久性磁盘、SSD Persistent Disk 或 Hyperdisk Extreme(如果所选机器类型支持)。如果您选择“平衡型永久性磁盘”或“SSD 永久性磁盘”,则部署中的所有磁盘均为所选磁盘类型。如果您选择 Hyperdisk Extreme,则只有 /data/log 卷使用 Hyperdisk Extreme,其他磁盘卷使用 SSD 永久性磁盘。

网络

共享 VPC

宿主项目中的共享 VPC 可用于在服务项目中进行部署。如果您选择“共享 VPC”,系统会在宿主项目中创建以下网络资源。

  • 防火墙规则
  • 网络 Filestore 实例
  • 转发规则

防火墙规则

在部署过程中,Workload Manager 会自动创建防火墙规则,以允许部署中的虚拟机之间进行必要的通信。在高可用性配置中,这些防火墙规则还提供对在指定子网中创建的负载平衡器执行健康检查的访问权限。

系统会创建以下防火墙规则:

  • DEPLOYMENT_NAME-communication-firewall:支持部署中的虚拟机实例之间的通信。
  • Ilb-firewall-ascs-DEPLOYMENT_NAMEIlb-firewall-ers-DEPLOYMENT_NAME:仅适用于高可用性配置。启用 ASCS 或 ERS 故障切换中使用的健康检查。
  • Ilb-firewall-db-DEPLOYMENT_NAME:仅适用于高可用性配置。启用在 SAP HANA 数据库故障切换中使用的运行状况检查。

使用共享 VPC 配置时,这些防火墙规则会在托管共享网络的宿主项目中创建。

负载平衡器和转发规则

在高可用性配置中,系统会创建以下负载平衡器和转发规则:

  • DEPLOYMENT_NAME-ascs-service
    • DEPLOYMENT_NAME-ascs-forwarding-rule
  • DEPLOYMENT_NAME-db-service
    • DEPLOYMENT_NAME-db-forwarding-rule
  • DEPLOYMENT_NAME-ers-service
    • DEPLOYMENT_NAME-ers-forwarding-rule

Cloud DNS

DNS 区域

在配置过程中,您可以选择为部署创建新的 DNS 区域,也可以选择现有 DNS 区域。

如果您创建新的 DNS 区域,则可用区名称和 DNS 名称如下所示:

  • 区域名称:DEPLOYMENT_NAME
  • DNS 名称:DEPLOYMENT_NAME-gcp.sapcloud.goog

无论您是创建新的区域还是选择现有区域,系统都会为每个虚拟机添加必要的 DNS 记录集。

使用共享 VPC 配置时,DNS 相关的配置和设置会在服务项目中进行。

Filestore

Filestore 企业版

Filestore Enterprise 是一种高性能、全托管式 NFS 文件存储,会附加到配置过程中指定的网络。在 ASCS 和 ERS 实例中,它用于传输文件、/usr/sap/SID/ascs/usr/sap/SID/ers 目录。在应用服务器上,它用于 sapmnt/SID 目录。

使用共享 VPC 配置时,Filestore Enterprise 实例会在宿主项目中创建。

安全注意事项

本部分介绍了 Workload Manager 为保护您在 Google Cloud上的部署而解决的安全注意事项。

服务账号和权限

在配置过程中,您必须指定一个服务账号,以便在部署工作负载时用于身份验证。Workload Manager 使用此服务账号的权限和凭据调用部署中使用的其他 API 和服务。 Google Cloud 选择服务账号后,Workload Manager 会自动评估所附加的 IAM 角色,以确定其是否具有部署系统所需的权限。如果缺少角色,系统会提示您授予缺少的角色(前提是您拥有必要的权限)。

用于部署 SAP S/4HANA 系统的服务账号需要具有以下角色。或者,您也可以创建自定义角色,以便在部署过程中分配所需的各项权限。请注意,所需的具体权限仅作示例之用。具体权限可能会因您选择的配置和项目配置而异。

所需 IAM 角色 使用场景 所需权限
Actions Viewer 必须提供,用于验证项目是否有效以及服务账号是否具有访问资源所需的权限。 resourcemanager.projects.get
Cloud Filestore Editor 创建和管理附加到部署的 Filestore Enterprise 共享存储卷所需的权限。 file.instances.create
file.instances.delete
file.instances.get
file.operations.get
Cloud Infrastructure Manager Agent 必须为 Infrastructure Manager 服务启用此权限,该服务用于在使用 Google Cloud 控制台进行部署时部署基础架构。 config.deployments.getLock
config.deployments.getState
config.deployments.updateState
logging.logEntries.create
storage.buckets.create
storage.buckets.delete
storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
Compute Admin
创建和管理为部署创建的所有计算资源所需的权限
compute.addresses.createInternal
compute.addresses.deleteInternal
compute.addresses.get
compute.addresses.useInternal
compute.disks.create
compute.disks.delete
compute.disks.get
compute.disks.setLabels
compute.disks.use
compute.firewalls.create
compute.firewalls.delete
compute.firewalls.get
compute.forwardingRules.create
compute.forwardingRules.delete
compute.forwardingRules.get
compute.forwardingRules.setLabels
compute.globalOperations.get
compute.healthChecks.create
compute.healthChecks.delete
compute.healthChecks.get
compute.healthChecks.useReadOnly
compute.instanceGroups.create
compute.instanceGroups.delete
compute.instanceGroups.get
compute.instanceGroups.update
compute.instanceGroups.use
compute.instances.create
compute.instances.delete
compute.instances.get
compute.instances.setLabels
compute.instances.setMetadata
compute.instances.setServiceAccount
compute.instances.setTags
compute.instances.use
compute.networks.get
compute.networks.updatePolicy
compute.regionBackendServices.create
compute.regionBackendServices.delete
compute.regionBackendServices.get
compute.regionBackendServices.use
compute.regionOperations.get
compute.subnetworks.get
compute.subnetworks.use
compute.subnetworks.useExternalIp
compute.zoneOperations.get
compute.zones.get
resourcemanager.projects.get
serviceusage.services.list
DNS Administrator
创建 DNS 区域和创建所需记录集所需的权限。
compute.networks.get
dns.changes.create
dns.changes.get
dns.managedZones.create
dns.managedZones.delete
dns.managedZones.get
dns.networks.bindPrivateDNSZone
dns.resourceRecordSets.create
dns.resourceRecordSets.delete
dns.resourceRecordSets.list
dns.resourceRecordSets.update
resourcemanager.projects.get

Project IAM Admin
向为部署的每个层创建的服务账号分配 IAM 角色所需的权限
resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.setIamPolicy

Service Account Admin

为部署的每个层创建服务账号并对其进行管理所需的权限。

iam.serviceAccounts.create

iam.serviceAccounts.delete

iam.serviceAccounts.get

iam.serviceAccounts.getIamPolicy

iam.serviceAccounts.list

iam.serviceAccounts.setIamPolicy

resourcemanager.projects.get

Service Account User

必须提供此权限,才能允许所选服务账号在调用其他产品和服务时充当服务账号
iam.serviceAccounts.actAs
iam.serviceAccounts.get
iam.serviceAccounts.list
resourcemanager.projects.get
Service Usage Admin 验证所需 API 的状态和启用 API(如有必要)的权限。 Serviceusage.services.list
serviceusage.services.enable
Storage Admin 访问和使用上传到 Cloud Storage 的 SAP 安装媒体文件所需的权限。 resourcemanager.projects.get
storage.buckets.getIamPolicy
storage.objects.get
storage.objects.getIamPolicy
storage.objects.list

使用共享 VPC 配置时,除了服务项目中需要的上述角色之外,宿主项目可能还需要以下 IAM 权限。

  • compute.firewalls.create
  • compute.firewalls.delete
  • compute.firewalls.get
  • compute.globalOperations.get
  • compute.networks.get
  • compute.networks.updatePolicy
  • compute.subnetworks.get
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • dns.networks.bindPrivateDNSZone
  • file.instances.create
  • file.instances.delete
  • file.instances.get
  • file.operations.get

对于 SAP S/4HANA 部署,Workload Manager 会代表部署工作负载的用户为部署中的每个层自动创建服务账号。Workload Manager 仅向这些服务账号提供其在部署中的角色所需的权限。

服务账号: 服务账号电子邮件地址 分配的 IAM 角色
Ansible Runner 虚拟机 DEPLOYMENT_NAME-ansible@PROJECT_ID.iam.gserviceaccount.com
Compute Instance Admin (v1)
Compute Viewer
DNS Administrator
Logging Admin
Monitoring Admin
Role Viewer
Secret Manager Secret Accessor
Secret Manager Viewer
Service Account User
Storage Object Viewer
Workload Manager Insights Writer
SAP ASCS / ERS 虚拟机 DEPLOYMENT_NAME-ascs@PROJECT_ID.iam.gserviceaccount.com Compute Instance Admin (v1)
Compute Viewer
Logging Admin
Monitoring Admin
Monitoring Metric Writer
Storage Object Viewer
Workload Manager Insights Writer
应用虚拟机 DEPLOYMENT_NAME-app@PROJECT_ID.iam.gserviceaccount.com Compute Viewer
Logging Admin
Monitoring Admin
Monitoring Metric Writer
Storage Object Viewer
Workload Manager Insights Writer
数据库虚拟机 DEPLOYMENT_NAME-db@PROJECT_ID.iam.gserviceaccount.com
Compute Instance Admin (v1)
Compute Viewer
Logging Admin
Monitoring Admin
Monitoring Metric Writer
Storage Object Viewer
Workload Manager Insights Writer

替换以下内容:

  • DEPLOYMENT_NAME:SAP 部署的名称。
  • PROJECT_ID:您创建部署的 Google Cloud 项目的 ID。

如需详细了解在 Google Cloud上运行 SAP 的 IAM 和权限,请参阅 Google Cloud上的 SAP 程序的身份和访问权限管理

SAP 数据库和应用用户凭据

Workload Manager 使用 Secret Manager 存储 SAP 系统的凭据,例如管理员账号和 SYSTEM 用户账号的密码。如需安全地提供密码,您必须创建一个 Secret,并在部署过程中使用该 Secret。您可以创建单独的 Secret 来存储数据库层和应用层的凭据。为 SAP HANA 提供的 Secret 将用作以下用户的初始密码:

  • 系统数据库:
    • SYSTEM
    • SERVICE_BACKUP
    • DBACOCKPIT
  • HANA 租户数据库:
    • SYSTEM
    • SERVICE_BACKUP
  • S/4HANA 租户数据库:
    • SYSTEM
    • SAPDBCTRL
    • DBACOCKPIT
    • SAPHANADB

应用凭据适用于客户端 000 中的以下用户:

  • DDIC
  • SAP*

成功部署后,您可以修改或为这些用户分配新密码。

必需的 API

如需部署 SAP S/4HANA 工作负载,您需要启用以下 API 和服务。如果您用于部署的服务账号具有必要的权限,则在部署过程中,这些 API 会通过 Terraform 自动启用。您需要遵守上述各项服务的服务条款;在部署后,解决方案中使用这些服务时,您将开始产生费用。

获取支持

请参阅获取 Google Cloud 上的 SAP 支持

后续步骤