金融機(jī)構(gòu)多場(chǎng)景關(guān)鍵應(yīng)用下的存儲(chǔ)架構(gòu)如何設(shè)計(jì)?

金融行業(yè)作為特殊而典型的行業(yè),其信息系統(tǒng)在面臨業(yè)務(wù)需求變革時(shí),必然引發(fā)應(yīng)用系統(tǒng)底層存儲(chǔ)架構(gòu)的優(yōu)化及革新。例如銀行的賬務(wù)系統(tǒng)、保險(xiǎn)的理賠業(yè)務(wù)系統(tǒng)、證券的交易系統(tǒng)等。因此站在不同的業(yè)務(wù)角度,去探討不同場(chǎng)景下的存儲(chǔ)選型設(shè)計(jì)顯得尤為重要。

本文來(lái)自微信公眾號(hào)“twt企業(yè)IT社區(qū)”。

【欄目主編】趙海某金融系統(tǒng)高級(jí)主管:本議題由光大科技有限公司高級(jí)工程師牛凱源、某金融科技公司資深集成工程師孫偉光、某金融機(jī)構(gòu)架構(gòu)師李威分別發(fā)表自己的主張,幾位專家的主張?jiān)谀彻煞葜沏y行系統(tǒng)架構(gòu)師老谷、江西銀行信息科技部系統(tǒng)管理崗資深運(yùn)維工程師謝茜茜、以及我本人的復(fù)議后,形成了一定的共識(shí),希望可以對(duì)同行有一定的參考。

牛凱源光大科技有限公司高級(jí)工程師:

金融機(jī)構(gòu)關(guān)鍵業(yè)務(wù)存儲(chǔ)架構(gòu)在選型時(shí),需充分考慮到業(yè)務(wù)場(chǎng)景的特點(diǎn),有針對(duì)性地選取適合的存儲(chǔ)產(chǎn)品以及架構(gòu),不能一味的求新、求變,應(yīng)以科技為金融服務(wù)為宗旨,通過(guò)技術(shù),提高金融機(jī)構(gòu)服務(wù)的質(zhì)量和效率。

一、引言

金融機(jī)構(gòu)在多種場(chǎng)景有著關(guān)鍵應(yīng)用,銀行業(yè)更多關(guān)注交易類與賬務(wù)系統(tǒng),保險(xiǎn)行業(yè)則將投保理賠類系統(tǒng)視為關(guān)鍵系統(tǒng),而如何選擇適合各場(chǎng)景下的存儲(chǔ)?如何設(shè)計(jì)適合特定業(yè)務(wù)場(chǎng)景的存儲(chǔ)架構(gòu)?對(duì)于企業(yè)IT人員來(lái)說(shuō)尤為重要。

二、當(dāng)前主流存儲(chǔ)架構(gòu)分析

現(xiàn)有的存儲(chǔ)系統(tǒng)經(jīng)過(guò)長(zhǎng)期發(fā)展,種類極其繁多,架構(gòu)也各不相同,限于篇幅,本文主要針對(duì)架構(gòu)進(jìn)行相關(guān)討論。

當(dāng)前主流架構(gòu)主要分為集中式存儲(chǔ)和分布式存儲(chǔ)兩種。集中式存儲(chǔ)技術(shù)成熟,架構(gòu)簡(jiǎn)單,有足夠的穩(wěn)定性,對(duì)高IOPS、低延時(shí)、數(shù)據(jù)強(qiáng)一致性有很好的支持。但是集中式架構(gòu)決定了其擴(kuò)展能力有限,無(wú)法很好支撐高并發(fā)訪問(wèn)性能。隨著數(shù)據(jù)量不斷增長(zhǎng),集中式存儲(chǔ)增長(zhǎng)空間越來(lái)越有限。分布式存儲(chǔ)是采用分布式架構(gòu)的存儲(chǔ)集群,將數(shù)據(jù)分布在不同物理位置,并通過(guò)網(wǎng)絡(luò)把它們連接起來(lái),橫向擴(kuò)展能力很強(qiáng)。分布式存儲(chǔ)有效解決了傳統(tǒng)集中式存儲(chǔ)的可擴(kuò)展性問(wèn)題,規(guī)模可擴(kuò)展至上千個(gè)節(jié)點(diǎn),容量擴(kuò)展到上百PB甚至EB級(jí),性能隨容量線性提升。按需在線擴(kuò)容后,自動(dòng)實(shí)現(xiàn)數(shù)據(jù)再均衡。分布式存儲(chǔ)的多個(gè)存儲(chǔ)節(jié)點(diǎn)能夠同時(shí)提供讀寫(xiě)服務(wù),因此具有很高的吞吐率,可達(dá)到幾十GB/s。主流分布式存儲(chǔ)產(chǎn)品主要有以下幾種:

?Ceph:適合云平臺(tái)塊存儲(chǔ)和對(duì)象存儲(chǔ)

?HDFS:適用于大數(shù)據(jù)場(chǎng)景

?GlusterFS:適用視頻,音頻等大文件和以讀為主的場(chǎng)景

?BeeGFS/Luster:適用于高性能計(jì)算場(chǎng)景

三、金融機(jī)構(gòu)業(yè)務(wù)場(chǎng)景分析與架構(gòu)選型思路

首先,需要明確不同金融機(jī)構(gòu)不同場(chǎng)景下的業(yè)務(wù)特點(diǎn),此處,以銀行業(yè)與保險(xiǎn)行業(yè)為例,比如:銀行業(yè)的聯(lián)機(jī)交易業(yè)務(wù)或核心業(yè)務(wù)主要體現(xiàn)在客戶層面對(duì)于業(yè)務(wù)響應(yīng)的快慢,故而對(duì)于讀寫(xiě)的性能要求極高;此外,對(duì)于事務(wù)性也有極高的要求,交易業(yè)務(wù)要求數(shù)據(jù)必須是強(qiáng)一致的,不允許出現(xiàn)臟讀,臟寫(xiě)的情況。針對(duì)上述出現(xiàn)的這類核心業(yè)務(wù)系統(tǒng),可采用傳統(tǒng)的集中式存儲(chǔ)架構(gòu),以便對(duì)高IOPS、低延時(shí)和數(shù)據(jù)強(qiáng)一致性的需求能夠有效支持。

而像銀行業(yè)或保險(xiǎn)行業(yè)的影像類系統(tǒng),主要存儲(chǔ)的是客戶的影像媒體數(shù)據(jù),數(shù)據(jù)多以大文件、非結(jié)構(gòu)化數(shù)據(jù)為主,業(yè)務(wù)特點(diǎn)也多以影像數(shù)據(jù)的查詢?yōu)橹鳎瑢?duì)性能有較高要求。對(duì)于此類業(yè)務(wù),以個(gè)人實(shí)踐情況來(lái)看,以GlusterFS為代表的分布式存儲(chǔ)最為適合該業(yè)務(wù),GlusterFS具有高擴(kuò)展性、高可用性、高性能、可橫向擴(kuò)展等特點(diǎn),其根據(jù)場(chǎng)景不同,可設(shè)置不同類型的卷,如:分布式復(fù)制卷,分布式條帶卷等,以此來(lái)達(dá)到高性能讀寫(xiě)的目的。

個(gè)人曾對(duì)GlusterFS存儲(chǔ)進(jìn)行過(guò)相關(guān)讀寫(xiě)性能測(cè)試,在分布式復(fù)制卷模式,同/異步寫(xiě)入,讀取數(shù)據(jù)的場(chǎng)景下,發(fā)現(xiàn)其對(duì)于大文件的讀寫(xiě)支持很好,測(cè)試數(shù)據(jù)如表1,表2所示:

表1同步讀寫(xiě)測(cè)試數(shù)據(jù)

360截圖16251112669372.png

表2異步讀寫(xiě)測(cè)試數(shù)據(jù)

360截圖16251112669372.png

根據(jù)表1可以看出,GlusterFS存儲(chǔ)對(duì)于小文件的讀寫(xiě)性能支持并不是很好,但是對(duì)于大文件來(lái)說(shuō),讀寫(xiě)性能很強(qiáng),適合視頻流媒體等影像文件的讀寫(xiě)

根據(jù)表2可以看出,雖然GlusterFS適合大文件讀寫(xiě),但是異步讀寫(xiě)下,并不是文件越大,讀寫(xiě)性能越好,反而在筆者的測(cè)試環(huán)境下,2G大小的文件,讀寫(xiě)性能達(dá)到最佳。

該測(cè)試數(shù)據(jù)是基于分布式復(fù)制卷進(jìn)行的數(shù)據(jù)讀寫(xiě),理論上來(lái)講,該模式下相對(duì)于分布式條帶卷,讀寫(xiě)性能要略微差一些,但是由于采用了多副本機(jī)制,所以保證了數(shù)據(jù)的高可用,但隨之帶來(lái)的是存儲(chǔ)容量有效利用率較低以及數(shù)據(jù)查詢效率的降低。

所以,在實(shí)際場(chǎng)景中,選擇分布式存儲(chǔ)時(shí),是否采用多副本,副本數(shù)量設(shè)置多少,需要結(jié)合具體業(yè)務(wù)場(chǎng)景來(lái)確定。

四、結(jié)語(yǔ)

綜上所述,金融機(jī)構(gòu)業(yè)務(wù)存儲(chǔ)架構(gòu)在選型時(shí),需充分考慮到業(yè)務(wù)場(chǎng)景的特點(diǎn),有針對(duì)性地選取適合的存儲(chǔ)產(chǎn)品以及架構(gòu),不能一味的求新、求變,應(yīng)以科技為金融服務(wù)為宗旨,通過(guò)技術(shù),提高金融機(jī)構(gòu)服務(wù)的質(zhì)量和效率。

孫偉光某金融科技公司資深集成工程師:

數(shù)據(jù)作為企業(yè)的核心要素和資產(chǎn),在解決如何存儲(chǔ)管理大數(shù)據(jù)以及海量文件數(shù)量之外,更重要的是根據(jù)應(yīng)用的訪問(wèn)特點(diǎn),在保證數(shù)據(jù)安全性的同時(shí),進(jìn)行簡(jiǎn)易化合理的數(shù)據(jù)存儲(chǔ)管理以及提高存儲(chǔ)系統(tǒng)讀寫(xiě)性能,提升數(shù)據(jù)處理效率,將存儲(chǔ)系統(tǒng)的價(jià)值發(fā)揮到最大。讓存儲(chǔ)在保險(xiǎn)業(yè)發(fā)揮重要的壓艙石作用。

一、保險(xiǎn)行業(yè)影像類業(yè)務(wù)應(yīng)用特點(diǎn)

數(shù)字化轉(zhuǎn)型大勢(shì)下,作為數(shù)字經(jīng)濟(jì)的重要參與者,保險(xiǎn)公司面臨諸多數(shù)字化轉(zhuǎn)型的挑戰(zhàn),如何通過(guò)“數(shù)據(jù)”驅(qū)動(dòng)實(shí)際業(yè)務(wù)以實(shí)現(xiàn)保險(xiǎn)企業(yè)的數(shù)字化轉(zhuǎn)型成為關(guān)鍵所在。影像平臺(tái)為保險(xiǎn)企業(yè)提供了全面影像技術(shù)支撐,包括:影像采集、影像存儲(chǔ)、影像處理、影像調(diào)閱。影像平臺(tái)系統(tǒng)需要管理海量?jī)?nèi)容數(shù)據(jù),內(nèi)容通常是傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)信息的幾十乃至上百倍,保險(xiǎn)企業(yè)生產(chǎn)業(yè)務(wù)系統(tǒng)生成的電子保單是以文件為單位的非結(jié)構(gòu)化數(shù)據(jù),不論是單個(gè)文件大小還是文件總數(shù)據(jù)量,其增長(zhǎng)都非常迅速。而且為了方便用戶在調(diào)取經(jīng)常被訪問(wèn)的數(shù)據(jù)時(shí)可以直接從緩存調(diào)取,會(huì)將所有經(jīng)常被訪問(wèn)的數(shù)據(jù)都存儲(chǔ)在緩存池中,當(dāng)數(shù)據(jù)量不斷增長(zhǎng)時(shí)(如圖片類與結(jié)構(gòu)化數(shù)據(jù)),存儲(chǔ)系統(tǒng)中的文件數(shù)量也會(huì)快速增長(zhǎng)。當(dāng)存儲(chǔ)系統(tǒng)內(nèi)的文件數(shù)量增長(zhǎng)到數(shù)千萬(wàn)以上時(shí),文件的檢索查找等操作將會(huì)給文件系統(tǒng)帶來(lái)巨大的壓力,特別是當(dāng)一個(gè)目錄下面存放的文件超過(guò)一定數(shù)量時(shí),甚至?xí)斐晌募檎倚实募眲∠陆怠?/p>

數(shù)據(jù)作為企業(yè)的核心要素和資產(chǎn),在解決如何存儲(chǔ)管理大數(shù)據(jù)以及海量文件數(shù)量之外,更重要的是根據(jù)應(yīng)用的訪問(wèn)特點(diǎn),在保證數(shù)據(jù)安全性的同時(shí),進(jìn)行簡(jiǎn)易化合理的數(shù)據(jù)存儲(chǔ)管理以及提高存儲(chǔ)系統(tǒng)讀寫(xiě)性能,提升數(shù)據(jù)處理效率,將存儲(chǔ)系統(tǒng)的價(jià)值發(fā)揮到最大。讓存儲(chǔ)在保險(xiǎn)業(yè)發(fā)揮重要的壓艙石作用。

二、保險(xiǎn)行業(yè)影像系統(tǒng)架構(gòu)分析

存儲(chǔ)架構(gòu)是實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)關(guān)系各個(gè)系統(tǒng)讀寫(xiě)性能的關(guān)鍵環(huán)節(jié)。存儲(chǔ)架構(gòu)重點(diǎn)是在建立起統(tǒng)一的存儲(chǔ)平臺(tái)上,更有效的完成業(yè)務(wù)處理,并極大地提高系統(tǒng)的可管理性,降低系統(tǒng)的管理難度及管理開(kāi)銷,提高信息的可用性和共享性。金融機(jī)構(gòu)關(guān)鍵業(yè)務(wù)系統(tǒng)在存儲(chǔ)規(guī)劃設(shè)計(jì)上一般需要考慮如下兩個(gè)重要因素:

1)系統(tǒng)運(yùn)行性能:系統(tǒng)應(yīng)能滿足的性能需求,包括在線用戶數(shù),并發(fā)用戶數(shù),綜合處理能力(TPS)、重要業(yè)務(wù)的平均響應(yīng)時(shí)間、重要數(shù)據(jù)的聯(lián)機(jī)存儲(chǔ)能力等內(nèi)容。

2)系統(tǒng)安全性:應(yīng)能滿足的用戶接入系統(tǒng)的安全性要求,應(yīng)能滿足的系統(tǒng)關(guān)鍵數(shù)據(jù)的保存和恢復(fù)等安全性要求,應(yīng)能滿足的系統(tǒng)關(guān)鍵數(shù)據(jù)的被查詢的安全性要求。

按照影像平臺(tái)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)可將數(shù)據(jù)分為兩大類:結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。結(jié)構(gòu)化數(shù)據(jù)主要包括應(yīng)用系統(tǒng)直接產(chǎn)生的數(shù)據(jù),即行數(shù)據(jù),是存儲(chǔ)在數(shù)據(jù)庫(kù)里可以用二維表結(jié)構(gòu)來(lái)邏輯表達(dá)實(shí)現(xiàn)的數(shù)據(jù),包括:業(yè)務(wù)數(shù)據(jù)、基礎(chǔ)庫(kù)數(shù)據(jù)等。非結(jié)構(gòu)化數(shù)據(jù)是指不方便用數(shù)據(jù)庫(kù)二維邏輯表來(lái)表現(xiàn)的數(shù)據(jù),主要包括:音頻、視頻、日志與圖像文件等。

保險(xiǎn)業(yè)影像平臺(tái)由于其應(yīng)用功能固有特點(diǎn),將產(chǎn)生大量的掃描圖片、影音等非結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù),對(duì)這類數(shù)據(jù)的采集、存儲(chǔ)、檢索、分發(fā)、分析等管理提出了很高的要求。因此,非結(jié)構(gòu)化數(shù)據(jù)根據(jù)法規(guī)要求,需要對(duì)數(shù)據(jù)集中歸檔備份。重點(diǎn)在于平衡數(shù)據(jù)存儲(chǔ)成本效率與計(jì)算處理效率,配合結(jié)構(gòu)化數(shù)據(jù)的分析,提供分析應(yīng)用場(chǎng)景下的非結(jié)構(gòu)化數(shù)據(jù)支持。

根據(jù)數(shù)據(jù)分類原則,影像平臺(tái)的數(shù)據(jù)劃分為兩個(gè)層級(jí),如表3所示:

表3影像平臺(tái)數(shù)據(jù)劃分表

360截圖16251112669372.png

三、業(yè)務(wù)應(yīng)用場(chǎng)景下存儲(chǔ)架構(gòu)設(shè)計(jì)

存儲(chǔ)系統(tǒng)應(yīng)該以存儲(chǔ)資源池的形態(tài)進(jìn)行應(yīng)用系統(tǒng)存儲(chǔ)資源的調(diào)配和存儲(chǔ)資源的管理。存儲(chǔ)資源的調(diào)配應(yīng)該以一種靈活、高效的方式出現(xiàn),尤其是在影像平臺(tái),存儲(chǔ)系統(tǒng)中虛擬資源調(diào)配功能完全滿足這些需求,為了便于管理,應(yīng)該提供一個(gè)統(tǒng)一的存儲(chǔ)平臺(tái)對(duì)系統(tǒng)進(jìn)行統(tǒng)一配置管理、系統(tǒng)狀態(tài)監(jiān)控和性能監(jiān)控。通過(guò)統(tǒng)一管理平臺(tái),用戶可以清晰地了解到整個(gè)存儲(chǔ)資源池的設(shè)備運(yùn)行狀態(tài)、容量資源利用率和性能狀態(tài)等。

存儲(chǔ)系統(tǒng)作為云平臺(tái)的重要組成部分,需要與計(jì)算資源有良好的集成,尤其是需要將存儲(chǔ)管理與云平臺(tái)管理有機(jī)地集成在一起。SAN網(wǎng)絡(luò)中網(wǎng)絡(luò)層是非常關(guān)鍵的一個(gè)部分,它負(fù)責(zé)將主機(jī)和存儲(chǔ)系統(tǒng)連接在一起,并且提供一個(gè)高靈活性、高擴(kuò)展性的環(huán)境,以適應(yīng)業(yè)務(wù)系統(tǒng)不斷發(fā)展帶來(lái)的主機(jī)和存儲(chǔ)系統(tǒng)的擴(kuò)展。

對(duì)于NAS存儲(chǔ)層來(lái)說(shuō),NAS作為最成熟的網(wǎng)絡(luò)存儲(chǔ)解決方案,而且是唯一一種通過(guò)網(wǎng)絡(luò)連接主機(jī)系統(tǒng)共享數(shù)據(jù)的存儲(chǔ)技術(shù)。它采用文件為基本讀寫(xiě)單位,文件管理由高效的專用硬件模塊負(fù)責(zé),可以降低應(yīng)用服務(wù)器主機(jī)對(duì)文件管理的開(kāi)銷,因此最適合做海量文件的存儲(chǔ)構(gòu)架。優(yōu)秀的NAS存儲(chǔ)設(shè)備可以提供每秒近萬(wàn)次文件讀寫(xiě),在處理海量文件時(shí)性能更優(yōu)于SAN存儲(chǔ)。NAS采用高速以太網(wǎng)作為連接訪問(wèn)的形式,因此在系統(tǒng)容量擴(kuò)展時(shí),不需為應(yīng)用主機(jī)添加諸如FC光纖卡等昂貴配件,性價(jià)比高且不論是增加主機(jī)還是存儲(chǔ)容量都十分便捷,通過(guò)快照方式還可以方便地進(jìn)行高速文件備份。

對(duì)象存儲(chǔ)是一種靈活的可擴(kuò)展存儲(chǔ)結(jié)構(gòu),它將所有數(shù)據(jù)都作為獨(dú)立對(duì)象存儲(chǔ)在平面層空間中。對(duì)象存儲(chǔ)支持同時(shí)存儲(chǔ)和管理各種類型的數(shù)據(jù),包括結(jié)構(gòu)化數(shù)據(jù)(如數(shù)據(jù)庫(kù))、非結(jié)構(gòu)化數(shù)據(jù)(如圖像和視頻)和半結(jié)構(gòu)化數(shù)據(jù)(如電子郵件和社交媒體消息)。鑒于其可擴(kuò)展性高且訪問(wèn)速度快,主要云存儲(chǔ)服務(wù)全都以對(duì)象存儲(chǔ)為基礎(chǔ)。

從數(shù)據(jù)生命周期角度看,影像系統(tǒng)業(yè)務(wù)發(fā)起產(chǎn)生結(jié)構(gòu)數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),這部分?jǐn)?shù)據(jù)作為在線數(shù)據(jù),分別進(jìn)入不同的存儲(chǔ)池,結(jié)構(gòu)化數(shù)據(jù)寫(xiě)入SAN閃存存儲(chǔ),非結(jié)構(gòu)化數(shù)據(jù)寫(xiě)入NAS存儲(chǔ)。業(yè)務(wù)完成一段時(shí)間后,非結(jié)構(gòu)化數(shù)據(jù)因很少在被調(diào)用可作為近線數(shù)據(jù)寫(xiě)入對(duì)象存儲(chǔ)或者作為離線數(shù)據(jù)寫(xiě)入磁帶庫(kù)等。

四、存儲(chǔ)選型應(yīng)用基本思路總結(jié)

存儲(chǔ)選型方法論:

1.存儲(chǔ)性能保障原則

1)設(shè)備利用率通用原則控制在70%以下,部件利用率在30%以上仍然可以處理相同吞吐負(fù)載但是帶來(lái)處理延時(shí)的增加,延時(shí)大帶來(lái)聯(lián)機(jī)交易延時(shí)失敗。

2)不同的轉(zhuǎn)速的磁盤(pán)設(shè)備,在不同IO特征下能夠完成的吞吐量和流量差距很大。

2.存儲(chǔ)分配規(guī)則

每臺(tái)存儲(chǔ)需預(yù)留20%的空間,滿足存儲(chǔ)內(nèi)系統(tǒng)擴(kuò)容和變更的要求。對(duì)于重要系統(tǒng)和性能壓力大的系統(tǒng),為確保磁盤(pán)性能,存儲(chǔ)底層RAID組盡量分散。同一RAID組的LUN為避免相互干擾不能分配給兩個(gè)繁忙的系統(tǒng)。對(duì)于數(shù)據(jù)量大的應(yīng)用,盡量獨(dú)占RAID組。根據(jù)存儲(chǔ)性能數(shù)據(jù)優(yōu)化后端磁盤(pán),減少熱點(diǎn)盤(pán)的出現(xiàn)。存儲(chǔ)前端端口:IO負(fù)載高的應(yīng)用,使用專有的存儲(chǔ)前端口。對(duì)于高端存儲(chǔ)IOPS≥4000應(yīng)分配1對(duì)獨(dú)立存儲(chǔ)前端端口,IOPS≥8000應(yīng)分配2對(duì)獨(dú)立存儲(chǔ)前端端口。數(shù)據(jù)流量高的應(yīng)用,分配在不同存儲(chǔ)前端板卡上,避免存儲(chǔ)前端板卡到后端交換機(jī)的帶寬成為瓶頸。服務(wù)器HBA卡和存儲(chǔ)前端口是可以1對(duì)1或多對(duì)1,避免1對(duì)多。IO壓力小的業(yè)務(wù)系統(tǒng)可共享存儲(chǔ)前端口,每個(gè)存儲(chǔ)前端口最多為3個(gè)HBA共享。服務(wù)器端訪問(wèn)每個(gè)LUN的多路徑≤4條,如果4條仍無(wú)法滿足性能要求,應(yīng)將LUN進(jìn)行分組,不同的組對(duì)應(yīng)不同的前端口。

3.存儲(chǔ)使用規(guī)則

1)操作系統(tǒng)層條帶化:為了提高性能,主機(jī)層LV建議做條帶,條帶的PV應(yīng)分配到不同RAID組。操作系統(tǒng)群集識(shí)別相同共享存儲(chǔ)群集HA或者RAC系統(tǒng),兩個(gè)節(jié)點(diǎn)識(shí)別相同的存儲(chǔ)磁盤(pán),盡量避免出現(xiàn)群集節(jié)點(diǎn)磁盤(pán)個(gè)數(shù)不一致情況。

2)數(shù)據(jù)庫(kù)層空間分配原則:數(shù)據(jù)庫(kù)空間一般有IO較小,隨機(jī)IO多的特點(diǎn),采用RAID1空間。數(shù)據(jù)和索引表空間要分配在不同RAID組上。TEMP表空間功能是查詢排序和存放臨時(shí)表,較忙,采用性能好的LUN。REDO表空間采用RAID1空間、UNDO表空間采用RAID1組、ARCHIVE歸檔日志建議用RAID5空間。

李威某金融機(jī)構(gòu)架構(gòu)師:

海量小文件,為什么會(huì)成為世界性難題?一切的根源探索還得從海量小文件的實(shí)際場(chǎng)景出發(fā),如何產(chǎn)生、如何存儲(chǔ)、如何成難題。透過(guò)現(xiàn)象看本質(zhì),優(yōu)化才有方向,目標(biāo)才能明確。

海量小文件,不僅是一個(gè)行業(yè)難題,更是一個(gè)世界性難題,各行各業(yè)的諸多場(chǎng)景下都存在類似困境。此類問(wèn)題難以根治,一部分原因是傳統(tǒng)存儲(chǔ)解決方案無(wú)法高效匹配海量小文件的場(chǎng)景,另一部分原因是從傳統(tǒng)存儲(chǔ)切換到對(duì)象存儲(chǔ)的成本略高。此前,針對(duì)影像系統(tǒng)和打印系統(tǒng)的海量小文件場(chǎng)景,我們?cè)ㄙM(fèi)大量的時(shí)間和精力來(lái)優(yōu)化海量小文件的業(yè)務(wù)存儲(chǔ)。借此機(jī)會(huì)拋磚引玉,來(lái)深入聊一下海量小文件問(wèn)題,分享些許我們?cè)诤A啃∥募?yōu)化上的一點(diǎn)心得。

對(duì)于海量小文件的定義,行業(yè)上尚未有精確規(guī)定,更像一個(gè)事實(shí)標(biāo)準(zhǔn),而非定義標(biāo)準(zhǔn)。一般情況下,單個(gè)文件的體積并不大,一般為數(shù)十KB至數(shù)MB,但數(shù)量規(guī)模數(shù)十萬(wàn)甚至百萬(wàn)以上級(jí)別之巨,這類場(chǎng)景我們稱為“海量小文件”。海量小文件通常呈現(xiàn)出一種非結(jié)構(gòu)化文件的大小與數(shù)量極不平衡的特性,也正是難以根治的癥結(jié)所在。

在金融保險(xiǎn)的業(yè)務(wù)系統(tǒng)中,以壽險(xiǎn)為例,有兩大核心系統(tǒng)最易形成海量小文件場(chǎng)景:一是影像系統(tǒng),影像系統(tǒng)中需要存儲(chǔ)大量非結(jié)構(gòu)化數(shù)據(jù),如保險(xiǎn)人相關(guān)的證件、圖片、PDF文件等,同時(shí)還有海量的業(yè)務(wù)過(guò)程文件,如交易報(bào)文、日志記錄等;二是打印系統(tǒng),打印系統(tǒng)會(huì)生成大量的電子保單,同樣存在大量過(guò)程文件,如渠道交易圖像、電子簽名照片、電子合同、相關(guān)OCR文件等。這兩大系統(tǒng)中圖像類文件在MB級(jí)別,中間過(guò)程文件在KB級(jí)別,相對(duì)比之下中間過(guò)程文件的數(shù)量級(jí)遠(yuǎn)高于影像類文件,單個(gè)系統(tǒng)存儲(chǔ)的非結(jié)構(gòu)化數(shù)據(jù)量在TB級(jí)別以上。伴隨業(yè)務(wù)高峰期的到來(lái),單目錄下小文件數(shù)量可達(dá)百萬(wàn)級(jí)別,嚴(yán)重影響目錄的讀寫(xiě)效率,甚至長(zhǎng)時(shí)間無(wú)響應(yīng)。

在我們的業(yè)務(wù)實(shí)踐中,單目錄下小文件數(shù)量達(dá)到一定規(guī)模后,該共享存儲(chǔ)目錄的讀寫(xiě)效率會(huì)出現(xiàn)顯著下降,但影像系統(tǒng)與打印系統(tǒng)對(duì)這些非結(jié)構(gòu)化數(shù)據(jù)的IOPS要求并不低。根據(jù)業(yè)務(wù)險(xiǎn)種及渠道的不同,對(duì)保險(xiǎn)人影像件的調(diào)取、電子保單的合成一般都要求在數(shù)秒之間,實(shí)時(shí)單批次電子保單合成同樣如此,非實(shí)時(shí)大批量電子保單合成不超過(guò)數(shù)分鐘。

海量小文件不僅會(huì)對(duì)在線業(yè)務(wù)的IOPS有很大影響,而且對(duì)這部分業(yè)務(wù)數(shù)據(jù)的連續(xù)數(shù)據(jù)保護(hù)也構(gòu)成巨大挑戰(zhàn)。根據(jù)監(jiān)管單位的關(guān)鍵業(yè)務(wù)數(shù)據(jù)保留要求,近三年至五年的數(shù)據(jù)均需要可回溯,所有數(shù)據(jù)均需要永久保留。夜間閑時(shí)窗口,是數(shù)據(jù)備份的重要時(shí)間段,錯(cuò)開(kāi)核心業(yè)務(wù)夜間核心批處理作業(yè)時(shí)間后,數(shù)據(jù)保護(hù)的執(zhí)行窗口相當(dāng)有限。然而當(dāng)使用備份軟件對(duì)海量小文件進(jìn)行備份、歸檔時(shí),發(fā)現(xiàn)在數(shù)據(jù)掃描階段會(huì)消耗大量時(shí)間掃描小文件來(lái)建立備份索引。數(shù)據(jù)備份階段,數(shù)百萬(wàn)計(jì)的小文件將寫(xiě)入磁帶或歸檔存儲(chǔ),速率極其低效。若再加上網(wǎng)絡(luò)等相關(guān)因素影響,海量小文件的備份歸檔窗口將遠(yuǎn)超計(jì)劃,甚至以天計(jì)算。

造成海量小文件存儲(chǔ)如此低效的根源到底是什么?為什么至今還能成為一個(gè)世界性的難題?

要想明白這個(gè)問(wèn)題,就得回到存儲(chǔ)本身來(lái)追根溯源了。首先,主要是存儲(chǔ)介質(zhì)問(wèn)題。傳統(tǒng)的存儲(chǔ)以機(jī)械磁盤(pán)為主要介質(zhì),而機(jī)械磁盤(pán)適合順序的大文件IO讀寫(xiě),不適合隨機(jī)的小文件IO讀寫(xiě)。因此海量小文件的體積、數(shù)量都會(huì)進(jìn)一步加劇機(jī)械磁盤(pán)的劣勢(shì)。

其次是數(shù)據(jù)效率問(wèn)題。傳統(tǒng)磁盤(pán)文件系統(tǒng)體系結(jié)構(gòu)依靠目錄項(xiàng)(Dentry)、索引節(jié)點(diǎn)(Inode)以及數(shù)據(jù)塊(Data)來(lái)指導(dǎo)、定位、讀寫(xiě)文件系統(tǒng)的數(shù)據(jù),而目錄項(xiàng)(Dentry)、索引節(jié)點(diǎn)(Inode)以及數(shù)據(jù)塊(Data)均存儲(chǔ)在不同地方,也就是說(shuō)一次隨機(jī)文件讀寫(xiě)至少進(jìn)行3次獨(dú)立訪問(wèn)。面對(duì)海量小文件場(chǎng)景時(shí),海量小文件的并發(fā)讀寫(xiě)匯聚形成了大量的隨機(jī)訪問(wèn),磁盤(pán)文件系統(tǒng)的體系機(jī)制放大了IO的體量,大幅降低磁盤(pán)的吞吐。

再者,磁盤(pán)文件系統(tǒng)的索引結(jié)構(gòu)在海量小文件場(chǎng)景下無(wú)法發(fā)揮優(yōu)勢(shì)。磁盤(pán)文件系統(tǒng)通常采用Hash、B+樹(shù)組織索引,當(dāng)面對(duì)單目錄下數(shù)以百萬(wàn)計(jì)的小文件時(shí),索引的增刪改查將消耗非常多系統(tǒng)資源,甚至耗盡。這一點(diǎn)在對(duì)象存儲(chǔ)的體系結(jié)構(gòu)里得到了極大的優(yōu)化和改善,如圖1。

360截圖16251112669372.png

圖1傳統(tǒng)NAS存儲(chǔ)與對(duì)象存儲(chǔ)體系結(jié)構(gòu)

最后是操作系統(tǒng)IO訪問(wèn)機(jī)制受制。以LinuxVirtual Filesystem(簡(jiǎn)稱VFS)為例,VFS提供了統(tǒng)一訪問(wèn)接口和流程,方便與不同磁盤(pán)文件系統(tǒng)的對(duì)接與擴(kuò)展。VFS的四種對(duì)象的交互太復(fù)雜,我們重點(diǎn)關(guān)注Process與VFS之間的交互操作,簡(jiǎn)化Linux I/O堆棧(如圖2)。

360截圖16251112669372.png

圖2 Linux I/O Stack簡(jiǎn)化版

當(dāng)應(yīng)用觸發(fā)文件的隨機(jī)訪問(wèn)時(shí),會(huì)調(diào)用一組Syscall去完成文件的操作訪問(wèn),如open()/seek()/read()/write()/close()等。在這組Syscall中,open()將對(duì)文件進(jìn)行路徑查找,將操作系統(tǒng)層級(jí)上的路徑名轉(zhuǎn)換成其在內(nèi)核中的表示。open()涉及大量的關(guān)聯(lián)操作,非常消耗系統(tǒng)資源,尤其是針對(duì)深層次目錄下的文件進(jìn)行訪問(wèn)。在海量小文件場(chǎng)景下,大量深層次文件的檢索直接劣化了open()操作的效率。

隨著IT信息科技的發(fā)展,針對(duì)海量小文件場(chǎng)景已經(jīng)推出了對(duì)象存儲(chǔ)。與傳統(tǒng)存儲(chǔ)不同,對(duì)象存儲(chǔ)在體系結(jié)構(gòu)上更加扁平,OIDs映射Object對(duì)象,直接通過(guò)唯一標(biāo)識(shí)定位文件,不論訪問(wèn)什么數(shù)據(jù),都能實(shí)高效響應(yīng),既解決了文件系統(tǒng)體系結(jié)構(gòu)的低效,又屏蔽了文件目錄深度帶來(lái)的巨大開(kāi)銷。

然而,使用對(duì)象存儲(chǔ)雖然優(yōu)化了海量小文件場(chǎng)景的訪問(wèn)效率問(wèn)題,但作為非結(jié)構(gòu)化文件的主存儲(chǔ)也會(huì)面臨些許問(wèn)題:數(shù)據(jù)保護(hù)手段薄弱、主流備份軟件對(duì)對(duì)象存儲(chǔ)的備份支持尚未完善、無(wú)法實(shí)現(xiàn)全功能數(shù)據(jù)保護(hù)等。雖然可以借助對(duì)象存儲(chǔ)的跨域復(fù)制形成數(shù)據(jù)冗余,但不滿足監(jiān)管單位對(duì)關(guān)鍵數(shù)據(jù)離線保存的要求。同時(shí),不同于傳統(tǒng)NAS存儲(chǔ),對(duì)象存儲(chǔ)的讀寫(xiě)方式也發(fā)生了變化,因此涉及業(yè)務(wù)代碼改造。存儲(chǔ)更替的過(guò)程還涉及大量的業(yè)務(wù)數(shù)據(jù)遷移等。

且由傳統(tǒng)存儲(chǔ)切換到對(duì)象存儲(chǔ),對(duì)于企業(yè)的代價(jià)也是相當(dāng)大的。影像系統(tǒng)和打印系統(tǒng),都屬于保險(xiǎn)業(yè)務(wù)核心,多采用NAS存儲(chǔ)業(yè)務(wù)數(shù)據(jù),數(shù)十年的更迭都未曾改變。影像、打印系統(tǒng)牽一發(fā)而動(dòng)全身,若需更替存儲(chǔ),涉及大量業(yè)務(wù)代碼改造。影像、打印系統(tǒng)的割接也必須“一刀切”快速切換,無(wú)法容忍長(zhǎng)時(shí)間的業(yè)務(wù)中斷。

那么該如何優(yōu)化海量小文件呢?

海量小文件所在的環(huán)境及鏈路若未更改,優(yōu)化的范圍就相當(dāng)有限,唯有從海量小文件結(jié)構(gòu)入手,優(yōu)化實(shí)踐的思路大概分為三步:

(1)優(yōu)化目錄層次結(jié)構(gòu)。

深層次的目錄結(jié)構(gòu)極大劣化了IO效率,使得文件尋址定位消耗大量的系統(tǒng)資源。過(guò)深的目錄層次更加劇了海量小文件的歸檔難度。結(jié)合業(yè)務(wù)實(shí)際,我們對(duì)影像的存儲(chǔ)目錄進(jìn)行了最多6層級(jí)的設(shè)計(jì),以存儲(chǔ)掛載點(diǎn)目錄為根,第一級(jí)子目錄為渠道目錄,從不同渠道上傳、回寫(xiě)的數(shù)據(jù)存放至對(duì)應(yīng)目錄。第二級(jí)子目錄為業(yè)務(wù)功能目錄,建立各場(chǎng)景對(duì)應(yīng)的數(shù)據(jù)目錄,數(shù)據(jù)按照既定的規(guī)則寫(xiě)入。第三級(jí)至第六級(jí),分別對(duì)應(yīng)年—月—周,方便數(shù)據(jù)以時(shí)間單位歸檔。值得一提的是“周”目錄邏輯作了簡(jiǎn)化,我們始終以每月的1-7日為第一個(gè)周目錄,8-14為第二個(gè)周目錄,以此類推。

目錄層次的設(shè)計(jì)需要貼合業(yè)務(wù)實(shí)際。在我們的設(shè)計(jì)中,渠道目錄為第一級(jí)子目錄,兼顧了各渠道下的差異,方便各渠道已開(kāi)展的差異化業(yè)務(wù)都能有對(duì)應(yīng)數(shù)據(jù)存儲(chǔ)目標(biāo)。“周”目錄的設(shè)計(jì)沒(méi)有按照常規(guī)周的方式設(shè)置,直接規(guī)定7天為一個(gè)周目錄,保持最末子目錄的統(tǒng)一性,也屏蔽星期幾帶來(lái)的難度升級(jí)。

(2)冷熱分離、使用SSD緩存熱數(shù)據(jù),數(shù)據(jù)遇冷后轉(zhuǎn)移至NAS存儲(chǔ)。

冷熱分離能最大化生產(chǎn)實(shí)時(shí)業(yè)務(wù)的IO效率,實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)寫(xiě)入SSD上經(jīng)過(guò)優(yōu)化的目錄層次,小文件不會(huì)明顯大量堆積,IO效率保持穩(wěn)定。同時(shí)SSD高吞吐優(yōu)勢(shì),提供了冷熱分離操作的性能基礎(chǔ),分離時(shí)不會(huì)大幅降低實(shí)時(shí)業(yè)務(wù)IO。冷熱分離策略可通過(guò)腳本或者應(yīng)用完成,建議至少保證1個(gè)月的業(yè)務(wù)數(shù)據(jù)作為在線數(shù)據(jù)。

(3)數(shù)據(jù)歸檔。

數(shù)據(jù)歸檔是優(yōu)化的核心之一,其維系著SSD性能發(fā)揮與NAS存儲(chǔ)效率的平衡。數(shù)據(jù)由熱轉(zhuǎn)冷時(shí),同步進(jìn)行打包、壓縮、歸檔處理,進(jìn)在“周”目錄對(duì)冷數(shù)據(jù)目錄進(jìn)行打包壓縮,將小文件壓縮匯聚成大文件。離散的小文件數(shù)據(jù)都在“周”目錄層級(jí),打包壓縮后會(huì)大幅降低小文件的量級(jí),將離散的小文件轉(zhuǎn)換為數(shù)據(jù)塊連續(xù)的大文件,既方便數(shù)據(jù)歸檔離線,也大大提高了備份恢復(fù)的效率,如圖3。

360截圖16251112669372.png

圖3影像海量小文件優(yōu)化實(shí)踐示意圖

針對(duì)傳統(tǒng)共享存儲(chǔ)海量小文件場(chǎng)景,數(shù)據(jù)目錄結(jié)構(gòu)的設(shè)計(jì)存在局限性和可維護(hù)性差的劣勢(shì),有同行反饋可以借鑒一些中高端存儲(chǔ)的功能設(shè)計(jì),如:訪問(wèn)目錄優(yōu)化,大小IO識(shí)別,冷熱緩存,自動(dòng)歸檔等等特性。

在我們對(duì)影像、打印系統(tǒng)的海量小文件進(jìn)行治理時(shí),就想到了這些優(yōu)化手段并將其中的部分思路進(jìn)行了實(shí)踐,簡(jiǎn)單分享下我們的優(yōu)化心得:

1.數(shù)據(jù)目錄優(yōu)化

優(yōu)化前我們對(duì)影像、打印系統(tǒng)的業(yè)務(wù)邏輯和數(shù)據(jù)邏輯進(jìn)行了調(diào)研,涉及分支機(jī)構(gòu)、合作單位、各級(jí)渠道類別繁多,每家實(shí)現(xiàn)業(yè)務(wù)功能、交互數(shù)據(jù)有明顯區(qū)別。因此,我們結(jié)合系統(tǒng)實(shí)際重新設(shè)計(jì)了共享存儲(chǔ)的數(shù)據(jù)目錄結(jié)構(gòu),以渠道目錄為主要區(qū)分,按照業(yè)務(wù)功能做數(shù)據(jù)歸集,同時(shí)對(duì)業(yè)務(wù)功能內(nèi)數(shù)據(jù)按照“年-月-周”分類,減輕單一目錄下小文件聚集的問(wèn)題。目錄結(jié)構(gòu)的設(shè)計(jì)方法是多樣化的,怎么減輕目錄優(yōu)化給業(yè)務(wù)數(shù)據(jù)處理邏輯代碼的改動(dòng)最小才是關(guān)鍵。

2.大小IO識(shí)別

NAS存儲(chǔ)的大小IO識(shí)別功能,在海量小文件場(chǎng)景下發(fā)揮的效能十分有限,我們?cè)M(jìn)行簡(jiǎn)單測(cè)試,百萬(wàn)級(jí)別小文件隨機(jī)讀寫(xiě)效率在開(kāi)啟NAS IO優(yōu)化功能前后并沒(méi)有拉開(kāi)差距,這也說(shuō)明“IO數(shù)據(jù)流”讀寫(xiě)效率并不是海量小文件的根因。

由于共享目錄的數(shù)據(jù)讀寫(xiě)已經(jīng)是在文件系統(tǒng)層之上的實(shí)現(xiàn),做大小IO智能識(shí)別就不現(xiàn)實(shí)了,但這也給我們提供了一種思路:可以把小文件的隨機(jī)IO聚合成大文件的連續(xù)IO。在數(shù)據(jù)目錄優(yōu)化之后,根據(jù)各系統(tǒng)模塊對(duì)歷史數(shù)據(jù)保留的需求,對(duì)“年”“月”“周”目錄進(jìn)行周期性打包壓縮,方便后續(xù)對(duì)歷史數(shù)據(jù)的處理。

3.冷熱緩存

在共享存儲(chǔ)IO優(yōu)化的測(cè)試后,我們緊跟了冷熱分層的緩存功能測(cè)試,測(cè)試效果如預(yù)期一致,也沒(méi)有明顯改善。在這一部分,我們想到了在OS層面做了冷熱分離,近期數(shù)據(jù)在SSD磁盤(pán)上,歷史數(shù)據(jù)在NAS上。這種冷熱存儲(chǔ)分層的優(yōu)化,并沒(méi)有改變小文件的存取效率,但提供了對(duì)歷史數(shù)據(jù)打包、壓縮、歸檔以及備份等綜合處理的性能基礎(chǔ)。

4.自動(dòng)歸檔

歸檔最初的設(shè)計(jì)是針對(duì)歷史數(shù)據(jù)的永久性保存,將時(shí)間久遠(yuǎn)的歷史數(shù)據(jù)處理完成后轉(zhuǎn)存至NAS上,再由備份恢復(fù)軟件進(jìn)行離線出庫(kù)。后來(lái)根據(jù)業(yè)務(wù)的調(diào)研,發(fā)現(xiàn)可以將部分非實(shí)時(shí)數(shù)據(jù)異步處理后歸檔至NAS,進(jìn)一步減緩海量小文件的發(fā)生。熱數(shù)據(jù)轉(zhuǎn)冷后一連串的打包、壓縮、歸檔,我們使用統(tǒng)一的定制化腳本實(shí)現(xiàn)或直接由應(yīng)用程序的數(shù)據(jù)處理部分代碼實(shí)現(xiàn),若操作失敗則發(fā)送告警信息。離線出庫(kù)也是如此,正式備份前會(huì)調(diào)用特定腳本去檢查數(shù)據(jù)的完整性,若缺失數(shù)據(jù)目錄也告警通知負(fù)責(zé)人介入。

結(jié)束語(yǔ)

金融行業(yè)的信息化,有其對(duì)數(shù)據(jù)一致性及安全性等方面的共性要求,同時(shí)因?yàn)椴煌瑧?yīng)用場(chǎng)景下的交易行為存在差異,因此必然對(duì)存儲(chǔ)架構(gòu)組成、讀寫(xiě)性能、安全配置等方面有所區(qū)別。根據(jù)各自的應(yīng)用場(chǎng)景特點(diǎn)選擇適合業(yè)務(wù)的存儲(chǔ)平臺(tái)已經(jīng)成為大家的共識(shí)。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論