本指南說明如何為 SAP NetWeaver 系統部署及設定效能最佳化的 SUSE Linux Enterprise Server (SLES) 高可用性 (HA) 叢集。
本指南包含下列步驟:- 設定內部直通式網路負載平衡器,以便在發生故障時重新導向流量。
- 在 SLE 上設定 Pacemaker 叢集,以便在容錯期間管理 SAP 系統和其他資源。簡易掛載設定也適用於 SLES 15 for SAP 以上版本。
本指南也包含設定 SAP NetWeaver 系統以便使用 HA 的步驟,但請參閱 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 防護機制。
- 自動將故障的執行個體重新啟動為新的次要執行個體。
如要使用 Terraform 自動部署 SAP NetWeaver HA 系統,請參閱「Terraform:SLES 上 SAP NetWeaver 高可用性叢集設定指南」。
事前準備
建立 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 也沒關係。
如要設定網路:
控制台
- 在 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 位址的情況下,安全地存取網際網路。
新增防火牆規則
根據預設,系統會封鎖來自您 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 健康狀態檢查。詳情請參閱「為健康狀態檢查建立防火牆規則」。
建立防火牆規則的步驟如下:
在 Google Cloud 控制台中,前往「VPC network」(虛擬私有雲網路) 「Firewall」(防火牆) 頁面。
按一下頁面頂端的 [Create firewall rule] (建立防火牆規則)。
- 在「Network」(網路) 欄位中,選取您 VM 所在的網路。
- 在「Targets」(目標) 欄位中,選取 [All instances in the network] (網路中的所有執行個體)。
- 在「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] (建立) 以建立您的防火牆規則。
部署 SAP NetWeaver 的 VM
開始設定 HA 叢集之前,請定義並部署 VM 執行個體,這些執行個體會做為 HA 叢集中的主要和次要節點。
如要定義及部署 VM,請使用在 Linux 上為 SAP NetWeaver 自動化部署 VM 一文中,用於為 SAP NetWeaver 系統部署 VM 的 Cloud Deployment Manager 範本。
不過,如果要部署兩個 VM 而非一個,您必須複製並貼上第一個 VM 的定義,將第二個 VM 的定義新增至設定檔。建立第二個定義後,您需要變更第二個定義中的資源和執行個體名稱。如要防範可用區故障,請指定同區域中的其他可用區。這兩個定義中的所有其他屬性值都保持不變。
成功部署 VM 後,請安裝 SAP NetWeaver,並定義及設定 HA 叢集。
以下操作說明使用的是 Cloud Shell,不過這些步驟通常也適用於 Google Cloud CLI。
開啟 Cloud Shell。
將 YAML 設定檔範本
template.yaml
下載到工作目錄:wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_nw/template.yaml
或者,您也可以重新命名
template.yaml
檔案,藉此識別該檔案定義的設定。例如:nw-ha-sles15sp3.yaml
。在 Cloud Shell 終端機視窗右上角點選鉛筆 (edit) 圖示,即可啟動編輯器,在 Cloud Shell 程式碼編輯器中開啟 YAML 設定檔。
在 YAML 設定檔範本中定義第一個 VM 執行個體。您會在下一個步驟中,在下表後方定義第二個 VM 執行個體。
請使用安裝作業的值取代括號及其內容,即可指定屬性值。下表說明這些屬性。如需完整設定檔的範例,請參閱「完整 YAML 設定檔範例」。
屬性 資料類型 說明 name
字串 任意名稱,用於識別下列一組屬性定義的部署資源。 type
字串 指定在部署期間要使用的 Deployment Manager 範本位置、類型和版本。
YAML 檔案包含兩個
type
規格,其中一個已註解掉。預設啟用的type
規格會將範本版本指定為latest
。註解掉的type
規格會指定具有時間戳記的特定範本版本。如果您需要所有部署都使用相同的範本版本,請使用包含時間戳記的
type
規格。instanceName
字串 您要定義的 VM 執行個體名稱。在主要和次要 VM 定義中指定不同的名稱。建議您使用可識別哪些執行個體屬於同一高可用性叢集的名稱。 執行個體名稱的長度不得超過 13 個半形字元,且應使用小寫英文字母、數字或連字號。請使用專案中不重複的名稱。
instanceType
字串 您需要的 Compute Engine VM 類型。為主要和次要 VM 指定相同的執行個體類型。 如果您需要自訂的 VM 類型,請指定小型預先定義的 VM 類型,然後在部署完成後視需要自訂 VM。
zone
字串 要部署您定義的 VM 執行個體的 Google Cloud 區域。為主要和次要 VM 定義指定同一個區域中的不同可用區。這些區域必須位於您為子網路選取的地區內。 subnetwork
字串 您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私人雲端,請將這個值指定為 SHAREDVPC_PROJECT/SUBNETWORK
。例如:myproject/network1
。linuxImage
字串 要用於 SAP NetWeaver 的 Linux 作業系統映像檔或映像檔系列的名稱。如要指定映像檔系列,請在系列名稱加上 family/
前置詞,例如:family/sles-15-sp3-sap
。如需可用的映像檔系列清單,請參閱 Google Cloud 主控台中的「映像檔」頁面。linuxImageProject
字串 您要使用的映像檔所屬的 Google Cloud 專案。這個專案可能是您自己的專案或 Google Cloud 映像檔專案 suse-sap-cloud
。如需 Google Cloud 映像檔專案清單,請參閱 Compute Engine 說明文件中的「映像檔」頁面。usrsapSize
整數 /usr/sap
磁碟的大小。最小大小為 8 GB。swapSize
整數 交換磁碟區的大小。檔案大小下限為 1 GB。 networkTag
字串 (非必要) 代表您 VM 執行個體的一或多個以半形逗號分隔的網路標記,供防火牆或轉送使用。
針對高可用性設定,請指定要用於防火牆規則的網路標記,以便允許叢集節點之間的通訊,以及要用於防火牆規則的網路標記,以便允許 Cloud Load Balancing 健康狀態檢查存取叢集節點。
如果您指定
publicIP: No
但未指定網路標記,請務必提供其他能存取網際網路的方式。serviceAccount
字串 (非必要) 指定要用於部署 VM 的自訂服務帳戶。服務帳戶必須具備部署期間為 SAP 設定 VM 所需的權限。
如未指定
serviceAccount
,系統會使用預設的 Compute Engine 服務帳戶。指定完整的服務帳戶地址。例如:
sap-ha-example@example-project-123456.iam.gserviceaccount.com
publicIP
布林值 (非必要) 指定是否要將公開 IP 位址加到您的 VM 執行個體。預設為 Yes
。sap_deployment_debug
布林值 (非必要) 如果此值設為 Yes
,部署會產生詳細部署記錄。除非 Google 支援工程師要求您啟用偵錯功能,否則請勿開啟此設定。在 YAML 設定檔中,複製第一個 VM 的定義,然後將複本貼到第一個定義之後,即可建立第二個 VM 的定義。如需範例,請參閱「完整 YAML 設定檔範例」。
在第二個 VM 的定義中,為下列屬性指定與第一個定義中不同的值:
name
instanceName
zone
建立 VM 執行個體:
gcloud deployment-manager deployments create DEPLOYMENT_NAME --config TEMPLATE_NAME.yaml
其中:
DEPLOYMENT_NAME
代表部署作業名稱。TEMPLATE_NAME
代表 YAML 設定檔的名稱。
上述指令會叫用 Deployment Manager,依據 YAML 設定檔中的規格部署 VM。
部署處理程序分為兩個階段。在第一階段,Deployment Manager 會將其狀態寫入主控台。在第二階段,部署指令碼會將狀態寫入 Cloud Logging。
完整 YAML 設定檔範例
以下範例顯示完成的 YAML 設定檔,這個檔案會使用最新版本的 Deployment Manager 範本,為 SAP NetWeaver 的 HA 設定部署兩個 VM 執行個體。這個範例會略過您首次下載範本時,範本所含的註解。
這個檔案包含兩個要部署的資源定義:sap_nw_node_1
和 sap_nw_node_2
。每個資源定義都包含 VM 的定義。
sap_nw_node_2
資源定義是透過複製及貼上第一個定義,然後修改 name
、instanceName
和 zone
屬性的值而建立。這兩個資源定義中的所有其他屬性值都相同。
屬性 networkTag
和 serviceAccount
來自設定檔範本的「Advanced Options」部分。
resources: - name: sap_nw_node_1 type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_nw/sap_nw.py properties: instanceName: nw-ha-vm-1 instanceType: n2-standard-4 zone: us-central1-b subnetwork: example-sub-network-sap linuxImage: family/sles-15-sp3-sap linuxImageProject: suse-sap-cloud usrsapSize: 15 swapSize: 24 networkTag: cluster-ntwk-tag,allow-health-check serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com - name: sap_nw_node_2 type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_nw/sap_nw.py properties: instanceName: nw-ha-vm-2 instanceType: n2-standard-4 zone: us-central1-c subnetwork: example-sub-network-sap linuxImage: family/sles-15-sp3-sap linuxImageProject: suse-sap-cloud usrsapSize: 15 swapSize: 24 networkTag: cluster-ntwk-tag,allow-health-check serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com
建立防火牆規則,允許存取主機 VM
如果您尚未建立防火牆規則,請建立防火牆規則,允許從下列來源存取每個主機 VM:
- 設定本機工作站、防禦主機或跳板伺服器
- 叢集節點之間的存取權,以及 HA 叢集中的其他主機 VM
- Cloud Load Balancing 使用的健康狀態檢查,請參閱後續步驟「為健康狀態檢查建立防火牆規則」的說明。
建立 VPC 防火牆規則時,您必須指定在 template.yaml
設定檔中定義的網路標記,將主機 VM 指定為規則的目標。
如要驗證部署作業,請定義規則,允許防禦主機或本機工作站透過通訊埠 22 建立 SSH 連線。
如要允許叢集節點之間的存取權,請新增防火牆規則,允許同一個子網路中其他 VM 的所有連接埠上的所有連線類型。
請務必先建立用於驗證部署作業和叢集內通訊的防火牆規則,再繼續閱讀下一節。如需操作說明,請參閱「新增防火牆規則」。
驗證 VM 部署作業
在安裝 SAP NetWeaver 或開始設定 HA 叢集之前,請檢查記錄和 OS 儲存空間對應,確認 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 規定的任何配額。
在 Deployment Manager「Deployments」(部署) 頁面上,刪除部署以清除安裝失敗的 VM 與永久磁碟。
重新執行部署。
- 如果顯示
檢查 VM 的設定
部署 VM 執行個體之後,請使用
ssh
連線至 VM。- 如果您尚未建立防火牆規則,請建立防火牆規則以允許通訊埠
22
上的 SSH 連線。 前往「VM Instances」(VM 執行個體) 頁面。
按一下每個 VM 執行個體項目的「SSH」SSH按鈕,即可連線至各個 VM 執行個體,或者可以使用您偏好的 SSH 方法。
- 如果您尚未建立防火牆規則,請建立防火牆規則以允許通訊埠
顯示檔案系統:
~>
df -h並確保您看到類似以下的輸出內容:
Filesystem Size Used Avail Use% Mounted on devtmpfs 32G 8.0K 32G 1% /dev tmpfs 48G 0 48G 0% /dev/shm tmpfs 32G 402M 32G 2% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/sda3 30G 3.4G 27G 12% / /dev/sda2 20M 3.7M 17M 19% /boot/efi /dev/mapper/vg_usrsap-vol 15G 48M 15G 1% /usr/sap tmpfs 6.3G 0 6.3G 0% /run/user/1002 tmpfs 6.3G 0 6.3G 0% /run/user/0
確認已建立交換空間:
~>
cat /proc/meminfo | grep Swap您會看到像是下面範例的結果:
SwapCached: 0 kB SwapTotal: 25161724 kB SwapFree: 25161724 kB
如有任何驗證步驟指出安裝失敗,請採取以下步驟:
更新 Google Cloud CLI
Deployment Manager 範本會在部署期間在 VM 上安裝 Google Cloud CLI。更新 gcloud CLI,確保其包含所有最新更新。
透過 SSH 連線至主要 VM。
更新 gcloud CLI:
~>
sudo gcloud components update依照系統的提示操作。
在次要 VM 上重複上述步驟。
啟用 VM 之間的負載平衡器後端通訊
確認 VM 已成功部署後,請啟用 HA 叢集中 VM 之間的後端通訊,這些 VM 將做為節點使用。
如要啟用 VM 之間的後端通訊,請修改 google-guest-agent
的設定。google-guest-agent
是 Google Cloud提供的所有 Linux 公開映像檔的Linux 訪客環境中所包含的項目。
如要啟用負載平衡器後端通訊,請在叢集內的每個 VM 上執行下列步驟:
停止代理程式:
sudo service google-guest-agent stop
開啟或建立
/etc/default/instance_configs.cfg
檔案進行編輯。例如:sudo vi /etc/default/instance_configs.cfg
在
/etc/default/instance_configs.cfg
檔案中,指定下列設定屬性,如圖所示。如果這些區段不存在,請建立這些區段。特別注意,請確認target_instance_ips
和ip_forwarding
屬性都設為false
:[IpForwarding] ethernet_proto_id = 66 ip_aliases = true target_instance_ips = false [NetworkInterfaces] dhclient_script = /sbin/google-dhclient-script dhcp_command = ip_forwarding = false setup = true
啟動訪客代理程式服務:
sudo service google-guest-agent start
負載平衡器健康狀態檢查設定需要同時具備健康狀態檢查的監聽目標通訊埠,以及將虛擬 IP 指派給介面。詳情請參閱「測試負載平衡器設定」。
在主要和次要 VM 上設定 SSH 金鑰
為了讓檔案可在 HA 叢集中的兩部主機之間複製,本節的步驟會在兩部主機之間建立根 SSH 連線。
Google Cloud提供的 Deployment Manager 範本會為您產生金鑰,但您可以視需要用自己產生的金鑰取代。
貴機構可能會制定內部網路通訊規範。如有需要,您可以在部署完成後,從 VM 中移除中繼資料,並從 authorized_keys
目錄中移除金鑰。
如果設定直接 SSH 連線不符合貴組織的規範,您可以使用其他方法轉移檔案,例如:
- 使用 Cloud Shell 的「上傳檔案」和「下載檔案」選單選項,透過本機工作站傳輸較小的檔案。請參閱「使用 Cloud Shell 管理檔案」。
- 使用 Cloud Storage 值區交換檔案。請參閱上傳和下載。
- 使用 Filestore 或 Google Cloud NetApp Volumes 等檔案儲存空間解決方案建立共用資料夾。請參閱檔案共用解決方案。
如要啟用主要和次要執行個體之間的 SSH 連線,請按照下列步驟操作。這些步驟假設您使用的是 Deployment Manager 範本為 SAP 產生的安全殼層金鑰。
在主要主機 VM 上:
透過 SSH 連線至 VM。
切換至根目錄:
$
sudo su -確認安全殼層金鑰是否存在:
#
ls -l /root/.ssh/您應該會看到 id_rsa 金鑰檔案,如以下範例所示:
-rw-r--r-- 1 root root 569 May 4 23:07 authorized_keys -rw------- 1 root root 2459 May 4 23:07 id_rsa -rw-r--r-- 1 root root 569 May 4 23:07 id_rsa.pub
更新主要 VM 的中繼資料,加入次要 VM 的 SSH 金鑰資訊。
#
gcloud compute instances add-metadata SECONDARY_VM_NAME \ --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \ --zone SECONDARY_VM_ZONE如要確認 SSH 金鑰設定正確無誤,請開啟從主要系統到次要系統的 SSH 連線:
#
ssh SECONDARY_VM_NAME
在次要主機 VM 上:
透過 SSH 連線至 VM。
切換至根目錄:
$
sudo su -確認安全殼層 (SSH) 金鑰是否存在:
#
ls -l /root/.ssh/您應該會看到 id_rsa 金鑰檔案,如以下範例所示:
-rw-r--r-- 1 root root 569 May 4 23:07 authorized_keys -rw------- 1 root root 2459 May 4 23:07 id_rsa -rw-r--r-- 1 root root 569 May 4 23:07 id_rsa.pub
更新次要 VM 的中繼資料,加入主要 VM 的 SSH 金鑰資訊。
#
gcloud compute instances add-metadata PRIMARY_VM_NAME \ --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \ --zone PRIMARY_VM_ZONE#
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys開啟從次要系統到主要系統的 SSH 連線,確認 SSH 金鑰是否已正確設定。
#
ssh PRIMARY_VM_NAME
設定共用檔案儲存空間並設定共用目錄
您需要設定 NFS 檔案共用解決方案,提供高可用性的共用檔案儲存空間,讓 HA 叢集的兩個節點都能存取。接著,您可以在兩個節點上建立對應至共用檔案儲存空間的目錄。叢集軟體可確保只在正確的執行個體上掛載適當的目錄。
本指南未說明如何設定檔案共用解決方案。如需檔案共用系統的設定說明,請參閱所選解決方案供應商提供的操作說明。如果您選擇使用 Filestore 做為檔案共用解決方案,建議您使用 Filestore 的企業級。如要瞭解如何建立 Filestore 執行個體,請參閱「建立執行個體」一文。
如要瞭解Google Cloud上提供的檔案共用解決方案,請參閱「 Google Cloud上的 HA SAP 系統共用儲存空間選項」。
如何設定共用目錄:
如果您尚未設定高可用性的 NFS 共用檔案儲存解決方案,請立即設定。
在兩部伺服器上掛接 NFS 共用儲存空間,以便進行初始設定。
~>
sudo mkdir /mnt/nfs~>
sudo mount -t nfs NFS_PATH /mnt/nfs請將
NFS_PATH
替換為 NFS 檔案共用解決方案的路徑。例如:10.49.153.26:/nfs_share_nw_ha
。請在任一伺服器上建立
sapmnt
、中央傳輸目錄和特定執行個體目錄的目錄。如果您使用的是 Java 堆疊,請先將「ASCS」替換為「SCS」,再使用下列或任何其他範例指令:~>
sudo mkdir /mnt/nfs/sapmntSID~>
sudo mkdir /mnt/nfs/usrsap{trans,SIDASCSASCS_INSTANCE_NUMBER,SIDERSERS_INSTANCE_NUMBER}如果您使用的是簡易掛載設定,請改為執行下列指令:
~>
sudo mkdir /mnt/nfs/sapmntSID~>
sudo mkdir /mnt/nfs/usrsap{trans,SID}更改下列內容:
SID
:SAP 系統 ID (SID)。請使用大寫字母。例如:AHA
。ASCS_INSTANCE_NUMBER
:ASCS 系統的執行個體編號。例如:00
。ERS_INSTANCE_NUMBER
:ERS 系統的執行個體編號。例如:10
。
在兩部伺服器上建立必要的掛接點:
~>
sudo mkdir -p /sapmnt/SID~>
sudo mkdir -p /usr/sap/trans~>
sudo mkdir -p /usr/sap/SID/ASCSASCS_INSTANCE_NUMBER~>
sudo mkdir -p /usr/sap/SID/ERSERS_INSTANCE_NUMBER如果您使用的是簡易掛載設定,請改為執行下列指令:
~>
sudo mkdir -p /sapmnt/SID~>
sudo mkdir -p /usr/sap/trans~>
sudo mkdir -p /usr/sap/SID設定
autofs
,讓系統在首次存取檔案目錄時掛載常見的共用檔案目錄。叢集軟體會管理ASCSASCS_INSTANCE_NUMBER
和ERSERS_INSTANCE_NUMBER
目錄的掛載作業,您會在後續步驟中設定這項作業。視檔案共用解決方案的需要,調整指令中的 NFS 選項。
在兩部伺服器上設定
autofs
:~>
echo "/- /etc/auto.sap" | sudo tee -a /etc/auto.master~>
NFS_OPTS="-rw,relatime,vers=3,hard,proto=tcp,timeo=600,retrans=2,mountvers=3,mountport=2050,mountproto=tcp"~>
echo "/sapmnt/SID ${NFS_OPTS} NFS_PATH/sapmntSID" | sudo tee -a /etc/auto.sap~>
echo "/usr/sap/trans ${NFS_OPTS} NFS_PATH/usrsaptrans" | sudo tee -a /etc/auto.sap如要瞭解
autofs
,請參閱「autofs - 運作方式」。如果您使用的是簡易掛載設定,請改為執行下列指令:
~>
echo "/- /etc/auto.sap" | sudo tee -a /etc/auto.master~>
NFS_OPTS="-rw,relatime,vers=3,hard,proto=tcp,timeo=600,retrans=2,mountvers=3,mountport=2050,mountproto=tcp"~>
echo "/sapmnt/SID ${NFS_OPTS}/sapmnt" | sudo tee -a /etc/auto.sap~>
echo "/usr/sap/trans ${NFS_OPTS}/usrsaptrans" | sudo tee -a /etc/auto.sap~>
echo "/usr/sap/SID ${NFS_OPTS}/usrsapSID" | sudo tee -a /etc/auto.sap在兩部伺服器上啟動
autofs
服務:~>
sudo systemctl enable autofs~>
sudo systemctl restart autofs~>
sudo automount -v使用
cd
指令存取每個目錄,觸發autofs
掛接共用目錄。例如:~>
cd /sapmnt/SID~>
cd /usr/sap/trans如果您使用的是 簡易掛載設定,請改為執行下列指令:
~>
cd /sapmnt/SID~>
cd /usr/sap/trans~>
cd /usr/sap/SID存取所有目錄後,請發出
df -Th
指令,確認目錄已掛載。~>
df -Th | grep FILE_SHARE_NAME請將
FILE_SHARE_NAME
替換為 NFS 檔案共用解決方案的名稱。例如:nfs_share_nw_ha
。您會看到類似以下範例的掛載點和目錄:
10.49.153.26:/nfs_share_nw_ha nfs 1007G 76M 956G 1% /mnt/nfs 10.49.153.26:/nfs_share_nw_ha/usrsaptrans nfs 1007G 76M 956G 1% /usr/sap/trans 10.49.153.26:/nfs_share_nw_ha/sapmntAHA nfs 1007G 76M 956G 1% /sapmnt/AHA
如果您使用的是 簡易掛載設定,則會看到掛載點和目錄,如下所示:
10.49.153.26:/nfs_share_nw_ha nfs 1007G 76M 956G 1% /mnt/nfs 10.49.153.26:/nfs_share_nw_ha/usrsaptrans nfs 1007G 76M 956G 1% /usr/sap/trans 10.49.153.26:/nfs_share_nw_ha/sapmntAHA nfs 1007G 76M 956G 1% /sapmnt/AHA 10.49.153.26:/nfs_share_nw_ha/usrsapAHA nfs 1007G 76M 956G 1% /usr/sap/AHA
設定 Cloud Load Balancing 容錯移轉支援功能
內部直通式網路負載平衡器服務提供容錯支援,可將 ASCS 和 ERS 流量轉送至 SAP NetWeaver 叢集中的各個有效執行個體。內部直通式網路負載平衡器會使用虛擬 IP (VIP) 位址、後端服務、執行個體群組和健康狀態檢查,適當地將流量路由。
為虛擬 IP 保留 IP 位址
針對 SAP NetWeaver 高可用性叢集,您會建立兩個 VIP,有時也稱為「浮動」IP 位址。一個 VIP 會追蹤有效的 SAP Central Services (SCS) 執行個體,另一個則會追蹤 Enqueue Replication Server (ERS) 執行個體。負載平衡器會將傳送至每個 VIP 的流量,路由至目前代管 VIP 的 ASCS 或 ERS 元件有效執行個體的 VM。
開啟 Cloud Shell:
為 ASCS 的虛擬 IP 和 ERS 的 VIP 保留 IP 位址。針對 ASCS,IP 位址是應用程式用來存取 SAP NetWeaver 的 IP 位址。針對 ERS,IP 位址是用於 Enqueue 伺服器複製作業的 IP 位址。如果您省略
--addresses
標記,系統會為您選擇指定子網路中的 IP 位址:~
gcloud compute addresses create ASCS_VIP_NAME \ --region CLUSTER_REGION --subnet CLUSTER_SUBNET \ --addresses ASCS_VIP_ADDRESS~
gcloud compute addresses create ERS_VIP_NAME \ --region CLUSTER_REGION --subnet CLUSTER_SUBNET \ --addresses ERS_VIP_ADDRESS更改下列內容:
ASCS_VIP_NAME
:指定 ASCS 執行個體的虛擬 IP 位址名稱。例如:ascs-aha-vip
。CLUSTER_REGION
:指定叢集所在的 Google Cloud 區域。例如:us-central1
CLUSTER_SUBNET
:指定叢集使用的子網路。例如:example-sub-network-sap
。ASCS_VIP_ADDRESS
:可選,使用 CIDR 標記法指定 ASCS 虛擬 IP 的 IP 位址。例如:10.1.0.2
。ERS_VIP_NAME
:指定 ERS 執行個體的虛擬 IP 位址名稱。例如:ers-aha-vip
。ERS_VIP_ADDRESS
:可選,使用 CIDR 標記法指定 ERS 虛擬 IP 的 IP 位址。例如:10.1.0.4
。
如要進一步瞭解如何預留靜態 IP,請參閱「預留靜態內部 IP 位址」。
確認 IP 位址保留狀態:
~
gcloud compute addresses describe VIP_NAME \ --region CLUSTER_REGION您會看到類似以下範例的輸出內容:
address: 10.1.0.2 addressType: INTERNAL creationTimestamp: '2022-04-04T15:04:25.872-07:00' description: '' id: '555067171183973766' kind: compute#address name: ascs-aha-vip networkTier: PREMIUM purpose: GCE_ENDPOINT region: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/addresses/ascs-aha-vip status: RESERVED subnetwork: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/subnetworks/example-sub-network-sap
在 /etc/hosts
中定義 VIP 位址的主機名稱
為每個 VIP 位址定義主機名稱,然後將 VM 和 VIP 的 IP 位址和主機名稱,新增至每個 VM 的 /etc/hosts
檔案。
除非您也將 VIP 主機名稱新增至 DNS 服務,否則 VM 外部無法得知這些名稱。將這些項目新增至本機 /etc/hosts
檔案,可保護叢集免受 DNS 服務中斷的影響。
/etc/hosts
檔案的更新內容應類似下列範例:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.1.0.113 nw-ha-vm-2.us-central1-c.c.example-project-123456.internal nw-ha-vm-2 10.1.0.2 ascs-aha-vip 10.1.0.4 ers-aha-vip 10.1.0.114 nw-ha-vm-1.us-central1-b.c.example-project-123456.internal nw-ha-vm-1 # Added by Google 169.254.169.254 metadata.google.internal # Added by Google
建立 Cloud Load Balancing 健康狀態檢查
建立健康狀態檢查:一個用於有效的 ASCS 執行個體,另一個用於有效的 ERS。
在 Cloud Shell 中建立健康狀態檢查。為避免與其他服務衝突,請在私人範圍 49152-65535 中指定 ASCS 和 ERS 執行個體的通訊埠編號。下列指令中的檢查間隔和逾時值比預設值略長,可在 Compute Engine 即時遷移事件期間提高容錯能力。如有需要,您可以調整這些值:
~
gcloud compute health-checks create tcp ASCS_HEALTH_CHECK_NAME \ --port=ASCS_HEALTHCHECK_PORT_NUM --proxy-header=NONE --check-interval=10 --timeout=10 \ --unhealthy-threshold=2 --healthy-threshold=2~
gcloud compute health-checks create tcp ERS_HEALTH_CHECK_NAME \ --port=ERS_HEALTHCHECK_PORT_NUM --proxy-header=NONE --check-interval=10 --timeout=10 \ --unhealthy-threshold=2 --healthy-threshold=2
確認已建立各項健康狀態檢查:
~
gcloud compute health-checks describe HEALTH_CHECK_NAME您會看到類似以下範例的輸出內容:
checkIntervalSec: 10 creationTimestamp: '2021-05-12T15:12:21.892-07:00' healthyThreshold: 2 id: '1981070199800065066' kind: compute#healthCheck name: ascs-aha-health-check-name selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/scs-aha-health-check-name tcpHealthCheck: port: 60000 portSpecification: USE_FIXED_PORT proxyHeader: NONE timeoutSec: 10 type: TCP unhealthyThreshold: 2
為健康狀態檢查建立防火牆規則
如果您尚未這麼做,請為私人範圍中的通訊埠定義防火牆規則,允許 Cloud Load Balancing 健康狀態檢查使用的 IP 範圍 (35.191.0.0/16
和 130.211.0.0/22
) 存取主機 VM。如要進一步瞭解負載平衡器的防火牆規則,請參閱「建立健康狀態檢查的防火牆規則」。
如果您尚未建立網路代碼,請在主機 VM 中新增網路代碼。防火牆規則會使用這個網路標記進行健康狀態檢查。
~
gcloud compute instances add-tags PRIMARY_VM_NAME \ --zone=PRIMARY_ZONE \ --tags NETWORK_TAGS~
gcloud compute instances add-tags SECONDARY_VM_NAME \ --zone=SECONDARY_ZONE \ --tags NETWORK_TAGS
建立使用網路標記的防火牆規則,允許健康狀態檢查:
~
gcloud compute firewall-rules create RULE_NAME \ --network=NETWORK_NAME \ --action=ALLOW \ --direction=INGRESS \ --source-ranges=35.191.0.0/16,130.211.0.0/22 \ --target-tags=NETWORK_TAGS \ --rules=tcp:ASCS_HEALTHCHECK_PORT_NUM,tcp:ERS_HEALTHCHECK_PORT_NUM例如:
gcloud compute firewall-rules create nw-ha-cluster-health-checks \ --network=example-network \ --action=ALLOW \ --direction=INGRESS \ --source-ranges=35.191.0.0/16,130.211.0.0/22 \ --target-tags=allow-health-check \ --rules=tcp:60000,tcp:60010
建立 Compute Engine 執行個體群組
您需要在包含叢集節點 VM 的每個區域中建立執行個體群組,並將該區域中的 VM 新增至執行個體群組。
在 Cloud Shell 中建立主要執行個體群組,並將主要 VM 新增至該群組:
~
gcloud compute instance-groups unmanaged create PRIMARY_IG_NAME \ --zone=PRIMARY_ZONE~
gcloud compute instance-groups unmanaged add-instances PRIMARY_IG_NAME \ --zone=PRIMARY_ZONE \ --instances=PRIMARY_VM_NAME
在 Cloud Shell 中建立次要執行個體群組,並將次要 VM 新增至該群組:
~
gcloud compute instance-groups unmanaged create SECONDARY_IG_NAME \ --zone=SECONDARY_ZONE~
gcloud compute instance-groups unmanaged add-instances SECONDARY_IG_NAME \ --zone=SECONDARY_ZONE \ --instances=SECONDARY_VM_NAME
確認執行個體群組已建立:
~
gcloud compute instance-groups unmanaged list您會看到類似以下範例的輸出內容:
NAME ZONE NETWORK NETWORK_PROJECT MANAGED INSTANCES sap-aha-primary-instance-group us-central1-b example-network-sap example-project-123456 No 1 sap-aha-secondary-instance-group us-central1-c example-network-sap example-project-123456 No 1
設定後端服務
建立兩項後端服務,一個用於 ASCS,另一個用於 ERS。將兩個執行個體群組新增至每個後端服務,並將相反的執行個體群組指定為每個後端服務中的容錯移轉執行個體群組。最後,請建立從 VIP 轉送至後端服務的轉送規則。
在 Cloud Shell 中,建立 ASCS 的後端服務和容錯群組:
建立 ASCS 的後端服務:
~
gcloud compute backend-services create ASCS_BACKEND_SERVICE_NAME \ --load-balancing-scheme internal \ --health-checks ASCS_HEALTH_CHECK_NAME \ --no-connection-drain-on-failover \ --drop-traffic-if-unhealthy \ --failover-ratio 1.0 \ --region CLUSTER_REGION \ --global-health-checks將主要執行個體群組新增至 ASCS 後端服務:
~
gcloud compute backend-services add-backend ASCS_BACKEND_SERVICE_NAME \ --instance-group PRIMARY_IG_NAME \ --instance-group-zone PRIMARY_ZONE \ --region CLUSTER_REGION將次要執行個體群組新增為 ASCS 後端服務的容錯移轉執行個體群組:
~
gcloud compute backend-services add-backend ASCS_BACKEND_SERVICE_NAME \ --instance-group SECONDARY_IG_NAME \ --instance-group-zone SECONDARY_ZONE \ --failover \ --region CLUSTER_REGION
在 Cloud Shell 中,建立 ERS 的後端服務和容錯群組:
建立 ERS 的後端服務:
~
gcloud compute backend-services create ERS_BACKEND_SERVICE_NAME \ --load-balancing-scheme internal \ --health-checks ERS_HEALTH_CHECK_NAME \ --no-connection-drain-on-failover \ --drop-traffic-if-unhealthy \ --failover-ratio 1.0 \ --region CLUSTER_REGION \ --global-health-checks將次要執行個體群組新增至 ERS 後端服務:
~
gcloud compute backend-services add-backend ERS_BACKEND_SERVICE_NAME \ --instance-group SECONDARY_IG_NAME \ --instance-group-zone SECONDARY_ZONE \ --region CLUSTER_REGION將主要執行個體群組新增為 ERS 後端服務的容錯移轉執行個體群組:
~
gcloud compute backend-services add-backend ERS_BACKEND_SERVICE_NAME \ --instance-group PRIMARY_IG_NAME \ --instance-group-zone PRIMARY_ZONE \ --failover \ --region CLUSTER_REGION
視需要確認後端服務是否如預期包含執行個體群組:
~
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region=CLUSTER_REGION您應該會看到類似以下範例的 ASCS 後端服務輸出內容。對於 ERS,
failover: true
會顯示在主要例項群組中:backends: - balancingMode: CONNECTION group: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instanceGroups/sap-aha-primary-instance-group - balancingMode: CONNECTION failover: true group: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/sap-aha-secondary-instance-group connectionDraining: drainingTimeoutSec: 0 creationTimestamp: '2022-04-06T10:58:37.744-07:00' description: '' failoverPolicy: disableConnectionDrainOnFailover: true dropTrafficIfUnhealthy: true failoverRatio: 1.0 fingerprint: s4qMEAyhrV0= healthChecks: - https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/ascs-aha-health-check-name id: '6695034709671438882' kind: compute#backendService loadBalancingScheme: INTERNAL name: ascs-aha-backend-service-name protocol: TCP region: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/backendServices/ascs-aha-backend-service-name sessionAffinity: NONE timeoutSec: 30
在 Cloud Shell 中,為 ASCS 和 ERS 後端服務建立轉送規則:
建立從 ASCS VIP 轉送至 ASCS 後端服務的轉送規則:
~
gcloud compute forwarding-rules create ASCS_FORWARDING_RULE_NAME \ --load-balancing-scheme internal \ --address ASCS_VIP_ADDRESS \ --subnet CLUSTER_SUBNET \ --region CLUSTER_REGION \ --backend-service ASCS_BACKEND_SERVICE_NAME \ --ports ALL建立從 ERS VIP 到 ERS 後端服務的轉送規則:
~
gcloud compute forwarding-rules create ERS_FORWARDING_RULE_NAME \ --load-balancing-scheme internal \ --address ERS_VIP_ADDRESS \ --subnet CLUSTER_SUBNET \ --region CLUSTER_REGION \ --backend-service ERS_BACKEND_SERVICE_NAME \ --ports ALL
測試負載平衡器設定
雖然後端執行個體群組要到稍後才會註冊為健康狀態,但您可以設定監聽器來回應健康狀態檢查,藉此測試負載平衡器設定。設定事件監聽器後,如果負載平衡器設定正確,後端執行個體群組的狀態就會變更為正常。
以下各節將介紹可用來測試設定的不同方法。
使用 socat
公用程式測試負載平衡器
您可以使用 socat
公用程式暫時監聽健康檢查埠。您還是需要安裝 socat
公用程式,因為稍後設定叢集資源時會用到。
在兩個主機 VM 上以超級使用者的身分安裝
socat
公用程式:#
zypper install socat在主要 VM 上,將 VIP 暫時指派給 eth0 網路卡:
ip addr add VIP_ADDRESS dev eth0
在主要 VM 上啟動
socat
程序,以便在 ASCS 健康狀態檢查通訊埠上監聽 60 秒:#
timeout 60s socat - TCP-LISTEN:ASCS_HEALTHCHECK_PORT_NUM,fork在 Cloud Shell 中,等待幾秒讓健康狀態檢查偵測到監聽器後,請檢查 ASCS 後端執行個體群組的健康狀態:
~
gcloud compute backend-services get-health ASCS_BACKEND_SERVICE_NAME \ --region CLUSTER_REGION您應該會看到類似以下範例的 ASCS 輸出內容:
backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instanceGroups/sap-aha-primary-instance-group status: healthStatus: - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule forwardingRuleIp: 10.1.0.90 healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instances/nw-ha-vm-1 ipAddress: 10.1.0.89 port: 80 kind: compute#backendServiceGroupHealth --- backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/sap-aha-secondary-instance-group status: healthStatus: - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule forwardingRuleIp: 10.1.0.90 healthState: UNHEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/nw-ha-vm-2 ipAddress: 10.1.0.88 port: 80 kind: compute#backendServiceGroupHealth
從 eth0 介面中移除 VIP:
ip addr del VIP_ADDRESS dev eth0
重複執行 ERS 的步驟,將 ASCS 變數值替換為 ERS 值。
使用 22 號通訊埠測試負載平衡器
如果主機 VM 上的 SSH 連線已開啟通訊埠 22
,您可以暫時編輯健康檢查器,使用通訊埠 22
,該通訊埠具有可回應健康檢查器的監聽器。
如要暫時使用 22
連接埠,請按照下列步驟操作:
在 Google Cloud 控制台中,前往 Compute Engine 的「Health checks」(健康狀態檢查) 頁面:
按一下健康狀態檢查名稱。
按一下 [編輯]。
在「Port」欄位中,將通訊埠號碼變更為 22。
按一下「儲存」,然後等候一兩分鐘。
在 Cloud Shell 中,等待幾秒讓健康檢查偵測到監聽器後,請檢查後端執行個體群組的健康狀態:
~
gcloud compute backend-services get-health BACKEND_SERVICE_NAME \ --region CLUSTER_REGION畫面會顯示類似以下的輸出:
backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instanceGroups/sap-aha-primary-instance-group status: healthStatus: - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule forwardingRuleIp: 10.1.0.85 healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instances/nw-ha-vm-1 ipAddress: 10.1.0.79 port: 80 kind: compute#backendServiceGroupHealth --- backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/sap-aha-secondary-instance-group status: healthStatus: - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule forwardingRuleIp: 10.1.0.85 healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/nw-ha-vm-2 ipAddress: 10.1.0.78 port: 80 kind: compute#backendServiceGroupHealth
完成後,請將健康狀態檢查通訊埠編號改回原始通訊埠編號。
設定 Pacemaker
下列程序會在 Compute Engine VM 上為 SAP NetWeaver 設定 SUSE 實作 Pacemaker 叢集。
如要進一步瞭解如何在 SLES 上設定高可用性叢集,請參閱您所用 SLES 版本的 SUSE Linux Enterprise 高可用性擴充功能說明文件。
安裝必要的叢集套件
在主要和次要主機上以超級使用者身分下載下列必要的叢集套件:
ha_sles
模式:#
zypper install -t pattern ha_slessap-suse-cluster-connector
套件:#
zypper install -y sap-suse-cluster-connector如果您使用的是簡易掛載設定,請另外執行下列指令:
#
zypper install -y sapstartsrv-resource-agents如果您尚未安裝,
socat
公用程式會:#
zypper install -y socat
確認已載入最新的高可用性代理程式:
#
zypper se -t patch SUSE-SLE-HA
在主要 VM 上初始化、設定及啟動叢集
您可以使用 ha-cluster-init
SUSE 指令碼初始化叢集。接著,您需要編輯 Corosync 設定檔,並與次要節點同步處理。啟動叢集後,您可以使用 crm
指令設定其他叢集屬性和預設值。
建立 Corosync 設定檔
在主要主機上建立 Corosync 設定檔:
使用您慣用的文字編輯器建立下列檔案:
/etc/corosync/corosync.conf
在主要主機的
corosync.conf
檔案中,新增下列設定,並將斜體變數文字替換為您的值:totem { version: 2 secauth: off crypto_hash: sha1 crypto_cipher: aes256 cluster_name: hacluster clear_node_high_bit: yes token: 20000 token_retransmits_before_loss_const: 10 join: 60 max_messages: 20 transport: udpu interface { ringnumber: 0 Bindnetaddr: STATIC_IP_OF_THIS_HOST mcastport: 5405 ttl: 1 } } logging { fileline: off to_stderr: no to_logfile: no logfile: /var/log/cluster/corosync.log to_syslog: yes debug: off timestamp: on logger_subsys { subsys: QUORUM debug: off } } nodelist { node { ring0_addr: THIS_HOST_NAME nodeid: 1 } node { ring0_addr: OTHER_HOST_NAME nodeid: 2 } } quorum { provider: corosync_votequorum expected_votes: 2 two_node: 1 }
更改下列內容:
STATIC_IP_OF_THIS_HOST
:指定此 VM 的靜態主要內部 IP 位址,如 Google Cloud 主控台的「Network interfaces」所示,或由gcloud compute instances describe VM_NAME
顯示。THIS_HOST_NAME
:指定此 VM 的主機名稱。OTHER_HOST_NAME
:指定叢集中其他 VM 的主機名稱。
在次要主機上建立 Corosync 設定檔,方法是重複主要主機的步驟。除了
Bindnetaddr
屬性中的 HDB 靜態 IP 和nodelist
中主機名稱的順序,每個主機的設定檔屬性值都相同。
初始化叢集
如要初始化叢集,請按照下列步驟操作:
變更
hacluster
使用者的密碼:#
passwd hacluster在主要主機上以超級使用者的身分,初始化叢集。
下列指令會為叢集命名,並建立設定檔
corosync.conf
:設定設定檔,並設定叢集節點之間的同步作業。#
crm cluster init --name CLUSTER_NAME --yes ssh#
crm cluster init --name CLUSTER_NAME --yes --interface eth0 csync2#
crm cluster init --name CLUSTER_NAME --yes --interface eth0 corosync在主要主機上啟動 Pacemaker:
#
systemctl enable pacemaker#
systemctl start pacemaker
設定其他叢集屬性
設定一般叢集屬性:
#
crm configure property stonith-timeout="300s"#
crm configure property stonith-enabled="true"#
crm configure rsc_defaults resource-stickiness="1"#
crm configure rsc_defaults migration-threshold="3"#
crm configure op_defaults timeout="600"定義個別叢集資源時,您為
resource-stickiness
和migration-threshold
設定的值會覆寫您在此處設定的預設值。只要輸入
crm config show
,即可查看資源預設值,以及任何已定義資源的值。
將次要 VM 加入叢集
透過 SSH 在主要 VM 的已開啟終端機上,加入並啟動次要 VM 上的叢集。
變更
hacluster
使用者的密碼:#
passwd hacluster在主要 VM 上,透過 SSH 在次要 VM 上執行下列
crm cluster join
指令碼選項。如果您已按照這些操作說明設定 HA 叢集,則可以忽略有關監控裝置的警告。執行
--yes ssh
選項,在叢集節點之間設定ssh
:#
ssh SECONDARY_VM_NAME 'crm cluster join --cluster-node PRIMARY_VM_NAME --yes ssh'執行
--interface eth0 csync2
選項:#
ssh SECONDARY_VM_NAME 'crm cluster join --cluster-node PRIMARY_VM_NAME --yes --interface eth0 csync2'執行
ssh_merge
選項:#
ssh SECONDARY_VM_NAME 'crm cluster join --cluster-node PRIMARY_VM_NAME --yes ssh_merge'執行
cluster
選項:#
ssh SECONDARY_VM_NAME 'crm cluster join --cluster-node PRIMARY_VM_NAME --yes cluster'
在次要主機上啟動 Pacemaker:
啟用 Pacemaker:
#
ssh SECONDARY_VM_NAME systemctl enable pacemaker啟動 Pacemaker:
#
ssh SECONDARY_VM_NAME systemctl start pacemaker
在任一主機上以超級使用者身分,確認叢集顯示兩個節點:
#
crm_mon -s畫面會顯示類似以下的輸出:
CLUSTER OK: 2 nodes online, 0 resource instances configured
設定基礎架構的叢集資源
您可以定義 Pacemaker 在高可用性叢集中管理的資源。您需要為下列叢集元件定義資源:
- 防火牆裝置,可避免發生分割腦的情況
- 共用檔案系統中的 ASCS 和 ERS 目錄
- 健康狀態檢查
- VIP
- ASCS 和 ERS 元件
您定義 ASCS 和 ERS 元件的資源時,會比其他資源晚一些,因為您必須先安裝 SAP NetWeaver。
啟用維護模式
在任一主機上以超級使用者身分,將叢集設為維護模式:
#
crm configure property maintenance-mode="true"確認維護模式:
#
crm status輸出內容應指出已停用資源管理功能,如以下範例所示:
Cluster Summary: * Stack: corosync * Current DC: nw-ha-vm-1 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum * Last updated: Fri May 14 15:26:08 2021 * Last change: Thu May 13 19:02:33 2021 by root via cibadmin on nw-ha-vm-1 * 2 nodes configured * 0 resource instances configured *** Resource management is DISABLED *** The cluster will not attempt to start, stop or recover services Node List: * Online: [ nw-ha-vm-1 nw-ha-vm-2 ] Full List of Resources: * No resources
設定圍欄
您可以使用 fence_gce
代理程式,為每個主機 VM 定義叢集資源,藉此設定圍欄。
為確保在圍欄動作後的事件順序正確,您還可以設定作業系統,在 VM 遭到圍欄後延遲重新啟動 Corosync。您也可以調整 Pacemaker 的重新啟動逾時時間,以便考量延遲時間。
建立圍欄裝置資源
針對叢集中的每個 VM,您可以為可重新啟動該 VM 的圍欄裝置建立叢集資源。VM 的圍欄裝置必須在其他 VM 上執行,因此您必須設定叢集資源的位置,以便在任何 VM 上執行 (除了可重新啟動的 VM 以外)。
在主要主機上以超級使用者的身分,為主要 VM 的圍欄裝置建立叢集資源:
#
crm configure primitive FENCING_RESOURCE_PRIMARY_VM stonith:fence_gce \ op monitor interval="300s" timeout="120s" \ op start interval="0" timeout="60s" \ params port="PRIMARY_VM_NAME" zone="PRIMARY_ZONE" \ project="CLUSTER_PROJECT_ID" \ pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30為主要 VM 設定圍欄裝置的位置,讓該裝置只在次要 VM 上啟用:
#
crm configure location FENCING_LOCATION_NAME_PRIMARY_VM \ FENCING_RESOURCE_PRIMARY_VM -inf: "PRIMARY_VM_NAME"確認新建的設定:
#
crm config show related:FENCING_RESOURCE_PRIMARY_VM您會看到類似以下範例的輸出內容:
primitive FENCING_RESOURCE_PRIMARY_VM stonith:fence_gce \ op monitor interval=300s timeout=120s \ op start interval=0 timeout=60s \ params PRIMARY_VM_NAME zone=PRIMARY_ZONE project=CLUSTER_PROJECT_ID pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30 location FENCING_RESOURCE_PRIMARY_VM FENCING_RESOURCE_PRIMARY_VM -inf: PRIMARY_VM_NAME
在主要主機上以超級使用者的身分,為次要 VM 的圍欄裝置建立叢集資源:
#
crm configure primitive FENCING_RESOURCE_SECONDARY_VM stonith:fence_gce \ op monitor interval="300s" timeout="120s" \ op start interval="0" timeout="60s" \ params port="SECONDARY_VM_NAME" zone="SECONDARY_VM_ZONE" \ project="CLUSTER_PROJECT_ID" \ pcmk_reboot_timeout=300 pcmk_monitor_retries=4為次要 VM 設定隔離裝置的位置,讓該裝置只在主要 VM 上啟用:
#
crm configure location FENCING_LOCATION_NAME_SECONDARY_VM \ FENCING_RESOURCE_SECONDARY_VM -inf: "SECONDARY_VM_NAME"確認新建的設定:
#
crm config show related:FENCING_RESOURCE_SECONDARY_VM您會看到類似以下範例的輸出內容:
primitive FENCING_RESOURCE_SECONDARY_VM stonith:fence_gce \ op monitor interval=300s timeout=120s \ op start interval=0 timeout=60s \ params SECONDARY_VM_NAME zone=SECONDARY_ZONE project=CLUSTER_PROJECT_ID pcmk_reboot_timeout=300 pcmk_monitor_retries=4 location FENCING_RESOURCE_SECONDARY_VM FENCING_RESOURCE_SECONDARY_VM -inf: SECONDARY_VM_NAME
設定 Corosync 的重新啟動延遲時間
在兩部主機上以超級使用者的身分建立
systemd
插入檔案,以便延遲 Corosync 的啟動,確保在重新啟動受限的 VM 後,事件的順序正確無誤:systemctl edit corosync.service
在檔案中新增下列幾行內容:
[Service] ExecStartPre=/bin/sleep 60
儲存檔案並結束編輯器。
重新載入 systemd 管理員設定。
systemctl daemon-reload
確認已建立插入檔案:
service corosync status
您應該會看到插入檔案的一行,如以下範例所示:
● corosync.service - Corosync Cluster Engine Loaded: loaded (/usr/lib/systemd/system/corosync.service; disabled; vendor preset: disabled) Drop-In: /etc/systemd/system/corosync.service.d └─override.conf Active: active (running) since Tue 2021-07-20 23:45:52 UTC; 2 days ago
建立檔案系統資源
如果您使用的是簡易掛載設定,請略過本節,因為簡易掛載設定不會使用由叢集管理的執行個體專屬檔案系統資源。
建立共用檔案系統目錄後,您可以定義叢集資源。
為執行個體專屬目錄設定檔案系統資源。
#
crm configure primitive ASCS_FILE_SYSTEM_RESOURCE Filesystem \ device="NFS_PATH/usrsapSIDASCSASCS_INSTANCE_NUMBER" \ directory="/usr/sap/SID/ASCSASCS_INSTANCE_NUMBER" fstype="nfs" \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op monitor interval=20s timeout=40s更改下列內容:
ASCS_FILE_SYSTEM_RESOURCE
:指定 ASCS 檔案系統的叢集資源名稱。NFS_PATH
:指定 ASCS 的 NFS 檔案系統路徑。SID
:指定系統 ID (SID)。所有字母都使用大寫。ASCS_INSTANCE_NUMBER
:指定 ASCS 執行個體編號。
#
crm configure primitive ERS_FILE_SYSTEM_RESOURCE Filesystem \ device="NFS_PATH/usrsapSIDERSERS_INSTANCE_NUMBER" \ directory="/usr/sap/SID/ERSERS_INSTANCE_NUMBER" fstype="nfs" \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op monitor interval=20s timeout=40s更改下列內容:
ERS_FILE_SYSTEM_RESOURCE
:指定 ERS 檔案系統的叢集資源名稱。NFS_PATH
:指定 ERS 的 NFS 檔案系統路徑。SID
:指定系統 ID (SID)。所有字母都使用大寫。ERS_INSTANCE_NUMBER
:指定 ASCS 執行個體編號。
確認新建的設定:
#
crm configure show ASCS_FILE_SYSTEM_RESOURCE ERS_FILE_SYSTEM_RESOURCE您會看到類似以下範例的輸出內容:
primitive ASCS_FILE_SYSTEM_RESOURCE Filesystem \ params device="NFS_PATH/usrsapSIDASCSASCS_INSTANCE_NUMBER" directory="/usr/sap/SID/ASCSASCS_INSTANCE_NUMBER" fstype=nfs \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op monitor interval=20s timeout=40s primitive ERS_FILE_SYSTEM_RESOURCE Filesystem \ params device="NFS_PATH/usrsapSIDERSERS_INSTANCE_NUMBER" directory="/usr/sap/SID/ERSERS_INSTANCE_NUMBER" fstype=nfs \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op monitor interval=20s timeout=40s
建立健康狀態檢查資源
為 ASCS 和 ERS 健康檢查設定叢集資源:
#
crm configure primitive ASCS_HEALTH_CHECK_RESOURCE anything \ params binfile="/usr/bin/socat" \ cmdline_options="-U TCP-LISTEN:ASCS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \ op monitor timeout=20s interval=10s \ op_params depth=0#
crm configure primitive ERS_HEALTH_CHECK_RESOURCE anything \ params binfile="/usr/bin/socat" \ cmdline_options="-U TCP-LISTEN:ERS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \ op monitor timeout=20s interval=10s \ op_params depth=0確認新建的設定:
#
crm configure show ERS_HEALTH_CHECK_RESOURCE ASCS_HEALTH_CHECK_RESOURCE您會看到類似以下範例的輸出內容:
primitive ERS_HEALTH_CHECK_RESOURCE anything \ params binfile="/usr/bin/socat" cmdline_options="-U TCP-LISTEN:ASCS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \ op monitor timeout=20s interval=10s \ op_params depth=0 primitive ASCS_HEALTH_CHECK_RESOURCE anything \ params binfile="/usr/bin/socat" cmdline_options="-U TCP-LISTEN:ERS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \ op monitor timeout=20s interval=10s \ op_params depth=0
建立 VIP 資源
定義 VIP 位址的叢集資源。
如要查詢數字 VIP 位址,您可以使用:
gcloud compute addresses describe ASCS_VIP_NAME
--region=CLUSTER_REGION --format="value(address)"gcloud compute addresses describe ERS_VIP_NAME
--region=CLUSTER_REGION --format="value(address)"
為 ASCS 和 ERS VIP 建立叢集資源。
#
crm configure primitive ASCS_VIP_RESOURCE IPaddr2 \ params ip=ASCS_VIP_ADDRESS cidr_netmask=32 nic="eth0" \ op monitor interval=3600s timeout=60s#
crm configure primitive ERS_VIP_RESOURCE IPaddr2 \ params ip=ERS_VIP_ADDRESS cidr_netmask=32 nic="eth0" \ op monitor interval=3600s timeout=60s確認新建的設定:
#
crm configure show ASCS_VIP_RESOURCE ERS_VIP_RESOURCE您會看到類似以下範例的輸出內容:
primitive ASCS_VIP_RESOURCE IPaddr2 \ params ip=ASCS_VIP_ADDRESS cidr_netmask=32 nic=eth0 \ op monitor interval=3600s timeout=60s primitive ERS_VIP_RESOURCE IPaddr2 \ params ip=ERS_VIP_RESOURCE cidr_netmask=32 nic=eth0 \ op monitor interval=3600s timeout=60s
查看已定義的資源
如要查看目前已定義的所有資源,請輸入下列指令:
#
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: Wed May 26 19:10:10 2021 Last change: Tue May 25 23:48:35 2021 by root via cibadmin on nw-ha-vm-1 2 nodes configured 8 resource instances configured *** Resource management is DISABLED *** The cluster will not attempt to start, stop or recover services Online: [ nw-ha-vm-1 nw-ha-vm-2 ] Full list of resources: fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Stopped (unmanaged) fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Stopped (unmanaged) filesystem-rsc-nw-aha-ascs (ocf::heartbeat:Filesystem): Stopped (unmanaged) filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem): Stopped (unmanaged) health-check-rsc-nw-ha-ascs (ocf::heartbeat:anything): Stopped (unmanaged) health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Stopped (unmanaged) vip-rsc-nw-aha-ascs (ocf::heartbeat:IPaddr2): Stopped (unmanaged) vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Stopped (unmanaged)
如果您使用的是簡易掛載設定,您會看到類似以下範例的輸出內容:
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:10:10 2024 Last change: Tue Sep 25 23:48:35 2024 by root via cibadmin on nw-ha-vm-1 2 nodes configured 8 resource instances configured *** Resource management is DISABLED *** The cluster will not attempt to start, stop or recover services Online: [ nw-ha-vm-1 nw-ha-vm-2 ] Full list of resources: fencing-rsc-nw-aha-vm-1 (stonith:fence_gce): Stopped (unmanaged) fencing-rsc-nw-aha-vm-2 (stonith:fence_gce): Stopped (unmanaged) health-check-rsc-nw-ha-ascs (ocf::heartbeat:anything): Stopped (unmanaged) health-check-rsc-nw-ha-ers (ocf::heartbeat:anything): Stopped (unmanaged) vip-rsc-nw-aha-ascs (ocf::heartbeat:IPaddr2): Stopped (unmanaged) vip-rsc-nw-aha-ers (ocf::heartbeat:IPaddr2): Stopped (unmanaged)
安裝 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 作業指南