System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請實施例涉及數據恢復領域,具體而言,涉及一種數據的恢復方法及裝置、存儲介質和電子設備。
技術介紹
1、數據在分布式存儲系統中存在多個副本,每次i/o(input/output,輸入/輸出)一般都保持強一致性,分布式存儲系統中的存儲設備(例如,磁盤)可能會存在各種異常,例如固件升級后磁盤離線,磁盤卡槽松動等導致拔盤事件的產生,這些異常會導致存儲設備中存儲的數據的丟失,例如,拔盤事件導致部分數據副本丟失。
2、相關技術中,是按照磁盤出現異常的時間的先后順序,通過分布式存儲系統中存儲的數據的副本,對出現異常的存儲設備上的數據進行恢復。這樣的方式,可能導致i/o延遲會急劇增大,導致上層業務受到影響;若分布式存儲系統中多個存儲設備都出現拔盤事件,則可能導致數據在集群中丟失,整個業務癱瘓。
技術實現思路
1、本申請實施例提供了一種數據的恢復方法及裝置、存儲介質和電子設備,以至少解決相關技術中數據的恢復效率較低的問題。
2、根據本申請的一個實施例,提供了一種數據的恢復方法,分布式存儲系統中部署有多個服務器,所述多個服務器中的各個服務器上部署有多個存儲設備和恢復服務,存儲設備用于存儲服務器上的數據,所述恢復服務中部署有多個初始請求隊列,所述多個初始請求隊列對應存儲設備所出現的異常的多種異常類型,所述多個初始請求隊列對應多個處理優先級,所述方法應用于所述恢復服務,上述方法包括:在所述恢復服務所在的目標服務器中的多個存儲設備中存在出現異常的目標存儲設備的情況下,獲取所述目標
3、在一個示例性實施例中,所述將所述數據恢復請求添加至所述多個初始請求隊列中目標異常類型所對應的請求隊列,得到多個目標請求隊列,包括:從多個初始請求隊列中獲取所述目標異常類型所對應的候選請求隊列;將所述數據恢復請求添加至所述候選請求隊列,得到所述多個目標請求隊列。
4、在一個示例性實施例中,所述恢復服務中部署有恢復線程,所述按照所述多個處理優先級,執行所述多個目標請求隊列中的所述數據恢復請求,包括:獲取目標調用請求,其中,所述目標調用請求用于請求調用所述恢復線程執行所述多個目標請求隊列中的所述數據恢復請求;調用所述恢復線程,按照所述多個處理優先級,執行所述多個目標請求隊列中的所述數據恢復請求。
5、在一個示例性實施例中,所述多個目標請求隊列包括n個請求隊列,所述n個請求隊列對應n個處理優先級,其中,n為大于或者等于2的正整數,所述調用所述恢復線程執行所述多個目標請求隊列中的所述數據恢復請求,包括:調用所述恢復線程從所述n個請求隊列中篩選處理優先級與第一優先級閾值滿足目標匹配條件的m個請求隊列,其中,m為小于或者等于n的正整數;調用所述恢復線程從所述m個請求隊列中提取待處理的p個請求,并調用所述恢復線程執行所述p個請求,其中,p為正整數,所述p個請求包括所述數據恢復請求。
6、在一個示例性實施例中,在所述調用所述恢復線程執行所述p個請求之后,所述方法還包括:檢測所述恢復線程當前已處理的請求的第一數量與數量閾值之間的第一關系,其中,所述第一數量的請求包括所述p個請求;在所述第一關系用于指示所述第一數量小于所述數量閾值、且所述p個請求不包括所述數據恢復請求的情況下,調用所述恢復線程從n-m個請求隊列中篩選處理優先級與第二優先級閾值滿足目標匹配條件的r個請求隊列,其中,所述第二優先級閾值小于所述第一優先級閾值,r為小于或者等于n-m的正整數;調用所述恢復線程從所述r個請求隊列中提取待處理的t個請求,并調用所述恢復線程執行所述t個請求,其中,t為正整數,t小于所述數量閾值減去所述第一數量所得到的值,所述t個請求包括所述數據恢復請求。
7、在一個示例性實施例中,在所述調用所述恢復線程執行所述t個請求之后,所述方法還包括:檢測所述恢復線程當前已處理的請求的第二數量與數量閾值之間的第二關系,其中,所述第二數量的請求包括所述p個請求和所述t個請求;在所述第二關系用于指示所述第二數量小于所述數量閾值、且所述p個請求和所述t個請求均不包括所述數據恢復請求的情況下,調用所述恢復線程從n-m-r個請求隊列中篩選處理優先級與第三優先級閾值滿足目標匹配條件的w個請求隊列,其中,所述第三優先級閾值小于所述第二優先級閾值,w為小于或者等于n-m-r的正整數;調用所述恢復線程從所述w個請求隊列中提取待處理的q個請求,并調用所述恢復線程執行所述q個請求,其中,q為正整數,q小于或者等于所述數量閾值減去所述第二數量所得到的值,所述q個請求包括所述數據恢復請求。
8、在一個示例性實施例中,所述調用所述恢復線程執行所述p個請求,包括:通過執行以下步驟,調用所述恢復線程執行所述p個請求中的所述數據恢復請求:調用所述恢復線程檢測出現異常的所述目標存儲設備中存儲的候選數據的可用性,其中,所述可用性用于指示所述候選數據與參考服務器上存儲的所述目標數據之間是否一致,所述參考服務器是所述多個服務器中除所述目標服務器外的服務器;在所述可用性用于指示所述候選數據與所述多個服務器中除所述目標服務器外的服務器上存儲的所述目標數據之間至少存在部分參考數據一致的情況下,調用所述恢復線程從所述目標存儲設備存儲的所述候選數據中提取所述參考數據,并調用所述恢復線程從所述參考服務器中存儲的所述目標數據中提取除所述參考數據之外的恢復數據;調用所述恢復線程將所述參考數據和所述恢復數據復制至所述參考存儲設備;其中,所述調用所述恢復線程從所述參考服務器中存儲的所述目標數據中提取除所述參考數據之外的恢復數據,包括:生成目標提取請求,其中,所述目標提取請求用于請求從所述參考服務器中存儲的所述目標數據中提取所述恢復數據;向所述參考服務器發送所述目標提取請求,并接收所述參考服務器響應所述目標提取請求返回的所述恢復數據,其中,所述目標提取請求中攜帶了所述恢復數據的標識。
9、根據本申請的另一個實施例,提供了一種數據的恢復裝置,分布式存儲系統中部署有多個服務器,所述多個服務器中的各個服務器上部署有多個存儲設備和恢復服務,存儲設備用于存儲服務器上的數據,所述恢復服務中部署有多個初始請求隊列,所述多個初始請求隊列對應存儲設備所出現的異常的多種異常類型,所述多個初始請求隊列對應多個處理優先級,所述裝置應用于所述恢復服務,上述裝置包括:獲取模塊,用于在所述恢復服務所在的目標服務器中的多個存儲設備中存在出現異常的目標存儲設備的情況下,獲取所述目標存儲設備所出現的異常所對應的數據恢復請求,其中,所述數據恢復請求用于請求將所述目標存本文檔來自技高網...
【技術保護點】
1.一種數據的恢復方法,其特征在于,
2.根據權利要求1所述的方法,其特征在于,
3.根據權利要求1所述的方法,其特征在于,
4.根據權利要求3所述的方法,其特征在于,
5.根據權利要求4所述的方法,其特征在于,
6.根據權利要求5所述的方法,其特征在于,
7.根據權利要求4所述的方法,其特征在于,
8.一種數據的恢復裝置,其特征在于,
9.一種計算機可讀存儲介質,其特征在于,
10.一種電子設備,包括存儲器、處理器以及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,
【技術特征摘要】
1.一種數據的恢復方法,其特征在于,
2.根據權利要求1所述的方法,其特征在于,
3.根據權利要求1所述的方法,其特征在于,
4.根據權利要求3所述的方法,其特征在于,
5.根據權利要求4所述的方法,其特征在于,
6.根據權利要求5所述的方...
【專利技術屬性】
技術研發人員:井源龍,
申請(專利權)人:濟南浪潮數據技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。