SAP NetWeaver 的高可用性架構和案例
詞彙定義
高可用性:指一組技術,該組技術可透過相同資料中心內受備援、容錯或容錯移轉保護的元件,提供 IT 服務的商務持續性,藉此將 IT 中斷的情況降到最低。 在我們的案例中,資料中心位於一個 Azure 區域內。
災害復原:也是指最小化 IT 服務中斷及其復原,但是橫跨彼此相距甚遠的各個資料中心。 在我們的案例中,資料中心可能位於相同地理政治區域或由身為客戶的您所建立之位置的各個 Azure 區域。
高可用性概觀
Azure 中的 SAP 高可用性可以分成三種類型:
Azure 基礎結構高可用性:
例如,高可用性可以包含計算 (VM)、網路、儲存體,以及它在增加 SAP 應用程式可用性方面的優點。
利用 Azure 基礎結構 VM 重新啟動來保護 SAP 應用程式:
如果您決定不要在 Linux 上使用 Windows Server 容錯移轉叢集 (WSFC) 或 Pacemaker 等功能,則會利用 Azure VM 重新啟動。 如果 Azure 實體伺服器基礎結構和整體 Azure 平臺有任何計劃性和非計劃性停機,它會還原 SAP 系統中的功能。
SAP 應用程式高可用性:
若要達到完整 SAP 系統高可用性,您必須保護所有重要的 SAP 系統元件。 例如:
- 備援 SAP 應用程式伺服器。
- 唯一的元件。 範例可能是單一失敗點 (SPOF) 元件,例如 SAP ASCS/SCS 執行個體或資料庫管理系統 (DBMS)。
Azure 中的 SAP 高可用性與內部部署實體或虛擬環境中的 SAP 高可用性有所不同。
沒有適用於Linux的 sapinst 整合式 SAP 高可用性設定,因為適用於 Windows。 如需有關 Linux 適用之內部部署 SAP 高可用性的詳細資訊,請參閱高可用性夥伴資訊。
Azure 基礎結構高可用性
單一執行個體虛擬機器的 SLA
目前具有進階記憶體的單一 VM SLA 為 99.9%。 若要了解單一 VM 可用性的概念,您可以建立不同可用 Azure 服務等級協定的乘積。
計算基礎是每個月 30 天 (或 43,200 分鐘)。 例如,0.05% 停機時間會對應至 21.6 分鐘。 像往常一樣,不同服務的可用性會以下列方式計算︰
(可用性服務 #1/100) x (可用性服務 #2/100) x (可用性服務 #3/100) *...
例如:
(99.95/100) x (99.9/100) x (99.9/100) = 0.9975 或整體可用性為 99.75%。
同一可用性設定組中虛擬機器的多個執行個體
針對在相同 可用性設定組中部署兩個或多個實例的所有虛擬機,我們保證您至少有一個實例的虛擬機連線時間至少為99.95%。
當兩 (含) 個以上 VM 是同一可用性設定組的一部分時,基礎 Azure 平台會為可用性設定組中的每部虛擬機器指派一個更新網域和一個容錯網域。
- 更新網域 可確保在 Azure 基礎結構的計劃性維護期間,不會同時重新啟動多個 VM。 一次只能將一個 VM 重新開機。
- 容錯網域 保證 VM 部署在未共用通用電源和網路交換器的硬體元件上。 當伺服器、網路交換器或電源遭遇非預期停機時,只有一個 VM 會受到影響。
如需詳細資訊,請參閱 使用可用性設定組管理 Azure 中的虛擬機可用性。
Azure 可用性區域
Azure 正在在整個不同的 Azure 區域推出 Azure 可用性區域 概念。 有提供可用性區域的 Azure 區域會有多個資料中心,而這些資料中心與電力來源、冷卻及網路無關。 之所以在單一 Azure 區域 (region) 中提供不同區域 (zone),是要讓您可跨兩個或三個所提供的可用性區域來部署應用程式。 假設電力來源和/或網路中的問題只會影響一個可用性區域基礎結構,那麼 Azure 區域內的應用程式部署仍然可完全正常運作。 由於可能會失去單一區域內的一些 VM,因此最後會造成部分產能降低。 但其他兩個區域中的 VM 仍舊會繼續執行。 Azure 可用性區域會列出提供可用性區域的 Azure 區域。
使用 可用性區域 時,需要考慮一些事項。 考量清單如下:
- 您無法在可用性區域內部署 Azure 可用性設定組。 合併「可用性」設定組和「可用性」區域的唯一可能性是使用鄰近放置群組。 如需詳細資訊,請參閱結合可用性設定組和可用性區域與鄰近放置群組一文。
- 您無法使用基本 Load Balancer,來建立以 Windows 容錯移轉叢集服務或 Linux Pacemaker 為基礎的容錯移轉叢集解決方案。 相反地,您需要使用 Azure Standard Load Balancer SKU。
- Azure 可用性區域 不會保證一個區域內不同區域之間的特定距離。
- 在不同 Azure 區域內的不同 Azure 可用性區域之間,網路延遲可能會隨著所在的 Azure 區域而有所不同。 在某些情況下,您作為客戶可以合理地執行跨不同區域部署的SAP應用層,因為從一個區域到作用中 DBMS VM 的網路等待時間仍可從商務程序影響中接受。 而在某些情況下,在某個區域中的作用中 DBMS VM 與另一個區域中 VM 中的 SAP 應用程式實例之間的延遲可能太侵入性,而且 SAP 商務程式無法接受。 因此,如果延遲太久,部署架構就必須與應用程式的主動/主動架構不同,或與主動/被動架構不同。
- 使用 Azure 受控磁碟是部署至 Azure 可用性區域 的必要專案。
具有彈性協調流程的虛擬機擴展集
在 Azure 中,虛擬機器擴展集 彈性協調流程提供一種方法來達到 SAP 工作負載的高可用性,就像可用性設定組和可用性區域等其他部署架構一樣。 透過彈性擴展集,VM 可以分散到各種可用性區域和容錯網域,使其成為部署高可用性 SAP 工作負載的適當選項。
具有彈性協調流程的虛擬機擴展集可讓您彈性地在區域內建立擴展集,或跨越可用性區域。 建立具有 platformFaultDomainCount>1 (FD>1) 的區域內的彈性擴展集時,擴展集中部署的 VM 會分散於相同區域中指定的容錯網域數目。 另一方面,使用 platformFaultDomainCount=1 跨可用性區域建立彈性擴展集(FD=1)會將 VM 分散到不同區域,而擴展集也會 以最佳方式將 VM 分散到每個區域內的不同容錯網域。 僅支援具有 FD=1 的 SAP 工作負載彈性擴展集。
使用 FD=1 的彈性擴展集進行跨區域部署 (而不是傳統可用性區域部署) 的優點,就是使用擴展集部署的 VM 會以最佳方式分散到區域內的不同容錯網域。 為了避免使用 鄰近放置群組 來確保所有 Azure 資料中心或每個網路脊椎下的 VM 可用性相關的限制,建議您使用具有 FD=1 的彈性擴展集,跨可用性區域部署 SAP 工作負載。 此部署策略可確保在每個區域中部署的 VM 不會限製為單一資料中心或網路脊椎,而且所有 SAP 系統元件,例如資料庫、ASCS/ERS 和應用層的範圍都在區域層級。
因此,針對跨可用性區域的新 SAP 工作負載部署,建議您搭配 FD=1 使用彈性擴展集。 如需詳細資訊,請參閱 SAP 工作負載 的虛擬機擴展集檔。
虛擬機器的規劃和未規劃維護
兩種類型的 Azure 平台事件會影響虛擬機器的可用性:
- 規劃的維護事件是由 Microsoft 對基礎 Azure 平台執行的定期更新。 更新會改善您的虛擬機器在其上執行之平台基礎結構的整體可靠性、效能和安全性。
- 未規劃的維護事件會在虛擬機器中的硬體或實體基礎結構產生某些方面的錯誤時發生。 這可能包含本機網路錯誤、本機磁碟錯誤,或其他機架層級的錯誤。 Azure 平台會在偵測到此類錯誤時,自動從裝載虛擬機器且狀況不良的實體伺服器,將虛擬機器移轉至狀況良好的實體伺服器。 這類事件非常稀少,但可能會導致虛擬機器重新啟動。
如需詳細資訊,請參閱 在 Azure 中維護虛擬機。
Azure 儲存體複寫
儲存體帳戶中的資料一律會進行複寫以確保持久性及高可用性,即使在面對暫時性的硬體故障時,仍可滿足 Azure 儲存體 SLA。
因為 Azure 儲存體預設會保留資料的三個映像,所以不需要跨多個 Azure 磁碟使用 RAID 5 或 RAID 1。
如需詳細資訊,請參閱 Azure 儲存體複寫。
Azure 受控磁碟
受控磁碟 是 Azure Resource Manager 中的資源類型,是建議的記憶體選項,而不是儲存在 Azure 記憶體帳戶中的虛擬硬碟(VHD)。 受控磁碟會自動與所連結虛擬機的 Azure 可用性設定組一致。 它們會增加虛擬機器和在其上執行之服務的可用性。
如需詳細資訊,請參閱 Azure 受控磁碟概觀。
由於受控磁碟可以簡化虛擬機器的部署和管理,因此建議您使用受控磁碟。
SAP 工作負載的不同部署類型比較
以下是適用於 SAP 工作負載的各種部署類型快速摘要。
功能 | 具有彈性協調流程的虛擬機擴展集 (FD=1) | 可用性區域 | 可用性設定組 |
---|---|---|---|
部署行為 | 實例會跨 1、2 或 3 個可用性區域登陸,並盡最大努力分散在每個區域內的不同機架 | 實例跨越 1、2 或 3 個可用性區域 | 實例會落在區域內,並分散到不同的容錯/更新網域 |
將 VM 和受控磁碟指派給特定可用性區域 | Yes | .是 | No |
容錯網域 - 最大傳播量 (Azure 會以最大方式分散實例) | 是 | No | 是,根據建立期間定義的容錯網域數目。 |
計算到記憶體容錯網域對齊 | No | 無 | Yes |
容量保留 | 是(在 VM 層級指派容量保留區) | 是 | No |
注意
- 在彈性協調流程模式中,更新網域已被取代。 如需詳細資訊,請參閱將部署和資源遷移至彈性協調流程中的 虛擬機器擴展集
- 如需計算到記憶體容錯網域對齊的詳細資訊,請參閱 為虛擬機擴展集 選擇正確的容錯網域數目和 可用性設定組的運作方式?。
- 若要啟用容量保留,請務必檢查容量保留的限制。
SAP 工作負載的高可用性部署選項
在 Azure 上部署高可用性 SAP 工作負載時,務必考慮各種可用的部署類型,以及如何跨不同 Azure 區域套用它們 (例如跨區域、在單一區域,或在沒有區域的區域中)。 下表說明 Azure 區域中 SAP 系統的數個高可用性選項。
系統類型 | 跨區域的不同區域 | 在區域的唱歌區域中 | 在沒有區域的區域中 |
---|---|---|---|
高可用性 SAP 系統 | 使用 FD=1 的彈性擴展集 | 具有鄰近放置群組的可用性設定組 | 可用性設定組 |
具有鄰近放置群組的可用性設定組和 可用性區域 | 具有 FD=1 的彈性擴充集(僅選取區域) | 具有 FD=1 的彈性擴充集(未定義任何區域) | |
可用性區域 | 可用性設定組 |
- 在區域中的不同區域部署: 為了達到最高可用性,SAP 系統應該部署在區域中的不同區域。 這可確保如果某個區域無法使用,SAP 系統會繼續在另一個區域中使用。 如果您要跨可用性區域部署新的 SAP 工作負載,建議您使用具有 FD=1 部署選項的彈性虛擬機擴展集。 它可讓您跨區域中的不同區域部署多個 VM,而不必擔心容量限制或放置群組。 擴展集架構可確保使用擴展集部署的 VM 會以最佳方式分散到區域內的不同容錯網域。 所有高可用性 SAP 元件,例如 SAP ASCS/ERS、SAP 資料庫會分散到不同的區域,而每個區域中的多個應用程式伺服器都會以最佳方式分散到不同的容錯網域。
- 在區域的單一區域中部署: 若要在具有多個可用性區域的位置區域部署高可用性 SAP 系統,而且如果系統的所有元件都必須位於單一區域中,建議您使用可用性設定組搭配鄰近放置群組部署選項。 這種方法可讓您將單一可用性區域中的所有 SAP 系統元件分組,確保可用性設定組中的虛擬機分散到不同的容錯和更新網域。 雖然此部署會讓計算與記憶體容錯網域保持一致,但不保證鄰近性。 不過,由於此部署選項為區域,因此不支援 Azure Site Recovery 進行區域對區域災害復原。 此外,此選項會將整個SAP部署限制為一個資料中心,如果您需要變更SKU大小或向外延展應用程式實例,可能會導致容量限制。
- 在沒有區域的區域部署: 如果您要在沒有區域的區域部署 SAP 系統,建議您使用可用性設定組。 此選項藉由將 VM 放在不同的容錯網域和更新網域,以提供備援和容錯。
重要
請注意,Azure 區域的部署選項只是建議。 SAP 系統最適合的部署策略將取決於您的特定需求和環境。
利用 Azure 基礎結構高可用性來保護 SAP 應用程式
如果您決定不使用Linux上的WSFC或 Pacemaker 等功能(支援SUSE Linux Enterprise Server 12 和更新版本,以及 Red Hat Enterprise Linux 7 和更新版本),則會使用 Azure VM 重新啟動。 如果 Azure 實體伺服器基礎結構和整體 Azure 平臺有任何計劃性和非計劃性停機,它會還原 SAP 系統中的功能。
如需方法的詳細資訊,請參閱 利用 Azure 基礎結構 VM 重新啟動來達到 SAP 系統的更高可用性。
Azure IaaS 上 SAP 應用程式的高可用性
若要達到完整 SAP 系統高可用性,您必須保護所有重要的 SAP 系統元件。 例如:
- 備援 SAP 應用程式伺服器。
- 唯一的元件。 範例可能是單一失敗點 (SPOF) 元件,例如 SAP ASCS/SCS 執行個體或資料庫管理系統 (DBMS)。
以下章節討論如何對所有三個重要 SAP 系統元件達到高可用性。
SAP 應用程式伺服器的高可用性結構
Windows 與 Linux
對於 SAP 應用程式伺服器和對話方塊執行個體,您通常不需要特定的高可用性解決方案。 您可以透過備援來達成高可用性,而且您會在 Azure 虛擬機器之不同的執行個體中,設定多個對話方塊執行個體。 您應該至少要有兩個 SAP 應用程式執行個體安裝在 Azure 虛擬機器的兩個執行個體中。
根據部署類型(具有 FD=1 的彈性擴展集、可用性區域或可用性設定組),您必須據以散發 SAP 應用程式伺服器實例,以達到備援。
- 使用 platformFaultDomainCount=1 的彈性擴展集(FD=1): 使用彈性擴展集部署的 SAP 應用程式伺服器 (FD=1) 會將虛擬機分散到不同的可用性區域,而擴展集也會以最佳努力將 VM 分散到每個區域內的不同容錯網域。 這可確保如果某個區域無法使用,部署在另一個區域中的 SAP 應用程式伺服器仍可繼續使用。
- 可用性區域: 跨可用性區域部署的 SAP 應用程式伺服器可確保 VM 跨越不同的區域,以達到備援。 這可確保如果某個區域無法使用,部署在另一個區域中的 SAP 應用程式伺服器仍可繼續使用。 如需詳細資訊,請參閱使用 Azure 可用性區域 的 SAP 工作負載設定
- 可用性設定組: 部署在可用性設定組中的 SAP 應用程式伺服器可確保 VM 分散到不同的 容錯網域 和 更新網域。 將 VM 放在不同的更新網域上時,請確定 VM 不會在計劃性維護停機期間同時更新。 然而,將 VM 放在不同的容錯網域可確保 VM 受到保護,以免資料中心內發生硬體故障或電源中斷。 但是,您可以在 Azure 縮放單位內的 Azure 可用性設定組中使用的容錯和更新網域數目是有限的。 如果您持續將 VM 新增至單一可用性設定組,則兩個以上的 VM 最終會位於相同的容錯或更新網域中。 如需詳細資訊,請參閱 SAP NetWeaver 文件之 Azure 虛擬機器規劃和實作的 Azure 可用性設定組一節。
僅限非受控磁碟: 搭配可用性設定組使用非受控磁碟時,請務必辨識 Azure 記憶體帳戶變成單一失敗點。 因此,必須提供至少兩個 Azure 記憶體帳戶,其中至少要散發兩部虛擬機。 在理想的設定中,執行 SAP 對話方塊執行個體的每一個虛擬機器磁碟會部署在不同的儲存體帳戶中。
重要
我們強烈建議您針對 SAP 高可用性安裝使用 Azure 受控磁碟。 因為受控磁碟會針對所連接的虛擬機器,自動配合其可用性設定組,提高了虛擬機器和其上所執行服務的可用性。
Windows 上 SAP ASCS/SCS 執行個體的高可用性架構
Windows
您可以使用 WSFC 解決方案來保護 SAP ASCS/SCS 執行個體。 根據叢集共享組態的類型(檔案共用或共用磁碟),您可以根據您的記憶體類型來參考適當的解決方案。
叢集共用 - 檔案共用
- 在 Azure 檔案儲存體 上使用SMB的S/SCS實例高可用性。
- 在 Azure NetApp Files 上使用 SMB 的 SAP ASCS/SCS 實例高可用性。
- 使用向外延展文件伺服器 (SOFS) 的 SAP ASCS/SCS 實例高可用性。
叢集共用 - 共用磁碟
- 使用 Azure 共用磁碟的 SAP ASCS/SCS 實例高可用性。
- 使用 SIOS 的 SAP ASCS/SCS 實例高可用性。
Linux 上 SAP ASCS/SCS 執行個體的高可用性架構
Linux
在Linux上,SAP ASCS/SCS 實例叢集的組態取決於作業系統散發和所使用的記憶體類型。 建議您根據特定的OS叢集架構來實作適當的解決方案。
SUSE Linux Enterprise Server (SLES)
- 使用 NFS 搭配簡單掛接的 SAP ASCS/SCS 實例高可用性。
- 在 Azure 檔案儲存體 上使用 NFS 的 SAP ASCS/SCS 實例高可用性。
- 在 Azure NetApp Files 上使用 NFS 的 SAP ASCS/SCS 實例高可用性。
- 使用 NFS Server 的 SAP ASCS/SCS 實例高可用性。
Red Hat Enterprise Linux (RHEL)
- 在 Azure 檔案儲存體 上使用 NFS 的 SAP ASCS/SCS 實例高可用性。
- 在 Azure NetApp Files 上使用 NFS 的 SAP ASCS/SCS 實例高可用性。
叢集 SAP ASCS/SCS 執行個體的 SAP NetWeaver 多重 SID 設定
Window
WSFC 支援多重 SID (使用檔案共用和共用磁碟)。 如需 Windows 上多重 SID 高可用性架構的詳細資訊,請參閱:
- 檔案共用: Windows Server 故障轉移叢集和檔案共用的 SAP ASCS/SCS 實例多重 SID 高可用性。
- 共用磁碟: 適用於 Windows Server 故障轉移叢集和共用磁碟的 SAP ASCS/SCS 實例多重 SID 高可用性。
Linux
SAP ASCS/ERS 的 Linux Pacemaker 叢集支援多重 SID 群集 (在相同叢集上限制只能有五個 SAP SID)。 如需 Linux 上多重 SID 高可用性架構的詳細資訊,請參閱:
- SUSE Linux Enterprise Server (SLES): SLES for SAP applications multi-SID 指南上適用於 Azure VM 上的 SAP NW HA。
- Red Hat Linux Enterprise (RHEL): RHEL for SAP applications multi-SID 指南上的 Azure VM 上適用於 SAP NW 的 HA。
DBMS 實例的高可用性
在 SAP 系統中,DBMS 伺服器也會作為單一失敗點。 因此,請務必實作高可用性解決方案來保護資料庫。 DBMS 的高可用性解決方案會根據 SAP 系統所使用的資料庫而有所不同。 根據您的資料庫,遵循指導方針來達到資料庫的高可用性。
Database | 災害復原建議 |
---|---|
SAP HANA | HANA 系統複寫 (HSR) (機器翻譯) |
Oracle | Oracle Data Guard (英文) |
IBM DB2 | 高可用性和災害復原 (HADR) (機器翻譯) |
Microsoft SQL | Microsoft SQL Always On (機器翻譯) |
SAP ASE | ASE HADR Always On (英文) |