我們銷售一個 Web 解決方案,它附帶 1 個專用 Azure VM,其中包含執行應用程式所需的一切:
- ASP.NET Web 應用程式
- 生產環境
- 品質保證環境
- SQL Server 包含 PROD 和 QA 環境的數據
然而,特定客戶需要在高可用性設定中運行其應用程式。他想要的是,當一台伺服器發生故障時,另一台伺服器應該接管,反之亦然。
我對負載平衡/高可用性設定完全陌生,我知道 Azure 支援負載平衡,但我很困惑如何使其工作。只需建立 2 台具有上述設定的伺服器,然後設定高可用性功能是否那麼容易?我關心的是如何在兩台伺服器之間同步網站資料和 SQL Server 資料?尤其是後者。
或者如果我使用 Azure SQL 伺服器而不是本機 SQL 伺服器會更容易嗎?或者也許引入額外的伺服器而不是 2 台?
答案1
首先,建議使用Azure SQL,自行設定SQL伺服器並不安全且「標準」。 Azure SQL 為你提供了許多進階功能,包括高可用性和災難復原。使用 Azure SQL 並根據以下設定配置故障轉移群組文件。現在,您的資料層已啟用高可用性。
其次,假設您已將資料庫移轉到 Azure SQL,請在目前 VM 的相同虛擬網路中建立一個新 VM。並在新虛擬機器中運行相同的應用程式。建立負載平衡器並將這兩個虛擬機器新增到後端池。現在您的應用程式層已啟用高可用性。
答案2
您可以在兩台虛擬機器之上配置 StarWind VSAN,並在雲端中獲得真正的高可用性儲存解決方案。我相信本手冊應該對你有用,看看吧。
答案3
您可以輕鬆地使用相同的伺服器建立高可用性集,然後將此高可用性集設定為LB中的後端池。建議使用 Azure SQL 資料庫,因為 Azure 具有許多支援高可用性應用程式的內建平台功能。但是,在同一 Azure VM 上使用本機 SQL 伺服器很容易,並且由於應用程式和資料庫託管在同一 Azure VM 中,因此您可以獲得快速回應。
對於 Azure SQL 資料庫,資料在區域內同步複製。此外,要透過虛擬機器實現高可用性,您必須使用可用性集,其提供與故障域和升級域類似的功能。
參考這個文件。