分佈式存儲系統可靠性系列三:設計模式

本文來自網易雲社區服務器

做者:孫建良網絡


從上文分佈式存儲系統可靠性-系統估算示例 中詳細分析了系統可靠性量化的估算手段,而且給出了示例代碼,代碼的主要輸入參數爲以下所示。運維

LoseRate(S, N, RepNum, T, AFR)
N:系統中磁盤的數量(包括磁盤的容量信息)
S:系統Copyset的數量
RepNum:存儲的備份數量
T:壞盤狀況下的恢復時間
AFR:磁盤的年度故障率

這裏基本能夠揭示,在一個固定大小爲N的分佈式存儲系統中,影響存儲可靠性的因素主要爲S、RepNum、T、AFR。接下來咱們分別從這幾個方面來分析,在分佈式系統設計和運維過程當中的一注意點。分佈式

1 年故障率(AFR)

排除人爲因素和系統Bug,丟數據的核心緣由是磁盤發生不可逆故障形成的。當前磁盤的過保時間大概是4年,4年後磁盤的故障率會急劇上升,一樣從成本上考慮,隨着磁盤技術的不斷提高,存儲密度每4年能夠有很大得上升,替換使用新的磁盤更佳具有成本優點。如繼續讓老的磁盤在線上提供服務,系統丟失數據的風險會變大。根據google的生產環境的數據顯示,磁盤的AFR數據以下。性能

針對這一特性,咱們潛在可以採起的措施包括google

1 及時替換老的或者故障磁盤spa

在系統設計層面上須要可以記錄每一塊硬盤的品牌、系列、上線日期等,對於常常出現壞塊和頻繁出錯的磁盤須要儘快進行,而且對於快要使用年限的磁盤進行替換下線。.net

2 根據smart信息預測換盤設計

採集磁盤的smart的信息,分析smart信息,對磁盤的換盤行爲作預測工做。blog

2 副本數(RepNum)

顯然副本數是影響數據可靠性的關鍵因素。這裏咱們經過量化的方式來衡量副本數對可靠性的影響。

使用的系統示例分佈式存儲系統可靠性-系統估算示例 。考慮副本數 ∈[3,6] 狀況下的可用性,以下所示。

RepNum 可靠性(年故障率)
3 1.14*10E-6
4 2.78*10E-8
5 3.18*10E-10
6 3.32*10E-12
7 2.33*10E-14

從上表能夠看出,增長副本可使得可靠性獲得數量級上的提高,可是成本和寫入性能上會給系統帶來必定的負擔。產品能夠從數據的重要性,系統自己的workload等方面在在各方面權衡選擇系統的副本數。

3 Copyset數目(S)

單從copyset 這一因素考慮,咱們基本能夠肯定CopySet越多丟數據機率會愈大,這咱們能夠從分佈式存儲系統可靠性-如何估算  文中 第2節「數據丟失與copyset(複製組)」 看出。

如下,咱們一樣以Copyset 與 丟失數據機率具體看CopySet對可靠性的影響,使用系統示例一樣爲分佈式存儲系統可靠性-系統估算示例中的示例,隨機狀況下CopySet數量爲S

CopySetsNum 可靠性(年故障率)
S 1.14*10E-6
S/2 5.74*10E-7
S/4 2.87*10E-7
S/8 1.43*10E-7
S/16 7.17*10E-8

從上表咱們能夠看到,減少CopySet數量對於可靠性的影響基本是線性。

那麼如何規劃系統中CopySet的數量。在隨機策略狀況下,CopySet的數量越多,說明一個磁盤上的數據打得越散,那麼一塊磁盤上對應的數據的副本分佈在更多的磁盤上,能夠得到更高的恢復帶寬,壞盤的恢復時間越短,從而進一步下降丟失數據的風險。可是在現實系統中,爲了保障數據對外服務的帶寬能力。通常來講用於系統恢復的帶寬不會超過20%,因此T級別盤可以在1個小時內恢復已是很是不錯的。

好比一塊8T盤1小時恢復所須要的帶寬  8*1024/3600 ~= 2.27 GB,假設每塊磁盤可以提供的恢復帶寬爲10MB,那麼只須要 2.27*1024 /20 ~= 106 塊盤參與便可,也就是說一塊磁盤的數據只須要打散在106塊磁盤中便可,不用過於分散。在隨機放置副本狀況下,咱們能夠控制分片大小來達到減少copyset的目的 分片大小 ~= 8*1024/106 = 77GB。 這種清下,可靠性能夠提升到1.49  10E-7 。 後續咱們會介紹更佳有效的控制系統copyset的方法。

4 修復時間(T)

單從修復時間考慮,修復時間越快,丟失機率越小。由於同時發生壞盤的機率隨着時間的縮短可以獲得很是有效的下降。這從分佈式存儲系統可靠性-如何估算 中介紹壞盤服從的柏鬆分佈中能夠看到。

以下爲N=7200, AFR=0.04狀況下;在單位時間∈[1,24] 內壞 ∈(3,6)塊盤的機率;從圖表中咱們能夠看到,從20小時變爲2小時,時間段內損壞N塊盤(3~6)的機率都能獲得3個數量級以上的提高。

5 總結

總結來講,爲了提升存儲系統數據可靠性,首先在系統容許的成本範圍內選擇合適的副本數,再次在系統設計中咱們首先優先考慮加快數據恢復時間,在此基礎上減少系統的copyset數量。使得在既定的成本下達到儘量高的可靠性。


雲硬盤是網易雲提供的數據持久化服務,爲雲服務器和容器服務提供彈性塊存儲設備。


網易雲免費體驗館,0成本體驗20+款雲產品!

更多網易研發、產品、運營經驗分享請訪問網易雲社區


相關文章:
【推薦】 用雙十一的故事串起碎片的網絡協議(上)

相關文章
相關標籤/搜索