Red Hat Enterprise Linux 上的 SAP HANA 向外延展系統高可用性
本文說明如何在向外延展設定中部署高可用性 SAP HANA 系統。 具體而言,組態會在 Azure Red Hat Enterprise Linux 虛擬機 (VM) 上使用 HANA 系統復寫 (HSR) 和 Pacemaker。 所呈現架構中的共享文件系統會掛接 NFS,並由 Azure 檔案儲存體 上的 Azure NetApp Files 或 NFS 共用提供。
在範例組態和安裝命令中,HANA 實例是 03
,而 HANA 系統識別碼為 HN1
。
必要條件
有些讀者會先從諮詢各種 SAP 筆記和資源中獲益,再繼續進行本文中的主題:
- SAP 附注 1928533 包括:
- 部署 SAP 軟體所支援的 Azure VM 大小清單。
- Azure VM 大小的重要容量資訊。
- 支援的 SAP 軟體,以及作業系統和資料庫組合。
- Microsoft Azure 上 Windows 和 Linux 的必要 SAP 核心版本。
- SAP 附註 2015553:列出 Azure 中 SAP 支援 SAP 軟體部署的必要條件。
- SAP 附注 [2002167]:建議使用 RHEL 的操作系統設定。
- SAP 附注 2009879:具有適用於 RHEL 的 SAP HANA 指導方針。
- SAP 附注 3108302 具有適用於 Red Hat Enterprise Linux 9.x 的 SAP HANA 指導方針。
- SAP 附註 2178632:包含 Azure 中針對 SAP 報告的所有監視計量詳細資訊。
- SAP 附注 2191498:包含 Azure 中 Linux 所需的 SAP 主機代理程式版本。
- SAP 附注 2243692:包含 Azure 中 Linux 上的 SAP 授權相關信息。
- SAP 附注 1999351:包含適用於 SAP 的 Azure 增強型監視擴充功能的其他疑難解答資訊。
- SAP 附註 1900823:包含 SAP HANA 記憶體需求的相關信息。
- SAP 社群 Wiki:包含適用於 Linux 的所有必要 SAP 附注。
- Azure 虛擬機器 Linux 上的 SAP 規劃和實作。
- 適用於Linux上SAP的 Azure 虛擬機器 部署。
- 適用於Linux上SAP的 Azure 虛擬機器 DBMS 部署。
- SAP HANA 網路需求。
- 一般 RHEL 檔:
- 高可用性附加元件概觀。
- 高可用性附加元件管理。
- 高可用性附加元件參考。
- Red Hat Enterprise Linux 網路指南。
- 如何? 在 Pacemaker 叢集中設定 SAP HANA 向外延展系統複寫,並在 NFS 共用上使用 HANA 文件系統。
- 主動/主動(已啟用讀取):適用於 SAP HANA 向外延展和系統複寫的 RHEL HA 解決方案。
- Azure 特定的 RHEL 文件:
- 在 Red Hat Enterprise Linux 上安裝 SAP HANA,以在 Microsoft Azure 中使用。
- 適用於 SAP HANA 向外延展和系統複寫的 Red Hat Enterprise Linux 解決方案。
- Azure NetApp Files 檔。
- Azure NetApp Files for SAP HANA 上的 NFS v4.1 磁碟區。
- Azure 檔案儲存體文件
概觀
若要達到 HANA 向外延展安裝的 HANA 高可用性,您可以設定 HANA 系統復寫,並使用 Pacemaker 叢集來保護解決方案,以允許自動故障轉移。 當作用中節點失敗時,叢集會將 HANA 資源故障轉移至其他月臺。
在下圖中,每個網站都有三個 HANA 節點,而多數製作者節點可防止「分割大腦」案例。 這些指示可以調整為包含更多 VM 作為 HANA DB 節點。
所呈現架構中的 HANA 共用文件系統/hana/shared
可由 azure NetApp Files 或 NFS 共用 Azure 檔案儲存體 提供。 HANA 共用文件系統是掛接在相同 HANA 系統復寫網站中每個 HANA 節點上的 NFS。 文件系統 /hana/data
和 /hana/log
是本機文件系統,不會在 HANA DB 節點之間共用。 SAP HANA 將會以非共用模式安裝。
如需建議的 SAP HANA 記憶體組態,請參閱 SAP HANA Azure VM 記憶體組態。
重要
如果在 Azure NetApp Files 上部署所有 HANA 檔案系統,針對效能是關鍵的生產系統,建議您評估及考慮針對 SAP HANA 使用 Azure NetApp Files 應用程式磁碟區群組。
上圖顯示一個 Azure 虛擬網路內所代表的三個子網,並遵循 SAP HANA 網路建議:
- 針對客戶端通訊:
client
10.23.0.0/24 - 針對內部 HANA 節點間通訊:
inter
10.23.1.128/26 - 針對 HANA 系統復寫:
hsr
10.23.1.192/26
由於 /hana/data
和 /hana/log
部署在本機磁碟上,因此不需要部署個別的子網和個別的虛擬網路卡,以便與記憶體通訊。
如果您使用 Azure NetApp Files,則 的 /hana/shared
NFS 磁碟區會部署在個別的子網中, 委派給 Azure NetApp Files: anf
10.23.1.0/26。
設定基礎結構
在後續指示中,我們假設您已建立資源群組、具有三個 Azure 網路子網的 Azure 虛擬網路: client
、 inter
和 hsr
。
透過 Azure 入口網站部署Linux虛擬機
部署 Azure VM。 針對此設定,請部署七部虛擬機:
- 三部虛擬機可作為 HANA 複寫網站 1 的 HANA DB 節點:hana-s1-db1、hana-s1-db2 和 hana-s1-db3。
- 三部虛擬機可作為 HANA 複寫網站 2 的 HANA DB 節點:hana-s2-db1、hana-s2-db2 和 hana-s2-db3。
- 作為多數製造商的小型虛擬機: hana-s-mm。
部署為 SAP DB HANA 節點的 VM 應該經過 SAP for HANA 認證,如 SAP HANA 硬體目錄中所發佈。 當您部署 HANA DB 節點時,請務必選取 加速網路。
對於多數製造商節點,您可以部署小型 VM,因為此 VM 不會執行任何 SAP HANA 資源。 大部分的製作者 VM 會用於叢集組態中,以在分割大腦案例中達成和奇數的叢集節點數目。 在此範例中,多數製造商 VM 只需要子網中的
client
一個虛擬網路介面。為和
/hana/log
部署本機受控磁碟/hana/data
。 SAP HANA Azure VM 記憶體組態會說明 和/hana/data
/hana/log
的最低建議記憶體組態。為虛擬網路子網中的每個
client
VM 部署主要網路介面。 透過 Azure 入口網站 部署 VM 時,會自動產生網路介面名稱。 在本文中,我們將參考自動產生的主要網路介面作為 hana-s1-db1-client、hana-s1-db2-client、hana-s1-db3-client 等等。 這些網路介面會連結至client
Azure 虛擬網路子網。重要
請確定您選取的作業系統已針對您所使用的特定 VM 類型,針對 SAP HANA 進行 SAP 認證。 如需這些類型的 SAP HANA 認證 VM 類型和作業系統版本清單,請參閱 SAP HANA 認證的 IaaS 平臺。 深入瞭解列出的 VM 類型詳細數據,以取得該類型 SAP HANA 支援的作業系統版本完整清單。
在虛擬網路子網中為每個 HANA DB 虛擬機建立六個網路介面(在此範例中為 hana-s1-db1-inter、hana-s1-db2-inter、hana-s1-db3-inter、hana-s2-db1-inter、hana-s2-db2-inter 和 hana-s2-db3-inter)。
inter
在虛擬網路子網中為每個 HANA DB 虛擬機建立六個網路介面(在此範例中,hana-s1-db1-hsr、hana-s1-db2-hsr、hana-s1-db3-hsr、hana-s2-db1-hsr、hana-s2-db2-hsr 和 hana-s2-db3-hsr)。
hsr
將新建立的虛擬網路介面附加至對應的虛擬機:
- 移至 Azure 入口網站 中的虛擬機。
- 在左窗格中,選取 [虛擬機器]。 篩選虛擬機名稱(例如 hana-s1-db1),然後選取虛擬機。
- 在 [概 觀] 窗格中,選取 [停止 ] 以解除分配虛擬機。
- 選取 [ 網络],然後鏈接網路介面。 在 [ 鏈接網路介面 ] 下拉式清單中,選取已建立的
inter
和hsr
子網網路介面。 - 選取 [儲存]。
- 針對其餘虛擬機重複步驟 b 到 e (在我們的範例中為 hana-s1-db2、hana-s1-db3、hana-s2-db1、hana-s2-db2 和 hana-s2-db3)
- 暫時讓虛擬機處於停止狀態。
執行下列動作,為和 子網的其他網路介面啟用加速網路:
hsr
inter
在 Azure 入口網站 中開啟 Azure Cloud Shell。
執行下列命令,為附加至
inter
和hsr
子網的其他網路介面啟用加速網路功能。az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-hsr --accelerated-networking true
啟動 HANA DB 虛擬機。
設定 Azure 負載平衡器
在 VM 設定期間,您可以選擇在網路區段中建立或選取結束的負載平衡器。 請遵循下列步驟來設定標準負載平衡器,以設定 HANA 資料庫的高可用性設定。
注意
- 針對 HANA 向外延展,在後端集區中新增虛擬機時,選取子網的 NIC
client
。 - Azure CLI 和 PowerShell 中的一組完整命令會在後端集區中新增具有主要 NIC 的 VM。
- Azure 入口網站
- Azure CLI
- PowerShell
請遵循建立負載平衡器指南,使用 Azure 入口網站 為高可用性 SAP 系統設定標準負載平衡器。 在設定負載平衡器期間,請考慮下列幾點。
- 前端IP組態: 建立前端IP。 選取與 DB 虛擬機相同的虛擬網路和子網。
- 後端集區: 建立後端集區並新增 DB VM。
- 輸入規則: 建立負載平衡規則。 針對這兩個負載平衡規則,請遵循相同的步驟。
- 前端IP位址:選取前端IP
- 後端集區:選取後端集區
- 檢查「高可用性埠」
- 通訊協定:TCP
- 健康情況探查:使用下列詳細數據建立健康情況探查
- 通訊協定:TCP
- 埠:[例如:625<實例否。>]
- 間隔:5
- 探查臨界值:2
- 閑置逾時(分鐘):30
- 檢查 [啟用浮動 IP]
注意
健康情況探查組態屬性 numberOfProbes,否則在入口網站中稱為「狀況不良閾值」,則不會受到尊重。 因此,若要控制連續探查成功或失敗的數目,請將屬性 “probeThreshold” 設定為 2。 目前無法使用 Azure 入口網站 來設定此屬性,因此請使用 Azure CLI 或 PowerShell 命令。
重要
負載平衡案例中的 NIC 次要IP組態不支援浮動IP。 如需詳細資訊,請參閱 Azure Load Balancer 限制。 如果您需要 VM 的其他 IP 位址,請部署第二個 NIC。
注意
當您使用標準負載平衡器時,應該注意下列限制。 當您將沒有公用IP位址的VM放在內部負載平衡器的後端集區時,沒有輸出因特網連線能力。 若要允許路由傳送至公用端點,您必須執行其他設定。 如需詳細資訊,請參閱 SAP 高可用性案例中使用 Azure Standard Load Balancer 虛擬機器 的公用端點連線。
重要
請勿在位於 Azure Load Balancer 後方的 Azure VM 上啟用 TCP 時間戳。 啟用 TCP 時間戳會導致健康情況探查失敗。 將參數 net.ipv4.tcp_timestamps
設定為 0
。 如需詳細資訊,請參閱 Load Balancer健康情況探查 和 SAP 附注 2382421。
部署 NFS
有兩個選項可用來部署 的 /hana/shared
Azure 原生 NFS。 您可以在 Azure NetApp Files 或 Azure 檔案儲存體 上的 NFS 共用上部署 NFS 磁碟區。 Azure 檔案支援 NFSv4.1 通訊協定,Azure NetApp 檔案上的 NFS 同時支援 NFSv4.1 和 NFSv3。
下一節說明部署 NFS 的步驟 - 您只需要 選取其中一個選項 。
提示
您選擇在 Azure NetApp Files 上的 Azure 檔案儲存體 或 NFS 磁碟區上部署 /hana/shared
NFS 共用。
部署 Azure NetApp Files 基礎結構
部署文件系統的 /hana/shared
Azure NetApp Files 磁碟區。 每個 HANA 系統復寫網站都需要個別 /hana/shared
的磁碟區。 如需詳細資訊,請參閱 設定 Azure NetApp Files 基礎結構。
在此範例中,您會使用下列 Azure NetApp Files 磁碟區:
- volume HN1-shared-s1 (nfs://10.23.1.7/ HN1-shared-s1)
- volume HN1-shared-s2 (nfs://10.23.1.7/ HN1-shared-s2)
在 Azure 檔案儲存體 基礎結構上部署 NFS
為檔案系統部署 Azure 檔案儲存體 NFS 共用/hana/shared
。 每個 HANA 系統復寫網站都需要個別 /hana/shared
Azure 檔案儲存體 NFS 共用。 如需詳細資訊,請參閱 如何建立 NFS 共用。
在此範例中,使用了下列 Azure 檔案儲存體 NFS 共用:
- share hn1-shared-s1 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1)
- share hn1-shared-s2 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2)
操作系統設定和準備
下一節中的指示前面會加上下列其中一個縮寫:
- [A]: 適用於所有節點
- [AH]:適用於所有 HANA DB 節點
- [M]: 適用於多數製作者節點
- [AH1]:適用於月臺 1 上的所有 HANA DB 節點
- [AH2]:適用於月臺 2 上的所有 HANA DB 節點
- [1]:僅適用於 HANA DB 節點 1,SITE 1
- [2]:僅適用於 HANA DB 節點 1,SITE 2
執行下列動作來設定和準備您的作業系統:
[A] 維護虛擬機上的主機檔案。 包含所有子網的專案。 這個範例會將下列專案新增至
/etc/hosts
。# Client subnet 10.23.0.11 hana-s1-db1 10.23.0.12 hana-s1-db1 10.23.0.13 hana-s1-db2 10.23.0.14 hana-s2-db1 10.23.0.15 hana-s2-db2 10.23.0.16 hana-s2-db3 10.23.0.17 hana-s-mm # Internode subnet 10.23.1.138 hana-s1-db1-inter 10.23.1.139 hana-s1-db2-inter 10.23.1.140 hana-s1-db3-inter 10.23.1.141 hana-s2-db1-inter 10.23.1.142 hana-s2-db2-inter 10.23.1.143 hana-s2-db3-inter # HSR subnet 10.23.1.202 hana-s1-db1-hsr 10.23.1.203 hana-s1-db2-hsr 10.23.1.204 hana-s1-db3-hsr 10.23.1.205 hana-s2-db1-hsr 10.23.1.206 hana-s2-db2-hsr 10.23.1.207 hana-s2-db3-hsr
[A] 使用 Microsoft 建立組態檔 /etc/sysctl.d/ms-az.conf for Azure 組態設定。
vi /etc/sysctl.d/ms-az.conf # Add the following entries in the configuration file net.ipv6.conf.all.disable_ipv6 = 1 net.ipv4.tcp_max_syn_backlog = 16348 net.ipv4.conf.all.rp_filter = 0 sunrpc.tcp_slot_table_entries = 128 vm.swappiness=10
提示
請避免在
net.ipv4.ip_local_port_range
組態檔中sysctl
設定並net.ipv4.ip_local_reserved_ports
明確設定 ,以允許 SAP 主機代理程式管理埠範圍。 如需詳細資訊,請參閱 SAP 附注 2382421。[A] 安裝 NFS 用戶端套件。
yum install nfs-utils
[AH] Red Hat for HANA 設定。
如 Red Hat 客戶入口網站和下列 SAP 附注中所述,設定 RHEL:
準備檔案系統
下列各節提供準備文件系統的步驟。 您選擇在 Azure NetApp Files 上的 Azure 檔案儲存體 或 NFS 磁碟區上的 NFS 共用上部署 /hana/shared' 。
掛接共享文件系統 (Azure NetApp Files NFS)
在此範例中,共用 HANA 文件系統會部署在 Azure NetApp Files 上,並透過 NFSv4.1 掛接。 請遵循本節中的步驟,只有在您在 Azure NetApp Files 上使用 NFS 時。
[AH]準備操作系統以在 NetApp Systems 上使用 NFS 執行 SAP HANA,如 SAP 附註3024346 - 適用於 NetApp NFS 的 Linux 核心 設定 中所述。 建立 NetApp 組態設定的組態檔 /etc/sysctl.d/91-NetApp-HANA.conf 。
vi /etc/sysctl.d/91-NetApp-HANA.conf # Add the following entries in the configuration file net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 131072 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 net.core.netdev_max_backlog = 300000 net.ipv4.tcp_slow_start_after_idle=0 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_sack = 1
[AH]調整 sunrpc 設定,如 SAP 注意事項 3024346 - NetApp NFS 的 Linux 核心 設定 中所建議。
vi /etc/modprobe.d/sunrpc.conf # Insert the following line options sunrpc tcp_max_slot_table_entries=128
[AH] 建立 HANA 資料庫磁碟區的裝入點。
mkdir -p /hana/shared
[AH] 確認 NFS 網域設定。 請確定網域已設定為預設的 Azure NetApp Files 網域:
defaultv4iddomain.com
。 請確定對應已設定為nobody
。
(只有在您使用 Azure NetAppFiles NFS v4.1 時,才需要此步驟。重要
請務必在 VM 上設定 NFS 網域
/etc/idmapd.conf
,以符合 Azure NetApp Files 上的預設網域組態:defaultv4iddomain.com
。 如果 NFS 用戶端與 NFS 伺服器上的網域設定不符,則 VM 上掛接之 Azure NetApp 磁碟區上的檔案權限會顯示為nobody
。sudo cat /etc/idmapd.conf # Example [General] Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
[AH] 確認
nfs4_disable_idmapping
。 它應該設定為Y
。 若要建立所在的nfs4_disable_idmapping
目錄結構,請執行掛接命令。 您無法在 /sys/modules 底下手動建立目錄,因為存取權會保留給核心或驅動程式。
只有在使用 Azure NetAppFiles NFSv4.1 時,才需要此步驟。# Check nfs4_disable_idmapping cat /sys/module/nfs/parameters/nfs4_disable_idmapping # If you need to set nfs4_disable_idmapping to Y mkdir /mnt/tmp mount 10.9.0.4:/HN1-shared /mnt/tmp umount /mnt/tmp echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping # Make the configuration permanent echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
如需如何變更
nfs4_disable_idmapping
參數的詳細資訊,請參閱 Red Hat 客戶入口網站。[AH1] 在 SITE1 HANA DB VM 上掛接共用的 Azure NetApp Files 磁碟區。
sudo mount -o rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s1 /hana/shared
[AH2] 在 SITE2 HANA DB VM 上掛接共用的 Azure NetApp Files 磁碟區。
sudo mount -o rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s2 /hana/shared
[AH]使用 NFS 通訊協定版本 NFSv4,確認所有 HANA DB VM 上都掛接對應的
/hana/shared/
文件系統。sudo nfsstat -m # Verify that flag vers is set to 4.1 # Example from SITE 1, hana-s1-db1 /hana/shared from 10.23.1.7:/HN1-shared-s1 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.11,local_lock=none,addr=10.23.1.7 # Example from SITE 2, hana-s2-db1 /hana/shared from 10.23.1.7:/HN1-shared-s2 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.14,local_lock=none,addr=10.23.1.7
掛接共享檔案系統 (Azure 檔案儲存體 NFS)
在此範例中,共用 HANA 檔案系統會部署在 Azure 檔案儲存體 上的 NFS 上。 只有在您在 Azure 檔案儲存體 上使用 NFS 時,才遵循本節中的步驟。
[AH] 建立 HANA 資料庫磁碟區的裝入點。
mkdir -p /hana/shared
[AH1] 在 SITE1 HANA DB VM 上掛接共用的 Azure NetApp Files 磁碟區。
sudo vi /etc/fstab # Add the following entry sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 /hana/shared nfs nfsvers=4.1,sec=sys 0 0 # Mount all volumes sudo mount -a
[AH2] 在 SITE2 HANA DB VM 上掛接共用的 Azure NetApp Files 磁碟區。
sudo vi /etc/fstab # Add the following entries sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 /hana/shared nfs nfsvers=4.1,sec=sys 0 0 # Mount the volume sudo mount -a
[AH]確認所有具有 NFS 通訊協定 NFSv4.1 版的 HANA DB VM 上都掛接對應的
/hana/shared/
文件系統。sudo nfsstat -m # Example from SITE 1, hana-s1-db1 sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.0.35 # Example from SITE 2, hana-s2-db1 sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.0.35
準備數據和記錄本機檔系統
在呈現的組態中,您會在受控磁碟上部署文件系統 /hana/data
, /hana/log
並將這些文件系統連結至每個 HANA DB VM。 執行下列步驟,在每個 HANA DB 虛擬機上建立本機數據和記錄磁碟區。
使用 邏輯磁碟區管理員 (LVM) 設定磁碟配置。 下列範例假設每個 HANA 虛擬機都已連結三個數據磁碟,而且這些磁碟是用來建立兩個磁碟區。
[AH] 列出所有可用的磁碟:
ls /dev/disk/azure/scsi1/lun*
範例輸出︰
/dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2
[AH] 針對您想要使用的所有磁碟建立實體磁碟區:
sudo pvcreate /dev/disk/azure/scsi1/lun0 sudo pvcreate /dev/disk/azure/scsi1/lun1 sudo pvcreate /dev/disk/azure/scsi1/lun2
[AH] 建立數據檔的磁碟區群組。 針對記錄檔使用一個磁碟區群組,另一個用於 SAP HANA 的共享目錄:
sudo vgcreate vg_hana_data_HN1 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 sudo vgcreate vg_hana_log_HN1 /dev/disk/azure/scsi1/lun2
[AH] 建立邏輯磁碟區。 當您不使用
lvcreate
參數時,就會建立線性磁碟區-i
。 建議您建立 等量 磁碟區,以提升 I/O 效能。 將等量大小與 SAP HANA VM 記憶體設定中所記載的值對齊。 自-i
變數應該是基礎實體磁碟區的數目,而-I
自變數是等量大小。 在本文中,數據磁碟區會使用兩個實體磁碟區,因此-i
switch 自變數會設定為2
。 資料磁碟區的等量大小為256 KiB
。 記錄磁碟區會使用一個實體磁碟區,因此您不需要針對記錄磁碟區命令使用明確-i
或-I
切換。重要
-i
當您針對每個數據或記錄磁碟區使用多個實體磁碟區時,請使用 參數,並將它設定為基礎實體磁碟區的數目。 當您-I
建立等量磁碟區時,請使用 參數來指定等量大小。 如需建議的記憶體組態,請參閱 SAP HANA VM 記憶體 組態,包括等量大小和磁碟數目。sudo lvcreate -i 2 -I 256 -l 100%FREE -n hana_data vg_hana_data_HN1 sudo lvcreate -l 100%FREE -n hana_log vg_hana_log_HN1 sudo mkfs.xfs /dev/vg_hana_data_HN1/hana_data sudo mkfs.xfs /dev/vg_hana_log_HN1/hana_log
[AH] 建立掛接目錄,並複製所有邏輯磁碟區的 UUID:
sudo mkdir -p /hana/data/HN1 sudo mkdir -p /hana/log/HN1 # Write down the ID of /dev/vg_hana_data_HN1/hana_data and /dev/vg_hana_log_HN1/hana_log sudo blkid
[AH] 建立
fstab
邏輯磁碟區及掛接的專案:sudo vi /etc/fstab
在檔案插入
/etc/fstab
下列這一行:/dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_data_HN1-hana_data /hana/data/HN1 xfs defaults,nofail 0 2 /dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_log_HN1-hana_log /hana/log/HN1 xfs defaults,nofail 0 2
裝載新的磁碟區:
sudo mount -a
安裝
在此範例中,您會使用 HANA 2.0 SP4,在 Azure VM 上使用 HSR 在向外延展設定中部署 SAP HANA。
準備 HANA 安裝
[AH] 在 HANA 安裝之前,請設定根密碼。 您可以在安裝完成後停用根密碼。 執行 as
root
命令passwd
來設定密碼。[1,2] 變更 的許可權
/hana/shared
。chmod 775 /hana/shared
[1] 確認您可以透過安全殼層 (SSH) 登入 hana-s1-db2 和 hana-s1-db3 ,而不提示輸入密碼。 如果情況並非如此,請交換
ssh
密鑰,如使用金鑰型驗證中所述。ssh root@hana-s1-db2 ssh root@hana-s1-db3
[2] 確認您可以透過 SSH 登入 hana-s2-db2 和 hana-s2-db3 ,而不提示輸入密碼。 如果情況並非如此,請交換
ssh
密鑰,如使用金鑰型驗證中所述。ssh root@hana-s2-db2 ssh root@hana-s2-db3
[AH] 安裝 HANA 2.0 SP4 所需的其他套件。 如需詳細資訊,請參閱適用於 RHEL 7 的 SAP 附註 2593824 。
# If using RHEL 7 yum install libgcc_s1 libstdc++6 compat-sap-c++-7 libatomic1 # If using RHEL 8 yum install libatomic libtool-ltdl.x86_64
[A] 暫時停用防火牆,使其不會干擾 HANA 安裝。 完成 HANA 安裝之後,您可以重新啟用它。
# Execute as root systemctl stop firewalld systemctl disable firewalld
每個站臺上第一個節點上的 HANA 安裝
[1] 遵循 SAP HANA 2.0 安裝和更新指南中的指示來安裝 SAP HANA。 下列指示顯示 SITE 1 上第一個節點上的 SAP HANA 安裝。
hdblcm
從 HANA 安裝軟體目錄啟動程式root
。internal_network
使用 參數並傳遞子網的位址空間,用於內部 HANA 節點間通訊。./hdblcm --internal_network=10.23.1.128/26
在提示字元中,輸入下列值:
- 針對 [ 選擇動作],輸入 1 (用於安裝)。
- 針對 [其他安裝元件],輸入 2, 3。
- 針對安裝路徑,按 Enter 鍵(預設值為 /hana/shared)。
- 針對 [ 本機主機名],按 Enter 以接受預設值。
- 針對 [您要將主機新增至系統嗎?],輸入 n。
- 針對 SAP HANA 系統識別碼,輸入 HN1。
- 針對 [00], 輸入 03。
- 針對 [ 本機主機背景工作角色群組 ],按 Enter 以接受預設值。
- 針對 [選取系統使用量] / 輸入索引 [4],輸入 4 (針對自定義)。
- 針對 [/hana/data/HN1] 的數據磁碟區 位置,按 Enter 以接受預設值。
- 針對 記錄磁碟區 的位置 [/hana/log/HN1],按 Enter 以接受預設值。
- 針對 [限制記憶體配置上限? [n],輸入 n。
- 針對 Host hana-s1-db1 [hana-s1-db1]的憑證主機名,按 Enter 以接受預設值。
- 針對 SAP 主機代理程式使用者 (sapadm) 密碼,輸入密碼。
- 針對 [確認 SAP 主機代理程式使用者 (sapadm) 密碼],輸入密碼。
- 針對 [系統 管理員 istrator [hn1adm] 密碼,輸入密碼。
- 針對 System 管理員 istrator Home Directory [/usr/sap/HN1/home],按 Enter 以接受預設值。
- 針對 [系統 管理員 istrator 登入殼層 [/bin/sh],按 Enter 以接受預設值。
- 針對 [系統 管理員 istrator 使用者標識碼 [1001],按 Enter 以接受預設值。
- 針對 [ 使用者群組] [ 79] 的 Enter 識別符,按 Enter 以接受預設值。
- 針對 [系統資料庫使用者] [系統] [密碼],輸入系統的密碼。
- 針對 [確認系統資料庫使用者][系統] [密碼],輸入系統的密碼。
- 針對 [ 機器重新啟動后重新啟動系統嗎? [n],輸入 n。
- 針對 [您要繼續][y/n],驗證摘要,如果一切看起來都不錯,請輸入 y。
[2] 重複上述步驟,在月臺 2 的第一個節點上安裝 SAP HANA。
[1,2] 驗證 global.ini。
顯示 global.ini,並確定內部 SAP HANA 節點間通訊的設定已就緒。 確認區
communication
段。 它應該有子網的inter
位址空間,而且listeninterface
應該設定為.internal
。 確認區internal_hostname_resolution
段。 它應該具有屬於inter
子網之 HANA 虛擬機的 IP 位址。sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini # Example from SITE1 [communication] internal_network = 10.23.1.128/26 listeninterface = .internal [internal_hostname_resolution] 10.23.1.138 = hana-s1-db1 10.23.1.139 = hana-s1-db2 10.23.1.140 = hana-s1-db3
[1,2] 準備 global.ini 以在非共用環境中安裝,如 SAP 附注 2080991中所述。
sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini [persistence] basepath_shared = no
[1,2] 重新啟動 SAP HANA 以啟用變更。
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem
[1,2] 確認用戶端介面使用來自子網的
client
IP位址進行通訊。# Execute as hn1adm /usr/sap/HN1/HDB03/exe/hdbsql -u SYSTEM -p "password" -i 03 -d SYSTEMDB 'select * from SYS.M_HOST_INFORMATION'|grep net_publicname # Expected result - example from SITE 2 "hana-s2-db1","net_publicname","10.23.0.14"
如需如何驗證設定的資訊,請參閱 SAP 附注 2183363 - SAP HANA 內部網路的設定。
[AH] 變更資料和記錄目錄的許可權,以避免發生 HANA 安裝錯誤。
sudo chmod o+w -R /hana/data /hana/log
[1] 安裝次要 HANA 節點。 此步驟中的範例指示適用於SITE 1。
以啟動
root
常駐hdblcm
計劃。cd /hana/shared/HN1/hdblcm ./hdblcm
在提示字元中,輸入下列值:
- 針對 [ 選擇動作],輸入 2 (針對新增主機)。
- 針對 [輸入要新增的逗號分隔主機名],輸入 hana-s1-db2、hana-s1-db3。
- 針對 [其他安裝元件],輸入 2, 3。
- 針對 [輸入根用戶名稱 [root],按 Enter 以接受預設值。
- 針對 [ 選取主機 'hana-s1-db2' [1] 的角色,選取 1 (針對背景工作角色)。
- 針對 [ 輸入主機故障轉移群組] 的主機 'hana-s1-db2' [default],按 Enter 以接受預設值。
- 針對 [輸入 儲存體 主機 'hana-s1-db2' [<<assign automatically>>],按 Enter 以接受預設值。
- 針對 主機 'hana-s1-db2' [default],按 Enter 以接受預設值。
- 針對 [ 選取主機 'hana-s1-db3' 的角色] [1],選取 1 (針對背景工作角色)。
- 針對 [ 輸入主機故障轉移群組] 的主機 'hana-s1-db3' [default],按 Enter 以接受預設值。
- 針對 [輸入] 儲存體 主機 'hana-s1-db3' [<<assign automatically>>],按 Enter 接受預設值。
- 針對 主機 'hana-s1-db3' [default],按 Enter 以接受預設值。
- 針對 [系統 管理員 istrator (hn1adm) 密碼,輸入密碼。
- 針對 [輸入 SAP 主機代理程式使用者 (sapadm) 密碼],輸入密碼。
- 針對 [確認 SAP 主機代理程式使用者 (sapadm) 密碼],輸入密碼。
- 針對 主機 hana-s1-db2 [hana-s1-db2 ] 的憑證主機名,按 Enter 以接受預設值。
- 針對 主機 hana-s1-db3 [hana-s1-db3 ] 的憑證主機名,按 Enter 以接受預設值。
- 針對 [您要繼續][y/n],驗證摘要,如果一切看起來都不錯,請輸入 y。
[2] 重複上述步驟,在月臺 2 上安裝次要 SAP HANA 節點。
設定 SAP HANA 2.0 系統複寫
下列步驟可讓您設定系統複寫:
[1] 在月臺 1 上設定系統複寫:
將資料庫備份為 hn1adm:
hdbsql -d SYSTEMDB -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupSYS')" hdbsql -d HN1 -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupHN1')"
將系統 PKI 檔案複製到次要站台:
scp /usr/sap/HN1/SYS/global/security/rsecssfs/data/SSFS_HN1.DAT hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/data/ scp /usr/sap/HN1/SYS/global/security/rsecssfs/key/SSFS_HN1.KEY hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/key/
建立主要站台:
hdbnsutil -sr_enable --name=HANA_S1
[2] 在月臺 2 上設定系統複寫:
註冊第二個月臺以啟動系統複寫。 以 hanasid>adm 身分<執行下列命令:
sapcontrol -nr 03 -function StopWait 600 10 hdbnsutil -sr_register --remoteHost=hana-s1-db1 --remoteInstance=03 --replicationMode=sync --name=HANA_S2 sapcontrol -nr 03 -function StartSystem
[1] 檢查復寫狀態,並等候所有資料庫同步。
sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py" # | Database | Host | Port | Service Name | Volume ID | Site ID | Site Name | Secondary | Secondary | Secondary | Secondary | Secondary | Replication | Replication | Replication | # | | | | | | | | Host | Port | Site ID | Site Name | Active Status | Mode | Status | Status Details | # | -------- | ------------- | ----- | ------------ | --------- | ------- | --------- | ------------- | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- | # | HN1 | hana-s1-db3 | 30303 | indexserver | 5 | 1 | HANA_S1 | hana-s2-db3 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | SYSTEMDB | hana-s1-db1 | 30301 | nameserver | 1 | 1 | HANA_S1 | hana-s2-db1 | 30301 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | HN1 | hana-s1-db1 | 30307 | xsengine | 2 | 1 | HANA_S1 | hana-s2-db1 | 30307 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | HN1 | hana-s1-db1 | 30303 | indexserver | 3 | 1 | HANA_S1 | hana-s2-db1 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | HN1 | hana-s1-db2 | 30303 | indexserver | 4 | 1 | HANA_S1 | hana-s2-db2 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # # status system replication site "2": ACTIVE # overall system replication status: ACTIVE # # Local System Replication State # # mode: PRIMARY # site id: 1 # site name: HANA_S1
[1,2] 變更 HANA 組態,以便透過 HANA 系統復寫虛擬網路介面導向 HANA 系統復寫的通訊。
在兩個網站上停止 HANA。
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
編輯 global.ini 以新增 HANA 系統複寫的主機對應。 使用來自子網的
hsr
IP位址。sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini #Add the section [system_replication_hostname_resolution] 10.23.1.202 = hana-s1-db1 10.23.1.203 = hana-s1-db2 10.23.1.204 = hana-s1-db3 10.23.1.205 = hana-s2-db1 10.23.1.206 = hana-s2-db2 10.23.1.207 = hana-s2-db3
在兩個網站上啟動 HANA。
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
如需詳細資訊,請參閱 系統複寫的主機名解析。
[AH] 重新啟用防火牆並開啟必要的埠。
重新啟用防火牆。
# Execute as root systemctl start firewalld systemctl enable firewalld
開啟必要的防火牆埠。 您必須調整 HANA 實例號碼的埠。
重要
建立防火牆規則以允許 HANA 節點間通訊和用戶端流量。 必要埠會列在所有 SAP 產品的 TCP/IP 埠上。 下列命令只是範例。 在此案例中,您會使用系統號碼 03。
# Execute as root sudo firewall-cmd --zone=public --add-port={30301,30303,30306,30307,30313,30315,30317,30340,30341,30342,1128,1129,40302,40301,40307,40303,40340,50313,50314,30310,30302}/tcp --permanent sudo firewall-cmd --zone=public --add-port={30301,30303,30306,30307,30313,30315,30317,30340,30341,30342,1128,1129,40302,40301,40307,40303,40340,50313,50314,30310,30302}/tcp
建立 Pacemaker 叢集
若要建立基本的 Pacemaker 叢集,請遵循在 Azure 中的 Red Hat Enterprise Linux 上設定 Pacemaker 中的步驟。 包含所有虛擬機,包括叢集中的多數製造商。
重要
請勿設定 quorum expected-votes
為 2。 這不是雙節點叢集。 請確定已啟用叢集屬性 concurrent-fencing
,使節點隔離已還原串行化。
建立文件系統資源
針對此程式的下一個部分,您必須建立文件系統資源。 方法如下:
[1,2] 在兩個復寫網站上停止 SAP HANA。 以 sid adm 身分<>執行。
sapcontrol -nr 03 -function StopSystem
[AH] 取消掛接檔案系統,此檔案系統
/hana/shared
已暫時掛接以用於所有 HANA DB VM 上的安裝。 您必須先停止使用文件系統的任何進程和會話,才能將其卸除。umount /hana/shared
[1] 建立處於停用狀態的文件系統叢集資源
/hana/shared
。 因為您必須在啟用掛接之前定義位置條件約束,才能使用--disabled
。
您選擇在 Azure NetApp Files 上的 Azure 檔案儲存體 或 NFS 磁碟區上的 NFS 共用上部署 /hana/shared' 。在此範例中,『/hana/shared』 文件系統會部署在 Azure NetApp Files 上,並透過 NFSv4.1 掛接。 請遵循本節中的步驟,只有在您在 Azure NetApp Files 上使用 NFS 時。
# /hana/shared file system for site 1 pcs resource create fs_hana_shared_s1 --disabled ocf:heartbeat:Filesystem device=10.23.1.7:/HN1-shared-s1 directory=/hana/shared \ fstype=nfs options='defaults,rw,hard,timeo=600,rsize=262144,wsize=262144,proto=tcp,noatime,sec=sys,nfsvers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \ op start interval=0 timeout=120 op stop interval=0 timeout=120 # /hana/shared file system for site 2 pcs resource create fs_hana_shared_s2 --disabled ocf:heartbeat:Filesystem device=10.23.1.7:/HN1-shared-s1 directory=/hana/shared \ fstype=nfs options='defaults,rw,hard,timeo=600,rsize=262144,wsize=262144,proto=tcp,noatime,sec=sys,nfsvers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \ op start interval=0 timeout=120 op stop interval=0 timeout=120 # clone the /hana/shared file system resources for both site1 and site2 pcs resource clone fs_hana_shared_s1 meta clone-node-max=1 interleave=true pcs resource clone fs_hana_shared_s2 meta clone-node-max=1 interleave=true
建議的逾時值可讓叢集資源承受與 Azure NetApp Files 上的 NFSv4.1 租用更新相關的通訊協定特定暫停。 如需詳細資訊,請參閱 NetApp 中的 NFS 最佳做法。
在此範例中,『hana/shared』 檔案系統部署在 Azure 檔案儲存體 上的 NFS 上。 只有在您在 Azure 檔案儲存體 上使用 NFS 時,才遵循本節中的步驟。
# /hana/shared file system for site 1 pcs resource create fs_hana_shared_s1 --disabled ocf:heartbeat:Filesystem device=sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 directory=/hana/shared \ fstype=nfs options='defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \ op start interval=0 timeout=120 op stop interval=0 timeout=120 # /hana/shared file system for site 2 pcs resource create fs_hana_shared_s2 --disabled ocf:heartbeat:Filesystem device=sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 directory=/hana/shared \ fstype=nfs options='defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \ op start interval=0 timeout=120 op stop interval=0 timeout=120 # clone the /hana/shared file system resources for both site1 and site2 pcs resource clone fs_hana_shared_s1 meta clone-node-max=1 interleave=true pcs resource clone fs_hana_shared_s2 meta clone-node-max=1 interleave=true
屬性
OCF_CHECK_LEVEL=20
會新增至監視作業,讓監視作業在文件系統上執行讀取/寫入測試。 如果沒有這個屬性,監視作業只會驗證文件系統是否已掛接。 這可能是個問題,因為當連線中斷時,即使無法存取文件系統,仍可能會掛接文件系統。屬性
on-fail=fence
也會新增至監視作業。 使用此選項時,如果監視作業在節點上失敗,該節點會立即受到隔離。 如果沒有此選項,默認行為是停止相依於失敗資源的所有資源,然後重新啟動失敗的資源,然後啟動所有相依於失敗資源的資源。 當 SAP HANA 資源相依於失敗的資源時,此行為不僅需要很長的時間,而且可能會完全失敗。 如果無法存取持有 HANA 二進位檔的 NFS 共用,SAP HANA 資源就無法成功停止。上述組態中的逾時可能需要調整為特定的 SAP 設定。
[1] 設定並驗證節點屬性。 複寫月臺 1 上的所有 SAP HANA DB 節點都會被指派屬性
S1
,而復寫月臺 2 上的所有 SAP HANA DB 節點都會被指派屬性S2
。# HANA replication site 1 pcs node attribute hana-s1-db1 NFS_SID_SITE=S1 pcs node attribute hana-s1-db2 NFS_SID_SITE=S1 pcs node attribute hana-s1-db3 NFS_SID_SITE=S1 # HANA replication site 2 pcs node attribute hana-s2-db1 NFS_SID_SITE=S2 pcs node attribute hana-s2-db2 NFS_SID_SITE=S2 pcs node attribute hana-s2-db3 NFS_SID_SITE=S2 # To verify the attribute assignment to nodes execute pcs node attribute
[1] 設定條件約束,以判斷要掛接 NFS 檔案系統的位置,並啟用檔案系統資源。
# Configure the constraints pcs constraint location fs_hana_shared_s1-clone rule resource-discovery=never score=-INFINITY NFS_SID_SITE ne S1 pcs constraint location fs_hana_shared_s2-clone rule resource-discovery=never score=-INFINITY NFS_SID_SITE ne S2 # Enable the file system resources pcs resource enable fs_hana_shared_s1 pcs resource enable fs_hana_shared_s2
當您啟用檔案系統資源時,叢集會掛接
/hana/shared
檔案系統。[AH] 確認 Azure NetApp Files 磁碟區已掛接在
/hana/shared
,位於這兩個站臺上的所有 HANA DB VM 上。範例,如果使用 Azure NetApp Files:
sudo nfsstat -m # Verify that flag vers is set to 4.1 # Example from SITE 1, hana-s1-db1 /hana/shared from 10.23.1.7:/HN1-shared-s1 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.11,local_lock=none,addr=10.23.1.7 # Example from SITE 2, hana-s2-db1 /hana/shared from 10.23.1.7:/HN1-shared-s2 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.14,local_lock=none,addr=10.23.1.7
範例,如果使用 Azure 檔案儲存體 NFS:
sudo nfsstat -m # Example from SITE 1, hana-s1-db1 sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.0.35 # Example from SITE 2, hana-s2-db1 sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.0.35
[1] 設定和複製屬性資源,並設定條件約束,如下所示:
# Configure the attribute resources pcs resource create hana_nfs_s1_active ocf:pacemaker:attribute active_value=true inactive_value=false name=hana_nfs_s1_active pcs resource create hana_nfs_s2_active ocf:pacemaker:attribute active_value=true inactive_value=false name=hana_nfs_s2_active # Clone the attribute resources pcs resource clone hana_nfs_s1_active meta clone-node-max=1 interleave=true pcs resource clone hana_nfs_s2_active meta clone-node-max=1 interleave=true # Configure the constraints, which will set the attribute values pcs constraint order fs_hana_shared_s1-clone then hana_nfs_s1_active-clone pcs constraint order fs_hana_shared_s2-clone then hana_nfs_s2_active-clone
提示
如果您的組態包含 /
hana/shared
以外的檔案系統,且這些文件系統已掛接 NFS,則請包含sequential=false
選項。 這個選項可確保檔案系統之間沒有排序相依性。 所有掛接的文件系統都必須在對應的屬性資源之前啟動,但不需要以彼此相對的任何順序啟動。 如需詳細資訊,請參閱當 HANA 文件系統是 NFS 共用時,如何? 在 Pacemaker 叢集中設定 SAP HANA 向外延展 HSR。[1] 讓 Pacemaker 處於維護模式,以準備建立 HANA 叢集資源。
pcs property set maintenance-mode=true
建立 SAP HANA 叢集資源
現在您已準備好建立叢集資源:
[A] 在所有叢集節點上安裝 HANA 向外延展資源代理程式,包括多數製造商。
yum install -y resource-agents-sap-hana-scaleout
注意
如需操作系統版本的最低支援套件版本
resource-agents-sap-hana-scaleout
,請參閱 叢集中 RHEL HA 叢集的支持原則 - 管理叢集中 的 SAP HANA。[1,2] 在每個系統復寫月臺的一個 HANA DB 節點上安裝 HANA 系統復寫勾點。 SAP HANA 仍應關閉。
將勾點準備為
root
。mkdir -p /hana/shared/myHooks cp /usr/share/SAPHanaSR-ScaleOut/SAPHanaSR.py /hana/shared/myHooks chown -R hn1adm:sapsys /hana/shared/myHooks
調整
global.ini
。# add to global.ini [ha_dr_provider_SAPHanaSR] provider = SAPHanaSR path = /hana/shared/myHooks execution_order = 1 [trace] ha_dr_saphanasr = info
[AH]叢集需要 sid>adm 叢集節點上<的 sudoers 設定。 在此範例中,您會藉由建立新的檔案來達成此目的。 以身分
root
執行命令。sudo visudo -f /etc/sudoers.d/20-saphana # Insert the following lines and then save Cmnd_Alias SOK = /usr/sbin/crm_attribute -n hana_hn1_glob_srHook -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SFAIL = /usr/sbin/crm_attribute -n hana_hn1_glob_srHook -v SFAIL -t crm_config -s SAPHanaSR hn1adm ALL=(ALL) NOPASSWD: SOK, SFAIL Defaults!SOK, SFAIL !requiretty
[1,2] 在兩個復寫網站上啟動 SAP HANA。 以 sid adm 身分<>執行。
sapcontrol -nr 03 -function StartSystem
[1] 確認勾點安裝。 在作用中的 HANA 系統復寫網站上以 <sid>adm 身分執行。
cdtrace awk '/ha_dr_SAPHanaSR.*crm_attribute/ \ { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_* # Example entries # 2020-07-21 22:04:32.364379 ha_dr_SAPHanaSR SFAIL # 2020-07-21 22:04:46.905661 ha_dr_SAPHanaSR SFAIL # 2020-07-21 22:04:52.092016 ha_dr_SAPHanaSR SFAIL # 2020-07-21 22:04:52.782774 ha_dr_SAPHanaSR SFAIL # 2020-07-21 22:04:53.117492 ha_dr_SAPHanaSR SFAIL # 2020-07-21 22:06:35.599324 ha_dr_SAPHanaSR SOK
[1] 建立 HANA 叢集資源。 以身分
root
執行下列命令。請確定叢集已在維護模式中。
接下來,建立 HANA 拓撲資源。
如果您要建置 RHEL 7.x 叢集,請使用下列命令:pcs resource create SAPHanaTopology_HN1_HDB03 SAPHanaTopologyScaleOut \ SID=HN1 InstanceNumber=03 \ op start timeout=600 op stop timeout=300 op monitor interval=10 timeout=600 pcs resource clone SAPHanaTopology_HN1_HDB03 meta clone-node-max=1 interleave=true
如果您要建置 RHEL >= 8.x 叢集,請使用下列命令:
pcs resource create SAPHanaTopology_HN1_HDB03 SAPHanaTopology \ SID=HN1 InstanceNumber=03 meta clone-node-max=1 interleave=true \ op methods interval=0s timeout=5 \ op start timeout=600 op stop timeout=300 op monitor interval=10 timeout=600 pcs resource clone SAPHanaTopology_HN1_HDB03 meta clone-node-max=1 interleave=true
建立 HANA 實例資源。
注意
本文包含 Microsoft 不再使用之字詞的參考。 從軟體中移除該字詞時,我們也會將其從本文中移除。
如果您要建置 RHEL 7.x 叢集,請使用下列命令:
pcs resource create SAPHana_HN1_HDB03 SAPHanaController \ SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \ op start interval=0 timeout=3600 op stop interval=0 timeout=3600 op promote interval=0 timeout=3600 \ op monitor interval=60 role="Master" timeout=700 op monitor interval=61 role="Slave" timeout=700 pcs resource master msl_SAPHana_HN1_HDB03 SAPHana_HN1_HDB03 \ meta master-max="1" clone-node-max=1 interleave=true
如果您要建置 RHEL >= 8.x 叢集,請使用下列命令:
pcs resource create SAPHana_HN1_HDB03 SAPHanaController \ SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \ op demote interval=0s timeout=320 op methods interval=0s timeout=5 \ op start interval=0 timeout=3600 op stop interval=0 timeout=3600 op promote interval=0 timeout=3600 \ op monitor interval=60 role="Master" timeout=700 op monitor interval=61 role="Slave" timeout=700 pcs resource promotable SAPHana_HN1_HDB03 \ meta master-max="1" clone-node-max=1 interleave=true
重要
當您執行故障轉移測試時,最好將 設為
AUTOMATED_REGISTER
false
,以防止失敗的主要實例自動註冊為次要實例。 測試之後,最佳做法是將 設定AUTOMATED_REGISTER
為true
,以便在接管之後,系統復寫可以自動繼續。建立虛擬IP和相關聯的資源。
pcs resource create vip_HN1_03 ocf:heartbeat:IPaddr2 ip=10.23.0.18 op monitor interval="10s" timeout="20s" sudo pcs resource create nc_HN1_03 azure-lb port=62503 sudo pcs resource group add g_ip_HN1_03 nc_HN1_03 vip_HN1_03
建立叢集條件約束。
如果您要建置 RHEL 7.x 叢集,請使用下列命令:
#Start HANA topology, before the HANA instance pcs constraint order SAPHanaTopology_HN1_HDB03-clone then msl_SAPHana_HN1_HDB03 pcs constraint colocation add g_ip_HN1_03 with master msl_SAPHana_HN1_HDB03 4000 #HANA resources are only allowed to run on a node, if the node's NFS file systems are mounted. The constraint also avoids the majority maker node pcs constraint location SAPHanaTopology_HN1_HDB03-clone rule resource-discovery=never score=-INFINITY hana_nfs_s1_active ne true and hana_nfs_s2_active ne true
如果您要建置 RHEL >= 8.x 叢集,請使用下列命令:
#Start HANA topology, before the HANA instance pcs constraint order SAPHanaTopology_HN1_HDB03-clone then SAPHana_HN1_HDB03-clone pcs constraint colocation add g_ip_HN1_03 with master SAPHana_HN1_HDB03-clone 4000 #HANA resources are only allowed to run on a node, if the node's NFS file systems are mounted. The constraint also avoids the majority maker node pcs constraint location SAPHanaTopology_HN1_HDB03-clone rule resource-discovery=never score=-INFINITY hana_nfs_s1_active ne true and hana_nfs_s2_active ne true
[1] 將叢集置於維護模式外。 請確定叢集狀態為
ok
,而且會啟動所有資源。sudo pcs property set maintenance-mode=false #If there are failed cluster resources, you may need to run the next command pcs resource cleanup
注意
上述組態中的逾時只是範例,可能需要調整為特定的 HANA 設定。 例如,如果啟動 SAP HANA 資料庫需要較長的時間,您可能需要增加啟動逾時。
設定 HANA 主動/讀取啟用的系統複寫
從 SAP HANA 2.0 SPS 01 開始,SAP 允許 SAP HANA 系統複寫的作用中/讀取設定。 透過這項功能,您可以使用 SAP HANA 系統複寫的次要系統主動進行讀取密集型工作負載。 若要在叢集中支援這類設定,您需要第二個虛擬IP位址,讓客戶端能夠存取已啟用次要讀取的SAP HANA 資料庫。 為了確保在接管發生之後仍可存取次要復寫網站,叢集必須移動虛擬IP位址與SAP HANA資源的次要複本。
本節說明在 Red Hat 高可用性叢集中,使用第二個虛擬 IP 位址來管理這種類型的系統復寫時,必須採取的其他步驟。
繼續進行之前,請確定您已完整設定 Red Hat 高可用性叢集,並管理 SAP HANA 資料庫,如本文稍早所述。
Azure Load Balancer 中啟用作用中/讀取設定的其他設定
若要繼續布建您的第二個虛擬IP,請確定您已如設定 Azure Load Balancer 中所述 設定 Azure Load Balancer。
針對標準負載平衡器,請遵循您在上一節中建立的相同負載平衡器上的這些額外步驟。
建立第二個前端 IP 集區:
- 開啟負載平衡器,選取 前端IP集區,然後選取[ 新增]。
- 輸入第二個前端IP集區的名稱(例如 hana-secondaryIP)。
- 將 [指派] 設定為 [靜態],然後輸入IP位址(例如 10.23.0.19)。
- 選取 [確定]。
- 建立新的前端 IP 集區之後,請記下集區 IP 位址。
接下來,建立健全狀態探查:
- 開啟負載平衡器、選取 健康情況探查,然後選取 [ 新增]。
- 輸入新健康情況探查的名稱(例如 hana-secondaryhp)。
- 選取 [TCP] 作為通訊 協定和埠 62603。 將 [間隔] 值設定為 5,並將 [狀況不良] 閾值設定為 2。
- 選取 [確定]。
接下來,建立負載平衡規則:
- 開啟負載平衡器,選取 負載平衡規則,然後選取 [ 新增]。
- 輸入新負載平衡器規則的名稱(例如 hana-secondarylb)。
- 選取您稍早建立的前端IP位址、後端集區和健康情況探查(例如hana-secondaryIP、hana-backend和 hana-secondaryhp)。
- 選取 [HA 埠]。
- 請務必 啟用浮動IP。
- 選取 [確定]。
設定 HANA 主動/讀取啟用的系統複寫
設定 HANA 系統復寫的步驟描述於設定 SAP HANA 2.0 系統復 寫一節。 如果您要部署已啟用讀取的次要案例,當您在第二個節點上設定系統複寫時,請以 hanasidadm 身分執行下列命令:
sapcontrol -nr 03 -function StopWait 600 10
hdbnsutil -sr_register --remoteHost=hana-s1-db1 --remoteInstance=03 --replicationMode=sync --name=HANA_S2 --operationMode=logreplay_readaccess
為啟用使用中/讀取的設定新增次要虛擬IP位址資源
您可以使用下列命令來設定第二個虛擬IP和其他條件約束。 如果次要實例關閉,次要虛擬IP將會切換至主要實例。
pcs property set maintenance-mode=true
pcs resource create secvip_HN1_03 ocf:heartbeat:IPaddr2 ip="10.23.0.19"
pcs resource create secnc_HN1_03 ocf:heartbeat:azure-lb port=62603
pcs resource group add g_secip_HN1_03 secnc_HN1_03 secvip_HN1_03
# RHEL 8.x:
pcs constraint location g_ip_HN1_03 rule score=500 role=master hana_hn1_roles eq "master1:master:worker:master" and hana_hn1_clone_state eq PROMOTED
pcs constraint location g_secip_HN1_03 rule score=50 hana_hn1_roles eq 'master1:master:worker:master'
pcs constraint order promote SAPHana_HN1_HDB03-clone then start g_ip_HN1_03
pcs constraint order start g_ip_HN1_03 then start g_secip_HN1_03
pcs constraint colocation add g_secip_HN1_03 with Slave SAPHana_HN1_HDB03-clone 5
# RHEL 7.x:
pcs constraint location g_ip_HN1_03 rule score=500 role=master hana_hn1_roles eq "master1:master:worker:master" and hana_hn1_clone_state eq PROMOTED
pcs constraint location g_secip_HN1_03 rule score=50 hana_hn1_roles eq 'master1:master:worker:master'
pcs constraint order promote msl_SAPHana_HN1_HDB03 then start g_ip_HN1_03
pcs constraint order start g_ip_HN1_03 then start g_secip_HN1_03
pcs constraint colocation add g_secip_HN1_03 with Slave msl_SAPHana_HN1_HDB03 5
pcs property set maintenance-mode=false
請確定叢集狀態為 ok
,而且會啟動所有資源。 第二個虛擬IP會在次要站臺上以及SAP HANA次要資源上執行。
# Example output from crm_mon
#Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#
#Active resources:
#
#rsc_st_azure (stonith:fence_azure_arm): Started hana-s-mm
#Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
# Started: [ hana--s1-db1 hana-s1-db2 hana-s1-db3 ]
#Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
# Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
# Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
#Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
# Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
# Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
# Masters: [ hana-s1-db1 ]
# Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Resource Group: g_ip_HN1_03
# nc_HN1_03 (ocf::heartbeat:azure-lb): Started hana-s1-db1
# vip_HN1_03 (ocf::heartbeat:IPaddr2): Started hana-s1-db1
#Resource Group: g_secip_HN1_03
# secnc_HN1_03 (ocf::heartbeat:azure-lb): Started hana-s2-db1
# secvip_HN1_03 (ocf::heartbeat:IPaddr2): Started hana-s2-db1
在下一節中,您可以找到要執行的一組一般故障轉移測試。
當您測試以已啟用讀取的次要複本設定的 HANA 叢集時,請注意第二個虛擬 IP 的下列行為:
當叢集資源 SAPHana_HN1_HDB03 移至次要月臺 (S2),第二個虛擬IP會移至另一個月 臺 hana-s1-db1。 如果您已設定
AUTOMATED_REGISTER="false"
,且未自動註冊 HANA 系統複寫,則第二個虛擬 IP 將會在 hana-s2-db1 上執行。當您測試伺服器當機時,第二個虛擬IP資源(secvip_HN1_03) 和 Azure Load Balancer 埠資源 (secnc_HN1_03) 會與主要虛擬IP資源一起在主伺服器上執行。 當輔助伺服器關閉時,連線到已啟用讀取的 HANA 資料庫的應用程式將會連線到主要 HANA 資料庫。 此行為是預期的。 它可讓連線到已啟用讀取的 HANA 資料庫的應用程式在輔助伺服器無法使用時運作。
在故障轉移和後援期間,使用第二個虛擬IP連線到HANA資料庫的應用程式的現有連線可能會中斷。
測試 SAP HANA 故障轉移
開始測試之前,請先檢查叢集和 SAP HANA 系統復寫狀態。
確認沒有失敗的叢集動作。
#Verify that there are no failed cluster actions pcs status # Example #Stack: corosync #Current DC: hana-s-mm (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum #Last updated: Thu Sep 24 06:00:20 2020 #Last change: Thu Sep 24 05:59:17 2020 by root via crm_attribute on hana-s1-db1 # #7 nodes configured #45 resources configured # #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # #Active resources: # #rsc_st_azure (stonith:fence_azure_arm): Started hana-s-mm #Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1] # Started: [ hana--s1-db1 hana-s1-db2 hana-s1-db3 ] #Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2] # Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ] #Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ] #Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active] # Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ] #Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] #Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03] # Masters: [ hana-s1-db1 ] # Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] #Resource Group: g_ip_HN1_03 # nc_HN1_03 (ocf::heartbeat:azure-lb): Started hana-s1-db1 # vip_HN1_03 (ocf::heartbeat:IPaddr2): Started hana-s1-db1
確認 SAP HANA 系統複寫同步。
# Verify HANA HSR is in sync sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py" #| Database | Host | Port | Service Name | Volume ID | Site ID | Site Name | Secondary | Secondary| Secondary | Secondary | Secondary | Replication | Replication | Replication | #| | | | | | | | Host | Port | Site ID | Site Name | Active Status | Mode | Status | Status Details | #| -------- | ----------- | ----- | ------------ | --------- | ------- | --------- | ------------- | -------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- | #| HN1 | hana-s1-db3 | 30303 | indexserver | 5 | 2 | HANA_S1 | hana-s2-db3 | 30303 | 1 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db2 | 30303 | indexserver | 4 | 2 | HANA_S1 | hana-s2-db2 | 30303 | 1 | HANA_S2 | YES | SYNC | ACTIVE | | #| SYSTEMDB | hana-s1-db1 | 30301 | nameserver | 1 | 2 | HANA_S1 | hana-s2-db1 | 30301 | 1 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db1 | 30307 | xsengine | 2 | 2 | HANA_S1 | hana-s2-db1 | 30307 | 1 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db1 | 30303 | indexserver | 3 | 2 | HANA_S1 | hana-s2-db1 | 30303 | 1 | HANA_S2 | YES | SYNC | ACTIVE | | #status system replication site "1": ACTIVE #overall system replication status: ACTIVE #Local System Replication State #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #mode: PRIMARY #site id: 1 #site name: HANA_S1
當節點失去 NFS 共用的存取權時,請確認失敗案例的叢集組態 。
/hana/shared
SAP HANA 資源代理程式相依於儲存在 上的
/hana/shared
二進位檔,以在故障轉移期間執行作業。 在呈現的組態中,文件系統/hana/shared
會透過NFS掛接。 可執行的測試是建立暫時防火牆規則,以封鎖其中一個主要月臺 VM 上 NFS 掛接文件系統的存取/hana/shared
。 如果作用中的系統復寫網站上遺失存取/hana/shared
權,此方法會驗證叢集是否會故障轉移。預期結果:當您封鎖其中一個主要月臺 VM 上 NFS 掛接檔系統的存取
/hana/shared
時,在文件系統上執行讀取/寫入作業的監視作業將會失敗,因為它無法存取檔系統,而且會觸發 HANA 資源故障轉移。 當您的 HANA 節點失去 NFS 共用的存取權時,預期會有相同的結果。您可以執行
crm_mon
或pcs status
來檢查叢集資源的狀態。 開始測試之前的資源狀態:# Output of crm_mon #7 nodes configured #45 resources configured #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # #Active resources: #rsc_st_azure (stonith:fence_azure_arm): Started hana-s-mm # Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ] # Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2] # Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ] # Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active] # Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03] # Masters: [ hana-s1-db1 ] # Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Resource Group: g_ip_HN1_03 # nc_HN1_03 (ocf::heartbeat:azure-lb): Started hana-s1-db1 # vip_HN1_03 (ocf::heartbeat:IPaddr2): Started hana-s1-db1
若要模擬 的
/hana/shared
失敗:- 如果在 ANF 上使用 NFS,請先確認主要站臺上 ANF 磁碟區的 IP 位址
/hana/shared
。 您可以藉由執行df -kh|grep /hana/shared
來執行。 - 如果在 Azure 檔案儲存體 上使用 NFS,請先判斷記憶體帳戶私人端點的 IP 位址。
然後,在其中一個主要 HANA 系統復寫網站 VM 上執行下列命令,以設定暫時防火牆規則,以封鎖對 NFS 檔案系統 IP 位址
/hana/shared
的存取。在此範例中,此命令是在 ANF
/hana/shared
磁碟區的 hana-s1-db1 上執行。iptables -A INPUT -s 10.23.1.7 -j DROP; iptables -A OUTPUT -d 10.23.1.7 -j DROP
遺失存取權
/hana/shared
的 HANA VM 應該根據叢集組態重新啟動或停止。 叢集資源會移轉至其他 HANA 系統複寫網站。如果叢集尚未在重新啟動的 VM 上啟動,請執行下列命令來啟動叢集:
# Start the cluster pcs cluster start
叢集啟動時,會自動掛接文件系統
/hana/shared
。 如果您設定AUTOMATED_REGISTER="false"
,則必須在次要網站上設定 SAP HANA 系統複寫。 在此情況下,您可以執行這些命令,將 SAP HANA 重新設定為次要。# Execute on the secondary su - hn1adm # Make sure HANA is not running on the secondary site. If it is started, stop HANA sapcontrol -nr 03 -function StopWait 600 10 # Register the HANA secondary site hdbnsutil -sr_register --name=HANA_S1 --remoteHost=hana-s2-db1 --remoteInstance=03 --replicationMode=sync # Switch back to root and clean up failed resources pcs resource cleanup SAPHana_HN1_HDB03
測試之後的資源狀態:
# Output of crm_mon #7 nodes configured #45 resources configured #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] #Active resources: #rsc_st_azure (stonith:fence_azure_arm): Started hana-s-mm # Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ] # Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2] # Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ] # Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active] # Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03] # Masters: [ hana-s2-db1 ] # Slaves: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db2 hana-s2-db3 ] # Resource Group: g_ip_HN1_03 # nc_HN1_03 (ocf::heartbeat:azure-lb): Started hana-s2-db1 # vip_HN1_03 (ocf::heartbeat:IPaddr2): Started hana-s2-db1
- 如果在 ANF 上使用 NFS,請先確認主要站臺上 ANF 磁碟區的 IP 位址
最好透過在 RHEL 上針對 SAP HANA on Azure VM 的 HA 中記載的測試,徹底測試 SAP HANA 叢集組態。
下一步
- 適用於 SAP 的 Azure 虛擬機器 規劃和實作
- 適用於 SAP 的 Azure 虛擬機器 部署
- 適用於 SAP 的 Azure 虛擬機器 DBMS 部署
- Azure NetApp Files for SAP HANA 上的 NFS v4.1 磁碟區
- 若要瞭解如何建立 SAP HANA on Azure VM 災害復原的高可用性,請參閱 Azure VM 上的 SAP HANA 高可用性。