本文來自網易雲社區服務器
做者:孫建良網絡
從上文分佈式存儲系統可靠性-系統估算示例 中詳細分析了系統可靠性量化的估算手段,而且給出了示例代碼,代碼的主要輸入參數爲以下所示。運維
LoseRate(S, N, RepNum, T, AFR) N:系統中磁盤的數量(包括磁盤的容量信息) S:系統Copyset的數量 RepNum:存儲的備份數量 T:壞盤狀況下的恢復時間 AFR:磁盤的年度故障率
這裏基本能夠揭示,在一個固定大小爲N的分佈式存儲系統中,影響存儲可靠性的因素主要爲S、RepNum、T、AFR。接下來咱們分別從這幾個方面來分析,在分佈式系統設計和運維過程當中的一注意點。分佈式
排除人爲因素和系統Bug,丟數據的核心緣由是磁盤發生不可逆故障形成的。當前磁盤的過保時間大概是4年,4年後磁盤的故障率會急劇上升,一樣從成本上考慮,隨着磁盤技術的不斷提高,存儲密度每4年能夠有很大得上升,替換使用新的磁盤更佳具有成本優點。如繼續讓老的磁盤在線上提供服務,系統丟失數據的風險會變大。根據google的生產環境的數據顯示,磁盤的AFR數據以下。性能
針對這一特性,咱們潛在可以採起的措施包括google
1 及時替換老的或者故障磁盤spa
在系統設計層面上須要可以記錄每一塊硬盤的品牌、系列、上線日期等,對於常常出現壞塊和頻繁出錯的磁盤須要儘快進行,而且對於快要使用年限的磁盤進行替換下線。.net
2 根據smart信息預測換盤設計
採集磁盤的smart的信息,分析smart信息,對磁盤的換盤行爲作預測工做。blog
顯然副本數是影響數據可靠性的關鍵因素。這裏咱們經過量化的方式來衡量副本數對可靠性的影響。
使用的系統示例分佈式存儲系統可靠性-系統估算示例 。考慮副本數 ∈[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等方面在在各方面權衡選擇系統的副本數。
單從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的方法。
單從修復時間考慮,修復時間越快,丟失機率越小。由於同時發生壞盤的機率隨着時間的縮短可以獲得很是有效的下降。這從分佈式存儲系統可靠性-如何估算 中介紹壞盤服從的柏鬆分佈中能夠看到。
以下爲N=7200, AFR=0.04狀況下;在單位時間∈[1,24] 內壞 ∈(3,6)塊盤的機率;從圖表中咱們能夠看到,從20小時變爲2小時,時間段內損壞N塊盤(3~6)的機率都能獲得3個數量級以上的提高。
總結來講,爲了提升存儲系統數據可靠性,首先在系統容許的成本範圍內選擇合適的副本數,再次在系統設計中咱們首先優先考慮加快數據恢復時間,在此基礎上減少系統的copyset數量。使得在既定的成本下達到儘量高的可靠性。
雲硬盤是網易雲提供的數據持久化服務,爲雲服務器和容器服務提供彈性塊存儲設備。
網易雲免費體驗館,0成本體驗20+款雲產品!
更多網易研發、產品、運營經驗分享請訪問網易雲社區。
相關文章:
【推薦】 用雙十一的故事串起碎片的網絡協議(上)