亞太內容分發大會暨CDN峰會一直致力于推動CDN產業深度融合發展和市場普及,現已成為亞太地區影響力最大的內容分發網絡盛會。十年來,在以阿里云、網宿科技、騰訊云等亞太CDN產業聯盟成員孜孜不輟的努力下,CDN產業已經成為基礎性設施網絡,以堅定的基石之姿,支撐起中國成為世界最大的互聯網市場。
隨著全球數字化、“一帶一路”戰略的推進,亞太內容分大會暨CDN峰會的影響力正在逐漸向全球延伸,同時也將中國智造CDN及產業鏈推廣向全球每一個角落。
在6月10日下午舉辦的【對象存儲論壇】上,中國電信集團有限公司云計算首席專家 江峰帶來了以《一種面向數據上行的內容存儲網絡(Content Storage Network)和ToB典型應用》為題的主題演講。
CDN是在終端和中心之間的緩存,在讓終端更快獲取數據的同時,減輕中心的壓力,因此,CDN是一種為下而生的網絡服務。中國電信集團云計算首席專家江峰表示,對于日益成熟的CDN而言,如何解決數據從四面八方上傳的問題值得我們去思考。
以上述問題為引,江峰闡述了本次演講的重點——內容存儲網絡。一個應用開發者要存數據,有多種方案可供選擇,方案之一就是把數據存在某一個資源池,比如放到上海,靠近華東地區的體驗是比較好的,離華東比較遠的用戶體驗就相對較差,無法讓全國范圍內的用戶都獲得好的體驗,這和CDN初衷是不同的,CDN希望任何地方的用戶都能更快地獲得數據。
方案之二是自行調度,選擇幾個資源池分布在全國范圍內,東北地區放在長春,華北放在北京等。這種情況下,作為應用開發者,當終端發起請求時首先要找到平臺,平臺根據發起請求的位置,再將離終端最近的資源池返回給終端,最后終端才開始訪問資源池,如此一來,終端和平臺之間增加了延遲。同時要自己維護這種關系,當數據量很大的時候,維護的成本和難度是很高的。這對于研發能力很強的互聯網公司來說不是問題,但如果是只關心業務驅動、市場驅動的公司,關心增收和用戶量,這些問題解決起來就很復雜,對于研發能力不強的用戶,需要一個能就近寫入數據的解決方案。
提到“就近”這個詞就容易聯想到內容分發網絡,中國電信天翼云的存儲研發團隊提出了一個新的概念叫做“內容存儲網絡”(Content Storage Network,簡稱CSN),用戶就近寫入的數據,可以即時在任何一個CSN的資源池讀到數據,這就是CSN內容存儲網絡和其他的云存儲的不同之處。
江峰介紹說,從2012年開始,中國電信天翼云就致力于云存儲的自主研發工作,從底層的文件系統、分布式存儲引擎,到上層協議,負載調度、管理監控平臺,已經全部實現自主研發。其中最引以為傲的是中國電信已經實現了CSN存儲網絡,多個資源池可以寫同一個對象,并且保證強一致性和低延遲。2015年,中國電信天翼云成為國內首個基于自研文件系統大規模商用SMR盤的云存儲服務提供商,目前單容器實存容量超過EB。
2015年華為在上海舉辦的云計算大會上,江峰曾表示:網絡就是存儲,未來的應用大部分都是互聯網應用,中國電信應該結合自身優勢打造差異化產品及服務,把資源池連成一張網絡,當時稱其為“國家存儲網絡”。用戶不需要關心數據寫到哪里,只要在資源池中存入,在任何地方都能就近讀出來,這就是當時江峰提出的概念,如今已經實現了。
江峰對CSN中的關鍵技術進行了介紹,從上述圖示可以看到,從北京和呼和浩特所在的“環”,這個環是元數據環,如果元數據是集中式的,用戶訪問北京,北京還需要將請求發送至上海,再由上海告知數據就在北京本地。
中國電信自研了分布在廣域網上的分布式元數據環服務,邏輯上單一的一張表在物理上分布存在于不同的機房,從而可以就近提供訪問服務。至于元數據的元數據放在哪里,江峰解釋說,元數據的元數據是最為核心的數據,目前存放在跨三個省的七個機內。以上便是實現CSN特性的基礎,使所有的讀寫請求都會就近訪問離用戶最近的機房,數據在本地直接返還給用戶,或者通過專網從其他地方拉過來給用戶,比走互聯網要快,因此可以獲得最好的延遲,這就是中國電信打造的一張存儲網絡。
產品層面中國電信也有創新,左側圖是選擇就近寫入或指定位置寫入,如果選擇就近寫入終端就會選擇就近,對于使用者而言不需要知道它在哪里;有的政企類客戶有強烈的屬地要求,采用指定位置可以滿足。右側圖是虛擬存儲網絡概念,借鑒了網絡當中LAN和vLAN概念,江峰提出了物理資源池和虛擬資源池的概念??蛻羧绻枰獙儋Y源池,從藍色或紅色中選取,黑色部分為公用資源,將虛擬資源池在數據層面打通形成一張虛擬網絡,中國電信也做到了在產品層面的創新。
內容存儲網絡有三大好處。對于普通用戶而言,最大的好處就是能就近讀寫、池間互通,實現顯著的低延遲,讀的時候能很大概率從本地讀,如果不能就從專線讀取。對于開發者而言,不再需要關心數據的位置。對于云運營商而言,能夠優化資源、節約成本,如果是冷數據,可以放在運營成本較低的資源池,如果是熱數據,就選擇北京、上海、廣東這類熱資源池。
隨后,江峰對CSN存儲網絡進行了演示,核心內容是同一個IP的三個不同的資源池,A資源池寫入的數據在B、C兩個資源池得到是立即更新的結果。通過這樣的產品和技術,中國電信為國內外眾多類型業務客戶提供著海量云存儲服務。
介紹完為數據上行而生的內容存儲網絡CSN,江峰進一步分享了基于CSN的ToB應用-存儲網關。一般的企業用戶自行寫代碼能力不強,面向S3開放應用,IT系統基本上都是從合作伙伴獲取的,此類企業用戶一般IT人員不多,且需要維護很多套IT系統。因此,對于這些企業用戶來說,需求主要體現為:
一是要把這些數據上云,需要用到塊存儲,因此塊是底層的基礎;
二是要做冷熱分離,所有的數據都上云之后,做成塊遵循熱數據在本地、全量數據在云端的方式;
三是高可用,為企業提供的塊存儲必須是高可用的,否則會對在生產環境中使用的可靠性產生擔憂。
企業要想得到高可用能夠冷熱分離的塊存儲服務,這正是中國電信研發了4年多的天翼云存儲網關所能滿足的,它的特性主要有以下幾點:
小巧。軟件的安裝包只有140兆不到,從安裝包解壓到集群初始化完成,不超過3分鐘,這是目前世界上唯一以一個zip安裝包形式交付的存儲底座的產品。
擴展性。像普通的分布式存儲一樣,天翼云存儲網關支持磁盤、服務器級別的橫向擴展,滿足存儲網關的本地集群從1臺擴展到n臺的需求。
數據自動上云。存儲網關提供兩種模式,第一種是緩存模式,本地只需要1T的硬盤空間,就可以提供100T的虛擬容量,只要存儲網關通過網絡能訪問天翼云對象存儲OOS(此前提到的CSN就是基于天翼云對象存儲OOS這個中國電信完全自主研發的產品搭建的,以下簡稱OOS),這100T的數據都會被自動復制到OOS中,本地的1T空間存儲僅用于存儲最近讀寫過的熱數據,這對于企業數據歸檔非常方便。
第二種模式是存儲模式,即本地和云端是1:1的容量規模,存儲網關的本地集群仍然持有全量數據,同時會把所有數據自動復制到OOS中,通過這個方法,企業可以方便的實現數據異地備份。因此,天翼云存儲網關是實現數據異地災備、數據歸檔、數據上云、數據異地搬家的好幫手。
高性能。對于使用普通 10G以太網互連和機械硬盤的集群,隨機寫入 4KiB 塊的延遲可以低于 0.2毫秒。普通的以太網和機械盤能做到這個性能,并且是在保證任何單點故障都不丟數據、會話不中斷的情況下做到這個性能,已經是非常優秀的了。
高可靠性。支持糾刪碼和多副本兩種數據冗余保護機制以及多重數據校驗和一致性檢查。要知道,塊存儲能支持糾刪碼的并不多。
兼容性強。140MB的安裝包里面包含了中國電信天翼云純自研的(非基于任何開源)iSCSI協議棧、高可用存儲引擎、管理平臺等等全部模塊,且全部運行于用戶態,不依賴于任何Linux內核,支持主流國產處理器,不挑服務器的配置,2G內存即可安裝,不要求所有的硬盤一樣大,不要求每一個硬盤獨占,只用一部分就可以,甚至可以用舊的服務器運行高可用可擴展低延遲高性能的存儲網關。
高可用性?!懊爰墶惫收锨袚Q速度。自動調整寫入速度并進行資源回收。
其中分布式雙控架構(distributed dual-controller architecture)又是中國電信天翼云的一個創新。垂直擴展(Scale-up)的雙控存儲雖然擴展性差,但它的延遲很低,企業應用廣泛;分布式存儲容量雖然大,吞吐量也大,但延遲很高,很少運行企業級應用,例如數據庫就不可能運行在對象存儲之上。而塊存儲既需要低延遲,彈性又需要橫向擴展,因此江峰團隊設計和實現了分布式雙控的架構。從宏觀上看,整個集群可以以服務器(或磁盤)為單位橫向擴展,但從微觀上看,每一個卷都以兩臺服務器作為它的控制器。這樣一來,每個卷都可以雙路徑的方式提供低延遲和高可用,同時整個集群又可以橫向擴展。這就是中國電信天翼云獨創的分布式雙控架構與其他開源分布式存儲截然不同的地方,從提出概念到設計到最終實現都是自研的。
存儲網關解決的另一個技術難題是一致性的保證。上云大家覺得很簡單,不就是把本地的數據復制到云上嗎?其實不然,文件存儲可以這樣,但是對于塊存儲則完全不同。塊存儲承載的業務很多都是非結構化數據,簡單的將數據從本地復制到云端會導致數據不一致的情況出現。舉個例子,即使把一個卷里面99.99%的數據都復制到云上了,但某個數據庫事務操作沒有順序落盤,就會出現不一致的情況。因此,要確保云上的數據是一致的,就必須確保云上的數據是某個卷在過去某個時刻的快照,而不是簡單的看有百分之多少的數據上云了。而中國電信天翼云存儲網關就可以保證云端的數據一定是某個卷在過去某個時刻的快照,能充分保障業務數據的一致性。
有的朋友問,能不能把數據復制到天翼云以外的其他的云存儲之上?很遺憾,不行。這不是中國電信不夠開放,而是因為目前只有OOS支持對象級的原子操作。不支持原子操作,就無法實現上述的一致性。
當然,市場上也有其他的存儲網關號稱支持多家的云存儲,那是因為它的元數據都存儲在網關設備的本地磁盤上。但如果本地的網關設備壞了,元數據怎么恢復呢?如果從云上恢復的話,那怎么保證云上的元數據也是一致的(是本地元數據在過去某個時刻的快照)呢?歸根結底,云存儲還是要支持原子操作,否則,要么就不能保證一致性,要么就不能容忍網關的單點故障,而目前只有OOS搭配天翼云存儲網關可以同時做到。