Terraform:SAP HANA 向外擴展高可用性叢集設定指南

本指南說明如何在 Google Cloud的 SUSE Linux Enterprise Server (SLES) 高可用性 (HA) 叢集中,自動部署 SAP HANA 向外擴充系統。

本指南會根據 Google Cloud、SAP 和 SUSE 的最佳做法,使用 Terraform 部署多主機 SAP HANA 向外擴充系統、具備內部轉送網路負載均衡器實作的虛擬 IP 位址 (VIP),以及以作業系統為基礎的 HA 叢集。

其中一個 SAP HANA 系統設定為主要活動系統,另一個則設為次要備用系統。您可以在相同的地區中部署這兩個 SAP HANA 系統,但最好在不同區域。

已部署叢集包含下列功能和特色:

  • Pacemaker 高可用性叢集資源管理員。
  • Google Cloud 防護機制。
  • 使用第 4 級 TCP 內部負載平衡器實作的虛擬 IP (VIP),包括:
    • 您為 VIP 選取的 IP 位址預留。
    • 兩個 Compute Engine 執行個體群組。
    • TCP 內部負載平衡器。
    • Compute Engine 健康狀態檢查。
  • SUSE 高可用性模式。
  • SUSE SAPHanaSR 資源代理程式套件。
  • 同步系統複製功能。
  • 預先載入記憶體。
  • 自動將故障的執行個體重新啟動為新的次要執行個體。

如果您需要為 SAP HANA 自動主機容錯移轉功能建立具有待命主機的向外擴充系統,請改為參閱 Terraform:具有主機自動容錯移轉功能的 SAP HANA 向外擴充系統部署指南

如要部署沒有 Linux 高可用性叢集或待命主機的 SAP HANA 系統,請改用 Terraform:SAP HANA 部署指南

本指南適用對象為進階 SAP HANA 使用者,其熟悉如何針對 SAP HANA 進行 Linux 高可用性設定。

必備條件

建立 SAP HANA 高可用性叢集前,請確保符合下列必備條件:

建立網路

基於安全性考量,請建立新的網路。您可以新增防火牆規則或使用另一個存取權控管方法,藉此控管具有存取權的對象。

如果您的專案具有預設的虛擬私有雲網路,請勿使用。請建立您自己專屬的虛擬私有雲網路,確保系統只套用您明確建立的防火牆規則。

在部署期間,Compute Engine 執行個體通常需要網際網路的存取權,才能下載 Google Cloud的 SAP 代理程式。如果您使用 Google Cloud提供的其中一種 SAP 認證 Linux 映像檔,則計算機執行個體也需要存取網際網路,才能註冊憑證並且存取 OS 供應商存放區。具有 NAT 閘道和 VM 網路標記的設定即可支援上述存取需求,即便目標運算執行個體沒有外部 IP 也沒關係。

如要為專案建立虛擬私有雲網路,請完成下列步驟:

  1. 建立自訂模式網路。詳情請參閱「建立自訂模式網路」。

  2. 建立子網路,並指定地區和 IP 範圍。詳情請參閱「新增子網路」。

設定 NAT 閘道

如果您需要建立一或多個沒有公開 IP 位址的 VM,就必須使用網路位址轉譯 (NAT),讓 VM 能夠存取網際網路。使用 Cloud NAT,這是一項 Google Cloud 分散式軟體定義的受控服務,可讓 VM 將傳出封包傳送至網際網路,並接收任何相應的已建立傳入回應封包。或者,您也可以設定個別的 VM 做為 NAT 閘道。

如要為專案建立 Cloud NAT 執行個體,請參閱「使用 Cloud NAT」。

為專案設定 Cloud NAT 後,VM 執行個體就能在不使用公開 IP 位址的情況下,安全地存取網際網路。

新增防火牆規則

根據預設,「默示的防火牆規則」會封鎖從虛擬私有雲 (VPC) 網路之外連入的連線。如要允許連入的連線,請為 VM 設定防火牆規則。與 VM 建立連入連線後,系統會允許該連線上雙向的流量。

您也可以建立防火牆規則,允許外部存取指定的通訊埠,或限制相同網路上 VM 之間的存取。若使用 default 虛擬私人雲端網路類型,一些其他的預設規則也適用,例如 default-allow-internal 規則,允許相同網路中 VM 之間所有通訊埠的連線。

根據適用於環境的 IT 政策,您可能需要區隔或限制資料庫主機的連線,這些功能可以透過建立防火牆規則來完成。

根據您的情境,您可以建立防火牆規則,允許下列項目存取:

  • 列於所有 SAP 產品的 TCP/IP 中的預設 SAP 通訊埠。
  • 從電腦或公司網路環境到 Compute Engine VM 執行個體的連線。如果不確定要使用哪一個 IP 位址,請詢問貴公司的網路管理員。

如要為專案建立防火牆規則,請參閱「建立防火牆規則」。

建立已安裝 SAP HANA 的高可用性 Linux 叢集

以下說明如何使用 Terraform 設定檔,建立具備 2 個 SAP HANA 系統的 SLES 叢集,包括在相同 Compute Engine 區域中的主要 SAP HANA 系統,以及次要或備用 SAP HANA 系統。SAP HANA 系統使用的是同步系統複製模式,備用系統會預先載入已複製的資料。

您將在 Terraform 設定檔中定義 SAP HANA 高可用性叢集的設定選項。

以下操作說明使用的是 Cloud Shell,不過這些步驟通常也適用於已安裝 Terraform 並使用 Google 供應器進行設定的本地端終端機。

  1. 確認目前的永久磁碟和 CPU 等資源配額足夠您即將安裝的 SAP HANA 系統使用。如果配額不足,則部署會失敗。

    如要瞭解 SAP HANA 配額需求,請參閱「SAP HANA 的定價與配額考量事項」一文。

    前往配額頁面

  2. 開啟 Cloud Shell 或本機終端機。

    開啟 Cloud Shell

  3. 在 Cloud Shell 或終端機中執行以下指令,將 sap_hana_ha.tf 設定檔下載到工作目錄:

    $ wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/terraform/sap_hana_ha.tf
  4. 在 Cloud Shell 程式碼編輯器中開啟 sap_hana_ha.tf 檔案;如果您使用的是終端機,請在您選擇的文字編輯器中開啟檔案。

    如要開啟 Cloud Shell 程式碼編輯器,請按一下 Cloud Shell 終端機視窗右上角的鉛筆圖示。

  5. sap_hana_ha.tf 檔案中,使用安裝的值取代雙引號內的內容,即可更新引數值。下表說明引數。

    引數 資料類型 說明
    source 字串

    指定在部署期間要使用的 Terraform 模組位置和版本。

    sap_hana_ha.tf 設定檔包含兩個 source 引數例項:一個是處於啟用狀態,另一個則是做為註解加入。預設啟用的 source 引數會將 latest 指定為模組版本。source 引數的第二個例項預設會因開頭的 # 字元而停用,用來指定可識別模組版本的時間戳記。

    如果您需要所有部署作業都使用相同的模組版本,請從指定版本時間戳記的 source 引數中移除開頭的 # 字元,然後將其新增至指定 latestsource 引數。

    project_id 字串 指定您要部署此系統的 Google Cloud 專案 ID。例如:my-project-x
    machine_type 字串 指定您需要執行 SAP 系統的 Compute Engine 虛擬機器 (VM) 類型。如果您需要自訂的 VM 類型,請指定預先定義的 VM 類型,並將 vCPU 數量設為最接近您所需數量的數字,但仍要大於該數字。部署完成後,請修改 vCPU 數量和記憶體容量

    例如 n1-highmem-32

    sole_tenant_deployment 布林值

    (非必要) 如果您想為 SAP HANA 部署作業佈建單一租用戶節點,請指定 true 值。

    預設值為 false

    這個引數適用於 sap_hana_ha 1.3.704310921 以上版本。

    sole_tenant_name_prefix 字串

    (非必要) 如果您要為 SAP HANA 部署作業提供單一租用戶節點,可以使用這個引數指定 Terraform 為對應單一租用戶範本和單一租用戶群組的名稱設定的前置字串。

    預設值為 st-SID_LC

    如要瞭解單一用戶群範本和單一用戶群群組,請參閱單一用戶群總覽

    這個引數適用於 sap_hana_ha 1.3.704310921 以上版本。

    sole_tenant_node_type 字串

    選用。如果您想為 SAP HANA 部署佈建專屬節點,請指定要為對應節點範本設定的節點類型

    這個引數適用於 sap_hana_ha 1.3.704310921 以上版本。

    network 字串 指定您需要建立負責管理 VIP 的負載平衡器所在網路名稱。

    如果您使用共用虛擬私有雲網路,則必須將主專案的 ID 新增為網路名稱的父項目錄。例如:HOST_PROJECT_ID/NETWORK_NAME

    subnetwork 字串 指定您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私有雲端,請將這個值指定為 SHARED_VPC_PROJECT_ID/SUBNETWORK。例如:myproject/network1
    linux_image 字串 指定要部署 SAP 系統的 Linux 作業系統映像檔名稱。例如:sles-15-sp5-sap。如需可用的作業系統映像檔清單,請參閱 Google Cloud 控制台的「映像檔」頁面。
    linux_image_project 字串 請指定 Google Cloud 專案,該專案包含您為引數 linux_image 指定的圖片。這個專案可能是您自己的專案或 Google Cloud 映像檔專案。如為 Compute Engine 映像檔,請指定 suse-sap-cloud。如要查看作業系統的映像檔專案,請參閱「作業系統詳細資料」。
    primary_instance_name 字串 指定主要 SAP HANA 系統的 VM 執行個體名稱。 名稱可以使用小寫英文字母、數字或連字號。
    primary_zone 字串 指定部署主要 SAP HANA 系統的區域。主要和次要系統的區域須位於同一地區。例如:us-east1-c
    secondary_instance_name 字串 指定次要 SAP HANA 系統的 VM 執行個體名稱。名稱可以使用小寫英文字母、數字或連字號。
    secondary_zone 字串 指定部署次要 SAP HANA 系統的區域。主要和次要系統的區域須位於同一地區。例如:us-east1-b
    majority_maker_instance_name 字串

    指定 Compute Engine VM 執行個體的名稱,做為多數製作者。

    這個引數適用於 sap_hana_ha 模組 202307270727 以上版本。

    majority_maker_instance_type 字串 指定要用於大多數製作者執行個體的 Compute Engine 虛擬機器 (VM) 類型。例如:n1-highmem-32

    如果您想使用自訂的 VM 類型,請指定預先定義的 VM 類型,其中的 vCPU 數量應盡可能接近您所需的數量,但仍要大於該數量。部署完成後,請修改 vCPU 數量和記憶體容量

    這個引數適用於 sap_hana_ha 模組 202307270727 以上版本。

    majority_maker_zone 字串 指定部署多數製造商 VM 執行個體的可用區。這個區域必須與主要和次要區域位於相同的地區。例如:us-east1-d

    Google Cloud 建議將主要製造商 VM 例項部署在與主要和次要 SAP HANA 系統不同的區域。

    這個引數適用於 sap_hana_ha 模組 202307270727 以上版本。

    sap_hana_deployment_bucket 字串 如要在已部署的 VM 上自動安裝 SAP HANA,請指定包含 SAP HANA 安裝檔案的 Cloud Storage 值區路徑。請勿在路徑中加入 gs://,只需加入值區名稱和任何資料夾的名稱即可。例如:my-bucket-name/my-folder

    Cloud Storage 值區必須位於您為 project_id 引數指定的 Google Cloud 專案中。

    sap_hana_scaleout_nodes 整數 指定在擴展系統中所需的工作站主機數量。如要部署外推系統,您至少需要一個 worker 主機。

    Terraform 會建立工作站主機,但不包含主要 SAP HANA 執行個體。舉例來說,如果您指定 3,則會在主要和次要區域的向外擴充系統中部署四個 SAP HANA 執行個體。

    primary_sap_hana_shared_nfs 字串

    (非必要) 如要使用 NFS 解決方案,與橫向擴展 HA 部署的主要節點中的 worker 主機共用 /hana/shared 磁碟區,請指定 NFS 解決方案的掛載點。例如:10.151.90.120:/hana_shared_nfs

    詳情請參閱 適用於多主機擴展部署的檔案共用解決方案

    這個引數適用於 sap_hana_ha 模組 1.3.730053050 以上版本。

    secondary_sap_hana_shared_nfs 字串

    (非必要) 如要使用 NFS 解決方案,與橫向擴展 HA 部署的次要節點中的工作站主機共用 /hana/shared 磁碟區,請指定 NFS 解決方案的掛載點。例如 10.151.90.110:/hana_shared_nfs

    詳情請參閱 適用於多主機擴展部署的檔案共用解決方案

    這個引數適用於 sap_hana_ha 模組 1.3.730053050 以上版本。

    primary_sap_hana_backup_nfs 字串

    (非必要) 如要使用 NFS 解決方案,與橫向擴展 HA 部署的主要節點中的 worker 主機共用 /hanabackup 磁碟區,請指定 NFS 解決方案的掛接點。例如:10.151.90.130:/hana_backup_nfs

    詳情請參閱 適用於多主機擴展部署的檔案共用解決方案

    這個引數適用於 sap_hana_ha 模組 1.3.730053050 以上版本。

    secondary_sap_hana_backup_nfs 字串

    (非必要) 如要使用 NFS 解決方案,與橫向擴展 HA 部署的次要節點中的工作站主機共用 /hanabackup 磁碟區,請指定 NFS 解決方案的掛載點。例如:10.151.90.140:/hana_backup_nfs

    詳情請參閱 適用於多主機擴展部署的檔案共用解決方案

    這個引數適用於 sap_hana_ha 模組 1.3.730053050 以上版本。

    sap_hana_sid 字串 如要在已部署的 VM 上自動安裝 SAP HANA,請指定 SAP HANA 系統 ID。ID 必須包含 3 個英數字元,並以字母開頭。所有字母都必須大寫。例如:ED1
    sap_hana_instance_number 整數 (非必要) 指定 SAP HANA 系統的執行個體編號 (0 到 99)。 預設為 0
    sap_hana_sidadm_password 字串 如要在已部署的 VM 上自動安裝 SAP HANA,請為部署期間要使用的安裝指令碼指定臨時 SIDadm 密碼。密碼至少必須包含 8 個字元,且應包含至少一個大寫字母、一個小寫字母和一個數字。

    建議您改用密鑰,而非以純文字指定密碼。詳情請參閱「密碼管理」一文。

    sap_hana_sidadm_password_secret 字串 (非必要) 如果您使用 Secret Manager 儲存 SIDadm 密碼,請指定與此密碼相對應的密鑰名稱

    在 Secret Manager 中,請確認密鑰值 (即密碼) 至少包含 8 個字元,且包含至少一個大寫字母、一個小寫字母和一個數字。

    詳情請參閱「密碼管理」一文。

    sap_hana_system_password 字串 如要在已部署的 VM 上自動安裝 SAP HANA,請為安裝指令碼指定臨時資料庫超級使用者密碼,以便在部署期間使用。密碼至少必須包含 8 個字元,並包含至少 1 個大寫字母、1 個小寫字母與 1 個數字。

    建議您改用密鑰,而非以純文字指定密碼。詳情請參閱「密碼管理」一文。

    sap_hana_system_password_secret 字串 (非必要) 如果您使用 Secret Manager 來儲存資料庫超級使用者密碼,請指定與此密碼相對應的密鑰名稱

    在 Secret Manager 中,請確認密鑰值 (即密碼) 至少包含 8 個字元,且至少包含一個大寫字母、一個小寫字母和一個數字。

    詳情請參閱「密碼管理」一文。

    sap_hana_double_volume_size 布林值 (非必要) 如要使 HANA 磁碟區大小加倍,請指定 true。如要在同一個 VM 上部署多個 SAP HANA 執行個體或災難復原 SAP HANA 執行個體,這個引數就很實用。根據預設,系統會自動計算磁碟區大小,以滿足 VM 大小所需的最小大小,同時符合 SAP 認證和支援需求。預設值為 false
    sap_hana_backup_size 整數 (非必要) 以 GB 為單位指定 /hanabackup 磁碟區的大小。如果您未指定這個引數或將其設為 0,則安裝指令碼會為 Compute Engine 例項配置 HANA 備份磁碟區,其容量是總記憶體的兩倍。
    sap_hana_sidadm_uid 整數 (非必要) 指定值以覆寫 SID_LCadm 使用者 ID 的預設值。預設值為 900。您可以在 SAP 範圍內針對一致性的目的將其改為其他值。
    sap_hana_sapsys_gid 整數 (非必要) 覆寫 sapsys 的預設群組 ID。預設值為 79
    sap_vip 字串

    (非必要) 指定要用於 VIP 的 IP 位址。IP 位址必須位於已指派給子網路的 IP 位址範圍內。Terraform 設定檔會為您保留這個 IP 位址。

    sap_hana_ha 模組的 1.3.730053050 版本起,sap_vip 引數為選用項目。如果您未指定,Terraform 會自動從您為 subnetwork 引數指定的子網路中,指派可用的 IP 位址。

    primary_instance_group_name 字串 (非必要) 指定主要節點的非代管執行個體群組名稱。預設名稱為 ig-PRIMARY_INSTANCE_NAME
    secondary_instance_group_name 字串 (非必要) 指定次要節點的非代管執行個體群組名稱。預設名稱為 ig-SECONDARY_INSTANCE_NAME
    loadbalancer_name 字串 (非必要) 指定內部直通式網路負載平衡器的名稱。 預設名稱為 lb-SAP_HANA_SID-ilb
    network_tags 字串 (非必要) 指定一或多個以半形逗號分隔的網路標記,用於與 VM 執行個體建立關聯,以便用於防火牆或轉送。

    如果您指定 public_ip = false 但未指定網路標記,請務必提供其他能存取網際網路的方式。

    nic_type 字串 (非必要) 指定要與 VM 執行個體搭配使用的網路介面。您可以指定 GVNICVIRTIO_NET 值。如要使用 Google Virtual NIC (gVNIC),您必須指定支援 gVNIC 的 OS 映像檔,做為 linux_image 引數的值。如要查看作業系統映像檔清單,請參閱「作業系統詳細資料」。

    如果您未為這個引數指定值,系統會根據您為 machine_type 引數指定的機器類型,自動選取網路介面。

    這個引數適用於 sap_hana 模組 202302060649 以上版本。
    disk_type 字串 (非必要) 指定要為部署中的 SAP 資料和記錄磁碟區部署的預設 Persistent Disk 或 Hyperdisk 磁碟區類型。如要瞭解 Google Cloud提供的 Terraform 設定所執行的預設磁碟部署作業,請參閱「 Terraform 的磁碟部署作業」。

    此引數的有效值如下:pd-ssdpd-balancedhyperdisk-extremehyperdisk-balancedpd-extreme。在 SAP HANA 擴充部署中,也會為 /hana/shared 目錄部署獨立的平衡永久磁碟。

    您可以使用一些進階引數,覆寫這個預設磁碟類型、相關的預設磁碟大小和預設 IOPS。如需更多資訊,請前往工作目錄,然後執行 terraform init 指令,並查看 /.terraform/modules/sap_hana_ha/variables.tf 檔案。在正式環境中使用這些引數前,請務必先在非正式環境中進行測試。

    如果您想使用 SAP HANA 原生儲存空間擴充功能 (NSE),就必須使用進階引數來配置較大的磁碟。

    use_single_shared_data_log_disk 布林值 (非必要) 預設值為 false,可指示 Terraform 為下列每個 SAP 磁碟分割區部署個別的永久磁碟或 Hyperdisk:/hana/data/hana/log/hana/shared/usr/sap。如要在同一個永久磁碟或 Hyperdisk 上掛載這些 SAP 磁碟區,請指定 true
    enable_data_striping 布林值 (非必要) 這個引數可讓您在兩個磁碟上部署 /hana/data 磁碟區。預設值為 false,可指示 Terraform 部署單一磁碟,用於代管 /hana/data 磁碟區。

    這個引數適用於 sap_hana_ha 模組 1.3.674800406 以上版本。

    include_backup_disk 布林值 (非必要) 這個引數適用於 SAP HANA 向上擴充部署作業。預設值為 true,可指示 Terraform 部署單獨磁碟來代管 /hanabackup 目錄。

    磁碟類型取決於 backup_disk_type 參數。這個磁碟的大小取決於 sap_hana_backup_size 引數。

    如果您將 include_backup_disk 的值設為 false,則系統不會為 /hanabackup 目錄部署任何磁碟。

    enable_fast_restart 布林值 (非必要) 這個引數會決定是否為部署作業啟用 SAP HANA 快速重新啟動選項。預設值為 true。 Google Cloud 強烈建議您啟用 SAP HANA 快速重新啟動選項。

    這個引數適用於 sap_hana_ha 模組的 202309280828 以上版本。

    public_ip 布林值 (非必要) 指定是否要將公開 IP 位址加到您的 VM 執行個體。預設值為 true
    service_account 字串 (非必要) 指定使用者代管的服務帳戶電子郵件地址,供主機 VM 和在主機 VM 上執行的程式使用。例如:svc-acct-name@project-id.iam.gserviceaccount.com

    如果您指定這個引數但未附加值,或省略這個引數,安裝指令碼就會使用 Compute Engine 的預設服務帳戶。詳情請參閱「Google Cloud 中的 SAP 程式身分與存取權管理」。 Google Cloud

    sap_deployment_debug 布林值 (非必要) 只有在 Cloud 客戶服務團隊要求您為部署作業啟用偵錯功能時,才指定 true,這樣部署作業就會產生詳細的部署記錄。預設值為 false
    primary_reservation_name 字串 (非必要) 如要使用特定 Compute Engine VM 保留項目來佈建主機代管 HA 叢集主要 SAP HANA 執行個體的 VM 執行個體,請指定保留項目名稱。根據預設,安裝指令碼會根據下列條件選取任何可用的 Compute Engine 預留容量。

    無論您是否指定名稱,或安裝指令碼是否自動選取名稱,保留項目都必須設定下列項目,才能使用:

    • specificReservationRequired 選項已設為 true,或是在 Google Cloud 控制台中選取「Select specific reservation」(選取特定保留項目) 選項。
    • 部分 Compute Engine 機器類型支援的 CPU 平台並未納入機器類型的 SAP 認證範圍。如果目標保留項目適用於下列任何機器類型,則保留項目必須指定最低 CPU 平台,如下所示:
      • n1-highmem-32:Intel Broadwell
      • n1-highmem-64:Intel Broadwell
      • n1-highmem-96:Intel Skylake
      • m1-megamem-96:Intel Skylake
    • 所有其他機器類型 (已獲 SAP 認證,可用於 Google Cloud ) 的最低 CPU 平台,均符合 SAP 最低 CPU 需求。
    secondary_reservation_name 字串 (非必要) 如要使用特定的 Compute Engine VM 保留項目,為代管 HA 叢集次要 SAP HANA 執行個體的 VM 執行個體進行佈建,請指定保留項目名稱。根據預設,安裝指令碼會根據下列條件選取任何可用的 Compute Engine 預留容量。

    無論您是否指定名稱,或安裝指令碼是否自動選取名稱,保留項目都必須設定下列項目,才能使用:

    • specificReservationRequired 選項已設為 true,或是在 Google Cloud 控制台中選取「Select specific reservation」(選取特定保留項目) 選項。
    • 部分 Compute Engine 機器類型支援的 CPU 平台並未納入機器類型的 SAP 認證範圍。如果目標保留項目適用於下列任何機器類型,則保留項目必須指定最低 CPU 平台,如下所示:
      • n1-highmem-32:Intel Broadwell
      • n1-highmem-64:Intel Broadwell
      • n1-highmem-96:Intel Skylake
      • m1-megamem-96:Intel Skylake
    • 所有其他機器類型 (已獲 SAP 認證,可用於 Google Cloud ) 的最低 CPU 平台,均符合 SAP 最低 CPU 需求。
    primary_static_ip 字串 (非必要) 請為高可用性叢集中的主要 VM 執行個體指定有效的靜態 IP 位址。如果您未指定 IP 位址,系統會為 VM 執行個體自動產生 IP 位址。例如:128.10.10.10

    這個引數適用於 sap_hana_ha 模組 202306120959 以上版本。

    secondary_static_ip 字串 (非必要) 為高可用性叢集中的次要 VM 執行個體指定有效的靜態 IP 位址。如果您未指定 IP 位址,系統會為 VM 執行個體自動產生 IP 位址。例如:128.11.11.11

    這個引數適用於 sap_hana_ha 模組 202306120959 以上版本。

    primary_worker_static_ips List(String) (非必要) 為 SAP HANA 向外擴充 HA 系統的主要執行個體中的工作站執行個體,指定有效的靜態 IP 位址陣列。如果您未為這個引數指定值,系統會為每個 worker VM 執行個體自動產生 IP 位址。例如:[ "1.0.0.1", "2.3.3.4" ]

    系統會依建立執行個體的順序指派靜態 IP 位址。舉例來說,如果您選擇部署 3 個 worker 執行個體,但只為引數 primary_worker_static_ips 指定 2 個 IP 位址,則這些 IP 位址會指派給 Terraform 設定部署的頭兩個 VM 執行個體。第三個 worker VM 執行個體的 IP 位址會自動產生。

    這個引數適用於 sap_hana_ha 模組 202307270727 以上版本。

    secondary_worker_static_ips List(String) (非必要) 為 SAP HANA 向外擴充 HA 系統的次要執行個體,為工作站執行個體指定有效的靜態 IP 位址陣列。如果您未為這個引數指定值,系統會為每個 worker VM 執行個體自動產生 IP 位址。例如:[ "1.0.0.2", "2.3.3.5" ]

    系統會依建立執行個體的順序指派靜態 IP 位址。舉例來說,如果您選擇部署 3 個 worker 執行個體,但只為引數 secondary_worker_static_ips 指定 2 個 IP 位址,則這些 IP 位址會指派給 Terraform 設定部署的頭兩個 VM 執行個體。第三個 worker VM 執行個體的 IP 位址會自動產生。

    這個引數適用於 sap_hana_ha 模組 202307270727 以上版本。

    can_ip_forward 布林值

    指定是否允許傳送和接收具有不相符來源或目的地 IP 的封包,這可讓 VM 像路由器一樣運作。預設值為 true

    如果您只想使用 Google 內部負載平衡器來管理已部署 VM 的虛擬 IP,請將值設為 false。系統會自動部署內部負載平衡器,做為高可用性範本的一部分。

    以下範例顯示已完成的設定檔,這個檔案會為 SLES 上的 SAP HANA 向外擴充系統定義高可用性叢集。叢集會使用內部直通式網路負載平衡器來管理 VIP。

    Terraform 會部署設定檔中定義的 Google Cloud 資源,然後由指令碼接手設定作業系統、安裝 SAP HANA、設定複製作業,以及設定 Linux HA 叢集。

    為求清楚,以下範例設定中的註解已省略。

    # ...
    module "sap_hana_ha" {
    source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/sap_hana_ha_module.zip"
    #
    # By default, this source file uses the latest release of the terraform module
    # for SAP on Google Cloud.  To fix your deployments to a specific release
    # of the module, comment out the source argument above and uncomment the source argument below.
    #
    # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_ha/sap_hana_ha_module.zip"
    # ...
    project_id = "example-project-123456"
    machine_type = "n2-highmem-32"
    network = "example-network"
    subnetwork = "example-subnet-us-central1"
    linux_image = "sles-15-sp4-sap"
    linux_image_project = "suse-sap-cloud"
    
    primary_instance_name = "example-ha-vm1"
    primary_zone = "us-central1-a"
    
    secondary_instance_name = "example-ha-vm2"
    secondary_zone = "us-central1-b"
    
    majority_maker_instance_name = "example-ha-mj"
    majority_maker_instance_type = "n2-highmem-32"
    majority_maker_zone = "us-central1-c"
    
    sap_hana_scaleout_nodes = 2
    primary_sap_hana_shared_nfs = "10.74.146.58:/hana_shared_nfs"
    secondary_sap_hana_shared_nfs = "10.74.146.68:/hana_shared_nfs"
    primary_sap_hana_backup_nfs = "10.188.249.180:/hana_backup_nfs"
    secondary_sap_hana_backup_nfs = "10.188.249.190:/hana_backup_nfs"
    # ...
    sap_hana_deployment_bucket = "my-hana-bucket"
    sap_hana_sid = "HA1"
    sap_hana_instance_number = 00
    sap_hana_sidadm_password_secret = "hana_sid_adm_pwd"
    sap_hana_system_password_secret = "hana_sys_pwd"
    # ...
    sap_vip = "10.0.0.100"
    primary_instance_group_name = "ig-example-ha-vm1"
    secondary_instance_group_name = "ig-example-ha-vm2"
    loadbalancer_name = "lb-ha1"
    # ...
    network_tags = \["hana-ha-ntwk-tag"\]
    service_account = "sap-deploy-example@example-project-123456.iam.gserviceaccount.com"
    primary_static_ip = "10.0.0.1"
    secondary_static_ip = "10.0.0.2"
    primary_worker_static_ips = \["10.0.0.3", "10.0.0.4"\]
    secondary_worker_static_ips = \["10.0.0.5", "10.0.0.6"\]
    enable_fast_restart = true
    # ...
    }
  6. 初始化目前的工作目錄,並下載 Google Cloud的 Terraform 供應器外掛程式和模組檔案:

    terraform init

    terraform init 指令會為其他 Terraform 指令準備工作目錄。

    如要強制重新整理工作目錄中的提供者外掛程式和設定檔,請指定 --upgrade 標記。如果省略 --upgrade 標記,且您未在工作目錄中進行任何變更,Terraform 會使用本機快取的副本,即使 source 網址中指定了 latest 也一樣。

    terraform init --upgrade 
  7. 視需要建立 Terraform 執行計畫:

    terraform plan

    terraform plan 指令會顯示目前設定所需的變更。如果您略過這個步驟,terraform apply 指令會自動建立新企劃書,並提示您核准。

  8. 套用執行計畫:

    terraform apply

    出現核准動作的提示時,請輸入 yes

    terraform apply 指令會設定 Google Cloud 基礎架構,然後將控制權交給指令碼,以便根據 terraform 設定檔中定義的引數設定 HA 叢集,並安裝 SAP HANA。

    在 Terraform 控制時,系統會將狀態訊息寫入 Cloud Shell。指令碼叫用後,系統會將狀態訊息寫入 Logging,並在 Google Cloud 主控台中顯示,如「檢查記錄」一節所述。

驗證 HANA HA 系統的部署作業

驗證 SAP HANA HA 叢集包含多種不同程序:

  • 檢查記錄
  • 檢查 VM 和 SAP HANA 安裝項目的配置
  • 檢查叢集設定
  • 檢查負載平衡器和執行個體群組的健康狀態
  • 使用 SAP HANA Studio 檢查 SAP HANA 系統
  • 執行容錯移轉測試

檢查記錄

  1. 在 Google Cloud 控制台中開啟 Cloud Logging,監控安裝進度及檢查錯誤。

    前往 Cloud Logging

  2. 篩選記錄:

    記錄檔探索工具

    1. 在「Logs Explorer」頁面中,前往「查詢」窗格。

    2. 在「Resource」下拉式選單中,選取「Global」,然後點選「Add」

      如果找不到「Global」選項,請在查詢編輯器中輸入以下查詢:

      resource.type="global"
      "Deployment"
      
    3. 點選「執行查詢」

    舊版記錄檢視器

    • 在「Legacy Logs Viewer」頁面中,從基本選取器選單中選取「Global」做為記錄資源。
  3. 分析篩選過的記錄:

    • 如果顯示 "--- Finished",表示部署程序已完成,您可以繼續進行下一個步驟。
    • 如果畫面顯示配額錯誤:

      1. 在 IAM 和管理員「Quotas」(配額) 頁面上,增加 SAP HANA 規劃指南中所列出不符 SAP HANA 規定的任何配額。

      2. 開啟 Cloud Shell。

        前往 Cloud Shell

      3. 前往工作目錄並刪除部署,清除安裝失敗的 VM 與永久磁碟:

        terraform destroy

        出現是否核准該動作的提示時,請輸入 yes

      4. 重新執行部署。

檢查 VM 和 SAP HANA 安裝項目的設定

  1. SAP HANA 系統部署後如沒有任何錯誤,請使用 SSH 連線到每個 VM。您可以在 Compute Engine 的「VM instances」(VM 執行個體) 頁面上,按一下各個 VM 執行個體的「SSH」按鈕,也可以使用您偏好的 SSH 方法。

    Compute Engine VM 執行個體頁面中的 [SSH] 按鈕。

  2. 切換到超級使用者:

    sudo su -
  3. 在命令提示字元中輸入:

    df -h

    輸出結果會與下列範例相似。請確認輸出內容包含 /hana 目錄,例如 /hana/data

    example-ha-vm1:~ # df -h
    Filesystem                         Size  Used Avail Use% Mounted on
    devtmpfs                           4.0M  8.0K  4.0M   1% /dev
    tmpfs                              189G   48M  189G   1% /dev/shm
    tmpfs                               51G   26M   51G   1% /run
    tmpfs                              4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                           30G  6.2G   24G  21% /
    /dev/sda2                           20M  3.0M   17M  15% /boot/efi
    /dev/mapper/vg_hana_shared-shared  256G   41G  215G  16% /hana/shared
    /dev/mapper/vg_hana_data-data      308G   12G  297G   4% /hana/data
    /dev/mapper/vg_hana_log-log        128G  8.8G  120G   7% /hana/log
    /dev/mapper/vg_hana_usrsap-usrsap   32G  265M   32G   1% /usr/sap
    /dev/mapper/vg_hanabackup-backup   512G  8.5G  504G   2% /hanabackup
    tmpfs                               26G     0   26G   0% /run/user/174
    tmpfs                               26G     0   26G   0% /run/user/900
    tmpfs                               26G     0   26G   0% /run/user/0
    tmpfs                               26G     0   26G   0% /run/user/1000
  4. 輸入適用於您作業系統的狀態指令,即可查看新叢集的狀態:

    crm status
    

    您應該會看到類似以下範例的輸出內容,其中主要和次要 SAP HANA 系統中的 VM 執行個體,以及大多數的 maker 執行個體都已啟動。example-ha-vm1 是有效的主要執行個體。

    example-ha-vm1:~ # crm status
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm1 (version 2.1.2+20211124.ada5c3b36-150400.4.9.2-2.1.2+20211124.ada5c3b36) - partition with quorum
      * Last updated: Sat Jul 15 19:42:56 2023
      * Last change:  Sat Jul 15 19:42:21 2023 by root via crm_attribute on example-ha-vm1
      * 7 nodes configured
      * 23 resource instances configured
    
    Node List:
      * Online: \[ example-ha-mj example-ha-vm1 example-ha-vm1w1 example-ha-vm1w2 example-ha-vm2 example-ha-vm2w1 example-ha-vm2w2 \]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:fence_gce):   Started example-ha-mj
      * STONITH-example-ha-vm2      (stonith:fence_gce):   Started example-ha-vm1
      * STONITH-example-ha-mj       (stonith:fence_gce):   Started example-ha-vm1w1
      * STONITH-example-ha-vm1w1    (stonith:fence_gce):   Started example-ha-vm1w2
      * STONITH-example-ha-vm2w1    (stonith:fence_gce):   Started example-ha-vm2
      * STONITH-example-ha-vm1w2    (stonith:fence_gce):   Started example-ha-vm2w1
      * STONITH-example-ha-vm2w2    (stonith:fence_gce):   Started example-ha-mj
      * Resource Group: g-primary:
        * rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started example-ha-vm1
        * rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started example-ha-vm1
      * Clone Set: cln_SAPHanaTopology_HA1_HDB00 \[rsc_SAPHanaTopology_HA1_HDB00\]:
        * Started: \[ example-ha-vm1 example-ha-vm1w1 example-ha-vm1w2 example-ha-vm2 example-ha-vm2w1 example-ha-vm2w2 \]
        * Stopped: \[ example-ha-mj \]
      * Clone Set: msl_SAPHana_HA1_HDB00 \[rsc_SAPHana_HA1_HDB00\] (promotable):
        * Masters: \[ example-ha-vm1 \]
        * Slaves: \[ example-ha-vm1w1 example-ha-vm1w2 example-ha-vm2 example-ha-vm2w1 example-ha-vm2w2 \]
        * Stopped: \[ example-ha-mj \]
  5. 將以下指令中的 SID_LC 替換為您在 sap_hana_ha.tf 檔案中指定的 sap_hana_sid 值,以切換至 SAP 管理員使用者。SID_LC 值必須為小寫。

    su - SID_LCadm
    
  6. 輸入下列指令,確定 hdbnameserverhdbindexserver 和其他 SAP HANA 服務都在執行個體上執行:

    HDB info
    

檢查叢集設定

叢集部署成功後,您必須檢查叢集的參數設定。請檢查叢集軟體顯示的設定,以及叢集設定檔中的參數設定。將您的設定與下列範例中的設定進行比較,這些設定是由本指南所使用的自動化動作指令碼建立。

  1. 顯示叢集資源設定:

    crm config show

    本指南使用的自動化指令碼會建立下列範例所示的資源設定:

      node 1: example-ha-vm1 \
        attributes hana_ha1_site=example-ha-vm1 hana_ha1_gra=2.0
      node 2: example-ha-vm2 \
        attributes hana_ha1_site=example-ha-vm2 hana_ha1_gra=2.0
      node 3: example-ha-mj
      node 4: example-ha-vm1w1 \
        attributes hana_ha1_site=example-ha-vm1 hana_ha1_gra=2.0
      node 5: example-ha-vm2w1 \
        attributes hana_ha1_site=example-ha-vm2 hana_ha1_gra=2.0
      node 6: example-ha-vm1w2 \
        attributes hana_ha1_site=example-ha-vm1 hana_ha1_gra=2.0
      node 7: example-ha-vm2w2 \
        attributes hana_ha1_site=example-ha-vm2 hana_ha1_gra=2.0
      primitive STONITH-example-ha-mj stonith:fence_gce \
        params port=example-ha-mj zone="us-central1-c" project="example-project-123456" pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30 \
        op monitor interval=300s timeout=120s \
        op start interval=0 timeout=60s \
        op stop timeout=15 interval=0s
      primitive STONITH-example-ha-vm1 stonith:fence_gce \
        params port=example-ha-vm1 zone="us-central1-a" project="example-project-123456" pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30 \
        op monitor interval=300s timeout=120s \
        op start interval=0 timeout=60s \
        op stop timeout=15 interval=0s
      primitive STONITH-example-ha-vm1w1 stonith:fence_gce \
        params port=example-ha-vm1w1 zone="us-central1-a" project="example-project-123456" pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30 \
        op monitor interval=300s timeout=120s \
        op start interval=0 timeout=60s \
        op stop timeout=15 interval=0s
      primitive STONITH-example-ha-vm1w2 stonith:fence_gce \
        params port=example-ha-vm1w2 zone="us-central1-a" project="example-project-123456" pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30 \
        op monitor interval=300s timeout=120s \
        op start interval=0 timeout=60s \
        op stop timeout=15 interval=0s
      primitive STONITH-example-ha-vm2 stonith:fence_gce \
        params port=example-ha-vm2 zone="us-central1-b" project="example-project-123456" pcmk_reboot_timeout=300 pcmk_monitor_retries=4 \
        op monitor interval=300s timeout=120s \
        op start interval=0 timeout=60s \
        op stop timeout=15 interval=0s
      primitive STONITH-example-ha-vm2w1 stonith:fence_gce \
        params port=example-ha-vm2w1 zone="us-central1-b" project="example-project-123456" pcmk_reboot_timeout=300 pcmk_monitor_retries=4 \
        op monitor interval=300s timeout=120s \
        op start interval=0 timeout=60s \
        op stop timeout=15 interval=0s
      primitive STONITH-example-ha-vm2w2 stonith:fence_gce \
        params port=example-ha-vm2w2 zone="us-central1-b" project="example-project-123456" pcmk_reboot_timeout=300 pcmk_monitor_retries=4 \
        op monitor interval=300s timeout=120s \
        op start interval=0 timeout=60s \
        op stop timeout=15 interval=0s
      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
      primitive rsc_SAPHana_HA1_HDB00 ocf:suse:SAPHanaController \
        op start interval=0 timeout=3600 \
        op stop interval=0 timeout=3600 \
        op promote interval=0 timeout=3600 \
        op demote interval=0 timeout=3600 \
        op monitor interval=60 role=Master timeout=700 \
        op monitor interval=61 role=Slave timeout=700 \
        params SID=HA1 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true
      primitive rsc_vip_hc-primary anything \
        params binfile="/usr/bin/socat" cmdline_options="-U TCP-LISTEN:60000,backlog=10,fork,reuseaddr /dev/null" \
        op monitor timeout=20s interval=10s \
        op_params depth=0 \
        op start timeout=20s interval=0s \
        op stop timeout=20s interval=0s
      primitive rsc_vip_int-primary IPaddr2 \
        params ip=10.1.0.23 cidr_netmask=32 nic=eth0 \
        op monitor interval=3600s timeout=60s \
        op start timeout=20s interval=0s \
        op stop timeout=20s interval=0s
      group g-primary rsc_vip_int-primary rsc_vip_hc-primary \
        meta resource-stickiness=0
      ms msl_SAPHana_HA1_HDB00 rsc_SAPHana_HA1_HDB00 \
        meta clone-node-max=1 master-max=1 interleave=true target-role=Started interleave=true
      clone cln_SAPHanaTopology_HA1_HDB00 rsc_SAPHanaTopology_HA1_HDB00 \
        meta clone-node-max=1 target-role=Started interleave=true
      location LOC_STONITH_example-ha-vm1 STONITH-example-ha-vm1 -inf: example-ha-vm1
      location LOC_STONITH_example-ha-vm1w1 STONITH-example-ha-vm1w1 -inf: example-ha-vm1w1
      location LOC_STONITH_example-ha-vm1w2 STONITH-example-ha-vm1w2 -inf: example-ha-vm1w2
      location LOC_STONITH_example-ha-vm2 STONITH-example-ha-vm2 -inf: example-ha-vm2
      location LOC_STONITH_example-ha-vm2w1 STONITH-example-ha-vm2w1 -inf: example-ha-vm2w1
      location LOC_STONITH_example-ha-vm2w2 STONITH-example-ha-vm2w2 -inf: example-ha-vm2w2
      location SAPHanaCon_not_on_mm msl_SAPHana_HA1_HDB00 -inf: example-ha-mj
      location SAPHanaTop_not_on_mm cln_SAPHanaTopology_HA1_HDB00 -inf: example-ha-mj
      colocation col_saphana_ip_HA1_HDB00 4000: g-primary:Started msl_SAPHana_HA1_HDB00:Master
      order ord_SAPHana_HA1_HDB00 Optional: cln_SAPHanaTopology_HA1_HDB00 msl_SAPHana_HA1_HDB00
      property SAPHanaSR: \
        hana_ha1_glob_mts=true \
        hana_ha1_site_srHook_example-ha-vm2=SOK \
        hana_ha1_site_lss_example-ha-vm1=4 \
        hana_ha1_site_srr_example-ha-vm1=P \
        hana_ha1_site_lss_example-ha-vm2=4 \
        hana_ha1_site_srr_example-ha-vm2=S \
        hana_ha1_glob_srmode=syncmem \
        hana_ha1_glob_upd=ok \
        hana_ha1_site_mns_example-ha-vm1=example-ha-vm1 \
        hana_ha1_site_mns_example-ha-vm2=example-ha-vm2 \
        hana_ha1_site_lpt_example-ha-vm2=30 \
        hana_ha1_site_srHook_example-ha-vm1=PRIM \
        hana_ha1_site_lpt_example-ha-vm1=1689450463 \
        hana_ha1_glob_sync_state=SOK \
        hana_ha1_glob_prim=example-ha-vm1
      property cib-bootstrap-options: \
        have-watchdog=false \
        dc-version="2.1.2+20211124.ada5c3b36-150400.4.9.2-2.1.2+20211124.ada5c3b36" \
        cluster-infrastructure=corosync \
        cluster-name=hacluster \
        maintenance-mode=false \
        stonith-timeout=300s \
        stonith-enabled=true \
        concurrent-fencing=true
      rsc_defaults build-resource-defaults: \
        resource-stickiness=1000 \
        migration-threshold=5000
      op_defaults op-options: \
        timeout=600
    
  2. 顯示叢集設定檔 corosync.conf

    cat /etc/corosync/corosync.conf

    本指南使用的自動化指令碼會在 corosync.conf 檔案中指定參數設定,如以下範例所示:

      totem {
        version: 2
        secauth: off
        crypto_hash: sha1
        crypto_cipher: aes256
        cluster_name: hacluster
        clear_node_high_bit: yes
        token: 20000
        token_retransmits_before_loss_const: 10
        join: 60
        max_messages: 20
        transport: udpu
        interface {
          ringnumber: 0
          bindnetaddr: "10.1.0.7"
          mcastport: 5405
          ttl: 1
        }
      }
      logging {
        fileline: off
        to_stderr: no
        to_logfile: no
        logfile: /var/log/cluster/corosync.log
        to_syslog: yes
        debug: off
        timestamp: on
        logger_subsys {
          subsys: QUORUM
          debug: off
        }
      }
      quorum {
        provider: corosync_votequorum
      }
      nodelist {
        node {
          ring0_addr: example-ha-vm1
          nodeid: 1
        }
        node {
          ring0_addr: example-ha-vm2
          nodeid: 2
        }
        node {
          ring0_addr: example-ha-mj
          nodeid: 3
         }
        node {
          ring0_addr: example-ha-vm1w1
          nodeid: 4
         }
        node {
          ring0_addr: example-ha-vm2w1
          nodeid: 5
         }
        node {
          ring0_addr: example-ha-vm1w2
          nodeid: 6
         }
        node {
          ring0_addr: example-ha-vm2w2
          nodeid: 7
         }
      }
    

檢查負載平衡器和執行個體群組的健康狀態

如要確認負載平衡器和健康狀態檢查設定正確無誤,請在 Google Cloud 主控台中檢查負載平衡器和執行個體群組:

  1. 在 Google Cloud 控制台中開啟「負載平衡」頁面。

    前往 Cloud Load Balancing

  2. 在負載平衡器清單中,確認已為高可用性叢集建立負載平衡器。

  3. 在「Load balancer details」頁面的「Backend」部分,確認「Healthy」資料欄中的其中一個執行個體群組顯示「1 of 1」,另一個執行個體群組則顯示「0 of 1」。容錯移轉後,健康狀態指標 1 of 1 會切換至新的有效執行個體群組。

    顯示負載平衡器詳細資料頁面,其中「1/1」代表有效的主要執行個體群組,「0/1」代表無效的次要執行個體群組。

使用 SAP HANA Studio 檢查 SAP HANA 系統

您可以使用 SAP HANA 主控台或 SAP HANA Studio 監控及管理高可用性叢集中的 SAP HANA 系統。

  1. 使用 SAP HANA Studio 連線至 HANA 系統。定義連線時請指定下列值:

    • 在「Specify System」(指定系統) 面板上,將浮動 IP 位址指定為「主機名稱」。
    • 在「連線屬性」面板中,為資料庫使用者驗證指定您在 sap_hana_ha.tf 檔案中為 sap_hana_system_password 引數指定的資料庫超級使用者名稱和密碼。

    如需 SAP 提供的 SAP HANA Studio 安裝相關資訊,請參閱 SAP HANA 安裝與更新指南

  2. SAP HANA Studio 連線至 HANA HA 系統後,按兩下視窗左側導覽窗格中的系統名稱,即可查看系統總覽。

    SAP HANA Studio 中導覽窗格的螢幕擷圖

  3. 在「總覽」分頁的「一般資訊」下方,確認下列事項:

    • 「Operational Status」顯示 All services started
    • 「System Replication Status」 顯示 All services are active and in sync

    SAP HANA Studio 中「Overview」(總覽) 分頁的螢幕擷圖

  4. 按一下「General Information」下方的「System Replication Status」連結,確認複寫模式。REPLICATION_MODE

    SAP HANA Studio 中「System Replication Status」(系統複製狀態) 分頁的螢幕擷圖

清除並重試部署

如果先前各節中的任何部署驗證步驟顯示安裝失敗,則必須撤銷部署,並完成下列步驟重試:

  1. 解決所有錯誤,確保部署作業不會因相同原因再次失敗。如要瞭解如何檢查記錄或解決配額相關錯誤,請參閱「檢查記錄」。

  2. 開啟 Cloud Shell;如果您在本機工作站上安裝了 Google Cloud CLI,請開啟終端機。

    開啟 Cloud Shell

  3. 前往包含您用於此部署作業的 Terraform 設定檔的目錄。

  4. 執行下列指令,刪除部署作業中的所有資源:

    terraform destroy

    出現是否核准該動作的提示時,請輸入 yes

  5. 請按照本指南前述的操作說明重試部署作業。

執行容錯移轉測試

確認已成功部署 SAP HANA 系統後,您必須測試容錯移轉功能。

下列操作說明會使用 ip link set eth0 down 指令將網路介面移至離線狀態。這個指令會驗證備援和圍欄。

如要執行容錯移轉測試,請完成下列步驟:

  1. 在主要 SAP HANA 執行個體中,使用 SSH 連線至主節點。按一下每個 VM 執行個體的 SSH 按鈕,即可從 Compute Engine 的「VM instances」(VM 執行個體) 頁面連線,或者可以使用您偏好的 SSH 方法。

  2. 在命令提示字元中,輸入下列指令:

    ip link set eth0 down

    ip link set eth0 down 指令會藉由分割主要 SAP HANA 執行個體的通訊功能觸發容錯移轉。

  3. 使用 SSH 連線至叢集中的任何其他節點,並切換至超級使用者。

  4. 執行下列指令,確認主要 SAP HANA 例項現在已在用於容納次要例項的 VM 中啟用。

    crm status
    

    由於叢集中已啟用自動重新啟動功能,因此已停止的執行個體會重新啟動,並假設為次要執行個體的角色。以下範例顯示每個 SAP HANA 執行個體的角色已切換:

    example-ha-vm2:~ # crm status
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm2 (version 2.1.2+20211124.ada5c3b36-150400.4.9.2-2.1.2+20211124.ada5c3b36) - partition with quorum
      * Last updated: Mon Jul 17 19:47:11 2023
      * Last change:  Mon Jul 17 19:46:56 2023 by root via crm_attribute on example-ha-vm2
      * 7 nodes configured
      * 23 resource instances configured
    
    Node List:
      * Online: \[ example-ha-mj example-ha-vm1 example-ha-vm1w1 example-ha-vm1w2 example-ha-vm2 example-ha-vm2w1 example-ha-vm2w2 \]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:fence_gce):   Started example-ha-mj
      * STONITH-example-ha-vm2      (stonith:fence_gce):   Started example-ha-vm1w1
      * STONITH-example-ha-mj       (stonith:fence_gce):   Started example-ha-vm1w1
      * STONITH-example-ha-vm1w1    (stonith:fence_gce):   Started example-ha-vm1w2
      * STONITH-example-ha-vm2w1    (stonith:fence_gce):   Started example-ha-vm2
      * STONITH-example-ha-vm1w2    (stonith:fence_gce):   Started example-ha-vm2w1
      * STONITH-example-ha-vm2w2    (stonith:fence_gce):   Started example-ha-mj
      * Resource Group: g-primary:
        * rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started example-ha-vm2
        * rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started example-ha-vm2
      * Clone Set: cln_SAPHanaTopology_HA1_HDB00 \[rsc_SAPHanaTopology_HA1_HDB00\]:
        * Started: \[ example-ha-vm1 example-ha-vm1w1 example-ha-vm1w2 example-ha-vm2 example-ha-vm2w1 example-ha-vm2w2 \]
        * Stopped: \[ example-ha-mj \]
      * Clone Set: msl_SAPHana_HA1_HDB00 \[rsc_SAPHana_HA1_HDB00\] (promotable):
        * Masters: \[ example-ha-vm2 \]
        * Slaves: \[ example-ha-vm1 example-ha-vm1w1 example-ha-vm1w2 example-ha-vm2w1 example-ha-vm2w2 \]
        * Stopped: \[ example-ha-mj \]
  5. 在 Google Cloud 控制台的「Load balancer details」頁面中,確認新的有效主要執行個體在「Healthy」欄中顯示「1 of 1」。視需要重新整理頁面。

    前往 Cloud Load Balancing

    例如,請參考下圖:

    顯示負載平衡器詳細資料頁面,其中「ig-example-ha-vm2」執行個體在「Healthy」欄中顯示「1/1」。

  6. 在 SAP HANA Studio 中,按兩下導覽窗格中的系統項目以重新整理系統資訊,確定仍與系統保持連線。

  7. 按一下 [System Replication Status] (系統複製狀態) 連結,確認主要主機和次要主機皆已切換主機並處於啟用狀態。

    SAP HANA Studio 中「System Replication Status」(系統複製狀態) 分頁的螢幕擷圖

驗證 Google Cloud的 Agent for SAP 安裝狀態

基礎架構部署完成並安裝 SAP HANA 系統後,請驗證 Google Cloud的 SAP 代理程式是否正常運作。

確認 Google Cloud的 Agent for SAP 是否正在執行

如要確認代理程式是否正在執行,請按照下列步驟操作:

  1. 建立與 Compute Engine 執行個體的 SSH 連線。

  2. 執行下列指令:

    systemctl status google-cloud-sap-agent

    如果代理程式運作正常,輸出內容就會包含 active (running)。例如:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

如果代理程式未執行,請重新啟動代理程式

確認 SAP Host Agent 正在接收指標

如要確認Google Cloud的 Agent for SAP 是否收集基礎架構指標,並正確傳送至 SAP Host Agent,請按照下列步驟操作:

  1. 在 SAP 系統中輸入交易 ST06
  2. 在「Overview」(總覽) 窗格中,查看以下欄位的可用性和內容,確認 SAP 和 Google 監控基礎架構已做好正確的端對端設定:

    • 雲端服務供應商Google Cloud Platform
    • Enhanced Monitoring Access (強化版監控功能存取權)TRUE
    • Enhanced Monitoring Details (強化版監控功能詳細資料)ACTIVE

設定 SAP HANA 監控

您也可以使用Google Cloud的 SAP 代理程式監控 SAP HANA 執行個體。自 2.0 版起,您可以設定代理程式收集 SAP HANA 監控指標,然後將指標傳送至 Cloud Monitoring。Cloud Monitoring 可讓您建立資訊主頁,以圖表呈現這些指標,並依據指標門檻設定快訊等。

如要進一步瞭解如何使用Google Cloud的 SAP 代理程式收集 SAP HANA 監控指標,請參閱「SAP HANA 監控指標收集」一文。

連線至 SAP HANA

請注意,由於以下指示並沒有為 SAP HANA 使用外部 IP 位址,因此您只能使用 SSH,透過防禦執行個體連線至 SAP HANA 執行個體,或使用 SAP HANA Studio,透過 Windows 伺服器連線至 SAP HANA 執行個體。

  • 如要透過防禦執行個體連線至 SAP HANA,請使用您選擇的 SSH 用戶端連線至防禦主機,然後連線至 SAP HANA 執行個體。

  • 如要透過 SAP HANA Studio 連線至 SAP HANA 資料庫,請使用遠端桌面用戶端連線至 Windows Server 執行個體。連線之後,請手動安裝 SAP HANA Studio,並存取您的 SAP HANA 資料庫。

設定 HANA 主動/主動 (啟用讀取)

自 SAP HANA 2.0 SPS1 起,您可以在 Pacemaker 叢集中設定 HANA 主動/主動 (啟用讀取)。如需操作說明,請參閱「在 SUSE Pacemaker 叢集中設定 HANA 主動/主動 (啟用讀取)」。

執行部署後工作

使用 SAP HANA 執行個體之前,建議您執行下列部署後步驟。詳情請參閱 SAP HANA 安裝與更新指南

  1. 變更 SAP HANA 系統管理員和資料庫超級使用者的臨時密碼。

  2. 使用最新的修補程式更新 SAP HANA 軟體。

  3. 如果 SAP HANA 系統部署在 VirtIO 網路介面上,建議您確認 TCP 參數 /proc/sys/net/ipv4/tcp_limit_output_bytes 的值已設為 1048576。這項修改可改善 VirtIO 網路介面上的整體網路總處理量,且不會影響網路延遲時間。

  4. 安裝其他任何元件,例如 Application Function Libraries (AFL) 或 Smart Data Access (SDA)。

  5. 設定並備份新的 SAP HANA 資料庫。詳情請參閱 SAP HANA 作業指南

評估 SAP HANA 工作負載

如要為在 Google Cloud上執行的 SAP HANA 高可用性工作負載自動執行持續驗證檢查,您可以使用Workload Manager

您可以使用 Workload Manager,根據 SAP、 Google Cloud和作業系統供應商的最佳做法,自動掃描及評估 SAP HANA 高可用性工作負載。這有助於改善工作負載的品質、效能和可靠性。

如要瞭解 Workload Manager 支援的最佳做法,以便評估在 Google Cloud上執行的 SAP HANA 高可用性工作負載,請參閱 Workload Manager 適用於 SAP 的最佳做法。如要瞭解如何使用 Workload Manager 建立及執行評估作業,請參閱「建立並執行評估作業」。

疑難排解

如要針對 SLES 上 SAP HANA 高可用性設定的問題進行疑難排解,請參閱「SAP 高可用性設定疑難排解」。

取得支援

如果您需要協助解決 SLES 上 SAP HANA 高可用性叢集的問題,請務必收集必要的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。詳情請參閱「SLES 上高可用性叢集的診斷資訊」。

後續步驟

  • 如果您需要使用 Google Cloud NetApp 磁碟區,而非永久磁碟或 Hyperdisk 磁碟區,來代管 SAP HANA 目錄 (例如 /hana/shared/hanabackup),請參閱 SAP HANA 規劃指南中的 NetApp 磁碟區部署資訊。
  • 如要進一步瞭解 VM 管理與監控,請參閱 SAP HANA 作業指南