[孫淳曄 龐亞南 鄧芳]
隨著IT 技術(shù)的不斷發(fā)展,企業(yè)的IT 基礎(chǔ)架構(gòu)向云化與資源池方向演進(jìn),易部署、管理、維護(hù)的云化架構(gòu)將成為主流的應(yīng)用架構(gòu),其中尤以存儲(chǔ)技術(shù)的變化最為巨大,隨著SDS 存儲(chǔ)技術(shù)的成熟,其承載的關(guān)鍵業(yè)務(wù)負(fù)載滲透率持續(xù)提升,越來越多的企業(yè)數(shù)據(jù)將會(huì)存儲(chǔ)到彈性分布式存儲(chǔ)。
縱覽運(yùn)營(yíng)商近幾年的存儲(chǔ)發(fā)展趨勢(shì),傳統(tǒng)集中存儲(chǔ)逐漸萎縮,分布式存儲(chǔ)快速推廣,存儲(chǔ)設(shè)備已經(jīng)從專有設(shè)備向簡(jiǎn)單管理,支持大規(guī)模線性擴(kuò)展的通用設(shè)備過渡,并且大視頻、大數(shù)據(jù)、數(shù)字化業(yè)務(wù)等新興業(yè)務(wù)的全面云化部署,存儲(chǔ)的數(shù)據(jù)量級(jí)也在呈指數(shù)倍趨勢(shì)增長(zhǎng),為未來分布式云存儲(chǔ)的普及提供了環(huán)境。
對(duì)于運(yùn)營(yíng)商,經(jīng)過近些年去IOE 思路下的發(fā)展建設(shè),IT 基礎(chǔ)設(shè)施走向全面云化,同時(shí)隨著降本增效訴求的提出,具備彈性擴(kuò)展,大容量的分布式成為存儲(chǔ)產(chǎn)品的首選。
如圖1 所示,分布式存儲(chǔ)是將數(shù)據(jù)分散存儲(chǔ)在網(wǎng)絡(luò)上的多臺(tái)獨(dú)立設(shè)備上,一般采用標(biāo)準(zhǔn)X86 服務(wù)器和網(wǎng)絡(luò)互聯(lián),并在其上運(yùn)行相關(guān)存儲(chǔ)軟件,以多副本或糾刪碼策略提供安全保障,系統(tǒng)對(duì)外作為一個(gè)整體提供存儲(chǔ)服務(wù)[1]。傳統(tǒng)集中式存儲(chǔ)主要以FC-SAN 存儲(chǔ)為代表,該類存儲(chǔ)主要由控制器和多個(gè)硬盤框組成。
圖1 傳統(tǒng)存儲(chǔ)與分布式存儲(chǔ)架構(gòu)對(duì)比
從技術(shù)特點(diǎn)的角度考慮,如表1 所示,從擴(kuò)展性,經(jīng)濟(jì)性,管理性三方面對(duì)分布式存儲(chǔ)系統(tǒng)和傳統(tǒng)存儲(chǔ)系統(tǒng)進(jìn)行了對(duì)比。
表1 技術(shù)特點(diǎn)對(duì)比
(1)擴(kuò)展性
傳統(tǒng)集中式存儲(chǔ)典型特點(diǎn)為采用雙冗余控制器。在數(shù)據(jù)量較小并且增長(zhǎng)量很小時(shí),性價(jià)比相對(duì)比較突出,當(dāng)數(shù)據(jù)量顯著增大時(shí)由于控制器瓶頸造成性能受限。設(shè)備處理能力上限在購(gòu)買時(shí)已經(jīng)確定,如果需求超過上限,需重新購(gòu)買更高性能的設(shè)備,浪費(fèi)已有投資。
分布式存儲(chǔ)是面向大數(shù)據(jù)時(shí)代而設(shè)計(jì)的產(chǎn)品,此類產(chǎn)品打破了傳統(tǒng)存儲(chǔ)架構(gòu),由大量的存儲(chǔ)節(jié)點(diǎn)組成存儲(chǔ)集群系統(tǒng),每個(gè)節(jié)點(diǎn)既是控制器又是磁盤籠,存儲(chǔ)節(jié)點(diǎn)可以從幾個(gè)節(jié)點(diǎn)到上千節(jié)點(diǎn),存儲(chǔ)性能、前后端口IO 性能都隨著存儲(chǔ)空間的增長(zhǎng)而成比例地增加,適合數(shù)據(jù)量快速膨脹的場(chǎng)景[2]。
(2)經(jīng)濟(jì)性
傳統(tǒng)集中式存儲(chǔ)初期采購(gòu)成本價(jià)格高昂,一次性采購(gòu)未來一至二年的預(yù)估容量和性能。當(dāng)設(shè)備維保到期后,由于集中式存儲(chǔ)采用廠商獨(dú)有磁盤等部件,后期續(xù)保費(fèi)用高昂。
分布式存儲(chǔ)由于采用商用標(biāo)準(zhǔn)X86 服務(wù)器,采購(gòu)成本低廉,閑置的服務(wù)器同樣可以進(jìn)行利舊使用。X86 服務(wù)器采用標(biāo)準(zhǔn)的硬件平臺(tái),后期更換部件成本低廉。
(3)管理性
傳統(tǒng)存儲(chǔ)發(fā)生業(yè)務(wù)遷移時(shí)需要專門的遷移方案,甚至發(fā)生軟硬件采購(gòu)費(fèi)用,割接時(shí)業(yè)務(wù)發(fā)生中斷,影響業(yè)務(wù),而分布式存儲(chǔ)則自動(dòng)在線完成數(shù)據(jù)重分布,并提供QoS流控制,不中斷業(yè)務(wù)。
(1)按服務(wù)類型分類
分布式塊主要是通過RAID,卷管理等技術(shù)將物理裸空間映射為邏輯空間,以磁盤塊為單位進(jìn)行操作[3],操作系統(tǒng)層無感知,由于整合了較多的硬盤,提升了數(shù)據(jù)讀寫的并發(fā)性能,保證了IO 性能。主要適用于Docker 容器、虛擬機(jī)磁盤存儲(chǔ)分配、日志存儲(chǔ)等。
移動(dòng)集團(tuán)針對(duì)分布式塊的分類如表2所示,用戶根據(jù)適用場(chǎng)景進(jìn)行性能、容量的均衡選擇。圖2 展示了分布式塊存儲(chǔ)場(chǎng)景分類。
表2 分布式塊典配模型分類
圖2 分布式塊存儲(chǔ)場(chǎng)景分類
為主機(jī)分配存儲(chǔ)資源后進(jìn)行文件系統(tǒng)掛載,造成存儲(chǔ)映射的唯一性,分配給主機(jī)A 的存儲(chǔ)一般情況不能共享給主機(jī)B,共享性較差?;谏鲜鋈秉c(diǎn),分布式對(duì)象、分布式文件存儲(chǔ)得以推廣應(yīng)用。分布式文件存儲(chǔ)如表3 所示分為容量型、性能型兩類,類似于早期的NAS 存儲(chǔ),它主要用于文件共享,以文件為單位進(jìn)行操作,采用NFS 或CIFS 命令集訪問數(shù)據(jù),通過TCP/IP 實(shí)現(xiàn)網(wǎng)絡(luò)化存儲(chǔ),存儲(chǔ)協(xié)議主要包括傳統(tǒng)文件系統(tǒng)如Ext3、Ext4的POSIX接口,GlusterFS、HDFS 等非傳統(tǒng)文件存儲(chǔ)的接口類型,適合日志存儲(chǔ)、有目錄結(jié)構(gòu)的文件存儲(chǔ)等。
表3 分布式文件典配模型分類
分布式對(duì)象同時(shí)兼具塊存儲(chǔ)的高IO 性能及文件存儲(chǔ)的共享優(yōu)勢(shì),得以廣泛的應(yīng)用,目前業(yè)界流行的協(xié)議標(biāo)準(zhǔn)主要有AWS S3、OpenStack Swift 接口協(xié)議等,適合更新變動(dòng)較少的數(shù)據(jù)如圖片、視頻存儲(chǔ)等。
(2)按技術(shù)流派分類
隨著分布式存儲(chǔ)的普及,各廠商依托自身優(yōu)勢(shì)在SDS市場(chǎng)發(fā)力,梳理了當(dāng)前的存儲(chǔ)流派,主要分為三大陣營(yíng)。
自主研發(fā)陣營(yíng),一般情況可提供純軟件的分布式存儲(chǔ)解決方案,硬件為通用的集采設(shè)備,但廠商會(huì)有硬件推薦,以便得到更好的性能及可靠性;進(jìn)一步可提供軟硬一體的解決方案,廠商提供所有的軟硬件一體機(jī),由于軟、硬件資源均由廠家自研提供,參數(shù)方面調(diào)優(yōu)較佳,會(huì)比純軟產(chǎn)品具備更優(yōu)越的性能。
基于開源社區(qū)的二次開發(fā),此類廠家基于原生態(tài)存儲(chǔ)社區(qū)進(jìn)行二次開發(fā),或提供純軟存儲(chǔ)方案或提供軟硬一體存儲(chǔ)方案,主要解決了原生態(tài)用于實(shí)際場(chǎng)景的易用性及兼容性問題。目前業(yè)界使用較為廣泛的主要有Ceph、OpenStack、Gluster-FS 等開源架構(gòu)。
廠商軟件服務(wù)商綁定模式,由廠商提供專有定制硬件,由Linux 廠商提供軟件服務(wù)并負(fù)責(zé)后期問題解決,廠商將二者進(jìn)行打包售賣,主要以軟硬一體方式為主。
分布式存儲(chǔ)的高可靠性主要是將文件切成對(duì)象并分布到不同節(jié)點(diǎn)的不同磁盤上,實(shí)現(xiàn)技術(shù)上主要通過多副本、糾刪碼方式。
(1)多副本
如圖3 所示,多副本存儲(chǔ)機(jī)制是指將一份數(shù)據(jù)拷貝多份完全一樣的副本,分別存放在多個(gè)隨機(jī)選擇的不同節(jié)點(diǎn)上[4]。在部分節(jié)點(diǎn)發(fā)生故障時(shí),通過存活節(jié)點(diǎn)復(fù)原原始數(shù)據(jù)。
圖3 多副本存儲(chǔ)機(jī)制
(2)糾刪碼
糾刪碼(Erasure Code)簡(jiǎn)稱EC,是一種糾正數(shù)據(jù)丟失的校驗(yàn)碼[5]。如圖4 所示,其原理是將原始數(shù)據(jù)與編碼數(shù)據(jù)共同隨機(jī)分配到不同節(jié)點(diǎn),在部分節(jié)點(diǎn)發(fā)生故障時(shí)反推得到原始數(shù)據(jù)。
圖4 糾刪碼機(jī)制
N 表示原始數(shù)據(jù)的份數(shù),M 表示校驗(yàn)數(shù)據(jù)的份數(shù),這(N+M)份數(shù)據(jù)中,最多允許同時(shí)故障M 份數(shù)據(jù)。除了常見的M+N 糾刪碼之外,我們還經(jīng)常見到一種N+M:b 的糾刪碼,稱之為亞節(jié)點(diǎn)糾刪碼,其表示存儲(chǔ)系統(tǒng)允許任意故障的最大磁盤數(shù)是M,或者允許任意故障的最大節(jié)點(diǎn)數(shù)是b,這兩個(gè)任意性無法同時(shí)滿足;同一節(jié)點(diǎn)上多于M 塊磁盤甚至所有磁盤發(fā)生故障,相當(dāng)于節(jié)點(diǎn)故障,與任意故障的磁盤數(shù)無關(guān)聯(lián)。
(3)糾刪碼vs 多副本對(duì)比
如表4 所示,本文通過存儲(chǔ)節(jié)點(diǎn)數(shù)量及空間利用率這兩個(gè)性能指標(biāo)對(duì)多副本和糾刪碼這兩種容錯(cuò)機(jī)制進(jìn)行了對(duì)比。
表4 容錯(cuò)機(jī)制對(duì)比
多副本:M 副本,M=2~4,空間利用率為1/M,任意允許故障的磁盤數(shù)或節(jié)點(diǎn)數(shù)為(M-1)。
糾刪碼:N+M∶b,空間利用率為N/(N+M),允許任意同時(shí)故障的磁盤數(shù)為M,或允許任意同時(shí)故障的節(jié)點(diǎn)數(shù)為b,推薦的最小節(jié)點(diǎn)數(shù)為[b(N+M)/M]+b。
無論多副本還是糾刪碼在設(shè)備選型時(shí)每個(gè)節(jié)點(diǎn)的硬盤數(shù)量和單盤容量建議相同,因?yàn)槿绻煌脑?,就?huì)出現(xiàn)水桶的短板效應(yīng),兩個(gè)節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)配置8TB 硬盤,一個(gè)節(jié)點(diǎn)配置6TB 硬盤,8TB 硬盤只能當(dāng)6TB 硬盤用。
應(yīng)用中,如何選擇還要結(jié)合具體的業(yè)務(wù)場(chǎng)景。性能要求高的關(guān)鍵業(yè)務(wù),一般采用副本。如視頻,影像存儲(chǔ)等海量存儲(chǔ)場(chǎng)景可以采用糾刪碼,提高存儲(chǔ)系統(tǒng)利用率,對(duì)象存儲(chǔ)系統(tǒng)中,索引池可以使用副本策略,而數(shù)據(jù)池可以采用糾刪碼,達(dá)到降低成本目的。
分布式存儲(chǔ)應(yīng)用越來越廣泛,對(duì)標(biāo)傳統(tǒng)集中存儲(chǔ)在生態(tài)方面仍存在一些不足,但隨著SDS 技術(shù)的發(fā)展,相信在不遠(yuǎn)的將來,分布式將確立在存儲(chǔ)界的統(tǒng)治地位。表5從可靠性,性能、效率、生態(tài)四方面展示了傳統(tǒng)集中存儲(chǔ)和分布式存儲(chǔ)的現(xiàn)狀,以及未來分布式存儲(chǔ)的發(fā)展趨勢(shì)。
表5 指標(biāo)對(duì)比及未來發(fā)展定位
隨著企業(yè)IT 架構(gòu)的云化發(fā)展,分布式將取代現(xiàn)行中心式的架構(gòu),分布式計(jì)算、網(wǎng)絡(luò)以及存儲(chǔ)以及新的運(yùn)維管理架構(gòu)將成為未來技術(shù)的首選,同時(shí)我們也應(yīng)該適時(shí)的考慮應(yīng)用側(cè)的改造。本文拋磚引玉對(duì)分布式存儲(chǔ)的分類、技術(shù)及保障機(jī)制進(jìn)行了分析說明,如何真正意義上實(shí)現(xiàn)向分布式架構(gòu)的改造,充分發(fā)揮分布式的優(yōu)勢(shì)及性能才是運(yùn)營(yíng)商的最終目的。