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