新聞中心
分布式存儲的技術發(fā)展趨勢
作者:佚名 2021-03-19 08:56:31
存儲
分布式 鐵力士分布式存儲將傳統(tǒng)磁盤陣列的RAID技術、存儲虛擬化管理技術與分布式存儲技術相結合,有效地解決了普通分布式存儲面臨的IO分布不均勻和木桶效應導致的性能缺陷.

成都創(chuàng)新互聯(lián)公司是專業(yè)的橋西網站建設公司,橋西接單;提供網站設計制作、成都網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行橋西網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
分布式存儲的技術發(fā)展趨勢
一、三副本的弊端
以Ceph、VSAN為代表的軟件定義存儲(Software Defined Storage,SDS)是一個橫向擴展、自動均衡、自愈合的分布式存儲系統(tǒng),將商用x86服務器、固態(tài)硬盤、機械硬盤等硬件資源整合為一個瘦供給的資源池,并以塊存儲、文件存儲、對象存儲、Restful API等多種接口方式提供存儲服務。
無論是Ceph、VSAN,或者其演化版本,有一個共同的技術特征,即采用網絡RAID方式實現(xiàn)數(shù)據(jù)保護,以3副本或糾刪碼為代表,其中3副本用于對小塊數(shù)據(jù)讀寫性能有一定要求的應用場景,而糾刪碼則適用于視頻數(shù)據(jù)、備份及歸檔等大文件場景。以3副本為例,業(yè)務數(shù)據(jù)被分割為固定大小的數(shù)據(jù)塊,通常為4MB,每個數(shù)據(jù)塊在不同的節(jié)點上保存3個副本(如圖1所示),其分布機制是依照一致性哈希算法(Consistent Hashing)或CRUSH算法,將各個副本數(shù)據(jù)隨機分布在不同節(jié)點、不同磁盤中,以實現(xiàn)數(shù)據(jù)自動平衡和橫向擴展。當磁盤或節(jié)點遭遇故障或損壞時,系統(tǒng)會自動根據(jù)預先設定的規(guī)則,重新建立一個新的數(shù)據(jù)副本,稱之為數(shù)據(jù)重建。
圖 1 分布式存儲副本機制
雖然分布式存儲的SDS理念很好,橫向擴展能力不錯,自動添加和刪除節(jié)點都是優(yōu)勢,但與傳統(tǒng)集中式存儲(磁盤陣列)相比,其穩(wěn)定性和性能仍然存在明顯的短板。
首先,在性能方面,三副本分布式存儲容易受到IO分布不均勻和木桶效應的影響,導致大延遲和響應遲鈍的現(xiàn)象。以Ceph為例,多個存儲基本單元,Placement Group (PG),封裝為一個OSD,每個OSD直接對應于某一個機械硬盤HDD;主流的7200轉HDD,受到機械臂尋址限制,其單盤的讀寫性能僅為120 IOPS左右;由于數(shù)據(jù)在OSD上隨機分布,因而單個硬盤上的IO負載不會固定在平均值上,而是總體呈現(xiàn)為正態(tài)分布,少數(shù)HDD上因正態(tài)分布的尾部效應,導致其IO負載遠超平均值,以及遠超單盤的性能閥值,造成擁堵。此外,分布式存儲為保證數(shù)據(jù)完整性,必須定時進行數(shù)據(jù)完整性校驗,即數(shù)據(jù)scrub/deep-scrub操作,而這些操作產生額外的IO負載,可能會加重磁盤阻塞現(xiàn)象。根據(jù)木桶效應原理,系統(tǒng)的性能取決于集群中表現(xiàn)最差的磁盤,因此個別慢盤嚴重拖累整個系統(tǒng)的性能,其可能的后果,就是帶來大延遲、OSD假死,以及觸發(fā)數(shù)據(jù)非必需的重建。
其次,三副本分布式存儲還面臨穩(wěn)定性問題。當存儲擴容、硬盤或節(jié)點損壞、網絡故障、OSD假死、 Deep-scrub等多種因素疊加,可能導致多個OSD同時重建,引發(fā)重建風暴。在數(shù)據(jù)重建過程中,重建任務不僅消耗系統(tǒng)的內存、CPU、網絡資源,而且還給存儲系統(tǒng)帶來額外的IO工作負載,擠占用戶工作負載的存儲資源。在此情形下,用戶時常觀察到,系統(tǒng)IO延遲大,響應遲鈍,輕者引起業(yè)務中斷,嚴重時系統(tǒng)可能會陷入不穩(wěn)定的狀態(tài),OSD反復死機重啟,甚至會導致數(shù)據(jù)丟失,系統(tǒng)崩潰。
此外,三副本分布式存儲還面臨數(shù)據(jù)丟失的風險。三副本最大可抵御兩個HDD同時損壞。當系統(tǒng)處于擴容狀態(tài)、或一個節(jié)點處于維護模式時,此時出現(xiàn)一個HDD故障,則該系統(tǒng)就會進入緊急狀態(tài),出現(xiàn)兩個HDD同時故障,則可能導致數(shù)據(jù)丟失。對于一個具有一定規(guī)模的存儲系統(tǒng)而言,同時出現(xiàn)兩個機械硬盤故障的事件不可避免,尤其是當系統(tǒng)運行兩三年之后,隨著硬件的老化,出現(xiàn)Double、或Triple磁盤故障的概率急劇上升。此外,當系統(tǒng)出現(xiàn)大規(guī)模掉電或存儲節(jié)點意外宕機時,也可能會導致多個機械硬盤同時出現(xiàn)損壞,危及三副本分布式存儲的數(shù)據(jù)安全。
二、雙重Raid
為了解決三副本分布式存儲面臨的性能問題、穩(wěn)定性及可靠性等缺陷,道熵的鐵力士分布式存儲采用雙重RAID保護機制,除了繼承網絡RAID(節(jié)點間副本、跨節(jié)點糾刪碼)和一致性哈希隨機分布數(shù)據(jù)的特點,鐵力士將磁盤陣列特有的節(jié)點內RAID技術和存儲虛擬化(池化)管理技術, 即Storage Virtualization Manager (SVM),與分布式技術相結合,如圖2所示。
圖2 Titlis分布式存儲雙重Raid機制
網絡Raid技術
在鐵力士分布式存儲中,每個數(shù)據(jù)塊按照一致性哈希算法,隨機選擇兩個不同存儲節(jié)點來保存數(shù)據(jù)的兩個副本,保證當任何一個節(jié)點宕機時,仍有一個數(shù)據(jù)副本保證讀寫操作,確保業(yè)務高可用和數(shù)據(jù)安全。
節(jié)點內Raid技術
在鐵力士分布式存儲的每個節(jié)點內,通過SVM存儲虛擬化技術實現(xiàn)節(jié)點內的RAID數(shù)據(jù)保護,RAID級別選擇可以是鏡像,也可以是存儲效率更高的RAID5或6。節(jié)點內RAID保護可抵御單個或多個硬盤損壞,故障修復限制在節(jié)點內部,無需觸發(fā)網絡數(shù)據(jù)重建,有效地避免了網絡重建風暴。
節(jié)點內RAID結合網絡Raid(跨節(jié)點的副本/EC碼)技術,鐵力士實現(xiàn)了雙重RAID數(shù)據(jù)保護。在三副本架構中,一旦同時出現(xiàn)三塊磁盤故障或受損,數(shù)據(jù)就可能丟失;而在雙重RAID架構中,即使每個節(jié)點同時出現(xiàn)一塊磁盤故障,數(shù)據(jù)仍然無憂,業(yè)務仍然持續(xù)。考慮到分布式存儲可能包含數(shù)十個甚至上百個存儲節(jié)點,雙重RAID的數(shù)據(jù)可靠性明顯超過三副本架構。
存儲虛擬化技術
鐵力士在每個存儲節(jié)點運行在存儲虛擬化管理軟件(SVM)上,把該節(jié)點的存儲資源整合為一個統(tǒng)一管理的存儲池,為分布式系統(tǒng)提供vOSD資源。SVM采用寬條帶機制(見圖3),將每個vOSD的工作負載均勻分布在節(jié)點的每個磁盤上,大幅提高了單個vOSD的IOPS能力,可有效抵御三副本分布式存儲中的IO分布不均勻現(xiàn)象。
圖 3 節(jié)點內Raid條帶機制
SVM存儲池由節(jié)點內多個RAID小組構成,通過虛擬卷為上層分布式系統(tǒng)提供vOSD存儲服務。每個vOSD對應于三副本中由物理HDD承載的OSD。由分布式一致性哈希算法分配來的數(shù)據(jù)塊,將寫入SVM存儲池中、由虛擬卷支撐的vOSD,而非直接寫入物理硬盤。SVM 利用寬條帶技術,將vOSD的工作負載均勻分布在各個物理磁盤上:每個大小為4MB的vOSD 對象數(shù)據(jù)塊,被分割為32KB的數(shù)據(jù)塊,依次被安排在RAID組的邏輯地址空間中;SVM 對各個RAID小組的邏輯地址空間采取順序寫優(yōu)化策略:首次寫按各個小組的邏輯地址分配地址空間,按順序寫入數(shù)據(jù);后續(xù)重寫,則優(yōu)先填滿空閑地址空間,盡可能實現(xiàn)硬盤順序尋址,最大限度降低機械硬盤較慢的尋址操作次數(shù),利用機械硬盤順序寫較快的特點來提升IO性能。
二級DRAM+Flash 緩存加速
磁盤陣列中常見的性能加速手段是共享緩存加速,中高端磁盤陣列與低端磁盤陣列的在性能方面的一個重大區(qū)別,除了控制器個數(shù),就是緩存加速的能力。典型的中高端磁盤陣列能支持的共享緩存加速在512GB到1TB上下。鐵力士借鑒了磁盤陣列的設計,通過SVM虛擬化實現(xiàn)DRAM與Flash相結合的二級緩存加速:通過自適應算法,自動識別動態(tài)或靜態(tài)熱數(shù)據(jù)(高頻率讀寫或最近讀寫數(shù)據(jù)),將最熱的數(shù)據(jù)保存在延遲最小的DRAM中,而將次熱的數(shù)據(jù)保存在更大容量、基于Flash的固態(tài)硬盤上;并由于分布式技術的加持,形成一個容量巨大的分布式二級緩存系統(tǒng)。與中高端磁盤陣列相比較,鐵力士分布式存儲系統(tǒng)支持數(shù)10TB、甚至100TB以上的分布式緩存,相當于其10倍、甚至100倍的緩存容量。
數(shù)據(jù)完整性校驗與數(shù)據(jù)自修復
SVM存儲虛擬化管理借鑒了WAFL(NetApp) 、Btrfs(SuSE)、ZFS(Oracle)、Storage Spaces(微軟)等文件系統(tǒng)的先進經驗,對底層存儲的每個數(shù)據(jù)塊增加一個256比特的校驗碼,并單獨保存在一對固態(tài)硬盤鏡像中,用于快速實現(xiàn)在線數(shù)據(jù)完整性校驗。一旦校驗碼檢查到數(shù)據(jù)受損,通過節(jié)點內RAID功能實現(xiàn)數(shù)據(jù)自修復。該功能可快速定位硬件故障,并實現(xiàn)硬件故障自動隔離。
三、雙重Raid機制與三副本對比
雙重RAID究竟能否有效解決三副本的缺陷?讓我們從二者之間的對比開始。
故障修復時間更短,業(yè)務影響更小
硬盤損壞時,雙重RAID機制優(yōu)先通過節(jié)點內RAID恢復數(shù)據(jù),該恢復機制可自動調節(jié)速度以避讓工作負載,前端業(yè)務無感知。無需觸發(fā)網絡數(shù)據(jù)重建,從而有效地避免了網絡重建風暴。
節(jié)點故障時,可通過遷移磁盤到另一臺物理服務器,實現(xiàn)節(jié)點遷移(無需拷貝或重建數(shù)據(jù))。SVM存儲池上每個磁盤記載關于存儲池構成的全部信息,分布式存儲的vOSD的ID號及用戶數(shù)據(jù),保存在SVM存儲池的虛擬卷上,自動隨著SVM存儲池的遷移從一臺物理服務器遷移到另一臺物理服務器,主機名及vOSD的ID號保存不變,實現(xiàn)快速節(jié)點修復。
容錯性更強,可允許多節(jié)點同時有磁盤損壞
三副本分布式存儲通過跨節(jié)點的副本保護,可有效防止單個或兩個磁盤損壞對業(yè)務數(shù)據(jù)的影響,但是容錯性受到限制,如在三副本的情況下,不同故障域內之間,最多只能允許2個節(jié)點有磁盤損壞,超出2個節(jié)點出現(xiàn)磁盤故障,則極有可能發(fā)生數(shù)據(jù)丟失,如圖4所示。
圖 4 三副本分布式存儲多節(jié)點硬盤損壞導致數(shù)據(jù)丟失
鐵力士分布式存儲通過雙重Raid機制,能夠將容錯性提升一個數(shù)量級。如圖5所示,以節(jié)點內Raid10+節(jié)點間2副本為例,當每個節(jié)點都出現(xiàn)磁盤故障的時候,可以通過節(jié)點內Raid分別修復,保障整個系統(tǒng)數(shù)據(jù)無丟失,業(yè)務無中斷。
圖 5 雙重RAID容忍多節(jié)點磁盤損壞
數(shù)據(jù)持久性(Durability)高出一個數(shù)量級
下面通過具體數(shù)值來比較三副本與雙重RAID的數(shù)據(jù)持久性(可靠性)。數(shù)據(jù)持久性指標可通過存儲系統(tǒng)的AFR(Annual Failure Rate)來衡量。考慮一個1000個6TB硬盤的存儲集群,每個機械硬盤的MTTF(Mean Time to Failure)為1000,000小時。在計算中需要運用兩個著名的MTTF公式,一個是關于RAID6,其MTTF=(MTTF)*(MTTF)*(MTTF)/(N*(N-1)*(N-2)*MTTR), 另一個是關于RAID5,其MTTF=(MTTF)*(MTTF)/(N*(N-1)MTTR), 其中MTTR(Mean Time to Repair)是硬盤平均修復時間。
在三副本條件下,存儲系統(tǒng)共有333組三副本,每組三副本的MTTF相當于N=3的RAID6,在分布式并發(fā)修復的條件下,MTTR通常為3小時(每半小時修復1TB數(shù)據(jù)),因此每組三副本的MTTF =1000000*1000000*1000000/(3*2*1*3)=5.56x 1016 小時,而整個系統(tǒng)的MTTF = 5.56x 1016 /333 =1.67x 1014 小時。折算為AFR(一年共8760小時),AFR=8760/(1.67x 1014) =5.2x 10-11。
在雙重RAID情況下,考慮節(jié)點內采用(2+1) RAID5,存儲系統(tǒng)共有333組RAID5,為簡化計算,考慮每組RAID對應于兩個vOSD,12TB數(shù)據(jù)。據(jù)測算,RAID5的MTTR為30小時,每組RAID5 (vOSD)的MTTF=1000000*1000000/(3*2*30)=5.56x 109 小時。當一個RAID5組損壞時,由于vOSD在跨節(jié)點之間有鏡像保護(其可靠性相當于N=2 RAID5),采用分布式并發(fā)修復12TB數(shù)據(jù),每半小時修復1TB數(shù)據(jù),需6小時,因此,其MTTR=(5.56x 109 )* (5.56x 109 )/(2*1*6)=2.58x 1018 小時??紤]到整個存儲系統(tǒng)有333組RAID5, 因此整個系統(tǒng)的MTTF=2.58x 1018/333 =7,75x 1015 小時,相當于三副本MTTF的46倍。折算為AFR,雙重RAID的AFR=8760/(7.75x 1015)= 1.1x 10-12 。
對比三副本和雙重RAID的數(shù)據(jù)持久性,可見雙重RAID的數(shù)據(jù)可靠性高于三副本一個數(shù)量級以上。
四、總結
鐵力士分布式存儲將傳統(tǒng)磁盤陣列的RAID技術、存儲虛擬化管理技術與分布式存儲技術相結合,有效地解決了普通分布式存儲面臨的IO分布不均勻和木桶效應導致的性能缺陷,大幅度提升系統(tǒng)IOPS性能,并避免了普通分布式存儲因網絡重建風暴而可能導致的穩(wěn)定性隱患。同時,雙重RAID架構的數(shù)據(jù)可靠性高于三副本分布式存儲一個數(shù)量級以上。
本文名稱:分布式存儲的技術發(fā)展趨勢
URL鏈接:http://www.dlmjj.cn/article/ccsjids.html


咨詢
建站咨詢
