?

主動容錯副本存儲系統的可靠性分析模型

2021-04-20 14:07羅金飛李炳超
計算機應用 2021年4期
關鍵詞:存儲系統機架副本

李 靜,羅金飛,李炳超

(1.中國民航大學計算機科學與技術學院,天津 300300;2.南開大學計算機學院,天津 300350)

0 引言

雖然單個硬盤發生故障的概率比較小,但是隨著存儲系統規模的不斷增大,硬盤故障甚至是并發故障的發生頻率越來越高[1]。據統計,硬盤故障是數據中心最主要的故障源,在一個Petabyte 級別的文件系統中每天都會有硬盤故障的發生[2]。另外,作為硬盤的載體——服務器,也會因為一些組件,如網卡、內存、CPU、主板和電源等的故障而崩潰,從而導致所有掛載在它上面的硬盤不可訪問[3]。硬盤故障會導致存儲系統服務性能的降級,甚至會導致用戶數據的丟失和服務的中斷,給企業和用戶帶來無法避免和估計的損失。

傳統的存儲系統普遍采用副本或糾刪碼機制保障數據的安全,硬盤故障發生之后,系統可利用其他可用硬盤上的冗余數據恢復故障數據,從而避免數據的丟失,這是一種典型的“被動容錯”機制。隨著硬件故障發生頻率的不斷增加,被動容錯機制只能通過不斷增加冗余來保證系統的高可靠性,這無疑增加了構建和維護系統的成本。硬盤故障預測[4-9]通過對系統中硬盤健康狀態的實時監測,在硬盤故障發生之前發出警報,提醒用戶遷移危險數據,從而避免或減少硬盤故障帶來的損失,這是一種“主動容錯”的思想。目前已有很多存儲系統[5-6,10-11]采用了這種基于硬盤故障預測的主動容錯方式。

對主動容錯存儲系統的可靠性評價,可以用來評估不同預測模型、數據散布策略以及不同系統參數對系統可靠性的影響,有助于構造出高可靠和可用性的存儲系統。然而,硬盤故障預測技術的引入令存儲系統產生了根本性變化——系統運行由“正?!收闲迯汀眱煞N狀態之間的轉換,變為“正?!A警處理—故障修復”三個狀態之間的轉換,對主動容錯存儲系統的可靠性分析變得非常復雜,目前僅有少量研究關注此領域。

現有研究存在一些缺陷,不能準確、細致地評價主動容錯存儲系統的可靠性水平:①忽略了節點故障對系統可靠性的影響。隨著系統規模的增大,節點故障的發生頻率越來越高,節點故障會導致所有掛載硬盤的失效,對系統可靠性的影響不容忽視。②沒有考慮數據散布方式對可靠性的影響。數據散布方式影響到系統在并發故障下的容錯能力,對系統可靠性有重要影響。本文擬克服上述缺陷,研究主動容錯存儲系統的可靠性。

由于硬盤價格持續降低,以及良好的并行處理能力,副本冗余技術成為存儲系統普遍采用的容錯機制[12-13]。在基于副本冗余機制的存儲系統中,一個節點只保存有一個副本,如果有硬盤發生故障,需要跨節點進行數據的重構,會大量消耗網絡的帶寬,甚至在業務高峰時引起連鎖反應,造成性能的抖動。

本文作者在前期工作[14]中,針對采用RAID-5(Redundant Array of Inexpensive Disk)和RAID-6 機制的主動容錯存儲系統,提出了兩個可靠性狀態轉換模型。本文擴展此項工作到采用副本冗余機制的主動容錯存儲系統,與前期工作[14]相比,本文主要新增了兩個創新點:①增加考慮節點故障和修復對系統可靠性的影響;②分析副本冗余機制下的系統可靠性水平。

具體來說,本文針對采用被動/主動容錯二副本和三副本容錯機制的存儲系統,提出四個可靠性狀態轉換模型,并據此設計了蒙特卡洛仿真算法模擬系統的運行,統計存儲系統在一定運行周期內發生數據丟失的期望次數,從而量化評價主動容錯副本存儲系統的可靠性水平。本文采用韋布分布函數模擬硬盤故障和修復事件的時間分布,綜合評價了主動容錯機制、節點故障、節點故障修復、硬盤故障以及硬盤故障修復等因素對存儲系統可靠性的影響。利用本文提出的可靠性分析模型,系統管理者可以方便地比較不同冗余機制下的系統可靠性差異,定量評價硬盤故障預測模型對系統可靠性的提升效果,權衡比較不同系統參數對系統可靠性的影響,從而幫助系統管理者搭建出滿足特定可靠性需求的存儲系統。

1 背景知識

1.1 相關研究

可靠性一直是存儲系統相關研究領域重點關注的問題之一,該領域的研究者[2,15]通?;谟脖P故障服從指數分布的假設,使用Markov 模型構建系統可靠性分析模型,研究大規模存儲系統的可靠性水平。然而,研究者通過大量實驗證明[16-18],相對于指數分布,Weibull分布函數能夠更好地模擬硬盤故障事件。Weibull函數可以模擬隨運行時間而不斷升高、保持不變、或者降低的設備故障發生率,本文使用Weibull 分布函數模擬節點和硬盤故障事件。

對于副本存儲系統,有一些國內外研究關注它們的可靠性。文獻[19]使用概率分析方法估計系統的可靠性,然而因為忽略了故障重構時間而沒有真實反映系統的可靠性水平;Epstein 等[20]使用仿真和統計分析相結合的方法評估了分布式云存儲系統的可靠性,并關注網絡帶寬和并發故障對系統可靠性的影響;Wang 等[21]提出一個可靠性分析模型,通過合并副本丟失的概率來研究基于分塊散布的多副本系統的可靠性水平。

近年來,有學者使用基于蒙特卡洛的仿真方法模擬存儲系統的運行,進而分析存儲系統的可靠性:Hall等[22]使用基于事件驅動的仿真方法預測大型存儲系統設計和部署的可靠性;Zhang等[3]使用仿真方法分析了采用糾刪碼冗余機制的數據中心的可靠性水平,并比較了水平和垂直兩種數據散布方式對系統可靠性的影響。然而,前述工作都只是針對被動容錯存儲系統展開的可靠性研究。

對于主動容錯存儲系統,目前只有少量研究關注它們的可靠性水平。Eckart等[23]設計了Markov可靠性模型分析主動容錯技術對單個硬盤、RAID-1 系統和RAID-5 系統平均數據丟失時間(Mean Time Between Data Loss,MTTDL)的影響;Li等[9,24]拓展了Eckart 等[23]的工作,為主動容錯RAID-6、二副本和三副本系統設計了Markov 可靠性分析模型。然而,這些工作都基于硬盤故障符合指數分布的假設,并沒有真實刻畫主動容錯存儲系統的可靠性水平。

李靜等[14,25]的后續工作中,采用更符合實際情況的韋布分布函數模擬硬盤故障事件,使用蒙特卡洛仿真方法和組合數學分析方法為主動容錯RAID-5、RAID-6、二副本和三副本系統設計了可靠性分析模型。然而,當前現有的評價模型都沒有考慮節點故障對系統可靠性的影響,節點上的任何組件或軟件的故障都會導致節點故障,節點故障會引起所有掛載硬盤的集體失效,其發生頻率及對系統可靠性的影響不容忽視。本文擬面向被動/主動容錯二副本和三副本存儲系統,綜合評價節點故障、硬盤故障對系統可靠性的影響。

1.2 系統框架

當前存儲系統普遍采用分層的系統框架,如圖1 所示,機房中放置了多個機架,每個機架上放置了多個節點(存儲服務器),每個節點上配備了多塊硬盤以存儲業務數據。同一機架內部的節點通過機架頂部的交換機進行通信,不同機架的節點之間通過網絡核心交換機進行通信。

圖1 存儲系統架構Fig.1 Storage system architecture

在采用副本冗余機制的存儲系統中,用戶數據首先被分成很多數據塊(data chunks),然后每個數據塊都被復制一定數量的副本(二副本系統中有兩塊副本,三副本系統中有三塊副本),最后這些副本在系統的不同節點之間散布(而不是存放在同一個節點上),從而提高數據在節點故障時的存活概率。通常情況下,一個數據塊的副本首先被管理節點分配到某些存儲節點(存儲服務器)上,然后存儲節點再選擇一塊內部硬盤存放其中一個副本。為了保障數據安全和系統可靠性,存儲系統一般會遵循兩個數據散布的原則:①一個節點至多只存放某個數據塊的一個副本;②一個數據塊的所有副本至少要被散布到兩個不同的機架上。

二副本系統:每個用戶數據都被復制兩次,這兩個數據副本必須存放在兩個不同的機架上。如果由節點故障或硬盤故障導致的數據損壞位于同一個機架上,這些故障不會導致系統發生數據丟失事件。

三副本系統:每個用戶數據都被復制了三份,這三個數據副本被散布到三個不同節點上,其中有兩個節點位于同一個機架上,另外一個節點位于其他機架上。這種數據散布方式有兩個優點:①如果某個機架由于電源等設備的故障而失效,系統可以使用其他機架上的存活副本修復發生的故障,能夠提高數據的存活概率;②如果某個存儲節點發生了節點或硬盤故障,系統可以使用相同機架上的存活副本修復故障,這個操作使用的是機架內部的網絡帶寬,不會對珍貴的機架之間的核心網絡通信產生影響。

1.3 故障模式

存儲系統主要存在三種類型的設備故障:①節點故障。由于服務器的網卡、內存、CPU、主板和電源等組件的故障(或軟件故障)而導致的節點崩潰,使得該節點掛載的所有硬盤都無法訪問。②硬盤個體故障。由于磁頭損壞、芯片信息丟失、電路板問題等原因導致的硬盤上所有數據都無法訪問。③硬盤潛在扇區錯誤。一般是由介質故障或磁頭劃傷等原因造成的硬盤部分二進制位無法讀出。存儲系統后臺通常運行著“硬盤清洗”進程,周期性地檢測并修復硬盤潛在扇區錯誤,文獻[25]中的圖10 顯示硬盤潛在扇區錯誤對副本系統的可靠性影響不大,因此本文只關注前兩種類型的設備故障,即節點故障和硬盤個體故障。

設備故障根據其持續時間和危害程度可分為臨時故障和永久性故障兩類:①臨時故障。由網絡斷開、重啟或維護等原因造成的設備(節點或硬盤)暫時不可訪問,這種故障只需經過多次嘗試,就可以恢復正常,不會造成系統的數據丟失,只對系統的可用性產生一定影響。②永久性故障。由于軟件故障、組件故障、磁道損壞等原因造成的設備永遠不能被訪問,這種故障只能通過更換設備進行恢復,不僅會降低系統的可用性,還可能會導致系統發生數據丟失,降低系統的可靠性。因為只有永久性故障會對系統的可靠性產生影響,所以本文只關注設備的永久性故障。

當節點或硬盤故障發生之后,某些數據的部分(而非全部)副本會因此而丟失,為了維持系統數據冗余度的一致性,系統會啟動一個重構過程,利用其他存活副本修復(重構)出丟失的副本。為了維持系統規模和全局的數據均衡,新設備替換故障設備加入系統并被散布上數據。在故障修復期間,如果又有其他設備(節點或硬盤)發生故障,一些數據塊可能會丟失更多的副本,直至不可恢復的數據丟失事件發生。如果數據塊的所有副本全部丟失,重構過程已經不能再重構出這些由并發設備故障導致的損壞數據,本文研究認為系統發生了數據丟失事件。

1.4 主動容錯技術

現代硬盤內部基本上都實現了SMART(Self-Monitoring,Analysis and Reporting Technology),具有“自我監測、分析和報告”功能,如果某些屬性的當前值超過預先設定的閾值,硬盤會自動發出警告信息,提醒用戶對硬盤采取措施,避免硬盤故障導致的數據丟失損失。但是,這種簡單閾值法的預報精度不高,不能滿足用戶對系統可靠性的需求。于是,國內外研究者開始嘗試使用機器學習方法創建硬盤故障預測模型[4-9],有一些方法,比如Li 等[4]的工作創建的基于決策樹的硬盤故障預測模型,取得了令人滿意的預測性能。

在主動容錯存儲系統中,系統后臺運行著一個硬盤故障預測模型,對工作中的硬盤進行實時監測,并周期性地輸出硬盤個體的“健康”情況,系統會對“健康”狀態差(即將發生故障)的硬盤啟動預警修復過程,把危險數據提前遷移到健康硬盤上。目前還沒有相關文獻研究節點故障預測,所以本文只關注基于硬盤故障預測的主動容錯存儲系統的可靠性。

2 系統狀態轉移模型

本章為被動/主動容錯二副本和三副本系統提出了狀態轉移模型,分析系統在主動容錯機制、節點和硬盤故障以及故障修復等事件下的狀態轉換過程,為系統可靠性評價模型的設計提供依據。如果某個數據塊的所有副本都因為設備故障而發生了損壞(丟失),系統的修復過程已無法再重構出該數據塊,本文研究認為此時系統發生了數據丟失事件。

假設系統中包含r個機架,每個機架上放置了n個節點,每個節點上配置了d塊硬盤,系統中共包含rn個節點和rnd塊硬盤。

2.1 被動容錯二副本系統

對于二副本存儲系統,根據副本系統數據的散布原則,用戶數據塊的兩個副本散布在位于不同機架的兩個硬盤上,稱這種位于不同機架上的兩個硬盤為一個“復制對”。對于系統中的一個硬盤D,其他機架上的任意一個硬盤都可以和D構成一個“復制對”,共有(r-1)nd個包含D的“復制對”。假設系統中每個硬盤的容量為4 TB,每個數據塊的大小為1 MB,那么在完全均勻和隨機的散布下,只要(r-1)nd<(4 TB/1 MB),即系統包含的硬盤數量不超過4×106時,位于不同機架的任意兩個硬盤上都至少存儲了一個數據塊的兩個副本。因此,如果系統中的兩個機架同時出現了設備(節點或硬盤)故障,這些并發故障就會導致系統發生數據丟失事件。

圖2 的狀態轉換模型描述了被動容錯二副本系統在設備故障和故障修復等事件影響下的狀態轉換邏輯,系統共有三種主要狀態:狀態1 表示系統處于完全健康的狀態,所有設備都在正常運行,沒有任何設備出現故障;狀態2 表示系統處于降級模式,某一個機架由于硬盤或節點故障出現了數據損壞,其他機架上并沒有出現設備故障,系統不會發生數據丟失,只是可用性受到一定影響;狀態3 表示系統進入數據丟失模式,此時系統發生了永久性數據丟失事件,無法再為用戶繼續提供服務。

圖2 被動容錯二副本系統狀態轉換模型Fig.2 State transition model for 2-way replication system with passive fault tolerance

系統開始運行時處于狀態1,如果某個機架上發生了設備(硬件或節點)故障事件,系統進入狀態2(降級模式),由于所有數據塊的副本都存放在兩個不同機架上,所以此時系統不會發生數據丟失事件。

系統進入狀態2 之后,會立刻啟動故障重構過程,利用其他設備上的存活副本重新構造故障導致的損壞數據,此時系統有兩種狀態轉移可能:①如果所有故障都被及時修復完成,全部數據塊均恢復至擁有兩個副本的正常狀態,系統轉入狀態1;②在現有的故障設備修復完成之前,其他機架上又發生了硬盤或節點故障,導致系統中至少一個數據塊的全部副本都發生了損壞,數據丟失事件發生,系統進入狀態3。

系統進入狀態3 之后,無法再繼續為用戶提供正常服務,不能再向其他狀態轉換。

2.2 被動容錯三副本系統

對于三副本存儲系統,每個數據塊都擁有三個副本,分別存放在三個不同的硬盤上,其中兩個硬盤位于某個機架的兩個不同節點上,第三個硬盤位于另外一個機架上,本文稱這樣的組合為一個“副本集合”。對于系統中的任意硬盤D,有兩種構成“副本集合”的方式:從D所在機架的其他節點上選取一個硬盤,再從其他機架選取另一個硬盤,可以組成(n-1)d×(r-1)nd個“副本集合”;從其他機架的不同節點上選取兩個硬盤,可以組成個“副本集合”。合并兩種方式,對于系統中的任意一個硬盤,總共包含在1)n(n-1)d2個“副本集合”中。假設硬盤容量為4 TB,數據塊大小為1 MB,那么對于(r=900,n=10,d=4)的三副本系統(硬盤數量為36 000),任意一個“副本集合”的硬盤上都至少保存有一個數據塊的所有副本(單個硬盤上的數據塊數量多于它所在的“副本集合”個數)。

因此,對于系統規模不超過36 000 塊硬盤的三副本系統發生數據丟失事件的條件是:至少兩個機架發生了設備(硬盤或節點)故障,其中一個機架至少有兩個節點發生數據損壞,這些故障設備構成了一個(或多個)“副本集合”,導致某個(或某些)數據塊的全部副本都被損壞。如果硬盤上的數據塊數量(用c表示每個硬盤上的數據塊數量)少于它所在的“副本集合”個數(用rep表示包含給定硬盤的“副本集合”數量),當一個“副本集合”的三個硬盤同時發生故障時,系統以的概率發生數據丟失。

圖3 狀態轉換模型描述了被動容錯三副本存儲系統在設備(硬盤或節點)故障和故障修復等事件下的狀態轉換邏輯,其中,模型共包含五種主要狀態:狀態1 是完全健康狀態,系統中的所有設備都在正常運行;狀態2 是降級模式,系統中的某一個機架上出現了設備故障;狀態3 也是降級模式,至少兩個機架上都有一個節點出現了數據損壞,系統處于故障邊緣;狀態4 也為降級模式,某一個機架上的至少兩個節點上都有數據損壞,系統處于故障邊緣;狀態5 是數據丟失狀態,此時已有數據塊發生了永久性丟失,系統不能再提供正常服務。

系統開始運行時處于狀態1,系統中所有數據都處于具有三個副本的正常狀態,如果某個硬盤或節點發生故障,系統轉入狀態2。

系統進入狀態2 之后,會馬上啟動故障修復進程重構損壞的數據,此時有三種狀態轉移可能:①如果故障可以被及時修復完成,系統返回到狀態1;②在第一個故障修復完成之前,其他機架上又有硬盤或節點故障發生,系統轉入狀態3;③在第一個故障修復完成之前,損壞機架上的其他節點又發生了設備(節點或硬盤)故障,系統轉入狀態4。

系統處于狀態3 時,由于每個機架上最多只有一個節點發生損壞,這些故障設備沒有構成“副本集合”,不會導致數據丟失,系統會針對新發生的故障再啟動一個修復進程,有兩種狀態轉移可能:①如果某個(或其他)機架上的故障全部修復完成,只剩一個機架上有損壞數據,系統返回狀態2;②如果在兩個機架上的故障修復完成之前,損壞機架上又有其他節點(或其他節點上的硬盤)發生了故障,這些故障設備構成了一個或多個“副本集合”,系統發生數據丟失事件,進入狀態5。

系統處于狀態4 時,系統中只有一個機架發生損壞,故障設備沒有構成“副本集合”,不會導致數據丟失,系統會立即再啟動一個修復過程重構損壞數據,會有兩種狀態轉移可能:①如果某個(或某些)故障修復完成,機架上只剩一個節點有數據損壞,系統返回狀態2;②如果在兩個不同節點(或不同節點上的硬盤)故障修復完成之前,又有其他機架上發生節點(或硬盤)故障,這些故障設備構成了“副本集合”,造成數據丟失,系統轉入狀態5。

系統進入狀態5 之后,無法再繼續為用戶提供正常服務,不能再向其他狀態轉換。

2.3 主動容錯二副本系統

由于預測性能(不能達到100%的預測準確率)和預警修復能力(不能及時處理完所有的預警)的限制,主動容錯機制并不能完全避免硬盤故障的發生,再加上存在節點故障的風險,存儲系統還需要采取一定的被動容錯機制以保證系統的可靠性,所以主動容錯存儲系統的狀態轉換邏輯比較復雜。圖4 描述了采用二副本冗余機制的主動容錯存儲系統在硬盤故障預警、硬盤故障、節點故障,以及預警處理和故障修復等事件下的狀態轉換邏輯。其中:“發生預警”表示系統中有硬盤被故障預測模型檢測出即將發生故障,“預警處理”表示系統對預警硬盤采取的備份遷移操作。

圖4 主動容錯二副本系統狀態轉換模型Fig.4 State transition model for 2-way replication system with proactive fault tolerance

主動容錯二副本系統有6 個主要狀態節點:狀態1,所有設備都在健康正常運行,沒有發生任何預警和故障;狀態2,某個機架上的硬盤被預測出即將發生故障;狀態3,某個機架上發生了設備(節點或硬盤)故障;狀態4,多個機架出現了硬盤故障預警;狀態5,某個機架上發生了設備故障,同時其他機架的硬盤被檢測出存在潛在故障;狀態6,某個(或某些)數據塊的所有副本都發生了損壞,系統發生了數據丟失事件。系統存在下述幾種狀態轉換情況:

1)系統開始運行時處于狀態1,系統中的所有設備都在健康運行,此時系統有兩種狀態轉移可能:①如果預測模型發出預警,某個機架上的硬盤被檢測出即將發生故障,系統轉入狀態2;②如果某個機架上發生了設備故障,系統轉入狀態3。

2)系統出現故障預警進入狀態2 之后,會立即啟動預警處理進程,把預警硬盤上的數據遷移備份到其他健康硬盤上。從狀態2 出發,系統有四種狀態轉移可能:①預警處理過程及時完成,在預警硬盤真正發生故障之前就把危險數據遷移到了其他健康硬盤上,系統返回到健康狀態1;②預警處理完成之前,預警硬盤發生了故障,造成部分數據損壞,或預警機架上其他設備(節點或硬盤)發生了故障,系統進入狀態3;③當前預警處理完成之前,其他機架也出現故障預警,系統進入狀態4;④在預警處理完成之前,其他機架發生了設備故障,系統進入狀態5。

3)系統進入狀態3 之后,立即啟動故障修復進程,利用其他健康盤上的存活副本對損壞的數據進行重構。從狀態3 出發,系統有三種狀態轉移可能:①故障修復完成,系統中的所有數據塊都恢復至擁有兩個副本,所有設備都在健康運行,系統返回狀態1;②故障修復完成之前,其他機架出現故障預警,系統進入狀態5;③故障修復完成之前,其他機架發生設備故障,導致系統中至少有一個數據塊的所有副本全部損壞,系統進入狀態6。

4)系統處于狀態4 時,系統中運行著多個預警處理進程,對危險數據進行備份。從狀態4 出發,系統有兩種狀態轉移可能:①某些預警處理進程成功完成,系統中只剩下一個機架上有危險數據沒有備份完,系統返回到狀態2;②某個預警硬盤在備份完成之前發生了故障,預警處理失敗,或者其他設備又發生了故障,系統進入狀態5。

5)系統處于狀態5 時,系統中同時運行著故障修復進程和預警處理進程,對故障設備進行修復并備份危險數據。從狀態5 出發,系統有三種狀態轉移可能:①故障修復過程完成,通過其他存活副本將損壞的數據重構完成,系統返回到狀態4;②預警處理過程完成,消除了預警硬盤發生故障的危險,系統返回到狀態3;③在預警處理過程完成之前,預警硬盤就發生了故障,或者其他(與故障機架不同的)機架又發生了設備故障,這些并發的故障造成了數據丟失,系統進入狀態6。

6)系統進入狀態6 之后,因為有數據發生了永久性丟失,系統已無法再為用戶提供服務,所以不能再向其他狀態轉移。

2.4 主動容錯三副本系統

主動容錯三副本系統的可靠性狀態轉換邏輯非常復雜,無法完整地顯示在一個邏輯圖中,另外,主動容錯三副本系統的狀態轉換邏輯與上述二副本系統的轉換邏輯類似,所以,本文僅把發生數據丟失過程中的關鍵狀態節點列出,如圖5所示。

圖5 主動容錯三副本系統狀態轉換模型Fig.5 State transition model for 3-way replication system with proactive fault tolerance

狀態1表示系統處于完全健康運行狀態;狀態2表示系統中出現了部分設備故障及(或)硬盤故障預警,這些故障設備還沒有對系統的可靠性造成威脅,此時系統進入降級模式,啟動故障修復及(或)預警處理進程,對故障及(或)預警硬盤進行修復。

在兩種情況下,系統會進入狀態3:①兩個機架上都有一個節點由于設備故障出現數據損壞;②某個機架上的兩個節點都出現了數據損壞。此時系統進入瀕臨數據丟失的狀態,只要某些特定位置的設備發生故障,系統就會發生數據丟失事件:①如果兩個損壞機架上再有一個節點出現數據損壞;②其他機架上的某個節點出現數據損壞。這樣,系統中的這些并發故障設備構成了一個或多個“副本集合”,導致數據丟失事件的發生。

3 仿真程序

根據上述提出的系統可靠性狀態轉換邏輯,本文設計了蒙特卡洛仿真算法,模擬主動容錯存儲系統的運行,并評價系統在一定運行周期內(比如,10 a)發生數據丟失的期望次數。

仿真算法模擬了6 個事件:①節點故障事件,潛在存在于每個服務器節點上,發生時間根據節點故障的時間分布函數隨機生成;②節點故障修復完成事件,在節點故障修復進程完成時觸發,修復過程的處理時間根據節點故障修復的時間分布函數隨機生成;③硬盤故障事件,潛在存在于每個硬盤上,發生時間根據硬盤故障的時間分布函數隨機生成;④硬盤故障修復完成事件,在硬盤故障修復進程完成時觸發,修復過程的處理時間根據硬盤故障修復的時間分布函數隨機生成;⑤硬盤故障預警事件,在故障預測模型檢測到系統中有即將發生的硬盤故障時觸發,發生時間根據硬盤故障的發生時間和故障預測模型的性能指標——提前預測時間(Time In Advance,TIA)生成;⑥硬盤故障預警處理完成事件,在預警硬盤上的數據全部遷移備份完成時觸發,預警處理過程的時間根據硬盤故障預警處理的時間分布函數生成。

事件⑤和事件⑥模擬主動容錯機制在系統中的運行,事件⑤發生之后,系統立即啟動預警處理進程,把危險硬盤上的數據遷移備份到其他健康硬盤上。事件①或③發生時,算法根據系統的冗余機制檢測是否發生數據丟失事件:a)如果沒有發生數據丟失,系統立即啟動故障修復進程,利用其他健康設備上的存活數據重構故障數據;b)如果發生了數據丟失,為了維持系統規模,系統添加新的設備和數據,并為新設備生成未來的潛在故障事件。事件②、④或⑥發生時,表示故障或預警已經被修復完成,系統中加入新的設備替換故障(或危險)設備,并為新設備生成未來的潛在故障事件。

仿真算法維護了一個最小堆,用以保存當前還沒有發生的未來事件,這些事件根據發生時間的先后順序插入最小堆,最小堆頂部的事件為最先要發生的事件。系統中事件的發生時間不斷累積,直到超過預設的運行周期,仿真程序的一次運行結束,統計系統運行期間數據丟失的發生次數作為仿真結果。程序開始時,根據節點故障和硬盤故障的時間分布函數,分別為系統中的每個節點和硬盤生成一個未來的故障事件,并且根據硬盤故障預測模型的預測準確率(Failure Detection Rate,FDR)為潛在的硬盤故障生成預警事件,這些事件都根據發生時間的先后順序插入最小堆。程序運行期間,最小堆頂部的事件被彈出,模擬該事件的發生,系統根據發生事件的類型作出相應操作。

4 實驗和結果分析

本章呈現了仿真程序的實驗結果,并分析了主動容錯機制和不同系統參數對系統可靠性的影響。

4.1 實驗準備

1)系統規模:對于用戶來說,主要關心不同存儲系統在相同用戶數據容量下的可靠性差異,所以考慮如下的系統規模:對于二副本存儲系統,系統共包含200 個機架,每個機架上部署了10個節點,每個節點掛載了4個硬盤,假設硬盤的容量是4 TB,系統總共可以存儲16 000 TB的用戶數據;對于三副本系統,系統包含300 個機架,每個機架上部署了10 個節點,每個節點掛載了4 個硬盤,假設硬盤的容量是4 TB,系統也可以存儲16 000 TB的用戶數據。

2)硬盤故障和故障修復:很多前人的研究都假設硬盤故障時間服從指數分布,這個假設被Schroeder 等[16]推翻了,他們發現韋布分布函數能夠很好地模擬硬盤故障的發生。

硬盤發生故障之后,系統啟動故障重構過程,利用其他存活硬盤上的副本恢復損壞的數據,并把重構出的數據散布到系統其他健康硬盤上,同時增加新硬盤到系統,維持系統規模。通過對大量領域數據的分析,Elerath 等[18]發現韋布分布函數可以很好地擬合硬盤故障和故障修復過程的時間分布,因此,本文使用韋布分布函數模擬硬盤故障和硬盤故障修復事件在云存儲系統中的發生。Elerath等[18]從大量領域數據中分析得出三種型號硬盤的故障和修復過程的韋布分布參數,本文選擇文獻[18]表3 中A 型號SATA 硬盤的故障和修復過程的參數,詳細信息見表1。

3)節點故障和故障修復:文獻[13]報道稱在Yahoo!集群中每個月大約有0.8%的節點會發生(永久或臨時)故障,相對臨時節點故障,永久性節點故障發生的頻率小很多,因此,本文使用0.8%的年平均故障率(平均故障時間為(24 ×30 × 12)/0.8%=1 080 000 h),模擬生成副本系統中永久性節點故障。本文使用形狀參數為1、生命特征參數為1 080 000的韋布分布函數模擬節點故障。形狀參數為1 時,韋布分布函數退化為指數分布。

節點故障發生之后,節點上掛載的所有硬盤都將不能被訪問,系統會對每個掉線的硬盤啟動一個重構過程,利用其他存活硬盤上的副本恢復損壞的數據,為了維持系統規模,系統管理員會添加新的節點到系統,并會向新的設備上遷移數據以實現系統的負載均衡。故障設備上的數據總量除以可用修復帶寬,得到重構過程的運行時間,假設系統為每個故障(包括節點故障和硬盤故障)修復事件分配的帶寬一致,節點故障的修復時間為硬盤故障修復時間的4倍(每個節點上掛載4塊硬盤)。

4)硬盤故障預警和預警處理:當前已經有大量工作在研究硬盤故障預測模型,Li 等[4]的工作中提出的基于決策樹的硬盤故障預測模型,可以達到95%的預測準確率和近360 h的提前預測時間。本文設置硬盤故障預測模型的預測準確率FDR為80%,平均提前預警時間TIA為320 h,即在硬盤故障發生前平均320 h觸發預警事件。當設置FDR=0,主動容錯存儲系統退化為被動容錯系統。

硬盤故障預警事件發生之后,系統會立即啟動預警處理過程,把預警硬盤上的危險數據提前備份到其他健康的硬盤上。假設系統為預警處理分配與故障修復一致的帶寬,預警處理的完成時間與硬盤故障修復的時間相同,本文研究使用上述硬盤故障修復參數設置預警處理完成事件。

表1 列出了本文實驗的主要參數設置,如果沒有特殊說明,本文仿真實驗默認使用如表1 的參數值。其中,符號r表示系統內機架的數量,n表示每個機架上的節點數量,d表示每個節點上硬盤的數量。韋布分布函數W(α,β,γ),形狀參數用α表示,生命特征參數用β表示,位置參數用γ表示,當α=1時,韋布分布函數退化為指數分布。被動容錯系統的參數FDR設置為0。

表1 實驗參數設置Tab.1 Experimental parameter setting

對每組參數,仿真程序迭代運行100 次,最后統計所有迭代運行結果的平均值作為本組參數的實驗結果。

4.2 模型比較

Li 等[25]針對主動容錯RAID 系統和副本系統設計了數學模型和蒙特卡洛仿真模型,評價系統在硬盤故障和潛在扇區錯誤(不包含節點故障)等事件下的可靠性水平。為了驗證節點故障對副本存儲系統可靠性的影響,本文選用Li 等[25]的蒙特卡洛仿真模型與本文模型做實驗對比。對于沒有考慮節點故障的舊蒙特卡洛仿真模型,除了表1 中的參數設置外,使用文獻[18]的表3中硬盤A的潛在扇區錯誤和磁盤清洗參數。

圖6 呈現了本文所提的新評價模型和文獻[25]中的舊仿真模型,對被動/主動容錯二副本和三副本系統可靠性的評價結果。

圖6 節點故障對副本系統可靠性的影響Fig.6 Impact of node failure on reliability of replication systems

“被動二副本”“被動三副本”“主動二副本”和“主動三副本”線段上的結果由不包含節點故障的舊仿真模型[24]評價得出,“被動二副本+節點故障”“被動三副本+節點故障”“主動二副本+節點故障”和“主動三副本+節點故障”線段上的結果由本文提出的可靠性分析模型評價得出。

從圖6 可看出:①隨著運行周期的增長,副本存儲系統的可靠性在不斷降低(數據丟失次數在增加),相對于被動容錯系統,主動容錯副本存儲系統的可靠性水平的降低速度緩慢一些;②節點故障對副本存儲系統的可靠性有很大影響,尤其是在主動容錯存儲系統中,因為主動容錯機制可以消除部分硬盤故障的危害,節點故障對系統可靠性的影響更為突出(二副本系統的數據丟失概率增大2 倍左右,三副本系統的數據丟失概率增大6 倍左右)。本實驗結果表明,在研究存儲系統可靠性時,不能忽略節點故障對系統可靠性的影響。

4.3 敏感性分析

利用本文提出的可靠性分析模型,系統管理者可以方便地了解主動容錯機制以及其他系統參數對系統全局可靠性的影響,有利于構建和維護具有高可靠性的存儲系統。實驗將演示如何使用本文提出的可靠性分析模型評價不同系統參數對系統全局可靠性的影響。

4.3.1 節點故障的敏感性

本節實驗分析了隨著節點年故障率的變化,存儲系統可靠性的變化情況。本實驗設置節點的年故障率分別為0.4%、0.6%、0.8%、1.0%、1.2%、1.4%和1.6%,其他參數使用表1中的設置,結果如圖7所示。

圖7 存儲系統在不同節點故障率下的可靠性Fig.7 Reliability of storage systems under different node failure rates

從圖7 可看出:①隨著節點故障發生頻率的增大,四個系統的可靠性都存在降低的趨勢(數據丟失次數增加);②相對于被動容錯系統,主動容錯系統可靠性受節點故障率的影響更大,主要原因是主動容錯機制消除了大部分(80%)硬盤故障的危害,節點故障對數據丟失事件的“貢獻”(影響)更為突出;③相對于二副本系統,三副本系統的可靠性對節點故障率敏感性更大,主要是因為三副本系統需要更多的并發設備故障導致數據丟失,所以受節點故障率的影響更大。

4.3.2 硬盤故障的敏感性

本節實驗分析隨著硬盤故障頻率的變化,存儲系統可靠性的變化情況。本實驗通過調整硬盤故障分布函數的β參數(特征壽命)改變硬盤的故障時間,如圖8所示。

圖8 存儲系統在不同硬盤特征壽命下的可靠性Fig.8 Reliability of storage systems under different characteristic lives of disk

從圖8 可看出:①隨著硬盤個體可靠性的增強(生命特征時間的增長),四個系統的可靠性水平都得到了提升;②相對于二副本系統,三副本系統受硬盤故障時間的影響更大,主要是因為三副本系統需要更多的并發硬盤故障導致數據丟失事件的發生;③即使采用故障頻率高兩倍的硬盤(特征壽命為原來的50%),主動容錯系統(FDR=80%)也可以達到與被動容錯系統相近或更高的可靠性水平,驗證了主動容錯機制對系統可靠性提升的效果。

4.3.3 修復帶寬的敏感性

存儲設備(節點或硬盤)發生故障之后,系統會啟動故障修復過程重新構造受損的數據塊,為了維持用戶正常服務的質量,系統只會將一部分的可用帶寬分配給故障修復過程,修復帶寬的多少決定了故障修復時間的長短。故障修復時間越長,在故障修復期間再次發生設備故障的概率就越大,系統發生數據丟失的危險也就越大。

為了驗證修復帶寬對系統可靠性的影響,本實驗通過調節故障修復分布函數的β參數改變硬盤故障和節點故障的修復時間,實驗比較了存儲系統在不同故障修復時間下的可靠性水平,結果如圖9 所示。本文假設系統為所有故障修復過程分配一樣的修復帶寬,所以節點故障修復的時間是硬盤故障修復時間的4倍(每個節點上掛載4塊硬盤)。

圖9 存儲系統在不同故障修復時間下的可靠性Fig.9 Reliability of storage systems under different failure repair time

從圖9 可看出:①正如上述分析所示,隨著重構時間的增長,四個系統的可靠性都呈現出不同程度的降低趨勢;②相對于二副本系統,三副本存儲系統只有在更多的設備故障下才會發生數據丟失,所以對重構時間具有更強的敏感性;③即使將修復帶寬降低66%,主動容錯存儲系統也可以達到或超越傳統被動容錯系統的可靠性水平,這表明在主動容錯機制的幫助下,存儲系統可以節省對網絡資源的消耗。

4.3.4 故障預測準確率的敏感性

為了定量評價主動容錯機制對存儲系統可靠性的提升效果,本實驗比較了存儲系統在不同故障預測準確率下的可靠性水平。實驗結果如圖10所示。

圖10 存儲系統在不同故障檢測率下的可靠性Fig.10 Reliability of storage systems under different failure detection rates

從圖10 中可以清楚地看出:①故障預測模型的準確率越高,主動容錯機制可以消除越多的潛在硬盤故障,存儲系統的可靠性越強;②對于二副本系統,當故障預測模型的準確率達到50%時,系統的可靠性提升了1 倍(數據丟失數量降低了50%);③對于三副本系統,當準確率達到50%時,系統的數據丟失次數減少了75%(可靠性提升了3 倍),這表明與二副本系統相比,三副本系統對預測模型性能更敏感;④當FDR=100%時,主動容錯機制幾乎可以消除所有的潛在硬盤故障(取決于TIA),系統的數據丟失只會由節點故障所導致,二副本存儲系統的數據丟失量降低近95%,三副本存儲系統的數據丟失量降低了97%。

4.3.5 系統規模的敏感性

本節實驗分析了隨著系統有效存儲容量的變化,存儲系統可靠性的變化情況。假設每個硬盤的容量都是4 TB,通過調整系統內機架的數量,從而改變系統的存儲容量,比如,設置二副本系統的機架數r=300,三副本系統的機架數r=450,使得四個系統中的有效存儲容量都是24 000 TB。結果如圖11所示。

圖11 存儲系統在不同存儲容量下的可靠性Fig.11 Reliability of storage systems under different storage capacities

從圖11 中可以看出:隨著系統有效容量的增大,四個存儲系統的可靠性呈現出了相近的降低趨勢:系統有效規模每增大一倍,存儲系統的數據丟失數量將增加近兩倍。系統容量的擴大,需要增加存儲設備(包括節點服務器和硬盤),在相同容錯能力下,可能發生故障的設備增多了,導致系統發生更多的數據丟失事件。

5 結語

本文針對采用副本冗余機制的存儲系統提出了系統可靠性轉移模型,分析了在主動容錯機制、節點故障、硬盤故障以及故障修復事件下的系統狀態轉換邏輯,并根據這些狀態轉換邏輯、采用蒙特卡洛仿真算法構建了存儲系統的可靠性分析模型,評估系統在一定運行周期內發生數據丟失的期望次數。本文采用更接近實際的韋布分布函數模擬硬盤故障和故障修復事件的時間分布,定量評價了主動容錯機制、節點故障、節點故障修復、硬盤故障、硬盤故障修復對副本系統可靠性的影響。

另外,本文利用仿真程序驗證了節點故障對云存儲系統可靠性的影響,并分析了主動容錯機制和其他系統參數對系統可靠性的影響。利用本文提出的可靠性分析模型,系統管理者在構建或維護系統時,可以靈活方便地評估不同系統參數對系統可用性和可靠性的影響,從而有助于高可靠存儲系統的搭建和維護。

本文研究使用Weibull分布函數模擬故障修復的時間,沒有細致考慮副本數據塊的分發方式以及故障恢復機制對修復時間的影響。在未來的研究中,本文作者計劃根據副本數據塊在系統中的散布方式、可用的網絡修復帶寬以及并發的故障數量計算故障修復的時間,更真實準確地評價主動容錯存儲系統的可靠性。

猜你喜歡
存儲系統機架副本
無人駕駛替代農藥噴霧車機架動靜態特性分析
兆瓦級風電機組前機架結構強度優化設計研究
天河超算存儲系統在美創佳績
面向4K/8K的到來 存儲該怎么辦?
最多支持36塊顯卡 德國水冷品牌AlphaCool推出礦機機架
國家知識產權局公告:專利證書改版
新副本“戰歌之城”怨靈BOSS面面觀
起重脫鉤 砸死操作工
《口袋西游—藍龍》新副本“幽冥界”五大萌點
走出孤獨囧境
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合