數(shù)字化時(shí)代,各行業(yè)每天都會(huì)面對(duì)大量數(shù)據(jù)的使用與存放,如企業(yè)業(yè)務(wù)往來(lái)的訂單數(shù)據(jù)、醫(yī)院每天大量產(chǎn)生的醫(yī)療影像、政府機(jī)關(guān)單位各類電子檔案、廣電日常素材采集等,也包括ERP、HIS、MES等業(yè)務(wù)系統(tǒng)數(shù)據(jù)。“掌管”各種業(yè)務(wù)數(shù)據(jù)存、管、用的存儲(chǔ),其性能將會(huì)對(duì)業(yè)務(wù)的運(yùn)轉(zhuǎn)產(chǎn)生很大影響。
評(píng)估一套存儲(chǔ),性能是核心指標(biāo)之一。而影響存儲(chǔ)性能的因素通常有很多種,比如硬件配置、網(wǎng)絡(luò)時(shí)延、存儲(chǔ)軟件處理流程等。為了了解深信服分布式存儲(chǔ)EDS在每一部分的優(yōu)化措施,我們將一個(gè)業(yè)務(wù)I/O流程歸納為以下四層:
結(jié)合上述分層方式,我們來(lái)介紹EDS如何激發(fā)卓越性能。
一、客戶端業(yè)務(wù)網(wǎng)絡(luò)層優(yōu)化
1.降低業(yè)務(wù)網(wǎng)絡(luò)層時(shí)延
EDS通過(guò)增強(qiáng)支持NVMe-oF協(xié)議,來(lái)代替iSCSI和FC協(xié)議,并通過(guò)RDMA技術(shù)減少數(shù)據(jù)在客戶端內(nèi)存拷貝,縮短客戶端IO路徑,降低客戶端CPU開(kāi)銷。
目前在實(shí)驗(yàn)室內(nèi)測(cè)結(jié)果表示,NVMe-oF相比于通過(guò)FC接入在小塊隨機(jī)讀寫(xiě)時(shí)延上降低60%以上(NVME-oF的IO傳輸時(shí)延在10us以內(nèi),而FC通常在30us,iSCSI通常在70us)。
2.提升網(wǎng)絡(luò)接入并發(fā)
EDS通過(guò)虛擬IP池的方式實(shí)現(xiàn)客戶端統(tǒng)一IP接入,EDS服務(wù)端IO多路徑映射到存儲(chǔ)節(jié)點(diǎn)間均衡負(fù)載,每一個(gè)節(jié)點(diǎn)都可以參與IO接收和處理,因此EDS可以通過(guò)橫向地增加存儲(chǔ)節(jié)點(diǎn)獲得線性提升的網(wǎng)絡(luò)接入并發(fā)IO能力。值得一提的是,部分分布式存儲(chǔ)雖然存儲(chǔ)節(jié)點(diǎn)可以橫向擴(kuò)展,但接入網(wǎng)關(guān)會(huì)限制在4個(gè)節(jié)點(diǎn)以內(nèi),因此接入IO并發(fā)有限。
二、存儲(chǔ)軟件邏輯層優(yōu)化
1.降低IO路徑時(shí)延
(1)更高效的副本分發(fā)機(jī)制
EDS通過(guò)多副本和糾刪碼的方式進(jìn)行數(shù)據(jù)冗余,以副本機(jī)制為例,多份副本并發(fā)寫(xiě)入存儲(chǔ)節(jié)點(diǎn)的固態(tài)盤,寫(xiě)入成功即向應(yīng)用返回成功,沒(méi)有主備副本之分。對(duì)比開(kāi)源存儲(chǔ)架構(gòu)CEPH的副本分發(fā)機(jī)制,EDS的I/O路徑更短,寫(xiě)時(shí)延更低。
(2)更高效的分層機(jī)制
在混合盤配置下,固態(tài)盤作為高性能層提供讀寫(xiě)加速能力,EDS通過(guò)獨(dú)特的Tier分層減少了數(shù)據(jù)寫(xiě)入固態(tài)盤后的數(shù)據(jù)二次復(fù)制,降低固態(tài)盤壽命損耗,提高IO處理效率。
(3)更高的分層命中率
EDS的業(yè)務(wù)讀操作會(huì)優(yōu)先從Tier分層讀取,所以業(yè)務(wù)讀性能跟SSD命中率強(qiáng)相關(guān)。由于性能層容量有限,如何把業(yè)務(wù)需要頻繁訪問(wèn)的數(shù)據(jù)(即熱數(shù)據(jù))留存在成為提升業(yè)務(wù)讀性能的關(guān)鍵。EDS通過(guò)更智能的熱力圖算法決定那部分?jǐn)?shù)據(jù)留存在性能層,相比于傳統(tǒng)LRU算法可大幅度提升性能層命中率,提升業(yè)務(wù)讀性能。
(4)更智能的內(nèi)存預(yù)加載
為了提升業(yè)務(wù)讀性能,EDS文件存儲(chǔ)支持內(nèi)存預(yù)加載技術(shù),提前將數(shù)據(jù)按以下機(jī)制預(yù)加載到高速內(nèi)存中,業(yè)務(wù)可直接從內(nèi)存獲取數(shù)據(jù)。
基于目錄的預(yù)加載機(jī)制:大部分應(yīng)用場(chǎng)景,一個(gè)目錄保存的文件相關(guān)性較強(qiáng),若目錄內(nèi)數(shù)據(jù)量較小,則將整個(gè)目錄的文件都加載到內(nèi)存。
基于時(shí)間的預(yù)加載機(jī)制:若目錄內(nèi)的數(shù)據(jù)量較大,則通過(guò)創(chuàng)建時(shí)間將目錄內(nèi)的文件進(jìn)行分組,當(dāng)某個(gè)組中的文件在短時(shí)間內(nèi)被讀取超過(guò)3個(gè),則將整個(gè)組中的文件加載到內(nèi)存。
2.提升多磁盤并發(fā)
EDS通過(guò)自適應(yīng)條帶化和自研分布算法來(lái)充分發(fā)揮同一主機(jī)內(nèi)多塊磁盤的并發(fā)能力。
(1)自適應(yīng)條帶化技術(shù)
條帶化技術(shù)是指將一塊連續(xù)的數(shù)據(jù)切分成很多個(gè)小的數(shù)據(jù)塊,然后并發(fā)地存儲(chǔ)到不同物理硬盤上,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行寫(xiě)入或讀取時(shí)可以獲得最大程度上的I/O并發(fā)能力。
為了保證獲得最優(yōu)的I/O性能,EDS的條帶數(shù)會(huì)根據(jù)集群配置進(jìn)行自適應(yīng)調(diào)整,無(wú)需用戶配置。
(2)性能最優(yōu)分布算法
為了保證性能最優(yōu),EDS數(shù)據(jù)分布會(huì)優(yōu)先遵循以下三大策略:
主機(jī)內(nèi)優(yōu)先跨磁盤組分布策略:每個(gè)磁盤組由1塊SSD和多塊HDD組成,跨越多個(gè)磁盤組,可以利用到更多的SSD的加速能力。
磁盤組內(nèi)優(yōu)先跨磁盤分布策略:在混合盤配置中,為了避免對(duì)一個(gè)條帶組內(nèi)的數(shù)據(jù)進(jìn)行并發(fā)讀寫(xiě)時(shí)對(duì)機(jī)械硬盤產(chǎn)生隨機(jī)的I/O(機(jī)械盤受限于物理結(jié)構(gòu),隨機(jī)I/O性能較差),數(shù)據(jù)在磁盤組內(nèi)優(yōu)先跨磁盤分布。
優(yōu)先選擇組件剩余容量最多策略:為了保證數(shù)據(jù)分布均衡,主機(jī)或磁盤的剩余容量大小也是數(shù)據(jù)分布時(shí)的一個(gè)重要考量因素。
3.提升小文件/對(duì)象寫(xiě)入性能
在海量小文件/對(duì)象承載場(chǎng)景下EDS通過(guò)小文件合并技術(shù)大幅降低元數(shù)據(jù)規(guī)模,保證關(guān)鍵元數(shù)據(jù)都能夠完全存儲(chǔ)在有限的SSD上,并利用自研PhxKV數(shù)據(jù)庫(kù)對(duì)元數(shù)據(jù)進(jìn)行管理,提升元數(shù)據(jù)訪問(wèn)效率及故障修復(fù)的效率,從而提升EDS對(duì)海量小文件/對(duì)象讀寫(xiě)效率,可以輕松承載百億級(jí)別的小文件/對(duì)象存儲(chǔ)。
三、服務(wù)器硬件層優(yōu)化
EDS支持在通用X86或ARM架構(gòu)的服務(wù)器上進(jìn)行部署,相比于傳統(tǒng)存儲(chǔ)使用的專有硬件,所需投入的成本更低,并且EDS聯(lián)合Intel推出了精選解決方案:
對(duì)于普通生產(chǎn)業(yè)務(wù)承載,EDS推薦高性價(jià)比混閃方案,通過(guò)配置少量固態(tài)盤(SATA/NVMe/Optane)作為高性能層提供讀寫(xiě)加速能力,配置大容量機(jī)械盤作為容量層承載更多數(shù)據(jù)。
對(duì)于核心高負(fù)載業(yè)務(wù)承載,EDS可以采用全閃存方案,支持全SATA和全NVMe SSD組成的高性能存儲(chǔ)資源池,通過(guò)25Gb/40Gb RoCE組網(wǎng),為金融核心交易系統(tǒng)、測(cè)繪航測(cè)建模系統(tǒng)、醫(yī)療HIS等場(chǎng)景提供穩(wěn)定高性能的生產(chǎn)存儲(chǔ)。
四、存儲(chǔ)網(wǎng)絡(luò)層優(yōu)化
EDS的存儲(chǔ)網(wǎng)絡(luò)用來(lái)進(jìn)行節(jié)點(diǎn)間數(shù)據(jù)同步,以多副本機(jī)制為例,由于存儲(chǔ)的多個(gè)副本之間要保證強(qiáng)一致性和數(shù)據(jù)可靠性,多個(gè)副本必須同時(shí)寫(xiě)入到不同的存儲(chǔ)節(jié)點(diǎn),因此存儲(chǔ)網(wǎng)絡(luò)時(shí)延也是影響性能的關(guān)鍵因素之一。EDS通過(guò)RDMA技術(shù)來(lái)減少內(nèi)存拷貝,降低CPU消耗,從而將存儲(chǔ)網(wǎng)時(shí)延降低到10微秒以內(nèi)。
在多項(xiàng)性能優(yōu)化措施的加持下,EDS在塊、文件、對(duì)象存儲(chǔ)性能實(shí)現(xiàn)了進(jìn)一步升級(jí)。
塊存儲(chǔ)性能優(yōu)化
使用3節(jié)點(diǎn)混合盤配置的EDS集群(每節(jié)點(diǎn)配置2塊SATA接口固態(tài)盤作為緩存盤,6塊SATA 機(jī)械盤做數(shù)據(jù)盤)可提供43萬(wàn)IOPS 性能,發(fā)揮物理硬件性能的92%以上。
并且性能可以橫向擴(kuò)展,EDS集群規(guī)模擴(kuò)展至8節(jié)點(diǎn)時(shí),混合盤配置4KB隨機(jī)讀可達(dá)120萬(wàn)IOPS。
對(duì)象存儲(chǔ)性能優(yōu)化
EDS對(duì)象存儲(chǔ)在3節(jié)點(diǎn)混合盤配置下可以承載100億個(gè)小對(duì)象數(shù)據(jù),且性能下降不超過(guò)5%。而開(kāi)源CEPH在對(duì)象規(guī)模實(shí)測(cè)達(dá)到3億時(shí),性能下降已超過(guò)60%。
文件存儲(chǔ)性能優(yōu)化
使用3節(jié)點(diǎn)混合盤配置的EDS集群,EDS文件存儲(chǔ)可提供6GB/s的讀寫(xiě)吞吐能力。
對(duì)存儲(chǔ)而言,性能優(yōu)化可謂是一場(chǎng)沒(méi)有終點(diǎn)的馬拉松,持續(xù)在通用硬件上激發(fā)出更高、更穩(wěn)定的存儲(chǔ)性能,用戶便可以用更低的成本投入獲得可支撐核心業(yè)務(wù)運(yùn)行的存儲(chǔ)產(chǎn)品。基于性能優(yōu)化,目前深信服EDS已經(jīng)承載了廣電非編、AI訓(xùn)練、醫(yī)療影像長(zhǎng)期歸檔、人臉圖像識(shí)別、制造業(yè)MES生產(chǎn)、金融交易清算等豐富的業(yè)務(wù)場(chǎng)景。EDS將持續(xù)通過(guò)大量的研發(fā)投入,和持續(xù)的版本迭代,讓用戶擁有更優(yōu)的存儲(chǔ)選擇。