本發(fā)明涉及涉及磁盤(pán)存儲(chǔ)系統(tǒng)領(lǐng)域,具體是一種具有云服務(wù)器備份的磁盤(pán)陣列容錯(cuò)裝置。
背景技術(shù):
:
獨(dú)立磁盤(pán)冗余陣列,簡(jiǎn)稱磁盤(pán)陣列,其將多個(gè)獨(dú)立的磁盤(pán)結(jié)合成一個(gè)陣列,提供很好的冗余性和比單個(gè)磁盤(pán)更高的存儲(chǔ)性能。在存儲(chǔ)領(lǐng)域中,通過(guò)磁盤(pán)陣列自身的冗余性將數(shù)據(jù)直接或間接存儲(chǔ)在多個(gè)單獨(dú)的磁盤(pán)上,以達(dá)到當(dāng)一個(gè)或多個(gè)磁盤(pán)故障時(shí)數(shù)據(jù)不丟失的目的,即實(shí)現(xiàn)了數(shù)據(jù)容錯(cuò)。
其中,當(dāng)因?yàn)槟承┰虮热绱疟P(pán)陣列中的磁盤(pán)故障等導(dǎo)致磁盤(pán)陣列失去冗余性時(shí),該磁盤(pán)陣列會(huì)處于降級(jí)狀態(tài)。以磁盤(pán)陣列中的磁盤(pán)故障導(dǎo)致磁盤(pán)陣列失去冗余性而使該磁盤(pán)陣列處于降級(jí)狀態(tài)為例,則在現(xiàn)有技術(shù)中,為恢復(fù)該因磁盤(pán)故障而處于降級(jí)狀態(tài)的磁盤(pán)陣列的冗余性,常用的方式為增加熱備盤(pán)重建的方式,具體為:用熱備盤(pán)替換故障的磁盤(pán)。但是,在該重建過(guò)程中,如果又發(fā)生了磁盤(pán)重建讀錯(cuò)誤,其中,重建讀錯(cuò)誤為重建過(guò)程中,重建I/O導(dǎo)致磁盤(pán)發(fā)生的讀錯(cuò)誤,則,停止重建,此時(shí)該磁盤(pán)陣列只能停留在降級(jí)狀態(tài)無(wú)法回到冗余狀態(tài)。一旦該磁盤(pán)陣列中的其他磁盤(pán)再發(fā)生故障時(shí),整個(gè)磁盤(pán)陣列就會(huì)失敗即關(guān)閉I/O通道,這不僅導(dǎo)致該磁盤(pán)陣列停止提供業(yè)務(wù),還會(huì)導(dǎo)致該磁盤(pán)陣列之前存儲(chǔ)的數(shù)據(jù)丟失。
另外,當(dāng)對(duì)處于降級(jí)狀態(tài)的磁盤(pán)陣列進(jìn)行業(yè)務(wù)讀時(shí),如果發(fā)生業(yè)務(wù)讀錯(cuò)誤,其中業(yè)務(wù)讀錯(cuò)誤為:業(yè)務(wù)讀寫(xiě)過(guò)程中,業(yè)務(wù)I/O導(dǎo)致磁盤(pán)發(fā)生的讀錯(cuò)誤,則此時(shí)該磁盤(pán)陣列失敗,即關(guān)閉 I/O 通道,這導(dǎo)致該磁盤(pán)陣列停止提供業(yè)務(wù),并導(dǎo)致之前存儲(chǔ)的數(shù)據(jù)丟失。
而目前國(guó)內(nèi)大城市網(wǎng)絡(luò)和高速光纖的普及使得每隔一段時(shí)間使用云服務(wù)器備份數(shù)據(jù)成為可能,對(duì)于數(shù)據(jù)安全要求很高的企業(yè)可以通過(guò)云服務(wù)器備份的方式來(lái)保存需要的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
:
本發(fā)明的目的是提供一種具有云服務(wù)器備份的磁盤(pán)陣列容錯(cuò)裝置,避免處于降級(jí)狀態(tài)的磁盤(pán)陣列由于發(fā)生重建讀錯(cuò)誤或者業(yè)務(wù)讀錯(cuò)誤而引起的問(wèn)題;并且通過(guò)云服務(wù)器備份能夠還原數(shù)據(jù)。
本發(fā)明采用的技術(shù)方案為:
一種具有云服務(wù)器備份的磁盤(pán)陣列容錯(cuò)裝置:包括替換單元、重建單元、記錄單元、處理單元、修復(fù)單元和恢復(fù)單元;記錄單元分別連接到重建單元、處理單元、修復(fù)單元和恢復(fù)單元,記錄單元通過(guò)連接設(shè)備連接到云服務(wù)器備份存儲(chǔ)器,重建單元再連接到替換單元;所述替換單元,當(dāng)磁盤(pán)陣列中的磁盤(pán)發(fā)生故障時(shí),在所述磁盤(pán)陣列中增加熱備盤(pán),以替換該發(fā)生故障的磁盤(pán);所述重建單元,以條帶為單位對(duì)增加了熱備盤(pán)的磁盤(pán)陣列進(jìn)行重建;所述記錄單元,在被所述重建單元重建的當(dāng)前條帶發(fā)生重建讀錯(cuò)誤時(shí),將該當(dāng)前條帶的標(biāo)識(shí)記錄到非易失性內(nèi)存中,并觸發(fā)所述重建單元跳過(guò)當(dāng)前條帶,從下一個(gè)條帶繼續(xù)重建,直至完成磁盤(pán)陣列的重建;所述處理單元,當(dāng)需要向與所述非易失性內(nèi)存中條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所占用的熱備盤(pán)讀取數(shù)據(jù)時(shí),不下發(fā)讀命令,利用該條帶所占用的除熱備盤(pán)之外的其他磁盤(pán)中的數(shù)據(jù)計(jì)算出需要從熱備盤(pán)讀取的數(shù)據(jù);當(dāng)需要向與所述非易失性內(nèi)存中條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所占用的除熱備盤(pán)之外的其他磁盤(pán)讀取數(shù)據(jù)時(shí),向該其他磁盤(pán)下發(fā)讀命令,以根據(jù)該讀命令讀取數(shù)據(jù);所述修復(fù)單元,針對(duì)所述非易失性內(nèi)存中記錄的每一條帶標(biāo)識(shí),通過(guò)寫(xiě)方式修復(fù)與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶的重建讀錯(cuò)誤,并在完成修復(fù)后從所述非易失性內(nèi)存中刪除該條帶標(biāo)識(shí);所述恢復(fù)單元,當(dāng)磁盤(pán)修復(fù)數(shù)據(jù)出現(xiàn)錯(cuò)誤或刪除了標(biāo)識(shí)錯(cuò)誤時(shí),將該數(shù)據(jù)恢復(fù)到修復(fù)之前的數(shù)據(jù)。
所述修復(fù)單元通過(guò)向與該條帶標(biāo)識(shí)對(duì)應(yīng)的整個(gè)條帶寫(xiě)數(shù)據(jù)來(lái)修復(fù)與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶的業(yè)務(wù)讀錯(cuò)誤;或者,確定與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所存儲(chǔ)數(shù)據(jù)的重要程度,如果確定出該數(shù)據(jù)的重要程度小于設(shè)定閾值,則通過(guò)以下操作修復(fù)與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶的業(yè)務(wù)讀錯(cuò)誤:向與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所占用的磁盤(pán)寫(xiě)入設(shè)定數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
本發(fā)明通過(guò)寫(xiě)方式修復(fù)該條帶的重建讀錯(cuò)誤,盡快恢復(fù)磁盤(pán)陣列的冗余性,避免重建過(guò)程中多個(gè)磁盤(pán)出現(xiàn)故障而導(dǎo)致整個(gè)磁盤(pán)陣列失敗的情況發(fā)生。在當(dāng)前條帶發(fā)生業(yè)務(wù)讀錯(cuò)誤時(shí),可將該當(dāng)前條帶的標(biāo)識(shí)記錄到非易失性內(nèi)存中,并控制該磁盤(pán)陣列繼續(xù)提供業(yè)務(wù)讀寫(xiě),不僅保證了業(yè)務(wù)連續(xù)性而且避免了數(shù)據(jù)被丟失的風(fēng)險(xiǎn)。同時(shí)提供了云服務(wù)器備份功能,當(dāng)本地的磁盤(pán)出現(xiàn)無(wú)法修復(fù)的嚴(yán)重故障時(shí),可以從云服務(wù)器的存儲(chǔ)器恢復(fù)備份的數(shù)據(jù)。
附圖說(shuō)明:
圖1是本發(fā)明結(jié)構(gòu)示意圖。
具體實(shí)施方式:
下面結(jié)合附圖,通過(guò)實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明:
一種具有云服務(wù)器備份的磁盤(pán)陣列容錯(cuò)裝置:包括替換單元、重建單元、記錄單元、處理單元、修復(fù)單元和恢復(fù)單元;記錄單元分別連接到重建單元、處理單元、修復(fù)單元和恢復(fù)單元,記錄單元通過(guò)連接設(shè)備連接到云服務(wù)器備份存儲(chǔ)器,重建單元再連接到替換單元;所述替換單元,當(dāng)磁盤(pán)陣列中的磁盤(pán)發(fā)生故障時(shí),在所述磁盤(pán)陣列中增加熱備盤(pán),以替換該發(fā)生故障的磁盤(pán);所述重建單元,以條帶為單位對(duì)增加了熱備盤(pán)的磁盤(pán)陣列進(jìn)行重建;所述記錄單元,在被所述重建單元重建的當(dāng)前條帶發(fā)生重建讀錯(cuò)誤時(shí),將該當(dāng)前條帶的標(biāo)識(shí)記錄到非易失性內(nèi)存中,并觸發(fā)所述重建單元跳過(guò)當(dāng)前條帶,從下一個(gè)條帶繼續(xù)重建,直至完成磁盤(pán)陣列的重建;所述處理單元,當(dāng)需要向與所述非易失性內(nèi)存中條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所占用的熱備盤(pán)讀取數(shù)據(jù)時(shí),不下發(fā)讀命令,利用該條帶所占用的除熱備盤(pán)之外的其他磁盤(pán)中的數(shù)據(jù)計(jì)算出需要從熱備盤(pán)讀取的數(shù)據(jù);當(dāng)需要向與所述非易失性內(nèi)存中條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所占用的除熱備盤(pán)之外的其他磁盤(pán)讀取數(shù)據(jù)時(shí),向該其他磁盤(pán)下發(fā)讀命令,以根據(jù)該讀命令讀取數(shù)據(jù);所述修復(fù)單元,針對(duì)所述非易失性內(nèi)存中記錄的每一條帶標(biāo)識(shí),通過(guò)寫(xiě)方式修復(fù)與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶的重建讀錯(cuò)誤,并在完成修復(fù)后從所述非易失性內(nèi)存中刪除該條帶標(biāo)識(shí);所述恢復(fù)單元,當(dāng)磁盤(pán)修復(fù)數(shù)據(jù)出現(xiàn)錯(cuò)誤或刪除了標(biāo)識(shí)錯(cuò)誤時(shí),將該數(shù)據(jù)恢復(fù)到修復(fù)之前的數(shù)據(jù)。
所述修復(fù)單元通過(guò)向與該條帶標(biāo)識(shí)對(duì)應(yīng)的整個(gè)條帶寫(xiě)數(shù)據(jù)來(lái)修復(fù)與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶的業(yè)務(wù)讀錯(cuò)誤;或者,確定與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所存儲(chǔ)數(shù)據(jù)的重要程度,如果確定出該數(shù)據(jù)的重要程度小于設(shè)定閾值,則通過(guò)以下操作修復(fù)與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶的業(yè)務(wù)讀錯(cuò)誤:向與該條帶標(biāo)識(shí)對(duì)應(yīng)的條帶所占用的磁盤(pán)寫(xiě)入設(shè)定數(shù)據(jù)。
本發(fā)明所述的實(shí)施例僅僅是對(duì)本發(fā)明的優(yōu)選實(shí)施方式進(jìn)行的描述,并非對(duì)本發(fā)明構(gòu)思和范圍進(jìn)行限定,在不脫離本發(fā)明設(shè)計(jì)思想的前提下,本領(lǐng)域中工程技術(shù)人員對(duì)本發(fā)明的技術(shù)方案作出的各種變型和改進(jìn),均應(yīng)落入本發(fā)明的保護(hù)范圍,本發(fā)明請(qǐng)求保護(hù)的技術(shù)內(nèi)容,已經(jīng)全部記載在權(quán)利要求書(shū)中。