Windows Azure功能更新:SQL Server AlwaysOn和Notification Hub 正式商用

一週以前Windows Azure發佈了新的更新內容,主要的更新有3項:

  • 虛擬機上的SQL Server支持AlwaysOn可用性組了
  • Notification Hub商用
  • 自動縮放支持時間策略

這裏的第一項要稍微解釋下,那就是什麼是AlwaysOn。這要從SQL Server的高可用說起。我們或許知道Azure上的SQL Database是一種PaaS服務,其最主要的一個特性就是天然的高可用設計,每個數據庫實例都是由後臺3個實例組成,一主兩備,這樣客戶自己就不需要進行高可用方面的任何配置。SQL Database雖好,但是也有侷限,那就是其性能和功能都有一定的限制,有時候我們不得不找一臺虛擬機,在上面運行傳統的SQL Server,同時也要自己配置SQL Server的高可用。SQL Server的高可用配置主要有4種方式:

1. AlwaysOn 故障轉移羣集實例。通俗點講就是共享磁盤,然後通過Windows集羣進行自動主備切換。這種方式是當今市場上絕大部分數據庫軟件採用的主備切換方式,其優點是不需要修改應用和數據庫軟件,只需要通過外部的集羣管理器進行自動化監控和配置。其缺點也十分明顯,就是配置起來太複雜,對硬件也有要求。在Azure上,由於虛擬機無法共享磁盤,因此此方法不適用

2. AlwaysOn 可用性組(就是這次宣佈商用的特性)。該方法是由SQL Server軟件本身實現的切換方式,其原理是數據庫鏡像+失效轉發:主數據庫將數據庫日誌實時(也可以異步)發送給備機,並監控每臺主機狀態;整個系統同時提供一個VIP作爲客戶端連接入口;當主數據庫失效後,VIP自動指向備機。這種方法的好處是不需要共享存儲也不依賴硬件,因爲數據是在軟件層面進行的複製,也叫Share Nothing的方式。這種方式可以支持1主4備,備機可以支持讀操作,也可以用來做備份。備機還可以位於遠程數據中心,實現容災。這和Mysql的複製十分相似。不過,之前要想在Azure上進行該配置仍存在一個問題,就是Azure裏面的VIP是輪詢式的,不支持主備式,無法滿足SQL Server主備配置的需要。於是,Azure在端點功能上增加了一個特性,就是“-DirectServerReturn ”屬性。所謂DirectServerReturn,是負載均衡的一種實現機制。基本的負載均衡機制是:源端A發請求給負載均衡器F,然後轉發給後臺的某臺服務器S,服務器處理後,返回包的路徑爲S->F->A。而DirectServerReturn的機制,是服務器直接將結果發給客戶端,繞過負載均衡,這樣可以節省一次中轉,全部路徑爲A->F->S->A。Azure上的DirectServerReturn實現機制是:客戶端A發請求給F,F廣播給所有的後臺服務器,然後當前的主服務器返回結果給客戶端。有了這種支持,SQL Server就可以同時有多個實例接收請求,並進行響應。SQL Server的用戶在Azure上就可以獲得HA、DR的商業化支持了。目前Azure上只有SQL Server 2012支持該特性

3. 數據庫複製。這是AlwaysOn 可用性組技術的前身。與AlwaysOn    不同的是,數據庫複製只支持1主一備,而且客戶端需要知道主機和備機的IP。該特性目前已經被AlwaysOn取代了

4. 日誌複製。就是將SQL server的日誌定期發佈到其他數據庫上。這種方法可以看成數據庫複製的一個變種,就是將複製的週期拉長。其好處是對數據庫版本沒什麼要求,缺點是數據更新不及時。因此,該方法適合與實時性要求低的場景,比如備份或者容災系統

綜上,要在Azure虛擬機上運行高可用的Sql server,最好採用AlwaysOn可用性組


關於Notification Hub,它是Service Bus下面的一項子服務,其主要功能是進行異構移動設備的消息通知。Windows Phone, Android和iOS都有自己的通知中心,應用要發通知消息給客戶端,需要根據客戶端類型分別跟微軟、谷歌和蘋果的消息中心通信,並且需要事先記錄每個設備的唯一碼。Notification Hub簡化了通知的發送,應用只需要一次調用即可向不同種類的移動設備發送消息。同時,Notification Hub採用Tag進行客戶端設備標記,這樣應用就不需要記住每個設備的唯一碼,而是由Notification Hub來維護,應用可以向某個Tag的用戶廣播消息,十分適合大規模用戶的消息推送(百萬量級)


最後一個,關於自動縮放,新增的功能是可以按照不同時間段定義縮放策略。比如白天的策略是運行4-8個實例,晚上是2-3個。這樣可以對資源使用進行更爲精細化的控制


此次更新的全部信息,可以參考

http://weblogs.asp.net/scottgu/archive/2013/08/12/windows-azure-general-availability-of-sql-server-always-on-support-and-notification-hubs-autoscale-improvements-more.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章