本指南說明如何使用 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 也沒關係。
如要設定網路:
控制台
- 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
- 按一下「建立虛擬私有雲網路」。
- 輸入網路的名稱。
名稱必須遵循命名慣例。虛擬私有雲網路會使用 Compute Engine 命名慣例。
- 在 [Subnet creation mode] (子網路建立模式) 中,選擇 [Custom]。
- 在「New subnet」(新子網路) 部分,指定子網路的以下設定參數:
- 輸入子網路的「名稱」。
- 在「區域」中,選取要建立子網路的 Compute Engine 區域。
- 針對「IP 堆疊類型」,請選取「IPv4 (單一堆疊)」,然後以 CIDR 格式輸入 IP 位址範圍,例如
10.1.0.0/24
。這是子網路的主要 IPv4 範圍。如果您打算新增多個子網路,請為網路中的每個子網路指派不重疊的 CIDR IP 範圍。請注意,每個子網路及其內部 IP 範圍都會對應至單一地區。
- 按一下「完成」。
- 如要新增其他子網路,請按一下「Add subnet」(新增子網路),然後重複上述步驟。建立網路後,您可以新增更多子網路。
- 按一下 [建立]。
gcloud
- 前往 Cloud Shell。
- 如要在自訂子網路模式中建立新的網路,請執行:
gcloud compute networks create NETWORK_NAME --subnet-mode custom
請將
NETWORK_NAME
替換為新網路的名稱。名稱必須遵循命名慣例。虛擬私有雲網路會使用 Compute Engine 命名慣例。指定
--subnet-mode custom
以避免使用預設的自動模式,不然系統會自動在每個 Compute Engine 地區建立子網路。詳情請參閱「子網路建立模式」。 - 建立子網路,並指定地區和 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 範圍都會對應至單一地區。
- (選用) 重複上述步驟以新增其他子網路。
設定 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 之間的通訊。
建立防火牆規則的步驟如下:
主控台
在 Google Cloud 控制台中,前往「VPC Network」(虛擬私有雲網路) 「Firewall」(防火牆) 頁面。
按一下頁面頂端的 [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
。
按一下 [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 執行個體。
確認您目前的專案資源配額 (例如永久磁碟與 CPU) 對於您即將安裝的 SAP HANA 系統而言是否足夠。如果您的配額不足,則部署會失敗。如要瞭解 SAP HANA 配額需求,請參閱 SAP HANA 的定價與配額考量事項一文。
開啟 Cloud Shell。
將 SAP HANA 高可用性向外擴展系統的
template.yaml
設定檔範本下載至您的工作目錄:wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_scaleout/template.yaml
或者,您也可以重新命名
template.yaml
檔案,藉此識別其定義的設定。例如,您可以使用hana2sp3rev30-scaleout.yaml
這類檔案名稱。在 Cloud Shell 程式碼編輯器中開啟
template.yaml
檔案。如要開啟 Cloud Shell 程式碼編輯器,請按一下 Cloud Shell 終端機視窗右上角的鉛筆圖示。
在
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-ha
或family/sles-15-sp2-sap
。如要指定特定映像檔,請只指定映像檔名稱。如需可用的映像檔系列清單,請參閱 Google Cloud 控制台中的「映像檔」頁面。linuxImageProject
字串 您要使用的映像檔所屬的 Google Cloud 專案。這個專案可能是您自己的專案或 Google Cloud 映像檔專案。如為 Compute Engine 映像檔,請指定 rhel-sap-cloud
或suse-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 執行個體搭配使用的網路介面。您可以指定 GVNIC
或VIRTIO_NET
值。如要使用 Google Virtual NIC (gVNIC),您必須指定支援 gVNIC 的 OS 映像檔,做為linuxImage
屬性的值。如需作業系統映像檔清單,請參閱「作業系統詳細資料」。如果您未為此屬性指定值,系統會根據您為
這個引數適用於 Deployment Manager 範本instanceType
屬性指定的機器類型,自動選取網路介面。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
建立執行個體:
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 中的系統,並測試待命主機的接管動作。
檢查記錄
在 Google Cloud 控制台中開啟 Cloud Logging,監控安裝進度及檢查錯誤。
篩選記錄:
記錄檔探索工具
在「Logs Explorer」頁面中,前往「查詢」窗格。
在「Resource」下拉式選單中,選取「Global」,然後點選「Add」。
如果找不到「Global」選項,請在查詢編輯器中輸入以下查詢:
resource.type="global" "Deployment"
點選「執行查詢」
舊版記錄檢視器
- 在「Legacy Logs Viewer」頁面中,從基本選取器選單中選取「Global」做為記錄資源。
分析篩選過的記錄:
- 如果顯示
"--- Finished"
,表示部署程序已完成,您可以繼續進行下一個步驟。 如果畫面顯示配額錯誤:
在 IAM 和管理員「Quotas」(配額) 頁面上,增加 SAP HANA 規劃指南中所列出不符 SAP HANA 規定的任何配額。
在 Deployment Manager「Deployments」(部署) 頁面上,刪除部署以清除安裝失敗的 VM 與永久磁碟。
重新執行部署。
- 如果顯示
連線至 VM 來檢查磁碟與 SAP HANA 服務
完成部署之後,請檢查主要主機與一個工作站主機的磁碟與服務,來確認已正確部署磁碟與 SAP HANA 服務。
在 Compute Engine 的「VM instances」(VM 執行個體) 頁面上,按一下兩個 VM 執行個體列的 [SSH] 按鈕,連線至主要主機 VM 和其中一個工作站主機 VM。
連線至工作站主機時,確定並未連線至待命主機。待命主機使用的命名慣例與工作站主機相同,但在第一次接管前,工作站主機後置字串的編號最高。 例如,如果您有三個工作站主機與一個待命主機,在第一次階段之前,待命主機的後置字串為「w4」。
在每個終端機視窗中,切換到超級使用者。
sudo su -
在每一個終端機視窗中,顯示磁碟檔案系統。
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
在每一個終端機視窗中,切換到 SAP HANA 作業系統使用者。
su - SID_LCadm
將
SID_LC
替換為您在設定檔範本中指定的 SID 值。請使用小寫字母。在每個終端機視窗中,確定
hdbnameserver
、hdbindexserver
和其他 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
如果您使用的是 RHEL for SAP 9.0 以上版本,請務必在 VM 執行個體上安裝
chkconfig
和compat-openssl11
套件。如需 SAP 的更多資訊,請參閱 SAP 附註 3108316 - Red Hat Enterprise Linux 9.x:安裝和設定。
連線 SAP HANA Studio
從 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
在 SAP HANA Studio 中,按一下預設系統管理面板上的 [Landscape] 分頁標籤。畫面會顯示類似以下的內容。
如有任何驗證步驟指出安裝失敗,請採取以下步驟:
執行容錯移轉測試
當您確認成功部署 SAP HANA 系統之後,請測試容錯移轉功能。
下列指示會切換至 SAP HANA 作業系統使用者並輸入 HDB stop
指令來觸發容錯移轉。HDB stop
指令會使 SAP HANA 安全關機,並從主機卸離磁碟,藉以啟用相對較快的容錯移轉作業。
執行容錯移轉測試:
使用 SSH 連線到 VM。按一下每個 VM 執行個體的 [SSH] 按鈕即可從 Compute Engine 的 VM 執行個體頁面連線,或者可以使用您偏好的 SSH 方法。
切換到 SAP HANA 作業系統使用者。在下列範例中,將
SID_LC
替換為您為系統定義的 SID。su - SID_LCadm
停止 SAP HANA 以模擬失敗情形:
HDB stop
HDB stop
指令會使 SAP HANA 關機,藉以觸發容錯移轉作業。在容錯移轉期間,磁碟會從失敗的主機卸離,並重新連接到待命主機。失敗的主機會重新啟動,成為待命主機。等待接管完成之後,使用 SSH 重新連接到接管失敗主機的主機。
變更為根目錄使用者:
sudo su -
顯示主要與工作站主機 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
在 SAP HANA Studio 中,開啟 SAP HANA 系統的「Landscape」檢視畫面,確認容錯移轉已經成功:
- 涉及容錯移轉的主機狀態應為
INFO
。 - 「Index Server Role (Actual)」欄應將失敗的主機顯示為新待命主機。
- 涉及容錯移轉的主機狀態應為
驗證 Google Cloud的 Agent for SAP 安裝狀態
部署 VM 並安裝 SAP 系統後,請確認Google Cloud的 SAP 代理程式是否正常運作。
確認 Google Cloud的 Agent for SAP 是否正在執行
如要確認代理程式是否正在執行,請按照下列步驟操作:
與 Compute Engine 執行個體建立 SSH 連線。
執行下列指令:
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,請按照下列步驟操作:
- 在 SAP 系統中輸入交易
ST06
。 在「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 快速重新啟動功能,請按照下列步驟操作:
與主機 VM 建立 SSH 連線。
切換至根目錄:
sudo su -
下載
sap_lib_hdbfr.sh
指令碼:wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
將檔案設為可執行檔:
chmod +x sap_lib_hdbfr.sh
確認指令碼沒有錯誤:
vi sap_lib_hdbfr.sh ./sap_lib_hdbfr.sh -help
如果指令傳回錯誤,請與 Cloud Customer Care 團隊聯絡。如要進一步瞭解如何與客戶服務團隊聯絡,請參閱「取得 SAP 支援 Google Cloud」一文。
請先為 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 安裝與更新指南。
變更 SAP HANA 系統管理員和資料庫超級使用者的臨時密碼。
使用最新的修補程式更新 SAP HANA 軟體。
安裝其他任何元件,例如 Application Function Libraries (AFL) 或 Smart Data Access (SDA)。
如果您要升級現有的 SAP HANA 系統,請使用標準備份和還原程序或 SAP HANA 系統複製功能,從現有系統載入資料。
設定並備份新的 SAP HANA 資料庫。詳情請參閱 SAP HANA 作業指南。
後續步驟
- 如要進一步瞭解 VM 管理與監控,請參閱 SAP HANA 作業指南。