本文將概略說明您可使用 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 叢集會跨區域設定,有助於避免元件在特定地區運作時發生故障。

分散式架構
下圖顯示分散式部署環境中的 SAP S/4HANA 架構。

SAP HANA 磁碟配置
下圖顯示 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_NAME
或Ilb-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。您必須遵守各項服務的《服務條款》。部署完畢之後,系統也會針對解決方案中的產品,開始向您收取相關費用。
- Resource Manager API:用於管理專案的資源。
- Compute Engine API:建立及管理部署的 VM。
- Cloud DNS API:為部署作業建立 DNS 區域。
- Filestore API:用於建立及管理 Google Cloud 檔案伺服器。
- Service Account Credentials API:用於在 Google Cloud上為服務帳戶建立憑證。
- Secret Manager API:用於建立及管理用來儲存應用程式和資料庫密碼的機密。
- Service Usage API:啟用部署作業所需的 Google Cloud 服務。
取得支援
請參閱「在 Google Cloud 中取得 SAP 支援」一文。