計算存儲分離之「數據存儲高可用性設計」 - 基礎設施_CIO時代網...

2021-01-08 CIO時代網
  一、背景

  面對著業務的發展,不管是在線,近線還是離線系統,其所需要的存儲規模以及存儲成本,成倍上漲。如果還是採取傳統的分散式存儲管理方式,除了高昂的管理分散式存儲的成本,還會增加存儲成本。

  因此,我們極需一種既高效又省成本的數據存儲以及存儲管理方式。自然地,我們把目光聚焦到了分布式存儲系統上。

  從目前行業發展趨勢來看,各大網際網路公司都設計或者維護了自己的分布式存儲系統。如Google的GFS(Colossus 為GFS第二代分布式存儲系統),Facebook和LinkedIn的HDFS等。由此可見,分布式存儲也是大勢所趨。

  同樣在阿里,我們今年對資料庫進行計算存儲分離,面臨的難度也非常大。因此,我們也對各種分布式存儲進行了許多研究,開源的如Ceph,還有阿里雲的盤古等。

  我們緊跟業界以及開源社區,並不斷吸收其優秀成果;同時也做了大量的研究,測試和驗證。根據集團業務的特性,我們進行了許多軟體層面,甚至軟硬體結合的優化,為集團業務的發展賦能。

  分布式存儲系統所具備的優點就是為了克服傳統存儲方式的缺點。那麼,它將會給我們帶來哪些收益呢?

  二、分布式存儲的收益

  分布式存儲系統所帶來的收益主要體現在以下幾個方面。總體上來講,主要是降低存儲成本,同時也提高了資源的分配效率,助力計算資源的彈性調度。 

 2.1 解除機型配比

  一般性的,我們將伺服器分為兩部分,計算資源和存儲資源。計算資源如CPU和內存,計算資源的特點就是無狀態,資源分配比較靈活。存儲資源有狀態,需要保證數據的一致性和持久性,資源分配比較固定,會涉及到數據的遷移。如果數據量太大,就會遇到遷移性能的問題。

  傳統的存儲方式,是單臺伺服器類型的,將計算資源與存儲資源(HHD和SSD等存儲設備)綁定在一起。因此一臺機器CPU,內存與存儲設備比值都是固定的。這帶來的一個問題,就是我們會比較頻繁的改變我們的機型,因每年我們的計算資源與存儲資源的配比都在變化,業務數據的增長非常快。這也在某種程度上提高了每年採購機器的成本。

  引入分布式存儲系統後,解除了這兩者緊密耦合的現狀,使得降低存儲成本成為了可能。計算資源和存儲資源解耦後,各自可以按不同的策略進行過保,在一定程度上降低了成本。

  2.2 解決存儲碎片

  傳統分散式的存儲模型,必然會有存儲碎片問題的存在。因為每臺伺服器都會為線上業務預留一定的存儲空間,以滿足將來業務數據增長的需要。但是採用預留空間的方式會有一個問題,就是我們無法準確地評估真實的實際空間需求,往往預留的會比較多,業務實際需求與預留空間這兩者的差距就是存儲空間浪費量。

  這些伺服器殘留了獨立的10G,20G的空間碎片,在一定程度上也並不能滿足業務實例申請的規格,但將這些碎片合併在一起就能滿足業務所需。

  引入分布式存儲系統後,大大減少這種碎片,業務實際的數據存儲空間按需進行動態分配。我們引入數據增長趨勢分析,每天或者每周進行存儲在線動態擴容,以提高管理效率,降低存儲成本。

  2.3 計算資源彈性

  傳統資源配置下,我們的計算資源調度水平受限於單臺機器的存儲容量。在制定Docker容器化規格時,連同存儲容量一起考慮,其調度和資源分配算法異常複雜。當CPU,內存以及存儲容量這三者在某種程度上發生衝突時,往往會犧牲一定的存儲資本,來達成Docker實例規格的妥協。

  將計算資源與存儲資源分離後,計算資源得到解脫。我們在安排機器的過保時,採用不同的策略,降低機器採購成本。

  另外,計算資源是無狀態的,獨立之後,進行容器化,就可以方便的進行調度,提高效率。更重要的是,讓離在線混布成為一種可能或者讓其更高效。

  2.4 解決差異化需求

  某些新興業務,往往會呈現爆發式增長。自然而然,其數據量也會呈跳躍式的爆炸。此時對存儲的規格的需求就會比較大,因為業務短時間內往往來不及做架構優化,或者做數據分片來降低單機的數據存儲容量。這會給傳統的存儲模型帶來很大的挑戰,因為傳統的分散式的單臺伺服器的存儲容量已經不能滿足需求。

  分布式存儲系統破除了這種大存儲容量實例規格的天花板限制,業務不再關心底層存儲的實現,我們根據業務數據的增長趨勢分析,動態擴展存儲空間。

  三、面臨的問題

  儘管分布式存儲有上述的諸多優點,然而如何設計其高可用性,如何減少數據丟失的概率,是擺在我們面前必須要去克服的問題。那麼我們又是如何來架構和設計的呢?

  3.1 數據丟失

  在分布式存儲系統中,為了防止單機故障而造成數據丟失,往往會引入多個數據副本,我們稱之為replica set。此replica set中數據的副本個數用R來表示。一般的,R等於3,就表示是這份數據的存儲份數是「3」,也就是我們通常所說的 3-way replication。

  在隨機的模式下,有可能replica set的3份數據位於同一個rack中,那麼當此rack掉電就會導致數據丟失,對線上業務造成影響。隨著集群規模的變大,如果有超過1%的數據節點遭遇斷電,並且斷電之後又有一部分機器重起失敗,或者進程異常導致數據文件損壞;那麼其影響都將隨著集群規模的增長而變得異常嚴重,成為分布式存儲系統致命的問題。

  當然,我們可能通過增加數據的副本數即「replica set size」,來降低數據丟失的概率。又或者提高底層IDC以及網絡的高可用性,減少斷網或者網絡故障發生的概率。但是這些方法都是繞開問題的本質來優化的,另外帶來的存儲成本的增長也是不能接受的。

  早期,Facebook和LinkedIn在使用HDFS時,也同樣面臨這樣的問題,也做了這方面不少的驗證和測試。最終較為一個合理的方案就是通過合理安排replica set中數據存儲的位置來降低數據丟失的可能性。

  3.2 數據散射度

  為了能夠更好的理解數據副本存儲位置(data locality),我們引入數據散射度(scatter width)的概念。怎麼來理解數據散射度?

  假設一個集群,有N個節點,數據副本replica set size為R,那麼數據散射度最差的情況就是從N個節點中任意取R個的組合數,也就是C(N,R)。我們假定N為「9」,R為「3」。

  舉個例子:我們定義三個copy set(存放的都是不同的數據):{1,2,3},{4,5,6},{7,8,9}。任意一組copy set中存放的數據沒有重複,也就是說一份數據的三個副本分別放置在:{1,4,7}或者{2,5,8}或者{3,6,9}。那麼這個時候,我們稱之為其數據散射度S為「3」,遠小於隨機組合的C(9,3)。

  隨機組合時,任意3臺機器Down機都會存在數據丟失。而採用Copy Set方案後,只有當{1,4,7}或者{2,5,8}或者{3,6,9}其中的任意一個組合不可用時,才會影響高可用性,才會有數據丟失。

  綜上可知,我們引入copy set的目標就是儘量的降低數據散射度「S」。

  但是現實遠非這麼簡單,當我們降低數據散射度後,其數據恢復速度變小,也就是說恢復時間變長。因此,我們必須在數據散射度「S」和恢復速度中找到一個平衡。

  四、高可用性設計

  一般地,業務統一用N個「9」來表示一個分布式系統的高可用性。一般業界做得好的,都已經能達到9個「9」。那麼,我們的分布存儲系統又如何來設計,又能達到多個「9」呢?

  4.1 OSD Domain

  默認的OSD節點bucket是基於Host的,也就是說取決於一臺機器上存儲設備的數量。如下圖所示,一臺Host上面有4個OSD(device,如HDD或SSD等)。所以在集群存儲數據時,會尋找數據存放位置。

  首先會將Primary放入到Host0的四個節點中,即{0,1,2,3}。同一組中的OSD會根據權重進行平衡。另外兩個副本按同樣的權重計算方法放到Host1和Host2中。從總上來看,就是三份數據分別放到Host0,Host1和Host2上面,在每一個Host中數據均勻的分布在4個OSD節點上。

  當Host0中的OSD 0節點(存儲設備)掛掉,會做兩個事情:

  會從Host0中剩餘的OSD節點中,找可替代節點,將新增數據寫到剩餘的節點中

  當OSD 0恢復時,會將Host0其它OSD節點中剛才新增的數據copy回OSD 0,這個叫recovery的backfill過程

  我們的目的,就是減少recovery時backfill的時間。所以如果一個Host下面的OSD節點越多,就會有越多的節點參加backfill,恢復速度就會越快。一般單臺機器的存儲設備掛載都是有限制的,我們很快就會遇到瓶頸。另外,目前的SSD 128K的寫入速度也在400-500M/s之間,跟我們的目標相比,並不算太高。

  基於此,我們計了OSD domain,它擺脫了單臺機器的設備掛載量限制。如下所示,其中黃色虛線框中的OSD都在同一個OSD domain中。一個OSD domain中包含4臺機器,每臺機器有4個OSD節點(存儲設備)。此時,當一個OSD掛掉後,會有15個OSD參加新增數據的平衡和recovery的backfill,大大縮短了恢復時間。

  在這些OSD Domain中,故障是隔離的,所以一般也稱OSD Domain為故障隔離域。

  4.2 Replica Domain

  在第三個章節中,我們提到了數據散射度問題,數據散射度越大,可用性越差,丟失數據的可能性越高。因此,我們怎麼來解決這個問題呢?

  這需要結合copy set的原理來做合理架構與設計,再基於上面OSD domain的設計,我們再新增replica domain,將三個不同rack中的OSD domain組成三個copy set,用於存放replica set的三個數據副本。

  具體架構圖如下,這樣部署後,copy set做到了一個非常低的水平。

  另外,為了節省IDC機架位資源,我們在一個集群下分為兩個replica domain,每個replica domain下面又有3個OSD domain:

  4.3 泊松分布

  到這裡,我們的副本存放拓撲結構設計差不多完成了,那麼接下來,我們來計算下這種部署能做到多個「9」呢?

  在分布式存儲集群中,X個磁碟發生故障的事件是獨立的,其概率是符合泊松分布的。

  拿磁碟來講,其MTTF為1million,因此AFR為「1-(24*365/1million)= 0.98832」,約為「0.99」。泊松分布中,兩個重要的變量因還素X和Mean我們都確定了。

  對於分布式存儲池來講,X就是replica set size 「R」,Mean就是「0.99」。

  我們存儲集群的高可用性可以簡單的按以下函數來量化:P = f(N, R, S, AFR),其中:

  P: 丟失所有副本的概率

  R: 副本數,也就是replica set size

  S: 單組OSD Domain中OSD的個數

  N: 整個集群中OSD的總數

  AFR: 磁碟的年平均故障率

  進行演化後,我們得到可用性公式:P = Pr * M / C(N,R),其中:

  Pr:為R個數據副本同時失效的概率,相當於是Primary在做recovery恢復時,其它R-1個副本也Fault掉了。

  M:為可能的Copy set數目

  R:為replicat set size,即副本數

  N:為集群OSD總數

  C(N,R):為N個OSD節點中,取R個副本的組合數

  從上面的高可用性公式可以看出,一般在給定集群OSD節點數和副本數「R」後,C(N,R)也就確定了。那麼,為了提高可用性,我們必須想辦法降低Pr和M的值。

  存儲節點的拓撲結構,基於以上分析,做的最終架構優化:

  為了降低Pr,我們引入了OSD domain,默認基於Host單機,無法發揮網絡「多打一」的優勢,我們引入OSD domain,提高單個OSD恢復的速度。將原來三個OSD節點擴大到16個,恢復速度提高了5倍以上。

  為了降低M,也就是copy set的size,我們引入了replica domain。同一個PG中所有的OSD必須在同一個replica domain中,降低了數據丟失的概率了,提高了高可用性。

  以下經我們架構設計後,再根據泊松分布計算出來的高可用性:

  根據這個架構設計,在同一個IDC內,我們基本上能做到接近於10個「9」的高可用性。比之於默認的算法,高可用性整整提高了將近100倍。

  4.4 網絡拓撲結構

  根據上面的分布式拓撲結構設計,再結合現有的網絡拓撲結構,我們的架構設計最終方案為:

  一個存儲集群24臺機器,兩個replica domain,每個replica domain中有三個OSD domain,每個OSD domain中4臺機器,因此計算公式如下:

  2(一般為兩個,由網絡交換機下掛的機器數決定)* 3(replica set,replica domain) * 4(scatter width,OSD domain)= 24

  原則性的,replica domain的機器位於三個不同的rack時,這三個rack不能在同一個port中。一個交換設備下掛16臺機器,兩個OSD domain,這兩個OSD domain屬於不同的replica domain。

  在實際生產中,為了高可用性,我們建議至少部署4個rack集群。另外,在集群擴容時,建議按一組replica domain的規模來擴容。

  每一組OSD domain中,存儲機器數目也可以是4臺或者8臺不等,可以按單臺的機器容量來進行動態規劃,但是計算公式可大致參考以上的部署策略。 

 五、總結與展望

  目前,軟硬體結合的分布式存儲IO stack也在不斷的優化(SPDK,NVMe 等)中,網絡基礎架構RDMA的網絡設計也在驗證和POC中。這些新的思路與整個業界的生態體系發展趨勢一致。

  在可預見的將來,存儲技術上將會有不斷的融合與補益,這也有利於存儲技術的更新換代,也更好的支撐業務的快速發展;最終具備,技術擴展業務邊界以及業務向技術拿紅利的能力。

  計算存儲分離更多細節,將在以後的篇章中講述。

第三十二屆CIO班招生 法國布雷斯特商學院碩士班招生 北達軟EXIN網絡空間與IT安全基礎認證培訓 北達軟EXIN DevOps Professional認證培訓

責編:zhangxuefeng

相關焦點

  • 計算、存儲和網絡簡史
    在數據中心中,處理器存在的主要作用是能夠相對高效地處理數據報文,同時還能對各類異常進行查漏補缺。不僅在計算領域,在IT基礎設施的網絡與存儲領域,通用處理器的使用方式依然如此。能夠對通用處理器帶來挑戰的GPU,前景沒有想像中樂觀。從設計策略上看,GPU與通用處理器的最大區別在於對異常的處理。
  • 天賦異稟,高存儲密度成為海量數據存儲首選
    更神奇的是,作為最古老的存儲技術之一,IBM 磁帶存儲在時光的長河中歷久彌新,保持對社會需求變化的敏感度,擁抱新的時代,持續進化與演變,煥發新的生機,再次迎來屬於自己的高光時刻。 天賦異稟,高存儲密度成為海量數據存儲首選 說到磁帶,有人可能會想起在 VCD 上播放錄像帶看港片的年代,或者用磁帶聽歌時拿鉛筆一圈圈倒帶的場景。
  • ...出席 2020 中國數據與存儲峰會 詮釋雲原生時代存儲「進化論」
    峰會上,QingStor 存儲產品線研發負責人王煜、QingStor 存儲產品線產品經理馮相東分別帶來了以《雲原生架構下的存儲進化》、《企業核心業務資料庫雲化轉型》為題的主題演講,深度詮釋雲原生時代的存儲進化方向,解析企業核心業務雲化轉型與資料庫變革的重要性,幫助企業客戶解決雲原生架構下海量數據(603138)存儲難題,加快落地雲原生,推進數位化轉型。
  • 大數據時代:十大最熱門的大數據技術 - 大數據_CIO時代網 - CIO...
    3、搜索和認知商業   當今時代大數據與分析已經發展到一個新的高度,那就是認知時代,認知時代不再是簡單的數據分析與展示,它更多的是上升到一個利用數據來支撐人機互動的一種模式,例如前段時間的圍棋大戰,就是一個很好的應用、現已經逐步推廣到機器人的應用上面,也就是下一個經濟爆發點——人工智慧,網際網路人都比較熟悉國內的
  • 數據科學研究的現狀與趨勢全解 - 大數據_CIO時代網 - CIO時代—新...
    雲計算、物聯網、移動計算等新技術的興起拓展了人的數據獲取、存儲和計算能力,促使大數據時代的到來,成為數據學科誕生的必要條件。同時,數據科學中需要重點引入Spark、Hadoop、NoSQL等新興技術,從而更好地面對大數據挑戰。
  • Dell EMC PowerFlex:軟體定義存儲 駕馭變革之力
    這期間,我們推出了一系列基於業界領先的PowerEdge伺服器搭建的產品,並取得了傑出的成就,包括PowerSwitch網絡交換機、PowerOne自主基礎架構以及PowerProtect數據保護。此外,我們還簡化並完善了存儲產品組合,推出了PowerMax和PowerStore主存儲以及PowerScale非結構化數據存儲,並針對入門級客戶推出了PowerVault。
  • 生於數據時代 Dell EMC PowerStore如何定義現代化存儲?
    第五代存儲被視為數字經濟時代的產物,是面向多雲架構,承載AI、物聯網、5G等新興技術的未來企業級智能存儲,具有敏捷高速、有效容量、全棧雲連、數據護航和AI賦能五個特徵。具體而言,PowerStore針對物理、虛擬和基於容器的應用和資料庫採用了單一體系結構,專為實現99.9999%的可用性而設計。性能方面,端到端NVMe設計使其較之前的陣列速度最多提高7倍,響應時間最多縮短3倍,延時降低了2/3,並提供了4:1性能無損的重刪壓縮技術,且支持作為持久性存儲的雙埠英特爾傲騰SSD存儲級內存。
  • 數據存儲成數字經濟核心賽道 普華集團BSC生態體系價值突顯
    近日,權威媒體第一財經播出《分布式存儲或將成為下一代網際網路基礎設施》重點報導,報導指出「5G時代將產生大量的數據,數據的存儲將成為一個新的問題。傳統的中心化存儲將所有的數據存儲在中心化的伺服器上,而一旦伺服器宕機或者故障,很多數據就會丟失。由此,基於區塊鏈技術的分布式存儲將被大規模應用。」
  • 12個頂級大數據工具 - 大數據_CIO時代網 - CIO時代—新技術、新...
    主要的大數據工具  如上所述,大數據工具都傾向於單一使用類別,並且有多種使用大數據的方式。所以可以按類別分類,然後分析每個分析工具。  ||  大數據工具:數據存儲和管理  大數據都是從數據存儲開始。這意味著從大數據框架Hadoop開始。
  • 以DellEMC之名 存儲組合產品正式發布
    產品線重在互補戴爾與易安信過去是兩個針對企業ICT基礎設施的兩個獨立企業,有著各自的生產線、技術、產品和服務。在新品牌成立後,雙方將如何溝通、合作是外部最關心的問題,合作與競爭二者之間的關係,DellEMC將如何處理?
  • 泛圈科技芝麻雲節點:5G時代下的存儲技術變革
    作為引領數字經濟的重要驅動力,5G技術以其高吞吐量,低延遲,高並發和低功耗的優勢,正在人工智慧,區塊鏈,雲服務和大數據等方面建設新紀元。  作為IT基礎架構,並推動整個行業的顛覆性變革。隨著5G技術的誕生,各種複雜的業務和應用場景將興起,包括雲VR / AR,智能安防,汽車聯網,智能城市,智能製造,無人機,軟體定義的WAN網絡附加存儲(SDWAN NAS),無線 網狀產品,邊緣計算模塊等。應用程式的多樣化和場景的複雜性對存儲體系結構的可用性和安全性提出了新的要求。
  • DELL EMC品牌正式在大中華區啟用,同時發布系列存儲產品組合
    戴爾易安信今日宣布在大中華區發布系列存儲產品組合,涵蓋全快閃記憶體、軟體定義存儲、數據保護、融合及超融合基礎設施等高增長領域。 戴爾易安信 ScaleIO是先進的數據中心級軟體定義存儲產品,利用標準x86硬體和乙太網提供高可擴展性和性能。ScaleIO能夠簡化客戶存儲生命周期管理,並大幅提升IT部門的工作效率。 戴爾易安信 SC系列的7020F與5020F提供具有高經濟性的快閃記憶體性能,幫助客戶實現數據中心的現代化。SC系列的其他產品可提供具有卓越性能和成本優化的混合存儲。
  • 軟體定義存儲(SDS)的定義及其分類
    SDDC方法論將對存儲、網絡連接、安全和可用性應用抽象、池化和自動化,整個數據中心由軟體自動控制。 基礎架構提供的服務將聚合起來,並與基於策略的智能調配、自動化和監控功能結合在一起使用。 如圖上所示,存儲用戶的控制路徑是在帶外,通過傳統、人工的方式將數據請求傳遞給存儲管理員,例如對於數據保護、可用性、性能、安全性的要求。存儲管理員進入存儲管理界面,按存儲用戶的請求分配存儲資源。
  • 多活元數據技術,讓浪潮軟體定義存儲管理EB級數據
    另外一種把計算和存儲分離的集中式存儲方案 -- NAS方案亦差強人意。NAS屬於外部集中式存儲方案,架構擴展性相比本地文件系統有較明顯優勢。其控制器一般為兩臺至多臺,在數據規模稍微「大」一點的業務場景,用戶往往使用NAS存儲方案。
  • 集成混合雲存儲對於企業來說有什麼意義
    他們通常使用易於理解的服務來替換需要技術升級的現有存儲系統,該服務提供了分布式的高可用性基礎設施;基於使用量的定價,以及所有雲計算服務固有的內置安全性。 企業混合雲存儲發展的下一階段需要將雲計算服務連結到現有應用程式,以提供內部部署基礎設施的擴展。這種集成的混合雲存儲方法要求私有系統和公共服務之間具有無縫接口,並且兩者之間的數據必須持續同步。
  • IPFS星際特工·第二分布式存儲數據中心正式完成建設
    作為新基建(新型基礎設施)的重要組成部分,大數據中心為應對5G、人工智慧、工業網際網路的大數據需求而生,依前沿科技而生,故而自帶流量,已經成為新晉「網紅」。毋庸置疑,新基建政策的落地更是對數據中心建設起到了「猛火加薪」的效果。
  • 新數據時代,科研需要什麼樣的創新基礎設施
    科研數據往往具有數據密集型範式的特點,具有數據量巨大的特徵。以目前世界上靈敏度最高的射電望遠鏡中國天眼項目為例,每天產生約500TB的零級未壓縮數據,預計未來十年數據量將超過100PB,對長期運行產生的海量數據進行存儲與計算分析正在深刻改變其科研模式,如何存儲與保護這些海量數據就成為巨大挑戰。
  • IPFS創始人胡安·貝內特締造分布式存儲新時代
    IPFS創始人Juan只手締造分布式存儲新時代整個2020年,區塊鏈世界最熱門的項目之一,當屬即將於7月上線的Filecoin。這個基於IPFS底層協議的存儲網絡已經成長為全球性的分布式存儲選擇,以巨大的潛力吸引了無數人的目光。
  • 雲存儲技術的原理與架構解析
    、分析和利用,除了提供傳統的安全防範、事後查證功能外,更為城市建設科學規劃、科學管理提供了充分的數據基礎,同時,在這樣一個海量大數據的時代,對於數據的安全存儲和應用也需要與之相適應的新的技術手段,而以分布式和並行處理為基礎的雲計算和雲存儲技術,在此過程中也得到了極大地發展。
  • 孫立林:安全多方計算與數據融合基礎設施的設計理念
    在數位化時代裡,區塊鏈作為新型基礎設施,數據安全是重中之重。安全多方計算,一直以來都被視為隱私數據保護較好的解決方案。在第六屆區塊鏈全球峰會上,矩陣元創始人兼執行長孫立林根據矩陣元的實踐經驗,分享了「安全多方計算與數據融合基礎設施的設計理念」。