一種擴展卡的磁盤上下線處理方法
【專利摘要】本申請公開了一種擴展卡的磁盤上下線處理方法,可以避免出現(xiàn)磁盤閃斷現(xiàn)象,包括:A.擴展卡的端口管理模塊進行本次輪詢處理,獲取磁盤事件;B.判斷磁盤是否處于準備狀態(tài),若是,執(zhí)行步驟C,否則執(zhí)行步驟D;C.進行磁盤準備狀態(tài)的處理過程,然后返回步驟A;D.檢查是否已記錄磁盤非準備狀態(tài)時間,若是,執(zhí)行步驟E,否則執(zhí)行步驟G;E.判斷已記錄的磁盤非準備狀態(tài)時間與當前系統(tǒng)時間的差值是否大于預(yù)先設(shè)定的閾值,若是,執(zhí)行步驟F,否則返回步驟A;F.進行磁盤非準備狀態(tài)的處理過程,上報一次下盤事件至驅(qū)動模塊,然后返回步驟A;G.記錄當前系統(tǒng)時間作為磁盤非準備狀態(tài)時間,返回步驟A。
【專利說明】一種擴展卡的磁盤上下線處理方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機存儲【技術(shù)領(lǐng)域】,尤其涉及一種擴展卡的磁盤上下線處理方法?!颈尘凹夹g(shù)】
[0002]串行連接SCSI (SAS),是新一代的小型計算機系統(tǒng)接口(SCSI,Small ComputerSystem Interface)技術(shù),和串行高級技術(shù)附件(SATA, Serial Advanced TechnologyAttachment)接口相同,都是采用串行技術(shù)以獲得更高的傳輸速度,并通過縮短連結(jié)線改善內(nèi)部空間等。SAS是并行SCSI接口之后開發(fā)出的全新接口。此接口的設(shè)計是為了改善存儲系統(tǒng)的效能、可用性和擴充性,并且提供與SATA硬盤的兼容性。
[0003]SAS的接口技術(shù)可以向下兼容SATA。從接口標準上而言,SATA是SAS的一個子標準,因此SAS控制器可以直接操控SATA硬盤。由于SAS系統(tǒng)的兼容性,使用戶能夠運用不同接口的硬盤來滿足各類應(yīng)用在容量上或效能上的需求,因此在擴充存儲系統(tǒng)時擁有更多的彈性,讓存儲設(shè)備發(fā)揮最大的投資效益。
[0004]在現(xiàn)有的支持6GSAS和SATA接口的擴展卡設(shè)備(expander)中,系統(tǒng)會通過輪詢的方式檢測是否產(chǎn)生了磁盤上線或者下線事件,并進行處理。但是在某種特殊情況下,磁盤會在一段時間內(nèi)不斷產(chǎn)生上線,下線事件,產(chǎn)生異常,造成閃斷現(xiàn)象。
【發(fā)明內(nèi)容】
[0005]本申請?zhí)峁┝?一種擴展卡的磁盤上下線處理方法,可以避免出現(xiàn)磁盤閃斷現(xiàn)象。
[0006]本申請實施例提供的一種擴展卡的磁盤上下線處理方法,包括:
[0007]A、擴展卡的端口管理模塊進行本次輪詢處理,獲取磁盤事件;
[0008]B、判斷磁盤是否處于準備狀態(tài),若是,執(zhí)行步驟C,否則執(zhí)行步驟D ;
[0009]C、進行磁盤準備狀態(tài)的處理過程,然后進入下一個輪詢周期,返回步驟A ;
[0010]D、檢查是否已記錄磁盤非準備狀態(tài)時間,若是,執(zhí)行步驟E,否則執(zhí)行步驟G ;
[0011]E、判斷已記錄的磁盤非準備狀態(tài)時間與當前系統(tǒng)時間的差值是否大于預(yù)先設(shè)定的閾值,若是,執(zhí)行步驟F,否則進入下一個輪詢周期,返回步驟A ;
[0012]F、進行磁盤非準備狀態(tài)的處理過程,上報一次下盤事件至驅(qū)動模塊,然后進入下一個輪詢周期,返回步驟A ;
[0013]G、記錄當前系統(tǒng)時間作為磁盤非準備狀態(tài)時間,進入下一個輪詢周期,返回步驟A0
[0014]較佳地,步驟C進一步包括:清除已記錄的磁盤非準備狀態(tài)時間。
[0015]較佳地,所述閾值為5秒。
[0016]本申請實施例還提供了 一種擴展卡,包括端口管理模塊和驅(qū)動模塊,所述端口管理模塊包括:
[0017]輪詢處理單元,用于進行輪詢處理,獲取磁盤事件;
[0018]第一判斷單元,用于根據(jù)輪詢處理單元獲取的磁盤事件判斷磁盤是否處于準備狀態(tài),若是通知磁盤處理單元進行磁盤準備狀態(tài)的處理過程,否則使能時間檢測單元;
[0019]時間檢測單元,用于檢查是否記錄磁盤非準備狀態(tài)時間,若未記錄則記錄當前系統(tǒng)時間作為磁盤非準備狀態(tài)時間;若是,判斷已記錄的磁盤非準備狀態(tài)時間與當前系統(tǒng)時間的差值是否大于預(yù)先設(shè)定的閾值,若是,通知磁盤處理單元進行磁盤非準備狀態(tài)的處理過程,否則不做處理;
[0020]磁盤處理單元,用于根據(jù)通知進行磁盤準備狀態(tài)或磁盤非準備狀態(tài)的處理過程,在進行磁盤非準備狀態(tài)的處理過程時上報一次下盤事件至驅(qū)動模塊。
[0021]較佳地,所述第一判斷單元根據(jù)輪詢處理單元獲取的磁盤事件判斷磁盤是否處于準備狀態(tài)的結(jié)果為是,進一步通知時間檢測單元清除已記錄的磁盤非準備狀態(tài)時間。
[0022]較佳地,所述閾值為5秒。
[0023]從以上技術(shù)方案可以看出,在端口管理模塊將磁盤下線事件上報給驅(qū)動模塊時,查詢短時間之類該磁盤是否發(fā)生過掉盤事件,若是,則不上報,留給下一次輪詢進行處理;如果沒有,則上報。通過這種方式,將磁盤閃斷時在短時間內(nèi)產(chǎn)生的大量下盤事件,只延遲上報一次,在不影響正常處理過程的情況下,解決了磁盤閃斷的問題。同時,由于基于雙控架構(gòu)的存儲設(shè)備在主控制器上盤時會重置(reset)磁盤,此時從控制器會認為磁盤產(chǎn)生錯誤,在錯誤處理分支中也會reset磁盤,造成主從控不斷reset磁盤的錯誤,本申請技術(shù)方案也很好地避免了這種情況的發(fā)生。由于磁盤上盤在SCSI層是一個相對緩慢的過程,因此只要設(shè)置一個合適的延遲時間(例如5秒左右),則不會影響磁盤的正常上下線功能。
【專利附圖】
【附圖說明】
[0024]圖1為本申請實施例提供的磁盤上下線處理方法流程圖。
【具體實施方式】
[0025]本申請技術(shù)方案通過修改磁盤上下線的處理方式,避免了閃斷現(xiàn)象的發(fā)生。在端口管理模塊將磁盤下線事件上報給驅(qū)動模塊時,查詢短時間之類該磁盤是否發(fā)生過掉盤事件,若是,則不上報,留給下一次輪詢進行處理;如果沒有,則上報。通過這種方式,將磁盤閃斷時在短時間內(nèi)產(chǎn)生的大量下盤事件,只延遲上報一次,在不影響正常處理過程的情況下,解決了磁盤閃斷的問題。
[0026]為使本申請技術(shù)方案的技術(shù)原理、特點以及技術(shù)效果更加清楚,以下結(jié)合具體實施例對本申請技術(shù)方案進行詳細闡述。
[0027]圖1示出了本申請實施例提供的擴展卡的磁盤上下線處理方法流程,包括如下步驟:
[0028]步驟101:擴展卡的端口管理模塊進行本次輪詢處理,獲取磁盤事件;
[0029]步驟102:判斷磁盤是否處于準備(ready)狀態(tài),若是,執(zhí)行步驟103,否則執(zhí)行步驟 105 ;
[0030]步驟103:清除已記錄的磁盤非準備狀態(tài)時間;
[0031]步驟104:進行磁盤準備狀態(tài)的處理過程,然后進入下一個輪詢周期,返回步驟101。
[0032]步驟105:檢查是否記錄磁盤非準備狀態(tài)時間,若是,執(zhí)行步驟106,否則執(zhí)行步驟108 ;
[0033]步驟106:判斷已記錄的磁盤非準備狀態(tài)時間與當前系統(tǒng)時間的差值是否大于預(yù)先設(shè)定的閾值,若是,執(zhí)行步驟107,否則進入下一個輪詢周期,返回步驟101。本申請實施例中,所述閾值設(shè)置為5秒。
[0034]步驟107:進行磁盤非準備狀態(tài)的處理過程,上報一次下盤事件至驅(qū)動模塊,然后進入下一個輪詢周期,返回步驟101。
[0035]步驟108:記錄當前系統(tǒng)時間作為磁盤非準備狀態(tài)時間,進入下一個輪詢周期,返回步驟101。 [0036]本申請實施例還提供了一種擴展卡,包括端口管理模塊和驅(qū)動模塊,所述端口管理模塊包括:
[0037]輪詢處理單元,用于進行輪詢處理,獲取磁盤事件;
[0038]第一判斷單元,用于根據(jù)輪詢處理單元獲取的磁盤事件判斷磁盤是否處于準備狀態(tài),若是通知磁盤處理單元進行磁盤準備狀態(tài)的處理過程,否則使能時間檢測單元;
[0039]時間檢測單元,用于檢查是否記錄磁盤非準備狀態(tài)時間,若未記錄則記錄當前系統(tǒng)時間作為磁盤非準備狀態(tài)時間;若是,判斷已記錄的磁盤非準備狀態(tài)時間與當前系統(tǒng)時間的差值是否大于預(yù)先設(shè)定的閾值,若是,通知磁盤處理單元進行磁盤非準備狀態(tài)的處理過程,否則不做處理;
[0040]磁盤處理單元,用于根據(jù)通知進行磁盤準備狀態(tài)或磁盤非準備狀態(tài)的處理過程,在進行磁盤非準備狀態(tài)的處理過程時上報一次下盤事件至驅(qū)動模塊。
[0041]較佳地,所述第一判斷單元根據(jù)輪詢處理單元獲取的磁盤事件判斷磁盤是否處于準備狀態(tài)的結(jié)果為是,進一步通知時間檢測單元清除已記錄的磁盤非準備狀態(tài)時間。
[0042]以上所述僅為本申請的較佳實施例而已,并不用以限制本申請的保護范圍,凡在本申請技術(shù)方案的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本申請保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種擴展卡的磁盤上下線處理方法,其特征在于,包括: A、擴展卡的端口管理模塊進行本次輪詢處理,獲取磁盤事件; B、判斷磁盤是否處于準備狀態(tài),若是,執(zhí)行步驟C,否則執(zhí)行步驟D; C、進行磁盤準備狀態(tài)的處理過程,然后進入下一個輪詢周期,返回步驟A; D、檢查是否已記錄磁盤非準備狀態(tài)時間,若是,執(zhí)行步驟E,否則執(zhí)行步驟G; E、判斷已記錄的磁盤非準備狀態(tài)時間與當前系統(tǒng)時間的差值是否大于預(yù)先設(shè)定的閾值,若是,執(zhí)行步驟F,否則進入下一個輪詢周期,返回步驟A ; F、進行磁盤非準備狀態(tài)的處理過程,上報一次下盤事件至驅(qū)動模塊,然后進入下一個輪詢周期,返回步驟A ; G、記錄當前系統(tǒng)時間作為磁盤非準備狀態(tài)時間,進入下一個輪詢周期,返回步驟A。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟C進一步包括:清除已記錄的磁盤非準備狀態(tài)時間。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述閾值為5秒。
4.一種擴展卡,包括端口管理模塊和驅(qū)動模塊,其特征在于,所述端口管理模塊包括: 輪詢處理單元,用于進行輪詢處理,獲取磁盤事件; 第一判斷單元,用于根據(jù)輪詢處理單元獲取的磁盤事件判斷磁盤是否處于準備狀態(tài),若是通知磁盤處理單元進行磁盤準備狀態(tài)的處理過程,否則使能時間檢測單元; 時間檢測單元,用于檢查是否記錄磁盤非準備狀態(tài)時間,若未記錄則記錄當前系統(tǒng)時間作為磁盤非準備狀態(tài)時間;若是,判斷已記錄的磁盤非準備狀態(tài)時間與當前系統(tǒng)時間的差值是否大于預(yù)先設(shè)定的閾值,若是,通知磁盤處理單元進行磁盤非準備狀態(tài)的處理過程,否則不做處理; 磁盤處理單元,用于根據(jù)通知進行磁盤準備狀態(tài)或磁盤非準備狀態(tài)的處理過程,在進行磁盤非準備狀態(tài)的處理過程時上報一次下盤事件至驅(qū)動模塊。
5.根據(jù)權(quán)利要求4所述的擴展卡,其特征在于,所述第一判斷單元根據(jù)輪詢處理單元獲取的磁盤事件判斷磁盤是否處于準備狀態(tài)的結(jié)果為是,進一步通知時間檢測單元清除已記錄的磁盤非準備狀態(tài)時間。
6.根據(jù)權(quán)利要求4或5所述的擴展卡,其特征在于,所述閾值為5秒。
【文檔編號】G06F3/06GK103543962SQ201310515720
【公開日】2014年1月29日 申請日期:2013年10月28日 優(yōu)先權(quán)日:2013年10月28日
【發(fā)明者】汪洋 申請人:創(chuàng)新科軟件技術(shù)(深圳)有限公司, 創(chuàng)新科存儲技術(shù)(深圳)有限公司