SAP S/4HANA 部署總覽

本文將概略說明您可使用 Workload Manager 中的引導式部署自動化工具部署的 SAP S/4HANA 系統,以及部署作業的其他注意事項。詳情請參閱 Google Cloud的 SAP S/4HANA 參考架構

SAP S/4HANA 部署程序

以下清單概略說明 Workload Manager 在部署程序期間完成的各種工作:

  • 啟用必要的 API (如果專案中未啟用)。
  • 設定及佈建部署作業所需的基礎架構。
  • 設定 VM 上的作業系統。
  • 安裝 SAP S/4HANA。
  • 將 SAP HANA 資料庫完整備份至檔案。
  • 針對 SAP HANA 高可用性、必要的負載平衡器和健康情況檢查 (僅限 HA),設定 Pacemaker OS 叢集
  • 啟用 SAP HANA 系統複製 (HSR) 功能,以便實現高可用性。
  • 設定 Pacemaker OS 叢集,以便提供 SAP 應用程式高可用性、必要的負載平衡器和健康狀態檢查。
  • 安裝所選 SAP 應用程式。
  • 啟動 SAP HANA 資料庫和已安裝的 SAP 應用程式。
  • 在 VM 上安裝下列必要代理程式:
    • Google Cloud的 Agent for SAP
    • SAP 主機代理程式

成功部署的輸出內容是空白 (「綠地」) 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 VM,以便存取部署中的其他資源。Runner VM 會自動執行 Ansible 指令碼,進一步設定已部署基礎架構,包括 OS 設定、HA 叢集設定,以及 SAP 應用程式安裝程序的調度。

SAP S/4HANA 部署的總體架構

本節概要說明在 Workload Manager 中使用引導式部署自動化工具部署 SAP S/4HANA 時,所部署的系統。請注意,實際架構可能會因您指定的設定而異,且圖表中並未列出所有已部署的資源。

除了這些資源之外,我們也會在主要可用區部署臨時 Ansible Runner VM,讓該 VM 能夠存取部署項目中的其他資源。Ansible Runner VM 會自動執行 Ansible 指令碼,進一步設定已部署基礎架構,包括 OS 設定、HA 叢集設定,以及 SAP 應用程式安裝程序的調度。

高可用性分散式

下圖顯示高可用性的分散式部署作業,其中 Linux 叢集會跨區域設定,有助於避免元件在特定地區運作時發生故障。

以 HA 分發的 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 會使用下列 Google Cloud API 和服務來部署 SAP S/4HANA。

Compute Engine

VM 執行個體

SAP S/4HANA 部署作業包含下列元件的 Compute Engine 資源。為這些元件設定 VM 時,您只能選取 SAP 認證的機器類型,以符合部署 S/4HANA 的大小需求。

  • SAP HANA 資料庫
  • ASCS:ABAP SAP Central Services
    • 包含訊息伺服器和排入佇列伺服器,這是任何 SAP ABAP 系統的必要條件。
    • 在 HA 部署中部署於專屬的 VM 執行個體,或是部署在代管 PAS 的 VM 執行個體。
    • 在 HA 部署中,ASCS 資源是由 Linux 叢集資源管理工具 (例如 Pacemaker) 管理。
  • ERS – Enqueue Replication Server 或 Enqueue Replicator
    • 在 HA 部署中部署,以便在 ASCS 例項發生問題時保留鎖定表格的備用資源。
    • 由 Linux 叢集資源管理工具 (例如 Pacemaker) 管理。
  • PAS:主要應用程式伺服器。
    • SAP 系統的第一個或唯一應用程式伺服器。
  • AAS:額外的應用程式伺服器。
    • 通常用於應用程式層級的負載平衡。您也可以安裝多個 AAS,從應用程式層的角度提高可用性。如果其中一個應用程式伺服器故障,連線至該應用程式伺服器的所有使用者工作階段都會終止,但使用者可以再次登入環境中其他 AAS。
    • 在高可用性設定中,應用程式伺服器會平均分配到主要和次要區域。

儲存空間選項

永久磁碟或 Hyperdisk 可用於為 SAP S/4HANA 部署中的 VM 執行個體提供儲存空間。

系統會根據所選機器和區塊儲存類型的 SAP S/4HANA 最佳做法,自動計算每個磁區的磁碟大小。

下表列出在 SAP S/4HANA 部署中建立的磁碟。

VM 執行個體適用於: 磁碟 支援的類型*
HANA 資料庫 boot SSD 永久磁碟
HANA 資料庫 /hana/data 平衡永久磁碟
SSD 永久磁碟
Hyperdisk Extreme
HANA 資料庫 /hana/log 平衡永久磁碟
SSD 永久磁碟
超級 Hyperdisk
HANA 資料庫 /hana/shared 已平衡的永久磁碟
SSD 永久磁碟
HANA 資料庫 /usr/sap 已平衡的永久磁碟
SSD 永久磁碟
HANA 資料庫 /hanabackup 已平衡的永久磁碟
SSD 永久磁碟
ASCS/ERS boot SSD 永久磁碟
ASCS/ERS /usr/sap 平衡型永久磁碟
PAS/AAS boot SSD 永久磁碟
PAS/AAS /usr/sap 平衡型永久磁碟
PAS/AAS export-interfaces 平衡型永久磁碟

*如果所選機器類型支援,您可以為 SAP HANA 資料庫選取平衡永久磁碟、SSD 永久磁碟或 Hyperdisk Extreme。如果選取「平衡永久磁碟」或「SSD 永久磁碟」,部署中的所有磁碟都是所選磁碟類型。如果選取 Hyperdisk Extreme,只有 /data/log 磁碟區會使用 Hyperdisk Extreme,其他磁碟區則會使用 SSD 永久磁碟。

網路

共用虛擬私有雲

主專案中的共用虛擬私有雲可用於服務專案中的部署作業。如果選取共用虛擬私有雲,系統會在主專案中建立下列網路資源。

  • 防火牆規則
  • 網路 Filestore 執行個體
  • 轉送規則

防火牆規則

在部署程序期間,Workload Manager 會自動建立防火牆規則,允許部署項目中的 VM 進行必要通訊。在高可用性設定中,這些防火牆規則還可讓您對在指定子網路中建立的負載平衡器執行健康狀態檢查。

Workload Manager 會建立下列防火牆規則:

  • DEPLOYMENT_NAME-communication-firewall:啟用部署中 VM 執行個體之間的通訊。
  • Ilb-firewall-ascs-DEPLOYMENT_NAMEIlb-firewall-ers-DEPLOYMENT_NAME:僅適用於高可用性設定。啟用 ASCS 或 ERS 容錯時使用的健康狀態檢查。
  • Ilb-firewall-db-DEPLOYMENT_NAME:僅適用於高可用性設定。啟用 SAP HANA 資料庫容錯移轉中使用的健康檢查。

使用共用虛擬私有雲設定時,系統會在主機專案中建立這些防火牆規則,該專案會代管要共用的網路。

負載平衡器和轉送規則

在高可用性設定中,系統會建立下列負載平衡器和轉送規則:

  • 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

DNS 區域

在設定程序期間,您可以選擇使用 Workload Manager 為部署作業建立 Cloud DNS 區域。或者,您也可以在設定期間略過 DNS 區域建立作業,稍後再手動設定 DNS 區域。

Workload Manager 會使用以下名稱建立區域和 DNS:

  • 區域名稱:DEPLOYMENT_NAME
  • DNS 名稱:DEPLOYMENT_NAME-gcp.sapcloud.goog

Workload Manager 會為部署中的每個 VM 新增必要的 DNS 記錄集。

使用共用虛擬私有雲設定時,DNS 相關設定和設定會在服務專案中進行。

Filestore

Filestore Enterprise 是高效能的全代管 NFS 檔案儲存空間,會在設定程序中指定的網路中附加。在 ASCS 和 ERS 執行個體上,這項功能會用於傳輸檔案、/usr/sap/SID/ascs/usr/sap/SID/ers 目錄。在應用程式伺服器上,此值用於 sapmnt/SID 目錄。

使用共用虛擬私人雲端設定時,系統會在主機專案中建立 Filestore Enterprise 執行個體。

安全性考量

本節說明 Workload Manager 為了確保 Google Cloud上的部署作業安全,所採取的安全性考量。

服務帳戶和權限

在設定程序期間,您必須指定服務帳戶,以便在部署工作負載時用於驗證。Workload Manager 會使用這個服務帳戶的權限和憑證,呼叫部署作業中使用的其他 Google Cloud API 和服務。選取服務帳戶後,Workload Manager 會自動評估已附加的 IAM 角色,判斷該帳戶是否具備部署系統所需的權限。如果缺少角色,系統會提示您授予缺少的角色 (前提是您具備必要權限)。

用於部署 SAP S/4HANA 系統的服務帳戶必須具備下列角色。或者,您也可以建立自訂角色,指派部署程序中所需的個別權限。請注意,我們僅為示範目的而顯示必要的特定權限。具體權限可能會因所選設定和專案設定而異。

必要的 IAM 角色 用途 所需權限
動作檢視者 必須驗證專案是否有效,以及服務帳戶是否具備存取資源的必要權限。 resourcemanager.projects.get
Cloud Filestore 編輯者 建立及管理部署項目所附 Filestore Enterprise 共用儲存空間磁碟區所需的權限。 file.instances.create
file.instances.delete
file.instances.get
file.operations.get
Cloud Infrastructure Manager 代理 使用 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 管理員
建立及管理部署作業所建立的所有運算資源所需的權限
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 管理員
建立 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

專案 IAM 管理員
將 IAM 角色指派給為部署的各層所建立的服務帳戶時,所需的權限
resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.setIamPolicy

服務帳戶管理員

為部署作業的各個層建立及管理服務帳戶所需的權限。

iam.serviceAccounts.create

iam.serviceAccounts.delete

iam.serviceAccounts.get

iam.serviceAccounts.getIamPolicy

iam.serviceAccounts.list

iam.serviceAccounts.setIamPolicy

resourcemanager.projects.get

服務帳戶使用者

必須選取,才能讓所選服務帳戶在呼叫其他產品和服務時,以服務帳戶身分執行
iam.serviceAccounts.actAs
iam.serviceAccounts.get
iam.serviceAccounts.list
resourcemanager.projects.get
服務使用情形管理員 權限:驗證必要 API 的狀態,並視需要啟用 API。 Serviceusage.services.list
serviceusage.services.enable
儲存空間管理員 存取及使用上傳至 Cloud Storage 的 SAP 安裝媒體檔案所需的權限。 resourcemanager.projects.get
storage.buckets.getIamPolicy
storage.objects.get
storage.objects.getIamPolicy
storage.objects.list

使用共用虛擬私有雲設定時,除了服務專案中需要的上述角色外,主專案可能還需要下列 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

您可以使用 Workload Manager,為部署中的每個層建立下列服務帳戶。Workload Manager 只會為這些服務帳戶提供所需權限,以便在部署中執行其角色。或者,您也可以選取現有的服務帳戶,該帳戶具備部署作業中各層所需的 IAM 權限。

服務帳戶: 服務帳戶電子郵件地址 指派的 IAM 角色
Ansible Runner VM DEPLOYMENT_NAME-ansible@PROJECT_ID.iam.gserviceaccount.com
Compute 執行個體管理員 (v1)
Compute 檢視者
DNS 管理員
記錄管理員
監控管理員
角色檢視者
Secret Manager 密鑰存取者
Secret Manager 檢視者
服務帳戶使用者
Storage 物件檢視者
Workload Manager 深入分析寫入者
SAP ASCS / ERS VM DEPLOYMENT_NAME-ascs@PROJECT_ID.iam.gserviceaccount.com Compute 執行個體管理員 (v1)
Compute 檢視器
記錄管理員
監控管理員
監控指標寫入者
儲存空間物件檢視器
Workload Manager 深入分析資訊寫入者
應用程式 VM DEPLOYMENT_NAME-app@PROJECT_ID.iam.gserviceaccount.com Compute 檢視器
記錄管理員
監控管理員
監控指標寫入者
儲存空間物件檢視器
Workload Manager 深入分析資訊寫入者
資料庫 VM DEPLOYMENT_NAME-db@PROJECT_ID.iam.gserviceaccount.com
Compute 執行個體管理員 (v1)
Compute 檢視器
記錄管理員
監控管理員
監控指標寫入者
儲存空間物件檢視器
Workload Manager 深入分析資訊寫入者

更改下列內容:

  • DEPLOYMENT_NAME:SAP 部署項目名稱。
  • PROJECT_ID:您建立部署作業的 Google Cloud 專案 ID。

如要進一步瞭解在 Google Cloud上執行 SAP 的 IAM 和權限,請參閱「在 Google Cloud上管理 SAP 程式的身分與存取權」。

SAP 資料庫和應用程式使用者憑證

Workload Manager 會使用 Secret Manager 儲存 SAP 系統的憑證,例如管理員和 SYSTEM 使用者帳戶的密碼。如要安全地提供密碼,您必須建立密鑰,並在部署程序中使用該密鑰。您可以建立個別的密鑰,用於儲存資料庫和應用程式層的憑證。為 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 和服務。如果您用於部署的服務帳戶具有必要權限,系統會在部署程序期間透過 Terraform 自動啟用這些 API。您必須遵守各項服務的《服務條款》。部署完畢之後,系統也會針對解決方案中的產品,開始向您收取相關費用。

取得支援

請參閱「在 Google Cloud 中取得 SAP 支援」一文。

後續步驟