1. 程式人生 > 實用技巧 >微軟雲基礎架構 Hyper-scale Datacenter

微軟雲基礎架構 Hyper-scale Datacenter

每天醒來,可能很多人的習慣都是開啟手機,看看微信,刷刷朋友圈,或者看看新聞,去咖啡店,開啟電腦搜尋一些關鍵字,觀看視訊,電視劇……可是你有沒有想過你每一次鍵盤的敲擊,每一次微信的語音的傳送,資料會流向哪裡,會怎麼傳播,我們怎麼會快速的得到離我最近的餐廳資訊?事實上,你所使用的所有這些服務,都執行在一個個的資料中心中,而資料中心正是資訊世界中資料交換,流動,計算的心臟。


越來越多的大型IT公司將自己的資料中心和雲端基礎設施作為其重要的戰略資產和核心競爭力的一部分,也有人可能看到過網上流出的google資料中心的圖片,高科技,乾淨,整潔,很先進的感覺,還有Facebook的機房,其水冷系統,太陽能面板

……作為軟體巨無霸,行走在轉型之路上的微軟公司的資料中心又是怎麼樣的呢?

未來資料中心新貴 十點帶你全面解讀微伺服器(圖)

事實上,微軟從1989年開始就運營自己的資料中心,1994年提供公共線上服務,總共有超過20多年的資料中心建設,管理和運營經驗!


到今天為止,微軟在全球90多個市場上運營管理著超過100個數據中心,100+萬臺伺服器,向全球10億多使用者提供200+線上服務,包括XboxO365BingAzureOutlookSkype等,是真正的超大規模資料中心(hyper-scale datacenter.


如果你想象一下,有100萬臺伺服器,每天的電力消耗,就要按百萬美金級別來計算,這不包括伺服器的維護,升級,更新換代,計劃之外的服務中斷等等消耗,另外還有機房,人力等等成本,所以很多人講雲端計算是規模經濟,燒錢的遊戲,使用者規模上不去,其實就是死路一條,微軟在超規模資料中心上的投入目前公佈的數字是

150億美金,這些資金用來持續不斷的為資料中心創新,為使用者提供更好的服務。


當然龐大的數量並不是超大規模資料中心需要解決的唯一問題,每天全球大約會有10萬新使用者使用微軟的雲服務,並且微軟為企業級使用者提供具有財務保障的SLA雲端服務,如何保證超大規模資料中心服務穩定可靠,可高度擴充套件,安全合規,並且能源消耗需要滿足微軟對生態可持續的企業責任並降低成本等等,這些問題才是關鍵,並且需要在設計之初就要考慮進去。


本文不揣淺陋,從微軟雲策略,hyper-scale資料中心建立的準則,能耗水平,開源雲伺服器和軟體定義的高可用性等層面介紹一下微軟的超規模資料中心。

微軟的雲策略

大家都在做雲端計算,都提供雲服務,但微軟相比其他各家雲服務提供商,最大的差別在哪裡呢?

第一個是企業級服務:微軟在過去的幾十年裡,為全球幾千萬的企業級客戶提供服務,深刻理解企業級客戶對可靠性,安全性,高效能等方面的要求,在設計雲端計算服務和資料中心的時候,同樣將這些需求帶入到了其設計準則之中(見設計準則)

第二個是混合雲:這個詞最近幾年很熱,然而你如果看看目前市場上提供公有云服務,同事提供私有云服務又有完整的混合雲解決方案的廠家,其實寥寥。

第三個是超規模:前面已經介紹了微軟資料中心的概況。超規模的資料中心對使用者的好處是什麼呢?舉一個例子,比如你是中國的一家企業,在Azure上部署了你的企業級應用,如果你想進軍國家市場,又不熟悉當地的法規要求,那你不用擔心,微軟的Azure已經獲得美國,歐洲等國家的大部分資料中心認證和合規性要求,你只需要平滑的把你的應用部署到Azure全球資料中心就可以快速開展你的業務而不用擔心合規,並且成本很低。

Hyper-scale資料中心設計準則

在微軟建規模資料中心之初,就制定了一些最基本準則,依照這些準則在全球建立統一標準的資料中心:

準則一:靈活可擴充套件。業務在不斷增長,使用者在不斷增加,為此資料中心可以根據業務的需求快速的擴充套件計算,網路,儲存等能力,另外一個很重要的點事,你所設計的基礎架構應該是通用的,而不是隻為特定的工作負載使用。

準則二:低成本。在保證服務水平和質量的情況下,就可能的降低成本,這部分實際上帶入了很多創新,比如製冷,空調,伺服器,後面詳細介紹。由於規模效應,Every cent matters.

準則三:運營標準化。在全球如此多的資料中心,如何做到簡化運營,提供高質量的服務是很重要的一個考量維度,微軟無論是在美國,歐洲還是在中國,都按照一致的標準流程運營。

準則四:通用性基礎架構。為服務更多使用者,快速創新,微軟的雲基礎架構適用於多種不同的負載,比如HPC

準則五:軟體容錯性。這是最基本的原則,就是我們Designedfor failures,無論是硬體,軟體還是人為錯誤。軟體要有能力自我恢復和修復。

準則六:軟體定義的高可用性。在一個地區或者跨地區,在雲平臺之上,讓使用者定義或者預設設定相應的服務策略,提供軟體定義的高可用性。比如冗餘備份,高可用集合等。

資料中心能效水平

資料中心都是電力消耗大戶,並且是資料中心運營成本的主要部分,其中空調,製冷,配電等佔大頭。對於一些有責任的企業來說,降低資料中心的能耗,除了成本是主要考慮因素之外,對環境可持續發展的承諾也是一家有責任心的企業需要做的事情。

目前對於資料中心能耗的測量,業內公認的最具有影響力的是綠色網格組織(http://www.thegreengrid.org/)定義的PUE,即Power Usage EfficienivenessPUE是個什麼概念呢?非常簡單的說,就是你的資料中心總的電力消耗除以用於伺服器的電力消耗。也就說伺服器計算每消耗1度電,那麼一般額外會有0.51度或者更多的電力被用於傳輸損耗,製冷等,所以一般情況下PUE越小,代表你的資料中心能耗越高效。

spacer.gif

所以PUE是一個總體指標衡量,可以體現你的資料中心設計的先程序度和對於能耗節約的創新考量指標,那麼我國資料中心目前的平均PUE是什麼水平呢?我們看看一些專家的調研(http://www.docin.com/p-435617076.html,我國資料中心的平均PUE2.2,那麼今天微軟的資料中心PUE可以達到多少呢?目前是第五代資料中心,可以達到1.071.19!

spacer.gif

大家可以看到,冰凍三尺非一日之寒,微軟的資料中心也經過了漫長的演進路線,在2007年以後由於資料中心的急劇增多,PUE所帶來的成本和問題也凸顯出來,因此微軟的資料中心和運營團隊做了大量的創新來降低PUE,比如:

·對資料中心裝置進行追蹤取樣,獲得100多萬個樣本值進行大資料分析獲得能源損耗評估和策略優化建議

·伺服器優化:定製化伺服器(見開放雲伺服器),去除不必要的部分,優化設計

·製冷優化設計:降低電力製冷,利用外部空氣製冷,機櫃水冷,優化風道設計等等

·電力分佈優化:降低傳輸損耗

如果大家有興趣瞭解詳情,請參考:http://www.microsoft.com/en-us/server-cloud/cloud-os/global-datacenters.aspx#Fragment_Scenario6

開放雲伺服器

開放計算專案(Open Compute Projecthttp://www.opencompute.org/)是由Facebook2011年發起的一個致力於打造開放式資料中心硬體的計算專案,包括伺服器,儲存,機櫃,網路等等。如果對於OCP不太瞭解,你的疑問可能會是,已經有那麼多伺服器提供商比如DELLHPIBMLenovo,為什麼換需要自己做伺服器呢?對大部分網際網路資料中心來講,他們所需要的伺服器是高度可定製化的,需要滿足其scale的要求,而目前的標準伺服器無法滿足這種高度可定製化的要求;在中國,其實BAT三家也發起了類似的專案,叫“天蠍計劃“,有興趣的同學可以瞭解下(http://baike.baidu.com/subview/14210482/15764055.htm)。

微軟在構建超規模資料中心的時候,對於雲伺服器的要求希望是簡化,高效,模組化,可管理,可持續,比如去除不必要的元件,降低店裡消耗等,然而標準伺服器無法滿足這些要求,於是自行設計第一代雲伺服器,並部署在全球資料中心。

為構建良好的生態系統,微軟於20141月加入OCP,並把第一代Open Cloud Server的規範捐獻給了OCP,而在201410月又將OCS V2獻給了OCP

如果有興趣,可以參考下面的資訊:

http://www.opencompute.org/wiki/Motherboard/SpecsAndDesigns#Open_CloudServer

http://blogs.technet.com/b/server-cloud/archive/2014/10/30/microsoft-contributes-next-generation-server-design-to-open-compute-project.aspx

這兩部分圖片是OCS V2版本的一些新特性,微軟新的一些資料中心開始採用OCS V2的伺服器:

spacer.gif

spacer.gif

那麼這些變革和創新,對微軟和客戶帶來的價值是什麼?OCS,其固定成本下降40%,而電力消耗下降15%,部署和服務時間降低50%

軟體定義的高可用性

對於超規模的資料中心,在做設計的時候,其實我們有三個基本假設前提:

·所有的硬體都會失敗

·所有的軟體都有bug

·人都會犯錯誤


在這些假設前提之下,如何從資料中心層面,利用軟體和策略保證使用者的服務高可用呢?尤其對於企業級客戶,這一點至關重要。


在介紹Azure的軟體定義的高可用之前,先簡單介紹一下微軟的資料中心架構,對於Azure的來講,每個地區(region)下會有多個數據中心,而每個資料中心由多個叢集(cluster)組成,每個叢集下面會有多個Rack,而Rack裡面是伺服器。

Fault Domain錯誤域,你可以把FD看做一組會同事失敗的資源組合,比如同樣一個Rack,同樣一個伺服器。

Update Domain更新域,代表一組會同時被更新的資源組合,比如同樣一個主機。

Availability Set:有效集,當你有超過一個虛擬機器部署在有效集中時,他們會被分佈在不同的Rack上,以保證當一個Rack發生故障後,服務的高可用

下圖比較清晰的展示了FDUDwebroleworkerrole是兩個可用集:

spacer.gif

瞭解了這些概念之後,我們看看在Azure的資料中心如何利用一些策略和軟體定義來保證服務的高可用性:

雲服務的部署:在雲服務中,虛擬機器會被自動部署在不同的FD中,預設也會設定5個更新域,你也可以通過csdef對更新域進行設定,這樣即使一個RACK發生問題,你至少還有一個服務在執行;或者更新的時候,對於提供相同服務的VM,你可以將他們定義在不同的UD,這會告訴雲平臺在更新的時候只能選擇相應的VM

虛擬機器的部署:對於多個VM的部署,你可以將他們部署在一個有效集中,以保證當資料中心的單個Rack發生故障或者需要升級時,有另外一個VM可以提供服務

服務自我修復:當資料中心的服務發生故障時,系統會自動檢測和修復,包括重啟服務和自動回覆,而不需要人工干預

資料的本地同步複製: 對於儲存在Azure上的資料,預設會在本地資料保留三份備份

非同步跨地區複製:對於儲存在Azure上的資料,如果開啟了異地備份,那麼你的資料會在異地複製三份,總共6份資料拷貝

跨地區的高可用性:如果你有兩個跨地區的站點互為備份,AzureTrafficmanager能夠自動監測兩個站點的可用性,當一個站點發生故障時,TM可以將使用者請求直接轉發到可用站點


所有上述這些服務,是在Azure上面所定義的保證使用者服務高可用的服務和策略,都通過軟體定義來實現,唯一的目的就是在發生故障的情況下,提供高可用的服務。


上述介紹只是微軟的Azure超規模資料中心的一部分,限於篇幅關係,無法詳述,感興趣的同學可到上述連結自行學習修煉~


公有云的服務越來越普遍,已經成為IT的“新常態“,使用者在做業務轉型或者開發新服務的時候,其實從速度,靈活和經濟效益來講,可以更多的考慮公有云服務,使用具有SLA保障的久經考驗的雲服務,將主要的精力放在業務創新,行業顛覆上,而不是IT基礎建設上,畢竟對於大部分使用者而言,IT並非其核心業務。


轉載於:https://blog.51cto.com/cloudapps/1643921