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

本指南說明如何使用 Cloud Deployment Manager 部署包含 SAP HANA 主機自動容錯移轉錯誤復原解決方案的 SAP HANA 向外擴充系統。透過使用 Deployment Manager,您可以部署符合 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 的儲存空間管理工具」。

如果您需要在 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 磁碟區。您要在 Deployment Manager 設定檔中為 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. 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 按一下「建立虛擬私有雲網路」
  3. 輸入網路的名稱

    名稱必須遵循命名慣例。虛擬私有雲網路會使用 Compute Engine 命名慣例。

  4. 在 [Subnet creation mode] (子網路建立模式) 中,選擇 [Custom]。
  5. 在「New subnet」(新子網路) 部分,指定子網路的以下設定參數:
    1. 輸入子網路的「名稱」
    2. 在「區域」中,選取要建立子網路的 Compute Engine 區域
    3. 針對「IP 堆疊類型」,請選取「IPv4 (單一堆疊)」,然後以 CIDR 格式輸入 IP 位址範圍,例如 10.1.0.0/24

      這是子網路的主要 IPv4 範圍。如果您打算新增多個子網路,請為網路中的每個子網路指派不重疊的 CIDR IP 範圍。請注意,每個子網路及其內部 IP 範圍都會對應至單一地區。

    4. 按一下「完成」
  6. 如要新增其他子網路,請按一下「Add subnet」(新增子網路),然後重複上述步驟。建立網路後,您可以新增更多子網路。
  7. 按一下 [建立]。

gcloud

  1. 前往 Cloud Shell。

    前往 Cloud Shell

  2. 如要在自訂子網路模式中建立新的網路,請執行:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    請將 NETWORK_NAME 替換為新網路的名稱。名稱必須遵循命名慣例。虛擬私有雲網路會使用 Compute Engine 命名慣例。

    指定 --subnet-mode custom 以避免使用預設的自動模式,不然系統會自動在每個 Compute Engine 地區建立子網路。詳情請參閱「子網路建立模式」。

  3. 建立子網路,並指定地區和 IP 範圍。
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    更改下列內容:

    • SUBNETWORK_NAME:新子網路的名稱
    • NETWORK_NAME:您在上一個步驟中建立的網路名稱
    • REGION:您希望子網路所在的區域
    • RANGE以 CIDR 格式指定的 IP 位址範圍,例如 10.1.0.0/24

      如果您打算新增多個子網路,請為網路中的每個子網路指派不重疊的 CIDR IP 範圍。請注意,每個子網路及其內部 IP 範圍都會對應至單一地區。

  4. (選用) 重複上述步驟以新增其他子網路。

設定 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 之間的通訊。

建立防火牆規則的步驟如下:

主控台

  1. 在 Google Cloud 控制台中,前往「VPC Network」(虛擬私有雲網路) 「Firewall」(防火牆) 頁面。

    前往「Firewall」(防火牆)

  2. 按一下頁面頂端的 [Create firewall rule] (建立防火牆規則)

    • 在「Network」(網路) 欄位中,選取您 VM 所在的網路。
    • 在「Targets」欄位中,指定此規則適用的 Google Cloud資源。例如,指定「All instances in the network」(網路中的所有執行個體),或者,如要將規則限制於 Google Cloud上的特定執行個體,請在「Specified target tags」(指定的目標標記) 中輸入標記。
    • 在「Source filter」(來源篩選器) 欄位中選取下列其中一項:
      • 「IP ranges」(IP 範圍) - 允許來自特定 IP 位址連入的流量。請在「Source IP ranges」(來源 IP 範圍) 欄位中指定 IP 位址的範圍。
      • 「Subnets」(子網路) - 允許來自特定子網路的連入流量。請在隨後的「Subnets」(子網路) 欄位中指定子網路名稱。您可以使用這個選項允許 3 層或向外擴充設定中 VM 之間的存取作業。
    • 在「Protocols and ports」(通訊協定和通訊埠) 區段中,選取「Specified protocols and ports」(指定的通訊協定和通訊埠),然後輸入 tcp:PORT_NUMBER
  3. 按一下 [Create] (建立) 以建立您的防火牆規則。

gcloud

使用下列指令建立防火牆規則:

$ gcloud compute firewall-rules create FIREWALL_NAME
--direction=INGRESS --priority=1000 \
--network=NETWORK_NAME --action=ALLOW --rules=PROTOCOL:PORT \
--source-ranges IP_RANGE --target-tags=NETWORK_TAGS

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

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

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

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

定義及建立 SAP HANA 系統

您會在下列步驟中下載及完成 Deployment Manager 設定檔範本並叫用 Deployment Manager,這樣會部署 VM、永久磁碟與 SAP HANA 執行個體。

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

    前往「配額」頁面

  2. 開啟 Cloud Shell。

    前往 Cloud Shell

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

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_scaleout/template.yaml
  4. 或者,您也可以重新命名 template.yaml 檔案,藉此識別其定義的設定。例如,您可以使用 hana2sp3rev30-scaleout.yaml 這類檔案名稱。

  5. 在 Cloud Shell 程式碼編輯器中開啟 template.yaml 檔案。

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

  6. template.yaml 檔案中,使用安裝的值來取代括號及其內容,即可更新下列屬性值。例如,您可能會將「[ZONE]」替換為「us-central1-f」。

    屬性 資料類型 說明
    類型 字串

    指定在部署期間要使用的 Deployment Manager 範本位置、類型和版本。

    YAML 檔案包含兩個 type 規格,其中一個已註解掉。預設啟用的 type 規格會將範本版本指定為 latest。註解掉的 type 規格會指定具有時間戳記的特定範本版本。

    如果您需要所有部署都使用相同的範本版本,請使用包含時間戳記的 type 規格。

    instanceName 字串 SAP HANA 主要主機的 VM 執行個體名稱。名稱只能以小寫字母、數字或連字號指定。工作站與待命主機的 VM 執行個體使用都使用含有「w」的相同名稱,並在名稱後面附加主機編號。
    instanceType 字串 您需要執行 SAP HANA 的 Compute Engine 虛擬機器類型。如果您需要自訂 VM 類型,請指定預先定義的 VM 類型,並將 vCPU 數量設為最接近您所需數量的數字,但仍要大於該數字。部署完成後,請修改 vCPU 數量和記憶體容量
    zone 字串 您部署 SAP HANA 系統執行所在的區域,此區域必須位於您為子網路選取的地區。
    subnetwork 字串 您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私人雲端,請將這個值指定為 [SHAREDVPC_PROJECT]/[SUBNETWORK]。例如:myproject/network1
    linuxImage 字串 要用於 SAP HANA 的 Linux 作業系統映像檔或映像檔系列的名稱。如要指定映像檔系列,請在系列名稱加上 family/ 前置詞,例如 family/rhel-8-1-sap-hafamily/sles-15-sp2-sap。如要指定特定映像檔,請只指定映像檔名稱。如需可用的映像檔系列清單,請參閱 Google Cloud 控制台中的「映像檔」頁面。
    linuxImageProject 字串 您要使用的映像檔所屬的 Google Cloud 專案。這個專案可能是您自己的專案或 Google Cloud 映像檔專案。如為 Compute Engine 映像檔,請指定 rhel-sap-cloudsuse-sap-cloud。如要查看作業系統的映像檔專案,請參閱「作業系統詳細資訊」。
    sap_hana_deployment_bucket 字串 專案中 Cloud Storage 值區的名稱,其中包含您在上一個步驟中上傳的 SAP HANA 安裝檔案。
    sap_hana_sid 字串 SAP HANA 系統 ID。此 ID 必須包含 3 個英數字元,並以字母開頭。所有字母都必須是大寫。
    sap_hana_instance_number 整數 SAP HANA 系統的執行個體編號,從 0 到 99。預設值為 0。
    sap_hana_sidadm_password 字串 作業系統管理員的臨時密碼,用於部署期間。密碼至少必須為 8 個字元,並包含至少 1 個大寫字母、1 個小寫字母與 1 個數字。
    sap_hana_system_password 字串 資料庫超級使用者的臨時密碼,用於部署期間。密碼至少必須為 8 個字元,並包含至少 1 個大寫字母、1 個小寫字母與 1 個數字。
    sap_hana_worker_nodes 整數 您需要的其他 SAP HANA 工作站主機數量。您可以指定 1 至 15 個工作站主機。預設值為 1。
    sap_hana_standby_nodes 整數 您需要的其他 SAP HANA 待命主機數量。您可已指定 1 到 3 個待命主機。預設值為 1。
    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
    networkTag 字串 (選用步驟) 代表您 VM 執行個體的一或多個以半形逗號分隔的網路標記,供防火牆或轉送使用。如果您指定了 publicIP: No 但未指定網路標記,請務必提供其他能存取網際網路的方式。
    nic_type 字串 選用,但如果目標機器和 OS 版本提供此選項,則建議使用。指定要與 VM 執行個體搭配使用的網路介面。您可以指定 GVNICVIRTIO_NET 值。如要使用 Google Virtual NIC (gVNIC),您必須指定支援 gVNIC 的 OS 映像檔,做為 linuxImage 屬性的值。如需作業系統映像檔清單,請參閱「作業系統詳細資料」。

    如果您未為此屬性指定值,系統會根據您為 instanceType 屬性指定的機器類型,自動選取網路介面。

    這個引數適用於 Deployment Manager 範本 202302060649 以上版本。
    publicIP 布林值 (選用步驟) 指定是否要將公開 IP 位址加到您的 VM 執行個體。預設為 Yes
    sap_hana_double_volume_size 整數 (選用) 使 HANA 磁碟區大小加倍。如果您想在同一個 VM 上部署多個 SAP HANA 執行個體或災難復原 SAP HANA 執行個體,這項功能就很實用。根據預設,系統會自動計算出最小可用的磁碟空間大小,以滿足記憶體占用空間需求,同時符合 SAP 認證和支援需求。
    sap_hana_sidadm_uid 整數 (選用步驟) 覆寫 SID_LCadm 使用者 ID 的預設值。預設值為 900。您可以在 SAP 範圍內針對一致性的目的將其改為其他值。
    sap_hana_sapsys_gid 整數 (選用) 覆寫 sapsys 的預設群組 ID。預設值為 79。
    sap_deployment_debug 布林值 (選用步驟) 如果此值設為 Yes,部署會產生詳細部署記錄。除非 Google 支援工程師要求您啟用偵錯功能,否則請勿開啟此設定。
    post_deployment_script 布林值 (選用步驟) 指令碼在部署完成後執行所在的網址或儲存位置。指令碼應在網路伺服器或 Cloud Storage 值區中託管。請以 http:// https:// 或 gs:// 做為此值的開頭。請注意,此指令碼將在範本建立的所有 VM 上執行。如果您只想在主機執行個體上執行,則需要在指令碼頂部加上一個勾號。

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

    resources:
    - name: sap_hana_ha_scaleout
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_scaleout/sap_hana_scaleout.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/YYYYMMDDHHMM/dm-templates/sap_hana_scaleout/sap_hana_scaleout.py
      #
      properties:
        instanceName: hana-scaleout-w-failover
        instanceType: n2-highmem-32
        zone: us-central1-f
        subnetwork: example-sub-network-sap
        linuxImage: family/sles-15-sp2-sap
        linuxImageProject: suse-sap-cloud
        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
        sap_hana_shared_nfs: 10.74.146.58:/hana_shr
        sap_hana_backup_nfs: 10.188.249.170:/hana_bup
        serviceAccount: sap-deploy-example@example-project-123456.iam.gserviceaccount.com
    
  7. 建立執行個體:

    gcloud deployment-manager deployments create [DEPLOYMENT_NAME] --config [TEMPLATE_NAME].yaml
    

    上述指令會叫用 Deployment Manager,該工具會設定 Google Cloud 基礎架構,然後叫用另一個指令碼,設定作業系統並安裝 SAP HANA。

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

    完成時間可能有所不同,但整個程序通常會在 30 分鐘內完成。

驗證部署作業

如要驗證部署作業,您可以檢查 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. 分析篩選過的記錄:

連線至 VM 來檢查磁碟與 SAP HANA 服務

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

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

    前往 VM 執行個體

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

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

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

    df -h

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

    hana-scaleout-w-failover:~ # df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  126G  8.0K  126G   1% /dev
    tmpfs                     189G     0  189G   0% /dev/shm
    tmpfs                     126G   18M  126G   1% /run
    tmpfs                     126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                  45G  5.6G   40G  13% /
    /dev/sda2                  20M  2.9M   18M  15% /boot/efi
    10.135.35.138:/hana_shr  1007G   50G  906G   6% /hana/shared
    tmpfs                      26G     0   26G   0% /run/user/473
    10.197.239.138:/hana_bup 1007G     0  956G   0% /hanabackup
    tmpfs                      26G     0   26G   0% /run/user/900
    /dev/mapper/vg_hana-data  709G  7.7G  702G   2% /hana/data/HF0/mnt00001
    /dev/mapper/vg_hana-log   125G  5.3G  120G   5% /hana/log/HF0/mnt00001
    tmpfs                      26G     0   26G   0% /run/user/1003

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

    hana-scaleout-w-failoverw2:~ # df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  126G  8.0K  126G   1% /dev
    tmpfs                     189G     0  189G   0% /dev/shm
    tmpfs                     126G  9.2M  126G   1% /run
    tmpfs                     126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                  45G  5.6G   40G  13% /
    /dev/sda2                  20M  2.9M   18M  15% /boot/efi
    tmpfs                      26G     0   26G   0% /run/user/0
    10.135.35.138:/hana_shr  1007G   50G  906G   6% /hana/shared
    10.197.239.138:/hana_bup 1007G     0  956G   0% /hanabackup
    /dev/mapper/vg_hana-data  709G  821M  708G   1% /hana/data/HF0/mnt00003
    /dev/mapper/vg_hana-log   125G  2.2G  123G   2% /hana/log/HF0/mnt00003
    tmpfs                      26G     0   26G   0% /run/user/1003

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

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  126G  8.0K  126G   1% /dev
    tmpfs                     189G     0  189G   0% /dev/shm
    tmpfs                     126G   18M  126G   1% /run
    tmpfs                     126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                  45G  5.6G   40G  13% /
    /dev/sda2                  20M  2.9M   18M  15% /boot/efi
    tmpfs                      26G     0   26G   0% /run/user/0
    10.135.35.138:/hana_shr  1007G   50G  906G   6% /hana/shared
    10.197.239.138:/hana_bup 1007G     0  956G   0% /hanabackup
    tmpfs                      26G     0   26G   0% /run/user/1003
  4. 在每一個終端機視窗中,切換到 SAP HANA 作業系統使用者。

    su - SID_LCadm

    SID_LC 替換為您在設定檔範本中指定的 SID 值。請使用小寫字母。

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

    HDB info

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

    hf0adm@hana-scaleout-w-failover:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm       5936     5935   0.7      18540       6776 -sh
    hf0adm       6011     5936   0.0      14128       3856  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm       6043     6011   0.0      34956       3568      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10
    hf0adm      17950        1   0.0      23052       3168 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout
    hf0adm      17957    17950   0.0     457332      70956  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failover/trace/hdb.sa
    hf0adm      17975    17957   1.8    9176656    3432456      \_ hdbnameserver
    hf0adm      18334    17957   0.4    4672036     229204      \_ hdbcompileserver
    hf0adm      18337    17957   0.4    4941180     257348      \_ hdbpreprocessor
    hf0adm      18385    17957   4.5    9854464    4955636      \_ hdbindexserver -port 30003
    hf0adm      18388    17957   1.2    7658520    1424708      \_ hdbxsengine -port 30007
    hf0adm      18865    17957   0.4    6640732     526104      \_ hdbwebdispatcher
    hf0adm      14230        1   0.0     568176      32100 /usr/sap/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profi
    hf0adm      10920        1   0.0     710684      51560 hdbrsutil  --start --port 30003 --volume 3 --volumesuffix mn
    hf0adm      10575        1   0.0     710680      51104 hdbrsutil  --start --port 30001 --volume 1 --volumesuffix mn
    hf0adm      10217        1   0.0      72140       7752 /usr/lib/systemd/systemd --user
    hf0adm      10218    10217   0.0     117084       2624  \_ (sd-pam)

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

    hf0adm@hana-scaleout-w-failoverw2:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      22136    22135   0.3      18540       6804 -sh
    hf0adm      22197    22136   0.0      14128       3892  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      22228    22197   100      34956       3528      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10
    hf0adm       9138        1   0.0      23052       3064 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout
    hf0adm       9145     9138   0.0     457360      70900  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw2/trace/hdb.
    hf0adm       9163     9145   0.7    7326228     755772      \_ hdbnameserver
    hf0adm       9336     9145   0.5    4670756     226972      \_ hdbcompileserver
    hf0adm       9339     9145   0.6    4942460     259724      \_ hdbpreprocessor
    hf0adm       9385     9145   2.0    7977460    1666792      \_ hdbindexserver -port 30003
    hf0adm       9584     9145   0.5    6642012     528840      \_ hdbwebdispatcher
    hf0adm       8226        1   0.0     516532      52676 hdbrsutil  --start --port 30003 --volume 5 --volumesuffix mn
    hf0adm       7756        1   0.0     567520      31316 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/p

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

    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      19926    19925   0.2      18540       6748 -sh
    hf0adm      19987    19926   0.0      14128       3864  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      20019    19987   0.0      34956       3640      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10
    hf0adm       8120        1   0.0      23052       3232 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout
    hf0adm       8127     8120   0.0     457348      71348  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/trace/hdb.
    hf0adm       8145     8127   0.6    7328784     708284      \_ hdbnameserver
    hf0adm       8280     8127   0.4    4666916     223892      \_ hdbcompileserver
    hf0adm       8283     8127   0.4    4939904     256740      \_ hdbpreprocessor
    hf0adm       8328     8127   0.4    6644572     534044      \_ hdbwebdispatcher
    hf0adm       7374        1   0.0     633568      31520 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/p
  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. 在「Deployments」頁面上,刪除部署作業。
  3. 重新執行部署。

執行容錯移轉測試

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

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

執行容錯移轉測試:

  1. 使用 SSH 連線到 VM。按一下每個 VM 執行個體的 [SSH] 按鈕即可從 Compute Engine 的 VM 執行個體頁面連線,或者可以使用您偏好的 SSH 方法。

    前往 VM 執行個體

  2. 切換到 SAP HANA 作業系統使用者。在下列範例中,將 SID_LC 替換為您為系統定義的 SID。

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

    HDB stop

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

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

  5. 變更為根目錄使用者:

    sudo su -
  6. 顯示主要與工作站主機 VM 的磁碟檔案系統。

    df -h

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

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  126G  8.0K  126G   1% /dev
    tmpfs                     189G     0  189G   0% /dev/shm
    tmpfs                     126G  9.2M  126G   1% /run
    tmpfs                     126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                  45G  5.6G   40G  13% /
    /dev/sda2                  20M  2.9M   18M  15% /boot/efi
    tmpfs                      26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr   1007G   50G  906G   6% /hana/shared
    10.188.249.170:/hana_bup 1007G     0  956G   0% /hanabackup
    /dev/mapper/vg_hana-data  709G  821M  708G   1% /hana/data/HF0/mnt00003
    /dev/mapper/vg_hana-log   125G  2.2G  123G   2% /hana/log/HF0/mnt00003
    tmpfs                      26G     0   26G   0% /run/user/1003
  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. 安裝其他任何元件,例如 Application Function Libraries (AFL) 或 Smart Data Access (SDA)。

  4. 如果您要升級現有的 SAP HANA 系統,請使用標準備份和還原程序或 SAP HANA 系統複製功能,從現有系統載入資料。

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

後續步驟