教學課程:使用高可用性和災害復原將 WebSphere 應用程式伺服器遷移至 Azure 虛擬機器
本教學課程說明在 Azure 虛擬機器 (VM) 上使用 WebSphere 應用程式伺服器為 Java 實作高可用性和災害復原 (HA/DR) 的簡單且有效方式。 此解決方案說明如何使用在 WebSphere 應用程式伺服器上執行的簡單資料庫驅動 Jakarta EE 應用程式,達到低復原時間目標 (RTO) 和恢復點目標 (RPO)。 HA/DR 是一個複雜的主題,有許多可能的解決方案。 最佳解決方案取決於您的獨特需求。 如需實作 HA/DR 的其他方式,請參閱本文結尾的資源。
在本教學課程中,您會了解如何:
- 使用 Azure 優化的最佳作法來達成高可用性和災害復原。
- 在配對區域中設定 Microsoft Azure SQL 資料庫 故障轉移群組。
- 在 Azure VM 上設定主要 WebSphere 叢集。
- 使用 Azure Site Recovery 設定叢集的災害復原。
- 設定 Azure 流量管理員。
- 測試從主要故障轉移到次要複本。
下圖說明您所建置的架構:
Azure 流量管理員 檢查區域的健康情況,並據以將流量路由傳送至應用層。 主要區域具有 WebSphere 叢集的完整部署。 在 Azure Site Recovery 保護主要區域之後,您可以在故障轉移期間還原次要區域。 因此,主要區域會主動為使用者的網路要求提供服務,而次要區域是被動的,而且只有在主要區域遇到服務中斷時才會接收流量。
Azure 流量管理員 會偵測部署在 IBM HTTP Server 中應用程式的健康情況,以實作條件式路由。 應用層的異地故障轉移 RTO 取決於關閉主要叢集、還原次要叢集、啟動 VM 和執行次要 WebSphere 叢集的時間。 RPO 取決於 Azure Site Recovery 和 Azure SQL 資料庫 的複製策略。 此相依性是因為叢集數據會儲存並復寫在 VM 的本機記憶體中,而且應用程式數據會保存在 Azure SQL 資料庫 故障轉移群組中並復寫。
上圖顯示主要區域和次要區域,作為組成HA/DR架構的兩個區域。 這些區域必須是 Azure 配對的區域。 如需配對區域的詳細資訊,請參閱 Azure 跨區域複寫。 本文使用美國東部和美國西部作為兩個區域,但它們可以是任何對您的案例有意義的配對區域。 如需區域配對的清單,請參閱 Azure 跨區域複寫的 Azure 配對區域一節。
資料庫層是由具有主伺服器和輔助伺服器的 Azure SQL 資料庫 故障轉移群組所組成。 讀取/寫入接聽程式端點一律指向主伺服器,並聯機到每個區域中的WebSphere叢集。 異地容錯移轉會將群組中所有次要資料庫切換到主要角色。 如需 Azure SQL 資料庫 的異地故障轉移 RPO 和 RTO,請參閱 Azure SQL 資料庫 商務持續性概觀。
本教學課程是以 Azure Site Recovery 和 Azure SQL 資料庫 服務撰寫,因為本教學課程依賴這些服務的 HA 功能。 其他資料庫選擇是可能的,但您必須考慮您選擇的任何資料庫的HA功能。
必要條件
- Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
- 請確定您在訂用
Contributor
帳戶中具有角色。 您可以依照使用 Azure 入口網站 列出 Azure 角色指派中的步驟來確認指派。 - 準備已安裝 Windows、Linux 或 macOS 的本機電腦。
- 安裝和設定 Git。
- 安裝 Java SE 實作版本 17 或更新版本 - 例如 OpenJDK 的Microsoft組建。
- 安裝 Maven 3.9.3 版或更新版本。
在配對區域中設定 Azure SQL 資料庫 故障轉移群組
在本節中,您會在配對區域中建立 Azure SQL 資料庫 故障轉移群組,以搭配 WebSphere 叢集和應用程式使用。 在稍後的章節中,您會設定 WebSphere 將其會話資料儲存至此資料庫。 這種做法參考 建立會話持續性的數據表。
首先,遵循快速入門:建立單一資料庫 - Azure SQL 資料庫 中的 Azure 入口網站 步驟,建立主要 Azure SQL 資料庫。 請遵循步驟,但不包括「清除資源」一節。 當您流覽本文時,請使用下列指示,然後在建立並設定 Azure SQL 資料庫 之後返回本文:
當您連線到建立單一資料庫一節時,請使用下列步驟:
- 在建立新資源群組的步驟 4 中,儲存 [ 資源組名] 值 ,例如
myResourceGroup
。 - 在資料庫名稱的步驟 5 中,另存另一 個資料庫名稱 值 ,例如
mySampleDatabase
。 - 在建立伺服器的步驟 6 中,使用下列步驟:
- 填入唯一的伺服器名稱,例如
sqlserverprimary-mjg022624
。 - 針對 [ 位置],選取 [美國) 美國東部]。
- 針對 [ 驗證方法],選取 [ 使用 SQL 驗證]。
- 將伺服器管理員登入值儲存
azureuser
- 請儲存 [ 密碼 ] 值。
- 填入唯一的伺服器名稱,例如
- 在步驟 8 中,針對 [工作負載環境],選取 [ 開發]。 查看描述,並考慮工作負載的其他選項。
- 在步驟 11 中,針對 [備份記憶體備援],選取 [ 本地備援備份記憶體]。 請考慮備份的其他選項。 如需詳細資訊,請參閱 Azure SQL 資料庫 中自動備份的備份記憶體備援一節。
- 在步驟 14 的 [防火牆規則 設定] 中,針對 [允許 Azure 服務和資源存取此伺服器],選取 [ 是]。
- 在建立新資源群組的步驟 4 中,儲存 [ 資源組名] 值 ,例如
當您連線到查詢資料庫一節時,請使用下列步驟:
在步驟 3 中,輸入您的 SQL 驗證 伺服器管理員登入資訊以登入。
注意
如果登入失敗,並出現類似IP位址為 『xx.xx.xx.xx』 的客戶端無法存取伺服器的錯誤訊息,請在錯誤訊息結尾選取 <[允許清單 IP xx.xx.xx.xx]。> 等候伺服器防火牆規則完成更新,然後再次選取 [ 確定 ]。
在步驟 5 中執行範例查詢之後,請清除編輯器並輸入下列查詢,然後再次選取 [ 執行 ]:
CREATE TABLE sessions ( ID VARCHAR(128) NOT NULL, PROPID VARCHAR(128) NOT NULL, APPNAME VARCHAR(128) NOT NULL, LISTENERCNT SMALLINT, LASTACCESS BIGINT, CREATIONTIME BIGINT, MAXINACTIVETIME INT, USERNAME VARCHAR(256), SMALL VARBINARY(MAX), MEDIUM VARCHAR(MAX), LARGE VARBINARY(MAX) );
成功執行之後,您應該會看到「查詢成功: 受影響的資料列: 0」訊息。
資料庫數據表
sessions
用於儲存 WebSphere 應用程式的作業階段資料。 包含事務歷史記錄的 WebSphere 叢集數據會保存至部署叢集之 VM 的本機記憶體。
然後,依照設定 Azure SQL 資料庫 故障轉移群組中的 Azure 入口網站 步驟,建立 Azure SQL 資料庫 故障轉移群組。 您只需要下列各節: 建立故障轉移群組 和 測試計劃性故障轉移。 當您完成本文時,請使用下列步驟,然後在建立及設定 Azure SQL 資料庫 故障轉移群組之後返回本文:
在 [建立故障轉移群組] 區段中,使用下列步驟:
- 在建立故障轉移群組的步驟 5 中,輸入並儲存唯一的故障轉移組名,例如
failovergroup-mjg022624
。 - 在設定伺服器的步驟 5 中,選取選項以建立新的輔助伺服器,然後使用下列步驟:
- 輸入唯一的伺服器名稱 ,例如
sqlserversecondary-mjg022624
。 - 輸入與主伺服器相同的伺服器管理員和密碼。
- 針對 [ 位置],選取 [美國) 美國西部]。
- 請確定 已選取 [允許 Azure 服務存取伺服器 ]。
- 輸入唯一的伺服器名稱 ,例如
- 在設定群組內資料庫的步驟 5 中,選取您在主伺服器中建立的資料庫,例如
mySampleDatabase
。
- 在建立故障轉移群組的步驟 5 中,輸入並儲存唯一的故障轉移組名,例如
完成測試計劃性故障轉移一節中的所有步驟之後,請將故障轉移群組頁面保持開啟,並在稍後用於 WebSphere 叢集的故障轉移測試。
注意
本文會引導您建立具有 SQL 驗證的 Azure SQL Database 單一資料庫。 更安全的做法是針對 Azure SQL 使用
在 Azure VM 上設定主要 WebSphere 叢集
在本節中,您會使用 Azure VM 上的 IBM WebSphere 應用程式伺服器叢集,在 Azure VM 上建立主要 WebSphere 叢集。 次要叢集會在故障轉移期間於稍後使用 Azure Site Recovery 從主要叢集還原。
部署主要 WebSphere 叢集
首先,在瀏覽器中開啟 Azure VM 上的 IBM WebSphere 應用程式伺服器叢集,然後選取 [ 建立]。 您應該會看到 供應專案的 [基本] 窗格。
使用下列步驟填寫 [基本] 窗格:
- 請確定 [ 訂用帳戶 ] 所顯示的值與必要條件區段中所列角色的值相同。
- 您必須在空的資源群組中部署供應項目。 在 [ 資源群組 ] 字段中,選取 [新建 ] 並填入資源群組的唯一值,例如
was-cluster-eastus-mjg022624
。 - 在 [實例詳細數據] 底下,針對 [區域],選取 [美國東部]。
- 針對 [使用現有的 WebSphere 權利或評估授權進行部署?],請選取 本教學課程的 [評估 ]。 您也可以選取 [已授權] 並提供 IBMid 認證。
- 選取 [我已閱讀並接受 IBM 許可協定]。
- 保留其他欄位的預設值。
- 選取 [下一步 ] 以移至 [ 叢集組態 ] 窗格。
使用下列步驟填寫 [ 叢集組態 ] 窗格:
- 針對 VM 系統管理員的密碼,提供密碼。 為了獲得更好的安全性,請考慮使用 SSH 公鑰 作為 VM 驗證類型。
- 針對 WebSphere 系統管理員的密碼,請提供密碼。 請保留 WebSphere 系統管理員的使用者名稱和密碼。
- 保留其他欄位的預設值。
- 選取 [下一步 ] 以移至 [負載平衡器] 窗格。
使用下列步驟填寫 負載平衡器 窗格:
- 針對 VM 系統管理員的密碼,提供密碼。 為了獲得更好的安全性,請考慮使用 SSH 公鑰 作為 VM 驗證。
- 針對 IBM HTTP 伺服器系統管理員的密碼,請提供密碼。
- 保留其他欄位的預設值。
- 選取 [下一步 ] 以移至 [ 網络] 窗格。
您應該會在 [網络] 窗格中看到所有預先填入預設值的欄位。 選取 [下一步 ] 以移至 [ 資料庫] 窗格。
下列步驟示範如何填寫 [ 資料庫 ] 窗格:
- 針對 [ 連線到資料庫?],選取 [ 是]。
- 針對 [ 選擇資料庫類型],選取 [Microsoft SQL Server ]。
- 針對 [JNDI 名稱],輸入 jdbc/WebSphereCafeDB。
- 針對數據源 連接字串 (jdbc:sqlserver://<host>:<port>;database=<database>),將佔位元取代為您在上一節中為 Azure SQL 資料庫 故障轉移群組儲存的值,例如
jdbc:sqlserver://failovergroup-mjg022624.database.windows.net:1433;database=mySampleDatabase
。 - 針對 [ 資料庫使用者名稱],輸入伺服器管理員登入名稱和您在上一節中儲存的故障轉移組名 ,例如
azureuser@failovergroup-mjg022624
。注意
請特別小心,針對故障轉移群組使用正確的資料庫伺服器主機名和資料庫用戶名稱,而不是主資料庫或備份資料庫中的伺服器主機名和用戶名稱。 藉由使用故障轉移群組中的值,您實際上會告訴 WebSphere 與故障轉移群組交談。 不過,就 WebSphere 而言,這隻是一般資料庫連線。
- 輸入您先前 針對資料庫密碼所儲存的伺服器管理員登入密碼。 針對 [確認密碼] 輸入相同的值。
- 保留其他欄位的預設值。
- 選取 [檢閱 + 建立]。
- 等到 執行最終驗證 ...成功完成,然後選取 [ 建立]。
注意
本文會引導您使用 SQL 驗證連線到 Azure SQL Database。 更安全的做法是針對 Azure SQL 使用
一段時間之後,您應該會看到 [部署進行中] 頁面。
注意
如果您在執行最終驗證期間 看到任何問題...,請加以修正,然後再試一次。
視所選區域中的網路狀況和其他活動而定,部署最多可能需要 25 分鐘才能完成。 之後,您應該會在部署頁面上看到 [您的部署已完成] 文字顯示。
確認叢集的部署
您已在叢集中部署 IBM HTTP 伺服器 (IHS) 和 WebSphere 部署管理員 (Dmgr)。 IHS 可作為叢集中所有應用程式伺服器的負載平衡器。 Dmgr 提供用於叢集設定的 Web 控制台。
使用下列步驟來確認 IHS 和 Dmgr 控制台是否運作,再移至下一個步驟:
返回 [ 部署] 頁面,然後選取 [ 輸出]。
複製 ihsConsole 屬性的值。 在新瀏覽器索引標籤開啟該網址。請注意,我們在此範例中不會
https
用於 IHS。 您應該會看到 IHS 的歡迎頁面,而不會顯示任何錯誤訊息。 如果您未這麼做,您必須先針對問題進行疑難解答並加以解決,才能繼續。 讓主控台保持開啟,並在稍後使用它來驗證叢集的應用程式部署。複製並儲存屬性 adminSecuredConsole 的值。 在新的瀏覽器索引標籤開啟它。接受自我簽署 TLS 憑證的瀏覽器警告。 請勿使用自我簽署 TLS 憑證進入生產環境。
您應該會看到 WebSphere 整合式解決方案主控台的登入頁面。 使用您先前儲存的 WebSphere 系統管理員的使用者名稱和密碼登入主控台。 如果您無法登入,您必須先進行疑難解答並解決問題,才能繼續。 讓主控台保持開啟,稍後再將其用於 WebSphere 叢集的進一步設定。
使用下列步驟來取得IHS的公用IP位址名稱。 稍後設定 Azure 流量管理員 時,就會使用它。
- 開啟部署叢集的資源群組 -例如,選取 [概觀 ] 以切換回部署頁面的 [概觀] 窗格,然後選取 [移至資源群組]。
- 在資源數據表中,尋找 [ 類型 ] 資料行。 選取它以依資源類型排序。
- 尋找前面加上 的
ihs
資源,然後複製並儲存其名稱。
設定叢集
首先,使用下列步驟啟用 [同步處理變更與節點] 選項,讓任何組態都能自動同步處理至所有應用程式伺服器:
- 切換回 WebSphere 整合式解決方案控制台,如果您註銷,請再次登入。
- 在瀏覽窗格中,選取 [系統管理控制台喜好設定>]。
- 在 [ 控制台喜好設定 ] 窗格中,選取 [與節點同步處理變更],然後選取 [ 套用]。 您應該會看到您的喜好設定已變更的訊息 。
然後,使用下列步驟來設定所有應用程式伺服器的資料庫 分散式工作階段 :
- 在瀏覽窗格中,選取 [伺服器>>WebSphere] 應用程式伺服器。
- 在 [ 應用程式伺服器] 窗格中,您應該會看到列出 3 部應用程式伺服器。 針對每個應用程式伺服器,請使用下列指示來設定資料庫分散式會話:
- 在文字 下方的數據表中,您可以管理下列資源,選取應用程式伺服器的超連結,其開頭為
MyCluster
。 - 在 [容器設定] 區段中,選取 [會話管理]。
- 在 [ 其他屬性] 區段中,選取 [分散式環境設定]。
- 針對 [分散式會話],選取 [資料庫][僅支援Web容器]。]。
- 選取 [資料庫 ],並使用下列步驟:
- 針對 Datasource JNDI 名稱,輸入 jdbc/WebSphereCafeDB。
- 針對[ 使用者識別碼],輸入伺服器管理員登入名稱和您在上一節中儲存的故障轉移組名 ,例如
azureuser@failovergroup-mjg022624
。 - 填入您先前 針對密碼所儲存的 Azure SQL Server 管理員登入密碼。
- 針對 [數據表空間名稱],輸入 會話。
- 選取 [ 使用多重數據列架構]。
- 選取 [確定]。 系統會將您導向回 [分散式環境設定 ] 窗格。
- 在 [ 其他屬性] 區段下,選取 [ 自定義微調參數]。
- 針對 [微調層級],選取 [低] (針對故障轉移優化)。
- 選取 [確定]。
- 在 [訊息] 底下,選取 [儲存]。 等到完成為止。
- 從頂端階層連結列選取 [應用程式伺服器 ]。 系統會將您導向回 [應用程式伺服器] 窗格。
- 在文字 下方的數據表中,您可以管理下列資源,選取應用程式伺服器的超連結,其開頭為
- 在瀏覽窗格中,選取 [伺服器>>][WebSphere] 應用程式伺服器叢集。
- 在 [ WebSphere 應用程式伺服器叢集 ] 窗格中,您應該會看到列出的叢集
MyCluster
。 選取 MyCluster 旁的複選框。 - 選取 [ 波紋][開始]。
- 等到叢集重新啟動為止。 您可以選取 [狀態 ] 圖示,如果新視窗未顯示 [已啟動],請切換回控制台,並在一段時間后重新整理網頁。 重複作業,直到您看到 [已啟動]。 在到達 [已啟動] 狀態之前,您可能會看到 [部分開始]
讓主控台保持開啟,稍後再將其用於應用程式部署。
部署範例應用程式
本節說明如何在 WebSphere 叢集上部署和執行範例 CRUD Java/Jakarta EE 應用程式,以便稍後進行災害復原故障轉移測試。
您已將應用程式伺服器設定為使用數據源 jdbc/WebSphereCafeDB
來儲存先前的會話數據,以便跨 WebSphere 應用程式伺服器的叢集進行故障轉移和負載平衡。 範例應用程式也會設定 持續性架構 ,以將應用程式資料 coffee
保存在相同的數據源 jdbc/WebSphereCafeDB
中。
首先,使用下列命令來下載、建置和封裝範例:
git clone https://github.com/Azure-Samples/websphere-cafe
cd websphere-cafe
git checkout 20240326
mvn clean package
如果您看到有關處於 Detached HEAD
狀態的訊息,則此訊息是安全的忽略。
套件應該成功產生,並位於 >。 如果您看不到套件,則必須先進行疑難排解並解決問題,再繼續進行。
然後,使用下列步驟將範例應用程式部署至叢集:
- 切換回 WebSphere 整合式解決方案控制台,如果您註銷,請再次登入。
- 在瀏覽窗格中,選取 >WebSphere 企業應用程式]。
- 在 [企業應用程式] 窗格中,選取 [安裝>選擇檔案]。 然後,尋找位於 > 的套件,然後選取 [開啟]。 選取 [>步]。>
- 在 [對應模組到伺服器] 窗格中,按 Ctrl 並選取 [叢集和伺服器] 底下所列的所有專案。 選取 websphere-café.war 旁的複選框。 選取套用。 選取 [下一步 ],直到您看到 [ 完成] 按鈕為止。
- 選取 [完成儲存>],然後等候完成。 選取 [確定]。
- 選取已安裝的應用程式
websphere-cafe
,然後選取 [ 啟動]。 等到您看到指出應用程式已成功啟動的訊息。 如果您看不到成功的訊息,您必須先進行疑難解答並解決問題,才能繼續。
現在,使用下列步驟來確認應用程式如預期般執行:
切換回IHS主控台。 將已部署應用程式的內容根附加
/websphere-cafe/
至網址列,例如 ,http://ihs70685e.eastus.cloudapp.azure.com/websphere-cafe/
然後按 Enter。 您應該會看到範例應用程式的歡迎頁面。使用名稱和價格建立新的咖啡 ,例如,價格 $10 的 Coffee 1 ,這會保存在應用程式數據表和資料庫的會話數據表中。 您看到的 UI 應該類似下列螢幕快照:
如果您的 UI 看起來不類似,請針對您繼續的問題進行疑難解答並加以解決。
使用 Azure Site Recovery 設定叢集的災害復原
在本節中,您會遵循教學課程:設定 Azure VM 災害復原中的 步驟,使用 Azure Site Recovery 為主要叢集中的 Azure VM 設定災害復原。 您只需要下列各節: 建立復原服務保存庫 並 啟用複寫。 當您完成本文時,請注意下列步驟,然後在主要叢集受到保護之後返回本文:
在建立復原服務保存庫一節中,使用下列步驟:
在資源群組的步驟 5 中,在訂用帳戶中建立具有唯一名稱的新資源群組,例如
was-cluster-westus-mjg022624
。儲存庫名稱的步驟 6 中,提供儲存庫名稱 ,例如
recovery-service-vault-westus-mjg022624
。在 [ 區域] 的步驟 7 中,選取 [ 美國西部]。
在步驟 8 中選取 [ 檢閱 + 建立 ] 之前,請選取 [ 下一步:備援]。 在 [備援] 窗格中,針對 [備份記憶體備援] 選取 [異地備援],然後選取 [啟用跨區域還原]。
注意
請務必在 [備援] 窗格中選取 [備份記憶體備援] 和 [啟用跨區域還原的異地備援]。 否則,主要叢集的記憶體無法復寫到次要區域。
遵循啟用 Site Recovery 一節 中的步驟來啟用 Site Recovery。
當您到達 [啟用複寫] 區段時,請使用下列步驟:
- 在 [選取來源設定] 區段中,使用下列步驟:
在 [區域] 中,選取 [美國東部]。
針對 [ 資源群組],選取部署主要叢集的資源,例如
was-cluster-eastus-mjg022624
。注意
如果未列出所需的資源群組,您可以先針對區域選取 [美國西部],然後切換回 [美國東部]。
保留其他欄位的預設值。 選取 [下一步]。
- 在 [選取 VM] 區段中,針對 [虛擬機],選取列出的五個 VM,然後選取 [下一步]。
- 在檢閱複寫設定一節中,使用下列步驟:
- 針對 [ 目標位置],選取 [美國西部]。
- 針對 [ 目標資源群組],選取部署服務復原保存庫的資源群組,例如
was-cluster-westus-mjg022624
。 - 記下新的故障轉移虛擬網路和故障轉移子網,這些子網會從主要區域中的虛擬網路和故障轉移子網對應。
- 保留其他欄位的預設值。
- 選取 [下一步]。
- 在 [管理] 區段中,使用下列步驟:
- 針對 [ 複寫策略],請使用默認 原則 24 小時保留原則。 您也可以為您的企業建立新的原則。
- 保留其他欄位的預設值。
- 選取 [下一步]。
- 在 [檢閱] 區段中,使用下列步驟:
- 在 [選取來源設定] 區段中,使用下列步驟:
接下來,建立復原計劃以包含所有復寫的專案,讓它們能夠一起故障轉移。 使用建立復原方案中的指示,並搭配下列自定義專案:
- 在步驟 2 中,輸入方案的名稱,例如
recovery-plan-mjg022624
。 - 在步驟 3 中,針對 [來源],選取 [ 美國 東部],然後選取 [ 目標],選取 [ 美國西部]。
- 在 [選取專案] 的步驟 4 中,選取本教學課程中所有五個受保護的 VM。
接下來,您會建立復原方案。 讓頁面保持開啟狀態,以便稍後使用頁面進行故障轉移測試。
次要區域的進一步網路設定
您也需要進一步的網路設定,才能啟用和保護故障轉移事件中次要區域的外部存取。 針對此組態,請使用下列步驟:
遵循快速入門:使用 Azure 入口網站 建立公用IP位址,並依照下列自定義專案,在次要區域中建立 Dmgr 的公用IP位址:
- 針對 [ 資源群組],選取部署服務復原保存庫的資源群組,例如
was-cluster-westus-mjg022624
。 - 針對 [ 區域],選取 [美國) 美國西部]。
- 針對 [ 名稱],輸入值 - 例如
dmgr-public-ip-westus-mjg022624
。 - 針對 DNS 名稱標籤,輸入唯一值 ,例如
dmgrmjg022624
。
- 針對 [ 資源群組],選取部署服務復原保存庫的資源群組,例如
遵循相同的指南,在次要區域中建立 IHS 的另一個公用 IP 位址,並自定義下列專案:
- 針對 [ 資源群組],選取部署服務復原保存庫的資源群組,例如
was-cluster-westus-mjg022624
。 - 針對 [ 區域],選取 [美國) 美國西部]。
- 針對 [ 名稱],輸入值 - 例如
ihs-public-ip-westus-mjg022624
。 寫下來。 - 針對 DNS 名稱標籤,輸入唯一值 ,例如
ihsmjg022624
。
- 針對 [ 資源群組],選取部署服務復原保存庫的資源群組,例如
依照建立、變更或刪除網路安全組的建立、變更或刪除網路安全組一節中的指示,在次要區域中建立網路安全組,並自定義下列專案:
- 針對 [ 資源群組],選取部署服務復原保存庫的資源群組,例如
was-cluster-westus-mjg022624
。 - 針對 [ 名稱],輸入值 - 例如
nsg-westus-mjg022624
。 - 針對 [區域],選取 [美國西部]。
- 針對 [ 資源群組],選取部署服務復原保存庫的資源群組,例如
依照相同文章的建立安全性規則一節中的 指示,使用下列自定義來建立網路安全組的輸入安全性規則 :
- 在步驟 2 中,選取您建立的網路安全組,例如
nsg-westus-mjg022624
。 - 在步驟 3 中,選取 [ 輸入安全性規則]。
- 在步驟 4 中,自定義下列設定:
- 針對 [目的地埠範圍],輸入 9060,9080,9043,9443,80。
- 在 [通訊協定] 中,選取 [TCP]。
- 針對 [名稱],輸入 ALLOW_HTTP_ACCESS。
- 在步驟 2 中,選取您建立的網路安全組,例如
遵循將網路安全組與子網建立關聯,方法是遵循 將網路安全組與相同文章的子網 區段建立關聯或解除關聯,並進行下列自定義:
- 在步驟 2 中,選取您建立的網路安全組,例如
nsg-westus-mjg022624
。 - 選取 [關聯 ] 將網路安全組與您先前所記錄的故障轉移子網產生關聯。
- 在步驟 2 中,選取您建立的網路安全組,例如
設定 Azure 流量管理員
在本節中,您會建立一個 Azure 流量管理員,將流量分散到全球 Azure 區域的公用面向應用程式。 主要端點會指向主要區域中 IHS 的公用IP位址。 次要端點會指向次要區域中 IHS 的公用IP位址。
依照快速入門中的指示建立 Azure 流量管理員 配置檔:使用 Azure 入口網站 建立 流量管理員 配置檔。 您只需要下列各節:建立 流量管理員 配置檔和新增 流量管理員 端點。 您必須略過導向以建立 App Service 資源的區段。 當您瀏覽這些區段時,請使用下列步驟,然後在建立並設定 Azure 流量管理員 之後返回本文。
在建立 流量管理員 配置檔一節中,針對 [建立 流量管理員 配置檔] 的步驟 2,使用下列步驟:
- 將唯一的 流量管理員 設定檔名稱儲存在 [名稱] 中,例如
tmprofile-mjg022624
。 - 請儲存資源群組的新資源群組名稱,例如
myResourceGroupTM1
。
- 將唯一的 流量管理員 設定檔名稱儲存在 [名稱] 中,例如
當您到達 [新增 流量管理員 端點] 區段時,請使用下列步驟:
- 在步驟 2 中開啟 流量管理員 配置文件之後,請在 [組態] 頁面中,使用下列步驟:
- 針對 DNS 存留時間 (TTL),輸入 10。
- 在 [端點監視器設定] 底下,針對 [路徑] 輸入 /websphere-café/,這是已部署範例應用程式的內容根目錄。
- 在 [快速端點故障轉移設定] 底下,使用下列值:
- 針對 [ 探查內部],選取 [10]。
- 針對 容許的失敗次數,輸入 3。
- 針對探 查逾時,請使用 5。
- 選取 [儲存]。 等到它完成。
- 在新增主要端點
myPrimaryEndpoint
的步驟 4 中,使用下列步驟:- 針對 [ 目標資源類型],選取 [ 公用IP位址]。
- 選取 [ 選擇公用IP 位址 ] 下拉式清單,然後輸入您先前在美國東部區域中 IHS 的公用IP位址名稱。 您應該會看到一個專案相符。 針對 [公用 IP 位址] 選取它。
- 在新增故障轉移/次要端點
myFailoverEndpoint
的步驟 6 中,使用下列步驟:- 針對 [ 目標資源類型],選取 [ 公用IP位址]。
- 選取 [ 選擇公用IP 位址 ] 下拉式清單,然後輸入您先前在美國西部區域中 IHS 的公用IP位址名稱。 您應該會看到一個專案相符。 針對 [公用 IP 位址] 選取它。
- 請稍候一段時間。 選取 [重新整理],
myPrimaryEndpoint
] 為 [在線],且myFailoverEndpoint
] 為 [降級]。
- 在步驟 2 中開啟 流量管理員 配置文件之後,請在 [組態] 頁面中,使用下列步驟:
接下來,使用下列步驟來確認部署至主要 WebSphere 叢集的範例應用程式可從 流量管理員 配置檔存取:
選取您所建立 流量管理員 設定檔的概觀。
選取並複製 流量管理員 設定檔的網域名稱系統(DNS)名稱,然後將它附加至
/websphere-cafe/
,例如http://tmprofile-mjg022624.trafficmanager.net/websphere-cafe/
。在瀏覽器的新索引標籤開啟 URL。 您應該會看到您先前在頁面上建立的咖啡。
建立另一個具有不同名稱和價格的咖啡 -例如,具有價格 20 的 Coffee 2 ,這會保存在資料庫的應用程式數據表和會話數據表中。 您看到的 UI 應該類似下列螢幕快照:
如果您的UI看起來不類似,請先進行疑難解答並解決問題,再繼續進行。 讓主控台保持開啟,並在稍後使用它進行故障轉移測試。
現在您已設定 流量管理員 設定檔。 讓頁面保持開啟,您稍後會用它來監視故障轉移事件中的端點狀態變更。
測試從主要故障轉移到次要複本
若要測試故障轉移,您可以手動故障轉移 Azure SQL 資料庫 伺服器和叢集,然後使用 Azure 入口網站 進行容錯回復。
故障轉移至次要月臺
首先,使用下列步驟將 Azure SQL 資料庫 從主伺服器故障轉移至輔助伺服器:
- 切換至 Azure SQL 資料庫 故障轉移群組的瀏覽器索引標籤,例如
failovergroup-mjg022624
。 - 選取 [故障轉移>是]。
- 等到它完成。
接下來,使用下列步驟搭配復原方案故障轉移WebSphere叢集:
在 Azure 入口網站 頂端的搜尋方塊中,輸入復原服務保存庫,然後在搜尋結果中選取 [復原服務保存庫]。
選取復原服務儲存庫的名稱,例如
recovery-service-vault-westus-mjg022624
。在 [管理] 底下,選取 [復原方案 (Site Recovery)]。 選取您建立的復原方案,例如
recovery-plan-mjg022624
。選取 [容錯移轉]。 選取 [ 我了解風險]。略過測試故障轉移。。 保留其他欄位的預設值,然後選取 [ 確定]。
注意
您可以選擇性地執行測試故障轉移和清除測試故障轉移,以確保測試故障轉移之前一切都如預期般運作。 如需詳細資訊,請參閱 教學課程:執行 Azure VM 的災害復原演練。 本教學課程會直接測試 故障轉移 ,以簡化練習。
監視通知中的故障轉移,直到完成為止。 在本教學課程中,練習大約需要10分鐘的時間。
您可以選擇性地選取故障轉移事件來檢視故障轉移作業的詳細數據,例如, 正在從通知中故障轉移 'recovery-plan-mjg022624' 。
然後,使用下列步驟來啟用外部存取次要區域中的 WebSphere 整合式解決方案控制台和範例應用程式:
- 在 Azure 入口網站 頂端的搜尋方塊中,輸入 [資源群組],然後在搜尋結果中選取 [資源群組]。
- 選取次要區域的資源群組名稱,例如
was-cluster-westus-mjg022624
。 依 [資源群組] 頁面中的 [類型] 排序專案。 - 選取
dmgr
。 選取 [IP 組態>ipconfig1]。 選取 [ 建立公用IP位址的關聯]。 針對 [公用IP 位址],選取前面加上dmgr
的公用IP位址。 此位址是您先前建立的位址。 在本文中,位址會命名為dmgr-public-ip-westus-mjg022624
。 選取 [ 儲存],然後等到完成為止。 - 切換回資源群組,然後選取
ihs
。 選取 [IP 組態>ipconfig1]。 選取 [ 建立公用IP位址的關聯]。 針對 [公用IP 位址],選取前面加上ihs
的公用IP位址。 此位址是您先前建立的位址。 在本文中,位址會命名為ihs-public-ip-westus-mjg022624
。 選取 [ 儲存],然後等到完成為止。
現在,使用下列步驟來確認故障轉移是否如預期般運作:
尋找您先前建立之 Dmgr 公用 IP 位址的 DNS 名稱標籤。 在新的瀏覽器索引標籤中開啟 Dmgr WebSphere 整合式解決方案控制台的 URL。別忘了使用
https
。 例如:https://dmgrmjg022624.westus.cloudapp.azure.com:9043/ibm/console
。 重新整理頁面,直到您看到歡迎頁面進行登入為止。使用您先前儲存的 WebSphere 系統管理員使用者名稱和密碼登入主控台,然後使用下列步驟:
在瀏覽窗格中,選取 [伺服器>所有伺服器]。 在 [ 中間件伺服器 ] 窗格中,您應該會看到列出 4 部伺服器,包括 3 部 WebSphere 應用程式伺服器,其中包含由 WebSphere 叢集
MyCluster
和 1 部 Web 伺服器組成的 IHS。 重新整理頁面,直到您看到所有伺服器都已啟動為止。在瀏覽窗格中,選取 >WebSphere 企業應用程式]。 在 [ 企業應用程式 ] 窗格中,您應該會看到 1 個應用程式 -
websphere-cafe
列出並啟動。若要驗證次要區域中的叢集組態,請遵循設定叢集一節中的步驟。 您應該會看到同步處理變更與節點和分散式工作階段的設定會復寫至故障轉移叢集,如下列螢幕快照所示:
尋找您先前建立之 IHS 公用 IP 位址的 DNS 名稱標籤。 開啟附加根內容
/websphere-cafe/
的 IHS 控制台 URL。 請注意,您不得使用https
。 此範例不會https
用於 IHS , 例如http://ihsmjg022624.westus.cloudapp.azure.com/websphere-cafe/
。 您應該會看到您先前在頁面中建立的兩種咖啡。切換至您 流量管理員 配置檔的瀏覽器索引標籤,然後重新整理頁面,直到您看到
myFailoverEndpoint
] 值變成 [在線],而myPrimaryEndpoint
] 值會變成 [降級]。使用 流量管理員 設定檔的 DNS 名稱切換至瀏覽器索引標籤,例如
http://tmprofile-mjg022624.trafficmanager.net/websphere-cafe/
。 重新整理頁面,您應該會看到應用程式資料表中保存的相同數據,以及顯示的會話數據表。 您看到的 UI 應該類似下列螢幕快照:如果您沒有觀察到此行為,可能是因為 流量管理員 需要時間來更新 DNS 以指向故障轉移網站。 問題也可能是您瀏覽器快取指向失敗網站的 DNS 名稱解析結果。 請稍候一段時間,然後重新整理頁面。
認可故障轉移
當您滿意故障轉移結果之後,請使用下列步驟來認可故障轉移:
在 Azure 入口網站 頂端的搜尋方塊中,輸入復原服務保存庫,然後在搜尋結果中選取 [復原服務保存庫]。
選取復原服務儲存庫的名稱,例如
recovery-service-vault-westus-mjg022624
。在 [管理] 底下,選取 [復原方案 (Site Recovery)]。 選取您建立的復原方案,例如
recovery-plan-mjg022624
。選取 [認可>確定]。
監視通知中的認可,直到完成為止。
選取 復原方案中的專案。 您應該會看到 5 個項目列為 已認可故障轉移。
停用複寫
使用下列步驟來停用復原方案中項目的複寫,然後刪除復原計劃:
針對復原方案中專案中的每個專案,選取省略號按鈕 (...),然後選取 [停用複寫]。
如果系統提示您提供停用此虛擬機保護的原因,請選取您偏好的虛擬機,例如, 我已完成移轉我的應用程式。 選取 [確定]。
重複步驟 1,直到您停用所有項目的複寫為止。
監視通知中的程式,直到完成為止。
選取 [概觀>刪除]。 選取 [是] 確認刪除。
準備容錯回復:重新保護故障轉移網站
次要區域現在是故障轉移網站且作用中。 您應該在主要區域中重新保護它。
首先,使用下列步驟來清除未使用的資源,稍後 Azure Site Recovery 服務將會在主要區域中複寫。 您無法只刪除資源群組,因為月臺復原會將資源還原至現有的資源群組。
- 在 Azure 入口網站 頂端的搜尋方塊中,輸入 [資源群組],然後在搜尋結果中選取 [資源群組]。
- 選取主要區域的資源群組名稱,例如
was-cluster-eastus-mjg022624
。 依 [資源群組] 頁面上的 [類型] 排序專案。 - 使用下列步驟來移除虛擬機器:
- 選取 [類型篩選],然後從 [值] 下拉式清單中選取 [虛擬機]。
- 選取套用。
- 選取所有虛擬機,選取 [刪除],然後輸入 delete 以確認刪除。
- 選取 [刪除]。
- 監視通知中的程式,直到完成為止。
- 使用下列步驟來移除磁碟:
- 選取 [類型] 篩選,然後從 [值] 下拉式清單中選取 [磁碟]。
- 選取套用。
- 選取所有磁碟,選取 [刪除],然後輸入 delete 以確認刪除。
- 選取 [刪除]。
- 監視通知中的程式,並等到它完成為止。
- 使用下列步驟來移除端點:
- 選取 [類型篩選],從 [值] 下拉式清單中選取 [私人端點]。
- 選取套用。
- 選取所有私人端點,選取 [ 刪除],然後輸入 delete 以確認刪除。
- 選取 [刪除]。
- 監視通知中的程式,直到完成為止。 如果未列出私人端點類型,請忽略此步驟。
- 使用下列步驟來刪除網路介面:
- 從 [值] 下拉式清單中選取 [類型篩選>] 選取 [網络介面]。
- 選取套用。
- 選取所有網路介面,選取 [ 刪除],然後輸入 delete 以確認刪除。
- 選取 [刪除]。 監視通知中的程式,直到完成為止。
- 使用下列步驟來移除記憶體帳戶:
- 從 [值] 下拉式清單中選取 [類型篩選>] 選取 [儲存體帳戶]。
- 選取套用。
- 選取所有記憶體帳戶,選取 [ 刪除],然後輸入 delete 以確認刪除。
- 選取 [刪除]。 監視通知中的程式,直到完成為止。
接下來,使用主要區域的 Azure Site Recovery 設定叢集災害復原一節中的相同步驟,但有下列差異:
- 針對 [ 建立復原服務保存庫 ] 區段,請使用下列步驟:
- 選取主要區域中部署的資源群組,例如
was-cluster-eastus-mjg022624
。 - 輸入服務儲存庫的不同名稱,例如
recovery-service-vault-eastus-mjg022624
。 - 在 [區域] 中,選取 [美國東部]。
- 選取主要區域中部署的資源群組,例如
- 針對 [ 啟用復寫],請使用下列步驟:
- 針對 [來源中的區域],選取 [美國西部]。
- 針對 [ 復寫設定],請使用下列步驟:
- 針對 [ 目標資源群組],選取主要區域中部署的現有資源群組,例如
was-cluster-eastus-mjg022624
。 - 針對 [ 故障轉移虛擬網络],選取主要區域中的現有虛擬網路。
- 針對 [ 目標資源群組],選取主要區域中部署的現有資源群組,例如
- 針對 [建立復原方案],針對 [來源],選取 [美國西部],針對 [ 目標],選取 [ 美國東部]。
- 略過次要區域進一步網路設定一節中的步驟,因為您先前已建立並設定這些資源。
注意
您可能會注意到,當目標 VM 存在時,Azure Site Recovery 支援 VM 重新保護。 如需詳細資訊,請參閱重新保護教學課程:將 Azure VM 故障轉移至次要區域的 VM 一節。 由於我們採用 WebSphere 的方法,此功能無法運作。 原因是來源磁碟與目標磁碟之間的唯一變更會根據驗證結果同步處理WebSphere叢集。 為了取代 VM 重新保護功能的功能,本教學課程會在故障轉移之後建立從次要月臺到主要月臺的新複寫。 整個磁碟會從故障轉移的區域複製到主要區域。 如需詳細資訊,請參閱重新保護期間會發生什麼情況?重新保護故障轉移至主要區域的 Azure 虛擬機一節。
容錯回復至主要月臺
使用故障轉移至次要月臺一節中的 相同步驟來容錯回復到主要月 臺,包括資料庫伺服器和叢集,但有下列差異:
- 選取部署在主要區域中的復原服務儲存庫,例如
recovery-service-vault-eastus-mjg022624
。 - 選取主要區域中部署的資源群組,例如
was-cluster-eastus-mjg022624
。 - 在主要區域中啟用 WebSphere 整合式解決方案控制台和範例應用程式的外部存取之後,請重新流覽 WebSphere 整合式解決方案控制台的瀏覽器索引標籤,以及您先前開啟之主要叢集的範例應用程式。 確認它們如預期般運作。 視容錯回復所花費的時間而定,如果範例應用程式 UI 的 [新增咖啡] 區段中顯示會話數據的時間超過一小時,您可能不會看到。
- 在 [ 認可故障轉移 ] 區段中,選取部署在主要中的復原服務保存庫,例如
recovery-service-vault-eastus-mjg022624
。 - 在 流量管理員 設定檔中,您應該會看到端點
myPrimaryEndpoint
變成在線,而端點myFailoverEndpoint
變成降級。 - 在 [準備容錯回復:重新保護故障轉移網站 ] 區段中,使用下列步驟:
- 主要區域是您的故障轉移網站且作用中,因此您應該在次要區域中重新保護它。
- 清除部署在次要區域中的資源-例如,部署在中的
was-cluster-westus-mjg022624
資源。 - 使用 Azure Site Recovery 設定叢集的災害復原一節中的相同步驟來保護次要區域中的主要區域,但下列變更除外:
- 略過建立復原服務保存庫一節中的步驟,因為您先前已建立一個 ,例如
recovery-service-vault-westus-mjg022624
。 - 針對 [啟用復寫複>>故障轉移虛擬網络],選取次要區域中的現有虛擬網路。
- 略過次要區域進一步網路設定一節中的步驟,因為您先前已建立並設定這些資源。
- 略過建立復原服務保存庫一節中的步驟,因為您先前已建立一個 ,例如
清除資源
如果您不打算繼續使用 WebSphere 叢集和其他元件,請使用下列步驟來刪除資源群組,以清除本教學課程中使用的資源:
- 在 Azure 入口網站 頂端的搜尋方塊中,輸入 Azure SQL 資料庫 伺服器的
myResourceGroup
資源組名,然後從搜尋結果中選取相符的資源群組。 - 選取 [刪除資源群組]。
- 在 [ 輸入資源組名以確認刪除] 中,輸入資源組名。
- 選取 [刪除]。
- 針對 流量管理員 的資源群組重複步驟 1-4 ,例如
myResourceGroupTM1
。 - 在 Azure 入口網站 頂端的搜尋方塊中,輸入復原服務保存庫,然後在搜尋結果中選取 [復原服務保存庫]。
- 選取復原服務儲存庫的名稱,例如
recovery-service-vault-westus-mjg022624
。 - 在 [管理] 底下,選取 [復原方案 (Site Recovery)]。 選取您建立的復原方案,例如
recovery-plan-mjg022624
。 - 使用 [停用複寫] 區段中的相同步驟來移除復寫項目的鎖定。
- 針對主要 WebSphere 叢集的資源群組重複步驟 1-4 ,例如 。
was-cluster-westus-mjg022624
- 針對次要 WebSphere 叢集的資源群組重複步驟 1-4 ,例如 。
was-cluster-eastus-mjg022624
下一步
在本教學課程中,您會設定HA/DR解決方案,其中包含具有主動-被動資料庫層的主動-被動應用程式基礎結構層,以及這兩個層級跨越兩個地理位置不同的月臺。 在第一個站台中,應用程式基礎結構層和資料庫層都處於作用中狀態。 在第二個月臺,次要網域會使用 Azure Site Recovery 服務還原,而輔助資料庫則處於待命狀態。
繼續探索下列參考,以取得更多選項來建置 HA/DR 解決方案,並在 Azure 上執行 WebSphere: