第二,Office365,在去年我們的云存儲就有三倍的增長,在座的有專門是負責數(shù)據(jù)中心的,這是一項非常艱巨的任務(wù),艱巨在于當服務(wù)器、硬盤到了我們的數(shù)據(jù)中心門口的時候,那個秒就開展長,多放一天就是一百萬美金的損失。所以要盡快地把這些服務(wù)器投入生產(chǎn),我們?nèi)ツ暧羞@樣好的增長。
講一講現(xiàn)在使用的情況,我們有35萬億目標對象,當人們數(shù)不清的時候,就抬頭望天說,和天上的星星一樣多,告訴大家35萬億是銀河系恒星的70倍,大家知道已經(jīng)數(shù)不清了。
第二,每秒鐘有350萬個請求進去,已經(jīng)有700萬個請求進入我們的云存儲,擴展性大家可以想像,每天有3.5個PB的入口,作為云運營商發(fā)布數(shù)據(jù)是不太情愿,因為過了一天日新月異,很多數(shù)字就改變,作為云存儲我們的隊伍非常興奮,經(jīng)常我們是供不應(yīng)求,造完一個數(shù)據(jù)就賣光了,好在我們在北京、上海都有數(shù)據(jù)中心,我們拒絕了一個全世界最大的客戶,留下來是為了給在座的各位使用。
最后一個,我要強調(diào)很多人使用云磁盤性能肯定很差了,我相信云盤最多的就是500個IOPS,我們最新推出的云服務(wù)上面支持超大規(guī)模的服務(wù),大到你可以裝32個盤,這個虛機可以達到每秒鐘5萬個IOPS,而且這是每個虛機,你可以加更多的虛機,可以擴展。
講到這里大家就會問說,你到底支持什么樣的東西才可以放上去呢?首先,我們有這樣四種,BLOB是大容量的文件,Table是結(jié)構(gòu)化,文件是基于我們微軟的SNB的文件。
我們先講第一個大容量文件,大家想問那么多,最多的是什么呢?Blob里面裝的是文件,很多視頻文件還有很多照片,到底是什么樣的文件?什么樣的照片?我可以告訴大家,基本上我們的云存儲就好比是一個不夜城,越到晚上越熱鬧,尤其晚上什么時候開始熱鬧呢?是到晚上基本上傳數(shù)據(jù)的人是在臥室里頭,是當你的手機最后晚上睡覺的時候充電,你沒有把Wifi關(guān)閉的時候,這些手機開始往上面倒數(shù)據(jù),你的照片、各種各樣應(yīng)用的文件就開始倒到上面去,這是上面最多的。所以消費者所創(chuàng)造的數(shù)據(jù)是在我們上面最多的,我們微軟也是一個互聯(lián)網(wǎng)公司。還有就是有很多Blob,剛才我說有很多虛機的印象,它是在不同的地方可以更新。
其他Blob也可以做一些大數(shù)據(jù),像我們微軟支持Hadoop,很多就是把日志和分散的數(shù)據(jù)放到這個Blob里頭,然后用Hadoop來做。
第二點Table,Table是一個建職表,大家用的建職表的就會知道,建職表的時候能裝多少?。繂栠@個問題的時候我就知道你們可能比較喜歡用的是哈希建職表,按照用戶的建職來決定放在什么地方,當一個服務(wù)器開始滿的時候,你就開始想想要重新改變你這個建職了,這樣才可以不斷地把它擴展到別的地方去,我們不是用哈希表,哈希表在我個人認為不是一個很好的平臺級服務(wù)的做法。我們這種云存儲的建職有一個用戶是XBOX,他用了我們的Table以后,他經(jīng)常是數(shù)據(jù)庫,通常數(shù)據(jù)庫都有大小,他用了這個以后,他發(fā)現(xiàn)就往里頭扔,扔到了上萬億,他還發(fā)現(xiàn)好像速度沒有變化嘛,可擴展性有由此可見,所以非常方便,基本上你就弄一個賬號,往里就塞,尤其那種IOT的數(shù)據(jù),記錄的數(shù)據(jù)也是特別適合的。
下面再看Q,不算是傳統(tǒng)的存儲,但是這邊Q存儲主要是用來做不同處理單元之間同步用,用小的MXNQ和IBM的NQCS比較類似。
最后一個也是我個人最喜歡的,我跟一個客戶講到這個以后,他就說我要上你們微軟云,原因是File,大家知道曾幾何時有一個公司很快被微軟取代,F(xiàn)ile就成為標準的文件服務(wù)器,這個所用的協(xié)議就叫SNB,這個意味著什么?當我們支持File意味著所有Windows的應(yīng)用直接拿出來放到云說,不用修改,N多家的云運營商只有我們一家支持這個,因為我們有了File的支持,我們微軟云計算就可以讓我們的用戶上傳他的應(yīng)用到云上去。
講了這個以后,大家可能還有個問題,你們到底存了多少數(shù)據(jù)?我跟大家講一講我們很快要達到一個目標,一個(T)就相當于我們桌上的書從地球開始一直摞起來,摞到冥王星再回來,這么多數(shù)據(jù)里頭我們也不知道哪一塊是某某用戶的數(shù)據(jù),而且不知道任何時候哪以后用戶會出來加很多數(shù)據(jù)進來,所以這個大的挑戰(zhàn)我們該怎么樣去管理這么大的數(shù)據(jù)呢?這就是我們用的一個方法,也是很簡單一個方法,就是每一個I/O的操作都需要給我們一個(K),根據(jù)數(shù)據(jù)類型的不同來反別。首先,每一個用戶可以有一個或者多個賬號,我個人賬號已經(jīng)數(shù)不清了,很多很多賬號。這個賬號要用Blob就是HPPT,任何名字可以往上面放,也可以有多個斜杠,這個就成為了我們管理從冥王星來回那么多數(shù)據(jù)的一個方法。
有了這個以后,很快介紹一下我們微軟的其他的云服務(wù),首先大家知道尤其在中國導(dǎo)入一個TB的數(shù)據(jù),我建議大家千萬不要這樣做,通過網(wǎng)絡(luò)首先這個帶寬就小,要花很長的時間,即使倒進去了以后,你可能會發(fā)現(xiàn)從微軟收到一個近一千塊錢的表。我們現(xiàn)在在國外已經(jīng)支持用快遞的方法把硬盤寄到數(shù)據(jù)中心,然后通過我們的門戶,或者通過API來創(chuàng)建和監(jiān)控導(dǎo)入和導(dǎo)出的作業(yè),而且這個磁盤中間是經(jīng)過加密的,當它被快遞當中是沒有任何人可以解開的,當它到了數(shù)據(jù)中心解開它的密鑰數(shù)據(jù)人員也沒有,所以很安全。
我有很多共享的文件夾,我要往里面扔很多文件,我們這項服務(wù)是可以讓你鎖定某些可以上傳的文件,增加和刪除的時候在云里面都相應(yīng)地得到體現(xiàn)。既然數(shù)據(jù)得到的災(zāi)備了以后,下一步我能不能數(shù)據(jù)中心都能夠災(zāi)備?現(xiàn)在在國內(nèi)講到數(shù)據(jù)中心的災(zāi)備還沒有如此熱,主要建一個異地的災(zāi)備,從數(shù)據(jù)中心基礎(chǔ)設(shè)施的代價非常高,這一點我可以向大家推薦,這樣的服務(wù)就是把Windows當作你的最后災(zāi)備的對象。我們有很多投行,在紐約的投行非常喜歡這個,因為他們在紐約的投行經(jīng)常和這邊建一個數(shù)據(jù)中心,和那邊建一個數(shù)據(jù)中心,即使沒有災(zāi)難發(fā)生的時候,他們在那邊的數(shù)據(jù)中心的硬件、規(guī)格和實際投入生產(chǎn)是完全一樣的,換句話說那個就是投入生產(chǎn)的機器,所以經(jīng)常很多高檔的機器三年以后幾乎沒有用過就被換掉了,現(xiàn)在有了WindowsAzure這個服務(wù)了以后,他們?nèi)绱说叵矚g,一周就要做好幾次這樣的測試。
最后講到無底存儲服務(wù),多少人都希望有一個文件服務(wù)器,這個文件服務(wù)器是沒有底的,再往里存數(shù)據(jù)都不會滿,這是我們微軟購買的一個公司,我個人認為是購買的最好的公司之一,它叫一個很小的一體機,這個一體機對企業(yè)來說像是一個服務(wù)器,你可以指定哪些數(shù)據(jù)只能存在本地,哪些是可以放在云上的。這個無底存儲服務(wù)可以把你的數(shù)據(jù)加密存到云上,當你要使用的時候,它要從云上拿下來,那有人就問要花多少時間?這個當然不如本地那么快,根據(jù)網(wǎng)絡(luò)的具體情況,但是這個自從我們買了它了以后,這個東西賣得是非常非常好,最近已經(jīng)進入國內(nèi)了。
當然,任何的云服務(wù)都需要它的工具庫,跟大家說微軟是一個擁抱型的公司,我們支持各種各樣的,包括我們支持的手機也是有IOPX,還有安卓、Windows。
最后一個是拷貝數(shù)據(jù)都是比較頭痛的事情,因為數(shù)據(jù)都比較多,在那之前數(shù)據(jù)拷貝是我們上海團隊做的,在我們做之前市面上有非常非常多的有要收費的,有免費的,有非常多的工具,我們做出來了以后,基本上這些都沒有了,為什么呢?我們是所有人的十倍以上的。而且當你要傳上百萬個文件的時候,中間有時候都會有各種各樣的故障就斷掉了,其他的工具你早上起來發(fā)現(xiàn)傳到一半斷掉了,對我們來說你的精力是非常愉悅,我們會自動重啟完成數(shù)據(jù)拷貝。就連俄國的初創(chuàng)公司要我們的源代碼,想知道我們?yōu)槭裁茨茏龅奖葎e人快十倍。
講到這個了以后,很多衡量的標準,是你們公司自己用不用自己的云存儲?我很高興告訴大家,比如說SKYPE就用我們的云存儲,他們之前也是有自己的數(shù)據(jù)中心,結(jié)果跑到我們這里,就問他們一個問題你們每一個GP的開銷成本是多少呢?回答是一個美金,后來說不行,你必須要上Azure。這些都是因為WindowsAzure的云存儲成本非常低、可靠性非常高。
其中一個XBOX我要講講,他們問這樣一個問題,當云里頭有你用不完的存儲,你要拿來做什么?你要給你的游戲玩家做什么樣一個東西呢?他們想到了一個東西,他們讓玩家在玩的時候隨時開始錄像,他在網(wǎng)上玩的時候可以把像錄下來,我開車的時候別人要超過他,他就錄下來,錄完了以后,我們還可以自動幫他做,或者是他的朋友的,他就發(fā)一個郵件給那個朋友看,他說我放到U2上面去了,相互之間自從發(fā)布以后非常非?;穑潭桃荒曛畠?nèi)已經(jīng)有一個PB的視頻數(shù)據(jù)在上面了,我們幫它來做這樣的管理。
講這么多了,我們就講一講今天說到是架構(gòu),我們還要講講架構(gòu),我們的架構(gòu)不算太復(fù)雜,也不是太簡單。剛才講到了從這里冥王星來回這么多數(shù)據(jù),是要經(jīng)過索引,就像一個圖書館,圖書館里頭有一些索引,同樣當我們分數(shù)據(jù)的時候,也是通過URL去訪問,第一步是存儲定位服務(wù),其實有一個DNS是需要被解析的,就會解析到一個我們的一個一個郵戳,數(shù)據(jù)從SLB進來,可以選擇到多個Front Ends里面,再下面到分區(qū)層,這么多數(shù)據(jù)從冥王星再回來所有的索引都存在這里,這底下就存了所有從冥王星到再回來的數(shù)據(jù),我們?nèi)蛴袔装賯€這樣的數(shù)據(jù)中心。
我們有跨地區(qū)數(shù)據(jù)的備份,我們是唯一一家云運營商可以讓在座各位的數(shù)據(jù)經(jīng)得起地震這樣一個災(zāi)難,當然在美國颶風就不一定有可能,颶風有時候大的要跨幾百英里的。
我們下面具體講一講細節(jié),從最底層開始講起,這個文件系統(tǒng)上面首先有一點要強調(diào)的就是這個文件我們是每一份數(shù)據(jù)要存三份,在上面我們對所有的數(shù)據(jù)都要做CRC,講到這里就要講我們的可靠性,就是我剛才一開始提到那家公司,對很多云存儲的廠商做了一個測試,這個測試要一個月,基本上要讀寫上億次,很多寫是一開始,一個月之前無的開始就寫進去,他的目的是要看你丟不丟數(shù)據(jù),微軟是唯一一家公司沒有出現(xiàn)任何數(shù)據(jù)錯誤。為什么其他人出現(xiàn)錯誤?對不起,我不知道,我只可以告訴你我們?yōu)槭裁床怀霈F(xiàn)錯誤?大家知道我們真希望存儲是一個墨水,寫上去就不會抹掉,但是這是一個電子產(chǎn)品,我們是每過兩周都要走一個作業(yè),把所有磁盤上的數(shù)據(jù)都要讀出來,然后看這個CRC上對不對?不對的話,就要立刻恢復(fù)數(shù)據(jù),把這些數(shù)據(jù)再重新寫進去,我們是這樣保證在座各位的數(shù)據(jù)是不丟失的,所以我有句話,就是每一個企業(yè)的數(shù)據(jù)寶貴,我們且存且珍惜。
下面在分區(qū)層,分區(qū)層存了所有的索引,質(zhì)征說這個文件是放在下面哪一個服務(wù)器,所以這些索引都是分發(fā)在不同的P服務(wù)器上,很多P服務(wù)器和底下的是不一樣的。
再往下面就是前端,很多解析就在這上面,下面這一層就是讓大家看到我們是怎樣創(chuàng)建三份數(shù)據(jù),這要講到很重要的一個,不是很多的云存儲都放三份嗎?要問清楚,如果有一個云運營商跟你說我們也要放三份,你要問他第一份和后面兩份是不是同時放?因為很多云運營商他為了顯示出自己寫的速度非??欤环乓环?,就跟你說寫好了,其實還有兩份還沒寫,所以他在后臺用異步的方法這樣做,但是問題在于如果他在沒有備份完的時候前端一個硬盤壞了,數(shù)據(jù)就丟失了,大家說這種發(fā)生可能嗎?不就是數(shù)據(jù)嗎?我寫的數(shù)據(jù)量不大它不是很快就可以復(fù)制好了嗎?大家聽我一句話,在云存儲中心是非常忙的,白天黑夜是不會停歇的,很多時候如果一個機器死了,它上面所有的副本都要在其他地方再促備份,很多很多這樣的作業(yè),最后你就會發(fā)現(xiàn)很多時候你要異步做的事情通常是沒有時間去做,到了一定時間不得不做的事情就變成一個必須要做的事情。當每次手動做的時候代價就上去了,而且手動的時候是最容易出錯的。包括我們?nèi)筮\營商,亞馬遜、微軟、谷歌,都是三種同時寫上告訴你寫成功。
我們看分區(qū)層,分區(qū)層它分了很多很多的索引,所以這些索引我們不知道哪些索引在哪一天的任何時候會突然變成熱了,突然有很多氣球進來,我們怎么做呢?首先我們的分區(qū)層是這樣,分區(qū)層不是哈希分區(qū),我們是按照ABCD五這樣分層,剛才我不是說我的賬號是P,我們起頭就是P,整個所有的數(shù)據(jù)把它理解成從AAA到ZZZ這么大的空間當中,所以我們上來就把這些分區(qū)放到不同的分區(qū)服務(wù)器上。就當是一個快照,P的聯(lián)絡(luò)圖就放到每一個FT上面。如果A到H之間打頭的請求就會發(fā)到第一個上面去。大家說這有什么難的?首先,還是回到剛才你不知道,什么時候突然有一個PT,那個地方有一個KEY,我哪一天開始瘋狂地往里發(fā)請求,就像這邊說每一個區(qū)間就非常熱,我們動態(tài)地監(jiān)控到這一點的時候,如果這個是A到H的話,我們就把它分到A到F,G到H。它就分流了,把所有G到H的分流到另外一個PT上,很多基于哈希這種云存儲最后不得不移數(shù)據(jù),到了移動裝滿了之后還要移數(shù)據(jù),這時很糟糕的一件事情,以后移數(shù)據(jù)的時候用得最多的是網(wǎng)絡(luò)帶寬,還有很多是CPU的資源。
再講我們是如何達到穩(wěn)定性的,因為在數(shù)據(jù)中心當中大家遇到的問題是很多時候會掉電?在掉電的時候怎么保證有足夠的副本讓用戶能夠讀到呢?我們?nèi)菘截惥鸵秩齻€不同的RACK里頭,同時我們是一行一行做更新的,要分三個不同的行,最大限度躲開這兩個問題。
最后我們要講一下強一致性,這個也是企業(yè)用戶,剛才我講到為什么企業(yè)用戶非常喜歡Windows的原因,有多少人知道最終一致性這個說法?我想有很多人都知道,原因就是CAP理論,高可用和強一致性以及網(wǎng)絡(luò)分區(qū)的容錯這兩個不可全得,這三個中間你只能挑兩個。亞馬遜很多云存儲服務(wù)商上來就說我就挑網(wǎng)絡(luò)分區(qū)和高可用吧,當你寫進去一個東西的時候,你要去讀的時候,很可能還沒有更新,你可能還讀的是老的數(shù)據(jù)。企業(yè)說這我可不要,我很多應(yīng)用都是依賴于當我寫到存儲里頭我再讀出來應(yīng)該是最新的,我很多應(yīng)用都沒辦法改,我連原程序都沒有,我怎么可能改呢?包括今天很多有理性的程序員都是這樣思維,當我寫成功了以后,讀出來應(yīng)該是更新的,這就是我們微軟說我們?nèi)齻€都要做,大家說你不是和這個理論不符合了嗎?我們所做的是把我們的數(shù)據(jù)中心建造成一個讓網(wǎng)絡(luò)分區(qū)基本上不可能發(fā)生,大家看我們的數(shù)據(jù)中心,第一個感覺是怎么樣?最底下是每一個存儲是在這里,每一個RACK上去以后有36個和第二級,每一個RACK有36級網(wǎng)絡(luò)通路,是一個非高冗余的網(wǎng)絡(luò)通路,因此我們就達到了強一致性和高可用。
最后我說一個,剛才強調(diào)了云存儲我覺得是比較難的,難在哪里呢?又讓馬兒跑得快,又讓馬兒跑得不摔跤,又讓馬兒少摔跤,大家知道只要有足夠的有錢好辦事,有足夠的錢的時候我可以給你穩(wěn)定性非常好的存儲,有足夠的錢的時候,我可以給你有足夠性能的好的存儲。因為我們有三家競爭得非常厲害,大家可以關(guān)注過去幾年內(nèi)所有降價的很多時候都在存儲上降價,今天的云存儲也就是一個百分點吧。說不是因為數(shù)據(jù)的隱私性的話,任何人在自己做云存儲是非常任何意義的。
講到這些就要講到在我們云存儲最大的開銷,如果你打開我們的存儲你會發(fā)現(xiàn)磁盤是占最大的比例,所以能夠節(jié)省磁盤是非常非常對我們有益處的。在一個數(shù)據(jù)中心里頭是存三份拷貝,一開始是存三份,在后端的時候我們會啟動一個程序,把數(shù)據(jù)分成編碼塊,這樣做的好處就可以不用存三份這么大的空間,就可以達到三份的高持久性,一般標準的算法是1.5,你存1.5份,開銷是50%,你就可以達到存三份這樣的效果,我們這里達到1.29,是業(yè)界最好的,大家想知道怎么做就可以去讀這篇文章,我們把我們的做法也發(fā)布在這個文章當中了。包括今天我講的很多內(nèi)容,我們也是有一個拷貝,先來先到,是中文翻譯的,大概三十頁非常細節(jié)地講我們云存儲的架構(gòu)、算法,因為我們相信當我們越透明的時候,我們的客戶就會選擇微軟。
下面我總結(jié)一下我們微軟的云存儲為大家提供一個高可用的,非常高考的,而且是高性能的云存儲,謝謝大家!