本文來(lái)自微信公眾號(hào)“twt企業(yè)IT社區(qū)”,作者/孫偉光,某金融科技公司資深集成工程師。
一、交易類數(shù)據(jù)特征與IO特點(diǎn)
交易數(shù)據(jù)一般指的是各個(gè)行業(yè)在業(yè)務(wù)運(yùn)營(yíng)過(guò)程中內(nèi)部或外部事件的交易記錄,多以事務(wù)數(shù)據(jù)(Transactional Data)為主,例如:銷售訂單、轉(zhuǎn)賬交易流水、通話記錄等數(shù)據(jù)。有的業(yè)務(wù)同時(shí)還會(huì)產(chǎn)生一部分如影像票據(jù)之類的非結(jié)構(gòu)化數(shù)據(jù),這類非結(jié)構(gòu)化數(shù)據(jù)來(lái)自業(yè)務(wù)流程中產(chǎn)生的掃描票據(jù)、保單等業(yè)務(wù)憑證,隨著業(yè)務(wù)的發(fā)展,其數(shù)據(jù)量迅速增長(zhǎng)。這類非結(jié)構(gòu)化數(shù)據(jù)具有和交易數(shù)據(jù)(結(jié)構(gòu)化數(shù)據(jù))所不同的文件小、數(shù)量大、空間占用多等特點(diǎn)。
結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)架構(gòu)一般采用共享集群架構(gòu),全共享式數(shù)據(jù)集中的緊耦合集群架構(gòu)是一種既有Scale Out橫向擴(kuò)展能力也有Scale Up縱向擴(kuò)展能力的系統(tǒng)架構(gòu)。既支持緊耦合的聯(lián)機(jī)交易處理,也能保證實(shí)時(shí)信息的真實(shí)可靠性,同時(shí)無(wú)需通過(guò)應(yīng)用層跨系統(tǒng)的措施來(lái)保證數(shù)據(jù)和交易的一致性,而且在應(yīng)用時(shí)不需要考慮跨數(shù)據(jù)源的完整性、恢復(fù)性等。因此對(duì)于應(yīng)用的開發(fā)人員來(lái)說(shuō),節(jié)省了許多集成層面和管理層面的煩惱。如表1所示。
表1:交易類數(shù)據(jù)架構(gòu)對(duì)比
二、交易類數(shù)據(jù)生命周期特點(diǎn)
日常生活中我們每個(gè)人都是數(shù)據(jù)的生產(chǎn)者,每天通過(guò)參與各種業(yè)務(wù)產(chǎn)生海量的交易業(yè)務(wù)數(shù)據(jù),但并非所有的數(shù)據(jù)都會(huì)完整地經(jīng)歷整個(gè)生命周期,數(shù)據(jù)產(chǎn)生、傳輸、存儲(chǔ)、處理、刪除所經(jīng)歷的生命周期是由實(shí)際的業(yè)務(wù)場(chǎng)景所決定的。
圖1:交易類數(shù)據(jù)生命周期圖
如圖1所示,交易產(chǎn)生的數(shù)據(jù)隨著業(yè)務(wù)流程進(jìn)入到云平臺(tái)存儲(chǔ)池的不同存儲(chǔ)區(qū)域(例如高速閃存存儲(chǔ)池、分布式存儲(chǔ)池、對(duì)象存儲(chǔ)池等),隨后根據(jù)業(yè)務(wù)和管理需求,部分?jǐn)?shù)據(jù)又被重新利用進(jìn)入到其他存儲(chǔ)區(qū)域,有的用來(lái)備份歸檔、有的用來(lái)參與大數(shù)據(jù)分析和報(bào)表、有的則用作開發(fā)測(cè)試數(shù)據(jù),最終直至數(shù)據(jù)被刪除消失。
生產(chǎn)數(shù)據(jù)通常被定義為三種類型:
在線數(shù)據(jù):業(yè)務(wù)系統(tǒng)需要隨時(shí)調(diào)用、頻繁讀寫的熱點(diǎn)數(shù)據(jù)。
近線數(shù)據(jù):業(yè)務(wù)系統(tǒng)訪問(wèn)頻率較低,但要求具備能夠隨時(shí)提供訪問(wèn)能力的數(shù)據(jù)。
離線數(shù)據(jù):業(yè)務(wù)系統(tǒng)幾乎不訪問(wèn),法規(guī)要求長(zhǎng)期保存的數(shù)據(jù)。
為實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)生命周期管理,分級(jí)存儲(chǔ)通常會(huì)分為在線存儲(chǔ)、近線存儲(chǔ)和離線存儲(chǔ)3種模式,并從物理承載方式上分為以下三個(gè)級(jí)別:
1)在線存儲(chǔ):一般采用高端SAN架構(gòu)閃存磁盤系統(tǒng)(高IOPS,主要是SSD固態(tài)硬盤或高速SAS盤),承載需要頻繁讀取、快速訪問(wèn)的數(shù)據(jù)及關(guān)鍵應(yīng)用的核心生產(chǎn)業(yè)務(wù)數(shù)據(jù)。
2)近線存儲(chǔ):一般采用中低速大容量磁盤(SATA/低速SAS盤),承載訪問(wèn)頻度較低但仍會(huì)被隨機(jī)讀寫的數(shù)據(jù)。近線存儲(chǔ)模式的要求是尋址迅速、傳輸率高,因此其對(duì)讀寫性能要求較低,但由于數(shù)據(jù)體量一般較大,其對(duì)容量要求較高。
3)離線存儲(chǔ):一般選用物理磁帶,承載近線存儲(chǔ)環(huán)境中達(dá)到一定保存時(shí)限需要進(jìn)行歸檔的長(zhǎng)期歷史數(shù)據(jù),以防范可能發(fā)生的數(shù)據(jù)災(zāi)難。
三、存儲(chǔ)架構(gòu)選型依據(jù)和方法論
云環(huán)境下來(lái)自于IT基礎(chǔ)架構(gòu)和業(yè)務(wù)方面訴求已經(jīng)是當(dāng)下構(gòu)建存儲(chǔ)架構(gòu)以及存儲(chǔ)選型的重要依據(jù)。當(dāng)前,IT技術(shù)層面存在一些典型且突出的問(wèn)題:例如,存儲(chǔ)設(shè)備繁多孤立、資源利用率不高、多廠商存儲(chǔ)設(shè)備共存、日常運(yùn)維管理難度大、存儲(chǔ)日常維護(hù)管理復(fù)雜等,管理存儲(chǔ)往往需要通過(guò)多個(gè)控制臺(tái)去管理存儲(chǔ),經(jīng)常需要對(duì)數(shù)據(jù)或者存儲(chǔ)進(jìn)行遷移擴(kuò)容。由于各個(gè)業(yè)務(wù)系統(tǒng)使用的都是單一存儲(chǔ),因此存儲(chǔ)性能和容量也很難做出整體可靠有效的評(píng)估。
而在云環(huán)境下,業(yè)務(wù)的訴求主要體現(xiàn)在以下幾個(gè)方面:一是存儲(chǔ)系統(tǒng)難以支撐業(yè)務(wù)快速變化的要求,應(yīng)對(duì)存儲(chǔ)容量的快速增長(zhǎng);二是存儲(chǔ)系統(tǒng)需要靈活的資源調(diào)配和資源擴(kuò)展;三是存儲(chǔ)性能需要進(jìn)一步優(yōu)化,以縮短業(yè)務(wù)交易處理時(shí)間;四是業(yè)務(wù)系統(tǒng)需要對(duì)數(shù)據(jù)進(jìn)行再利用,用多重保護(hù)技術(shù)來(lái)保證業(yè)務(wù)數(shù)據(jù)可回溯性。
根據(jù)當(dāng)前面臨的問(wèn)題和業(yè)務(wù)訴求,筆者整理了一些通用的存儲(chǔ)選型方法論,希望給同行帶來(lái)參考:
圖2:存儲(chǔ)選型方法論
如圖2所示的存儲(chǔ)選型方法論可以作為云平臺(tái)存儲(chǔ)架構(gòu)選型上的參考依據(jù),而對(duì)于交易數(shù)據(jù)存儲(chǔ),在云平臺(tái)存儲(chǔ)架構(gòu)選型中,到底是選擇分布式存儲(chǔ)還是SAN/NAS存儲(chǔ),要依據(jù)存儲(chǔ)數(shù)據(jù)服務(wù)的種類來(lái)做出判斷,需要考慮以下幾個(gè)問(wèn)題:
1)是塊存儲(chǔ)還是文件存儲(chǔ)?
2)對(duì)性能要求比較高的應(yīng)用如OLTP,以及對(duì)存儲(chǔ)空間有著高要求的互聯(lián)網(wǎng)應(yīng)用應(yīng)該如何從應(yīng)用角度去評(píng)估性能和容量?
3)通過(guò)何種技術(shù)手段來(lái)實(shí)現(xiàn)99.999%的高可用性,是可靠的硬件還是有效的系統(tǒng)管理手段?
4)如何在保障交易數(shù)據(jù)數(shù)據(jù)安全情況下實(shí)現(xiàn)在云環(huán)境上數(shù)據(jù)安全性、數(shù)據(jù)加密……等等。
四、構(gòu)建云環(huán)境下交易類數(shù)據(jù)存儲(chǔ)設(shè)計(jì)最佳實(shí)踐
云數(shù)據(jù)中心建設(shè)目標(biāo)要滿足業(yè)務(wù)連續(xù)性總體要求,結(jié)構(gòu)化數(shù)據(jù)一般采用高端SAN全閃存儲(chǔ)架構(gòu)。對(duì)于非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)架構(gòu),一般采用自建或者商業(yè)化分布式存儲(chǔ)或NAS存儲(chǔ)。云計(jì)算存儲(chǔ)資源池在架構(gòu)設(shè)計(jì)上要充分考慮結(jié)構(gòu)化數(shù)據(jù)(數(shù)據(jù)庫(kù))和非結(jié)構(gòu)化數(shù)據(jù)(影像文件)的存儲(chǔ)需求。
在分布式存儲(chǔ)的架構(gòu)下,如果業(yè)務(wù)需求ACID,則需要從應(yīng)用層面滿足。應(yīng)用的復(fù)雜度或帶來(lái)業(yè)務(wù)處理流程的復(fù)雜度。分級(jí)存儲(chǔ)是優(yōu)化存儲(chǔ)資源利用率和性價(jià)比的重要技術(shù)手段。
分級(jí)存儲(chǔ)策略是提高存儲(chǔ)資源利用率以達(dá)到性價(jià)比最大化、集約化管理的有效手段。根據(jù)數(shù)據(jù)的實(shí)時(shí)性、訪問(wèn)頻度、存儲(chǔ)時(shí)長(zhǎng)等因素,從管理策略、存儲(chǔ)介質(zhì)性能兩個(gè)角度出發(fā),實(shí)現(xiàn)多層次、跨越不同數(shù)據(jù)生命周期的數(shù)據(jù)存儲(chǔ)及管理,通過(guò)將訪問(wèn)頻度較低的數(shù)據(jù)自動(dòng)遷移至存儲(chǔ)層次中較低配置的層次,釋放出較高成本的高速存儲(chǔ)空間給更頻繁訪問(wèn)的數(shù)據(jù),從而獲得更高的性價(jià)比。分級(jí)存儲(chǔ)策略的實(shí)現(xiàn)除考慮選配不同類別(SSD/SAS/SATA)磁盤的選取,還分為設(shè)備級(jí)分級(jí)存儲(chǔ)部署及磁盤級(jí)分級(jí)存儲(chǔ)部署。
圖3:不同業(yè)務(wù)應(yīng)用場(chǎng)景對(duì)存儲(chǔ)架構(gòu)需求特征分析
按照應(yīng)用需求、數(shù)據(jù)類型原則分成若干個(gè)資源池,分別為高端SAN存儲(chǔ)資源池、NAS存儲(chǔ)資源池、分布式存儲(chǔ)資源池及對(duì)象存儲(chǔ)池。根據(jù)應(yīng)用對(duì)IO的負(fù)載需求,可以將應(yīng)用分成不同的類型。輕量級(jí)、可分布式的應(yīng)用可整體部署在分布式存儲(chǔ)池中,重量級(jí)、緊耦合的應(yīng)用需考慮整體部署在高端SAN存儲(chǔ)池中。對(duì)于大部分應(yīng)用來(lái)說(shuō),可以將應(yīng)用進(jìn)行層次拆解,從不同層次來(lái)分析應(yīng)用的入池需求。
圖4:云平臺(tái)存儲(chǔ)資源池架構(gòu)圖
云平臺(tái)存儲(chǔ)資源池的架構(gòu)如圖4所示:
•高端SAN閃存池存儲(chǔ)主要用來(lái)存放所有生產(chǎn)業(yè)務(wù)系統(tǒng)結(jié)構(gòu)化數(shù)據(jù)
•中端存儲(chǔ)池主要用來(lái)X86服務(wù)器虛擬化的云平臺(tái)共享數(shù)據(jù)
•分布式存儲(chǔ)用來(lái)存儲(chǔ)所有業(yè)務(wù)系統(tǒng)的非結(jié)構(gòu)化性數(shù)據(jù)
•NAS或者對(duì)象存儲(chǔ)池用來(lái)存放相關(guān)的備份歸檔數(shù)據(jù)
以業(yè)務(wù)和應(yīng)用需求為導(dǎo)向的存儲(chǔ)架構(gòu)規(guī)劃,需考慮的要點(diǎn)是存儲(chǔ)需要有很好的兼容性、高性能、數(shù)據(jù)高可用、功能豐富、管理方便等的特點(diǎn)。
考慮到后端存儲(chǔ)架構(gòu)整體IO性能、穩(wěn)定性、組網(wǎng)復(fù)雜度、TCO等因素,在架構(gòu)設(shè)計(jì)中OLTP應(yīng)用建議選取SAN存儲(chǔ)技術(shù),NAS架構(gòu)作為SAN的有益補(bǔ)充,可以實(shí)現(xiàn)面向文件系統(tǒng)級(jí)別的數(shù)據(jù)共享及傳輸,采用NFS/CIFS數(shù)據(jù)傳輸協(xié)議,適用于共享文件訪問(wèn)及大量并發(fā)訪問(wèn)非結(jié)構(gòu)化數(shù)據(jù)(影像、文檔等)的相關(guān)系統(tǒng)(保單系統(tǒng)、OA檔案系統(tǒng)等),對(duì)于互聯(lián)網(wǎng)平臺(tái)大量海量非結(jié)構(gòu)數(shù)據(jù)建議采用對(duì)象存儲(chǔ)架構(gòu),通過(guò)科學(xué)合理的應(yīng)用存儲(chǔ)架構(gòu)來(lái)滿足未來(lái)多樣復(fù)雜的實(shí)際應(yīng)用需求。