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