京東公有云張斯聰:京東云對象存儲產品的成長之路
原創【51CTO.com原創稿件】由中國電子技術標準化研究院主辦、51CTO承辦的"第七屆中國云計算標準和應用大會"于2018年1月4日至1月5日在北京成功召開。本次大會全面展示我國云計算國家標準研制工作的成果,解讀國內云計算產業政策,報告云計算標準化工作的重要進展。同時,大會還重磅發布了國家開源領域的標準化產物,分享了云計算***的技術趨勢和應用創新成效,并頒發了云計算產品及解決方案第五批測評證書。此外,第二屆中國優秀云計算開源案例評選結果也在大會現場公布。
在萬物互聯和數字化轉型蓬勃發展的時代,企業乃至整個產業的入云需求日漸迫切。隨著云計算產業配套政策的落地,云計算逐步從互聯網企業向傳統行業滲透。產業轉型與創新分論壇直擊產業轉型痛點,探討云計算服務能力如何加速傳統產業轉型升級。
京東公有云存儲研發總監 張斯聰
在1月5日的云網安全與存儲分論壇上,京東公有云存儲研發總監張斯聰先生為我們講解了京東云存儲的開放之路。他在演講中談到,大家在京東平時購物看到的圖片,用到的一些信息,網頁的資源還有曬單的信息都是存在我們京東本身的私有云存儲上的。現在京東云存儲對內部集團已經有物流、商城、金融、搜索、廣告、大數據還有我們京東云這方面支撐了大概1200多個業務部數據存儲的需求,現在公有云的業務逐漸發展,我們基于私有云面向公有云來逐漸的拓展我們自己京東的對象存儲的產品。
以下是演講實錄:
大家好,我是在京東公有云負責云存儲主要是對象存儲還有視頻云兩個產品線的,今天主要介紹一下京東云對象存儲這個產品,首先先簡單介紹一下我們對象存儲這個產品的成長之路,大家都知道京東其實本身自有的非結構化數據和結構化數據都是海量的,大家在京東平時購物看到的圖片,用到的一些信息,網頁的資源還有曬單的信息都是存在我們京東本身的私有云存儲上的,因此我們現在京東云存儲對內部集團已經有物流、商城、金融、搜索、廣告、大數據還有我們京東云這方面支撐了大概1200多個業務部數據存儲的需求,現在公有云的業務逐漸發展,我們基于私有云面向公有云來逐漸的拓展我們自己京東的對象存儲的產品。
整個成長之路,大概在2015年底,我們京東公有云產品是從私有云產品上誕生出來的,在2016年4月1號我們***次正式上線運營,到今年位置從我們產品出身到現在基本上是一個高速發展的時間,大概到2018年我們系統會加速發展,來成為我們整個集團重點推進的項目,在2018年底滿足客戶的各種需求。
京東云面向國內四個地域/六個可用區
到現在為止我們京東云主要在國內四個地域六個可用區提供對外公有云服務,北方是在北京,華東是在上海和宿遷兩個地,華南是在廣州,作為一個存儲產品,我們公有云的存儲其實是來自于私有云這邊,產品性能上來說最重要的還是考慮兩個方面,一個是可靠可用性,另外一個就是易用性。首先咱們談一下可靠和可用性這方面,在我們公有云產品里面如何做到高可靠和高可用這方面呢,首先我們分成三個方向,首先說一下服務的部署,從服務部署上來說,京東的公有云體系分成三個層級,***大級是最左邊的區域這一檔,中間是可用區,最右邊是數據中心,一個可用區可以由多個在滿足一定條件的數據中心組成,一個區域可以由多個可用區來組成,整個公有云的產品也就在這三級上實現物理和軟件的容災。
京東云的分級部署
在分級部署這方面,整個對象服務在可用區內對外提供完整的服務單位,在區域里面分成左右兩塊,比如說兩個可用區,分成左右兩塊的可用區進行部署,在一個可用區掛掉不可提供服務的時候,我們還有剩下一個可用區可以對外提供的服務,同時在一個可用區內部我們會同時部署多套子集群來保證在一個可用區內部部分不可用的時候,整個服務還是可用的,同時在一個子集群內部,因為他肯定有中心做決策的,以及數據存儲的,我們弱化了中心節點對整個服務的關鍵性的位置,我們把數據節點對主節點的依賴性做了弱化,保證中心節點,中心節點畢竟相對于整個數據的節點是少的,我們保證在中心節點不可靠的時候整個服務還是可用的。
第二檔就說在服務部署之外,我們在數據的分布上也是做了高可靠高可用比較完備的考慮的。首先整個對象存儲的服務還是在可用區以及數據機房這幾檔上分布,整個數據我們每一份數據,像剛才李旭介紹的一樣,我們至少保證三副本,最多按客戶的需求我們可以支持到幾十上百個副本的個數需求,滿足它不同的性能要求。在三個副本方面,***三個副本的時候,我們保證所有的副本是強一致的,所有的副本我們會跨多個故障域去分布,因為我們服務是對可用區提供統一的服務,可用區底下有不同的對區域提供服務的,一個區域底下有多個可用區,我們會盡量把數據打散在不同的機房里面來給客戶做多級別的故障率的容災。在讀取這方面,他有內網的網端也有外面公網的訪端,在內網方面我們保證內網的企業,請求方的讀和多數讀是一樣的,讓它在讀的時候效率更高一點。在公網企業這棉,因為不知道用戶更傾向于哪個方面,我會保障他均勻分布在所有的可用數據中心內。在內網讀這方面,我們為了讓客戶得到更好的讀取和響應的時間,我們保證讀在優先讀公網的數據。
數據損害的自愈
***,從數據部署的資源,因為你服務不管再怎么可靠,再怎么分區域,分故障區部署,總會發生硬盤損壞,一些邏輯數字的反轉這方面的區域導致持久化的存是不可用的,怎么做數據損害的自愈,基本上從兩方面,首先我們要發現這個數據有問題,怎么發現呢?從持久化存儲的數據這方面,我們金融云這邊在整個底層的存儲上分成了兩塊,一塊是存在校驗的數據,另外一部分是用戶實際的數據,我們在數據破損的發現上分成兩個方式,一個方式是在同步的發現,我們會有異步的數據破損發現服務,來定期的掃全量的數據,不斷的把持續持久化的數據和我們存下來的校驗碼做比較,來發現用戶持久下來的數據是不是有破損有損壞或者有丟失。***在發現破損之后,我們必須要開始修復數據,因為對用戶的數據我們提供了至少11個可靠性和至少四個可用性的保證,在破損之后,首先我們要把副本進行修復,比如說我們二號副本發現了他數據持久化的有問題,首先我們要把整個這三個副本標記的圖標成只讀狀態,讓他不可以對用戶修改,如果用戶修改我們會新建另外一個副本讓用戶做修改操作,同時我們上報中心結點,告訴中心結點這一份數據有問題,在用戶讀的時候也會跳過用戶數據圖,同時在破損的數據,比如說這個時候用戶希望我們給他擴容副本提高更高的訪問要求,我們這時候因為已經發現這個數據庫了,我們這時候不會把破損的數據作為數據源來使用,或者說去做遷移的這些處理,同時我們開始觸發一個異步修復的策略,修復策略我們首先把本機房的數據源優先,本機房的一份副本壞了,我們在修復的時候首先從好的副本做溯源,同時復制組我們必須保證多份副本是一致的我們才認為這次修復是一致的,如果多份副本全都破損我們這時候的修復結構也不可靠,這時候我們會觸發另外一種更復雜的修復方式。
在硬件損壞的時候我們會遷移到其他物理機器上,同時在可靠性和可用性保證之后,我們希望用戶就像之前李旭介紹的一樣,我們希望用戶更方便,更易用的來用我們的存儲服務。在易用性這方面,因為本來公有云的服務就是從京東商城私有云的業務上產生出來的,在私有云業務我們研發的時候,它其實更傾向于內部系統的一些需求,它主要區別一些功能方面的,另外一些是在成本上面的考慮,我們首先要保證可靠性,所以在存儲的時候是基本上不太計成本的,優先保證數據的安全。在整個系統上,京東內部是分兩套存儲系統,一套是針對圖片高訪問的存儲系統,另外是針對對象存儲系統。
公有云我們主要是考慮把業務系統做了整合,希望用戶只要用我們一個產品就能滿足各方面對存儲這方面的使用需求,在底層上我們也因為考慮到成本,我們同時研發了高可靠普通存儲的系統,還有一套低成本的訪問系統,同時在可靠性、可用性方面,因為我們希望用戶來更安全、更可靠、更方便的使用我們的產品,我們相對于私有云京東商城內部提供了更高的可靠性和可用性,同時滿足用戶基本使用需求之上,我們做了更多的一些成本合理性的考量。
先簡單介紹一下商城的存儲系統,基本上就是左邊的圖片存儲系統和右邊的對象存儲系統,在圖象存儲系統它是純為圖片處理優化的小文件存儲系統,在對象存儲系統上面他以存儲為核心的簡單對象存儲系統。這個系統其實對內是可以滿足京東商城內部基本的存儲方面的需求,但是對外就不OK了,在對外這方面我們整個一個方面是整合了這兩套系統為一個統一的對象存儲系統,第二個我們橫向擴大了基于存儲的周邊服務和豐富用戶的使用和接入,在用戶的接入方式上我們現在可以讓用戶從控制盤、SDK、API以及各種第三方工具上使用存儲,就像XSKY一樣我們也使用第三方的接入協議,同時我們也有自己的接入協議。
在網絡傳輸上,我們京東云存儲系統可以作為原站讓用戶直接使用,也可以讓用戶接到第三方任何一個節點上提供服務,同時我們京東也有自建的CPN,要的話可能會有打包的成本更低的考慮。
在業務這方面,提供完整的對象存儲的產品形態,在產品內部我們會有一些基本的文件、權限、用戶體系,這方面基本上以存儲產品為中心的服務,同時附加的還有一些圖片處理,視頻處理,主要是視頻點播為主的媒體這方面的處理,以及還有人臉檢測識別這方面的大數據的處理,同時京東有自己的直播系統,我們對直播系統的錄制、持久化也會有內部優化的接入方面的考慮。在底層持久化這方面,底層存儲分為高可靠存儲以及低頻訪問兩套存儲系統,低頻訪問存儲系統是業界比較常見的,內部的我們會有一些,比如說源數據管理、帳單管理,圖片的日志處理以及比如說域名解析,訪問控制安全策略這方面的考慮,來做一些內部底層支撐的系統。
我們基于這些完備的業務體系和系統架構,我們京東云的對象存儲可以比較方便的給用戶提供整個數據上云備份的需求以及一些熱點數據加速分發的數據,還有一些云端的多媒體數據處理的需求,以及***我們可以保證數據高可用性以及災備的需求,基本上用戶現在各種常見的和不常見的存儲需求我們京東云都是可以滿足的。
***歡迎大家來使用我們京東云的存儲服務,謝謝!
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】