

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從 ENSA1 升級 SAP Pacemaker 叢集到 ENSA2
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2"></a>

*Gergely Cserdi 和 Balazs Sandor Skublics，Amazon Web Services*

## 總結
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-summary"></a>

此模式說明將基於獨立 Enqueue Server (ENSA1) 的 SAP Pacemaker 叢集升級至 ENSA2 的步驟和考量。此模式中的資訊同時適用於 SUSE Linux Enterprise Server (SLES) 和 Red Hat Enterprise Linux (RHEL) 作業系統。

SAP NetWeaver 7.52 或 S/4HANA 1709 及更舊版本的 Pacemaker 叢集會在 ENSA1 架構上執行，並專門針對 ENSA1 設定。如果您在 Amazon Web Services (AWS) 上執行 SAP 工作負載，而且有興趣移至 ENSA2，您可能會發現 SAP、SUSE 和 RHEL 文件不提供完整的資訊。此模式說明重新設定 SAP 參數和 Pacemaker 叢集以從 ENSA1 升級到 ENSA2 所需的技術步驟。它提供 SUSE 系統的範例，但 RHEL 叢集的概念相同。

**注意**  
ENSA1 和 ENSA2 是僅適用於 SAP 應用程式的概念，因此此模式中的資訊不適用於 SAP HANA 或其他類型的叢集。

**注意**  
在技術上，ENSA2 可以搭配或不搭配 Enqueue Replicator 2 使用。不過，高可用性 (HA) 和容錯移轉自動化 （透過叢集解決方案） 需要 Enqueue Replicator 2。此模式使用 *ENSA2 叢集*一詞來參考具有獨立 Enqueue Server 2 和 Enqueue Replicator 2 的叢集。

## 先決條件和限制
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-prereqs"></a>

**先決條件 **
+ 在 SLES 或 RHEL 上使用 Pacemaker 和 Corosync 的工作 ENSA1-based叢集。
+ 至少兩個執行 (ABAP) SAP Central Services (ASCS/SCS) 和 Enqueue Replication Server (ERS) 執行個體的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。
+ 具備管理 SAP 應用程式和叢集的知識。
+ 以根使用者身分存取 Linux 環境。

**限制 **
+ ENSA1-based叢集僅支援雙節點架構。
+ ENSA2-based叢集無法部署至 7.52 之前的 SAP NetWeaver 版本。
+ 叢集中的 EC2 執行個體應該位於不同的 AWS 可用區域。

**產品版本**
+ SAP NetWeaver 7.52 版或更新版本
+ 從 S/4HANA 2020 開始，僅支援 ENSA2 叢集
+ 支援 ENSA2 和 Enqueue Replicator 2 的核心 7.53 或更新版本
+ SLES for SAP 應用程式第 12 版或更新版本
+ RHEL for SAP 搭配高可用性 (HA) 7.9 版或更新版本

## Architecture
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-architecture"></a>

**來源技術堆疊 **
+ SAP NetWeaver 7.52 搭配 SAP 核心 7.53 或更新版本
+ SLES 或 RHEL 作業系統

**目標技術堆疊 **
+ SAP NetWeaver 7.52 搭配 SAP Kernel 7.53 或更新版本，包括 S/4HANA 2020 搭配 ABAP 平台
+ SLES 或 RHEL 作業系統

**目標架構 **

下圖顯示以 ENSA2 叢集為基礎的 ASCS/SCS 和 ERS 執行個體的 HA 組態。

![\[ENSA2 叢集上 ASCS/SCS 和 ERS 執行個體的 HA 架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/c32560de-901f-4796-a6b3-c08c109b22c8/images/19501713-0ddf-4242-9ea3-90478200a19e.png)


**ENSA1 和 ENSA2 叢集的比較**

SAP 推出 ENSA2 做為 ENSA1 的後續版本。ENSA1-based叢集支援雙節點架構，當發生錯誤時，ASCS/SCS 執行個體會容錯移轉至 ERS。此限制源自於 ASCS/SCS 執行個體在容錯移轉後如何從 ERS 節點的共用記憶體中重新取得鎖定資料表資訊。ENSA2-based叢集搭配 Enqueue Replicator 2 可消除此限制，因為 ASCS/SCS 執行個體可以透過網路從 ERS 執行個體收集鎖定資訊。ENSA2-based叢集可以有兩個以上的節點，因為 ASCS/SCS 執行個體不再需要容錯移轉至 ERS 節點。（不過，在雙節點 ENSA2 叢集環境中，ASCS/SCS 執行個體仍會容錯移轉至 ERS 節點，因為叢集中沒有其他節點可容錯移轉。) 從 SAP Kernel 7.50 開始支援 ENSA2，但有一些限制。對於支援佇列複寫器 2 的 HA 設定，最低需求為 NetWeaver 7.52 （請參閱 [SAP OSS 備註 2630416](https://launchpad.support.sap.com/#/notes/2630416))。S/4HANA 1809 隨附預設建議的 ENSA2 架構，而 S/4HANA 僅支援從 2020 版開始的 ENSA2。

**自動化和擴展**

目標架構中的 HA 叢集可讓 ASCS 自動容錯移轉至其他節點。

**移至 ENSA2-based叢集的案例**

升級至 ENSA2-based叢集有兩種主要案例： 
+ 案例 1：假設您的 SAP 版本和核心版本支援 ENSA2，您可以選擇在沒有隨附的 SAP 升級或 S/4HANA 轉換的情況下升級至 ENSA2。
+ 案例 2：您使用 SUM 移至 ENSA2 作為升級或轉換的一部分 （例如，移至 S/4HANA 1809 或更新版本）。

[Epics](#upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-epics) 區段涵蓋這兩個案例的步驟。第一個案例需要您手動設定 SAP 相關參數，才能變更 ENSA2 的叢集組態。在第二個案例中，二進位檔和 SAP 相關參數是由 SUM 部署，而您剩下的唯一任務是更新 HA 的叢集組態。我們仍建議您在使用 SUM 之後驗證 SAP 參數。在大多數情況下，S/4HANA 轉換是叢集升級的主要原因。

## 工具
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-tools"></a>
+ 對於作業系統套件管理員，我們建議使用 Zypper （適用於 SLES) 或 YUM （適用於 RHEL) 工具。
+ 針對叢集管理，我們建議使用 **crm** （適用於 SLES) 或 **pcs** （適用於 RHEL) shell。
+ SAP 執行個體管理工具，例如 SAPControl。
+ （選用） S/4HANA 轉換升級的 SUM 工具。

## 最佳實務
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-best-practices"></a>
+ 如需在 AWS 上使用 SAP 工作負載的最佳實務，請參閱 AWS Well-Architected Framework 的 [SAP Lens](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html)。
+ 考慮 ENSA2 多節點架構中的叢集節點數量 （舊節點或甚至節點）。
+ 設定 SLES 15 的 ENSA2 叢集，以符合 SAP S/4-HA-CLU 1.0 認證標準。
+ 升級至 ENSA2 之前，請務必儲存或備份現有的叢集和應用程式狀態。

## 史詩
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-epics"></a>

### 為 ENSA2 手動設定 SAP 參數 （僅限案例 1)
<a name="configure-sap-parameters-manually-for-ensa2-scenario-1-only"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 在預設設定檔中設定參數。 | 如果您想要在保持相同 SAP 版本時升級至 ENSA2，或目標版本預設為 ENSA1，請將預設設定檔 (DEFAULT.PFL 檔案） 中的參數設定為下列值。<pre>enq/enable=TRUE<br />enq/serverhost=sapascsvirt<br />enq/serverinst=10        (instance number of ASCS/SCS instance)<br />enque/process_location=REMOTESA<br />enq/replicatorhost=sapersvirt<br />enq/replicatorinst=11    (instance number of ERS instance)<br />  </pre>其中 `sapascsvirt`是 ASCS 執行個體的虛擬主機名稱，而 `sapersvirt`是 ERS 執行個體的虛擬主機名稱。您可以變更這些項目以符合您的目標環境。若要使用此升級選項，您的 SAP 版本和核心版本必須支援 ENSA2 和 Enqueue Replicator 2。 | SAP | 
| 設定 ASCS/SCS 執行個體描述檔。 | 如果您想要在保持相同 SAP 版本時升級至 ENSA2，或目標版本預設為 ENSA1，請在 ASCS/SCS 執行個體描述檔中設定下列參數。 定義 ENSA1 的設定檔區段如下所示。<pre>#--------------------------------------------------------------<br />Start SAP enqueue server<br />#-------------------------------------------------------------- <br />_EN = en.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_04 = local rm -f $(_EN) <br />Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enserver$(FT_EXE) $(_EN) <br />Start_Program_01 = local $(_EN) pf=$(_PF)<br />  </pre>若要為 ENSA2 重新設定本節：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)變更後，此設定檔區段看起來會類似以下內容。<pre>#--------------------------------------------------------------<br />Start SAP enqueue server<br />#-------------------------------------------------------------- <br />_ENQ = enq.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_04 = local rm -f $(_ENQ) <br />Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enq_server$(FT_EXE) $(_ENQ) <br />Start_Program_01 = local $(_ENQ) pf=$(_PF) <br />... <br />enq/server/replication/enable = TRUE <br />Autostart = 0</pre>`_ENQ` 不得啟用重新啟動選項。如果 `RestartProgram_01` 設定為 `_ENQ`，請將其變更為 `StartProgram_01`。這可防止 SAP 重新啟動服務或干擾叢集管理的資源。 | SAP | 
| 設定 ERS 設定檔。 | 如果您想要在保持相同 SAP 版本時升級至 ENSA2，或目標版本預設為 ENSA1，請在 ERS 執行個體設定檔中設定下列參數。尋找定義佇列複寫器的區段。它將類似於以下內容。<pre>#------------------------------------------------------<br />Start enqueue replication server<br />#------------------------------------------------------ <br />_ER = er.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_03 = local rm -f $(_ER) <br />Execute_04 = local ln -s -f $(DIR_EXECUTABLE)/enrepserver$(FT_EXE) $(_ER) <br />Start_Program_00 = local $(_ER) pf=$(_PF) NR=$(SCSID)<br />  </pre>若要為 Enqueue Replicator 2 重新設定本節：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)變更後，此設定檔區段看起來應該類似以下內容。<pre>#------------------------------------------------------<br />Start enqueue replication server<br />#------------------------------------------------------ <br />_ENQR = enqr.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_01 = local rm -f $(_ENQR) <br />Execute_02 = local ln -s -f $(DIR_EXECUTABLE)/enq_replicator$(FT_EXE) $(_ENQR) <br />Start_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID) <br />… <br />Autostart = 0</pre>`_ENQR` 不得啟用重新啟動選項。如果 `RestartProgram_01` 設定為 `_ENQR`，請將其變更為 `StartProgram_01`。這可防止 SAP 重新啟動服務或干擾叢集管理的服務。 | SAP | 
| 重新啟動 SAP Start Services。 | 變更本史詩先前所述的設定檔後，請重新啟動 ASCS/SCS 和 ERS 的 SAP Start Services。`sapcontrol -nr 10 -function RestartService SCT``sapcontrol -nr 11 -function RestartService SCT`其中 `SCT`是指 SAP 系統 ID，並假設 10 和 11 分別是 ASCS/SCS 和 ERS 執行個體的執行個體編號。 | SAP | 

### 重新設定 ENSA2 的叢集 （兩個案例都需要）
<a name="reconfigure-the-cluster-for-ensa2-required-for-both-scenarios"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 驗證 SAP 資源代理程式中的版本編號。 | 當您使用 SUM 將 SAP 升級到 S/4HANA 1809 或更新版本時，SUM 會處理 SAP 設定檔中的參數變更。只有叢集需要手動調整。不過，我們建議您先驗證參數設定，再對叢集進行任何變更。此史詩中的範例假設您使用的是 SUSE 作業系統。如果您使用的是 RHEL，您將需要使用 YUM 和 **pcs** shell 等工具，而不是 Zypper 和 **crm**。檢查架構中的兩個節點，確認`resource-agents`套件符合 SAP 建議的最低版本。對於 SLES，請檢查 SAP OSS 備註 2641019。對於 RHEL，請檢查 SAP OSS 備註 2641322。(SAP 備註需要 [SAP ONE Support Launchpad 使用者帳戶](https://support.sap.com/en/my-support/knowledge-base.html)。)<pre>sapers:sctadm 23> zypper search -s -i resource-agents<br />Loading repository data...<br />Reading installed packages...<br />S | Name | Type | Version | Arch | Repository<br />--+-----------------+---------+------------------------------------+--------+-----------------------------<br />i | resource-agents | package | 4.8.0+git30.d0077df0-150300.8.28.1 | x86_64 | SLE-Product-HA15-SP3-Updates</pre>視需要更新`resource-agents`版本。 | AWS 系統管理員 | 
| 備份叢集組態。 | 備份 CRM 叢集組態，如下所示。`crm configure show > /tmp/cluster_config_backup.txt` | AWS 系統管理員 | 
| 設定維護模式。 | 將叢集設定為維護模式。`crm configure property maintenance-mode="true"` | AWS 系統管理員 | 
| 檢查叢集組態。 | 檢查目前的叢集組態。`crm configure show`以下是完整輸出的摘錄：<pre>node 1: sapascs<br />node 2: sapers<br />...<br />primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \ <br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10<br />primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true \<br />meta priority=1000<br />...<br />colocation col_sap_SCT_no_both -5000: grp_SCT_ERS11 grp_SCT_ASCS10<br />location loc_sap_SCT_failover_to_ers rsc_sap_SCT_ASCS10 \<br />rule 2000: runs_ers_SCT eq 1<br />order ord_sap_SCT_first_start_ascs Optional: rsc_sap_SCT_ASCS10:start rsc_sap_SCT_ERS11:stop symmetrical=false<br />...</pre>其中 `sapascsvirt`是指 ASCS 執行個體的虛擬主機名稱， `sapersvirt` 是指 ERS 執行個體的虛擬主機名稱，而 `SCT`是指 SAP 系統 ID。 | AWS 系統管理員 | 
| 移除容錯移轉主機代管限制條件。 | 在上述範例中，位置限制條件`loc_sap_SCT_failover_to_ers`指定 ASCS 的 ENSA1 功能在容錯移轉時應一律遵循 ERS 執行個體。使用 ENSA2，ASCS 應該能夠自由容錯移轉至任何參與的節點，因此您可以移除此限制條件。`crm configure delete loc_sap_SCT_failover_to_ers` | AWS 系統管理員 | 
| 調整基本概念。 | 您也需要對 ASCS 和 ERS SAPInstance 基本概念進行次要變更。以下是針對 ENSA1 設定的 ASCS SAPInstance 基本範例。<pre>primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \<br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10</pre>若要升級至 ENSA2，請將此組態變更為以下內容。<pre>primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \<br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=3000 </pre>這是針對 ENSA1 設定的 ERS SAPInstance 基本範例。<pre>primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true \<br />meta priority=1000</pre>若要升級至 ENSA2，請將此組態變更為以下內容。<pre>primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true</pre>您可以透過各種方式變更基本概念。例如，您可以在 vi 等編輯器中修改它們，如下列範例所示。`crm configure edit rsc_sap_SCT_ERS11` | AWS 系統管理員 | 
| 停用維護模式。 | 在叢集上停用維護模式。`crm configure property maintenance-mode="false"`當叢集停止維護模式時，它會嘗試使用新的 ENSA2 設定讓 ASCS 和 ERS 執行個體上線。 | AWS 系統管理員 | 

### （選用） 新增叢集節點
<a name="optional-add-cluster-nodes"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 檢閱最佳實務。 | 在新增更多節點之前，請務必了解最佳實務，例如使用奇數或甚至數量的節點。 | AWS 系統管理員 | 
| 新增節點。 | 新增更多節點涉及一系列任務，例如更新作業系統、安裝符合現有節點的軟體套件，以及提供掛載。您可以使用 SAP 軟體佈建管理員 (SWPM) 中的**準備其他主機**選項來建立主機的 SAP 特定基準。如需詳細資訊，請參閱下一節中列出的 SAP 指南。 | AWS 系統管理員 | 

## 相關資源
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-resources"></a>

**SAP 和 SUSE 參考**

若要存取 SAP Notes，您必須擁有 SAP ONE Support Launchpad 使用者帳戶。如需詳細資訊，請參閱 [SAP 支援網站](https://support.sap.com/en/my-support/knowledge-base.html)。
+ [SAP Note 2501860 ‒ SAP NetWeaver Application Server for ABAP 7.52 文件](https://launchpad.support.sap.com/#/notes/2501860)
+ [SAP Note 2641019 ‒ 在 SUSE HA 環境中安裝 ENSA2 並從 ENSA1 更新至 ENSA2 ](https://launchpad.support.sap.com/#/notes/2641019)
+ [SAP Note 2641322 ‒ 使用適用於 SAP 的 Red Hat HA 解決方案時，安裝 ENSA2 並從 ENSA1 更新至 ENSA2 ](https://launchpad.support.sap.com/#/notes/2641322)
+ [SAP Note 2711036 ‒ 在 HA 環境中使用獨立佇列伺服器 2](https://launchpad.support.sap.com/#/notes/2711036)
+ [獨立 Enqueue Server 2](https://help.sap.com/docs/ABAP_PLATFORM/cff8531bc1d9416d91bb6781e628d4e0/902412f09e134f5bb875adb6db585c92.html) (SAP 文件）
+ [SAP S/4 HANA ‒ 佇列複寫 2 高可用性叢集 - 設定指南](https://documentation.suse.com/sbp/all/html/SAP_S4HA10_SetupGuide-SLE12/index.html) (SUSE 文件）

**AWS 參考**
+ [AWS 上的 SAP HANA：SLES 和 RHEL 的高可用性組態指南](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-on-aws-ha-configuration.html)
+ [SAP Lens - AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html)