本指南說明如何自動部署效能最佳化的 SUSE Linux Enterprise Server (SLES) 高可用性 (HA) 叢集,以便 SAP NetWeaver 使用。簡易掛載設定也適用於 SLES 15 for SAP 以上版本。
本指南會使用 Terraform 部署兩部 Compute Engine 虛擬機器 (VM)、一個虛擬 IP 位址 (VIP) 和內部傳送網路負載平衡器實作方式,以及一個以作業系統為基礎的 HA 叢集,所有這些都遵循 Google Cloud、SAP 和作業系統供應商的最佳做法。
如要瞭解如何為 SAP NetWeaver 部署非高可用性的 Compute Engine VM,請參閱您作業系統適用的 SAP NetWeaver 部署指南。
如要在 Red Hat Enterprise Linux (RHEL) 上為 SAP HANA 設定 HA 叢集,請參閱 RHEL 上 SAP NetWeaver 的 HA 叢集手動設定指南。
本指南適用對象為熟悉如何針對 SAP NetWeaver 進行 Linux 高可用性設定的進階 SAP NetWeaver 使用者。
本指南部署的系統
您將按照本指南的說明,部署兩個 SAP NetWeaver 執行個體,並在 SLES 上設定高可用性叢集。您可以在相同地區內的不同區域中,將每個 SAP NetWeaver 執行個體部署至 Compute Engine VM。本指南未涵蓋基礎資料庫的高可用性安裝作業。
已部署叢集包含下列功能和特色:
- 兩個主機 VM,一個用於有效的 ASCS 例項,另一個用於 ENSA2 Enqueue Replicator 或 ENSA1 Enqueue Replication Server (ENSA1) 的有效例項。ENSA2 和 ENSA1 執行個體都稱為「有效收益分成」ERS。
- Pacemaker 高可用性叢集資源管理員。
- STONITH 防護機制。
- 自動將故障的執行個體重新啟動為新的次要執行個體。
事前準備
建立 SAP NetWeaver 高可用性叢集前,請確保符合下列必備條件:
- 您已閱讀 SAP NetWeaver 規劃指南和 Google Cloud上的 SAP NetWeaver 高可用性規劃指南。
- 您或您的機構擁有 Google Cloud 帳戶,且您已針對 SAP NetWeaver 部署建立專案。如要瞭解如何建立Google Cloud 帳戶和專案,請參閱 Linux 版 SAP NetWeaver 部署指南中的「建立專案」一節。
- 如果您希望 SAP 工作負載在符合資料落地、存取權控管、支援人員或法規規定的情況下執行,則必須建立必要的 Assured Workloads 資料夾。詳情請參閱「SAP on Google Cloud的符合性和主權控管措施」。
如果您使用VPC 內部 DNS,專案中繼資料中的
vmDnsSetting
變數值必須為GlobalOnly
或ZonalPreferred
,才能在各區域中解析節點名稱。vmDnsSetting
的預設設定為ZonalOnly
。詳情請參閱:您已使用 NFS 共用檔案儲存解決方案 (例如 Filestore Enterprise) 設定檔案共用。
如果專案中繼資料中已啟用 OS 登入,您必須暫時停用 OS 登入功能,直到部署作業完成為止。為了部署目的,這個程序會在執行個體中繼資料中設定 SSH 金鑰。啟用 OS 登入功能後,系統會停用中繼資料型安全殼層金鑰設定,這項部署作業就會失敗。部署完成後,您可以再次啟用 OS 登入功能。
如需詳細資訊,請參閱:
SUSE 提供的相關資訊
除了 Google Cloud 環境所需的部分外,本指南中的資訊與 SUSE 的以下相關指南一致:
- SAP NetWeaver Enqueue Replication 1 高可用性叢集 - SAP NetWeaver 7.40 和 7.50 的設定指南 | SUSE Linux Enterprise Server for SAP Applications 12
- SAP NetWeaver Enqueue Replication 1 高可用性叢集 - SAP NetWeaver 7.40 和 7.50 的設定指南 | SUSE Linux Enterprise Server for SAP Applications 15
- SAP S/4 HANA - Enqueue Replication 2 High Availability Cluster - Setup Guide | SUSE Linux Enterprise Server for SAP Applications 12
- SAP S/4 HANA - 佇列複製 2 高可用性叢集 - 設定指南 | SUSE Linux Enterprise Server for SAP Applications 15
建立網路
基於安全性考量,請建立新的網路。您可以新增防火牆規則或使用另一個存取權控管方法,藉此控管具有存取權的對象。
如果您的專案具有預設的虛擬私有雲網路,請勿使用。請建立您自己專屬的虛擬私有雲網路,確保系統只套用您明確建立的防火牆規則。
在部署期間,Compute Engine 執行個體通常需要網際網路的存取權,才能下載 Google Cloud的 SAP 代理程式。如果您使用 Google Cloud提供的其中一種 SAP 認證 Linux 映像檔,則計算機執行個體也需要存取網際網路,才能註冊憑證並且存取 OS 供應商存放區。具有 NAT 閘道和 VM 網路標記的設定即可支援上述存取需求,即便目標運算執行個體沒有外部 IP 也沒關係。
如要為專案建立虛擬私有雲網路,請完成下列步驟:
設定 NAT 閘道
如果您需要建立一或多個沒有公開 IP 位址的 VM,就必須使用網路位址轉譯 (NAT),讓 VM 能夠存取網際網路。使用 Cloud NAT,這是一項 Google Cloud 分散式軟體定義的受控服務,可讓 VM 將傳出封包傳送至網際網路,並接收任何相應的已建立傳入回應封包。或者,您也可以設定個別的 VM 做為 NAT 閘道。
如要為專案建立 Cloud NAT 執行個體,請參閱「使用 Cloud NAT」。
為專案設定 Cloud NAT 後,VM 執行個體就能在不使用公開 IP 位址的情況下,安全地存取網際網路。
新增防火牆規則
根據預設,系統會封鎖來自您 Google Cloud 網路以外的連入連線。如要允許連入的連線,請為 VM 設定防火牆規則。防火牆規則只管制新進入 VM 的連入流量。與 VM 建立連線後,系統將允許透過該連線的雙向流量。
您可以建立防火牆規則來允許存取特定連接埠,或允許同一個子網路中不同 VM 之間的存取作業。
建立防火牆規則允許下列存取作業:
- SAP NetWeaver 使用的預設連接埠,如適用於所有 SAP 產品的 TCP/IP 連接埠網頁所述。
- 從電腦或公司網路環境到 Compute Engine VM 執行個體的連線。如果不確定要使用哪一個 IP 位址,請詢問貴公司的網路管理員。
- 3 層、擴充或高可用性設定中不同 VM 之間的通訊。舉例來說,如果您部署的是 3 層系統,則子網路中至少要有 2 個 VM:一個 VM 用於 SAP NetWeaver,另一個 VM 用於資料庫伺服器。如要讓兩個 VM 之間進行通訊,您必須建立防火牆規則,允許來自子網路的流量。
- Cloud Load Balancing 健康狀態檢查。
如要為專案建立防火牆規則,請參閱「建立防火牆規則」。
建立 SAP NetWeaver 適用的高可用性 Linux 叢集
以下說明如何使用 Terraform 設定檔建立具備 2 個 SAP NetWeaver 系統的 SLES 叢集:在一個 VM 執行個體上的主要單一主機 SAP NetWeaver 系統,以及在相同 Compute Engine 地區中另一個 VM 執行個體上的備用 SAP NetWeaver 系統。
您將在 Terraform 設定檔中定義 SAP NetWeaver 高可用性叢集的設定選項。
開啟 Cloud Shell。
將 SAP NetWeaver 高可用性叢集的
sap_nw_ha.tf
設定檔下載到工作目錄:$
wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_nw_ha/terraform/sap_nw_ha.tf在 Cloud Shell 程式碼編輯器中開啟
sap_nw_ha.tf
檔案。如要開啟 Cloud Shell 程式碼編輯器,請按一下 Cloud Shell 終端機視窗右上角的鉛筆圖示。
在
sap_nw_ha.tf
檔案中,使用安裝的值取代雙引號內的內容,即可更新引數值。下表說明引數。引數 資料類型 說明 source
字串 指定在部署期間要使用的 Terraform 模組位置和版本。
sap_nw_ha.tf
設定檔包含兩個source
引數例項:一個是處於啟用狀態,另一個則是做為註解加入。預設啟用的source
引數會將latest
指定為模組版本。source
引數的第二個例項預設會因開頭的#
字元而停用,用來指定可識別模組版本的時間戳記。如果您需要所有部署作業都使用相同的模組版本,請從指定版本時間戳記的
source
引數中移除開頭的#
字元,然後將其新增至指定latest
的source
引數。project_id
字串 指定您要部署此系統的 Google Cloud 專案 ID。例如: my-project-x
。machine_type
字串 指定您需要執行 SAP 系統的 Compute Engine 虛擬機器 (VM) 類型。如果您需要自訂的 VM 類型,請指定預先定義的 VM 類型,並將 vCPU 數量設為最接近您所需數量的數字,但仍要大於該數字。部署完成後,請修改 vCPU 數量和記憶體容量。 例如
n1-highmem-32
。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
。如要查看作業系統的映像檔專案,請參閱「作業系統詳細資料」。sap_primary_instance
字串 指定主要 SAP NetWeaver 系統的 VM 執行個體名稱。 這是初始 ASCS 位置。名稱可包含小寫英文字母、數字或連字號,但長度不得超過 13 個半形字元。 sap_primary_zone
字串 指定部署主要 SAP NetWeaver 系統的區域。主要和次要系統的區域須位於同一地區。例如: us-east1-b
sap_secondary_instance
字串 指定次要 SAP NetWeaver 系統的 VM 執行個體名稱。 這是你最初的 ERS 位置。名稱可包含小寫英文字母、數字或連字號,但長度不得超過 13 個半形字元。 sap_secondary_zone
字串 指定部署次要 SAP NetWeaver 系統的區域。主要和次要系統的區域須位於同一地區。例如: us-east1-c
。nfs_path
字串 指定共用檔案系統的 NFS 掛接點。例如: 10.163.58.114:/ssd_nfs
。sap_sid
字串 指定 SAP 系統 ID。ID 必須包含 3 個英數字元,並以字母開頭。所有字母都必須大寫。例如 ED1
。hc_firewall_rule_name
字串 (非必要) 指定健康狀態檢查防火牆規則的名稱。預設值為 SAP_SID-hc-allow
。hc_network_tag
字串 (非必要) 指定一或多個以半形逗號分隔的網路標記,這些標記會與健康狀態檢查防火牆規則的 VM 例項建立關聯。預設值為 SAP_SID-hc-allow-tag
。scs_inst_group_name
字串 (非必要) 指定 ASCS 執行個體群組的名稱。預設值為 SAP_SID-scs-ig
。scs_hc_name
字串 (非必要) 指定 ASCS 健康狀態檢查的名稱。預設值為 SAP_SID-scs-hc
。scs_hc_port
字串 (非必要) 為 ASCS 健康檢查指定通訊埠。為避免與其他服務衝突,請在私人範圍 49152-65535 中指定 ASCS 健康檢查的通訊埠編號。預設值為 60000
。scs_vip_address
字串 (非必要) 在先前 subnetwork
指定的子網路中指定未使用的 IP 位址,做為 ASCS 執行個體的虛擬 IP 位址。如果未指定,部署指令碼會自動從指定子網路中選取未使用的 IP 位址。scs_vip_name
字串 (非必要) 指定 ASCS 虛擬 IP 的名稱。預設值為 SAP_SID-scs-vip
。scs_backend_svc_name
字串 (非必要) 指定 ASCS 後端服務的名稱。預設值為 SAP_SID-scs-backend-svc
。scs_forw_rule_name
字串 (非必要) 指定 ASCS 轉送規則的名稱。預設值為 SAP_SID-scs-fwd-rule
。ers_inst_group_name
字串 (非必要) 指定 ERS 執行個體群組的名稱。預設值為 SAP_SID-ers-ig
。ers_hc_name
字串 (非必要) 指定 ERS 健康檢查的名稱。預設值為 SAP_SID-ers-hc
。ers_hc_port
字串 (非必要) 指定 ERS 健康檢查的通訊埠。為避免與其他服務衝突,請在私人範圍 49152-65535 中指定 ERS 健康檢查的通訊埠號碼。預設值為 60010
。ers_vip_address
字串 (非必要) 在先前 subnetwork
指定的子網路中指定未使用的 IP 位址,做為 ERS 執行個體的虛擬 IP 位址。如果未指定,部署指令碼會自動從指定子網路中選取未使用的 IP 位址。ers_vip_name
字串 (非必要) 指定 ERS 虛擬 IP 的名稱。預設值為 SAP_SID-ers-vip
。ers_backend_svc_name
字串 (非必要) 指定 ERS 後端服務的名稱。預設值為 SAP_SID-ers-backend-svc
。ers_forw_rule_name
字串 (非必要) 指定 ERS 轉送規則的名稱。預設值為 SAP_SID-ers-fwd-rule
。usr_sap_size
整數 (非必要) 以 GB 為單位指定 /usr/sap
磁碟的大小。 最小大小為 8 GB。預設值為8
。swap_size
整數 (非必要) 以 GB 為單位指定交換磁碟區的大小。最小大小為 8 GB。預設值為 8
。sap_scs_instance_number
字串 (非必要) 請指定 ASCS 執行個體編號。 sap_scs_instance_number
必須是兩位數字。如果您需要指定單位數字,請在號碼前方加上0
。例如07
。預設值為00
。sap_ers_instance_number
字串 (非必要) 請指定 ERS 執行個體編號。 sap_ers_instance_number
必須是兩位數字。如果您需要指定單位數字,請在號碼前方加上0
。例如07
。預設值為10
。sap_nw_abap
布林值 (非必要) 指定您要部署 SAP NetWeaver 的 ABAP 堆疊還是 Java 堆疊。如為 SAP NetWeaver 的 Java 堆疊,請指定 false
。預設值為true
。pacemaker_cluster_name
字串 (非必要) 指定 Pacemaker 叢集的名稱。預設值為 SAP_SID-cluster
。public_ip
布林值 (非必要) 如要為 VM 執行個體建立臨時公開 IP 位址,請將 public_ip
設為true
。預設值為false
。service_account
字串 (非必要) 指定使用者代管的服務帳戶電子郵件地址,供主機 VM 和在主機 VM 上執行的程式使用。例如: svc-acct-name@project-id.iam.gserviceaccount.com
。如果您指定這個引數但未附加值,或省略這個引數,安裝指令碼就會使用 Compute Engine 的預設服務帳戶。詳情請參閱「Google Cloud 中的 SAP 程式身分與存取權管理」。 Google Cloud
network_tags
字串 (非必要) 指定一或多個以半形逗號分隔的網路標記,用於與 VM 執行個體建立關聯,以便用於防火牆或轉送。 ILB 元件的網路標記會自動新增至 VM 的網路標記。
如果
public_ip = false
且未指定網路標記,請務必提供其他能存取網際網路的方式。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 Broadwelln1-highmem-64
:Intel Broadwelln1-highmem-96
:Intel Skylakem1-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 Broadwelln1-highmem-64
:Intel Broadwelln1-highmem-96
:Intel Skylakem1-megamem-96
:Intel Skylake
所有其他機器類型 (已獲 SAP 認證,可用於 Google Cloud ) 的最低 CPU 平台,均符合 SAP 最低 CPU 需求。
can_ip_forward
布林值 指定是否允許傳送和接收具有不相符來源或目的地 IP 的封包,這可讓 VM 像路由器一樣運作。預設值為
true
。如果您只想使用 Google 內部負載平衡器來管理已部署 VM 的虛擬 IP,請將值設為
false
。系統會自動部署內部負載平衡器,做為高可用性範本的一部分。以下範例顯示已完成的設定檔,其中定義了 SAP NetWeaver 的高可用性叢集。叢集會使用內部直通式網路負載平衡器來管理 VIP。
Terraform 會部署設定檔中定義的 Google Cloud資源,然後由指令碼接手設定作業系統,並設定 Linux HA 叢集。
為方便說明,範例中省略了設定檔中的註解。
# ... module "sap_nw_ha" { source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_nw_ha/sap_nw_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/202201240926/terraform/sap_nw_ha/sap_nw_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-sp3-sap" linux_image_project = "suse-sap-cloud" sap_primary_instance = "example-nw1" sap_primary_zone = "us-central1-a" sap_secondary_instance = "example-nw2" sap_secondary_zone = "us-central1-c" nfs_path = "10.223.55.130:/pr1_nw" sap_sid = "PR1" # ... }
-
初始化目前的工作目錄,並下載 Google Cloud的 Terraform 供應器外掛程式和模組檔案:
terraform init
terraform init
指令會為其他 Terraform 指令準備工作目錄。如要強制重新整理工作目錄中的提供者外掛程式和設定檔,請指定
--upgrade
標記。如果省略--upgrade
標記,且您未在工作目錄中進行任何變更,Terraform 會使用本機快取的副本,即使latest
已在source
網址中指定也一樣。terraform init --upgrade
視需要建立 Terraform 執行計畫:
terraform plan
terraform plan
指令會顯示目前設定所需的變更。如果您略過這個步驟,terraform apply
指令會自動建立新企劃書,並提示您核准。套用執行計畫:
terraform apply
出現核准動作的提示時,請輸入
yes
。terraform apply
指令會設定 Google Cloud 基礎架構,然後將控制權交給指令碼,以便根據 terraform 設定檔中定義的引數設定 HA 叢集。在 Terraform 控制時,系統會將狀態訊息寫入 Cloud Shell。指令碼叫用後,系統會將狀態訊息寫入 Logging,並在 Google Cloud 主控台中顯示,如「檢查 Logging 記錄」一節所述。
完成時間可能有所不同,但整個程序通常會在 30 分鐘內完成。
驗證 SAP NetWeaver HA 系統的部署作業
驗證 SAP NetWeaver HA 叢集包含多種不同程序:
- 檢查記錄
- 檢查 VM 的設定
檢查記錄
在 Google Cloud 控制台中開啟 Cloud Logging,監控安裝進度及檢查錯誤。
篩選記錄:
記錄檔探索工具
在「Logs Explorer」頁面中,前往「查詢」窗格。
在「Resource」下拉式選單中,選取「Global」,然後點選「Add」。
如果找不到「Global」選項,請在查詢編輯器中輸入以下查詢:
resource.type="global" "Deployment"
點選「執行查詢」。
舊版記錄檢視器
- 在「Legacy Logs Viewer」頁面中,從基本選取器選單中選取「Global」做為記錄資源。
分析篩選過的記錄:
- 如果顯示
"--- Finished"
,表示部署程序已完成,您可以繼續進行下一個步驟。 如果畫面顯示配額錯誤:
在 IAM 和管理員「Quotas」(配額) 頁面上,增加 SAP NetWeaver 規劃指南中所列出不符 SAP NetWeaver 規定的任何配額。
開啟 Cloud Shell。
前往工作目錄並刪除部署,清除安裝失敗的 VM 與永久磁碟:
terraform destroy
出現是否核准該動作的提示時,請輸入
yes
。重新執行部署。
- 如果顯示
檢查 VM 的設定
VM 執行個體部署完成且無發生錯誤後,使用 SSH 連線到每個 VM。您可以在 Compute Engine VM 執行個體頁面中,按一下各個 VM 執行個體的 SSH 按鈕,也可以使用您偏好的 SSH 方法。
變更為超級使用者:
sudo su -
在命令提示字元中輸入
df -h
。確保畫面顯示/usr/sap
目錄的輸出內容,例如/usr/sap/trans
。example-nw1:~ # df -h Filesystem Size Used Avail Use% Mounted on ... /dev/mapper/vg_usrsap-vol 8.0G 41M 8.0G 1% /usr/sap /dev/mapper/vg_sapmnt-vol 8.0G 41M 8.0G 1% /sapmnt 10.233.55.130:/pr1_nw/sapmntPR1 1007G 0 956G 0% /sapmnt/PR1 10.223.55.130:/pr1_nw/usrsaptrans 1007G 0 956G 0% /usr/sap/trans 10.223.55.130:/pr1_nw/usrsapPR1 1007G 0 956G 0% /usr/sap/PR1 ...
autofs
會在部署期間自動設定,以便在首次存取檔案目錄時掛載常見的共用檔案目錄。叢集軟體會管理ASCSASCS_INSTANCE_NUMBER
和ERSERS_INSTANCE_NUMBER
目錄的掛載作業,這也是在部署期間設定的項目。輸入狀態指令,查看新叢集的狀態:
crm status
您會看到類似以下示例的結果,其中兩個 VM 執行個體都已啟動,
example-nw1
是處於活動狀態的主要執行個體:example-nw1:~ # crm status Cluster Summary: * Stack: corosync * Current DC: example-nw1 (version 2.0.4+20200616.2deceaa3a-3.6.1-2.0.4+20200616.2deceaa3a) - partition with quorum * Last updated: Fri Jun 18 05:47:48 2021 * Last change: Fri Jun 18 05:41:32 2021 by root via cibadmin on example-nw1 * 2 nodes configured * 8 resource instances configured Node List: * Online: [ example-nw1 example-nw2 ] Full List of Resources: * fence-PR1-example-nw1 (stonith:fence_gce): Started example-nw2 * fence-PR1-example-nw2 (stonith:fence_gce): Started example-nw1 * file-system-PR1-ASCS00 (ocf::heartbeat:Filesystem): Started example-nw1 * file-system-PR1-ERS10 (ocf::heartbeat:Filesystem): Started example-nw2 * health-check-PR1-ASCS00 (ocf::heartbeat:anything): Started example-nw1 * health-check-PR1-ERS10 (ocf::heartbeat:anything): Started example-nw2 * vip-PR1-ASCS00 (ocf::heartbeat:IPaddr2): Started example-nw1 * vip-PR1-ERS10 (ocf::heartbeat:IPaddr2): Started example-nw2
如果您使用的是 簡易掛載設定,則會看到類似以下範例的輸出內容:
Stack: corosync Current DC: example-nw1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum Last updated: Wed Sep 26 19:10:10 2024 Last change: Tue Sep 25 23:48:35 2024 by root via cibadmin on example-nw1 2 nodes configured 8 resource instances configured Node List: * Online: [ example-nw1 example-nw2 ] Full list of resources: * fence-PR1-example-nw1 (stonith:fence_gce): Started example-nw2 * fence-PR1-example-nw2 (stonith:fence_gce): Started example-nw1 * health-check-PR1-ASCS00 (ocf::heartbeat:anything): Started example-nw1 * health-check-PR1-ERS10 (ocf::heartbeat:anything): Started example-nw2 * vip-PR1-ASCS00 (ocf::heartbeat:IPaddr2): Started example-nw1 * vip-PR1-ERS10 (ocf::heartbeat:IPaddr2): Started example-nw2
使用
socat
公用程式測試 ASCS 和 ERS 負載平衡器設定:在每個 VM 執行個體上,暫時啟動
socat
程序,以便傳回自己的主機名稱:socat TCP-LISTEN:80,bind=0.0.0.0,fork,reuseaddr,crlf SYSTEM:"echo HTTP/1.0 200; echo Content-Type\: text/plain; echo; echo $(hostname)" &
在每個節點上使用
curl
,並嘗試存取下列 IP 位址和主機名稱。您可以在/etc/hosts
中找到 IP 位址和主機名稱。127.0.0.1
localhost
ASCS_VIRTUAL_HOST_NAME
ASCS_IP_ADDRESS
ERS_VIRTUAL_HOST_NAME
ERS_IP_ADDRESS
- 為參數
scs_vip_name
指定的 SCS VIP 名稱 - SCS VIP IP 位址,這是針對參數
scs_vip_address
指定的 - ERS VIP 名稱,這是
ers_vip_name
參數的指定值 - ERS VIP IP 位址,這是
ers_vip_address
參數指定的項目
以下是這類測試的輸出範例:
example-nw1:~ # cat /etc/hosts ... 10.128.1.182 example-nw1.c.myproject.internal example-nw1 10.128.1.169 example-nw2.c.myproject.internal example-nw2 10.128.1.46 pr1-scs-vip.c.myproject.internal pr1-scs-vip 10.128.0.75 pr1-ers-vip.c.myproject.internal pr1-ers-vip example-nw1:~ # curl 127.0.0.1 example-nw1 example-nw1:~ # curl localhost example-nw1 example-nw1:~ # curl example-nw1 example-nw1 example-nw1:~ # curl 10.128.1.182 example-nw1 example-nw1:~ # curl example-nw2 example-nw2 example-nw1:~ # curl 10.128.1.169 example-nw2 example-nw1:~ # curl pr1-scs-vip example-nw1 example-nw1:~ # curl 10.128.1.46 example-nw1 example-nw1:~ # curl pr1-ers-vip example-nw2 example-nw1:~ # curl 10.128.0.75 example-nw2
如有任何驗證步驟指出安裝失敗,請採取以下步驟:
解決錯誤。
開啟 Cloud Shell。
前往包含 Terraform 設定檔的目錄。
刪除部署作業:
terraform destroy
出現是否核准該動作的提示時,請輸入
yes
。重新執行部署。
驗證 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
- 雲端服務供應商:
安裝 ASCS 和 ERS
以下部分僅涵蓋在 Google Cloud上安裝 SAP NetWeaver 的相關規定和建議。
如需完整安裝操作說明,請參閱 SAP NetWeaver 說明文件。
準備安裝
為確保叢集中的一致性並簡化安裝作業,請在安裝 SAP NetWeaver ASCS 和 ERS 元件前,定義使用者、群組和權限,並將次要伺服器設為待機模式。
將叢集移出維護模式:
#
crm configure property maintenance-mode="false"在兩部伺服器上以超級使用者身分輸入下列指令,指定適合您環境的使用者和群組 ID:
#
groupadd -g GID_SAPINST sapinst#
groupadd -g GID_SAPSYS sapsys#
useradd -u UID_SIDADM SID_LCadm -g sapsys#
usermod -a -G sapinst SID_LCadm#
useradd -u UID_SAPADM sapadm -g sapinst#
chown SID_LCadm:sapsys /usr/sap/SID/SYS#
chown SID_LCadm:sapsys /sapmnt/SID -R#
chown SID_LCadm:sapsys /usr/sap/trans -R#
chown SID_LCadm:sapsys /usr/sap/SID/SYS -R#
chown SID_LCadm:sapsys /usr/sap/SID -R如果您使用的是簡易掛載設定,請改為以 root 身分在兩部伺服器上執行下列指令。指定適合您環境的使用者和群組 ID。
#
groupadd -g GID_SAPINST sapinst#
groupadd -g GID_SAPSYS sapsys#
useradd -u UID_SIDADM SID_LCadm -g sapsys#
usermod -a -G sapinst SID_LCadm#
useradd -u UID_SAPADM sapadm -g sapinst#
chown SID_LCadm:sapsys /usr/sap/SID#
chown SID_LCadm:sapsys /sapmnt/SID -R#
chown SID_LCadm:sapsys /usr/sap/trans -R#
chown SID_LCadm:sapsys /usr/sap/SID -R#
chown SID_LCadm:sapsys /usr/sap/SID/SYS更改下列內容:
GID_SAPINST
:指定 SAP 佈建工具的 Linux 群組 ID。GID_SAPSYS
:指定 SAPSYS 使用者的 Linux 群組 ID。UID_SIDADM
:指定 SAP 系統 (SID) 管理員的 Linux 使用者 ID。SID_LC
:指定系統 ID (SID)。請使用小寫字母。UID_SAPADM
:指定 SAP 主機代理程式的使用者 ID。SID
:指定系統 ID (SID)。所有字母都使用大寫。
舉例來說,以下是實際的 GID 和 UID 編號配置:
Group sapinst 1001 Group sapsys 1002 Group dbhshm 1003 User en2adm 2001 User sapadm 2002 User dbhadm 2003
安裝 ASCS 元件
在次要伺服器上輸入下列指令,將次要伺服器置於待命模式:
#
crm_standby -v on -N ${HOSTNAME};將次要伺服器設為待命模式,即可將主要伺服器上的所有叢集資源整合,簡化安裝作業。
確認次要伺服器處於待命模式:
#
crm status輸出結果會與下列範例相似:
Stack: corosync Current DC: nw-ha-vm-1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum Last updated: Thu May 27 17:45:16 2021 Last change: Thu May 27 17:45:09 2021 by root via crm_attribute on nw-ha-vm-2 2 nodes configured 8 resource instances configured Node nw-ha-vm-2: standby Online: [ nw-ha-vm-1 ] Full list of resources: fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Stopped fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Started nw-ha-vm-1 filesystem-rsc-nw-aha-scs (ocf::heartbeat:Filesystem): Started nw-ha-vm-1 filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem): Started nw-ha-vm-1 health-check-rsc-nw-ha-scs (ocf::heartbeat:anything): Started nw-ha-vm-1 health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Started nw-ha-vm-1 vip-rsc-nw-aha-scs (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1 vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1
如果您使用的是簡易掛載設定,輸出內容會類似以下:
Stack: corosync Current DC: nw-ha-vm-1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum Last updated: Wed Sep 26 19:30:10 2024 Last change: Tue Sep 25 23:58:35 2024 by root via crm_attribute on nw-ha-vm-2 2 nodes configured 8 resource instances configured Node nw-ha-vm-2: standby Online: [ nw-ha-vm-1 ] Full list of resources: fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Stopped fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Started nw-ha-vm-1 health-check-rsc-nw-ha-scs (ocf::heartbeat:anything): Started nw-ha-vm-1 health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Started nw-ha-vm-1 vip-rsc-nw-aha-scs (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1 vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1
在主要伺服器上以超級使用者的身分,將目錄變更為暫時安裝目錄 (例如
/tmp
),藉此透過執行 SAP Software Provisioning Manager (SWPM) 安裝 ASCS 執行個體。如要存取 SWPM 的網頁介面,您必須使用
root
使用者的密碼。如果您的 IT 政策不允許 SAP 管理員存取根密碼,您可以使用SAPINST_REMOTE_ACCESS_USER
。啟動 SWPM 時,請使用
SAPINST_USE_HOSTNAME
參數指定您在/etc/hosts
檔案中為 ASCS VIP 位址定義的虛擬主機名稱。例如:
cd /tmp; /mnt/nfs/install/SWPM/sapinst SAPINST_USE_HOSTNAME=vh-aha-scs
在 SWPM 最終確認頁面上,確認虛擬主機名稱是否正確。
設定完成後,請將次要 VM 從待命模式中移除:
#
crm_standby -v off -N ${HOSTNAME}; # On SECONDARY
安裝 ERS 元件
在主要伺服器上以超級使用者或
SID_LCadm
的身份,停止 ASCS 服務。#
su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function Stop"#
su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function StopService"在主要伺服器上輸入下列指令,將主要伺服器置於待命模式:
#
crm_standby -v on -N ${HOSTNAME};將主要伺服器設為待命模式,可將所有叢集資源整合至次要伺服器,簡化安裝程序。
確認主要伺服器處於待命模式:
#
crm status在次要伺服器上以超級使用者身分,將目錄變更為
/tmp
等暫時安裝目錄,藉此透過執行 SAP Software Provisioning Manager (SWPM) 安裝 ERS 執行個體。使用安裝 ASCS 元件時使用的使用者和密碼存取 SWPM。
啟動 SWPM 時,請使用
SAPINST_USE_HOSTNAME
參數指定您在/etc/hosts
檔案中為 ERS VIP 位址定義的虛擬主機名稱。例如:
cd /tmp; /mnt/nfs/install/SWPM/sapinst SAPINST_USE_HOSTNAME=vh-aha-ers
在 SWPM 最終確認頁面上,確認虛擬主機名稱是否正確。
將主要 VM 從待命狀態移除,讓兩者都處於啟用狀態:
#
crm_standby -v off -N ${HOSTNAME};
設定 SAP 服務
您需要確認服務設定正確無誤、檢查 ASCS 和 ERS 設定檔中的設定,並將 SID_LCadm 使用者新增至 haclient
使用者群組。
確認 SAP 服務項目
請在兩部伺服器上確認
/usr/sap/sapservices
檔案包含 ASCS 和 ERS 服務的項目。如要執行這項操作,您可以使用systemV
或systemd
整合。您可以使用
sapstartsrv
指令搭配pf=PROFILE_OF_THE_SAP_INSTANCE
和-reg
選項,新增任何缺少的項目。如要進一步瞭解這些整合功能,請參閱下列 SAP 注意事項:
systemV
以下範例說明使用
systemV
整合功能時,/usr/sap/sapservices
檔案中的 ASCS 和 ERS 服務項目應如何設定:#
LD_LIBRARY_PATH=/usr/sap/hostctrl/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH /usr/sap/hostctrl/exe/sapstartsrv \ pf=/usr/sap/SID/SYS/profile/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \ -D -u SID_LCadm /usr/sap/hostctrl/exe/sapstartsrv \ pf=/usr/sap/SID/SYS/profile/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \ -D -u SID_LCadmsystemd
請確認
/usr/sap/sapservices
檔案包含 ASCS 和 ERS 服務的項目。以下範例說明使用systemd
整合功能時,這些項目會如何顯示在/usr/sap/sapservices
檔案中:systemctl --no-ask-password start SAPSID_ASCS_INSTANCE_NUMBER # sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ASCSASCS_INSTANCE_NUMBER_SID_LCascs systemctl --no-ask-password start SAPSID_ERS_INSTANCE_NUMBER # sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ERSERS_INSTANCE_NUMBER_SID_LCers
在 ASCS 和 ERS 執行個體上停用
systemd
整合功能:#
systemctl disable SAPSID_ASCS_INSTANCE_NUMBER.service#
systemctl stop SAPSID_ASCS_INSTANCE_NUMBER.service#
systemctl disable SAPSID_ERS_INSTANCE_NUMBER.service#
systemctl stop SAPSID_ERS_INSTANCE_NUMBER.service確認已停用
systemd
整合:#
systemctl list-unit-files | grep sap如果輸出內容與下列範例相似,表示
systemd
整合功能已停用。請注意,系統會啟用saphostagent
和saptune
等部分服務,並停用部分服務。SAPSID_ASCS_INSTANCE_NUMBER.service disabled SAPSID_ERS_INSTANCE_NUMBER.service disabled saphostagent.service enabled sapinit.service generated saprouter.service disabled saptune.service enabled
詳情請參閱 SUSE 文件「停用 ASCS 和 ERS SAP 執行個體的
systemd
服務」。
停止 SAP 服務
在次要伺服器上停止 ERS 服務:
#
su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function Stop"#
su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function StopService"在每部伺服器上,確認所有服務都已停止:
#
su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function GetSystemInstanceList"#
su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function GetSystemInstanceList"您會看到類似以下範例的輸出內容:
GetSystemInstanceList FAIL: NIECONN_REFUSED (Connection refused), NiRawConnect failed in plugin_fopen()
啟用 sapping
和 sappong
如果您未使用 簡易掛載設定,請略過本節。
由於叢集中的啟動和停止程序由 Pacemaker 管理,因此您必須確保 sapstartsrv
不會在系統啟動期間自動啟動。在系統啟動期間,sapping
會在 sapinit
之前執行,因此會隱藏 sapservices
檔案。sapinit
完成後,sappong
會將 sapservices
檔案取消隱藏。
如要啟用這個流程,您必須使用下列指令啟用 systemd
服務 sapping
和 sappong
:
#
systemctl enable sapping sappong#
systemctl status sapping sappong
編輯 ASCS 和 ERS 設定檔
在任一伺服器上,使用下列任一指令切換至設定檔目錄:
#
cd /usr/sap/SID/SYS/profile#
cd /sapmnt/SID/profile如有需要,您可以透過列出設定檔目錄中的檔案,或使用下列格式,找出 ASCS 和 ERS 設定檔的檔案名稱:
SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME
SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME
將下列程式碼行新增至 ASCS 和 ERS 執行個體設定檔,即可啟用套件
sap-suse-cluster-connector
:#----------------------------------------------------------------------- # SUSE HA library #----------------------------------------------------------------------- service/halib = $(DIR_CT_RUN)/saphascriptco.so service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
如果您使用的是 ENSA1,請在 ASCS 設定檔中設定下列項目,啟用保活功能:
enque/encni/set_so_keepalive = true
如有需要,請編輯 ASCS 和 ERS 設定檔,變更 Enqueue 伺服器和 Enqueue 複製伺服器的啟動行為。
ENSA1
在 ASCS 設定檔的「啟動 SAP 排隊伺服器」部分中,如果您看到
Restart_Program_NN
,請將「Restart
」變更為「Start
」,如以下範例所示。Start_Program_01 = local $(_EN) pf=$(_PF)
在 ERS 設定檔的「啟動排隊複製伺服器」部分,如果您看到
Restart_Program_NN
,請將「Restart
」變更為「Start
」,如以下範例所示。Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
ENSA2
在 ASCS 設定檔的「啟動 SAP 排隊伺服器」部分中,如果您看到
Restart_Program_NN
,請將「Restart
」變更為「Start
」,如以下範例所示。Start_Program_01 = local $(_ENQ) pf=$(_PF)
在 ERS 設定檔的「Start enqueue replicator」部分,如果您看到
Restart_Program_NN
,請將「Restart
」變更為「Start
」,如以下範例所示。Start_Program_00 = local $(_ENQR) pf=$(_PF) ...
將 sidadm
使用者加入 haclient
使用者群組
安裝 sap-suse-cluster-connector
時,安裝程序會建立 haclient
使用者群組。如要讓 SID_LCadm 使用者能夠與叢集搭配運作,請將該使用者加入 haclient
使用者群組。
在兩部伺服器上,將 SID_LCadm 使用者新增至
haclient
使用者群組:#
usermod -aG haclient SID_LCadm
為 ASCS 和 ERS 設定叢集資源
以任一伺服器的 root 身分,將叢集置於維護模式:
#
crm configure property maintenance-mode="true"確認叢集處於維護模式:
#
crm status如果叢集處於維護模式,狀態會包含下列行:
*** Resource management is DISABLED *** The cluster will not attempt to start, stop or recover services
如果您使用的是簡易掛載設定,請為 ASCS 和 ERS 服務建立
sapstartsrv
叢集資源。如果您未使用簡易掛載設定,請略過這個步驟。針對 ASCS,請建立名為
sapstartsrv_scs.txt
的設定檔,並在其中加入下列內容:primitive rsc_SAPStartSrv_SID_ASCSINSTANCENUMBER ocf:suse:SAPStartSrv \ params InstanceName=SID_ASCSINSTANCE_NUMBER_ASCS_VIRTUAL_HOSTNAME
如要載入 ASCS 的設定,請執行下列指令:
#
crm configure load update sapstartsrv_scs.txt針對 ERS,請建立名為
sapstartsrv_ers.txt
的設定檔,並在其中加入下列內容:primitive rsc_SAPStartSrv_SID_ERSINSTANCENUMBER ocf:suse:SAPStartSrv \ params InstanceName=SID_ERSINSTANCE_NUMBER_ERS_VIRTUAL_HOSTNAME
如要載入 ERS 的設定,請執行下列指令:
#
crm configure load update sapstartsrv_ers.txt
為 ASCS 和 ERS 服務建立叢集資源:
ENSA1
為 ASCS 執行個體建立叢集資源。
InstanceName
的值是 SWPM 在您安裝 ASCS 時產生的執行個體設定檔名稱。#
crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 failure-timeout=60 \ migration-threshold=1 priority=10如果您使用的是 簡易掛載設定,請改為執行下列指令:
#
crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \ meta resource-stickiness=5000 failure-timeout=60 \ migration-threshold=1 priority=10為 ERS 執行個體建立叢集資源。
InstanceName
的值是 SWPM 在安裝 ERS 時產生的執行個體設定檔名稱。參數IS_ERS=true
會指示 Pacemaker 將runsersSID
標記設為 ERS 處於作用中的節點的1
。#
crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false IS_ERS=true \ meta priority=1000如果您使用的是 簡易掛載設定,請改為執行下列指令:
#
crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false MINIMAL_PROBE=true IS_ERS=true \ meta priority=1000確認新建的設定:
#
crm configure show ASCS_INSTANCE_RESOURCE ERS_INSTANCE_RESOURCE輸出結果會與下列範例相似:
primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10 
 primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false IS_ERS=true \ meta priority=1000
如果您使用的是簡易掛載設定,輸出內容會類似以下範例:
primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \ meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10 
 primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true IS_ERS=true \ meta priority=1000
ENSA2
為 ASCS 執行個體建立叢集資源。
InstanceName
的值是 SWPM 在您安裝 ASCS 時產生的執行個體設定檔名稱。#
crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 failure-timeout=60如果您使用的是 簡易掛載設定,請改為執行下列指令:
#
crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \ meta resource-stickiness=5000 failure-timeout=60為 ERS 執行個體建立叢集資源。
InstanceName
的值是 SWPM 在安裝 ERS 時產生的執行個體設定檔名稱。#
crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false IS_ERS=true如果您使用的是 簡易掛載設定,請改為執行下列指令:
#
crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \ START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \ AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \ meta priority=1000確認新建的設定:
#
crm configure show ASCS_INSTANCE_RESOURCE ERS_INSTANCE_RESOURCE輸出結果會與下列範例相似:
primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 failure-timeout=60 
 primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false IS_ERS=true \
如果您使用的是簡易掛載設定,輸出內容會類似以下:
primitive ASCS_INSTANCE_RESOURCE SAPInstance \ operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \ meta resource-stickiness=5000 failure-timeout=60 \ migration-threshold=1 priority=10 
 primitive ERS_INSTANCE_RESOURCE SAPInstance \ operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true IS_ERS=true \ meta priority=1000
設定資源群組和位置限制
將 ASCS 和 ERS 資源分組。您可以輸入
crm resource status
指令,顯示先前定義的所有資源名稱: 如果您使用的是 簡易掛載設定,請改為執行下列指令:#
crm configure group ASCS_RESOURCE_GROUP ASCS_FILE_SYSTEM_RESOURCE \ ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE \ ASCS_INSTANCE_RESOURCE \ meta resource-stickiness=3000 替換下列項目:#
crm configure group ASCS_RESOURCE_GROUP ASCS_SAPSTARTSRV_RESOURCE \ ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE \ ASCS_INSTANCE_RESOURCE \ meta resource-stickiness=3000ASCS_RESOURCE_GROUP
:為 ASCS 叢集資源指定不重複的群組名稱。您可以使用SID_LC_ASCSINSTANCE_NUMBER_group
等慣例,確保不重複。例如:nw1_ASCS00_group
。ASCS_FILE_SYSTEM_RESOURCE
:指定您先前為 ASCS 檔案系統定義的叢集資源名稱。使用簡易掛載設定時,這個預留位置變數不適用。ASCS_SAPSTARTSRV_RESOURCE
:指定您先前為 ASCSsapstartsrv
定義的叢集資源名稱。這個預留位置變數僅適用於使用簡易掛載設定的情況。ASCS_HEALTH_CHECK_RESOURCE
:指定先前為 ASCS 健康檢查定義的叢集資源名稱。ASCS_VIP_RESOURCE
:指定先前為 ASCS VIP 定義的叢集資源名稱。ASCS_INSTANCE_RESOURCE
:指定先前為 ASCS 執行個體定義的叢集資源名稱。
如果您使用的是 簡易掛載設定,請改為執行下列指令:#
crm configure group ERS_RESOURCE_GROUP ERS_FILE_SYSTEM_RESOURCE \ ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE \ ERS_INSTANCE_RESOURCE 替換下列項目:#
crm configure group ERS_RESOURCE_GROUP ERS_SAPSTARTSRV_RESOURCE \ ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE \ ERS_INSTANCE_RESOURCEERS_RESOURCE_GROUP
:為 ERS 叢集資源指定不重複的群組名稱。您可以使用「SID_ERSinstance number_group」等慣例,確保不重複。例如:nw1_ERS10_group
。ERS_SAPSTARTSRV_RESOURCE
:指定您先前為 ERSsapstartsrv
定義的叢集資源名稱。這個預留位置變數僅適用於使用簡易掛載設定的情況。ERS_FILE_SYSTEM_RESOURCE
:指定您先前為 ERS 檔案系統定義的叢集資源名稱。使用簡易掛載設定時,這個預留位置變數不適用。ERS_HEALTH_CHECK_RESOURCE
:指定先前為 ERS 健康檢查定義的叢集資源名稱。ERS_VIP_RESOURCE
:指定先前為 ERS VIP 定義的叢集資源名稱。ERS_INSTANCE_RESOURCE
:指定先前為 ERS 執行個體定義的叢集資源名稱。
確認新建的設定:
#
crm configure show type:group輸出結果會與下列範例相似:
group ERS_RESOURCE_GROUP ERS_FILE_SYSTEM_RESOURCE ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE ERS_INSTANCE_RESOURCE group ASCS_RESOURCE_GROUP ASCS_FILE_SYSTEM_RESOURCE ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE ASCS_INSTANCE_RESOURCE \ meta resource-stickiness=3000
如果您使用的是簡易掛載設定,輸出內容會類似以下範例:
group ERS_RESOURCE_GROUP ERS_SAPSTARTSRV_RESOURCE ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE ERS_INSTANCE_RESOURCE group ASCS_RESOURCE_GROUP ASCS_SAPSTARTSRV_RESOURCE ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE ASCS_INSTANCE_RESOURCE
建立並排限制:
ENSA1
建立並置限制,避免 ASCS 資源與 ERS 資源在同一台伺服器上執行:
#
crm configure colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP設定 ASCS 以備援至 ERS 執行的伺服器,這由標記
runsersSID
是否等於1
決定:#
crm configure location LOC_SCS_SID_FAILOVER_TO_ERS ASCS_INSTANCE_RESOURCE \ rule 2000: runs_ers_SID eq 1在容錯移轉後,先啟動 ASCS,再將 ERS 移轉至其他伺服器:
#
crm configure order ORD_SAP_SID_FIRST_START_ASCS \ Optional: ASCS_INSTANCE_RESOURCE:start \ ERS_INSTANCE_RESOURCE:stop symmetrical=false確認新建的設定:
#
crm configure show type:colocation type:location type:order您會看到類似以下範例的輸出內容:
order ORD_SAP_SID_FIRST_START_ASCS Optional: ASCS_INSTANCE_RESOURCE:start ERS_INSTANCE_RESOURCE:stop symmetrical=false colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP location LOC_SCS_SID_FAILOVER_TO_ERS ASCS_INSTANCE_RESOURCE \ rule 2000: runs_ers_SID eq 1
ENSA2
建立並置限制,避免 ASCS 資源與 ERS 資源在同一台伺服器上執行:
#
crm configure colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP在容錯移轉後,先啟動 ASCS,再將 ERS 移轉至其他伺服器:
#
crm configure order ORD_SAP_SID_FIRST_START_ASCS \ Optional: ASCS_INSTANCE_RESOURCE:start \ ERS_INSTANCE_RESOURCE:stop symmetrical=false確認新建的設定:
#
crm configure show type:colocation type:order您會看到類似以下範例的輸出內容:
colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP order ORD_SAP_SID_FIRST_START_ASCS Optional: ASCS_INSTANCE_RESOURCE:start ERS_INSTANCE_RESOURCE:stop symmetrical=false
停用維護模式。
#
crm configure property maintenance-mode="false"
驗證及測試叢集
本節說明如何執行下列測試:
- 檢查設定錯誤
- 確認 ASCS 和 ERS 資源在備援期間正確切換伺服器
- 確認鎖定功能是否保留
- 模擬 Compute Engine 維護事件,確保即時遷移不會觸發備援
檢查叢集設定
以任一伺服器的 root 身分,檢查資源正在哪些節點上執行:
#
crm status在下列範例中,ASCS 資源會在
nw-ha-vm-1
伺服器上執行,而 ERS 資源會在nw-ha-vm-2
伺服器上執行。Cluster Summary: * Stack: corosync * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum * Last updated: Thu May 20 16:58:46 2021 * Last change: Thu May 20 16:57:31 2021 by ahaadm via crm_resource on nw-ha-vm-2 * 2 nodes configured * 10 resource instances configured Node List: * Online: [ nw-ha-vm-1 nw-ha-vm-2 ] Active Resources: * fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Started nw-ha-vm-2 * fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Started nw-ha-vm-1 * Resource Group: ascs-aha-rsc-group-name: * filesystem-rsc-nw-aha-ascs (ocf::heartbeat:Filesystem): Started nw-ha-vm-1 * health-check-rsc-nw-ha-ascs (ocf::heartbeat:anything): Started nw-ha-vm-1 * vip-rsc-nw-aha-ascs (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1 * ascs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-1 * Resource Group: ers-aha-rsc-group-name: * filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem): Started nw-ha-vm-2 * health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Started nw-ha-vm-2 * vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Started nw-ha-vm-2 * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-2
如果您使用的是簡易掛載設定,輸出內容會類似以下範例:
Cluster Summary: * Stack: corosync * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum * Last updated: Thu Sep 20 19:44:26 2024 * Last change: Thu Sep 20 19:53:41 2024 by ahaadm via crm_resource on nw-ha-vm-2 * 2 nodes configured * 10 resource instances configured Node List: * Online: [ nw-ha-vm-1 nw-ha-vm-2 ] Active Resources: * fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Started nw-ha-vm-2 * fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Started nw-ha-vm-1 * Resource Group: ascs-aha-rsc-group-name: * SAPStartSrv-rsc-nw-aha-ascs (ocf::heartbeat:SAPStartSrv): Started nw-ha-vm-1 * health-check-rsc-nw-ha-ascs (ocf::heartbeat:anything): Started nw-ha-vm-1 * vip-rsc-nw-aha-ascs (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1 * ascs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-1 * Resource Group: ers-aha-rsc-group-name: * SAPStartSrv-rsc-nw-aha-ers (ocf::heartbeat:SAPStartSrv): Started nw-ha-vm-2 * health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Started nw-ha-vm-2 * vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Started nw-ha-vm-2 * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-2
切換至
SID_LCadm
使用者:#
su - SID_LCadm檢查叢集設定。針對
INSTANCE_NUMBER
,請指定在您輸入指令的伺服器上,處於活動狀態的 ASCS 或 ERS 執行個體編號:>
sapcontrol -nr INSTANCE_NUMBER -function HAGetFailoverConfigHAActive
應為TRUE
,如以下範例所示:20.05.2021 01:33:25 HAGetFailoverConfig OK HAActive: TRUE HAProductVersion: SUSE Linux Enterprise Server for SAP Applications 15 SP2 HASAPInterfaceVersion: SUSE Linux Enterprise Server for SAP Applications 15 SP2 (sap_suse_cluster_connector 3.1.2) HADocumentation: https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices/ HAActiveNode: nw-ha-vm-1 HANodes: nw-ha-vm-1, nw-ha-vm-2
以
SID_LCadm
身分檢查設定中的錯誤:>
sapcontrol -nr INSTANCE_NUMBER -function HACheckConfig您會看到類似以下範例的輸出內容:
20.05.2021 01:37:19 HACheckConfig OK state, category, description, comment SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 0 ABAP instances detected SUCCESS, SAP CONFIGURATION, Redundant Java instance configuration, 0 Java instances detected SUCCESS, SAP CONFIGURATION, Enqueue separation, All Enqueue server separated from application server SUCCESS, SAP CONFIGURATION, MessageServer separation, All MessageServer separated from application server SUCCESS, SAP STATE, SCS instance running, SCS instance status ok SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (vh-ascs-aha_AHA_00), SAPInstance includes is-ers patch SUCCESS, SAP CONFIGURATION, Enqueue replication (vh-ascs-aha_AHA_00), Enqueue replication enabled SUCCESS, SAP STATE, Enqueue replication state (vh-ascs-aha_AHA_00), Enqueue replication active
在 ASCS 處於作用中的伺服器上,以
SID_LCadm
模擬備援:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function HAFailoverToNode ""以 root 身分,如果您使用
crm_mon
追蹤備援,應會看到 ASCS 移至其他伺服器、ERS 在該伺服器上停止,然後 ERS 移至 ASCS 原本執行的伺服器。
模擬容錯移轉
模擬主要主機的失敗情況,測試叢集。在發布系統供使用前,請使用測試系統或在正式版系統上執行測試。
您可以透過多種方式模擬失敗,包括:
ip link set eth0 down
echo c > /proc/sysrq-trigger
這些操作說明會使用 ip link set eth0 down
將網路介面移至離線狀態,因為它會驗證容錯移轉和圍欄。
備份系統。
以主機上的有效 SCS 例項的 root 身分,將網路介面設為離線:
#
ip link set eth0 down使用 SSH 重新連線至任一主機,並切換到超級使用者。
輸入
crm status
以確認主要主機已在包含次要主機的 VM 中啟用。自動重新啟動功能會在叢集中啟用,因此已停止的主機會重新啟動,並假設為次要主機的角色,如以下範例所示。Cluster Summary: * Stack: corosync * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum * Last updated: Fri May 21 22:31:32 2021 * Last change: Thu May 20 20:36:36 2021 by ahaadm via crm_resource on nw-ha-vm-1 * 2 nodes configured * 10 resource instances configured Node List: * Online: [ nw-ha-vm-1 nw-ha-vm-2 ] Full List of Resources: * fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Started nw-ha-vm-2 * fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Started nw-ha-vm-1 * Resource Group: scs-aha-rsc-group-name: * filesystem-rsc-nw-aha-scs (ocf::heartbeat:Filesystem): Started nw-ha-vm-2 * health-check-rsc-nw-ha-scs (ocf::heartbeat:anything): Started nw-ha-vm-2 * vip-rsc-nw-aha-scs (ocf::heartbeat:IPaddr2): Started nw-ha-vm-2 * scs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-2 * Resource Group: ers-aha-rsc-group-name: * filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem): Started nw-ha-vm-1 * health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Started nw-ha-vm-1 * vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1 * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-1
如果您使用的是簡易掛載設定,畫面上會顯示類似以下的輸出內容:
Cluster Summary: * Stack: corosync * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum * Last updated: Wed Sep 26 19:10:10 2024 * Last change: Tue Sep 25 23:48:35 2024 by ahaadm via crm_resource on nw-ha-vm-1 * 2 nodes configured * 10 resource instances configured Node List: * Online: [ nw-ha-vm-1 nw-ha-vm-2 ] Full List of Resources: * fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Started nw-ha-vm-2 * fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Started nw-ha-vm-1 * Resource Group: scs-aha-rsc-group-name: * SAPStartSrv-rsc-nw-aha-scs (ocf::heartbeat:SAPStartSrv): Started nw-ha-vm-2 * health-check-rsc-nw-ha-scs (ocf::heartbeat:anything): Started nw-ha-vm-2 * vip-rsc-nw-aha-scs (ocf::heartbeat:IPaddr2): Started nw-ha-vm-2 * scs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-2 * Resource Group: ers-aha-rsc-group-name: * SAPStartSrv-rsc-nw-aha-ers (ocf::heartbeat:SAPStartSrv): Started nw-ha-vm-1 * health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Started nw-ha-vm-1 * vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Started nw-ha-vm-1 * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance): Started nw-ha-vm-1
確認鎖定項目是否保留
如要確認鎖定項目在備援期間保留,請先選取 Enqueue Server 的版本分頁,然後按照程序產生鎖定項目、模擬備援,並確認 ASCS 再次啟用後鎖定項目是否保留。
ENSA1
以
SID_LCadm
身分,在 ERS 處於啟用狀態的伺服器上,使用enqt
程式產生鎖定項目:>
enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 11 NUMBER_OF_LOCKS以
SID_LCadm
身分,在啟用 ASCS 的伺服器上,確認鎖定項目是否已註冊:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now如果您建立了 10 個鎖,畫面上應會顯示類似以下範例的輸出內容:
locks_now: 10
以
SID_LCadm
身分,在 ERS 處於啟用狀態的伺服器上,啟動enqt
程式的監控函式OpCode=20
:>
enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 20 1 1 9999例如:
>
enqt pf=/sapmnt/AHA/profile/AHA_ERS10_vh-ers-aha 20 1 1 9999如果 ASCS 處於啟用狀態,請重新啟動伺服器。
在監控伺服器上,當 Pacemaker 停止 ERS 並將其移至其他伺服器時,您應該會看到類似以下的輸出內容。
Number of selected entries: 10 Number of selected entries: 10 Number of selected entries: 10 Number of selected entries: 10 Number of selected entries: 10
當
enqt
監控器停止時,請輸入Ctrl + c
退出監控器。您也可以在任一伺服器上以 root 身分監控叢集容錯移轉:
#
crm_mon如同
SID_LCadm
,確認鎖定後,請釋放鎖定:>
enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 12 NUMBER_OF_LOCKS以
SID_LCadm
身分,在啟用 ASCS 的伺服器上,確認鎖定項目是否已移除:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now
ENSA2
以
SID_LCadm
身分,在啟用 ASCS 的伺服器上,使用enq_adm
程式產生鎖定項目:>
enq_admin --set_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME以
SID_LCadm
身分,在啟用 ASCS 的伺服器上,確認鎖定項目是否已註冊:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now如果您建立了 10 個鎖,畫面上應會顯示類似以下範例的輸出內容:
locks_now: 10
如果 ERS 已啟用,請確認鎖定項目是否已複製:
>
sapcontrol -nr ERS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now傳回的鎖定數量應與 ASCS 例項相同。
如果 ASCS 處於啟用狀態,請重新啟動伺服器。
您也可以在任一伺服器上以 root 身分監控叢集容錯移轉:
#
crm_mon以
SID_LCadm
身分,在重新啟動 ASCS 的伺服器上,確認鎖定項目是否已保留:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now以
SID_LCadm
身分,在啟用 ERS 的伺服器上,確認已保留鎖定後,釋放鎖定:>
enq_admin --release_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME以
SID_LCadm
身分,在啟用 ASCS 的伺服器上,確認鎖定項目是否已移除:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now您應該會看到類似以下範例的輸出內容:
locks_now: 0
模擬 Compute Engine 維護作業
模擬 Compute Engine 維護事件,確保即時遷移不會觸發備援作業。
這些指令中使用的逾時和間隔值會計算即時遷移的時間長度。如果在叢集設定中使用較短的值,即時遷移可能會觸發備援機制,風險也會隨之增加。
如要測試叢集的即時遷移容錯值,請按照下列步驟操作:
在主要節點上,使用下列 gcloud CLI 指令觸發模擬維護作業事件:
#
gcloud compute instances simulate-maintenance-event PRIMARY_VM_NAME確認主要節點不會變更:
#
crm status
評估 SAP NetWeaver 工作負載
如要自動為在 Google Cloud上執行的 SAP NetWeaver 高可用性工作負載進行持續驗證檢查,您可以使用Workload Manager。
您可以使用 Workload Manager,根據 SAP、 Google Cloud和作業系統供應商的最佳做法,自動掃描及評估 SAP NetWeaver 高可用性工作負載。這有助於改善工作負載的品質、效能和可靠性。
如要瞭解 Workload Manager 支援的最佳做法,以便評估在 Google Cloud上執行的 SAP NetWeaver 高可用性工作負載,請參閱「Workload Manager 適用於 SAP 的最佳做法」。如要瞭解如何使用 Workload Manager 建立及執行評估作業,請參閱「建立並執行評估作業」。
疑難排解
如要排解 SAP NetWeaver 高可用性設定的問題,請參閱「排解 SAP 高可用性設定問題」。
收集 SAP NetWeaver 高可用性叢集的診斷資訊
如需協助解決 SAP NetWeaver 高可用性叢集的問題,請收集必要的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。
如要收集診斷資訊,請參閱「SLES 高可用性叢集的診斷資訊」。支援
如果是基礎架構或服務相關問題,請與客戶服務團隊聯絡。 Google Cloud 您可以在 Google Cloud 控制台的「支援總覽」頁面中找到聯絡資訊。如果客戶服務團隊判定問題出在 SAP 系統,就會將您轉介給 SAP 支援團隊。
如要進一步瞭解 SAP 產品相關問題,請使用 SAP 支援登錄您的支援要求。SAP 會評估支援票證,如確定為 Google Cloud基礎架構方面的問題,就會將票證轉移至系統中的適當Google Cloud 元件:BC-OP-LNX-GOOGLE
或 BC-OP-NT-GOOGLE
。
支援相關規定
您必須符合支援方案的最低需求,才能獲得 SAP 系統和Google Cloud基礎架構和服務的支援服務。
如要進一步瞭解Google Cloud上 SAP 的最低支援需求,請參閱:
- 取得 GCP 上的 SAP 支援 Google Cloud
- SAP 注意事項 2456406 - Google Cloud 平台上的 SAP:支援必要條件 (必須使用 SAP 使用者帳戶)
執行部署後工作
使用 SAP NetWeaver 系統前,建議您備份新的 SAP NetWeaver HA 系統。
詳情請參閱 SAP NetWeaver 作業指南。
後續步驟
如要進一步瞭解高可用性、SAP NetWeaver 和 Google Cloud,請參閱下列資源:
如要進一步瞭解 VM 管理與監控,請參閱 SAP NetWeaver 作業指南