目錄
- 一、微軟云計算平臺
- 二、微軟云操作系統Windows Azure
- (一)Windows Azure概述
- (二)Windows Azure計算服務
- (三)Windows Azure存儲服務
- (四)Windows Azure Connect
- (五)Windows Azure CDN
- (六)Fabric控制器
一、微軟云計算平臺
??傳統的企業和用戶在開發和部署自己的應用程序主要有兩種方式:
方法 | 問題 |
---|---|
購買和維護自己基礎設施 | 耗費大量的資金和維護精力 |
租用服務器或租用虛擬主機 | 后臺服務器的控制權降低,受到其他應用程序的影響 |
??微軟的云計算技術結合了上述兩種方法的優點。用戶也可以將他們的應用程序和數據部署在微軟云計算平臺上。用戶也可以在云中存儲數據或依賴其他的云計算基礎設施服務。
??云計算平臺依賴于微軟強大的分布式集群,提供巨大的計算能力和存儲能力,并具有很好的穩定性和可靠性。云計算平臺采用量入為出的方式,用戶只需按照他們動態使用的計算和存儲資源來付費。
??微軟的云計算服務平臺Windows Azure屬于PaaS模式,一般面向的是軟件開發商。當前版本的Windows Azure平臺包括4個組成部分:
(1)Windows Azure:作為微軟云計算操作系統,提供了一個在微軟數據中心服務器上運行應用程序和存儲數據的Windows環境。
(2)SQL Azure:它是云中的關系數據庫,為云中基于SQL Server的關系型數據提供服務。
(3)Windows Azure AppFabric:為在云中或本地系統中的應用提供基于云的基礎架構服務。
(4)Windows Azure Marketplace:為購買云計算環境下的數據和應用提供在線服務。
上述4個部分均運行在微軟已運行的11個數據中心。11個數據中心分別部署在北美(5個)、歐洲(2個)和亞洲(4個)。
二、微軟云操作系統Windows Azure
(一)Windows Azure概述
??微軟云計算戰略的核心——云計算操作系統。Windows Azure是一個服務平臺,用戶利用該平臺,通過互聯網訪問微軟數據中心運行Windows應用程序和存儲應用程序數據,這些應用程序可以向用戶提供服務。Windows Azure提供了托管的、可擴展的、按需應用的計算和存儲資源,同時還提供了云平臺管理和動態分配資源的控制手段。
(1)計算服務:為在Azure平臺中運行的應用提供支持。
(2)存儲服務:主要用來存儲二進制和結構化的數據。
(3)Fabric 控制器:主要用來部署、管理和監控應用。
(4)內容分發網絡CDN:通過維持世界各地數據緩存副本,提高全球用戶訪問Windows Azure存儲中的二進制數據的速度。
(5)Windows Azure Connect:在本地計算機和Windows Azure之間創建IP級連接,使本地應用和Azure平臺相連。
(二)Windows Azure計算服務
??Windows Azure服務平臺的CTP版提供了一整套的開發工具和組件允許創建.NET 4.0應用程序。與傳統的.NET應用程序不同的是,Windows Azure應用程序包括Web Role實例、Worker Role實例和VM Role實例,使用這三種實例的Windows Azure應用程序運行機制如圖所示。
(1)Web Role:基于Web Role可以使基于Web的應用創建過程變得簡單
(2)Worker Role:Worker Role設計用來運行各種各樣的基于Windows的代碼
(3)VM Role:VM Role運行系統提供的Windows Server 2008 R2鏡像。幫助將本地的Windows Server應用移到Windows Azure。
(三)Windows Azure存儲服務
??Windows Azure存儲服務依靠微軟數據中心,允許用戶在云端存儲應用程序數據。 應用程序可以存儲任何數量的數據,并且可以存儲任意長的時間,用戶可以在任何時間、任何地方訪問自己的數據。
(1)Table:提供更加結構化的數據存儲。
(2)Blob:存儲二進制數據,可以存儲大型的無結構數據,容量巨大,能夠滿足海量數據存儲需求。
(3)Queue:用來支持在Windows Azure應用程序組件之間進行通信。
1、全局命名空間
??Windows Azure Storage(WAS)實現了一個單一的全局命名空間,使得用戶從世界任何地方都可以一致地存儲和訪問云中數據,并且存儲容量可以隨著時間推移任意增長。存儲名空間被劃分為三部分:賬戶名(AccountName)、分區名(PartitionName)和對象名(ObjectName),所有的數據都通過如下的URI形式訪問:
http(s)://AccountName.<service>core.windows.net/PartitionName/ObjectName
賬戶名:DNS主機名的一部分,是客戶為訪問存儲而選擇的賬戶名。
分區名:使用賬戶名定位存儲集群后,在集群內將數據訪問請求進一步定位到存儲節點。
對象名:用來對分區中的多個對象進行區分。對一些類型的數據,分區名可以唯一標識賬戶里的對象時,對象名就變得可要可不要了。
2、體系架構
3、存儲域的層次結構
(1)文件流層:負責在多個服務器間分布和復制數據來保持存儲域中數據的可用性。
(2)分區層:負責管理和理解上層數據抽象類型,提供一個可擴展的名空間。
(3)前端:由一組無狀態服務器構成來處理訪問請求。
4、雙復制引擎
??為了實現數據高可用,WAS通過在文件流層進行域內數據復制和在分區層進行域間數據復制,實現必要的數據容災保護機制。
(1)域內復制:WAS在文件流層實現同步復制,保證存儲域內的所有數據寫在其內部是可靠的。
(2)域間復制:在對象級進行,對給定賬戶的整個對象或最近的差分更新進行復制。
??域內復制專門為硬件失效而設計,在大規模系統內這類失效比較普遍,而域間復制提供跨地域冗余來防止地域災難,這種情況一般不多出現。另一個原因是這兩層所維護的名空間問題。
5、文件流層
WAS追加寫的操作流程如下:
步驟1:客戶端將追加寫請求發送到主EN節點,主節點確定追加寫在區塊內的偏移量。
步驟2:當同一區塊有多個并發追加寫請求時,對所有追加寫請求進行排序。
步驟3:發送追加寫請求到兩個次EN節點,并附上選定的區塊偏移量。
步驟4:當三個EN節點都成功追加寫內容到磁盤后,反饋寫成功消息給客戶端。
在EN節點內數據的追加寫操作步驟如下:
步驟1:將所有數據追加寫到日志盤。
步驟2:對數據盤上的區塊追加寫請求進行排隊。
步驟3:如果日志操作先完成,則數據被緩存在內存中。
步驟4:一旦寫成功就返回。
6、分區層
??分區層存儲不同類型的對象,并理解對于給定的對象類型(BLOB,表或隊列)進行事務處理的意義。
??分區層提供不同存儲對象類型的數據模型,不同類型對象處理的邏輯和語義,大規模擴展的對象命名空間,跨多個可用分區服務器訪問對象的負載平衡,訪問對象的事務排序和強一致性。
(1)分區管理器:負責保存對象表到分區段的劃分和每個分區段到相應分區服務器的分配情況。
負責分區服務器之間的負載平衡。
(2)分區服務器:負責處理由分區管理器分配給它的一組分區段的請求。
(3)鎖服務:Paxos鎖服務用于分區服務器的主服務器選舉。此外,每個分區服務器為服務分區也保持鎖服務租賃。
??為了將負載分散到多個分區服務器和控制存儲域內分區的總數,分區管理器可執行以下三種操作。
(1)負載平衡:當給定的分層管理器負載過高時,將一個或多個分區段重新分配到其他負載較低的分區服務器。
(2)劃分:當單個分區段負載過高時,將其劃分為兩個或更多小的不重疊分區段,并重新分配它們到兩個或更多分區服務器。
(3)合并:將負載低的分區段合并為對象表中一個連續鍵值段,并讓存儲域內的分區服務器數與分區段數保持在一定比例范圍內。
??WAS的分區服務器跟蹤分區段內負載高的鍵值范圍,并以此來確定分區段內的哪些鍵值需要被拆分。為了將一個分區段B拆分為兩個新的分區段C和D,需要進行下列步驟。
步驟1:通知分區服務器將段B拆分為C和D
步驟2:處理B的檢查點,再暫停相應的服務請求
步驟3:使用一種“MultiModify”的特殊流操作處理B的每個流
步驟4:開始將服務請求發送至新的分區C和D
步驟5:通知分區管理器拆分操作完成
??分區管理器可以選擇兩個分區名范圍不重疊的低負載分區段C和D,將它們合并為一個新的分區段E。
步驟1:將分區段C和D遷移到同一個分區服務器上,通知將C和D合并為E
步驟2:為C和D設置一個檢查點,然后暫停相應的服務請求
步驟3:使用MultiModify流命令創建一個新的確認日志和E的數據流
步驟4:構建區段E的元數據流
步驟5:開始發送合并后新分區段的服務請求
步驟6:更新分區映射表和相應的元數據信息
(四)Windows Azure Connect
??Connect在Windows Azure應用和本地運行的機器之間建立一個基于IPsec協議的連接,使兩者更容易結合起來使用。
??需要注意的是,Connect不是一個成熟的VPN(Virtual Private Network),只是一個簡單的解決方案。
(1)Windows Azure應用能夠直接訪問本地的數據庫。
(2)Windows Azure應用能夠區域連接到本地環境。
(五)Windows Azure CDN
??Windows Azure提供了一個內容分發網絡CDN(Content Delivery Network)。這個CDN存儲了距離用戶較近的站點的Blobs副本。
??用戶第一次訪問Blob時,CDN存儲了Blob的副本,存放的地點與用戶在地理位置上比較靠近。當這個Blob被第二次訪問時,它的內容將來自于緩存,而不是來自于離它位置較遠的原始數據。
??例如,Windows Azure提供一天體育事件的視頻,第一個用戶訪問視頻時,用戶不會從CDN中獲益,因為Blob還沒有緩存一個離用戶較近點的位置,而同一地理位置的其他的用戶將會從CDN中獲得更好的性能,同時緩存副本可以使視頻裝載得更快。
(六)Fabric控制器
??在數據中心中, Windows Azure的機器集合和運行在這些機器上的軟件均由Fabric控制器控制。
??Fabric控制器是一個分布式應用,擁有計算機、交換機、負載均衡器等各種資源。
- Fabric控制器控制所有運行的應用。
- Fabric控制器依賴配置信息決定運行的位置,選擇物理服務器來最優化硬件使用。
- Fabric控制器使用配置文件決定需要創建的VMs(虛擬機)的數量。
- Fabric控制器在創建VMs后,還監控VMs。
??Windows Azure提供給開發者5種規格的虛擬機,見表:
虛擬機規格 | 配 置 情 況 | 存 儲 容 量 |
---|---|---|
Extra-small | 單核、1.0GHz CPU、768MB內存、I/O性能低 | 200GB實例存儲容量 |
Small | 單核、1.6GHz CPU、1.75GB內存、I/O性能中等 | 225GB實例存儲容量 |
Medium | 雙核、1.6GHz CPU、3.5GB內存、I/O性能高 | 490GB實例存儲容量 |
Large | 四核、1.6GHz CPU、7GB內存、I/O性能高 | 1000GB實例存儲容量 |
Extra-large | 八核、1.6GHz CPU、14GB內存、I/O性能高 | 2048GB實例存儲容量 |