專利名稱:用于控制固態(tài)盤(ssd)設(shè)備的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及控制固態(tài)盤(SSD)的領(lǐng)域,并且更具體地涉及一種用于處理包括SSD 的系統(tǒng)內(nèi)的故障的自動(dòng)裝置和方法。
背景技術(shù):
隨著近年來(lái)在存儲(chǔ)技術(shù)上的進(jìn)步,利用固態(tài)盤(SSD)技術(shù)存儲(chǔ)數(shù)據(jù)正在變得可行,其中包括固態(tài)存儲(chǔ)器的設(shè)備被用于取代常規(guī)的旋轉(zhuǎn)型磁盤存儲(chǔ)設(shè)備。但是,SSD技術(shù)具有常規(guī)旋轉(zhuǎn)型磁盤技術(shù)中沒(méi)有發(fā)現(xiàn)過(guò)的特定的設(shè)備故障相關(guān)問(wèn)題,并且這些問(wèn)題構(gòu)成了可能會(huì)限制其應(yīng)用,特別是在關(guān)鍵性任務(wù)環(huán)境中限制其應(yīng)用的因素。申請(qǐng)人:因此確信需要一種用于以針對(duì)并緩解上述問(wèn)題這樣的方式來(lái)處理包括SSD 的系統(tǒng)內(nèi)的故障的自動(dòng)裝置和方法。
發(fā)明內(nèi)容
因此,本發(fā)明的第一方面提供了一種用于控制固態(tài)盤的裝置,包括故障檢測(cè)器, 可操作用于檢測(cè)所述固態(tài)盤內(nèi)故障;狀態(tài)降級(jí)器,響應(yīng)于故障檢測(cè)器檢測(cè)到故障,所述狀態(tài)降級(jí)器可操作用于為所述固態(tài)盤設(shè)定降級(jí)狀態(tài)指示標(biāo)記;以及降級(jí)狀態(tài)控制器,響應(yīng)于所述降級(jí)狀態(tài)指示標(biāo)記,所述降級(jí)狀態(tài)控制器用于保持所述固態(tài)盤在降級(jí)運(yùn)行模式中運(yùn)行。該裝置優(yōu)選地進(jìn)一步包括用于在所述降級(jí)運(yùn)行模式期間分析所述故障的診斷分析器,用于在所述降級(jí)運(yùn)行模式期間修復(fù)所述固態(tài)盤中內(nèi)容的修復(fù)控制器,以及用于將所述固態(tài)盤從所述故障中恢復(fù)的恢復(fù)控制器,其中所述恢復(fù)控制器可操作用于復(fù)位所述降級(jí)狀態(tài)指示標(biāo)記。在第二方面,提供了一種用于控制固態(tài)盤的方法,包括通過(guò)故障檢測(cè)器在所述固態(tài)盤內(nèi)檢測(cè)故障;響應(yīng)于所述檢測(cè)故障的步驟,通過(guò)狀態(tài)降級(jí)器為所述固態(tài)盤設(shè)定降級(jí)狀態(tài)指示標(biāo)記;以及響應(yīng)于所述降級(jí)狀態(tài)指示標(biāo)記,通過(guò)降級(jí)狀態(tài)控制器保持所述固態(tài)盤在降級(jí)運(yùn)行模式中運(yùn)行。該方法優(yōu)選地進(jìn)一步包括通過(guò)診斷分析器在所述降級(jí)運(yùn)行模式期間分析所述故障,通過(guò)修復(fù)控制器在所述降級(jí)運(yùn)行模式期間修復(fù)所述固態(tài)盤中的內(nèi)容,以及通過(guò)恢復(fù)控制器將所述固態(tài)盤從所述故障中恢復(fù),并且通過(guò)所述恢復(fù)控制器復(fù)位所述降級(jí)狀態(tài)指示標(biāo)記。在第三方面,提供了一種由計(jì)算機(jī)程序代碼構(gòu)成的計(jì)算機(jī)程序,用于在載入到計(jì)算機(jī)系統(tǒng)內(nèi)并在其上運(yùn)行時(shí)促使所述計(jì)算機(jī)系統(tǒng)執(zhí)行第二方面的方法中的所有步驟。本發(fā)明的優(yōu)選實(shí)施例因此有利地提供了一種用于處理包括SSD的系統(tǒng)內(nèi)故障的自動(dòng)裝置和方法。
現(xiàn)參照附圖介紹本發(fā)明僅作為示例的優(yōu)選實(shí)施例,在附圖中
圖1示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的一種示例性裝置的示意圖;以及圖2示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的表示一種示例性方法的流程圖。
具體實(shí)施例方式固態(tài)驅(qū)動(dòng)器(SSD)技術(shù)具有在常規(guī)磁盤驅(qū)動(dòng)器(即旋轉(zhuǎn)型磁盤)技術(shù)中沒(méi)有發(fā)現(xiàn)過(guò)的特定的故障模式-某些故障可能會(huì)導(dǎo)致SSD意外地使其自身從存儲(chǔ)子系統(tǒng)中長(zhǎng)時(shí)間斷線,而在試圖恢復(fù)時(shí)導(dǎo)致其永久性地丟失對(duì)保留在易失性存儲(chǔ)器內(nèi)的部分用戶數(shù)據(jù)的訪問(wèn),或者在斷電的情況下使其暴露于災(zāi)難性的故障。這些故障在最初想要使用SSD設(shè)備的非關(guān)鍵性環(huán)境中可能是可以容忍的,但是在當(dāng)前使用SSD的關(guān)鍵性任務(wù)的情況下就無(wú)法容忍。盡管可能無(wú)法避免造成這些故障出現(xiàn)的根本性的原因(也就是部件故障,意外的斷電等),但是仍然希望以受控的方式來(lái)管理故障,從而最小化由于SSD故障而造成的系統(tǒng)損壞,并允許系統(tǒng)級(jí)的整體錯(cuò)誤恢復(fù)。在關(guān)鍵性任務(wù)的情況下使用SSD設(shè)備是相對(duì)較新的,并且在已知的現(xiàn)有技術(shù)中對(duì)于這些故障可用的保護(hù)很少。嚴(yán)重的故障模式主要是那些沒(méi)有預(yù)先警報(bào)就使設(shè)備不可用的故障-在此列舉了兩種具體的示例性情況-兩種情況都與SSD設(shè)備的通用設(shè)計(jì)有關(guān),其中大容量易失性存儲(chǔ)器被用于在寫入數(shù)據(jù)被保存到永久性閃存存儲(chǔ)器之前保留發(fā)送至該設(shè)備的寫入數(shù)據(jù),以及保留指向永久性存儲(chǔ)器內(nèi)隨后要保存寫入數(shù)據(jù)的位置的動(dòng)態(tài)表-通常SSD都以電池或超級(jí)電容的形式提供備用電源,以在失去主要電源的情況下保護(hù)易失性存儲(chǔ)器中的內(nèi)容。示例性的已知故障模式有1、SSD遭遇邏輯或固件錯(cuò)誤,這使得其懷疑易失性存儲(chǔ)器內(nèi)保留的數(shù)據(jù)表錯(cuò)誤-SSD不能再利用該表來(lái)找到保存的數(shù)據(jù)或者保存新的寫入數(shù)據(jù),因此它必須通過(guò)讀取永久性存儲(chǔ)器內(nèi)的每一個(gè)位置來(lái)重構(gòu)動(dòng)態(tài)表-這要花費(fèi)很長(zhǎng)時(shí)間(通常為30分鐘),從而會(huì)造成系統(tǒng)將驅(qū)動(dòng)器視為“故障”。2、SSD備用電源故障,使易失性存儲(chǔ)器在實(shí)際斷電的情況下被暴露-如果發(fā)生了實(shí)際的斷電,那么SSD就沒(méi)有機(jī)會(huì)將其緩存的所有寫入數(shù)據(jù)保存到永久性存儲(chǔ)器中,并且因此這些數(shù)量不確定的數(shù)據(jù)就會(huì)永久丟失。本發(fā)明的實(shí)施例提供了基于SSD檢測(cè)故障狀態(tài)并向存儲(chǔ)系統(tǒng)提供唯一的故障指示來(lái)緩解這些問(wèn)題的途徑-這允許系統(tǒng)控制恢復(fù)過(guò)程并限制損壞。該解決方案的一個(gè)明顯的優(yōu)點(diǎn)在于已經(jīng)發(fā)生的致命故障的類型會(huì)立刻告知系統(tǒng),并且SSD在恢復(fù)動(dòng)作期間仍然保持可用并對(duì)系統(tǒng)做出響應(yīng)而不是以未知的癥狀斷線。根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)于錯(cuò)誤處理程序來(lái)說(shuō)有三個(gè)主要的概念性元素1、錯(cuò)誤檢測(cè)和報(bào)告;2、恢復(fù)控制;3、外部日志。元素1要求在檢測(cè)到“需要重建表”或“備用電源故障”事件時(shí)SSD能夠意識(shí)到已經(jīng)出現(xiàn)了一種已知的故障模式,設(shè)備必須向其內(nèi)部事件日志中加入唯一的事件,并隨后輸入“格式降級(jí)”狀態(tài)-在處于該狀態(tài)時(shí),設(shè)備保持在線并且能夠處理不訪問(wèn)介質(zhì)的SCSI指令例如日志感知、查詢等-因此系統(tǒng)能夠使用選擇的非介質(zhì)指令來(lái)收集關(guān)于故障原因的信肩、O
元素2要求SSD能夠響應(yīng)來(lái)自系統(tǒng)的廠商唯一的SCSI指令來(lái)處理降級(jí)狀態(tài)-由此系統(tǒng)能夠控制設(shè)備的恢復(fù),并且如果需要緊急修復(fù)的話還能夠獲得對(duì)介質(zhì)有限的訪問(wèn)。在本文介紹的實(shí)施方式中,兩個(gè)參數(shù)被加入用于SCSI格式指令的指令描述塊 (CDB)中的字節(jié)2,如下表所示CDB 格式
位字節(jié)7654321000pcode=04h1000000002Data OKPwr OK0000003棄用4500000000在上表中,Data_0K參數(shù)(DataJ)K = ‘ 1,b)被用于表明格式降級(jí)的驅(qū)動(dòng)器(表重建待決)現(xiàn)在應(yīng)該清除格式降級(jí)狀態(tài)并開始表重建動(dòng)作,使用CDB = 04 00 80 00 00 00Pwr_0K參數(shù)(PwrJ)K= ‘1’ b)被用于表明電源降級(jí)的驅(qū)動(dòng)器(備用電源已經(jīng)故障)現(xiàn)在應(yīng)該清除電源降級(jí)狀態(tài)(但并不是在日志頁(yè)面3 中示出的值)和寫入保護(hù)狀態(tài), 使用CDB = 04 00 40 00 00 00元素3要求SSD保留廠商唯一的日志頁(yè)面以反映出這些降級(jí)模式-這允許系統(tǒng)檢查SSD的當(dāng)前狀態(tài),由于首先報(bào)告了降級(jí)模式事件,因此當(dāng)前狀態(tài)可能已經(jīng)改變。在本文介紹的實(shí)施方式中,廠商唯一的日志頁(yè)面3! 被定義為如下表所示
權(quán)利要求
1.一種用于控制固態(tài)盤的裝置,包括故障檢測(cè)器,操作用于檢測(cè)所述固態(tài)盤內(nèi)的故障;狀態(tài)降級(jí)器,響應(yīng)于故障檢測(cè)器檢測(cè)到故障,所述狀態(tài)降級(jí)器操作用于為所述固態(tài)盤設(shè)定降級(jí)狀態(tài)指示標(biāo)記;以及降級(jí)狀態(tài)控制器,響應(yīng)于所述降級(jí)狀態(tài)指示標(biāo)記,所述降級(jí)狀態(tài)控制器操作用于保持所述固態(tài)盤在降級(jí)運(yùn)行模式中運(yùn)行。
2.如權(quán)利要求1所述的裝置,進(jìn)一步包括用于在所述降級(jí)運(yùn)行模式期間分析所述故障的診斷分析器。
3.如權(quán)利要求1或2所述的裝置,進(jìn)一步包括用于在所述降級(jí)運(yùn)行模式期間修復(fù)所述固態(tài)盤中內(nèi)容的修復(fù)控制器。
4.如以上權(quán)利要求中的任意一項(xiàng)所述的裝置,進(jìn)一步包括用于將所述固態(tài)盤從所述故障中恢復(fù)的恢復(fù)控制器。
5.如權(quán)利要求5所述的裝置,其中所述恢復(fù)控制器操作用于復(fù)位所述降級(jí)狀態(tài)指示標(biāo)記。
6.一種用于控制固態(tài)盤的方法,包括 通過(guò)故障檢測(cè)器在所述固態(tài)盤內(nèi)檢測(cè)故障;響應(yīng)于所述檢測(cè)故障的步驟,通過(guò)狀態(tài)降級(jí)器為所述固態(tài)盤設(shè)定降級(jí)狀態(tài)指示標(biāo)記;以及響應(yīng)于所述降級(jí)狀態(tài)指示標(biāo)記,通過(guò)降級(jí)狀態(tài)控制器保持所述固態(tài)盤在降級(jí)運(yùn)行模式中運(yùn)行。
7.如權(quán)利要求6所述的方法,進(jìn)一步包括通過(guò)診斷分析器在所述降級(jí)運(yùn)行模式期間分析所述故障。
8.如權(quán)利要求6或7所述的方法,進(jìn)一步包括通過(guò)修復(fù)控制器在所述降級(jí)運(yùn)行模式期間修復(fù)所述固態(tài)盤中的內(nèi)容。
9.如權(quán)利要求6至8中的任意一項(xiàng)所述的方法,進(jìn)一步包括通過(guò)恢復(fù)控制器將所述固態(tài)盤從所述故障中恢復(fù)。
10.如權(quán)利要求9所述的方法,進(jìn)一步包括通過(guò)所述恢復(fù)控制器復(fù)位所述降級(jí)狀態(tài)指不標(biāo)記。
11.一種包括計(jì)算機(jī)程序代碼的計(jì)算機(jī)程序,用于在載入到計(jì)算機(jī)系統(tǒng)內(nèi)并在其上運(yùn)行時(shí)促使所述計(jì)算機(jī)系統(tǒng)執(zhí)行如權(quán)利要求6至10中的任意一項(xiàng)所述的方法中的步驟。
全文摘要
一種用于控制固態(tài)盤的裝置和方法,包括可操作用于檢測(cè)固態(tài)盤內(nèi)故障的故障檢測(cè)器;對(duì)檢測(cè)故障的故障檢測(cè)器做出響應(yīng)的狀態(tài)降級(jí)器,可操作用于為固態(tài)盤設(shè)定降級(jí)狀態(tài)指示標(biāo)記;以及對(duì)降級(jí)狀態(tài)指示標(biāo)記做出響應(yīng)的降級(jí)狀態(tài)控制器,用于保持固態(tài)盤在降級(jí)運(yùn)行模式中運(yùn)行。
文檔編號(hào)G06F3/06GK102301339SQ201080005847
公開日2011年12月28日 申請(qǐng)日期2010年4月7日 優(yōu)先權(quán)日2009年4月21日
發(fā)明者J·K·布朗, R·溫圖里 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司