我們在 2012 年 6 月宣佈公開發布 Windows HTTP://www.aliyun.com/zixun/aggregation/13357.html">Azure 虛擬機器和虛擬網路(我們將這兩個服務集稱為 Windows Azure 基礎結構服務)預覽版,此後世界各地的組織都開始測試它們的 Microsoft SQL Server 工作負荷,並最大限度地利用該預覽版的功能。 Windows Azure 基礎結構服務的功能簡直令人不可思議。 您無需購買和管理硬體,即可以較低成本快速部署能夠運行多種不同類型的 SQL Server 工作負荷的虛擬機器 (VM),這一功能具有廣泛吸引力。 在虛擬網路中進行複雜的多 VM 部署的能力、支援 Active Directory (AD) 和 SharePoint,以及使用虛擬私人網路絡 (VPN) 閘道將虛擬網路連接回內部部署網路或遠端電腦的能力,使 Windows Azure 基礎結 構服務成為對 IT 商店和開發人員來說更加有趣的遠端託管環境。 Windows Azure 基礎結構服務是一塊墊腳石,各個組織可以使用它將現有的一些工作負荷原樣遷移到雲,不會發生任何變化,同時以混合方式利用 Windows Azure 更加先進的「平臺即服務」功能。 我們看到很多組織都事無巨細地處理著所有的事情,包括從簡單的開發到測試 SQL Server 的工作負荷,再到複雜的分散式關鍵業務工作負荷。 從他們的經驗中,我們總結了下面幾點。
瞭解您的 SLA:
在拔去伺服器的電源插頭並將 SQL Server 工作負荷遷移到 Windows Azure 之前,您需要瞭解相關的服務等級協定 (SLA)。 請注意這樣的表述:「對於在同一可用性集內部署了兩個或兩個以上實例的所有面向 Internet 的虛擬機器,我們保證您在至少 99.95% 的時間可以使用外部連接。 」這對於 SQL Server 來說意味著什麼? 這就是說,為了達到該 SLA 的覆蓋範圍,您需要部署一個以上運行 SQL Server 的 VM,並將這些 VM 都添加到同一個可用性集。 這還表示,如果您要確保資料庫在可用性集內的所有虛擬機器之間保持同步,您需要實施 SQL Server 高可用性解決方案。 最基本的前提是您需要執行一些操作來確保雲中的高可用性,就像這些工作負荷在本地運行時一樣。 正確配置後,可用性集可以確保您的 SQL Server 工作負荷即使在執行升級和硬體更新等維護操作時也可以保持運行。
瞭解您的支援策略:
在 Windows Azure 虛擬機器中運行 SQL Server 的美妙之處就在於,它就跟在其他地方運行 SQL Server 一樣。 它可以一如既往地運行。 您無需更改應用程式,也無需擔心各項 SQL Server 功能是否受支援。 當SQL Server在 WindowsAzure 基礎結構服務中運行時,除了一些主要例外情況,絕大多數功能都完全受支援。 讓我們從 SQL Server 版本支援開始。 Microsoft 為 Windows Azure 基礎結構服務中的 SQL Server 2008 及更高版本提供技術支援。 如果您仍然在 SQL Server 2005 或更低版本中運行工作負荷,那麼您需要升級到更新版本才能獲得技術支援。 如果您準備升級,我們建議您升級到 SQL Server 2012。 在管理工具、開發工具和基礎資料庫引擎方面,SQL Server 2012 均設計為具有 Windows Azure 內置支援的「雲就緒」軟體。
我們先來談談高可用性。 如果您覺得自己無需為 Windows Azure 基礎結構服務中的 SQL Server 部署實施高可用性解決方案而操心,那麼現在應該重新考慮這個問題了。 如前面所說,為了達到 SLA 的覆蓋範圍,您需要在虛擬機器可用性集內實施資料庫冗余。 但是以下限制會影響 SQL Server 高可用性功能。 首先,不支援 SQL Server 容錯移轉叢集。 但是不用緊張,如果您希望為SQL Server配置高可用性, 還有很多其他選項可供您選擇。 例如 AlwaysOn 可用性組,或者使用諸如資料庫鏡像或記錄傳送等舊功能。 我們建議您使用 SQL Server 2012 中的 AlwaysOn 可用性組功能以實現高可用性,但使用該方法時,有幾點需要注意。 當前不支援可用性組攔截器,但是我們計畫在不久的將來增加此支援,敬請關注。 如果您等不及攔截器支援,而仍然希望使用 AlwaysOn 可用性組,那麼有一個解決方法。 您可以使用 FailoverPartner 連接字串屬性代替。 您應該意識到該方法將限制您在 AlwaysOn 可用性組中只能使用兩個副本(一個主副本和一個輔助副本),並且不支援可讀取的輔助副本的概念。
接下來我們談談為 SQL Server 資料庫配置存儲時需要考慮的一些重要事項。 通常,我們建議您向 VM 附加一個資料磁片,使用該磁片存儲所有資料和日誌檔。 如果您決定跨多個資料磁片擴展資料和日誌檔,以獲得更多存儲容量或更好的性能,那麼您不應啟用跨地域冗余。 跨地域冗余無法與多磁片配置配合使用,因為它無法保證各個磁片之間一致的寫入順序。
最後我們要討論的是 SQL Server 支援的各種「分散式」功能,例如複製、服務代理、分散式交易、分散式查詢和連結伺服器等。 所有這些功能在同一個虛擬網路內部署的 SQL Server VM 中應運行良好,但是,如果需要跨越網路邊界(跨公共 Internet 或虛擬網路 VPN 閘道),您最好對這些功能進行徹底測試。 這些功能設計用於內部部署的資料中心,包括 LAN 和 WAN,而非跨公共 Internet。