五分鐘看懂分布式存儲(chǔ)架構(gòu)及金融應(yīng)用
發(fā)布時(shí)間:2021-05-04作者:小編閱讀:0
一、什么是分布式存儲(chǔ)
在一個(gè)環(huán)境當(dāng)中,有很多的服務(wù)器,上面配有很多塊硬盤。然后通過軟件的形式把若干服務(wù)器資源都收集起來(lái),在這個(gè)邏輯的軟件里可以同時(shí)看到若干服務(wù)器的磁盤空間,這個(gè)邏輯的軟件對(duì)外就像是一個(gè)整體,是一個(gè)存儲(chǔ)池。用戶有一天需要用這個(gè)空間了,可以直接去找這個(gè)存儲(chǔ)池提供的接口。這樣的話,用戶保存一個(gè)文件,實(shí)際上是保存在若干個(gè)服務(wù)器里,文件會(huì)隨機(jī)存到一個(gè)服務(wù)器的某一塊硬盤里,下一次就可能存到另一個(gè)服務(wù)器的某一塊硬盤里。以此類推,它會(huì)把文件進(jìn)行打散,分成不同的小塊,每塊存放的位置可能是不同的服務(wù)器上的不同硬盤,這便是分布式存儲(chǔ)的理念。
二、集中式存儲(chǔ)和分布式存儲(chǔ)的區(qū)別
集中式:由一臺(tái)或多臺(tái)設(shè)備組成中心節(jié)點(diǎn),數(shù)據(jù)集中存儲(chǔ)于這個(gè)中心節(jié)點(diǎn)中,并且整個(gè)系統(tǒng)的所有業(yè)務(wù)單元都集中部署在這個(gè)中心節(jié)點(diǎn)上。集中式是一直以來(lái)普遍應(yīng)用的傳統(tǒng)架構(gòu),由于IO路徑短、性能較高且技術(shù)成熟,一般應(yīng)用于對(duì)IO延時(shí)要求嚴(yán)格的核心業(yè)務(wù)場(chǎng)景,這項(xiàng)優(yōu)勢(shì)在目前技術(shù)條件下是無(wú)可替代的。但缺點(diǎn)就是核心部件集中,冗余性和擴(kuò)展能力較差。
圖一:集中式存儲(chǔ)架構(gòu)
分布式:將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上,采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)載,利用位置服務(wù)器定位存儲(chǔ)信息。節(jié)點(diǎn)間采用萬(wàn)兆網(wǎng)絡(luò),對(duì)硬件無(wú)特殊要求,成本較低,擴(kuò)展能力強(qiáng)。同時(shí)可以靈活配置故障與副本策略,擁有自動(dòng)重平衡能力。但延遲高、數(shù)據(jù)一致性問題也是其缺點(diǎn)和難點(diǎn)所在。
圖二:分布式存儲(chǔ)架構(gòu)
關(guān)于數(shù)據(jù)一致性問題,想象一個(gè)最簡(jiǎn)單的存儲(chǔ)場(chǎng)景:只有一個(gè)客戶端和一個(gè)服務(wù)端。客戶端順序發(fā)起讀寫操作,服務(wù)端也順序處理每個(gè)請(qǐng)求,那么無(wú)論從服務(wù)器視角還是從客戶端視角,每一個(gè)操作都可以看到前一個(gè)操作的結(jié)果。然后,讓環(huán)境變的復(fù)雜一些,還是單個(gè)服務(wù)進(jìn)程,但是有多個(gè)客戶端并發(fā)進(jìn)行操作。這個(gè)模型下,多個(gè)客戶端的操作會(huì)互相影響,比如一個(gè)客戶端會(huì)讀到不是自己寫的數(shù)據(jù)(另一個(gè)客戶端寫入的)。進(jìn)而,系統(tǒng)向另外一個(gè)方向變的復(fù)雜一些,為了讓后端存儲(chǔ)系統(tǒng)更豐富,我們可以讓兩個(gè)不同的服務(wù)進(jìn)程(位于不同的設(shè)備上)同時(shí)存儲(chǔ)同一份數(shù)據(jù)的拷貝。最后,通過某種同步機(jī)制讓這兩個(gè)拷貝的數(shù)據(jù)保持一致。這就是我們所說的“多副本”。多副本帶來(lái)了數(shù)據(jù)的可靠性,同時(shí)也帶來(lái)了一致性方面的問題。
以開源存儲(chǔ)Ceph為例,它是一種集性能、可靠性和可擴(kuò)展性多項(xiàng)優(yōu)勢(shì)的分布式存儲(chǔ)系統(tǒng)。它可以提供塊存儲(chǔ)、文件系統(tǒng)和對(duì)象存儲(chǔ)。在Ceph的三副本冗余方式中,數(shù)據(jù)寫入請(qǐng)求最終是要發(fā)送給三個(gè)副本,不過這三個(gè)副本建立了一種“一主兩從”的主從關(guān)系。數(shù)據(jù)在三個(gè)副本節(jié)點(diǎn)上寫入的時(shí)候,都會(huì)先以直寫方式寫入本地Journal,然后再以非直寫的方式寫入數(shù)據(jù)盤。這樣就在一定程度上保證了副本間的數(shù)據(jù)一致性。在發(fā)生異常時(shí),通常會(huì)出現(xiàn)以下三種情況。
情況一:在IO過程中,主副本在規(guī)定的時(shí)間內(nèi)沒有收到副本應(yīng)答,那么主OSD(ObjectStorageDevice)會(huì)先發(fā)起heartbeat。確認(rèn)副本失聯(lián)后,主OSD會(huì)將副本down的信息同步給MON,而后主OSD會(huì)發(fā)起Peering。在peering前,主OSD會(huì)將未完成的IO請(qǐng)求requeue,副本選好后,主OSD會(huì)重新發(fā)起IO。
情況二:在IO過程中,主副本失效,其他副本也會(huì)檢測(cè)到主副本down,然后會(huì)發(fā)起peering,將某個(gè)副本臨時(shí)選為主副本并提交requeueIO請(qǐng)求,然后重新發(fā)起IO。
情況三:在發(fā)送IO請(qǐng)求前主OSD失效,那么等peering完成后,客戶端會(huì)重新獲取OSDMap,再次發(fā)送請(qǐng)求。
圖三:Ceph-Rados架構(gòu)
三、分布式存儲(chǔ)的應(yīng)用場(chǎng)景
目前,應(yīng)用較為廣泛的分布式存儲(chǔ)當(dāng)屬分布式對(duì)象存儲(chǔ)。常見的對(duì)象存儲(chǔ)有Ceph的RADOS、Openstack的swift、AWS的S3等。對(duì)象存儲(chǔ)采用扁平的組織方式,支持restful的訪問接口。
圖四:對(duì)象存儲(chǔ)架構(gòu)
G行的影像存儲(chǔ)業(yè)務(wù),為典型的非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)平臺(tái)。由于業(yè)務(wù)發(fā)展、容量需求、成本考慮及技術(shù)更新等因素,經(jīng)過全面調(diào)研,篩選成熟的架構(gòu)改造方案,由之前的傳統(tǒng)的集中式存儲(chǔ)模式,成功部署到分布式對(duì)象存儲(chǔ)架構(gòu)。該套系統(tǒng)硬件部署實(shí)施單中心8節(jié)點(diǎn),采用糾刪碼容錯(cuò)機(jī)制,配比為6+2,允許單中心最多同時(shí)兩個(gè)節(jié)點(diǎn)故障,不影響業(yè)務(wù)數(shù)據(jù)讀取。通過雙活數(shù)據(jù)同步,雙機(jī)房間采用鏡像副本模式,每個(gè)數(shù)據(jù)中心都有一份數(shù)據(jù)副本,單中心故障時(shí)數(shù)據(jù)仍有一份完整備份。
糾刪碼容錯(cuò)技術(shù)的理念就是將丟失的數(shù)據(jù)算回來(lái)。當(dāng)冗余級(jí)別為n+m時(shí),從n個(gè)源數(shù)據(jù)塊中計(jì)算出m個(gè)的校驗(yàn)塊,將這n+m個(gè)數(shù)據(jù)塊分別存放在n+m個(gè)硬盤上,就能容忍任意m個(gè)硬盤故障;硬盤故障時(shí),只需任意選取n個(gè)正常的數(shù)據(jù)塊就能計(jì)算得到所有的源數(shù)據(jù)。如果將n+m個(gè)數(shù)據(jù)塊分散在不同的存儲(chǔ)節(jié)點(diǎn)上,那么就能容忍m個(gè)節(jié)點(diǎn)故障。
圖五:糾刪碼
相較于多副本模式,以上述6塊數(shù)據(jù)盤的環(huán)境為例,6+2的糾刪碼的開銷只有8塊,但三副本模式存儲(chǔ)開銷為6*3=18塊盤。所以,糾刪碼能夠以較低的存儲(chǔ)空間為代價(jià)獲得相似的可靠性,減少硬件、運(yùn)維管理成本。并且,由于糾刪碼編碼速度在近年得到迅猛提升,糾刪碼容錯(cuò)技術(shù)是一種性價(jià)比很高的選擇。
新的分布式對(duì)象存儲(chǔ)架構(gòu),實(shí)現(xiàn)了分布式資源、存儲(chǔ)的彈性擴(kuò)展,很大程度上減小了容量的壓力并有效的節(jié)約了成本的投入。運(yùn)行效率上,大大降低了存取對(duì)象的時(shí)延,提高檢索效率,提升業(yè)務(wù)水平。
雖然對(duì)象存儲(chǔ)架構(gòu)有著高性能、高可靠性的特性,成本較傳統(tǒng)架構(gòu)也很有優(yōu)勢(shì),但作為相對(duì)新型架構(gòu)在穩(wěn)定性,性能要求上仍需充分測(cè)試。隨著對(duì)象存儲(chǔ)技術(shù)的發(fā)展和完善,設(shè)備微碼的優(yōu)化和更新,運(yùn)維人員的技術(shù)水平也需不斷提高。
四、金融行業(yè)對(duì)于分布式存儲(chǔ)的選擇
當(dāng)下是金融科技信息化迅猛發(fā)展的時(shí)代,存儲(chǔ)系統(tǒng)的可靠性、安全性是銀行存儲(chǔ)系統(tǒng)的底線。對(duì)分布式存儲(chǔ)的選擇我認(rèn)為應(yīng)該從兩大維度考量:
1、業(yè)務(wù)運(yùn)行維度
(1)運(yùn)行環(huán)境:在這個(gè)虛擬化、云平臺(tái)、容器已在各家銀行發(fā)展運(yùn)行的相當(dāng)成熟的環(huán)境下,分布式存儲(chǔ)更應(yīng)具備良好的兼容性。即一方面能夠滿足穩(wěn)定的傳統(tǒng)業(yè)務(wù),另一方面還能夠支持靈活的創(chuàng)新業(yè)務(wù)。
(2)性能水平:信息的爆炸性增長(zhǎng)給存儲(chǔ)容量、性能也帶來(lái)了巨大的挑戰(zhàn)。分布式存儲(chǔ)雖然可以實(shí)現(xiàn)性能伴隨容量增長(zhǎng)而增長(zhǎng),但是同樣需要智能緩存、全閃盤等技術(shù)的加持。
(3)服務(wù)能力:銀行業(yè)務(wù)正在不斷深入客戶的業(yè)務(wù)場(chǎng)景從而提升服務(wù)能力。這就需要存儲(chǔ)不僅能夠提供標(biāo)準(zhǔn)的塊、文件、對(duì)象服務(wù),還能夠兼?zhèn)涠喾N數(shù)據(jù)處理和服務(wù)能力,例如檢索服務(wù)、大數(shù)據(jù)服務(wù)、備份服務(wù)等。
2、運(yùn)維管理維度
(1)可用性:存儲(chǔ)應(yīng)能夠長(zhǎng)期滿足性能要求。目前普遍的存儲(chǔ)使用方式通常建設(shè)為存儲(chǔ)池,即一套存儲(chǔ)同時(shí)給多個(gè)業(yè)務(wù)系統(tǒng)使用。分布式存儲(chǔ)可通過采用配額、用戶QoS等多種技術(shù)手段以保證核心業(yè)務(wù)的存儲(chǔ)服務(wù)需求,滿足不同業(yè)務(wù)的SLA要求。
(2)可靠性:主要是指存儲(chǔ)服務(wù)穩(wěn)定運(yùn)行時(shí)長(zhǎng),包括服務(wù)中斷的頻率,以及服務(wù)中斷后恢復(fù)的速度等要求。常見的存儲(chǔ)數(shù)據(jù)保護(hù)技術(shù)有快照、克隆、同步復(fù)制/異步復(fù)制、雙活等。分布式存儲(chǔ)遵循CAP原則,優(yōu)先滿足C和P,保證數(shù)據(jù)的強(qiáng)一致性,通常要求支持副本、糾刪碼、多版本、CDP(連續(xù)數(shù)據(jù)保護(hù))等。
(3)可擴(kuò)展性:數(shù)據(jù)的爆發(fā)增長(zhǎng)使得擴(kuò)容變成存儲(chǔ)運(yùn)維的經(jīng)常性操作。作為分布式架構(gòu)的存儲(chǔ),天生就具備良好的橫向擴(kuò)展基因,可支持超大型數(shù)據(jù)中心成千上萬(wàn)個(gè)節(jié)點(diǎn)的規(guī)模,靈活的在線擴(kuò)縮,真正實(shí)現(xiàn)了按需使用和調(diào)配。
(4)安全性:當(dāng)下信息安全事件頻發(fā),對(duì)于存儲(chǔ)的安全性要求也越來(lái)越高。分布式存儲(chǔ)主要是通過以太網(wǎng)提供服務(wù),因此應(yīng)該具備傳輸加密和數(shù)據(jù)加密的能力,具備完善的權(quán)限管理機(jī)制。同時(shí)為滿足審計(jì)的要求,還應(yīng)具備操作記錄、日志審計(jì)等功能。
(5)維護(hù)性:分布式存儲(chǔ)應(yīng)能提供多種自動(dòng)化管理手段,例如容量預(yù)測(cè)、故障預(yù)測(cè)、自動(dòng)巡檢等。還有同傳統(tǒng)集中式存儲(chǔ)設(shè)備一樣的生命周期問題,設(shè)備更替而導(dǎo)致的數(shù)據(jù)遷移等,一直都是存儲(chǔ)運(yùn)維中的高風(fēng)險(xiǎn)運(yùn)維難題,分布式存儲(chǔ)的分布式架構(gòu)設(shè)計(jì)可以很好的解決這個(gè)難題。
五、分布式存儲(chǔ)的展望
隨著計(jì)算機(jī)系統(tǒng)規(guī)模日漸龐大,信息技術(shù)的發(fā)展以及人類生活的智能化帶來(lái)數(shù)據(jù)的爆炸性增長(zhǎng),數(shù)據(jù)正成為世界上最有價(jià)值的資源。將所有業(yè)務(wù)系統(tǒng)集中部署在一個(gè)或者若干個(gè)主機(jī)上的體系架構(gòu)已經(jīng)逐漸不能滿足當(dāng)今計(jì)算機(jī)系統(tǒng)的需求,尤其是大型互聯(lián)網(wǎng)系統(tǒng)的快速發(fā)展,各種靈活多變的系統(tǒng)架構(gòu)模型層出不窮。同時(shí),越來(lái)越多高性價(jià)比的PC機(jī)成為了各大IT企業(yè)架構(gòu)的首選,分布式的處理方式越來(lái)越受到業(yè)界的青睞。雖然分布式架構(gòu)的優(yōu)點(diǎn)多多,節(jié)點(diǎn)數(shù)量可擴(kuò)展性有著巨大優(yōu)勢(shì),但成也“擴(kuò)展”敗也“擴(kuò)展”。要做到可擴(kuò)展,就必然要拉開距離,距離有了,延遲就必然會(huì)增大。相較之下,集中式存儲(chǔ)低延遲的特性又變得極為重要。所以,在低延遲的場(chǎng)景下,集中式存儲(chǔ)的架構(gòu)設(shè)計(jì)依舊會(huì)延續(xù)下去,但是容量型存儲(chǔ)將會(huì)逐漸被分布式存儲(chǔ)所替代,這才是分布式存儲(chǔ)主攻的方向。分布式存儲(chǔ),不僅提高了存儲(chǔ)空間的利用率,還實(shí)現(xiàn)了彈性擴(kuò)展,降低了運(yùn)營(yíng)成本,避免了資源浪費(fèi),更加適合未來(lái)的數(shù)據(jù)時(shí)代場(chǎng)景。
感謝各位的閱讀!關(guān)于五分鐘看懂分布式存儲(chǔ)架構(gòu)及金融應(yīng)用這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),請(qǐng)聯(lián)系站長(zhǎng)郵箱:shawn.lee@eliancloud.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。
標(biāo)題:五分鐘看懂分布式存儲(chǔ)架構(gòu)及金融應(yīng)用
TAG標(biāo)簽:
地址:http://www.dangdangload.com/article/20210430193401.html