磁盤(pán)容錯(cuò)是指在子系統(tǒng)出現(xiàn)硬盤(pán)錯(cuò)誤或硬盤(pán)故障時(shí),可以保證數(shù)據(jù)完整性和數(shù)據(jù)處理能力。RAID控制卡通過(guò)冗余的硬盤(pán)組在RAID 1、5、6、10、50、60上實(shí)現(xiàn)此功能。
在RAID 1中,由于數(shù)據(jù)鏡像存儲(chǔ)于成對(duì)的硬盤(pán)上,因此在成對(duì)的硬盤(pán)中的一個(gè)產(chǎn)生錯(cuò)誤或故障時(shí),不會(huì)造成數(shù)據(jù)丟失。同理,在RAID 5中,允許1個(gè)硬盤(pán)故障;在RAID 6中,允許2個(gè)硬盤(pán)故障。
而對(duì)于包含多個(gè)子組的RAID,RAID 10、50允許故障盤(pán)的個(gè)數(shù)與子組數(shù)相同,但是要求每個(gè)子組只能包含1個(gè)故障盤(pán)。RAID 60允許故障盤(pán)的個(gè)數(shù)為子組數(shù)的2倍,要求每個(gè)子組最多包含2個(gè)故障盤(pán)。
RAID 0不支持容錯(cuò)特性,當(dāng)RAID 0中的硬盤(pán)故障時(shí),該RAID失效,數(shù)據(jù)丟失。
容錯(cuò)性能提高了系統(tǒng)的可用性,即硬盤(pán)故障時(shí),系統(tǒng)仍可正常運(yùn)行。因此,在故障修復(fù)流程中,容錯(cuò)是非常重要的特性。
1 一致性校驗(yàn)
針對(duì)有冗余功能的RAID 1、5、6、10、50、60,RAID控制卡可以對(duì)RAID組的硬盤(pán)數(shù)據(jù)進(jìn)行一致性校驗(yàn),對(duì)硬盤(pán)數(shù)據(jù)進(jìn)行檢驗(yàn)和計(jì)算,并與對(duì)應(yīng)的冗余數(shù)據(jù)進(jìn)行比較。如果發(fā)現(xiàn)有數(shù)據(jù)不一致的情況,會(huì)嘗試做自動(dòng)修復(fù)并保存錯(cuò)誤信息。
由于RAID 0不具備冗余性,因此不支持一致性校驗(yàn)。
2 熱備份
RAID控制卡的熱備份特性由熱備盤(pán)和緊急備份功能實(shí)現(xiàn)。
熱備盤(pán)
熱備盤(pán)是硬盤(pán)系統(tǒng)中的一個(gè)獨(dú)立的硬盤(pán),當(dāng)RAID組中的硬盤(pán)故障時(shí),熱備盤(pán)自動(dòng)取代故障盤(pán)作為成員盤(pán),并在熱備盤(pán)上重構(gòu)故障盤(pán)數(shù)據(jù)。
在RAID控制卡的管理界面或命令行工具中,可以指定容量大于或等于RAID組成員盤(pán),且介質(zhì)類(lèi)型及接口與成員盤(pán)相同的空閑盤(pán)作為RAID組的熱備盤(pán)。
RAID控制卡支持的熱備盤(pán)包括下面兩種:
全局熱備盤(pán),為RAID控制卡上所有已配置的RAID組所共有,1塊RAID控制卡中可配置1個(gè)或多個(gè)全局熱備盤(pán)。當(dāng)任意RAID組內(nèi)的成員盤(pán)故障時(shí),全局熱備盤(pán)均可自動(dòng)替代。
局部熱備盤(pán),為RAID控制卡上某個(gè)指定的RAID組所專(zhuān)有,每個(gè)RAID組都可以配置1個(gè)或多個(gè)局部熱備盤(pán)。當(dāng)指定RAID組內(nèi)的成員盤(pán)故障時(shí),局部熱備盤(pán)可自動(dòng)替換。
熱備盤(pán)有如下特性:
熱備盤(pán)僅用于具有冗余功能的RAID組,包括RAID 1、5、6、10、50、60。
熱備盤(pán)僅用于替代同一RAID控制卡上的故障盤(pán)。
緊急備份
緊急備份功能,是指任意一個(gè)具備冗余功能的RAID組中出現(xiàn)成員盤(pán)故障且沒(méi)有指定熱備盤(pán)時(shí),RAID控制卡下屬的空閑盤(pán)會(huì)自動(dòng)替代故障成員盤(pán)并進(jìn)行重構(gòu),避免數(shù)據(jù)丟失。
緊急備份要求用于備份的空閑盤(pán)容量大于等于成員盤(pán)容量,且介質(zhì)類(lèi)型與成員盤(pán)相同。
3 RAID重構(gòu)
當(dāng)RAID組中出現(xiàn)故障盤(pán)時(shí),可以通過(guò)RAID控制卡的數(shù)據(jù)重構(gòu)功能,將故障盤(pán)中的數(shù)據(jù)在新盤(pán)上重構(gòu)。數(shù)據(jù)重構(gòu)功能僅適用于具有冗余功能的RAID 1、5、6、10、50、60。
RAID控制卡支持熱備盤(pán)自動(dòng)重構(gòu)故障成員盤(pán)數(shù)據(jù)。當(dāng)RAID組配置了可用的熱備盤(pán)時(shí),在成員盤(pán)故障的情況下,熱備盤(pán)自動(dòng)替換故障盤(pán),進(jìn)行數(shù)據(jù)重構(gòu);當(dāng)RAID組沒(méi)有可用的熱備盤(pán)時(shí),只有更換新盤(pán)后才可進(jìn)行數(shù)據(jù)重構(gòu)。當(dāng)熱備盤(pán)開(kāi)始數(shù)據(jù)重構(gòu)后,故障的成員盤(pán)就被標(biāo)注為可移除狀態(tài)。如果在數(shù)據(jù)重構(gòu)過(guò)程中系統(tǒng)下電,那么在系統(tǒng)重新啟動(dòng)后,RAID控制卡會(huì)繼續(xù)執(zhí)行數(shù)據(jù)重構(gòu)的任務(wù)。
重構(gòu)率,即數(shù)據(jù)重構(gòu)任務(wù)在系統(tǒng)運(yùn)行的所占用CPU資源的比率,可設(shè)置為0%~100%。0%表示數(shù)據(jù)重構(gòu)任務(wù)只有系統(tǒng)當(dāng)前沒(méi)有任何其他任務(wù)運(yùn)行時(shí),才會(huì)啟動(dòng)數(shù)據(jù)重構(gòu)任務(wù)。100%表示數(shù)據(jù)重構(gòu)任務(wù)占用所有CPU資源。重構(gòu)率可由用戶(hù)自行設(shè)置,建議根據(jù)系統(tǒng)的實(shí)際情況設(shè)置一個(gè)合適的取值。
4 虛擬磁盤(pán)的讀寫(xiě)策略
在創(chuàng)建虛擬磁盤(pán)時(shí),會(huì)需要對(duì)其數(shù)據(jù)讀寫(xiě)策略進(jìn)行定義,以規(guī)范后續(xù)虛擬磁盤(pán)運(yùn)行過(guò)程中數(shù)據(jù)的讀寫(xiě)方式。
數(shù)據(jù)讀策略
在配置界面中一般體現(xiàn)為“Read Policy”。RAID控制卡支持如下兩種數(shù)據(jù)讀策略:
預(yù)讀取方式:在配置界面中一般有“Always Read Ahead”、“Read Ahead”、“Ahead”等配置選項(xiàng)。使用此策略后,從虛擬磁盤(pán)中讀取所需數(shù)據(jù)時(shí),會(huì)把后續(xù)數(shù)據(jù)同時(shí)讀出放在Cache中,用戶(hù)隨后訪問(wèn)這些數(shù)據(jù)時(shí)可以直接在Cache中命中,將減少硬盤(pán)尋道操作,節(jié)省響應(yīng)時(shí)間,提高了數(shù)據(jù)讀取速度。
要使用該策略,要求RAID控制卡支持?jǐn)?shù)據(jù)掉電保護(hù)功能,但如果此時(shí)超級(jí)電容異常,可能導(dǎo)致數(shù)據(jù)丟失。
非預(yù)讀取方式:使用此策略后,RAID控制卡接收到數(shù)據(jù)讀取命令時(shí),才從虛擬磁盤(pán)讀取數(shù)據(jù),不會(huì)做預(yù)讀取的操作。
數(shù)據(jù)寫(xiě)策略
在配置界面中一般體現(xiàn)為“Write Policy”。RAID控制卡支持如下數(shù)據(jù)寫(xiě)策略:
回寫(xiě):在配置界面中一般體現(xiàn)為“Write Back”等字樣。使用此策略后,需要向虛擬磁盤(pán)寫(xiě)數(shù)據(jù)時(shí),會(huì)直接寫(xiě)入Cache中,當(dāng)寫(xiě)入的數(shù)據(jù)積累到一定程度,RAID控制卡才將數(shù)據(jù)刷新到虛擬磁盤(pán),這樣不但實(shí)現(xiàn)了批量寫(xiě)入,而且提升了數(shù)據(jù)寫(xiě)入的速度。當(dāng)控制卡Cache收到所有的傳輸數(shù)據(jù)后,將給主機(jī)返回?cái)?shù)據(jù)傳輸完成信號(hào)。
要使用該策略,要求RAID控制卡支持?jǐn)?shù)據(jù)掉電保護(hù)功能,但如果此時(shí)超級(jí)電容異常,可能導(dǎo)致數(shù)據(jù)丟失。
直寫(xiě):在配置界面中一般有“Write Through”等選項(xiàng)。使用此策略后,RAID控制卡向虛擬磁盤(pán)直接寫(xiě)入數(shù)據(jù),不經(jīng)過(guò)Cache。當(dāng)硬盤(pán)子系統(tǒng)接收到所有傳輸數(shù)據(jù)后,控制卡將給主機(jī)返回?cái)?shù)據(jù)傳輸完成信號(hào)。
此種方式不要求RAID控制卡支持?jǐn)?shù)據(jù)掉電保護(hù)功能,即使超級(jí)電容故障,也無(wú)影響。該寫(xiě)策略的缺點(diǎn)是寫(xiě)入速度較低。
與BBU相關(guān)的回寫(xiě):在配置界面中一般有“Write Back with BBU”等選項(xiàng)。使用此策略后,當(dāng)RAID控制卡BBU在位且狀態(tài)正常時(shí),RAID控制卡到虛擬磁盤(pán)的寫(xiě)操作會(huì)經(jīng)過(guò)Cache中轉(zhuǎn)(即回寫(xiě)方式);當(dāng)RAID控制卡BBU不在位或BBU故障時(shí),RAID控制卡到虛擬磁盤(pán)的寫(xiě)操作會(huì)自動(dòng)切換為不經(jīng)過(guò)Cache的直接寫(xiě)入(即寫(xiě)通方式)。
強(qiáng)制回寫(xiě):在配置界面中一般體現(xiàn)為“Write Back Enforce”、“Always Write Back”等字樣。在RAID控制卡無(wú)電容或電容損壞的情況下,強(qiáng)制使用“Write Back”模式。
當(dāng)服務(wù)器出現(xiàn)異常下電時(shí),如果電容不在位或在充電狀態(tài)下,RAID控制卡中DDR(即Cache)的寫(xiě)數(shù)據(jù)將會(huì)丟失。不推薦使用該模式。
5 數(shù)據(jù)掉電保護(hù)
掉電保護(hù)的原理
數(shù)據(jù)寫(xiě)入RAID控制卡高速緩存的速度大于數(shù)據(jù)寫(xiě)入硬盤(pán)的速度,一次在服務(wù)器進(jìn)行大量寫(xiě)操作時(shí),都使用RAID控制卡高速緩存來(lái)提升系統(tǒng)性能。
開(kāi)啟RAID控制卡高速緩存可提升整機(jī)寫(xiě)性能,當(dāng)服務(wù)器寫(xiě)壓力減小或RAID控制卡高速緩存將寫(xiě)滿(mǎn)時(shí),數(shù)據(jù)再由RAID控制卡高速緩存寫(xiě)入硬盤(pán)。
開(kāi)啟RAID控制卡高速緩存提升寫(xiě)性能的同時(shí),也增大了數(shù)據(jù)丟失的風(fēng)險(xiǎn),在整機(jī)意外掉電時(shí),RAID控制卡高速緩存中的數(shù)據(jù)將會(huì)丟失。
為了提升整機(jī)的高讀寫(xiě)性能和RAID控制卡高速緩存中數(shù)據(jù)的安全,可為RAID控制卡配置超級(jí)電容。超級(jí)電容保護(hù)模塊的原理是在發(fā)生系統(tǒng)意外掉電時(shí),利用超級(jí)電容供電,將RAID控制卡高速緩存中的數(shù)據(jù)寫(xiě)入超級(jí)電容模塊中的NAND Flash中永久保存。
超級(jí)電容電量校準(zhǔn)
由于數(shù)據(jù)保護(hù)需要超級(jí)電容的配合,為了記錄超級(jí)電容的放電曲線,以便RAID控制卡了解超級(jí)電容的狀態(tài),例如最大和最小電壓等,同時(shí)為了延長(zhǎng)超級(jí)電容的壽命,RAID控制卡默認(rèn)啟動(dòng)超級(jí)電容自動(dòng)校準(zhǔn)模式。
RAID控制卡通過(guò)如下所述的三段式充放電操作對(duì)超級(jí)電容的電量進(jìn)行校準(zhǔn),使其保持在一個(gè)相對(duì)穩(wěn)定的值。
1.RAID控制卡將超級(jí)電容的電量充到最大值。
2.自動(dòng)啟動(dòng)校準(zhǔn)進(jìn)程,將超級(jí)電容完全放電。
3.重新開(kāi)始充電,直至達(dá)到最大電量。
超級(jí)電容電量校準(zhǔn)過(guò)程中,RAID控制卡寫(xiě)策略自動(dòng)調(diào)整為“Write Through”模式以保證數(shù)據(jù)完整性,此時(shí)RAID控制卡性能會(huì)降低。電量校準(zhǔn)的時(shí)間取決于超級(jí)電容充放電速度。
6 硬盤(pán)條帶化
當(dāng)多個(gè)進(jìn)程同時(shí)訪問(wèn)一個(gè)硬盤(pán)時(shí),可能會(huì)出現(xiàn)硬盤(pán)沖突。大多數(shù)硬盤(pán)系統(tǒng)都對(duì)訪問(wèn)次數(shù)(每秒的I/O操作)和數(shù)據(jù)傳輸率(每秒傳輸?shù)臄?shù)據(jù)量)有限制。當(dāng)達(dá)到這些限制時(shí),后面需要訪問(wèn)硬盤(pán)的進(jìn)程就需要等待。
條帶化是一種自動(dòng)的將I/O的負(fù)載均衡到多個(gè)物理硬盤(pán)上的技術(shù)。條帶化技術(shù)將一塊連續(xù)的數(shù)據(jù)分成多個(gè)小部分并將其分別存儲(chǔ)到不同硬盤(pán)上去。這就能使多個(gè)進(jìn)程同時(shí)訪問(wèn)數(shù)據(jù)的多個(gè)不同部分而不會(huì)造成硬盤(pán)沖突,而且在需要對(duì)這種數(shù)據(jù)進(jìn)行順序訪問(wèn)的時(shí)候可以獲得最大程度上的I/O并行能力。
硬盤(pán)的條帶化,是將硬盤(pán)空間按照設(shè)定的大小分為多個(gè)條帶,數(shù)據(jù)寫(xiě)入時(shí)也按照條帶的大小來(lái)劃分?jǐn)?shù)據(jù)模塊。
例如,在一個(gè)由四個(gè)成員盤(pán)組成的硬盤(pán)系統(tǒng)中(例如RAID 0),第一個(gè)數(shù)據(jù)塊寫(xiě)入第一塊成員盤(pán),第二個(gè)數(shù)據(jù)塊寫(xiě)入第二個(gè)成員盤(pán),以此類(lèi)推,如圖1-11所示。由于是同時(shí)對(duì)多個(gè)硬盤(pán)進(jìn)行寫(xiě)入,因此極大地提升了系統(tǒng)性能,但是,此特性并不能保證數(shù)據(jù)的冗余性。
硬盤(pán)分條包含下面的概念:
條帶寬度:一個(gè)硬盤(pán)組在進(jìn)行分條時(shí)所使用的硬盤(pán)的個(gè)數(shù),例如一個(gè)由四個(gè)成員盤(pán)組成的硬盤(pán)組,其條帶寬度為“4”。
硬盤(pán)組的條帶大小:RAID控制卡同時(shí)在一個(gè)硬盤(pán)組中所有硬盤(pán)上的寫(xiě)入的數(shù)據(jù)塊的大小。
硬盤(pán)的條帶大小:RAID控制卡在每塊硬盤(pán)上寫(xiě)入的數(shù)據(jù)塊的大小。
例如,針對(duì)一個(gè)硬盤(pán)組,在寫(xiě)入數(shù)據(jù)時(shí),一個(gè)1MB的數(shù)據(jù)條帶,在每個(gè)成員盤(pán)上分配的數(shù)據(jù)塊為64KB,那么此硬盤(pán)組的條帶大小為1MB,硬盤(pán)的條帶大小為64KB。
7 磁盤(pán)鏡像
磁盤(pán)鏡像,適用于RAID 1和RAID 10,是指執(zhí)行寫(xiě)數(shù)據(jù)的任務(wù)時(shí),會(huì)將同樣的數(shù)據(jù)同時(shí)寫(xiě)入兩塊硬盤(pán),以實(shí)現(xiàn)100%的數(shù)據(jù)冗余度。由于兩塊硬盤(pán)上的數(shù)據(jù)完全相同,當(dāng)一塊硬盤(pán)故障時(shí),數(shù)據(jù)不會(huì)丟失。另外,同一時(shí)間,兩塊盤(pán)上的數(shù)據(jù)是完全相同的,當(dāng)一塊硬盤(pán)故障時(shí),由于數(shù)據(jù)是同時(shí)讀寫(xiě),因此數(shù)據(jù)流不會(huì)中斷。
磁盤(pán)鏡像帶來(lái)的是100%的完全冗余,但是其代價(jià)是比較昂貴的,因?yàn)樵阽R像過(guò)程中,每個(gè)硬盤(pán)都需要一個(gè)備份盤(pán)。
8 外部配置
外部配置,是區(qū)別于當(dāng)前RAID控制卡的配置來(lái)說(shuō)的,在配置界面中一般體現(xiàn)為“Foreign Configuration”之類(lèi)的字樣。
一般在下述情況下,會(huì)有外部配置出現(xiàn):
一個(gè)新安裝到服務(wù)器上的物理硬盤(pán)中存在RAID配置信息,RAID控制卡會(huì)將此類(lèi)信息識(shí)別為外部配置。
服務(wù)器更換了RAID控制卡后,新RAID控制卡會(huì)將當(dāng)前存在的RAID信息識(shí)別為外部配置。
熱插拔RAID組的成員盤(pán)后,該成員盤(pán)會(huì)被標(biāo)記為攜帶外部配置。
對(duì)檢測(cè)出來(lái)的外部配置,可以根據(jù)服務(wù)器實(shí)際情況進(jìn)行處理。例如,當(dāng)新插入的硬盤(pán)攜帶的RAID信息不符合當(dāng)前使用場(chǎng)景時(shí),可以刪除此配置。更換RAID控制卡后,如果仍然想使用之前的配置,就可以導(dǎo)入該配置,使其在新RAID控制卡上生效。
9 硬盤(pán)節(jié)能
RAID控制卡具備硬盤(pán)節(jié)能功能。此功能根據(jù)硬盤(pán)配置和I/O活動(dòng)允許硬盤(pán)停轉(zhuǎn)。所有SAS和SATA機(jī)械硬盤(pán)均支持此功能。
當(dāng)硬盤(pán)節(jié)能功能開(kāi)啟時(shí),RAID控制卡下掛載的空閑狀態(tài)的硬盤(pán)和空閑熱備盤(pán)均處于節(jié)能狀態(tài)。當(dāng)有相關(guān)操作(例如創(chuàng)建RAID組,創(chuàng)建熱備盤(pán),動(dòng)態(tài)擴(kuò)盤(pán),進(jìn)行熱備重構(gòu))時(shí)可喚醒正處于節(jié)能狀態(tài)的硬盤(pán)。
10 硬盤(pán)直通
硬盤(pán)直通,即“JBOD”功能,又稱(chēng)指令透?jìng)鳎遣唤?jīng)過(guò)傳輸設(shè)備處理,僅保證傳輸質(zhì)量的一種數(shù)據(jù)傳輸方式。
打開(kāi)硬盤(pán)直通功能后,RAID控制卡可對(duì)所連接的硬盤(pán)進(jìn)行指令透?jìng)鳎诓慌渲肦AID組的情況下,用戶(hù)指令可以直接透?jìng)鞯接脖P(pán),方便上層業(yè)務(wù)軟件或管理軟件訪問(wèn)控制硬盤(pán)。
例如,服務(wù)器操作系統(tǒng)安裝過(guò)程中,可以直接找到掛載在RAID控制卡下的硬盤(pán)作為安裝盤(pán);而不支持硬盤(pán)直通的RAID控制卡,在操作系統(tǒng)安裝過(guò)程中,只能找到該RAID控制卡下已經(jīng)配置好的虛擬磁盤(pán)作為安裝盤(pán)。
審核編輯:湯梓紅
-
硬盤(pán)
+關(guān)注
關(guān)注
3文章
1320瀏覽量
57518 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9331瀏覽量
86131 -
RAID
+關(guān)注
關(guān)注
0文章
279瀏覽量
35187 -
磁盤(pán)
+關(guān)注
關(guān)注
1文章
380瀏覽量
25294 -
控制卡
+關(guān)注
關(guān)注
2文章
60瀏覽量
13061
原文標(biāo)題:深入分析磁盤(pán)RAID關(guān)鍵技術(shù)
文章出處:【微信號(hào):架構(gòu)師技術(shù)聯(lián)盟,微信公眾號(hào):架構(gòu)師技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
RAID技術(shù)全程指南
RAID 10更換新磁盤(pán)而不是RAID成員的一部分
POE的關(guān)鍵技術(shù)有哪些?
RAID技術(shù)的概念特征
轉(zhuǎn) RAID技術(shù)全解圖解-RAID0、RAID1、RAID5、RAID100【轉(zhuǎn)載】精選資料分享
(轉(zhuǎn)載)RAID技術(shù)全解圖解-RAID0、RAID1、RAID5、RAID100 精選資料分享
RAID(Redundant Array of Independent Disk 獨(dú)立冗余磁盤(pán)陣列)精選資料分享
視覺(jué)導(dǎo)航關(guān)鍵技術(shù)及應(yīng)用
RAID,RAID技術(shù)規(guī)范有哪些?
如何用RAID技術(shù)保證磁盤(pán)的可靠性
什么是raid磁盤(pán)冗余陣列
![什么是<b class='flag-5'>raid</b><b class='flag-5'>磁盤(pán)</b>冗余陣列](https://file1.elecfans.com/web3/M00/02/88/wKgZO2df6WSAJhLdAABay5HUuSo334.png)
評(píng)論