一種ssd復位方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及存儲技術領域,特別涉及一種SSD復位方法及裝置。
【背景技術】
[0002] RAID (Redundant Array of Independent Disks,獨立硬盤冗余陣列)是一種數據 分布技術,該技術將業務數據分布到不同的硬盤驅動器上,同時在這些分布存儲的業務數 據中加入冗余數據,使得當一定數量的硬盤驅動器出現故障時,仍然可以通過剩余硬盤驅 動器上的數據,將丟失的數據通過數學計算恢復回來。
[0003] 假設單塊硬盤驅動器的年均失效率為AFR,這是一個介于0和1之間的小數,那么 兩塊硬盤驅動器同時出現故障的概率是AFR X AFR,三塊硬盤驅動器同時出現故障的概率是 AFRXAFRXAFR,以此類推。可見,硬盤驅動器的數量越多,那么這些硬盤驅動器同時出現故 障的概率就越低。
[0004] RAID正是利用了"多塊硬盤驅動器同時出現故障的概率極低"的特點,將數據分散 部署到多塊不同的硬盤驅動器上,從而避免單塊或者少數幾塊硬盤驅動器失效導致數據丟 失。由此可以看出,避免"同時失效",是RAID能夠提升可靠性的關鍵之一。
[0005] -般情況下,構成RAID的硬盤驅動器自身就是一個嵌入式系統,例如SSD (Solid State Device/Solid State Drive,固態硬盤),每個SSD中植入的代碼量都較大,而當軟件 規模達到一定程度以后,軟件系統一般會用到定時器、計數器之類的手段,來處理一些較為 復雜的、持續周期較長的業務邏輯。基于這種機制的業務邏輯,如果代碼中隱含了與計數器 溢出、除零等相關的缺陷,那么這種缺陷,因為需要等到較長的運行時間才會出現,所以較 難在開發階段被發現,同時,這樣的缺陷,一般到了某個固定的時間點,出現的概率較大。
[0006] 那么,根據以上的描述想象一個場景:
[0007] 構成RAID的各SSD內的代碼,存在某個計數器缺陷,該缺陷在開發測試階段并未 被發現。
[0008] 各SSD內的這個計數器缺陷,會在SSD上電運行了 100天后,導致除零異常。
[0009] 組成一個RAID的各SSD -般是同時開始運行的,那么該RAID在運行了 100天后, 所有的SSD由于計數器缺陷導致除零異常,可能會因為同一個RAID組內的多塊SSD同時失 效而導致存儲業務中斷,甚至可能會導致數據丟失。
[0010] 通過對這個場景進行簡單分析可以發現,導致存儲業務中斷的根因是:RAID機制 所基于的硬盤驅動器"同時失效概率極低"的這個前提條件,被SSD內在的計數器相關的軟 件缺陷所打破。基于SSD的RAID組,多塊SSD "同時失效概率極低"的前提條件,在某些情 況下并不存在,這進一步導致在這些場景下,RAID的可靠性并不高。
【發明內容】
[0011] 本發明實施例提供一種SSD復位方法及裝置,用于解決RAID的可靠性不高的技術 問題。
[0012] 本發明的第一方面,提供一種SSD復位方法,包括:
[0013] 將RAID中包括的第i個SSD作為基準SSD,按照對應的復位時刻從前到后的順序, 比較所述第i個SSD的復位時刻與第i+Ι個SSD的復位時刻之間的時間差是否大于等于預 設時差閾值;
[0014] 若小于,則將所述第i+Ι個SSD標記為需要復位的SSD,并繼續按照復位時刻從前 到后的順序,依次比較所述第i個SSD的復位時刻與復位時刻位于所述第i+Ι個SSD之后 的其他SSD的復位時刻之間的時間差是否大于等于所述預設時差閾值;
[0015] 若所述第i個SSD的復位時刻與所述第i+Ι個SSD的復位時刻之間的時間差大于 等于所述預設時差閾值,則令所述第i+Ι個SSD替換所述第i個SSD作為新的基準SSD,并 繼續比較所述第i+Ι個SSD的復位時刻與復位時刻位于所述第i+Ι個SSD之后的其他SSD 的復位時刻之間的時間差是否大于等于所述預設時差閾值;
[0016] 在將所述RAID中包括的復位時刻位于所述第i個SSD之后的各SSD均比較完畢 后,控制其中標記為需要復位的SSD分別進行復位。
[0017] 結合第一方面,在第一方面的第一種可能的實現方式中,在將所述RAID中包括的 復位時刻位于所述第i個SSD之后的各SSD均比較完畢后,控制其中標記為需要復位的SSD 分別進行復位,包括:
[0018] 在將所述RAID中包括的復位時刻位于所述第i個SSD之后的各SSD均比較完畢 后,判斷當前時刻與參與比較的SSD中的特定SSD的復位時刻之間的時間差是否大于等于 所述預設時差閾值;其中,所述特定SSD為:按照復位時刻從前到后的順序,參與比較的SSD 中的最后一個未被標記為需要復位的SSD ;
[0019] 若大于等于,則控制其中標記為需要復位的SSD分別進行復位。
[0020] 結合第一方面或第一方面的第一種可能的實現方式,在第一方面的第二種可能的 實現方式中,控制其中標記為需要復位的SSD分別進行復位,包括:
[0021] 在對標記為需要復位的SSD中的任一個SSD進行復位后,每隔預設時間間隔對需 要復位的SSD中的剩余的任一個SSD進行復位,直到將需要復位的SSD均進行復位;其中, 所述預設時間間隔大于等于所述預設時差閾值。
[0022] 結合第一方面或第一方面的第一種可能的實現方式或第二種可能的實現方式,在 第一方面的第三種可能的實現方式中,控制其中標記為需要復位的SSD分別進行復位,包 括:
[0023] 利用SSD自帶的狀態復位功能,控制需要復位的SSD分別進行自我復位;或
[0024] 通過所述RAID控制需要復位的SSD分別進行復位。
[0025] 結合第一方面或第一方面的第一種可能的實現方式或第二種可能的實現方式或 第三種可能的實現方式,在第一方面的第四種可能的實現方式中,所述方法還包括:實時、 定時或周期性檢測所述RAID中包括的各SSD的復位時刻,并進行記錄。
[0026] 本發明的第二方面,提供一種SSD復位裝置,包括:
[0027] 第一比較模塊,用于將RAID中包括的第i個SSD作為基準SSD,按照對應的復位時 刻從前到后的順序,比較所述第i個SSD的復位時刻與第i+Ι個SSD的復位時刻之間的時 間差是否大于等于預設時差閾值;
[0028] 第二比較模塊,用于若小于,則將所述第i+Ι個SSD標記為需要復位的SSD,并繼續 按照復位時刻從前到后的順序,依次比較所述第i個SSD的復位時刻與復位時刻位于所述 第i+Ι個SSD之后的其他SSD的復位時刻之間的時間差是否大于等于所述預設時差閾值;
[0029] 第三比較模塊,用于若所述第i個SSD的復位時刻與所述第i+Ι個SSD的復位時 刻之間的時間差大于等于所述預設時差閾值,則令所述第i+Ι個SSD替換所述第i個SSD 作為新的基準SSD,并繼續比較所述第i+Ι個SSD的復位時刻與復位時刻位于所述第i+Ι個 SSD之后的其他SSD的復位時刻之間的時間差是否大于等于所述預設時差閾值;
[0030] 控制模塊,用于在將所述RAID中包括的復位時刻位于所述第i個SSD之后的各 SSD均比較完畢后,控制其中標記為需要復位的SSD分別進行復位。
[0031] 結合第二方面,在第二方面的第一種可能的實現方式中,所述控制模塊具體用 于:
[0032] 在將所述RAID中包括的復位時刻位于所述第i個SSD之后的各SSD均比較完畢 后,判斷當前時刻與參與比較的SSD中的特定SSD的復位時刻之間的時間差是否大于等于 所述預設時差閾值;其中,所述特定SSD為:按照復位時刻從前到后的順序,參與比較的SSD 中的最后一個未被標記為需要復位的SSD ;
[0033] 若大于等于,則控制其中標記為需要復位的SSD分別進行復位。
[0034] 結合第二方面或第二方面的第一種可能的實現方式,在第二方面的第二種可能的 實現方式中,所述控制模塊用于控制其中標記為需要復位的SSD分別進行復位,具體為:
[0035] 在對標記為需要復位的SSD中的任一個SSD進行復位后,每隔預設時間間隔對需 要復位的SSD中的剩余的任一個SSD進行復位,直到將需要復位的SSD均進行復位;其中, 所述預設時間間隔大于等于所述預設時差閾值。
[0036] 結合第二方面或第二方面的第一種可能的實現方式或第二種可能的實現方式,在 第二方面的第三種可能的實現方式中,所述控制模塊用于控制其中標記為需要復位的SSD 分別進行復位,包括:
[0037] 利用SSD自帶的狀態復位功能,控制需要復位的SSD分別進行自我復位;或
[0038] 通過所述RAID控制需要復位的SSD分別進行復位。
[0039] 結合第二方面或第二方面的第一種可能的實現方式或第二種可能的實現方式或 第三種可能的實現方式,在第二方面的第四種可能的實現方式中,所述裝置還包括檢測模 塊,用于:實時、定時或周期性檢測所述RAID中包括的各SSD的復位時刻,并進行記錄。
[0040] 本發明的第三方面,提供一種SSD復位裝置,包括連接到同一總線的存儲器和處 理器;
[0041] 所述存儲器,用于存儲指令;
[0042] 所述處理器,用于執行所述指令,將獨立磁盤冗余陣列RAID中包括的第i個SSD 作為基準SSD,按照對應的復位時刻從前到后的順序,比較所述第i個SSD的復位時刻與第 i+Ι個SSD的復位時刻之間的時間差是否大于等于預設時差閾值;若小于,則將所述第i+1 個SSD標記為需要復位的SSD,并繼續按照復位時刻從前到后的順序,依次比較所述第i個 SSD的復位時刻與復位時刻位于所述第i+Ι個SSD之后的其他SSD的復位時刻之間的時間 差是否大于等于所述預設時差閾值;若所述第i個SSD的復位時刻與所述第i+Ι個SSD的 復位時刻之間的時間差大于等于所述預設時差閾值,則令所述第i+Ι個SSD替換所述第i