適用於 SAP 工作負載的 Azure 虛擬機器 DBMS 部署的考量因素
本指南是說明如何在 Microsoft Azure 上實作和部署 SAP 軟體的部分文件。 在閱讀本指南之前,請先閱讀計劃和實作指南,以及計劃指南為您推薦的文章。 本文件說明如何使用 Azure 基礎結構即服務 (IaaS) 功能,在 Microsoft Azure 虛擬機器 (VM) 上部署 SAP 相關 DBMS 系統的一般內容。
本報告會補充說明 SAP 安裝文件和 SAP 附註,這兩份文件是在指定平台上安裝和部署 SAP 軟體的主要資源。
本文件說明在 Azure VM 中執行 SAP 相關 DBMS 系統的考量。 本文件有幾個特定 DBMS 系統的參考資料。 相反地,特定 DBMS 系統會在其他資料庫系統特定文件中處理。
資源
Azure 提供其他有關 SAP 工作負載的文章。 從 Azure 上的 SAP 工作負載:開始使用 (部分機器翻譯) 開始,然後選擇感興趣的區域。
下列 SAP 附註在本文件所討論的領域上與 Azure 上的 SAP 有關。
附註編號 | 標題 |
---|---|
1928533 | Azure 上的 SAP 應用程式︰支援的產品和 Azure VM 類型 |
2015553 | Microsoft Azure 上的 SAP:支援必要條件 |
1999351 | 對適用於 SAP 的增強型 Azure 監視功能進行疑難排解 |
2178632 | Microsoft Azure 上適用於 SAP 的主要監視度量 |
1409604 | Windows 上的虛擬化︰增強型監視功能 |
2191498 | Linux 上搭配 Azure 的 SAP:增強型監視功能 |
2039619 | Microsoft Azure 上使用 Oracle 資料庫的 SAP 應用程式︰支援的產品和版本 |
2233094 | DB6︰Azure 上使用 Linux、UNIX 和 Windows 版 IBM DB2 的 SAP 應用程式 - 其他資訊 |
2243692 | Microsoft Azure (IaaS) VM 上的 Linux:SAP 授權問題 |
2578899 | SUSE Linux Enterprise Server 15:安裝注意事項 |
1984787 | SUSE LINUX Enterprise Server 12:安裝注意事項 |
2772999 | Red Hat Enterprise Linux 8.x:安裝和設定 |
2002167 | Red Hat Enterprise Linux 7.x:安裝和升級 |
2069760 | Oracle Linux 7.x SAP 安裝和升級 |
1597355 | 適用於 Linux 的交換空間建議 |
2799900 | Oracle Database 19c 中央技術注意事項 |
2171857 | Oracle Database 12c:Linux 上的檔案系統支援 |
1114181 | Oracle Database 11g:Linux 上的檔案系統支援 |
2969063 | Azure 上的 HCMT 微碼驗證失敗 |
3246210 | Azure - HCMT 在某些磁碟效能測試期間失敗 |
如需所有適用於 Linux 的 SAP 附註相關資訊,請參閱 SAP 社區 Wiki。
您需要有關 Microsoft Azure 架構以及如何部署與操作 Microsoft Azure 虛擬機器的有效知識。 如需詳細資訊,請參閱 Azure 文件。
一般而言,Windows、Linux 和 DBMS 的安裝和設定基本上與要安裝內部部署的任何虛擬機器或裸機機器相同。 但有一些架構和系統管理實作決策,與使用 Azure IaaS 時不同。 本文件會說明使用 Azure IaaS 時,您必須準備面對的特定架構和系統管理差異。
用於 RDBMS 部署的 VM 儲存體結構
為遵循本章內容,請閱讀並了解下列文章所提供的資訊:
- SAP NetWeaver 的 Azure 虛擬機器規劃和實作指南
- SAP 工作負載的 Azure 儲存體類型
- Azure 部署支援哪些 SAP 軟體
- Azure 虛擬機器支援案例上的 SAP 工作負載 \(部分機器翻譯\)
針對 Azure 區塊儲存體,必須使用 Azure 受控磁碟。 如需 Azure 受控磁碟的詳細資訊,請參閱 Azure VM 的受控磁碟簡介一文。
基本設定通常建議以下的部署結構:作業系統、DBMS 和與資料庫檔案分隔開的最終 SAP 二進位檔。 我們建議針對下列情況使用 Azure 磁碟:
- 作業系統 (基底 VHD 或 OS VHD)
- 資料庫管理系統可執行檔
- 如 /usr/sap 等 SAP 可執行檔
- DBMS 資料檔案
- DBMS 重做記錄檔
此設定會將這些元件分成五個不同的磁碟區,這可提升復原能力,因為只要未超過 VM 儲存體配額和限制,對一個磁碟區過度使用不一定會干擾其他磁碟區的使用。
DBMS 資料和交易/重做記錄檔會儲存在 Azure 支援區塊儲存體或 Azure NetApp Files。 針對含有 SAP 工作負載的 DBSM 資料和/或重做記錄檔,Azure 檔案儲存體或 Azure 進階檔案不支援作為儲存體。 其會儲存在不同的磁碟中,並以邏輯磁碟形式連接到原始的 Azure 作業系統映像 VM。 針對 Linux 部署,已記錄不同的建議。 閱讀適用於 SAP 工作負載的 Azure 儲存體類型一文,以針對您的案例,了解不同儲存體類型的功能和支援。 特別針對 SAP HANA,請從 SAP HANA Azure 虛擬機器儲存體設定 (部分機器翻譯) 一文開始。
當規劃磁碟配置時,請找出這些項目之間的最佳平衡:
- 資料檔案數量。
- 包含檔案的磁碟數目。
- 單一磁碟或 NFS 共用的 IOPS 配額。
- 每個磁碟或 NFS 共用的資料輸送量。
- 每個 VM 大小可能的額外資料磁碟數目。
- VM 可提供的整體儲存體或網路輸送量。
- 不同的 Azure 儲存體類型可以提供的延遲。
- VM 儲存體 IOPS 和輸送量配額。
- VM 儲存體配額 (如果您使用 NFS) - NFS 共用的流量會計入 VM 的網路配額,而不會計入儲存體配額。
- VM SLA。
Azure 會強制執行每個資料磁碟或 NFS 共用的 IOPS 配額。 對於裝載在不同 Azure 區塊儲存體解決方案或共用上的磁碟,這些配額是不同的。 這些不同儲存體類型之間的 I/O 延遲亦不相同。
VM 類型不同,可連接的資料磁碟數目限制也各不相同。 另一個限制是僅特定 VM 類型可使用,例如進階儲存體。 一般是根據 CPU 和記憶體需求來決定使用某種 VM 類型。 您也必須考慮 IOPS、延遲及磁碟輸送量需求,這些通常會隨磁碟數目或進階儲存體磁碟 v1 類型而調整。 每個磁碟所要達到的 IOPS 數目和輸送量可能會決定磁碟大小,特別是使用進階儲存體 v1 時。 使用進階儲存體 v2 或 Ultra 磁碟時,您可選取佈建的 IOPS 和輸送量,不論磁碟容量為合。
注意
對於 DBMS 部署,我們強烈建議為任何資料、交易記錄或重做檔案,提供 Azure 進階儲存體 (v1 和 v2)、Ultra 磁碟或 Azure NetApp Files 的 NFS 共用。 無論想要部署生產或非生產系統都沒有差別。 任何類型的生產系統都無法接受 Azure 標準 HDD 或 SSD 的延遲。
注意
若要最大化 Azure 的單一 VM SLA,所有連接的磁碟都必須是 Azure 進階儲存體 (v1 或 v2) 或 Azure Ultra 磁碟類型,其中包括基底 VHD (Azure 進階儲存體)。
注意
不支援在與 Azure 資料中心相鄰其共置第三方資料中心的儲存體硬體上託管 SAP 資料庫主要資料庫檔案,例如資料和記錄檔。 透過裝載於 Azure VM 的軟體設備提供的儲存體,於此使用案例中亦不受支援。 針對 SAP DBMS 工作負載,SAP 資料庫的資料和交易記錄檔一般僅支援表示為原生 Azure 服務的儲存體。 不同的 DBMS 可能會支援不同的 Azure 儲存體類型。 如需詳細資訊,請參閱 SAP 工作負載的 Azure 儲存體類型一文
您使用的資料庫檔案和記錄/重做檔案位置以及 Azure 儲存體類型,都會依 IOPS、延遲和輸送量需求定義。 具體而言,為了讓 Azure 進階儲存體 v1 達成足夠的 IOPS,您可能不得不使用多個磁碟或使用更大的進階儲存體磁碟。 如果使用多個磁碟,請建置跨多個磁碟的軟體等量磁碟區,其包含資料檔案或記錄/重做檔案。 在這類情況下,基礎進階儲存體磁碟的 IOPS 和磁碟輸送量,或標準儲存體磁碟的最大可達成 IOPS,都會針對所產生的等量磁碟區組累加。
如果 IOPS 需求超過單一 VHD 的負荷,則需要平衡跨多個 VHD 的資料庫檔案所需 IOPS。 將 IOPS 負載分散於各磁碟的最簡單方式,就是在不同的磁碟上建置軟體等量磁碟區。 然後在劃分出軟體等量磁碟區的 LUN 上放置多個 SAP DBMS 的資料檔。 等量磁碟區中的磁碟數目取決於 IOPS 需求、磁碟輸送量需求,以及磁碟區需求。
Windows
建議使用 Windows 儲存空間來建立跨多個 Azure VHD 的等量磁碟區組。 版本至少為 Windows Server 2012 R2 或 Windows Server 2016。
Linux
只支援使用 MDADM 和邏輯磁碟區管理員 (LVM) 在 Linux 上建立軟體 RAID。 如需詳細資訊,請參閱
- 使用 MDADM 在 Linux 上設定軟體 RAID (機器翻譯)
- 使用 LVM 在 Azure 中的 Linux VM 上設定 LVM
針對 Azure 進階儲存體 v2 和 Ultra 磁碟,串接可能非必要,因為您可以定義 IOPS 和磁碟輸送量,不受磁碟大小影響。
注意
因為 Azure 儲存體會保留三個 VHD 映像,所以在建立等量磁碟區時沒必要設定備援。 您只需要設定等量磁碟區,讓 I/O 分散到不同的 VHD 即可。
受控或非受控磁碟
Azure 儲存體帳戶是系統管理建構,也是限制的緣由。 如需功能和限制的相關資訊,請參閱Azure 儲存體的可擴縮性和效能目標 (機器翻譯)。 請記住標準儲存體對每個儲存體帳戶都有 IOPS 限制。 請參閱 Azure 儲存體的可擴縮性和效能目標 (機器翻譯) 一文中包含總要求率的資料列。 每個 Azure 訂閱也有儲存體帳戶數目的初始限制。 自 2017 年起,Azure 導入 Azure 受控磁碟的概念,可協助您處理儲存體帳戶的管理。 預設使用 Azure 受控磁碟以在 Azure 中部署 SAP 工作負載。
重要
考慮到 Azure 受控磁碟的優點,一般必須在 DBMS 部署和 SAP 部署時使用 Azure 受控磁碟。
當您剛好有尚未使用受控磁碟的 SAP 工作負載時,若要從未受控磁碟轉換為受控磁碟,請參閱:
- 將 Windows 虛擬機器從非受控磁碟轉換成受控磁碟 (機器翻譯)。
- 將 Linux 虛擬機器從非受控磁碟轉換成受控磁碟 (機器翻譯)。
VM 和資料磁碟的快取
當將磁碟掛接到 VM 時,可選擇是否快取在 VM 與位於 Azure 儲存體磁碟間的 I/O 流量。
下列建議假設標準 DBMS 的 I/O 具有以下特性:
- 主要是針對資料庫資料檔案的讀取工作負載。 這些讀取對 DBMS 系統的效能有重大影響。
- 根據檢查點或持續串流,以針對資料檔案的寫入會發生高載。 平均超過一天,寫入次數就會少於讀取次數。 相對於來自資料檔案的讀取,這些寫入為非同步,且不會造成任何使用者交易延遲。
- 幾乎不會從交易記錄或重做檔案進行任何讀取。 例外狀況是在執行交易記錄備份時會有大量 I/O。
- 交易或重做記錄檔的主要負載是寫入。 根據工作負載的性質而定, I/O 可小到 4 KB,但在其他情況下,I/O 大小也可以大到 1 MB 或更大。
- 所有寫入都必須以可靠的方式保存在磁碟上。
針對 Azure 進階儲存體 v1,提供下列快取選項:
- 無
- 參閱
- 讀取/寫入
- 無 + 寫入加速器,僅適用於 Azure M 系列 VM
- 讀取 + 寫入加速器,僅適用於 Azure M 系列 VM
針對進階儲存體 v1,建議使用 SAP 資料庫的 [資料檔案讀取快取],並選擇 [No caching for the disks of log file] (不快取記錄檔磁碟)。
注意
使用一些新的 M(b)v3 VM 類型時,讀取快取的進階 SSD v1 儲存器使用量可能會導致讀取和寫入 IOPS 速率和輸送量低於您不使用讀取快取時得到的輸送量。
針對 M 系列部署,建議僅對記錄檔的磁碟使用 Azure 寫入加速器。 如需 Azure 寫入加速器的詳細資料、限制和部署,請參閱啟用寫入加速器 (機器翻譯)。
針對進階儲存體 v2、Ultra 磁碟和 Azure NetApp Files,並無提供任何快取選項。
Azure 非永久性磁碟
Azure VM 會在部署 VM 之後提供非永久性磁碟。 如果 VM 重新開機,將會抹除這些磁碟機上的所有內容。假設在任何情況下,資料庫的資料檔和記錄/重做檔都不得位於這些非永久性磁碟機上。 有些資料庫可能會出現一些非永久性磁碟機適用於 tempdb 和暫存資料表空間例外狀況。
如需詳細資訊,請參閱了解 Windows Azure VM 上的暫存磁碟機 (英文)。
Windows
Azure VM 的 D 磁碟機是非永久性磁碟機,其支援 Azure 計算節點上的一些本機磁碟。 因為是非永久性的磁碟機,所以當 VM 重新開機時,D 磁碟機會遺失所有的內容變更。 這些變更包括曾經儲存的檔案、曾經建立的目錄,以及曾經安裝的應用程式。
Linux
Linux Azure VM 會在 /mnt/resource 自動掛接磁碟機,Azure 計算節點上的許多本機磁碟支援這個非永久性的磁碟機。 因為是非永久性的磁碟機,所以當 VM 重新開機時,/mnt/resource 中的所有內容變更都會遺失。 這些變更包括曾經儲存的檔案、曾經建立的目錄,以及曾經安裝的應用程式。
Microsoft Azure 儲存體復原
Microsoft Azure 儲存體會將基底 VHD 和 OS 以及連接的磁碟或 BLOB 一起儲存在至少 3 個不同儲存體節點上。 這種類型的儲存體稱為本機備援儲存體 (LRS)。 LRS 是 Azure 中所有儲存體類型的預設值。
還有其他的備援方法。 如需詳細資訊,請參閱 Azure 儲存體複寫。
注意
Azure 進階儲存體 v1 和 v2、Ultra 磁碟和 Azure NetApp Files 是 DBMS VM 及儲存資料庫、記錄和重做檔案磁碟的建議儲存體類型。 除了進階儲存體 v1,這些儲存體類型唯一可用的備援方法是 LRS。 因此,您必須設定資料庫方法,讓資料庫資料能複寫到另一個 Azure 區域或可用性區域。 資料庫方法包括 SQL Server Always On、Oracle Data Guard 及 HANA System Replication。
VM 節點復原
Azure 會為 VM 提供數個不同的 SLA。 如需詳細資訊,請參閱最新版的虛擬機器 SLA。 因為 DBMS 層對於 SAP 系統中的可用性至關重要,因此您必須瞭解 不同的部署類型和 維護事件。 如需這些概念的詳細資訊,請參閱 管理 Azure 中虛擬機的可用性。
針對包含 SAP 工作負載的生產 DBMS 案例,最低建議如下:
- 使用 相同 Azure 區域中所選的部署類型 來部署兩部 VM。
- 在相同 Azure 虛擬網路中執行這兩部 VM,並連接出自同一子網路的 NIC。
- 使用資料庫方法讓第二部 VM 保持熱待命。 方法可以是 SQL Server Always On、Oracle Data Guard 或 HANA System Replication。
您也可以在另一個 Azure 區域中部署第三部 VM,使用相同的資料庫方法在另一個 Azure 區域中提供非同步複本。
Azure 網路考量事項
在大規模的 SAP 部署中,請使用 Azure 虛擬資料中心藍圖。 將此藍圖用於虛擬網路設定以及組織不同單位的權限和角色指派。
這些最佳做法是數千位客戶部署的結果:
- SAP 應用程式部署所在的虛擬網路無法存取網際網路。
- 資料庫 VM 會在與應用程式層相同的虛擬網路中執行,與 SAP 應用程式層分隔在不同的子網路中。
- 虛擬網路內 VM 具有私人 IP 位址的靜態配置。 如需詳細資訊,請參閱 Azure 中的 IP 位址類型及配置方法。
- DBMS VM 的往返路由限制「不會」與安裝在本機 DBMS VM 上的防火牆一起設定。 流量路由反而會與 網路安全性群組 (NSG) (機器翻譯) 一起定義。
- 若要將流量分開並隔離到 DBMS VM,請將不同的 NIC 指派給 VM。 每個 NIC 都會取得不同 IP 位址,且每個 NIC 會指派給不同的虛擬網路子網路。 每個子網路都有不同的 NSG 規則。 隔離或分開網路流量是一種測量路由的方法。 不會用來設定網路輸送量配額。
注意
透過 Azure 指派靜態 IP 位址,表示將這些位址指派給個別的虛擬 NIC。 請不要將客體 OS 內的靜態 IP 位址指派給虛擬 NIC。 某些 Azure 服務 (例如 Azure 備份) 依賴客體作業系統中的主要虛擬 NIC 至少設為 DHCP,而不是設為靜態 IP 位址。 如需詳細資訊,請參閱針對 Azure 虛擬機器的備份進行疑難排解。 若要將多個靜態 IP 位址指派給 VM,請將多個虛擬 NIC 指派給 VM。
警告
不支援在 SAP 應用程式與 SAP NetWeaver、Hybris 或 S/4HANA 型 SAP 系統的 DBMS 層之間的通訊路徑中設定網路虛擬設備。 因功能和效能原因而有此限制。 SAP 應用程式層和 DBMS 層之間必須有直接的通訊路徑。 如果 ASG 和 NSG 規則允許直接通訊路徑,此限制即不包括這些應用程式安全性群組 (ASG) 和 NSG 規則。 這也包含裝載 DBMS 資料和重做記錄檔的 NFS 共用流量。
其他不支援網路虛擬設備的案例出現在:
- Azure VM 之間的通訊路徑,這些 VM 代表 Linux Pacemaker 叢集節點與 SBD 裝置,如 SAP NetWeaver 在適用於 SAP 應用程式的 SUSE Linux Enterprise Server 上 Azure VM 高可用性中所述。
- Azure VM 與 Windows Server 向外延展檔案伺服器 (SOFS) 之間的通訊路徑,其設定如在 Azure 中使用檔案共用於 Windows 容錯移轉叢集上進行 SAP ASCS/SCS 執行個體叢集處理中所述。
通訊路徑中網路虛擬設備可輕鬆加倍兩個通訊合作夥伴之間的網路延遲。 也可以限制 SAP 應用程式層與 DBMS 層間重要路徑中的輸送量。 有些客戶案例中的網路虛擬設備會導致 Pacemaker Linux 叢集失敗。 這些案例都是 Linux Pacemaker 叢集節點與其 SBD 裝置透過網路虛擬設備通訊的情況。
重要
另一種「不」支援的設計,是將 SAP 應用程式層與 DBMS 層隔離到彼此之間不對等互連的不同 Azure 虛擬網路。 建議使用 Azure 虛擬網路內的子網路來隔離 SAP 應用程式層和 DBMS 層,不要使用不同的 Azure 虛擬網路。
如果決定不遵循建議,且堅持要使用不同的虛擬網路來隔離兩個層,則這兩個虛擬網路必須要對等互連。
請注意,兩個對等互連的 Azure 虛擬網路間網路流量會產生傳輸成本。 SAP 應用程式層和 DBMS 層之間會交換多達數 TB 的龐大資料量。 如果 SAP 應用程式層和 DBMS 層分隔在兩個對等互連的 Azure 虛擬網路,則會累積大量的費用。
使用 Azure Load Balancer 重新導向流量
您必須設定 Azure Load Balancer,才能使用在 SQL Server Always On 或 HANA System Replication 等功能中使用的私人虛擬 IP 位址。 負載平衡器使用探查連接埠來判斷作用中 DBMS 節點,並以獨佔方式將流量路由至該作用中的資料庫節點。
如果資料庫節點有容錯移轉,您就不需要重新設定 SAP 應用程式。 然而,最常見的 SAP 應用程式架構會重新連線私人虛擬 IP 位址。 同時,負載平衡器會將私人虛擬 IP 位址的流量重新導向至第二個節點,藉此回應節點的容錯移轉。
Azure 提供兩個不同的負載平衡器 SKU:基本 SKU 和標準 SKU。 基於安裝和功能的優點,建議您使用 Azure 負載平衡器的標準 SKU。 標準版負載平衡器的其中一項優勢,在於資料流量不會透過負載平衡器本身進行路由。
如需設定內部負載平衡器的範例,請參閱教學課程:在 Azure 虛擬機器上手動設定 SQL Server 可用性群組一文
注意
就存取公用 IP 位址而言,基本 SKU 與標準 SKU 的行為有所不同。 如需解決標準 SKU 存取公用 IP 位址限制的方式,請參閱 SAP 高可用性案例中使用 Azure Standard Load Balancer 虛擬機器的公用端點連線文件
部署主機監視功能
若要使 Azure 虛擬機器中的 SAP 應用程式發揮產能,則 SAP 需要能夠從執行 Azure 虛擬機器的實際主機取得主機監視資料。 需要有特定的 SAP HostAgent 修補程式等級,才能在 SAPOSCOL 和 SAP HostAgent 中啟用此功能。 確切的修補程式等級記載於 SAP 附註 1409604。
如需部署會傳遞主機資料給 SAPOSCOL 和 SAP 主機代理程式的元件,以及其生命週期管理的詳細資訊,請參閱實作適用於 SAP 解決方案的 Azure VM 延伸模組。
下一步
如需特定 DBMS 的詳細資訊,請參閱: