很多人遇到過伺服器raid5掛掉,往往掉乙個盤後,第二個盤也立刻掛掉。
引用:raid 5
也是以資料的校驗位來保證資料的安全,但它不是以單獨硬碟來存放資料的校驗位,而是將資料段的校驗位互動存放於各個硬碟上。這樣,任何乙個硬碟損壞,都可以根據其它硬碟上的校驗位來重建損壞的資料。硬碟的利用率為
n-1。如果掛掉兩個盤,資料就玩完了。
理論上兩個硬碟同時失效的概率是很低的,但為什麼會這樣呢?
引用:從數學角度說,每個磁碟的平均無故障時間
(mtbf)
大約為50
萬至150
萬小時( 也就是每
50~ 150
年發生一次硬碟損壞
) 。實際往往不能達到這種理想的情況,在大多數散熱和機械條件下,都會造成硬碟正常工作的時間大幅減少。考慮到每個磁碟的壽命不同,陣列中的任何磁碟都可能出現問題,從統計學角度說,陣列中
n 個磁碟發生故障的機率比單個磁碟發生故障的機率要大
n 倍。結合上述因素,如果陣列中的磁碟數量合理,且這些磁碟的平均無故障時間
(mtbf)
較短,那麼在磁碟陣列的預期使用壽命過程中,就很有可能發生磁碟故障
( 比方說每幾個月或每隔幾年就會發生一次故障
) 。
兩塊磁碟同時損壞的機率有多大呢
(「同時
」 就是指一塊磁碟尚未完全修復時另一塊磁碟也壞掉了
)?如果說
raid 5
陣列的mtbf
相當於mtbf^2
,那麼這種機率為每隔
10^15
個小時發生一次
( 也就是
1 萬多年才出現一次
) ,因此不管工作條件如何,發生這種情況的概率是極低的。從數學理論角度來說,是有這種概率,但在現實情況中我們並不用考慮這一問題。不過有時卻是會發生兩塊磁碟同時損壞的情況,我們不能完全忽略這種可能性,實際兩塊磁碟同時損壞的原因與
mtbf
基本沒有任何關係。
對這種情況來說,這裡首先要引入乙個一般人不常接觸到的概念:
ber
硬碟誤位元速率
, 英文是
ber(bit error rate),
是描述硬碟效能的乙個非常重要的引數
, 是衡量硬碟出錯可靠性的乙個引數。
這個引數代表你寫入硬碟的資料,在讀取時遇到
不可修復的讀錯誤的概率。從統計角度來說也比較少見,一般來說是指讀取多少位後會出現一次讀取錯誤。
隨著硬碟容量增加,驅動器讀取資料的誤讀率就會增加,而硬碟容量暴漲,誤位元速率的比例一直保持相對增加。
乙個1tb
的驅動器是需要更多讀取整個驅動器,這是在
raid
重建期間發生錯誤的概率會比
300g
驅動器遇到錯誤的機率大。
那這個錯誤的機率到底有多大呢?或者說,我們寫入多少
gb資料,才會遇到
1byte
的讀取錯誤呢?
看這篇文章:
對於不同型別的硬碟(以前企業級、伺服器、資料中心級硬碟用
scsi/
光纖,商用、民用級別是
ide;現在對應的則是
sas/sata
; 他們的 mrbf
(平均無故障時間)是接近的,但是
ber便宜的
sata
硬碟要比昂貴的
scsi
硬碟的誤位元速率(
ber)要高得多。
也就是說,出現某個
sector
無法讀取的情況,
sata
要比scsi
嚴重得多。
具體區別在韌體上:遇到讀取不過去,或者寫入不過去的壞道時,家用硬碟會花費
1 分鐘以上的時間去嘗試糾正錯誤,糾正不了就直接用備用扇區代替,這個時間超過陣列控制器能容忍的限度,所以遇到這種情況直接掉盤;企業級的磁碟會把這項工作放在後台進行,不需要停頓
1 分鐘左右的時間,從而不影響陣列執行。在
ber
硬碟誤位元速率上沒有任何區別。
按照文中的計算,乙個
1tb的硬碟,通常你無法讀取所有
sector
的概率達到了
56%,因此你用便宜的大容量
sata
盤,在出現硬碟故障的情況下重建
raid
的希望是:無法實現。 用
1tb的 sata
硬碟做raid5
的話,當你遇到乙個硬碟失效的情況,幾乎剩下的兩個以上硬碟(
raid5
最少組合是
3 個)鐵定會遇到乙個硬碟讀取錯誤,從而重建失敗。
所以,以前小硬碟做
raid5
,基本很少遇到同時掛掉兩個盤的情況;現在硬碟大了,出問題的概率也越來越大了。
對於跑raid
的使用者,對整個硬碟進行讀取的事情經常發生。即使系統足夠和諧,知道不對你報告那些出現在你從不讀取的檔案中的壞道,但是也只是略過了報告這一步:它還是會找到所有的壞道,
56%就來了。
還有所謂的監控專用企業級
sata
,其原理就是在韌體上做手腳,讓硬碟即使遇到寫入的資料讀取錯誤,也不管三七二十一直接跳過,不再重試讀取(標準硬碟的讀取方式是遇到某個扇區
crc錯誤自動重新再去讀,直到讀到正確的資料為止)。這對監控資料來說是理所當然的(大多數監控的硬碟都是在不停地寫入,但是很少需要讀取),除非遇到出現問題需要重現影像時。
現有的raid5
陣列的磁碟中有未檢測到的錯誤的話,
hot spare
沒辦法解決。
hot spare
只能在某個磁碟下線的時候,及時的替換下線的盤進行
raid
重建,如果其他磁碟有錯誤的話,重建還是會可能失敗。
解決方法還是要在陣列健康狀態下,進行定期或者其他方式的錯誤檢查。
一般的硬體陣列卡,也就是插在主機板
pci/pcix/pcie/
或者主機板整合的
raid5
,壓根就沒資料巡檢(
scrub
)功能。企業級的資料儲存,也只有到盤陣級別(比如
ibm ds3000/4000/5000
, dell md3000....etc
)才有這類功能,但是你也看不到檢查的結果,最多能在日誌裡看到某個硬碟
crc失敗,然後跳紅燈掉出來,陣列櫃告警通知你換硬碟。你別想知道這個硬碟到底是徹底掛了呢,還是有讀取錯誤,還是有壞道。。。總之兩眼一抹黑。(
zfs上的
raidz
有資料巡檢(
scrub
)功能)
總結遇到
raid5
一次掛掉倆盤的概率 1、
使用越大容量的硬碟做
raid5
,遇到ber
扇區的概率越大;比如用
100g
硬碟做raid5
就比用1tb
的安全; 2、
使用越多盤數的硬碟做
raid5
,遇到ber
扇區的概率越大;比如用
3 個盤做的
raid5
,比6 個盤做的
raid5
安全; 3、
使用越便宜的硬碟做
raid5
,遇到ber
扇區的概率越大;比如用
scsi/fc/sas
盤比用ide/sata
的 raid5
安全; 4、
raid5
裡面存放的資料越多,塞得越滿,遇到
ber
扇區的概率越大;比如存了
100g
資料的比存了
1tb資料的
raid5
安全;(
rebuid
時只讀取存過資料的扇區,某些卡則不管三七二十一要讀完整個盤)
raid1/raid10
參與重建的只有乙個盤
, 與
raid5
所有盤都需要參與重建相比,故障概率降低;
raid1
某一組磁碟故障,也不需要強制上線的操作,因為資料仍然存在,不需要組
raid
也能讀取,哪怕是換到其他沒有
raid
卡的機器上資料仍能讀出;而
raid5
如果不能強制第二個掉下的硬碟上線,你一點東西都讀不到。
對於db來說:做raid 1+0 是最好不過啦!(備份時必不可少的;
當 raid
處理降級狀態時,如重要資料容量不大,建議先做備份,當然這種備份應該是異機的,不可備份至當前已降級的
raid
中。如果在
rebuild
當中出現另外硬碟離線的情況導致
raid
卷 offline
,切不可重建
raid
,如確定後離線的硬碟,可通過強制上線恢復資料
( 有些控制器沒有選項,就沒辦法了
) 本文出自 「技術成就夢想」 部落格,請務必保留此出處
Raid5磁碟陣列raid資訊丟失資料恢復過程
北亞資料恢復中心接收到客戶的一台hp dl380 g4伺服器,伺服器使用hp smart array控制器掛載了一台國產磁碟陣列,磁碟陣列由14塊146g scsi硬碟組成一組raid5。作業系統為linux,構建了nfs ftp,作為公司內部檔案伺服器使用。由於伺服器機房進行搬遷,搬遷過程中管理員...
我理解的RAID5
raid5 就是做奇偶校驗 異或操作 它假定兩塊硬碟同時壞的概率非常非常低,n塊硬碟做了raid5之後,可以用的是n 1塊硬碟的容量 例如,4塊硬碟,每塊硬碟的相應位做奇偶校驗 這也解釋了為什麼做raid之後,大容量的硬碟只能被識別出和其他硬碟大小相同的容量 1 2 3 4 0 0 0 0 0 0 ...
恢復磁碟陣列RAID 5損壞硬碟
恢復磁碟陣列raid 5損壞硬碟 恢復步驟如下 mdadm manage dev md0 fail dev sdc1 告訴陣列硬碟sdc1已損壞,陣列將不再向該硬碟寫入資料 mdadm manage dev md0 remove dev sdc1 把硬碟sdc1從硬碟中移除 新增一塊硬碟 需重啟系統...