Terraform:具有主機自動容錯移轉功能的 SAP HANA 向外擴充系統部署指南

本指南說明如何使用 Terraform 部署包含 SAP HANA 主機自動容錯移轉錯誤復原解決方案的 SAP HANA 向外擴充系統。透過使用 Terraform,您可以部署符合 SAP 支援需求且遵循 SAP 和 Compute Engine 最佳做法的系統。

產生的 SAP HANA 系統會包含一個主要主機、最多 15 個工作站主機以及最多 3 個待命主機,且這些主機全部位於單一 Compute Engine 區域中。

系統還包含Google Cloud SAP HANA 待命節點的儲存空間管理工具 (SAP HANA 適用的儲存空間管理工具),可在容錯移轉期間管理將儲存裝置轉移至待命節點的作業。SAP HANA 的儲存空間管理員會安裝在 SAP HANA /shared 磁碟區中。如要瞭解 SAP HANA 的儲存空間管理工具和必要的 IAM 權限,請參閱「SAP HANA 的儲存空間管理工具」。

如要進一步瞭解 SAP 的主機自動容錯移轉解決方案,請參閱「主機自動容錯移轉

如果您不需要主機自動容錯移轉功能,請勿使用該指南,請改用 Terraform:SAP HANA 部署指南

如果您需要在 Linux 高可用性叢集中部署 SAP HANA,請使用下列任一指南:

本指南的目標對象為熟悉 SAP 向外擴充設定的進階 SAP HANA 使用者,且這些設定包含高可用性的待命主機,也包含網路檔案系統。

必備條件

在您建立 SAP HANA 高可用性向外擴充系統之前,請確保符合下列必備條件:

  • 您已閱讀 SAP HANA 規劃指南SAP HANA 高可用性規劃指南
  • 您或您的機構擁有 Google Cloud 帳戶,且您已針對 SAP HANA 部署建立專案。如要瞭解如何建立Google Cloud 帳戶和專案,請參閱 SAP HANA 部署指南中的設定 Google 帳戶一文。
  • 如果您希望 SAP 工作負載在符合資料落地、存取權控管、支援人員或法規規定的情況下執行,則必須建立必要的 Assured Workloads 資料夾。詳情請參閱「SAP on Google Cloud的符合性和主權控管措施」。
  • SAP HANA 安裝媒體儲存在可在部署專案和地區中使用的 Cloud Storage 值區中。如要瞭解如何將 SAP HANA 安裝媒體上傳到 Cloud Storage 值區,請參閱 SAP HANA 部署指南中的建立 Cloud Storage 值區一文。
  • 您擁有 NFS 解決方案 (例如代管的 Filestore 解決方案),以在向外擴充 SAP HANA 系統中的主機之間共用 SAP HANA /hana/shared/hanabackup 磁碟區。您要在 Terraform 設定檔中為 NFS 伺服器指定掛接點,然後才可以部署系統。如要部署 Filestore NFS 伺服器,請參閱「建立執行個體」一文。
  • 您必須允許 SAP HANA 子網路中所有代管 SAP HANA 向外擴充節點的 VM 之間進行通訊。

  • 如果專案中繼資料中已啟用 OS 登入,您必須暫時停用 OS 登入功能,直到部署作業完成為止。為了部署目的,這個程序會在執行個體中繼資料中設定 SSH 金鑰。啟用 OS 登入功能後,系統會停用中繼資料型安全殼層金鑰設定,這項部署作業就會失敗。部署完成後,您可以再次啟用 OS 登入功能。

    如需詳細資訊,請參閱:

建立網路

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

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

在部署期間,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 子網路中 VM 之間的通訊,包括 SAP HANA 擴充系統中節點之間的通訊,或 3 層架構中資料庫伺服器和應用程式伺服器之間的通訊。您可以建立防火牆規則,允許來自子網路的流量,藉此啟用 VM 之間的通訊。

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

建立具有待命主機的 SAP HANA 向外擴充系統

您會在下列指示中完成下列動作:

  • 使用您完成的設定檔叫用 Terraform 來建立 SAP HANA 系統。
  • 驗證部署。
  • 模擬主機失敗來測試待命主機。

下列指示中的某些步驟使用 Cloud Shell 來輸入 gcloud 指令。如果您安裝的是最新版本的 Google Cloud SDK,可以從本機終端機輸入 gcloud 指令。

定義及建立 SAP HANA 系統

您會在下列步驟中下載及完成 Terraform 設定檔,使用標準 Terraform 指令初始化目前的工作目錄,並下載 Google Cloud的 Terraform 供應器外掛程式和模組檔案,然後套用設定,這樣會部署 VM、永久磁碟和 SAP HANA 執行個體。

  1. 確認您目前的專案資源配額 (例如永久磁碟與 CPU) 對於您即將安裝的 SAP HANA 系統而言是否足夠。如果您的配額不足,則部署會失敗。如要瞭解 SAP HANA 配額需求,請參閱 SAP HANA 的定價與配額考量事項一文。

    前往「配額」頁面

  2. 開啟 Cloud Shell。

    前往 Cloud Shell

  3. 將 SAP HANA 高可用性向外擴展系統的 sap_hana_scaleout.tf 設定檔下載至您的工作目錄:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/terraform/sap_hana_scaleout.tf
  4. 在 Cloud Shell 程式碼編輯器中開啟 sap_hana_scaleout.tf 檔案。

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

  5. sap_hana_scaleout.tf 檔案中,使用安裝的值取代雙引號內的內容,即可更新下列引數值。例如,您可以將「ZONE」替換為「us-central1-f」。

    引數 資料類型 說明
    source 字串

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

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

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

    project_id 字串 指定您要部署此系統的 Google Cloud 專案 ID。例如:my-project-x
    zone 字串

    指定要部署 SAP 系統的區域。這個區域必須位於您為子網路選取的地區內。

    舉例來說,如果您的子網路部署在 us-central1 地區,您可以指定 us-central1-a 等區域。

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

    例如 n1-highmem-32

    subnetwork 字串 指定您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私有雲端,請將這個值指定為 SHARED_VPC_PROJECT_ID/SUBNETWORK。例如:myproject/network1
    linux_image 字串 指定要部署 SAP 系統的 Linux 作業系統映像檔名稱。例如 rhel-9-2-sap-hasles-15-sp5-sap。如需可用的作業系統映像檔清單,請參閱 Google Cloud 控制台的「映像檔」頁面。
    linux_image_project 字串 請指定 Google Cloud 專案,該專案包含您為引數 linux_image 指定的圖片。這個專案可能是您自己的專案或 Google Cloud 映像檔專案。如果是 Compute Engine 映像檔,請指定 rhel-sap-cloudsuse-sap-cloud。如要查看作業系統的映像檔專案,請參閱「作業系統詳細資料」。
    instance_name 字串 指定主機 VM 執行個體的名稱。名稱可包含小寫英文字母、數字和連字號,工作站與待命主機的 VM 執行個體都使用相同名稱,並在名稱後面附加 w 和主機編號。
    sap_hana_shared_nfs 字串 指定 /hana/shared 磁碟區的 NFS 掛接點。例如:10.151.91.122:/hana_shared_nfs
    sap_hana_backup_nfs 字串 指定 /hanabackup 磁碟區的 NFS 掛接點。例如:10.216.41.122:/hana_backup_nfs
    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_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_sidadm_uid 整數 (非必要) 指定值以覆寫 SID_LCadm 使用者 ID 的預設值。預設值為 900。您可以在 SAP 範圍內針對一致性的目的將其改為其他值。
    sap_hana_sapsys_gid 整數 (非必要) 覆寫 sapsys 的預設群組 ID。預設值為 79
    sap_hana_worker_nodes 整數 指定您需要的其他 SAP HANA 工作站主機數量。您可以指定 1 至 15 個工作站主機。請勿在值中使用引號。預設值為 1。
    sap_hana_standby_nodes 整數 指定您需要的其他 SAP HANA 待命主機數量。您可已指定 1 到 3 個待命主機。請勿在值中使用引號。預設值為 1。
    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

    您可以使用一些進階引數,覆寫這個預設磁碟類型、相關的預設磁碟大小和預設 IOPS。如需更多資訊,請前往工作目錄,然後執行 terraform init 指令,並查看 /.terraform/modules/sap_hana_scaleout/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
    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
    reservation_name 字串 (非必要) 如要為此部署使用特定的 Compute Engine 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 需求。
    vm_static_ip 字串 (非必要) 為 VM 執行個體指定有效的靜態 IP 位址。如果您未指定 IP 位址,系統會為您的 VM 執行個體自動產生 IP 位址。

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

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

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

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

    standby_static_ips List(String) (非必要) 為橫向擴展系統中的待命執行個體指定有效的靜態 IP 位址陣列。如果您未為這個引數指定值,系統會為每個待命 VM 執行個體自動產生 IP 位址。例如:[ "1.0.0.1", "2.3.3.4" ]

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

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

    下列範例顯示完成的設定檔部署了在 us-central1-f 區域有三個工作站主機與一個待命主機的 SAP HANA 向外擴充系統。每個主機都安裝在 n2-highmem-32 VM 上,該 VM 執行的是 Compute Engine 公開映像檔提供的 Linux 作業系統。NFS 磁碟區由 Filestore 提供。只有在部署和設定處理期間才會使用臨時密碼。

    為了清楚起見,範例中省略了設定檔中的註解。

    # ...
    module "hana_scaleout" {
    source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/sap_hana_scaleout_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 property above and uncomment the source property below.
    #
    # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_scaleout/sap_hana_scaleout_module.zip"
    #
    # ...
    #
    project_id = "example-project-123456"
    zone = "us-central1-f"
    machine_type = "n2-highmem-32"
    subnetwork = "example-sub-network-sap"
    linux_image = "sles-15-sp4-sap"
    linux_image_project = "suse-sap-cloud"
    
    instance_name = "hana-scaleout-w-failover"
    sap_hana_shared_nfs = "10.74.146.58:/hana_shr"
    sap_hana_backup_nfs = "10.188.249.170:/hana_bup"
    # ...
    sap_hana_deployment_bucket = "hana2-sp5-rev53"
    sap_hana_sid = "HF0"
    sap_hana_instance_number = 00
    sap_hana_sidadm_password = "TempPa55word"
    sap_hana_system_password = "TempPa55word"
    # ...
    sap_hana_worker_nodes = 3
    sap_hana_standby_nodes = 1
    vm_static_ip = "10.0.0.1"
    worker_static_ips = ["10.0.0.2", "10.0.0.3", "10.0.0.4"]
    standby_static_ips = ["10.0.0.5"]
    # ...
    }
  6. 初始化目前的工作目錄,並下載 Google Cloud的 Terraform 供應器外掛程式和模組檔案:

    terraform init

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

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

  7. 視需要建立 Terraform 執行計畫:

    terraform plan

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

  8. 套用執行計畫:

    terraform apply

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

    terraform apply 指令會設定 Google Cloud 基礎架構。當 Compute Engine 機器啟動時, Google Cloud 基礎架構會叫用啟動指令碼,設定作業系統並安裝 SAP HANA。

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

    完成時間可能有所不同,但整個程序通常需要 45 分鐘到 1 小時。

驗證部署作業

如要驗證部署作業,您可以檢查 Cloud Logging 中的部署記錄、檢查主要與工作站主機 VM 上的磁碟與服務、顯示 SAP HANA Studio 中的系統,並測試待命主機的接管動作。

檢查記錄

  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 服務

完成部署之後,請檢查主要主機與一個工作站主機的磁碟與服務,來確認已正確部署磁碟與 SAP HANA 服務。

  1. 在 Compute Engine VM 執行個體頁面上,按一下主要主機 VM 與其中一個工作站主機 VM 列上的 [SSH] 按鈕,連線至這兩個 VM 執行個體。

    前往 VM 執行個體

    連線至工作站主機時,確定並未連線至待命主機。待命主機使用的命名慣例與工作站主機相同,但在第一次接管前,工作站主機後置字串的編號最高。 例如,如果您有三個工作站主機與一個待命主機,在第一次階段之前,待命主機的後置字串為「w4」。

  2. 在每一個終端機視窗中,切換到根使用者。

    sudo su -
  3. 在每一個終端機視窗中,顯示磁碟檔案系統。

    df -h

    在主要主機上,您應會看到類似下面這樣的輸出內容:

    hana-scaleout-w-failover:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G   18M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sdb3                        45G  6.4G   39G  15% /
    /dev/sdb2                        20M  3.0M   17M  15% /boot/efi
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    /dev/mapper/vg_hana_data-data   422G   12G  411G   3% /hana/data/HF0/mnt00001
    /dev/mapper/vg_hana_log-log     128G  7.8G  121G   7% /hana/log/HF0/mnt00001
    tmpfs                            26G     0   26G   0% /run/user/174
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/900
    tmpfs                            26G     0   26G   0% /run/user/1000

    在工作站主機上,請注意 /hana/data/hana/log 目錄有不同的掛接項目:

    hana-scaleout-w-failoverw1:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
    tmpfs                            26G     0   26G   0% /run/user/1000

    在待命主機上,待命主機接管失敗的主機之前,系統不會掛接資料和記錄目錄:

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
  4. 在每一個終端機視窗中,切換到 SAP HANA 作業系統使用者。將 SID_LC 替換為您在設定檔中指定的 sap_hana_sid 值。SID_LC 值必須為小寫。

    su - SID_LCadm
  5. 在每個終端機視窗中,確定 hdbnameserverhdbindexserver 和其他 SAP HANA 服務都在執行個體上執行。

    HDB info

    在主要主機上,您應會看到類似以下截錄範例的輸出內容:

    hana-scaleout-w-failover:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failover:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      25987    25986   0.4      15248       6312 -sh
    hf0adm      26049    25987   0.0      10448       4036  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      26084    26049   0.0      19892       3864      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      22386    22385   0.0      15248       6248 -sh
    hf0adm      19164        1   0.0      13604       3124 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19171    19164   0.0     481188      84340  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failover/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failover/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19193    19171   3.4    9616860    3970304      \_ hdbnameserver
    hf0adm      19583    19171   0.3    4636456     206500      \_ hdbcompileserver
    hf0adm      19586    19171   0.3    4883932     235764      \_ hdbpreprocessor
    hf0adm      19624    19171   5.9    9896896    4193620      \_ hdbindexserver -port 30003
    hf0adm      19627    19171   1.2    7920208    1605448      \_ hdbxsengine -port 30007
    hf0adm      20072    19171   0.5    6825984     531884      \_ hdbwebdispatcher
    hf0adm      15053        1   0.0     590628      33208 hdbrsutil  --start --port 30003 --volume 3 --volumesuffix mnt00001/hdb00003.00003 --identifier 1689854702
    hf0adm      14420        1   0.0     590560      33308 hdbrsutil  --start --port 30001 --volume 1 --volumesuffix mnt00001/hdb00001 --identifier 1689854671
    hf0adm      14155        1   0.1     554820      33320 /usr/sap/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover -D -u hf0adm
    hf0adm      14030        1   0.0      57024      11060 /usr/lib/systemd/systemd --user
    hf0adm      14031    14030   0.0     243164       4036  \_ (sd-pam)

    在工作站主機上,您應會看到類似以下截錄範例的輸出內容:

    hana-scaleout-w-failoverw1:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw1:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      16442    16441   0.0      15248       6276 -sh
    hf0adm      17317    16442   0.0      10448       4032  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      17352    17317   0.0      19892       3816      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      11873        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11880    11873   0.0     477076      84260  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11902    11880   0.8    7738216     784912      \_ hdbnameserver
    hf0adm      12140    11880   0.4    4245828     199884      \_ hdbcompileserver
    hf0adm      12143    11880   0.4    4758024     235448      \_ hdbpreprocessor
    hf0adm      12176    11880   0.6    6046020     534448      \_ hdbwebdispatcher
    hf0adm      12210    11880   2.0    8363976    1743196      \_ hdbindexserver -port 30003
    hf0adm      10452        1   0.0     525100      33640 hdbrsutil  --start --port 30003 --volume 4 --volumesuffix mnt00002/hdb00004.00003 --identifier 1689855202
    hf0adm      10014        1   0.1     554696      31992 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1 -D -u hf0adm

    在待命主機上,您應會看到類似於以下截錄範例的輸出內容:

    hana-scaleout-w-failoverw4:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw4:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      15597    15596   0.5      15248       6272 -sh
    hf0adm      15659    15597   0.0      10448       4004  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      15694    15659   0.0      19892       3860      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      10285        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10292    10285   0.0     478076      84540  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10314    10292   0.6    7468320     729308      \_ hdbnameserver
    hf0adm      10492    10292   0.3    3851320     191636      \_ hdbcompileserver
    hf0adm      10495    10292   0.3    4493296     227884      \_ hdbpreprocessor
    hf0adm      10528    10292   0.4    5381616     509368      \_ hdbwebdispatcher
    hf0adm       9750        1   0.0     620748      32796 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4 -D -u hf0adm
  6. 如果您使用的是 RHEL for SAP 9.0 以上版本,請務必在 VM 執行個體上安裝 chkconfigcompat-openssl11 套件。

    如需 SAP 的更多資訊,請參閱 SAP 附註 3108316 - Red Hat Enterprise Linux 9.x:安裝和設定

連線 SAP HANA Studio

  1. 從 SAP HANA Studio 連線至主要 SAP HANA 主機。

    您可以從 Google Cloud 以外的 SAP HANA Studio 執行個體或 Google Cloud上的執行個體連線。您可能需要啟用目標 VM 與 SAP HANA Studio 之間的網路存取權。

    如要在 GCP 上使用 SAP HANA Studio,並啟用 SAP HANA 系統的存取權,請參閱「在 Compute Engine Windows VM 上安裝 SAP HANA Studio」。 Google Cloud

  2. 在 SAP HANA Studio 中,按一下預設系統管理面板上的 [Landscape] 分頁標籤。畫面會顯示類似以下的內容。

    SAP HANA Studio 中「Landscape」檢視畫面的螢幕擷圖

清除並重試部署

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

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

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

    開啟 Cloud Shell

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

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

    terraform destroy

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

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

執行容錯移轉測試

當您確認成功部署 SAP HANA 系統之後,請測試容錯移轉功能。

下列指示會切換至 SAP HANA 作業系統使用者並輸入 HDB stop 指令來觸發容錯移轉。HDB stop 指令會使 SAP HANA 安全關機,並從主機卸離磁碟,藉以啟用相對較快的容錯移轉作業。

執行容錯移轉測試:

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

    前往 VM 執行個體

  2. 切換至 SAP HANA 作業系統使用者。在下列指令中,將 SID_LC 替換為您在 Terraform 設定檔中為 sap_hana_sid 引數指定的值。

    su - SID_LCadm
  3. 停止 SAP HANA 以模擬失敗情形:

    HDB stop

    HDB stop 指令會使 SAP HANA 關機,藉以觸發容錯移轉作業。在容錯移轉期間,磁碟會從失敗的主機卸離,並重新連接到待命主機。失敗的主機會重新啟動,成為待命主機。

  4. 等待接管完成之後,使用 SSH 連線到接管失敗主機的主機。

  5. 切換到超級使用者:

    sudo su -
  6. 顯示磁碟檔案系統資訊:

    df -h

    畫面會顯示類似以下的輸出內容。請注意,失敗主機的 /hana/data/hana/log 目錄現在會掛接到接管的主機上。

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
  7. 在 SAP HANA Studio 中,開啟 SAP HANA 系統的「Landscape」檢視畫面,確認容錯移轉已經成功:

    • 涉及容錯移轉的主機狀態應為 INFO
    • 「Index Server Role (Actual)」欄應將失敗的主機顯示為新待命主機。

    SAP HANA Studio 中「Landscape」檢視畫面的螢幕擷圖

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

部署 VM 並安裝 SAP 系統後,請確認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 快速重新啟動功能

Google Cloud 強烈建議您為每個 SAP HANA 執行個體啟用 SAP HANA 快速重新啟動功能,尤其是較大的執行個體。如果 SAP HANA 終止,但作業系統仍在執行,SAP HANA 快速重新啟動功能可縮短重新啟動時間。

根據 Google Cloud 提供的自動化指令碼設定,作業系統和核心設定已支援 SAP HANA 快速重新啟動。您需要定義 tmpfs 檔案系統,並設定 SAP HANA。

如要定義 tmpfs 檔案系統並設定 SAP HANA,您可以按照手動步驟操作,也可以使用Google Cloud 提供的自動化指令碼啟用 SAP HANA 快速重新啟動功能。詳情請參閱:

如需 SAP HANA 快速重新啟動功能的完整操作說明,請參閱 SAP HANA 快速重新啟動選項說明文件

手動步驟

設定 tmpfs 檔案系統

主機 VM 和基礎 SAP HANA 系統成功部署後,您需要在 tmpfs 檔案系統中為 NUMA 節點建立及掛載目錄。

顯示 VM 的 NUMA 拓撲

您必須先瞭解 VM 有多少個 NUMA 節點,才能對應必要的 tmpfs 檔案系統。如要顯示 Compute Engine VM 上的可用 NUMA 節點,請輸入下列指令:

lscpu | grep NUMA

舉例來說,m2-ultramem-208 VM 類型有四個 NUMA 節點,編號為 0 到 3,如以下範例所示:

NUMA node(s):        4
NUMA node0 CPU(s):   0-25,104-129
NUMA node1 CPU(s):   26-51,130-155
NUMA node2 CPU(s):   52-77,156-181
NUMA node3 CPU(s):   78-103,182-207
建立 NUMA 節點目錄

為 VM 中的每個 NUMA 節點建立目錄,並設定權限。

舉例來說,如果有四個 NUMA 節點,編號為 0 到 3:

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
將 NUMA 節點目錄掛接至 tmpfs

掛接 tmpfs 檔案系統目錄,並使用 mpol=prefer 為每個目錄指定 NUMA 節點偏好設定:

SID 請使用大寫英文字母指定 SID。

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID
mount tmpfsSID1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID
mount tmpfsSID2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID
mount tmpfsSID3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID
更新「/etc/fstab

為確保掛接點在作業系統重新啟動後可供使用,請在檔案系統表格 /etc/fstab 中新增項目:

tmpfsSID0 /hana/tmpfs0/SID tmpfs rw,nofail,relatime,mpol=prefer:0
tmpfsSID1 /hana/tmpfs1/SID tmpfs rw,nofail,relatime,mpol=prefer:1
tmpfsSID1 /hana/tmpfs2/SID tmpfs rw,nofail,relatime,mpol=prefer:2
tmpfsSID1 /hana/tmpfs3/SID tmpfs rw,nofail,relatime,mpol=prefer:3

選用:設定記憶體用量限制

tmpfs 檔案系統可動態擴充及縮減。

如要限制 tmpfs 檔案系統使用的記憶體,您可以使用 size 選項為 NUMA 節點磁碟機容納的大小設定限制。例如:

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID

您也可以在 global.ini 檔案的 [memorymanager] 區段中設定 persistent_memory_global_allocation_limit 參數,為特定 SAP HANA 例項和特定伺服器節點的所有 NUMA 節點限制整體 tmpfs 記憶體用量。

快速重新啟動的 SAP HANA 設定

如要設定 SAP HANA 以便快速重新啟動,請更新 global.ini 檔案,並指定要儲存在永久性記憶體中的資料表。

更新 global.ini 檔案中的 [persistence] 區段

設定 SAP HANA global.ini 檔案中的 [persistence] 區段,以參照 tmpfs 位置。請使用半形分號分隔每個 tmpfs 位置:

[persistence]
basepath_datavolumes = /hana/data
basepath_logvolumes = /hana/log
basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID

上述範例為四個 NUMA 節點指定四個記憶體磁碟區,對應至 m2-ultramem-208。如果您在 m2-ultramem-416 上執行,則需要設定八個記憶體磁區 (0..7)。

修改 global.ini 檔案後,請重新啟動 SAP HANA。

SAP HANA 現在可以使用 tmpfs 位置做為永久記憶體空間。

指定要儲存在永久性記憶體中的資料表

指定要儲存在永久性記憶體中的特定資料欄資料表或分區。

舉例來說,如要為現有資料表開啟持久性記憶體,請執行 SQL 查詢:

ALTER TABLE exampletable persistent memory ON immediate CASCADE

如要變更新資料表的預設值,請在 indexserver.ini 檔案中新增 table_default 參數。例如:

[persistent_memory]
table_default = ON

如要進一步瞭解如何控制資料欄、資料表,以及哪些監控檢視畫面可提供詳細資訊,請參閱「SAP HANA 永久記憶體」。

自動化步驟

Google Cloud 提供的自動化指令碼可啟用 SAP HANA 快速重新啟動功能,並修改目錄 /hana/tmpfs*、檔案 /etc/fstab 和 SAP HANA 設定。執行指令碼時,您可能需要執行額外步驟,具體取決於這是 SAP HANA 系統的初始部署作業,還是將機器大小調整為不同的 NUMA 大小。

如要初始部署 SAP HANA 系統,或調整機器大小以增加 NUMA 節點數量,請務必在執行 Google Cloud提供的自動化指令碼時,讓 SAP HANA 執行,以便啟用 SAP HANA 快速重新啟動功能。

當您調整機器大小以減少 NUMA 節點數時,請務必在執行 Google Cloud 提供的自動化指令碼時,停止 SAP HANA,以便啟用 SAP HANA 快速重新啟動功能。執行指令碼後,您必須手動更新 SAP HANA 設定,才能完成 SAP HANA 快速重新啟動設定。詳情請參閱「SAP HANA 快速重新啟動設定」。

如要啟用 SAP HANA 快速重新啟動功能,請按照下列步驟操作:

  1. 與主機 VM 建立 SSH 連線。

  2. 切換至根目錄:

    sudo su -

  3. 下載 sap_lib_hdbfr.sh 指令碼:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. 將檔案設為可執行檔:

    chmod +x sap_lib_hdbfr.sh
  5. 確認指令碼沒有錯誤:

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    如果指令傳回錯誤,請與 Cloud Customer Care 團隊聯絡。如要進一步瞭解如何與客戶服務團隊聯絡,請參閱「取得 SAP 支援 Google Cloud」一文。

  6. 請先為 SAP HANA 資料庫的系統使用者,替換 SAP HANA 系統 ID (SID) 和密碼,再執行指令碼。為確保密碼安全,建議您在 Secret Manager 中使用密鑰。

    使用 Secret Manager 中的密鑰名稱執行指令碼。這個機密金鑰必須存在於包含主機 VM 執行個體的 Google Cloud 專案中。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME 

    更改下列內容:

    • SID:請使用大寫字母指定 SID。例如:AHA
    • SECRET_NAME:指定與 SAP HANA 資料庫系統使用者密碼相對應的機密金鑰名稱。這個祕密值必須存在於 Google Cloud 專案中,且該專案包含主機 VM 執行個體。

    或者,您也可以使用純文字密碼執行指令碼。啟用 SAP HANA 快速重新啟動功能後,請務必變更密碼。我們不建議使用純文字密碼,因為密碼會記錄在 VM 的指令列記錄中。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'

    更改下列內容:

    • SID:請使用大寫字母指定 SID。例如:AHA
    • PASSWORD:指定 SAP HANA 資料庫系統使用者的密碼。

如果初次執行成功,您應該會看到類似以下的輸出內容:

INFO - Script is running in standalone mode
ls: cannot access '/hana/tmpfs*': No such file or directory
INFO - Setting up HANA Fast Restart for system 'TST/00'.
INFO - Number of NUMA nodes is 2
INFO - Number of directories /hana/tmpfs* is 0
INFO - HANA version 2.57
INFO - No directories /hana/tmpfs* exist. Assuming initial setup.
INFO - Creating 2 directories /hana/tmpfs* and mounting them
INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839
INFO - Updating the HANA configuration.
INFO - Running command: select * from dummy
DUMMY
"X"
1 row selected (overall time 4124 usec; server time 130 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;'
0 rows affected (overall time 3570 usec; server time 2239 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain';
0 rows affected (overall time 4308 usec; server time 2441 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON';
0 rows affected (overall time 3422 usec; server time 2152 usec)

連線至 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 資料庫。

執行部署後工作

使用 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 系統複製功能,從現有系統載入資料。

  6. 設定並備份新的 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 建立及執行評估作業,請參閱「建立並執行評估作業」。

後續步驟

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