中國(guó)移動(dòng)蘇州研發(fā)中心|劉鴻 張紹文
中國(guó)移動(dòng)大云對(duì)象存儲(chǔ)BC-oNest,是一款面向非結(jié)構(gòu)化數(shù)據(jù)的彈性存儲(chǔ)服務(wù),可提供高可靠的海量存儲(chǔ)空間,支持海量文件的存儲(chǔ)、訪(fǎng)問(wèn)和管理。目前,BC-oNest已經(jīng)被廣泛應(yīng)用在中國(guó)移動(dòng)內(nèi)部針對(duì)非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)環(huán)節(jié)。
近年來(lái),隨著萬(wàn)物互聯(lián)、移動(dòng)互聯(lián)網(wǎng)和人工智能等技術(shù)的興起,視頻、圖片、文件等非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)難題也隨之涌現(xiàn)。根據(jù)IDC預(yù)測(cè)中國(guó)云存儲(chǔ)市場(chǎng)在2019年將達(dá)到19億美元,數(shù)據(jù)總量超過(guò)6ZB。而非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)主導(dǎo)未來(lái)數(shù)據(jù)存儲(chǔ),云存儲(chǔ)將成為帶動(dòng)未來(lái)公有云服務(wù)發(fā)展的核心動(dòng)力。
就中國(guó)移動(dòng)本身的數(shù)據(jù)而言,之前中國(guó)移動(dòng)話(huà)單、圖片、視頻等非結(jié)構(gòu)化數(shù)據(jù)主要使用華為/中興等文件存儲(chǔ)系統(tǒng),采購(gòu)成本高,擴(kuò)容易受廠(chǎng)家影響。2017年上半年中國(guó)移動(dòng)數(shù)據(jù)流量同期增長(zhǎng)133.9%,達(dá)2327.9PB,成為集團(tuán)第一大收入來(lái)源,同期物聯(lián)網(wǎng)連接規(guī)模超過(guò)8000萬(wàn),其產(chǎn)生數(shù)據(jù)不斷增長(zhǎng)。隨著存儲(chǔ)規(guī)模的不斷增長(zhǎng),對(duì)存儲(chǔ)系統(tǒng)的可管理性、可擴(kuò)展性和監(jiān)控等提出了更高的要求,在這樣的背景下,降低存儲(chǔ)成本已成為中國(guó)移動(dòng)首要考慮的要素之一。
同時(shí),媒體云、影像云、直播云、監(jiān)控云、云端網(wǎng)盤(pán)等類(lèi)云平臺(tái)均呈現(xiàn)出對(duì)象存儲(chǔ)的大容量需求:一是用于滿(mǎn)足新增音視頻存儲(chǔ),二是將原有海量對(duì)象文件遷移至云端保存,三是要求對(duì)象存儲(chǔ)具備異地備份、快速擴(kuò)容、媒體處理等功能。
本文介紹的中國(guó)移動(dòng)大云對(duì)象存儲(chǔ)BC-oNest,是一款面向非結(jié)構(gòu)化數(shù)據(jù)(圖片、音視頻、日志文件、監(jiān)控?cái)?shù)據(jù)等)的彈性存儲(chǔ)服務(wù),可提供高可靠的海量存儲(chǔ)空間,支持海量文件的存儲(chǔ)、訪(fǎng)問(wèn)和管理,如文本、圖片、XML、HTML、音頻和視頻等,支持存儲(chǔ)空間的線(xiàn)性擴(kuò)展,并提供更強(qiáng)的擴(kuò)展能力和互聯(lián)網(wǎng)化的HTTP REST接口,是解決海量數(shù)據(jù)存儲(chǔ)問(wèn)題的上上之選。
圖1 BC-oNest產(chǎn)品架構(gòu)
目前,BC-oNest已經(jīng)被廣泛應(yīng)用在中國(guó)移動(dòng)內(nèi)部的非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ),并已有銀行等集團(tuán)外企業(yè)使用的案例。那么,中國(guó)移動(dòng)作為電信運(yùn)營(yíng)商,內(nèi)部開(kāi)發(fā)的BC-oNest對(duì)象存儲(chǔ)系統(tǒng)是否能支持這么大的業(yè)務(wù)量?和業(yè)界主流的對(duì)象存儲(chǔ)系統(tǒng)相比,其功能點(diǎn)是否能滿(mǎn)足用戶(hù)的需求,如異地備份、媒體處理等?下文進(jìn)行詳細(xì)解析。
圖2 BC-oNest產(chǎn)品高級(jí)特性
BC-oNest分布式對(duì)象存儲(chǔ)以CEPH為基礎(chǔ),支持業(yè)界標(biāo)準(zhǔn)接口,并針對(duì)實(shí)際生產(chǎn)環(huán)境的應(yīng)用進(jìn)行了功能擴(kuò)展,如智能部署、存儲(chǔ)管理功能完善、性能調(diào)優(yōu)等,在一個(gè)高度靈活且統(tǒng)一的平臺(tái)上提供對(duì)象存儲(chǔ)服務(wù)。BC-oNest設(shè)計(jì)原理符合軟件定義存儲(chǔ)(Software Defined Storage,SDS)概念,存儲(chǔ)的控制工作由軟件實(shí)現(xiàn)。BC-oNest產(chǎn)品可以運(yùn)行在符合工業(yè)標(biāo)準(zhǔn)的主流服務(wù)器上,目前以x86服務(wù)器為主。其擴(kuò)展性好可滿(mǎn)足成千上萬(wàn)個(gè)用戶(hù)PB級(jí)甚至是EB級(jí)的數(shù)據(jù)訪(fǎng)問(wèn)。
BC-oNest對(duì)象存儲(chǔ)系統(tǒng)采用分層架構(gòu),由硬件層、核心層、服務(wù)層、接口層和統(tǒng)一平臺(tái)五部分組成。其中統(tǒng)一平臺(tái)相對(duì)獨(dú)立,負(fù)責(zé)集群管理、監(jiān)控及告警等內(nèi)容,其余四層架構(gòu)相互依賴(lài),自下而上支撐整個(gè)存儲(chǔ)系統(tǒng)并提供高級(jí)功能。
BC-oNest硬件層負(fù)責(zé)硬件的管理以及硬件故障檢查,通過(guò)智能的硬件檢查技術(shù),可及時(shí)發(fā)現(xiàn)硬盤(pán)、網(wǎng)絡(luò)及操作系統(tǒng)等故障,及時(shí)告警,并嘗試修復(fù)部分常見(jiàn)問(wèn)題。
BC-oNest核心層負(fù)責(zé)數(shù)據(jù)的分布和一致性保障等,用戶(hù)可以根據(jù)成本等需求,可以采用多副本還是糾刪碼的方式進(jìn)行數(shù)據(jù)存儲(chǔ)。這一層存儲(chǔ)數(shù)據(jù)并保證數(shù)據(jù)的完整性。
BC-oNest服務(wù)層基于核心層提供的功能進(jìn)行數(shù)據(jù)的平衡、隔離及遷移等處理,對(duì)上層接口屏蔽相關(guān)實(shí)現(xiàn)細(xì)節(jié)。數(shù)據(jù)的平衡和遷移可以靈活的進(jìn)行控制,可根據(jù)系統(tǒng)實(shí)時(shí)信息和客戶(hù)需求來(lái)執(zhí)行。比如:可指定允許的硬件恢復(fù)時(shí)間,在該時(shí)間段內(nèi)不進(jìn)行數(shù)據(jù)平衡和遷移,以避免硬件恢復(fù)后重復(fù)數(shù)據(jù)過(guò)多。
其接口層主要服務(wù)于對(duì)象存儲(chǔ)網(wǎng)關(guān)(Rados Gateway,RGW),RGW 給用戶(hù)提供 REST API,并且兼容AWS、S3接口和Openstack Swift接口。如果客戶(hù)認(rèn)為S3/Swift接口語(yǔ)義過(guò)于復(fù)雜,可利用接口層暴露的原始接口進(jìn)行深度定制。
統(tǒng)一平臺(tái)提供了自動(dòng)化的集群部署、可視化的存儲(chǔ)管理和智能的監(jiān)控告警功能,通過(guò)統(tǒng)一平臺(tái),可完成對(duì)集群的管理、更新和維護(hù)。統(tǒng)一平臺(tái)是高可用的,充分滿(mǎn)足客戶(hù)對(duì)穩(wěn)定性和可靠性的要求,系統(tǒng)簡(jiǎn)單而強(qiáng)大。
BC-oNest是分布式的對(duì)象存儲(chǔ)系統(tǒng),整個(gè)產(chǎn)品架構(gòu)從下而上緊密結(jié)合,穩(wěn)定的為用戶(hù)提供服務(wù),其主要以下特性:
(1)服務(wù)可用性99.9%,數(shù)據(jù)可靠性99.99999999%,無(wú)單點(diǎn)故障,支持水平擴(kuò)展;
(2)支持至少千億級(jí)對(duì)象存儲(chǔ),單個(gè)對(duì)象最大5TB,可跨數(shù)據(jù)中心容災(zāi)備份;
(3)支持用戶(hù)可選的客戶(hù)端數(shù)據(jù)加密存儲(chǔ),整個(gè)過(guò)程對(duì)用戶(hù)透明;
(4)支持系統(tǒng)和存儲(chǔ)資源監(jiān)控及告警功能,易運(yùn)營(yíng)可管理;
(5)提供準(zhǔn)實(shí)時(shí)統(tǒng)計(jì)計(jì)量能力(容量、流量、請(qǐng)求次數(shù)),支持用戶(hù)按需付費(fèi);
(6)高級(jí)特性見(jiàn)圖2。
所以BC-oNest因其分布式的結(jié)構(gòu)可以輕易管理成百上千個(gè)節(jié)點(diǎn),PB級(jí)以上的存儲(chǔ)集群,基于計(jì)算的扁平設(shè)計(jì),使得客戶(hù)端可以和服務(wù)端的任何節(jié)點(diǎn)進(jìn)行通信,避免了存在訪(fǎng)問(wèn)熱點(diǎn)而導(dǎo)致的瓶頸問(wèn)題,可以大規(guī)模的進(jìn)行存儲(chǔ)數(shù)據(jù)。BC-oNest產(chǎn)品除了能支持大業(yè)務(wù)量,產(chǎn)品提供的功能點(diǎn)也能滿(mǎn)足用戶(hù)的需求。
和業(yè)界主流的存儲(chǔ)產(chǎn)品從功能和性能上都進(jìn)行對(duì)比,BC-oNest產(chǎn)品以移動(dòng)云為例。
圖3 基礎(chǔ)功能對(duì)比
圖4 高級(jí)功能對(duì)比
注:其中多版本和生命周期,BC-oNest產(chǎn)品支持swift接口,不支持s3接口。
對(duì)比移動(dòng)云(EOS),友商1和友商2在大小文件的上傳,下載和刪除性能。
友商1對(duì)128K以下的小對(duì)象有較強(qiáng)的性能優(yōu)勢(shì),但是從128K到1M區(qū)間(此區(qū)間帶寬小于300MB/s)的上傳和下載吞吐量圖表中可以發(fā)現(xiàn)EOS的優(yōu)勢(shì)逐漸體現(xiàn),若沿著這個(gè)趨勢(shì)并結(jié)合EOS平穩(wěn)的發(fā)展趨勢(shì),可知EOS在1M以上對(duì)象上傳和下載存在一定優(yōu)勢(shì)。刪除性能方面,EOS采用的是同步刪除,而友商1和友商2采用的是異步刪除機(jī)制,整個(gè)刪除過(guò)程中,EOS和友商1性能趨向于平穩(wěn)。
圖5 性能對(duì)比(灰線(xiàn)是友商1,藍(lán)線(xiàn)是友商2,橘線(xiàn)是EOS。)
圖6 社區(qū)排名
BC-oNest產(chǎn)品相比于友商1、友商2有些功能點(diǎn)現(xiàn)暫不支持,但是其中大部分的功能點(diǎn)在我們最新發(fā)布的版本中已經(jīng)支持。性能方面,大文件的上傳和下載性能相對(duì)于友商1、友商2有一定的優(yōu)勢(shì)。BC-oNest產(chǎn)品無(wú)論是功能還是性能都能滿(mǎn)足廣大客戶(hù)的需求。蘇研院不僅有好的對(duì)象存儲(chǔ)產(chǎn)品,還有好的開(kāi)發(fā)團(tuán)隊(duì),就2017年,中國(guó)移動(dòng)在ceph開(kāi)源社區(qū)的總體排名為第六位,總合并的補(bǔ)丁數(shù)為100個(gè)。