下一代云存儲(chǔ)系統(tǒng)技術(shù)白皮書
1 下一代云存儲(chǔ)系統(tǒng)簡(jiǎn)介
1.1云存儲(chǔ)系統(tǒng)簡(jiǎn)介
信息處理技術(shù)、互聯(lián)網(wǎng)技術(shù)、云計(jì)算技術(shù)的誕生與成長(zhǎng)對(duì)各行各業(yè)產(chǎn)生著潛移默化的影響?;ヂ?lián)網(wǎng)時(shí)代,數(shù)據(jù)采集手段紛繁復(fù)雜,形態(tài)五花八門,半結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)體量日趨增大,傳統(tǒng)的儲(chǔ)架構(gòu)已經(jīng)逐漸顯現(xiàn)出自身的固有局限。
在傳統(tǒng)數(shù)據(jù)中心中,以O(shè)LTP和OLAP為代表的數(shù)據(jù)庫(kù)應(yīng)用占據(jù)了昂貴但又低效率的在線存儲(chǔ)設(shè)施,交易記錄、分析性數(shù)據(jù)則消耗了大量的后端存儲(chǔ)空間。異構(gòu)的存儲(chǔ)設(shè)備難以應(yīng)對(duì)大數(shù)據(jù)浪潮帶來需求浪潮,無法及時(shí)利用數(shù)據(jù)支撐業(yè)務(wù)決策,并在“大、智、云、移”的時(shí)代提供多樣化服務(wù)。
下一代云存儲(chǔ)系統(tǒng)融合分布式存儲(chǔ)技術(shù),利用標(biāo)準(zhǔn)化硬件設(shè)施構(gòu)造存儲(chǔ)池,虛擬化已有存儲(chǔ)設(shè)施空間,互聯(lián)互通,打破數(shù)據(jù)調(diào)度壁壘;在統(tǒng)一的系統(tǒng)下提供了對(duì)象、塊、和文件存儲(chǔ)服務(wù);并且具有可靠性高、管理簡(jiǎn)便的優(yōu)點(diǎn)。同時(shí),下一代云存儲(chǔ)系統(tǒng)具有靈活的擴(kuò)展性,能夠提供PB到乃至EB級(jí)的存儲(chǔ)能力。
1.2云存儲(chǔ)系統(tǒng)設(shè)計(jì)目標(biāo)
下一代云存儲(chǔ)系統(tǒng)從行業(yè)切實(shí)需求出發(fā),面向數(shù)據(jù)中心私有云場(chǎng)景,實(shí)現(xiàn)大規(guī)模、大容量的存儲(chǔ)資源池,整合替代現(xiàn)有存儲(chǔ)設(shè)施,支撐各類OLTP或OLAP業(yè)務(wù)應(yīng)用。為了能夠?qū)Ω黝悰Q策支撐系統(tǒng)、研發(fā)測(cè)試系統(tǒng)提供有效支撐;突破隨機(jī)訪問海量數(shù)據(jù)的性能瓶頸;解決數(shù)據(jù)安全性、存儲(chǔ)平滑擴(kuò)容的問題,下一代云存儲(chǔ)系統(tǒng)在規(guī)劃建設(shè)過程中具有以下幾點(diǎn)目標(biāo):
1.高性能
下一代云存儲(chǔ)系統(tǒng)首先需要有能力提供足夠的性能,能夠覆蓋到用戶大部分業(yè)務(wù)需求,滿足高并發(fā)或大量的業(yè)務(wù)數(shù)據(jù)分析等需求。
2.高可用性
下一代云存儲(chǔ)系統(tǒng)需要滿足更高要求的高可用性。存儲(chǔ)和數(shù)據(jù)高可靠性是業(yè)務(wù)活動(dòng)連續(xù)開展的基礎(chǔ)支撐。在存儲(chǔ)發(fā)生故障時(shí)候,有相應(yīng)的高可用機(jī)制來支撐和保障數(shù)據(jù)的自動(dòng)恢復(fù)和動(dòng)態(tài)遷移。
3.資源動(dòng)態(tài)擴(kuò)展
下一代云存儲(chǔ)系統(tǒng)能夠支撐資源的動(dòng)態(tài)伸縮以及資源池的動(dòng)態(tài)擴(kuò)展,能夠按需分配,彈性擴(kuò)展。在系統(tǒng)擴(kuò)容的時(shí)候,能夠做到性能和容量的線性擴(kuò)展,避免資源的浪費(fèi)。
4.服務(wù)、接口的多樣性
下一代云存儲(chǔ)系統(tǒng)能夠提供多樣的存儲(chǔ)服務(wù),包括塊設(shè)備服務(wù)來滿足數(shù)據(jù)庫(kù)類型的存儲(chǔ)要求;文件系統(tǒng)、對(duì)象等存儲(chǔ)服務(wù)來滿足半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)要求。因此,這就要求存儲(chǔ)能夠提供豐富的標(biāo)準(zhǔn)接口,包括文件系統(tǒng)接口(NFS、CIFS)、塊接口(iSCIS、FC)或者對(duì)象接口(S3、SWIFT)以及對(duì)內(nèi)能夠提供標(biāo)準(zhǔn)的管理接口。
5.高可管理性
下一代云存儲(chǔ)系統(tǒng)在日常部署、管理、監(jiān)控的環(huán)節(jié)能夠?qū)崿F(xiàn)自動(dòng)化和可視化,提高存儲(chǔ)資源服務(wù)的可管理性,包括資源分配、資源監(jiān)控、故障告警等多方面的內(nèi)容,提高運(yùn)維管理人員的管理效率;并且逐步支持智能化的采集和分析,高效地利用現(xiàn)有資源,包括對(duì)存儲(chǔ)IOPS、存儲(chǔ)吞吐量以及存儲(chǔ)容量的使用進(jìn)行動(dòng)態(tài)的監(jiān)測(cè)和預(yù)測(cè),方便管理人員對(duì)存儲(chǔ)現(xiàn)有情況進(jìn)行了解和及時(shí)對(duì)未來存儲(chǔ)的擴(kuò)容進(jìn)行規(guī)劃。
2 下一代云存儲(chǔ)系統(tǒng)架構(gòu)
2.1云存儲(chǔ)系統(tǒng)總體方案架構(gòu)
下一代云存儲(chǔ)系統(tǒng)的核心是統(tǒng)一管理存儲(chǔ)資源,面向云平臺(tái),提供多樣化的數(shù)據(jù)服務(wù)。下一代云存儲(chǔ)系統(tǒng)將應(yīng)用與底層存儲(chǔ)解耦,不依賴于傳統(tǒng)設(shè)備和應(yīng)用廠商的綁定。在未來數(shù)據(jù)中心全面轉(zhuǎn)型,整體上云的過程中,實(shí)現(xiàn)存儲(chǔ)與計(jì)算、網(wǎng)絡(luò)資源的聯(lián)動(dòng),順應(yīng)數(shù)據(jù)價(jià)值鏈向服務(wù)轉(zhuǎn)移。
圖 2-1 下一代云存儲(chǔ)系統(tǒng)架構(gòu)示意圖
下一代云存儲(chǔ)系統(tǒng)主要由基于分布式架構(gòu)的軟件定義存儲(chǔ)系統(tǒng)和輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件構(gòu)成。
基于分布式架構(gòu)的軟件定義存儲(chǔ)運(yùn)行在標(biāo)準(zhǔn)的X86服務(wù)器之上,利用虛擬化技術(shù),將集群中的存儲(chǔ)資源虛擬化為存儲(chǔ)池,并向上提供塊設(shè)備、文件和對(duì)象存儲(chǔ)服務(wù)。同時(shí),軟件定義存儲(chǔ)具有高性能,能夠輕松應(yīng)對(duì)各類高負(fù)載管理的要求,其中包括業(yè)務(wù)關(guān)鍵型應(yīng)用與核心業(yè)務(wù)系統(tǒng);多副本及強(qiáng)一致性技術(shù)的應(yīng)用提供高可用特性;極強(qiáng)的橫向擴(kuò)展能力則為業(yè)務(wù)擴(kuò)張帶來的管理維護(hù)提供了極大的靈活性和便利。
輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件實(shí)現(xiàn)了分布式存儲(chǔ)和集中式存儲(chǔ)的統(tǒng)一自動(dòng)化管理,分布式軟件定義存儲(chǔ)通過面向存儲(chǔ)統(tǒng)一管理組件開放存儲(chǔ)系統(tǒng)的控制接口,實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的監(jiān)控與運(yùn)維。通過開放的接口,異構(gòu)存儲(chǔ)統(tǒng)一管理組件可以實(shí)現(xiàn)分布式存儲(chǔ)系統(tǒng)的資源劃分與服務(wù)編排,并對(duì)集中式存儲(chǔ)設(shè)備劃分基于不同QoS策略的虛擬卷服務(wù)于云平臺(tái),實(shí)現(xiàn)與計(jì)算、網(wǎng)絡(luò)的聯(lián)動(dòng)。
2.2系統(tǒng)組件及功能
2.2.1基于分布式架構(gòu)的軟件定義存儲(chǔ)系統(tǒng)
基于分布式架構(gòu)的軟件定義存儲(chǔ)技術(shù)集中提供包括對(duì)象、塊、和文件在內(nèi)的多種存儲(chǔ)服務(wù),并且具有可靠性高、管理簡(jiǎn)便的優(yōu)點(diǎn),并且具有靈活的擴(kuò)展性,能夠提供PB到乃至EB級(jí)的存儲(chǔ)能力。
基于分布式架構(gòu)的軟件定義存儲(chǔ)技術(shù)把所有服務(wù)器的硬盤虛擬化成為若干個(gè)資源池,提供虛擬卷的創(chuàng)建/刪除和快照等功能,提供北向虛擬卷形式的存儲(chǔ)服務(wù)。
軟件定義存儲(chǔ)系統(tǒng)分為硬件設(shè)備層、引擎驅(qū)動(dòng)層、特性功能層、服務(wù)接口層以及監(jiān)控管理層五個(gè)層面,具體的功能架構(gòu)圖如下所示:
圖 2-2 軟件定義存儲(chǔ)系統(tǒng)層級(jí)示意圖
1.硬件設(shè)備層
基于分布式架構(gòu)的軟件定義存儲(chǔ)系統(tǒng)通基于標(biāo)準(zhǔn)的X86服務(wù)器,配以不同的磁盤介質(zhì),包括傳統(tǒng)的機(jī)械磁盤HDD、SATA-SSD以及PCIE-SSD等,來提供不同等級(jí)的IOPS和帶寬等服務(wù)性能,同時(shí)10GE網(wǎng)卡的廣泛應(yīng)用也讓系統(tǒng)在傳輸和重建過程中具有更快的速度。
2.驅(qū)動(dòng)引擎層
基于分布式架構(gòu)的軟件定義存儲(chǔ)系統(tǒng)采用分布式算法(例如CRUSH、DHT等)將數(shù)據(jù)趨近于隨機(jī)的分散于集群中的所有磁盤中,避免了數(shù)據(jù)存儲(chǔ)熱點(diǎn)的產(chǎn)生。數(shù)據(jù)的存放通過多副本提供高可用性,每個(gè)副本分散于不同的服務(wù)器上,并且根據(jù)業(yè)務(wù)需求能夠遵循強(qiáng)一致性。單個(gè)硬盤或節(jié)點(diǎn)的故障不影響業(yè)務(wù)的連續(xù)性,一旦發(fā)生故障,系統(tǒng)會(huì)自動(dòng)重建。
3.特性功能層
基于分布式架構(gòu)的軟件定義存儲(chǔ)系統(tǒng)能夠?qū)崿F(xiàn)精簡(jiǎn)配置,即支持提前劃分存儲(chǔ)卷的大小,但是加分配時(shí)按照數(shù)據(jù)寫入的規(guī)模自動(dòng)增長(zhǎng),節(jié)省可用存儲(chǔ)空間。在卷級(jí)層面可以實(shí)現(xiàn)實(shí)時(shí)QoS,調(diào)整附加在卷上的限制屬性,同時(shí)為了業(yè)務(wù)的需要,系統(tǒng)也支持在線擴(kuò)容和縮容,保證其他卷能夠獲取足夠的空間。除此之外,還有快照、容災(zāi)、備份等功能。
4.服務(wù)接口層
基于分布式的軟件定義存儲(chǔ)系統(tǒng)能夠提供多樣化的存儲(chǔ)服務(wù),支持基于開放Linux平臺(tái)的SCSI設(shè)備輸出,支持iSCSI接口協(xié)議,支持FC接口協(xié)議和基于FC的硬件。
5.運(yùn)維管理層
基于分布式架構(gòu)的軟件定義存儲(chǔ)系統(tǒng)能夠通過向用戶提供可視化交互界面來完成系統(tǒng)的自動(dòng)化配置、在線升級(jí)、告警、監(jiān)控和日志等功能。包括系統(tǒng)日志和操作日志。系統(tǒng)日志記錄重要的系統(tǒng)事件,操作日志記錄操作員行為,便于排錯(cuò)、審計(jì)以及跟蹤。
2.2.2輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件
輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件基于Openstack Cinder組件,實(shí)現(xiàn)了對(duì)后端存儲(chǔ)資源的統(tǒng)一管理,來提供業(yè)務(wù)驅(qū)動(dòng)、自動(dòng)化的數(shù)據(jù)服務(wù)。輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件將應(yīng)用與底層存儲(chǔ)解耦,解除設(shè)備廠商的綁定,打破異構(gòu)存儲(chǔ)設(shè)備之間的壁壘,將存儲(chǔ)功能應(yīng)用化,支持文件、塊、對(duì)象等類型存儲(chǔ)資源分配服務(wù)。
在云計(jì)算應(yīng)用場(chǎng)景下,從租戶的角度看來,將不同架構(gòu)的存儲(chǔ)封裝起來,無論是傳統(tǒng)的集中式存儲(chǔ)還是分布式存儲(chǔ)都進(jìn)行統(tǒng)一管理并向上提供服務(wù)。
圖 2-3輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件架構(gòu)示意圖
輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件向下可以將各設(shè)備中可提供相同能力的存儲(chǔ)資源聚集起來,進(jìn)行統(tǒng)一管理。這一功能基于Openstack的Cinder組件,通過不同存儲(chǔ)廠商提供的面向OpenStack的Cinder的驅(qū)動(dòng)來獲取不同存儲(chǔ)設(shè)備的基本信息,包括磁盤類型、空間大小、服務(wù)能力等。在獲取不同的存儲(chǔ)設(shè)備信息之后,將性能、服務(wù)相近的存儲(chǔ)設(shè)備進(jìn)行編排、分組,以供后續(xù)使用。
輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件可以實(shí)現(xiàn)業(yè)務(wù)部署自動(dòng)化、運(yùn)維監(jiān)控智能化。其中,業(yè)務(wù)部署自動(dòng)化是指支持運(yùn)維人員編輯保存服務(wù)模板,目的是為了簡(jiǎn)化創(chuàng)建調(diào)用存儲(chǔ)的流程。在申請(qǐng)存儲(chǔ)資源的過程中,僅需要輸入存儲(chǔ)容量和卷的數(shù)量即可完成資源的申請(qǐng),統(tǒng)一管理組件會(huì)根據(jù)事先編排好的模板自動(dòng)調(diào)用不同模塊來完成具體工作。同時(shí)該組件也支持運(yùn)維監(jiān)控的智能化,即針對(duì)不同的存儲(chǔ)池,不同的虛擬卷,都能夠?qū)崟r(shí)監(jiān)控性能與故障,對(duì)存儲(chǔ)卷進(jìn)行有效性、空間、數(shù)據(jù)可用性等方面進(jìn)行的監(jiān)控管理;支持在存儲(chǔ)系統(tǒng)的各級(jí)軟硬件產(chǎn)生故障時(shí),由控制臺(tái)向管理員告警提示;支持卷級(jí)的QoS編排,保證不同租戶之間的服務(wù)質(zhì)量。
輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件北向通過REST接口與虛擬化平臺(tái)或者容器云平臺(tái)完成兼容,實(shí)現(xiàn)存儲(chǔ)資源服務(wù)的統(tǒng)一發(fā)放。OpenStack的不同組件如Cinder、Nova等與異構(gòu)存儲(chǔ)管理組件,完成卷的劃分與掛載,實(shí)現(xiàn)云硬盤的分配或者虛擬機(jī)實(shí)例創(chuàng)建在云硬盤中;Kubernets中Persist Volume 存儲(chǔ)系統(tǒng)則通過Cinder提供的插件,實(shí)現(xiàn)應(yīng)用和服務(wù)的狀態(tài)保存。
3 下一代云存儲(chǔ)系統(tǒng)特性
3.1高性能
下一代云存儲(chǔ)系統(tǒng)基于主流的開源分布式存儲(chǔ)技術(shù)以及開源云平臺(tái)中的存儲(chǔ)管理模塊,充分滿足國(guó)內(nèi)企業(yè)自主可控的要求。下一代云存儲(chǔ)系統(tǒng)能夠勝任高并發(fā)、高效率的需求,與主流NVMe閃存相結(jié)合,突破單點(diǎn)性能瓶頸,適應(yīng)多種場(chǎng)景需求。
3.1.1 I/O并行提升性能
下一代云存儲(chǔ)系統(tǒng)提供了類似于條帶化技術(shù)的并行I/O功能,滿足支持業(yè)務(wù)開展的高性能需求。獨(dú)立存儲(chǔ)設(shè)備的吞吐量限制,極大影響了存儲(chǔ)的性能和伸縮性,所以存儲(chǔ)系統(tǒng)一般都支持把連續(xù)的信息分片存儲(chǔ)于多個(gè)設(shè)備以增加吞吐量和性能。在下一代云存儲(chǔ)系統(tǒng)中,數(shù)據(jù)會(huì)均勻分布到存儲(chǔ)池中所有的硬盤上。當(dāng)某臺(tái)應(yīng)用服務(wù)器進(jìn)行讀寫時(shí),集群中所有的節(jié)點(diǎn)都會(huì)對(duì)其提供服務(wù),這樣能很好地保證IO并發(fā)。
3.1.2閃存的應(yīng)用與分級(jí)存儲(chǔ)
下一代云存儲(chǔ)系統(tǒng)支持各類接口閃存介質(zhì),通過閃存介質(zhì)的使用,來提供高性能的IO。當(dāng)前閃存存儲(chǔ)開始進(jìn)入開始逐漸進(jìn)入數(shù)據(jù)中心市場(chǎng),如表3-1所示,閃存相比HHD具有如下差別:
表 3-1 閃存與HDD特性對(duì)比
固態(tài)閃存SSD作為新的存儲(chǔ)技術(shù),相比HDD具有超快的數(shù)據(jù)訪問速度,隨機(jī)數(shù)據(jù)訪問速度比HDD快100多倍,響應(yīng)時(shí)間從毫秒級(jí)縮短到亞毫秒級(jí)(0.1ms),將IOPS從HDD的200-300提升至數(shù)萬。SSD的高性能充分滿足了存儲(chǔ)系統(tǒng)I/O負(fù)荷瓶頸帶來的困擾。
SSD在下一代云存儲(chǔ)系統(tǒng)中的應(yīng)用有兩種不同的方式,均能提升性能,一是作為讀寫緩存,二是作為數(shù)據(jù)盤直接存儲(chǔ)數(shù)據(jù)。
在第一種情況下,下一代云存儲(chǔ)系統(tǒng)采用緩存算法對(duì)熱點(diǎn)數(shù)據(jù)進(jìn)行優(yōu)化,使熱點(diǎn)數(shù)據(jù)盡可能駐留在高速閃存存儲(chǔ)上,以提升系統(tǒng)性能;而對(duì)于訪問不頻繁的數(shù)據(jù)則從高速存儲(chǔ)中遷移到低速機(jī)械磁盤做持久化存儲(chǔ)。這種方式對(duì)于大量讀取場(chǎng)景下的業(yè)務(wù)系統(tǒng)具有較大的提升;或者將高速存儲(chǔ)設(shè)備作為全局緩存,數(shù)據(jù)先寫入高速存儲(chǔ)中,在適當(dāng)?shù)臅r(shí)機(jī)再將數(shù)據(jù)同步入后端存儲(chǔ)中,這種方式同樣可以在滿足性能要求的前提下明顯降低存儲(chǔ)成本。
圖 3-1 下一代云存儲(chǔ)系統(tǒng)的多級(jí)緩存
面對(duì)對(duì)性能有強(qiáng)烈需求的業(yè)務(wù)場(chǎng)景,第二種全閃存模式能夠大幅度增強(qiáng)對(duì)各類高要求負(fù)載的管理,其中包括業(yè)務(wù)關(guān)鍵型應(yīng)用、核心業(yè)務(wù)系統(tǒng)等等。這種情況下,可以充分發(fā)揮閃存存儲(chǔ)的高性能讀寫,但是成本較高。
3.2高可靠性
3.2.1數(shù)據(jù)多副本存儲(chǔ)
下一代云存儲(chǔ)系統(tǒng)采取多副本備份機(jī)制替換傳統(tǒng)的RAID模式來保證核心數(shù)據(jù)的完整性。同一個(gè)數(shù)據(jù),在系統(tǒng)的不同節(jié)點(diǎn)的不同磁盤上會(huì)有大于等于三個(gè)副本的存儲(chǔ),這樣,當(dāng)節(jié)點(diǎn)或者磁盤產(chǎn)生故障的時(shí)候,數(shù)據(jù)可以從冗余的副本中讀取并恢復(fù)。同時(shí)所有的數(shù)據(jù)均勻的分布在所有的節(jié)點(diǎn)上以達(dá)到負(fù)載均衡的效果,避免局部熱點(diǎn)的出現(xiàn)。在下一代云存儲(chǔ)系統(tǒng)具體部署時(shí),所有的副本采取跨機(jī)架同步分布策略,確保單一機(jī)架掉電后的數(shù)據(jù)可用性。
3.2.2保持?jǐn)?shù)據(jù)一致
下一代云存儲(chǔ)系統(tǒng)支持強(qiáng)一致性和最終一致性兩種模型,面向不同的業(yè)務(wù)場(chǎng)景需求。保證租戶成功寫入一份數(shù)據(jù)時(shí),幾個(gè)副本都保持一致,在讀取數(shù)據(jù)時(shí),無論從任何一個(gè)副本上進(jìn)行,都能夠保證取到最新的、可用的數(shù)據(jù)。強(qiáng)一致性情況下,保證對(duì)副本的讀寫操作會(huì)產(chǎn)生交集,從而保證可以讀取到最新版本;無論更新操作實(shí)在哪一個(gè)副本執(zhí)行,之后所有的讀操作都要能獲得最新的數(shù)據(jù)。最終一致性情況下,保證用戶最終能夠讀取到某操作對(duì)系統(tǒng)特定數(shù)據(jù)的更新,針對(duì)的是讀寫都比較頻繁的場(chǎng)景,是一個(gè)比較折中的策略。
3.2.3服務(wù)質(zhì)量保證(QoS)
無論任何行業(yè),業(yè)務(wù)的連續(xù)性與高質(zhì)量是主流需求,下一代云存儲(chǔ)系統(tǒng)提供了多種場(chǎng)景下的服務(wù)質(zhì)量保證手段:
1、提供面向卷級(jí)的服務(wù)器訪問QoS,充分避免非關(guān)鍵應(yīng)用占用過多帶寬;
2、在數(shù)據(jù)較長(zhǎng)時(shí)間處于不一致的狀態(tài)時(shí),自動(dòng)觸發(fā)數(shù)據(jù)重建,在此過程中支持QoS,保證重建過程中占用過多帶寬,避免影響關(guān)鍵業(yè)務(wù)的穩(wěn)定運(yùn)行。
3.2.4副本安全邊界
規(guī)模龐大的分布式系統(tǒng),必須考慮多故障的安全隱患,以統(tǒng)計(jì)學(xué)的規(guī)律和概率分布來看,磁盤數(shù)量越多,磁盤發(fā)生故障的概率越大,甚至幾個(gè)磁盤同時(shí)發(fā)生故障。不斷的故障會(huì)造成系統(tǒng)大部分資源都用于數(shù)據(jù)重建,影響業(yè)務(wù)的穩(wěn)定運(yùn)行。因此,下一代云存儲(chǔ)系統(tǒng)中,為保證系統(tǒng)達(dá)到預(yù)期的可靠性目標(biāo),必須在保證高并發(fā)的前提下,盡量縮小副本分布的磁盤范圍,即設(shè)定安全邊界,以防止數(shù)據(jù)丟失的風(fēng)險(xiǎn)陡然上升。
副本安全邊界有兩種模式,一是基于池級(jí)的安全邊界管理,設(shè)定存儲(chǔ)池最大跨越的磁盤數(shù)量;二是基于卷級(jí)的安全邊界管理,即設(shè)定虛擬卷最大跨越的磁盤數(shù)量。
3.3可擴(kuò)展性
下一代云存儲(chǔ)系統(tǒng)支持大規(guī)模擴(kuò)展,最低三節(jié)點(diǎn),直至上千節(jié)點(diǎn),隨著存儲(chǔ)設(shè)備數(shù)量的增長(zhǎng),整個(gè)系統(tǒng)的吞吐量和IOPS等性能指標(biāo)也同時(shí)會(huì)隨之增長(zhǎng)。并且容量和性能呈線性擴(kuò)展。一旦需求有所變化,即可通過模塊化的方式添加更多的存儲(chǔ)資源和計(jì)算資源。在擴(kuò)容和縮容的過程中間,分布式算法保證了數(shù)據(jù)的負(fù)載均衡,結(jié)合自動(dòng)的QoS策略,在用戶無感知的情況下,保證不會(huì)與現(xiàn)有業(yè)務(wù)產(chǎn)生影響,保障系統(tǒng)的穩(wěn)定運(yùn)行。
圖 3-2下一代云存儲(chǔ)系統(tǒng)的橫向擴(kuò)展
3.4易管理性
3.4.1兼容第三方管理監(jiān)控接口
業(yè)界主流Web管理界面主要包括SOAP和REST標(biāo)準(zhǔn),其中后者架構(gòu)更為輕便,新生系統(tǒng)多采用后者。VMware體系至今仍以SOAP標(biāo)準(zhǔn)為主,而面向OpenStack的接口則遵循REST標(biāo)準(zhǔn)。下一代云存儲(chǔ)系統(tǒng)所提供的接口能夠兼容這兩種標(biāo)準(zhǔn)。
3.4.2虛擬化和私有云應(yīng)用支持
下一代云存儲(chǔ)系統(tǒng)支持主流操作系統(tǒng),可以部署在RedHat、SUSE、CentOS以及Ubuntu上。虛擬化平臺(tái)則支持VMware、Hyper-V以及KVM等。支持通過RESTful API標(biāo)準(zhǔn)接口與OpenStack 的Cinder組件和SWFIT組件進(jìn)行交互,向私有云應(yīng)用提供存儲(chǔ)支持。
3.5高級(jí)功能
3.5.1自動(dòng)精簡(jiǎn)配置
下一代云存儲(chǔ)系統(tǒng)支持自動(dòng)精簡(jiǎn)配置功能,在創(chuàng)建邏輯卷時(shí),并不真實(shí)占用實(shí)際物理資源,而是在邏輯卷使用過程中,按需實(shí)時(shí)分配實(shí)際物理空間資源,節(jié)約了存儲(chǔ)資源,簡(jiǎn)化了存儲(chǔ)規(guī)劃難度。在存儲(chǔ)系統(tǒng)的使用過程中,租戶在資源申請(qǐng)階段往往無法準(zhǔn)確預(yù)估在業(yè)務(wù)廣泛展開后的具體需求,因而會(huì)多申請(qǐng)部分的存儲(chǔ)空間作為緩沖,而這部分資源往往無法做到物盡其用,存在了大量的浪費(fèi)現(xiàn)象。在實(shí)際使用中,可以設(shè)置容量閾值,當(dāng)剩余存儲(chǔ)容量低于閾值時(shí),進(jìn)行提示。
圖 3-3 下一代云存儲(chǔ)精簡(jiǎn)配置
3.5.2卷級(jí)快照和鏈接克隆
下一代云存儲(chǔ)系統(tǒng)提供卷級(jí)的快照功能,進(jìn)行增量備份,并能根據(jù)需要快速恢復(fù)到每一個(gè)備份點(diǎn),對(duì)業(yè)務(wù)中斷后提供快速的恢復(fù)功能保證,加強(qiáng)系統(tǒng)整體的連續(xù)性,提供了業(yè)務(wù)質(zhì)量保證的手段與方法。
同時(shí)此系統(tǒng)還支持鏈接克隆的機(jī)制,基于一個(gè)快照創(chuàng)建出多個(gè)克隆卷,創(chuàng)建出來的克隆卷與原始卷中的數(shù)據(jù)內(nèi)容一致,克隆卷的修改不會(huì)影響原始卷,用戶既可以通過快照來還原卷以恢復(fù)丟失的數(shù)據(jù),也可以從快照來創(chuàng)建模板,直接啟動(dòng)新的虛擬機(jī)以保證業(yè)務(wù)的連續(xù)性。
圖 3-4下一代云存儲(chǔ)系統(tǒng)采用增量快照
3.5.3全局負(fù)載均衡
下一代云存儲(chǔ)系統(tǒng)采用的分布式架構(gòu)使得數(shù)據(jù)的IO操作均勻分布在不同服務(wù)器的不同硬盤上,避免了局部熱點(diǎn)的出現(xiàn),實(shí)現(xiàn)全局的負(fù)載均衡。
系統(tǒng)將數(shù)據(jù)塊打散存放在不同服務(wù)器的不同硬盤上,冷熱不均的數(shù)據(jù)均勻分布在不同的服務(wù)器上,不會(huì)出現(xiàn)集中的熱點(diǎn);數(shù)據(jù)的分配算法保證主副本與其余副本在不同服務(wù)器和不同硬盤上均勻分布;同時(shí),在節(jié)點(diǎn)或者硬盤故障時(shí),在數(shù)據(jù)重建的過程中,也實(shí)現(xiàn)全局負(fù)載均衡。
4 下一代云存儲(chǔ)系統(tǒng)部署方案
4.1部署拓?fù)?/strong>
數(shù)據(jù)中心內(nèi)部系統(tǒng)的核心要求是“穩(wěn)定可靠”,一是指系統(tǒng)在運(yùn)行過程中有能力提供連續(xù)可靠的服務(wù),長(zhǎng)時(shí)間無故障運(yùn)行;二是指當(dāng)故障發(fā)生之后,有能力快速定位,及時(shí)排查,故障范圍不蔓延。
分離式部署的方式,使得系統(tǒng)與云平臺(tái)系統(tǒng)相獨(dú)立,避免了計(jì)算和存儲(chǔ)爭(zhēng)搶CPU/內(nèi)存/網(wǎng)絡(luò)等物理資源,一旦某一方資源需求驟升導(dǎo)致的另一方資源枯竭,從而影響性能并在整個(gè)基礎(chǔ)架構(gòu)中產(chǎn)生的漣漪效應(yīng);和在超融合部署方式在集群規(guī)模較大后,網(wǎng)絡(luò)、硬盤、服務(wù)器發(fā)生故障的概率都會(huì)增大;以及數(shù)據(jù)重刪、壓縮、加密糾刪碼等功能、故障的自修復(fù)和數(shù)據(jù)功能實(shí)現(xiàn)都會(huì)消耗一定的系統(tǒng)資源,導(dǎo)致性能下降和抖動(dòng)等問題。
分離式部署相比超融合方式的優(yōu)點(diǎn):
表4-1分離式部署與超融合的對(duì)比
從業(yè)務(wù)穩(wěn)定、系統(tǒng)可靠的角度出發(fā),下一代云存儲(chǔ)系統(tǒng)采用分離式部署的方式,即存儲(chǔ)系統(tǒng)服務(wù)器獨(dú)立于計(jì)算資源服務(wù)器。這一部署方式使得存儲(chǔ)與計(jì)算相獨(dú)立,因而兩者之間的故障不會(huì)相互影響,易于后期運(yùn)維故障排查;并且計(jì)算與存儲(chǔ)的配比可以根據(jù)業(yè)務(wù)場(chǎng)景的需求自行調(diào)配,靈活程度高,如果需要擴(kuò)展資源的話,也可以單獨(dú)對(duì)存儲(chǔ)進(jìn)行擴(kuò)展;同時(shí),計(jì)算與存儲(chǔ)分層管理,也清晰了管理權(quán)限。具體部署架構(gòu)如下所示:
圖4-1下一代云存儲(chǔ)系統(tǒng)物理部署方案
其中,存儲(chǔ)管理節(jié)點(diǎn)需要在兩個(gè)以上的節(jié)點(diǎn)上部署以保證高可用,同樣,輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理組件也需要在兩個(gè)節(jié)點(diǎn)上進(jìn)行部署來提供高可用。
4.2硬件規(guī)格
下一代云存儲(chǔ)系統(tǒng)基于標(biāo)準(zhǔn)的X86服務(wù)器,軟硬件解耦,解除廠商綁定,支持設(shè)備利舊,保護(hù)歷史投資。下一代云存儲(chǔ)系統(tǒng)對(duì)硬件平臺(tái)具有如下基本要求:
1.運(yùn)行在標(biāo)準(zhǔn)的X86服務(wù)器上;
2.基于分布式架構(gòu)的軟件定義存儲(chǔ)系統(tǒng)集群內(nèi)部服務(wù)器硬盤數(shù)量必須一致;
3.軟件定義存儲(chǔ)正常運(yùn)行需要占用單個(gè)服務(wù)器的處理器的核心數(shù)量需大于
4+N(N是硬盤個(gè)數(shù),一個(gè)硬盤對(duì)應(yīng)一個(gè)核心),例如:?jiǎn)蝹€(gè)服務(wù)器5個(gè)硬盤,共計(jì)需要4+5=9個(gè)核心,則服務(wù)器需配置12核處理器;輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理服務(wù)需要8核以上的處理器;
4.軟件定義存儲(chǔ)正常運(yùn)行的服務(wù)器的物理內(nèi)存需滿足如下條件:
大于10GB +(N*2GB)(N是服務(wù)器上所有硬盤總計(jì)存儲(chǔ)容量,單位TB),例如:?jiǎn)蝹€(gè)服務(wù)器5個(gè)硬盤,每個(gè)硬盤4TB,則共計(jì)需要10GB+20GB*2=40GB,服務(wù)器需要配置64GB物理內(nèi)存;輕量化異構(gòu)存儲(chǔ)統(tǒng)一管理服務(wù)需要16GB以上的物理內(nèi)存;一般情況下,隨著內(nèi)存容量的增大,性能也會(huì)越好;
5.分布式架構(gòu)的存儲(chǔ)集群性能很大程度上取決于存儲(chǔ)介質(zhì)的有效選擇。下一代云存儲(chǔ)系統(tǒng)內(nèi)部服務(wù)器須有板載PCIe插槽,支持使用快速的SSD硬盤作為緩存來為HDD加速,或者直接采用全閃存架構(gòu)。使用SSD作為緩存加速的場(chǎng)景下,通常建議一個(gè)SSD對(duì)應(yīng)3~4塊HDD。使用PCIe/NVMe SSD作為緩存加速的場(chǎng)景下,通常建議一個(gè)SSD對(duì)應(yīng)8~10塊HDD。
6.服務(wù)器需要四個(gè)網(wǎng)口支持雙平面,并且兩兩綁定(配置網(wǎng)口聚合(Bond),模式為802.3ad(Bond模式為4),此模式提供了容錯(cuò)性,提供高網(wǎng)絡(luò)連接的可用,同時(shí)提供了相當(dāng)?shù)男阅?。具體的存儲(chǔ)平面帶寬要求不低于10Gbps。
4.3組網(wǎng)方案及網(wǎng)絡(luò)規(guī)劃
由于數(shù)據(jù)的機(jī)密性與敏感性,業(yè)務(wù)相互之間的隔離對(duì)于在數(shù)據(jù)中心內(nèi)部非常重要。在數(shù)據(jù)中心內(nèi)部,數(shù)據(jù)的訪問需要受到嚴(yán)格控制,必須進(jìn)行業(yè)務(wù)與管理的網(wǎng)絡(luò)相互隔離。管理網(wǎng)段與租戶網(wǎng)絡(luò)三層互通,租戶通過管理網(wǎng)段訪問下一代云存儲(chǔ)系統(tǒng)的Portal界面并下發(fā)增、刪、檢、查等管理指令;業(yè)務(wù)網(wǎng)段則負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)的傳輸,當(dāng)存儲(chǔ)空間以卷的形式通過業(yè)務(wù)網(wǎng)段掛載給前端業(yè)務(wù)系統(tǒng),并在此網(wǎng)段上提供服務(wù)。
按照分布式存儲(chǔ)的范式,下一代云存儲(chǔ)系統(tǒng)的管理和業(yè)務(wù)分屬兩個(gè)網(wǎng)段,互相獨(dú)立,互不影響,數(shù)據(jù)傳輸只在業(yè)務(wù)網(wǎng)段上進(jìn)行,管理與業(yè)務(wù)通過服務(wù)器通信,無法通過網(wǎng)絡(luò)互訪。
圖4-2下一代云存儲(chǔ)系統(tǒng)網(wǎng)絡(luò)拓?fù)涫疽鈭D
在業(yè)務(wù)網(wǎng)段上,規(guī)劃每個(gè)服務(wù)器由兩根網(wǎng)線分別連接到兩臺(tái)交換機(jī)。在管理網(wǎng)段上,規(guī)劃每個(gè)服務(wù)器由兩根網(wǎng)線分別連接兩臺(tái)交換機(jī)。通過節(jié)點(diǎn)級(jí)的雙網(wǎng)卡主備以及集群級(jí)的交換機(jī)主備來提供網(wǎng)絡(luò)高可靠性。兩個(gè)網(wǎng)段使用獨(dú)立的物理網(wǎng)卡進(jìn)行隔離,在條件不滿足的情況下使用不同VLAN隔離。
依據(jù)木桶效應(yīng),一個(gè)系統(tǒng)的整體性能上限往往是由系統(tǒng)中的薄弱環(huán)節(jié)決定。當(dāng)集群采用混合存儲(chǔ)的配置時(shí),標(biāo)準(zhǔn)的10Gbps高速網(wǎng)絡(luò)能夠滿足相當(dāng)規(guī)模的集群在負(fù)載均衡、數(shù)據(jù)重建時(shí)的壓力;然而,當(dāng)集群采用全閃存架構(gòu)時(shí),硬盤性能將大幅提升,此時(shí)標(biāo)準(zhǔn)的10Gbps網(wǎng)絡(luò)有可能會(huì)成為系統(tǒng)中的短板,56 Gbps InfiniBand網(wǎng)絡(luò)乃至更高速的100 Gbps網(wǎng)絡(luò),近似無阻塞通信,突破存儲(chǔ)系統(tǒng)內(nèi)部交換的瓶頸。在InfiniBand網(wǎng)絡(luò)中,通信時(shí)延控制于納秒級(jí),計(jì)算存儲(chǔ)信息及時(shí)傳遞,配合SSD的高速讀寫,具有可觀的性能。
5 下一代云存儲(chǔ)系統(tǒng)應(yīng)用場(chǎng)景
5.1下一代云存儲(chǔ)系統(tǒng)和虛擬化平臺(tái)
OpenStack提供標(biāo)準(zhǔn)的API接口來管理整個(gè)底層架構(gòu)資源。OpenStack 提供塊設(shè)備存儲(chǔ)服務(wù)的組件Cinder,本質(zhì)上是一個(gè)資源管理組件,將后端不同的存儲(chǔ)設(shè)備進(jìn)行封裝,向外提供統(tǒng)一的API,本質(zhì)上并不是一個(gè)存儲(chǔ)系統(tǒng),而是使用插件的方式,結(jié)合不同后端存儲(chǔ)的驅(qū)動(dòng)提供存儲(chǔ)服務(wù),核心是對(duì)卷的各種操作與管理。包括通過虛擬卷的方式為虛擬機(jī)提供云硬盤,或者可以用于存儲(chǔ)并啟動(dòng)虛擬機(jī)實(shí)例。在虛擬機(jī)的各個(gè)生命周期中,具體能夠?qū)崿F(xiàn)如下幾種操作:
1、在創(chuàng)建虛擬機(jī)的時(shí)候,需要對(duì)卷進(jìn)行創(chuàng)建和掛載操作;
2、在使用虛擬機(jī)的時(shí)候,需要對(duì)卷進(jìn)行擴(kuò)展、備份操作;
3、在刪除虛擬機(jī)的時(shí)候需要對(duì)卷進(jìn)行分離、刪除操作。
通過Cinder組件,用戶可以方便、高效地管理虛擬機(jī)數(shù)據(jù)。下圖展示了Cinder組件使用后端存儲(chǔ)的示意圖。計(jì)算虛擬化組件Nova與存儲(chǔ)管理組件Cinder之間通過RabbitMQ消息隊(duì)列進(jìn)行通信。:
具體的調(diào)用流程如下:
1、用戶通過頁(yè)面或者命令行發(fā)出存儲(chǔ)管理請(qǐng)求,并通過Cinder-API發(fā)出;
2、Cinder-API通過RabbitMQ消息隊(duì)列將此消息加入Cinder-scheduler中,依次進(jìn)行調(diào)度;
3、Cinder-scheduler通過RabbitMQ消息隊(duì)列與Cinder-Volume通信,將創(chuàng)建、掛載等卷管理請(qǐng)求進(jìn)行傳遞;
4、Cinder-volume收到存儲(chǔ)資源請(qǐng)求之后,向后端的下一代云存儲(chǔ)系統(tǒng)通信,進(jìn)行操作,執(zhí)行請(qǐng)求。
自此,完成了用戶的一個(gè)存儲(chǔ)資源管理操作請(qǐng)求
圖5-1下一代云存儲(chǔ)系統(tǒng)在OpenStack中的應(yīng)用
5.2下一代云存儲(chǔ)系統(tǒng)與容器云平臺(tái)
容器虛擬化技術(shù)已經(jīng)成為一種被大家廣泛認(rèn)可的服務(wù)器資源共享方式,容器技術(shù)可以在按需構(gòu)建容器技術(shù)操作系統(tǒng)實(shí)例的過程當(dāng)中為系統(tǒng)管理員提供極大的靈活性。容器技術(shù)為應(yīng)用程序提供了隔離的運(yùn)行空間,每個(gè)容器內(nèi)都包含一個(gè)獨(dú)享的完整用戶環(huán)境空間,并且一個(gè)容器內(nèi)的變動(dòng)不會(huì)影響其他容器的運(yùn)行環(huán)境。
下一代云存儲(chǔ)系統(tǒng)通過容器引擎卷插件或者編排調(diào)度的API接受北向的創(chuàng)建、刪除、加載、卸載和遷移數(shù)據(jù)卷等實(shí)際的存儲(chǔ)操作請(qǐng)求,并傳遞給底層的數(shù)據(jù)平面去實(shí)現(xiàn)。Kubernetes作為其集群管理工具,基于其插件化的設(shè)計(jì),將有狀態(tài)的數(shù)據(jù)保存在以 Persistent Volume(PV)為基礎(chǔ)的存儲(chǔ)系統(tǒng)。