王瑞通,李煒春
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210003;2.福州大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福建 福州 350116)
大數(shù)據(jù)基礎(chǔ)存儲(chǔ)系統(tǒng)技術(shù)研究
王瑞通1,李煒春2
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210003;2.福州大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福建 福州 350116)
隨著大數(shù)據(jù)技術(shù)的發(fā)展和對(duì)海量數(shù)據(jù)存儲(chǔ)、分析需求的提高,成熟的分布式存儲(chǔ)系統(tǒng)越來越多。通過對(duì)不同分布式基礎(chǔ)存儲(chǔ)系統(tǒng)內(nèi)部的存儲(chǔ)策略、管理策略、架構(gòu)思想等關(guān)鍵技術(shù)點(diǎn)的對(duì)比和分析,對(duì)當(dāng)前流行的分布式存儲(chǔ)系統(tǒng)在設(shè)計(jì)思想、創(chuàng)新性技術(shù)上進(jìn)行了追根溯源。對(duì)比傳統(tǒng)數(shù)據(jù)存儲(chǔ)與分布式數(shù)據(jù)存儲(chǔ)的技術(shù)發(fā)展和應(yīng)用實(shí)例,揭示了數(shù)據(jù)存儲(chǔ)追求更大、更快、更安全的發(fā)展潮流,重點(diǎn)研究了大數(shù)據(jù)基礎(chǔ)存儲(chǔ)實(shí)例中基于文件、鍵值對(duì)和表格這三種分布式存儲(chǔ)方式。正如網(wǎng)絡(luò)技術(shù)的發(fā)展到SDN(Software Defined Network)一樣,存儲(chǔ)方式也在發(fā)生深刻變化—軟件定義存儲(chǔ)。通過對(duì)當(dāng)前大數(shù)據(jù)主流基礎(chǔ)存儲(chǔ)系統(tǒng)技術(shù)的發(fā)展和應(yīng)用實(shí)例所進(jìn)行的對(duì)比研究,為分布式存儲(chǔ)系統(tǒng),特別是基礎(chǔ)存儲(chǔ)系統(tǒng)的開發(fā),提供了一些在系統(tǒng)設(shè)計(jì)上的參考,也為在從事大數(shù)據(jù)方面有業(yè)務(wù)需求的工作人員在選擇底層存儲(chǔ)策略時(shí)提供了借鑒。
大數(shù)據(jù);存儲(chǔ)架構(gòu);數(shù)據(jù)管理;基礎(chǔ)數(shù)據(jù)存儲(chǔ)系統(tǒng);分布式存儲(chǔ)系統(tǒng)
自2013年大數(shù)據(jù)元年之后,互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、社交網(wǎng)絡(luò)的數(shù)據(jù)洪流[1]不斷沖擊傳統(tǒng)數(shù)據(jù)存儲(chǔ)和處理手段。據(jù)IDC(International Data Corporation)報(bào)告顯示,到2020年全球數(shù)據(jù)總量將達(dá)到40 ZB,全球在15年的數(shù)據(jù)總量為7.9 ZB,而中國(guó)數(shù)據(jù)總量約占全球數(shù)據(jù)總量的13%。面對(duì)數(shù)據(jù)的爆炸性增長(zhǎng),傳統(tǒng)的數(shù)據(jù)存儲(chǔ)系統(tǒng)、數(shù)據(jù)庫(kù)技術(shù)和數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)越來越不堪重負(fù)。數(shù)據(jù)庫(kù)也從傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)到NoSQL非關(guān)系數(shù)據(jù)庫(kù)再到現(xiàn)在基于內(nèi)存的NewSQL數(shù)據(jù)庫(kù)遞進(jìn)發(fā)展。數(shù)據(jù)存儲(chǔ)量和數(shù)據(jù)處理速度也在不斷向前發(fā)展。目前基于分布式數(shù)據(jù)存儲(chǔ)和計(jì)算的系統(tǒng),在生產(chǎn)環(huán)境下可以很好地處理PB級(jí)數(shù)據(jù),但仍面臨海量數(shù)據(jù)增長(zhǎng)的壓力。
大數(shù)據(jù)具有的4V特性[2],即Volume、Velocity、Variety和Veracity,也就是海量、快速、多樣、低密度。追求快速的從海量且增長(zhǎng)快速的低密度數(shù)據(jù)中進(jìn)行知識(shí)發(fā)現(xiàn)是一項(xiàng)艱巨的任務(wù)。合格的大數(shù)據(jù)存儲(chǔ)系統(tǒng)必須有效應(yīng)對(duì)大數(shù)據(jù)時(shí)代的4大挑戰(zhàn),所以大數(shù)據(jù)存儲(chǔ)系統(tǒng)都具有很高的IOPS(Input Output Per Second)和大容量,支持動(dòng)態(tài)水平擴(kuò)展能力。當(dāng)然易管理維護(hù),多種數(shù)據(jù)類型兼容性強(qiáng),高性能,低成本等需求也是剛性的。
根據(jù)分布式存儲(chǔ)系統(tǒng)對(duì)數(shù)據(jù)存儲(chǔ)格式的不同,分別對(duì)基于文件的分布式基礎(chǔ)存儲(chǔ)系統(tǒng)、基于鍵值對(duì)的分布式基礎(chǔ)存儲(chǔ)系統(tǒng)和基于表格的分布式基礎(chǔ)存儲(chǔ)系統(tǒng)進(jìn)行了對(duì)比分析與研究。
綜合生產(chǎn)環(huán)境來看,主流外存設(shè)備使用的是機(jī)械硬盤(HDD)和固態(tài)硬盤(SSD),這兩者和網(wǎng)絡(luò)一起構(gòu)成了數(shù)據(jù)存儲(chǔ)的硬件基礎(chǔ)。這里不討論關(guān)于網(wǎng)絡(luò)傳輸?shù)南嚓P(guān)問題,而重點(diǎn)討論數(shù)據(jù)與硬盤之間的交互。以主流的HDD作為基礎(chǔ)存儲(chǔ);SSD為高性能新崛起的存儲(chǔ)介質(zhì),在存儲(chǔ)系統(tǒng)中最多只是作為HDD的輔助存儲(chǔ);全SSD作為存儲(chǔ)基礎(chǔ)并不是主流。
傳統(tǒng)的底層數(shù)據(jù)存儲(chǔ),硬盤與服務(wù)器之間的連接需要接口協(xié)議[3],主要包括SCSI、FC、SATA、SAS。操作系統(tǒng)掃描發(fā)現(xiàn)存儲(chǔ)硬件后通過接口驅(qū)動(dòng)程序連接使用硬盤。用戶通過操作系統(tǒng)根據(jù)文件系統(tǒng)格式對(duì)硬盤數(shù)據(jù)塊進(jìn)行組織劃分。Linux系統(tǒng)下的文件格式多為ext3和ext4。另外,通過RAID的方式可以靈活地對(duì)硬盤上的數(shù)據(jù)進(jìn)行安全備份、錯(cuò)誤容災(zāi)處理。通常還需要使用LVM對(duì)硬盤進(jìn)行邏輯分區(qū)。
傳統(tǒng)的存儲(chǔ)系統(tǒng)無法滿足大數(shù)據(jù)存儲(chǔ)的高可靠、高速傳輸、動(dòng)態(tài)可擴(kuò)展和低成本等要求。磁盤瓶頸和網(wǎng)絡(luò)瓶頸的掣肘導(dǎo)致新的存儲(chǔ)架構(gòu)的誕生,分布式存儲(chǔ)系統(tǒng)便應(yīng)運(yùn)而生。這是一個(gè)通過網(wǎng)絡(luò)連接各離散存儲(chǔ)單元的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)。其本身所具有的高可擴(kuò)展性、低成本、無接入限制等優(yōu)點(diǎn)是傳統(tǒng)存儲(chǔ)系統(tǒng)所無法比擬的。分布式存儲(chǔ)系統(tǒng)的核心技術(shù)是網(wǎng)絡(luò)存儲(chǔ)技術(shù)[4]。它將數(shù)據(jù)的存儲(chǔ)由傳統(tǒng)的服務(wù)器存儲(chǔ)轉(zhuǎn)移到網(wǎng)絡(luò)設(shè)備存儲(chǔ)。核心思想是將存儲(chǔ)陣列與服務(wù)器分開,通過網(wǎng)絡(luò)拓?fù)鋵烧哌B接起來。主要有以下三種:DAS、NAS和SAN。
DAS(直接附加存儲(chǔ))架構(gòu)中,服務(wù)器與磁盤陣列通常采用SCSI連接。隨著數(shù)據(jù)量的增大,SCSI通道會(huì)成為瓶頸,而且沒法進(jìn)行動(dòng)態(tài)擴(kuò)展。NAS(網(wǎng)絡(luò)附加存儲(chǔ))是通過網(wǎng)絡(luò)協(xié)議(TCP/IP、FTP等)連接服務(wù)器和磁盤陣列,相當(dāng)于一個(gè)LAN,提供文件級(jí)存儲(chǔ)服務(wù)。由于使用統(tǒng)一的文件系統(tǒng),每次增加磁盤容量就會(huì)對(duì)應(yīng)增加服務(wù)器的負(fù)載。NAS通常采用RAID6對(duì)數(shù)據(jù)進(jìn)行容災(zāi),這兩者都增加了NAS的擴(kuò)展成本。SAN(存儲(chǔ)區(qū)域網(wǎng))是通過交換機(jī)等網(wǎng)絡(luò)連接設(shè)備將磁盤陣列與相關(guān)服務(wù)器連接起來的高速專用子網(wǎng)。服務(wù)器可以直接訪問SAN中的數(shù)據(jù),只有和文件信息相關(guān)的元數(shù)據(jù)信息才經(jīng)過元數(shù)據(jù)服務(wù)器處理,減少了數(shù)據(jù)傳輸?shù)闹虚g環(huán)節(jié)。主流的大數(shù)據(jù)分布式存儲(chǔ)系統(tǒng)基本都使用這一架構(gòu)思想。目前有一種研究熱點(diǎn)是將NAS和SAN相結(jié)合來構(gòu)造更好的分布式存儲(chǔ)系統(tǒng),以期滿足各種應(yīng)用對(duì)存儲(chǔ)系統(tǒng)提出的更多需求:大容量、高性能、高可用、動(dòng)態(tài)可擴(kuò)展、易管理維護(hù)等。Alluxio[5]就是一種最新的嘗試。
與傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng)相比,分布式存儲(chǔ)系統(tǒng)有如下幾點(diǎn)優(yōu)勢(shì):
(1)成本低。分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)都是使用x86日用級(jí)硬件作為單節(jié)點(diǎn),所以在硬件成本方面降低很多。通過優(yōu)秀的架構(gòu)設(shè)計(jì)和管理平臺(tái),有效降低了用戶的維護(hù)成本和管理成本。云存儲(chǔ)的出現(xiàn)顯著降低了企業(yè)在數(shù)據(jù)存儲(chǔ)方面的開銷。
(2)動(dòng)態(tài)可擴(kuò)展。通過對(duì)服務(wù)節(jié)點(diǎn)的增刪,部分分布式存儲(chǔ)系統(tǒng)理論上可以無限制擴(kuò)展容量。成熟的分布式存儲(chǔ)系統(tǒng)可以輕松擴(kuò)展到幾千節(jié)點(diǎn),滿足PB級(jí)數(shù)據(jù)的存儲(chǔ)和管理需求。用戶在使用這些系統(tǒng)時(shí)可以依據(jù)具體業(yè)務(wù)需要對(duì)存儲(chǔ)服務(wù)進(jìn)行量身定制。
(3)高吞吐量。由于分布式存儲(chǔ)系統(tǒng)采用分而治之的思想,對(duì)數(shù)據(jù)進(jìn)行并行操作,天然地對(duì)大數(shù)據(jù)量的處理有很高的吞吐量。
在此基礎(chǔ)上,根據(jù)對(duì)分布式系統(tǒng)的分類,對(duì)三種分布式基礎(chǔ)存儲(chǔ)系統(tǒng)進(jìn)行闡述。
2.1 分布式文件系統(tǒng)
文件系統(tǒng)是在操作系統(tǒng)中對(duì)存儲(chǔ)空間的抽象,向用戶提供統(tǒng)一的、對(duì)象化的訪問接口。分布式文件系統(tǒng)(Distributed File System,DFS)的概念是相對(duì)于本地文件系統(tǒng)提出的。DFS的文件系統(tǒng)管理物理存儲(chǔ)資源不一定直接連接在本地,而是通過計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連。DFS基于C/S模式設(shè)計(jì),通常提供多個(gè)供用戶訪問的服務(wù)器。由于網(wǎng)絡(luò)的對(duì)等性,節(jié)點(diǎn)的客戶端和服務(wù)端的角色是共存的。
目前的DFS主要通過NAS虛擬化[6],或者基于x86硬件集群和分布式文件系統(tǒng)集成在一起,以實(shí)現(xiàn)海量非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)。
為應(yīng)對(duì)海量數(shù)據(jù)存儲(chǔ)的需求,DFS被設(shè)計(jì)具有以下特點(diǎn)。
(1)擴(kuò)展能力強(qiáng)。從GFS開始元數(shù)據(jù)中心化管理,到后來GlusterFS采用無中心化管理,理論上系統(tǒng)具有無限的擴(kuò)展能力。
(2)高可用性。通過中心分布式系統(tǒng)的master服務(wù)器HA、網(wǎng)絡(luò)分區(qū)等設(shè)計(jì),保障數(shù)據(jù)的實(shí)時(shí)可用性。數(shù)據(jù)完整性則通過本地文件的鏡像和文件自動(dòng)修復(fù)、多地備份等手段來解決。
(3)高效彈性存儲(chǔ)。可以根據(jù)業(yè)務(wù)需求靈活地增加或減少存儲(chǔ)池中的資源,而不需要中斷系統(tǒng)運(yùn)行。彈性存儲(chǔ)的最大挑戰(zhàn)是減少或增加資源時(shí)的數(shù)據(jù)震蕩問題。
(4)其他設(shè)計(jì)特點(diǎn):壓縮、加密、去重、緩存和存儲(chǔ)配額。壓縮減少了文件傳輸?shù)膸挀p耗。加密保障了數(shù)據(jù)傳輸?shù)陌踩?。值得一提的是,GlusterFS由于采用GNU/Hurd的堆棧式設(shè)計(jì),讓這些功能模塊可以方便地增減到系統(tǒng)。
2.2 分布式文件存儲(chǔ)系統(tǒng)實(shí)例
DFS的實(shí)現(xiàn)有多種,有AFS、NFS、GlusterFS等等。最著名的當(dāng)屬GFS(Google File System)[7]。2003年,GFS的設(shè)計(jì)思想被Google公開,引起了業(yè)內(nèi)轟動(dòng)。2008年,GFS的開源實(shí)現(xiàn)HDFS(Hadoop Distributed File System)[8]集成在Hadoop中并成為Apache的頂級(jí)項(xiàng)目。當(dāng)今大數(shù)據(jù)時(shí)代,Hadoop生態(tài)圈已成為大數(shù)據(jù)解決方案的工具箱。作為大數(shù)據(jù)的基礎(chǔ)存儲(chǔ)平臺(tái),HDFS為Hadoop生態(tài)圈提供了最底層的支持。
2.2.1 HDFS的架構(gòu)設(shè)計(jì)
HDFS借鑒GFS的思想把文件默認(rèn)劃分為64 MB的數(shù)據(jù)塊(Block),采用主從結(jié)構(gòu)。主控服務(wù)器用來實(shí)現(xiàn)元數(shù)據(jù)管理、副本管理、負(fù)載均衡管理、日志管理等操作。從屬服務(wù)器負(fù)責(zé)數(shù)據(jù)塊存儲(chǔ)管理。在分散存儲(chǔ)的同時(shí),每個(gè)節(jié)點(diǎn)也是一個(gè)計(jì)算資源,進(jìn)行數(shù)據(jù)的就近計(jì)算,提高了海量數(shù)據(jù)處理性能。很多其他分布式文件系統(tǒng)都借鑒了GFS的思想,如TFS、Facebook Haystack[9]等。
HDFS構(gòu)建在普通商業(yè)服務(wù)器上的分布式文件系統(tǒng),將組件失效看作是常態(tài)。數(shù)據(jù)以塊(block)為單位進(jìn)行存儲(chǔ)管理。適用于一次寫入多次讀取的離線大數(shù)據(jù)處理。整體架構(gòu)如圖1所示。
NameNode作為元數(shù)據(jù)處理節(jié)點(diǎn),DataNode作為塊數(shù)據(jù)處理節(jié)點(diǎn)。元數(shù)據(jù)包含文件相關(guān)的信息主要有:文件路徑,副本數(shù),塊大小,塊數(shù)量,塊號(hào),生成時(shí)間戳,用戶信息,權(quán)限信息,等等。NameNode是集群的大腦,負(fù)責(zé)整個(gè)集群的健康監(jiān)控,復(fù)制策略和負(fù)載均衡。為了保證HDFS的可用性,系統(tǒng)設(shè)計(jì)了SecondaryNamenode。元數(shù)據(jù)服務(wù)器心跳信息缺失會(huì)導(dǎo)致集群不可用。塊數(shù)據(jù)服務(wù)器心跳信息缺失會(huì)導(dǎo)致此DataNode不可用,此時(shí)NameNode會(huì)將此失效節(jié)點(diǎn)的數(shù)據(jù)寫入其余節(jié)點(diǎn),保證塊數(shù)據(jù)復(fù)本數(shù)。通過第三方軟件Zookeeper[10]進(jìn)行公平選舉,達(dá)到存儲(chǔ)集群的HA。Zookeeper是著名的Paxos一致性算法[11]的開源實(shí)現(xiàn)。集群做到HA之后,就可以對(duì)元數(shù)據(jù)服務(wù)器進(jìn)行替換而不用中斷集群運(yùn)行。
圖1 HDFS的架構(gòu)
為了保證數(shù)據(jù)的可用性,HDFS將塊數(shù)據(jù)存儲(chǔ)在不同節(jié)點(diǎn),默認(rèn)存放3份。節(jié)點(diǎn)之間通過心跳機(jī)制交流信息。NameNode只存放文件對(duì)應(yīng)的塊ID,塊的具體信息通過心跳機(jī)制由塊服務(wù)器上報(bào)。元數(shù)據(jù)信息在集群運(yùn)行期間常駐內(nèi)存,提高了數(shù)據(jù)訪問速度。應(yīng)用程序首先通過API到NameNode處獲得文件塊號(hào)等元數(shù)據(jù)信息,然后直接到DataNode處讀數(shù)據(jù)。存數(shù)據(jù)先要到NameNode處申請(qǐng)到塊號(hào)等元數(shù)據(jù)信息,然后由YARN資源管理器分配資源,最后到具體的DataNode服務(wù)器進(jìn)行寫入。
2.2.2 HDFS的高可用和一致性
HDFS在保證數(shù)據(jù)可用性的同時(shí)會(huì)降低數(shù)據(jù)一致性。HDFS是數(shù)據(jù)讀寫分離的。A節(jié)點(diǎn)負(fù)責(zé)寫入數(shù)據(jù),然后將數(shù)據(jù)同步到B節(jié)點(diǎn)。B節(jié)點(diǎn)提供數(shù)據(jù)讀取的服務(wù),當(dāng)AB兩個(gè)節(jié)點(diǎn)出現(xiàn)通信問題時(shí),HDFS保證B節(jié)點(diǎn)繼續(xù)提供服務(wù),但是數(shù)據(jù)不保證一致。即用戶處于等待狀態(tài),一直等到數(shù)據(jù)同步完成后系統(tǒng)才繼續(xù)提供服務(wù)。
HDFS是一種高可用、易擴(kuò)展、高性能且容錯(cuò)性強(qiáng)的分布式文件存儲(chǔ)系統(tǒng)。在實(shí)際應(yīng)用中也存在一些問題:不適用海量小文件處理,實(shí)時(shí)隨機(jī)讀寫等。構(gòu)建在此存儲(chǔ)系統(tǒng)上的數(shù)據(jù)庫(kù)系統(tǒng)HBase(Google的BigTable開源實(shí)現(xiàn)),在一定程度上提供了數(shù)據(jù)的低延遲隨機(jī)讀寫能力。海量小文件會(huì)增加元數(shù)據(jù)服務(wù)器的壓力,通常采用文件壓縮、預(yù)取和緩存技術(shù)改善訪問效率。NameNode節(jié)點(diǎn)使用高速帶寬(通常萬兆帶寬),大容量?jī)?nèi)存,SSD做中間緩存等手段也是常用的。大數(shù)據(jù)技術(shù)全球領(lǐng)跑者Google的大數(shù)據(jù)管理路線是循著BigTable[12]、Megastore[13]、Spanner[14]發(fā)展,而底層的數(shù)據(jù)存儲(chǔ)支持是從GFS到Colossus技術(shù)革新。
3.1 分布式鍵值存儲(chǔ)系統(tǒng)
分布式鍵值存儲(chǔ)系統(tǒng)是一種基于主鍵構(gòu)建鍵值對(duì)以實(shí)現(xiàn)對(duì)半結(jié)構(gòu)化數(shù)據(jù)的簡(jiǎn)單CRUD操作的大數(shù)據(jù)基礎(chǔ)存儲(chǔ)方案??梢钥醋魇且环N分布式表格系統(tǒng)的簡(jiǎn)化實(shí)現(xiàn)。最典型的分布式鍵值系統(tǒng)是Amazon的Dynamo系統(tǒng)[15]。其他基于同一思想構(gòu)建的系統(tǒng)還有Facebook的Cassandra[16]和淘寶的TaoBao Tair。自07年Dynamo的論文公開后,作為一種與GFS截然不同的經(jīng)典大數(shù)據(jù)基礎(chǔ)存儲(chǔ)解決方案一直在發(fā)展進(jìn)步。當(dāng)前云存儲(chǔ)的關(guān)注熱點(diǎn)在分布式對(duì)象存儲(chǔ)系統(tǒng)。如Amazon的S3[17]和開源的OpenStack的Swift[18],都可視為分布式鍵值存儲(chǔ)系統(tǒng)。Dynamo構(gòu)建主鍵是基于文件數(shù)據(jù),而S3和Swift構(gòu)建主鍵是基于對(duì)象。所謂對(duì)象其實(shí)就是文件數(shù)據(jù)及其屬性信息的集合。分布式鍵值存儲(chǔ)系統(tǒng)的核心技術(shù)要點(diǎn)有:P2P非中心化系統(tǒng)設(shè)計(jì),一致性哈希技術(shù),數(shù)據(jù)最終一致性實(shí)現(xiàn),數(shù)據(jù)寫的高可用性,系統(tǒng)故障處理和動(dòng)態(tài)水平擴(kuò)展的實(shí)現(xiàn)。
3.2 分布式鍵值系統(tǒng)實(shí)例
Dynamo是一個(gè)高性能、高可用、易擴(kuò)展的分布式鍵值存儲(chǔ)系統(tǒng)。圖2是Amazon PaaS(平臺(tái)即服務(wù))架構(gòu)。客戶端有服務(wù)需求,如數(shù)據(jù)需求或計(jì)算需求,通過網(wǎng)頁中的個(gè)性化組件向聚合服務(wù)器請(qǐng)求服務(wù)。服務(wù)端和客戶端通過LSA(服務(wù)水平協(xié)議)控制對(duì)用戶的服務(wù)項(xiàng)目和質(zhì)量。每個(gè)聚合服務(wù)器都負(fù)責(zé)一類服務(wù),由多個(gè)服務(wù)器實(shí)例組成。服務(wù)器實(shí)例可有多種,如Dynamo實(shí)例、S3服務(wù)實(shí)例、其他數(shù)據(jù)存儲(chǔ)實(shí)例等等。
圖2 Dynamo架構(gòu)圖
3.2.1 Dynamo的一致性與高可用
亞馬遜對(duì)Dynamo的一個(gè)很重要的設(shè)計(jì)目標(biāo)是保證寫的高可用性。在其他服務(wù)器或網(wǎng)絡(luò)出現(xiàn)故障時(shí),購(gòu)物車服務(wù)器仍提供寫服務(wù)。一個(gè)服務(wù)器實(shí)例就是一個(gè)P2P網(wǎng)絡(luò)架構(gòu),去中心化。這是和HDFS網(wǎng)絡(luò)架構(gòu)的顯著區(qū)別。當(dāng)數(shù)據(jù)依據(jù)某個(gè)副本策略進(jìn)行數(shù)據(jù)備份,出現(xiàn)網(wǎng)絡(luò)故障時(shí),Dynamo通過降低數(shù)據(jù)的可用性來保障數(shù)據(jù)的強(qiáng)一致性。
Dynamo被設(shè)計(jì)成保證數(shù)據(jù)的最終一致性,即所有的更新都在所有副本中體現(xiàn)。在數(shù)據(jù)有更新時(shí),利用向量時(shí)鐘體現(xiàn)版本變化。如圖3所示,原始的數(shù)據(jù)D被節(jié)點(diǎn)Sx更新后成為D1,但是伴隨著數(shù)據(jù)的有一個(gè)向量時(shí)鐘([Sx,1])。在數(shù)據(jù)D2分別被Sy和Sz更新而沒有統(tǒng)一體現(xiàn)在所有副本之后,客戶端會(huì)讀取到兩個(gè)數(shù)據(jù)D3和D4,此時(shí)通過向量時(shí)鐘可以確定數(shù)據(jù)的共同祖先Sx,并由Sx對(duì)數(shù)據(jù)D3和D4合并更新。這樣通過向量時(shí)鐘獲取了數(shù)據(jù)的上下文變化信息,最終保障了數(shù)據(jù)的強(qiáng)一致性。同樣,通過對(duì)數(shù)據(jù)讀取過程的協(xié)調(diào),保證了數(shù)據(jù)寫的高可用。
圖3 Dynamo數(shù)據(jù)的最終一致性
Dynamo數(shù)據(jù)使用一致性哈希環(huán)將數(shù)據(jù)動(dòng)態(tài)分配到存儲(chǔ)節(jié)點(diǎn)上。每份數(shù)據(jù)對(duì)應(yīng)于一個(gè)唯一主鍵。主鍵通過MD5哈希生成128位的特征碼。將所有的特征碼首尾相接就形成了圖4所示的哈希環(huán)。每個(gè)節(jié)點(diǎn)負(fù)責(zé)根據(jù)不同的副本策略存儲(chǔ)數(shù)據(jù)。如圖4中顯示的數(shù)據(jù)副本數(shù)是3,即每個(gè)節(jié)點(diǎn)存儲(chǔ)當(dāng)前節(jié)點(diǎn)和此節(jié)點(diǎn)之前的三個(gè)節(jié)點(diǎn)之間三段Key Range所對(duì)應(yīng)的鍵值對(duì)數(shù)據(jù)。例如,D節(jié)點(diǎn)會(huì)存儲(chǔ)(A,B]、(B,C]和(C,D]三個(gè)Key Range對(duì)應(yīng)的數(shù)據(jù)。該設(shè)計(jì)的一大優(yōu)點(diǎn)是,數(shù)據(jù)的變動(dòng)只會(huì)影響臨近節(jié)點(diǎn)而不影響其他節(jié)點(diǎn)。
為了消除數(shù)據(jù)熱點(diǎn)的出現(xiàn),避免節(jié)點(diǎn)因熱數(shù)據(jù)負(fù)載過高,Dynamo使用了“虛擬節(jié)點(diǎn)”的概念。一個(gè)物理節(jié)點(diǎn)可以由多個(gè)虛擬節(jié)點(diǎn)負(fù)責(zé)。每個(gè)物理節(jié)點(diǎn)最初只包含本地節(jié)點(diǎn)和token(虛擬節(jié)點(diǎn)標(biāo)識(shí))的信息。系統(tǒng)啟動(dòng)后通過Gossip協(xié)議[19]與對(duì)等節(jié)點(diǎn)交換信息。整個(gè)系統(tǒng)的分區(qū)信息和部署信息也經(jīng)Gossip協(xié)議傳輸?shù)剿形锢砉?jié)點(diǎn)。物理節(jié)點(diǎn)的增減也通過Gossip協(xié)議告知臨近節(jié)點(diǎn)。每增加一個(gè)節(jié)點(diǎn),此節(jié)點(diǎn)會(huì)被分配對(duì)應(yīng)的token來服務(wù)存儲(chǔ)集群。刪除節(jié)點(diǎn)時(shí),對(duì)應(yīng)的虛擬節(jié)點(diǎn)出現(xiàn)變化,集群會(huì)將被移除節(jié)點(diǎn)的數(shù)據(jù)分配到臨近虛擬節(jié)點(diǎn),保證數(shù)據(jù)副本數(shù)。此過程只影響臨近的虛擬節(jié)點(diǎn),所以系統(tǒng)內(nèi)不會(huì)出現(xiàn)網(wǎng)絡(luò)風(fēng)暴。
圖4 Dynamo環(huán)上的分區(qū)與復(fù)制
3.2.2 Dynamo的靈活讀寫策略
Dynamo通過對(duì)數(shù)據(jù)的get(key)和put(key)原子操作的動(dòng)態(tài)調(diào)整,獲取靈活的數(shù)據(jù)處理性能。在讀寫操作出現(xiàn)障礙時(shí),使用一個(gè)類似于仲裁的一致性協(xié)議來保證副本的一致性。協(xié)議參數(shù)R表示判斷一個(gè)讀取操作成功的最少節(jié)點(diǎn)數(shù)目;協(xié)議參數(shù)W表示判斷寫操作成功的最少節(jié)點(diǎn)數(shù);協(xié)議參數(shù)N表示讀寫操作涉及的健康節(jié)點(diǎn)數(shù),或者是數(shù)據(jù)目標(biāo)副本數(shù)。當(dāng)業(yè)務(wù)在讀請(qǐng)求上需求量大時(shí),設(shè)置較大的N保證數(shù)據(jù)的健壯性,選擇較大的W和較小的N。這樣就犧牲了寫性能,獲得更高的讀性能。相反,可以選擇較小的W和較大的N來適應(yīng)業(yè)務(wù)大量寫操作的需求。以犧牲讀性能換取更高的寫性能。默認(rèn)設(shè)置W+R>N,認(rèn)為這是一個(gè)可靠仲裁系統(tǒng),能夠保證每次都能讀取最新的數(shù)據(jù)。反之則不然。
此外,Dynamo采用反熵(anti-entropy)協(xié)議[20]來保持副本的同步,采用MerkleTree[21]來提高副本一致性檢驗(yàn)的性能。
以上描述了Dynamo這個(gè)典型的分布式鍵值對(duì)存儲(chǔ)系統(tǒng)的數(shù)據(jù)存儲(chǔ)過程。重點(diǎn)介紹了數(shù)據(jù)一致性保障、集群水平擴(kuò)展實(shí)現(xiàn)、集群健壯性保障等方面的主要技術(shù)要點(diǎn)。
4.1 分布式表格存儲(chǔ)系統(tǒng)
在國(guó)內(nèi),大數(shù)據(jù)生產(chǎn)環(huán)境中對(duì)Hadoop生態(tài)工具的運(yùn)用越來越多。為了適應(yīng)不同的應(yīng)用場(chǎng)景,基礎(chǔ)存儲(chǔ)服務(wù)一直由HDFS和HBase提供。HBase[22]是基于HDFS的分布式列簇存儲(chǔ)數(shù)據(jù)庫(kù)。簡(jiǎn)單來講,HBase就是在分布式文件系統(tǒng)上對(duì)數(shù)據(jù)加了一層索引,它適用于處理半結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)。HBase實(shí)質(zhì)是對(duì)數(shù)據(jù)索引進(jìn)行管理的平臺(tái)。在高吞吐量的批處理場(chǎng)景下,優(yōu)先選擇HDFS系統(tǒng)作為存儲(chǔ)。在追求低延遲,有隨機(jī)讀寫需要的場(chǎng)景下,優(yōu)先選擇HBase系統(tǒng)作為存儲(chǔ)。市場(chǎng)需要一個(gè)既支持高吞吐量又支持低延遲隨機(jī)讀寫的存儲(chǔ)系統(tǒng)。Kudu就是以此為目標(biāo)而設(shè)計(jì)的基礎(chǔ)數(shù)據(jù)存儲(chǔ)解決方案。
4.2 分布式表格存儲(chǔ)系統(tǒng)實(shí)例
Kudu是Cloudera公司在2015年公開的一種純列式面向結(jié)構(gòu)化數(shù)據(jù),支持低延遲隨機(jī)讀寫且具有高性能處理數(shù)據(jù)能力的開源大數(shù)據(jù)存儲(chǔ)引擎。Kudu一開始的設(shè)計(jì)目標(biāo)就是緊密融入Hadoop生態(tài)圈,對(duì)Yarn、Hive、Mesos等的支持度很高。Kudu可以很好地支持Spark的內(nèi)存計(jì)算框架和MapReduce的鍵值對(duì)計(jì)算框架。由于Kudu剛剛公布的新型系統(tǒng),目前僅能獲取beta版,國(guó)內(nèi)只有小米公司使用了半實(shí)驗(yàn)半生產(chǎn)的Kudu千節(jié)點(diǎn)集群。作為一種新型的分布式基礎(chǔ)存儲(chǔ)系統(tǒng)有很多創(chuàng)新點(diǎn)值得學(xué)習(xí)。
4.2.1 Kudu的架構(gòu)設(shè)計(jì)要點(diǎn)
圖5是Kudu的架構(gòu)圖,Kudu存儲(chǔ)系統(tǒng)由三個(gè)master服務(wù)器和若干tablet服務(wù)器組成。Master服務(wù)器負(fù)責(zé)管理metadata,是集群的管理者。每個(gè)tablet服務(wù)器服務(wù)多個(gè)tablet并維護(hù)tablet的主從狀態(tài)。每個(gè)tablet包含多個(gè)具體表。Tablet的主從之間使用Raft一致性算法來保證它們間的數(shù)據(jù)同步。
在使用者看來,Kudu是一種基于表結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)系統(tǒng)。一個(gè)Kudu集群擁有很多數(shù)量的表,每一個(gè)表都有模式(schema)定義。模式包含一個(gè)有限的列。每個(gè)列都有一個(gè)名字和模式(int32或string)是否為空的選項(xiàng)。在這些列中有已經(jīng)排序好的子集(叫做主鍵),主鍵列用戶不可添加或刪除。行具有主鍵唯一約束性。主鍵是刪除、更新等高等級(jí)操作的唯一依賴。針對(duì)行的主鍵可以進(jìn)行唯一索引建立,這提高了行的更新刪除性能。這種數(shù)據(jù)模式很像是關(guān)系型數(shù)據(jù)庫(kù),而不同于很多分布式數(shù)據(jù)庫(kù)存儲(chǔ)方式,如Cassandra、mongoDB、Riak、BigTable等。
Kudu對(duì)于類型的定義可以具體到某個(gè)列。這與其他NoSQL對(duì)數(shù)據(jù)類型定義為“everything is bites”不同。這是因?yàn)橛幸韵聝牲c(diǎn)考慮:指定類型允許使用特定類型的列編碼格式,例如使用整數(shù)的位填充;指定類型允許使用類SQL的元數(shù)據(jù)傳輸?shù)狡渌到y(tǒng),例如使用常用的BI或數(shù)據(jù)處理工具。Kudu自定義列類型,提高了列掃描的性能,實(shí)現(xiàn)了隨機(jī)數(shù)據(jù)更新的低延遲。
Kudu在保障數(shù)據(jù)一致性時(shí)提供了兩種一致性模型:使用快照,這是單客戶節(jié)點(diǎn)“讀你所寫”一致性的可靠實(shí)現(xiàn);使用時(shí)間戳令牌。用戶自定義在客戶端之間傳輸時(shí)間戳:在寫操作后,用戶在客戶端請(qǐng)求一個(gè)令牌時(shí)間戳,這個(gè)token可以通過外部通信傳輸?shù)搅硗獾目蛻舳耍贏PIs處理數(shù)據(jù)時(shí)能夠獲得不同客戶端對(duì)同一數(shù)據(jù)的寫操作的前后關(guān)系。注意這里與Dynamo使用向量時(shí)鐘保障一致性的實(shí)現(xiàn)方法是不同的。Kudu使用spanner(類似控制器組件)提供token鎖服務(wù),使用HibridTime時(shí)鐘算法[23]獲取時(shí)間戳。兩者的結(jié)合使用基本確保了數(shù)據(jù)的一致性。
圖5 Kudu的架構(gòu)圖
數(shù)據(jù)依據(jù)主鍵在Kudu里進(jìn)行水平分區(qū)。每個(gè)分區(qū)都有分區(qū)key并對(duì)應(yīng)某個(gè)tablet。主鍵元組映射到分區(qū)key。這確保了每次對(duì)數(shù)據(jù)的插入更新操作只針對(duì)一個(gè)tablet,降低了數(shù)據(jù)處理的復(fù)雜度。Kudu支持靈活的分區(qū)策略,建表時(shí)自定義對(duì)表設(shè)置某種分區(qū)模式。主要分區(qū)規(guī)則包括:hash分區(qū)規(guī)則和range分區(qū)規(guī)則。這些靈活的分區(qū)策略具備典型的“NoSql”特性,使得通過MPP(Massive Parallel Processing)分析數(shù)據(jù)的用戶和管理員能夠很快入手Kudu。
4.2.2 Kudu的存儲(chǔ)技術(shù)
一個(gè)tablet被Kudu細(xì)分為多個(gè)行集合(RowSets),這是Kudu的最小存儲(chǔ)單位。Kudu沒有HDFS中塊的概念。對(duì)行集合的獨(dú)立定義保證了行的獨(dú)立性。Kudu基于行集合進(jìn)行負(fù)載均衡、執(zhí)行WAL日志策略、配置數(shù)據(jù)讀寫IO閾值和確定數(shù)據(jù)壓縮策略等數(shù)據(jù)管理操作。行集合又分為內(nèi)存行集合(MemRowSet)和磁盤行集合(DiskRowSet)。
內(nèi)存行集合的實(shí)現(xiàn)是基于內(nèi)存的并發(fā)B樹實(shí)現(xiàn)的。它使用了樂觀鎖,借鑒了MassTree的設(shè)計(jì)實(shí)現(xiàn)。每個(gè)tablet只有一個(gè)內(nèi)存行集合保存當(dāng)前最近插入的行。其他落地的行集合成為磁盤行集合。當(dāng)一個(gè)內(nèi)存行集合被選擇進(jìn)行刷寫處理時(shí),一個(gè)新的空內(nèi)存行集合被創(chuàng)建并接管上一個(gè)內(nèi)存行集合的工作。前一個(gè)內(nèi)存行集合轉(zhuǎn)換為一個(gè)或多個(gè)磁盤行集合。這個(gè)裂變過程類似于HBase的HFile的裂變過程。刷寫過程是并發(fā)的。在完成刷寫過程之前,任何對(duì)這一過程的數(shù)據(jù)進(jìn)行更新刪除操作都會(huì)被追蹤,以便回滾時(shí)使用。在內(nèi)存行集合進(jìn)行刷寫的過程中,轉(zhuǎn)變的磁盤行集合默認(rèn)每32 MB大小一個(gè)輪回寫入磁盤。這確保磁盤行集合不會(huì)過大,提高了增量壓縮的性能。
數(shù)據(jù)插入過程:插入前,Kudu會(huì)掃描所有tablet的磁盤行集合,選取某個(gè)磁盤行集合執(zhí)行插入操作。此過程中,使用每個(gè)磁盤行集合的布隆過濾器確保插入數(shù)據(jù)key的唯一性。構(gòu)建key的B樹索引并常駐內(nèi)存以減少磁盤IO負(fù)載。
數(shù)據(jù)讀取過程:Kudu通常通過被讀取數(shù)據(jù)的主鍵上下界或上界進(jìn)行批量讀操作。Kudu選擇了基于內(nèi)存的批處理方式。內(nèi)部實(shí)現(xiàn)是一種類金字塔的層級(jí)關(guān)系,使用指針從高層指向底層最終指向更小的被讀列塊。批處理格式在內(nèi)存中是列式的,避免了偏移量計(jì)算的開銷。Kudu執(zhí)行按列掃描直到找到目標(biāo)列并得到行偏移量。
其他技術(shù)要點(diǎn):使用心跳機(jī)制和Raft算法(一種Paxos算法)配合達(dá)成選舉策略。懶實(shí)體化列掃描策略,優(yōu)先選取滿足自定義條件的列。廣泛地使用壓縮,如對(duì)行集合壓縮和中間緩存數(shù)據(jù)的壓縮溢寫。
海量數(shù)據(jù)不斷沖擊當(dāng)前的存儲(chǔ)技術(shù)體系,不同的分布式存儲(chǔ)技術(shù)百花齊放、百家爭(zhēng)鳴。除了以上介紹的基礎(chǔ)存儲(chǔ)方式,還有混合存儲(chǔ)方式。如Ceph的存儲(chǔ)系統(tǒng),根據(jù)對(duì)存儲(chǔ)對(duì)象的定義不同,可以靈活存儲(chǔ)不同類型的大數(shù)據(jù)資產(chǎn)。異軍突起的Alluxio是以內(nèi)存為中心的虛擬分布式存儲(chǔ)系統(tǒng),能夠依據(jù)對(duì)底層任意不同的基礎(chǔ)存儲(chǔ)系統(tǒng)(如HDFS或AWS等)存儲(chǔ)數(shù)據(jù)的處理性能需求,自定義或者自動(dòng)針對(duì)特定數(shù)據(jù)選擇存儲(chǔ)方式和存儲(chǔ)介質(zhì)。它是構(gòu)建在計(jì)算框架和存儲(chǔ)框架之間高效、靈活的管理者。高效的存儲(chǔ)架構(gòu)設(shè)計(jì)、創(chuàng)新的存儲(chǔ)模型思想、靈活的存儲(chǔ)手段整合,這三者是應(yīng)對(duì)海量數(shù)據(jù)存儲(chǔ)、應(yīng)用挑戰(zhàn)的重要手段。大數(shù)據(jù)基礎(chǔ)存儲(chǔ)系統(tǒng)是構(gòu)建MPP系統(tǒng)、NoSQL系統(tǒng)、混合系統(tǒng)等的核心。
圍繞基于文件、鍵值對(duì)、表格等三大基礎(chǔ)大數(shù)據(jù)存儲(chǔ)系統(tǒng)的技術(shù)發(fā)展脈絡(luò)進(jìn)行介紹。梳理出當(dāng)前大數(shù)據(jù)基礎(chǔ)存儲(chǔ)技術(shù)的發(fā)展現(xiàn)狀和發(fā)展潮流。對(duì)這三種典型的大數(shù)據(jù)基礎(chǔ)分布式存儲(chǔ)系統(tǒng)的技術(shù)、架構(gòu)進(jìn)行了研究和對(duì)比。結(jié)合具體實(shí)例介紹了大數(shù)據(jù)分布式基礎(chǔ)存儲(chǔ)系統(tǒng)的基本概念、關(guān)鍵技術(shù)和架構(gòu)設(shè)計(jì)要點(diǎn)。早期基礎(chǔ)存儲(chǔ)系統(tǒng)寶刀未老,新型基礎(chǔ)存儲(chǔ)系統(tǒng)來勢(shì)洶洶。基礎(chǔ)存儲(chǔ)技術(shù)作為大數(shù)據(jù)發(fā)展的基石,將繼續(xù)成為工業(yè)界和學(xué)術(shù)界的研究熱點(diǎn)。
[1] 孟小峰,慈 祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J].計(jì)算機(jī)研究與發(fā)展,2013,50(1):146-169.
[2] Gantz J,Reinsel D.Extracting value from chaos[R].[s.l.]:IDC IVIEW,2011.
[3] 張 冬.大話存儲(chǔ)[M].北京:清華大學(xué)出版社,2008:19-58.
[4] 王 月,賈卓生.網(wǎng)絡(luò)存儲(chǔ)技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(6):107-109.
[5] Li H,Ghodsi A,Zaharia M,et al.Tachyon:reliable,memory speed storage for cluster computing frameworks[C]//Proceedings of the ACM symposium on cloud computing.[s.l.]:ACM,2014:1-15.
[6] 張成峰,謝長(zhǎng)生,羅益輝,等.網(wǎng)絡(luò)存儲(chǔ)的統(tǒng)一與虛擬化[J].計(jì)算機(jī)科學(xué),2006,33(6):11-14.
[7] Ghemawat S,Gobioff H,Leung S T.The Google file system[C]//ACM symposium on operating systems review.[s.l.]:ACM,2003:29-43.
[8] Shvachko K,Kuang H,Radia S,et al.The Hadoop distributed file system[C]//IEEE 26th symposium on mass storage systems and technologies.[s.l.]:IEEE,2010:1-10.
[9] Quan D,Huynh D,Karger D R.Haystack:a platform for authoring end user semantic web applications[C]//Proceeding of ISWC.[s.l.]:[s.n.],2003:738-753.
[10] 劉 芬,王 芳,田 昊.基于Zookeeper的分布式鎖服務(wù)及性能優(yōu)化[J].計(jì)算機(jī)研究與發(fā)展,2014,51(S):229-234.
[11] 許子燦,吳榮泉.基于消息傳遞的Paxos算法研究[J].計(jì)算機(jī)工程,2011,37(21):287-290.
[12] Chang F,Dean J,Ghemawat S,et al.Bigtable:a distributed storage system for structured data[J].ACM Transactions on Computer Systems,2008,26(2):4
[13] Baker J,Bond C,Corbett J,et al.Megastore:providing scalable,highly available storage for interactive services[C]//Fifth biennial conference on innovative data systems research.Asilomar,CA,USA:[s.n.],2011:223-234.
[14] Corbett J C,Dean J,Epstein M,et al.Spanner:Google’s globally-distributed database[C]//USENIX conference on operating systems design and implementation.[s.l.]:USENIX Association,2012:251-264.
[15] Decandia G,Hastorun D,Jampani M,et al.Dynamo:amazon's highly available key-value store[C]//ACM SIGOPS operating systems review.[s.l.]:ACM,2007:205-220.
[16] Lakshman A,Malik P.Cassandra:a decentralized structured storage system[J].ACM SIGOPS Operating Systems Review,2010,44(2):35-40.
[17] Guide G S.Amazon simple storage service[EB/OL].2016-03-01.https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/china/pdf/s3-ug.pdf.
[18] Arnold J.OpenStack swift:using,administering,and developing for swift object storage[M].[s.l.]:O’Reilly Media,Inc,2014.
[19] 劉德輝,尹 剛,王懷民,等.分布環(huán)境下的Gossip算法綜述[J].計(jì)算機(jī)科學(xué),2010,37(11):24-28.
[20] van Renesse R,Dumitriu D,Gough V,et al.Efficient reconciliation and flow control for anti-entropy protocols[C]//Workshop on large-scale distributed systems & middleware.[s.l.]:[s.n.],2008:1-7.
[21] 秦志光,王士雨,趙 洋,等.云存儲(chǔ)服務(wù)的動(dòng)態(tài)數(shù)據(jù)完整性審計(jì)方案[J].計(jì)算機(jī)研究與發(fā)展,2015,52(10):2192-2199.
[22] Vora M N.Hadoop-HBase for large-scale data[C]//International conference on computer science and network technology.[s.l.]:IEEE,2011:601-605.
[23] Alves D,Garg V.Hybridtime-accessible global consistency with high clock uncertainty[R].[s.l.]:[s.n.],2014.
Research on Technology of Basic Large Data Storage System
WANG Rui-tong1,LI Wei-chun2
(1.College of Computer,Nanjing University of Posts and Telecommunications,Nanjing 210003,China;2.College of Mathematics and Computer Science,Fuzhou University,Fuzhou 350116,China)
With the development of big data technology and the enhanced requirements on storage and analysis of the mass data,more and more mature distributed data storage systems have been provided.According to comparison and analysis on the key technical points like storage strategy,management strategies and architecture in the foundation system of various data distributed storage system,the existing prevailing distributed storage system is gone back to the roots from design philosophy and innovative technologiesl.Comparison on development and application between traditional and distributed data storage,it is revealed that data storage pursues the larger,the faster and the safer.The three distributed storage methods are emphasized including file-based,key-value-based and form-based in instances of basic big data storage.As the development of network technology evolved at SDN (Software Defined Network),the basic storage technology reaches SDS (Software Defined Storage).The elaborating current mainstream development and application instance of big data storage technology has been presented in detail as a reference of design in distributed storage system,especially in basic distributed storage system and some recommendations on the selection of the underlying storage with special business for engineers.
big data;storage architecture;data management;foundation system of data storage;distributed storage system
2016-07-07
2016-10-19 網(wǎng)絡(luò)出版時(shí)間:2017-07-05
國(guó)家“863”高技術(shù)發(fā)展計(jì)劃項(xiàng)目(2006AA01Z201)
王瑞通(1990-),男,碩士研究生,研究方向?yàn)榉植际酱鎯?chǔ)、大數(shù)據(jù)架構(gòu)。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170705.1649.022.html
TP302
A
1673-629X(2017)08-0066-07
10.3969/j.issn.1673-629X.2017.08.014