一種檢測鍵的方法和服務(wù)器的制造方法
【專利摘要】本申請?zhí)峁┝艘环N檢測鍵的方法和服務(wù)器,用于檢測IP硬盤中被損壞的鍵,提高檢測效率。所述方法應(yīng)用于包括服務(wù)器和多個IP硬盤的存儲系統(tǒng),所述方法包括:所述服務(wù)器向所述多個IP硬盤中的第一IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;所述服務(wù)器接收所述第一IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值;所述服務(wù)器根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
【專利說明】一種檢測鍵的方法和服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子【技術(shù)領(lǐng)域】,尤其涉及一種檢測鍵的方法和服務(wù)器。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)之間互連的協(xié)議(英文:Internet Protocol ;簡稱:IP)硬盤為通過IP協(xié)議提供物理通信的硬盤。它擯棄了傳統(tǒng)的串行連接(英文:Serial Attached SCSI ;簡稱:SAS)/ 串行高級技術(shù)附件(英文:Serial Advanced Technology Attachment ;簡稱:SATA)接口,使得主機和硬盤之間的連接更加簡單,幾乎沒有距離的限制。
[0003]IP硬盤是以Key-Value,即鍵值對的結(jié)構(gòu)進行數(shù)據(jù)存儲的。其中Key為鍵,通常是一個字符串,而Value為鍵對應(yīng)的值,也稱為數(shù)據(jù)或數(shù)據(jù)內(nèi)容,Key-Value數(shù)據(jù)簡稱KV數(shù)據(jù)。通常Value存儲地址的偏移量以及鍵Key —起存放在索引區(qū)中,而Key對應(yīng)的值Value則存放在數(shù)據(jù)區(qū)。在需要數(shù)據(jù)時,分布式系統(tǒng)的服務(wù)器使用Key進行訪問,遍歷索引區(qū),根據(jù)Key索引到偏移量,從而訪問到Key對應(yīng)的Value。通常,為了提高數(shù)據(jù)可靠性,分布式系統(tǒng)中的一個Key會存儲在多個IP硬盤中,即存儲多個副本。換言之,一個分區(qū)的Key保存在多個IP硬盤上,而一個IP硬盤上可能保存有多個分區(qū)的Key。如果某個Key由于IP硬盤的壞道而損壞,那么分布式系統(tǒng)可能無法訪問到這個IP硬盤中存儲的對應(yīng)Value。
[0004]現(xiàn)有的做法是,分布式系統(tǒng)中的服務(wù)器獲取一個分區(qū)對應(yīng)的多個IP硬盤上存儲的這個分區(qū)全部的Key的副本,其中,分區(qū)由分布式系統(tǒng)中的邏輯單元從邏輯上劃分。但是一個Key的副本數(shù)據(jù)大小通常為兆級,有時甚至達到十兆級,所以傳輸多個Key副本會占用很多網(wǎng)絡(luò)資源,且傳輸速度很慢。收到每個IP硬盤傳輸?shù)母北竞螅?wù)器進行對比。如果同一個Key對應(yīng)多個副本中有一個副本與其它副本不一樣,則認為Key在這個不同副本的IP硬盤中被損壞。通過這樣的方式來檢測損壞的Key,傳輸速度慢,且檢測效率低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種檢測鍵的方法和服務(wù)器,用于檢測IP硬盤中被損壞的鍵,提高檢測效率。
[0006]本申請第一方面提供了一種檢測鍵的方法,所述方法應(yīng)用于存儲系統(tǒng)中,所述存儲系統(tǒng)包括服務(wù)器和多個IP硬盤,包括:
[0007]所述服務(wù)器向所述多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;
[0008]所述服務(wù)器接收所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值;
[0009]所述服務(wù)器根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;
[0010]當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
[0011]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述方法還包括:
[0012]所述服務(wù)器向所述其他IP硬盤發(fā)送所述目標(biāo)哈希值;
[0013]接收所述其他IP硬盤發(fā)送的所述目標(biāo)哈希值對應(yīng)的所述鍵;
[0014]將所述鍵發(fā)送至所述第一 IP硬盤,以使所述第一 IP硬盤修復(fù)所述鍵。
[0015]結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述多個IP硬盤是所述待檢測分區(qū)對應(yīng)的IP硬盤。
[0016]本申請第二方面提供了一種生成哈希值的方法,應(yīng)用于IP硬盤,所述IP硬盤包括多個鍵,所述方法包括:
[0017]對多個鍵中的每個鍵進行哈希運算,獲得所述每個鍵對應(yīng)的哈希值;
[0018]接收服務(wù)器發(fā)送的檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括所述多個鍵;
[0019]向所述服務(wù)器發(fā)送與所述標(biāo)識對應(yīng)的多個哈希值。
[0020]結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述方法還包括:
[0021]保存所述每個鍵與哈希值之間的對應(yīng)關(guān)系;
[0022]接收所述服務(wù)器發(fā)送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一個;
[0023]根據(jù)所述對應(yīng)關(guān)系和所述第一哈希值,確定與所述第一哈希值所對應(yīng)的第一鍵;
[0024]獲取所述第一鍵,并向所述服務(wù)器發(fā)送所述第一鍵。
[0025]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二方面第二種可能的實現(xiàn)方式中,所述方法還包括:接收所述服務(wù)器發(fā)送的第二鍵,并存儲所述第二鍵,所述多個鍵中不包含所述第二鍵。
[0026]本申請第三方面提供了一種服務(wù)器,包括:
[0027]通信接口,用于向多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;并所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值;
[0028]處理器,用于根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
[0029]結(jié)合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,所述通信接口還用于:
[0030]向所述其他IP硬盤發(fā)送所述目標(biāo)哈希值;
[0031]接收所述其他IP硬盤發(fā)送的所述目標(biāo)哈希值對應(yīng)的所述鍵;
[0032]將所述鍵發(fā)送至所述第一 IP硬盤,以使所述第一 IP硬盤修復(fù)所述鍵。
[0033]結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式,在第三方面的第二種可能的實現(xiàn)方式中,所述多個IP硬盤是所述待檢測分區(qū)對應(yīng)的IP硬盤。
[0034]本申請第四方面提供了一種IP硬盤,包括:
[0035]存儲單元,用于存儲多個鍵;
[0036]處理器,用于對多個鍵中的每個鍵進行哈希運算,獲得所述每個鍵對應(yīng)的哈希值;
[0037]接口,用于接收服務(wù)器發(fā)送的檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括所述多個鍵;并向所述服務(wù)器發(fā)送與所述標(biāo)識對應(yīng)的多個哈希值。
[0038]結(jié)合第四方面,在第四方面的第一種可能的實現(xiàn)方式中,所述存儲單元還用于保存所述每個鍵與哈希值之間的對應(yīng)關(guān)系;
[0039]所述接口還用于接收所述服務(wù)器發(fā)送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一個;
[0040]所述處理器還用于根據(jù)所述對應(yīng)關(guān)系和所述第一哈希值,確定與所述第一哈希值所對應(yīng)的第一鍵;以及獲取所述第一鍵;
[0041]所述接口還用于向所述服務(wù)器發(fā)送所述第一鍵。
[0042]結(jié)合第四方面的第一種可能的實現(xiàn)方式,在第四方面第二種可能的實現(xiàn)方式中,所述接口還用于接收所述服務(wù)器發(fā)送的第二鍵;
[0043]所述存儲單元還用于存儲所述第二鍵,所述多個鍵中不包含所述第二鍵。
[0044]本發(fā)明實施例中提供的一個或多個技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點:
[0045]所述服務(wù)器向所述多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;所述服務(wù)器接收所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值;所述服務(wù)器根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。所以,在本發(fā)明實施例中,當(dāng)目標(biāo)哈希值未包含在第一哈希值中時,就可以確定第一 IP硬盤中存儲的第一哈希值對應(yīng)的鍵已被損壞。并且,哈希值與鍵本身相比,數(shù)據(jù)量要小,因此傳輸效率比傳輸鍵本身更快。所以,提高了 IP硬盤中損壞鍵的檢測效率。
【專利附圖】
【附圖說明】
[0046]圖1為本發(fā)明實施例中檢測鍵的方法流程圖;
[0047]圖2為本發(fā)明實施例中生成哈希值的方法流程圖;
[0048]圖3為本發(fā)明實施例中服務(wù)器的結(jié)構(gòu)示意圖;
[0049]圖4為本發(fā)明實施例中IP硬盤的結(jié)構(gòu)示意圖。
【具體實施方式】
[0050]本發(fā)明提供了一種檢測鍵的方法和服務(wù)器,用于檢測IP硬盤中被損壞的鍵,提高檢測效率。
[0051 ] 本發(fā)明實施例中的技術(shù)方案為解決上述的技術(shù)問題,本發(fā)明中的檢測鍵的方法包括如下內(nèi)容:
[0052]所述服務(wù)器向所述多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;所述服務(wù)器接收所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值;所述服務(wù)器根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。所以,在本發(fā)明實施例中,當(dāng)目標(biāo)哈希值未包含在第一哈希值中時,就可以確定第一 IP硬盤中存儲的第一哈希值對應(yīng)的鍵已被損壞。并且,哈希值與鍵本身相比,數(shù)據(jù)量要小,因此傳輸效率比傳輸鍵本身更快。所以,提高了 IP硬盤中損壞鍵的檢測效率。
[0053]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0054]本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另夕卜,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
[0055]下面結(jié)合附圖對本發(fā)明的實施方式進行詳細說明。
[0056]本申請第一方面提供一種檢測鍵的方法,請參考圖1,包括:
[0057]SlOl:所述服務(wù)器向所述多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令。
[0058]S102:所述服務(wù)器接收所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值。
[0059]S103:所述服務(wù)器根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值。
[0060]S104:當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
[0061]為了清楚說明本發(fā)明實施例的技術(shù)方案,首先對存儲系統(tǒng)進行一介紹。存儲系統(tǒng)包括服務(wù)器和多個IP硬盤,多個IP硬盤與服務(wù)器連接。IP硬盤提供存儲功能,存儲有鍵Key,以及鍵對應(yīng)的數(shù)據(jù)Value。服務(wù)器對多個IP硬盤進行管理,例如將用戶輸入存儲系統(tǒng)的鍵和數(shù)據(jù)寫入其中一個或多個IP硬盤中,或根據(jù)用戶需求對IP硬盤中的鍵和數(shù)據(jù)進行刪除、修改和更新等。用戶以及上層應(yīng)用對IP硬盤的控制管理,通過服務(wù)器實現(xiàn)。
[0062]在本申請所屬的【技術(shù)領(lǐng)域】中,Key,稱為鍵,也稱為主鍵;Value為鍵對應(yīng)的值,同時也可稱為數(shù)據(jù)、數(shù)據(jù)內(nèi)容。在下述描述中,鍵或Key指代相同,值,數(shù)據(jù)和數(shù)據(jù)內(nèi)容均指Value0
[0063]具體來講,在存儲系統(tǒng)中,一個分區(qū)包括多個鍵,每一個鍵會保存在多個IP硬盤中,如3個,即在第I個IP硬盤中存儲一份完整的鍵,在2個IP硬盤中存儲一份完整的鍵,在第3個IP硬盤中也存儲一份完整的鍵。并且同一個分區(qū)中的每一個鍵所存儲的多個IP硬盤是相同的多個IP硬盤。而一個IP硬盤上可以存儲一個或多個分區(qū)的鍵。
[0064]存儲系統(tǒng)中維護有一記錄表。記錄表中記錄有一個分區(qū)所對應(yīng)的多個IP硬盤。舉例來說,記錄表中可以通過記錄IP硬盤的IP地址、索引、端口編號等來記錄所對應(yīng)的多個IP硬盤。本申請所屬領(lǐng)域的技術(shù)人員可以根據(jù)實際需要進行選擇,本申請不做具體限制。
[0065]因此,在SlOl之前,要檢測待檢測分區(qū)在第一 IP硬盤存儲的鍵是否被損壞,查詢記錄表就可以確定與待檢測分區(qū)對應(yīng)的多個IP硬盤具體為哪幾個。而第一 IP硬盤為多個IP硬盤中的一個。
[0066]在SlOl中向第一 IP硬盤發(fā)送檢測指令。由于每個IP硬盤上可能存儲有多個分區(qū)的鍵和數(shù)據(jù),所以,在本發(fā)明實施例中,檢測指令中包括待檢測分區(qū)的標(biāo)識。根據(jù)標(biāo)識,第一 IP硬盤可以確定出待檢測分區(qū)所包括的多個鍵。
[0067]接下來,第一 IP硬盤根據(jù)檢測指令中的標(biāo)識,從存儲的哈希值中確定出待檢測分區(qū)對應(yīng)的多個第一哈希值。然后將多個第一哈希值返回服務(wù)器。進而在S102中,服務(wù)器接收到第一 IP硬盤發(fā)送的多個第一哈希值。
[0068]接下來,執(zhí)行S103,S卩服務(wù)器根據(jù)多個IP硬盤中的其他IP硬盤發(fā)送的與標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值。
[0069]然后,執(zhí)行S104:當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
[0070]具體來講,無論是多個第一哈希值或多個第二哈希值,都是IP硬盤通過對存儲的鍵進行哈希運算后獲得的。并且,由于IP硬盤上存儲的每一個鍵是不同的,因此,進行哈希運算后獲得的哈希值也就不同。當(dāng)IP硬盤中的鍵未損壞時,就會獲得對應(yīng)的哈希值;而當(dāng)IP硬盤存在壞道,而鍵恰好在這個壞道中時,那么這些處于壞道中的鍵將無法讀取,進而也就無法對損壞的鍵進行哈希運算而獲得哈希值了。
[0071]而多個IP硬盤中存儲的待檢測分區(qū)的多個鍵是相同的,所以,當(dāng)多個第二哈希值中的目標(biāo)哈希值沒有包含在多個第一哈希值中時,表明目標(biāo)哈希值對應(yīng)的鍵在其他IP硬盤中正常,而第一 IP硬盤中被損壞。
[0072]舉例來說,假設(shè)待檢測分區(qū)為分區(qū)I,對應(yīng)3個IP硬盤,分別為IP硬盤A、IP硬盤B 和 IP 硬盤 C。分區(qū) I 中包括 10 個鍵,分別為 Keyl,Key2,Key3,Key4,Key5,Key6,Key7,Key8,Key9,KeylO。在SlOl中,服務(wù)器向IP硬盤A、IP硬盤B和IP硬盤C中的任意一個發(fā)送檢測指令,假設(shè)是IP硬盤A。檢測指令包括分區(qū)I的標(biāo)識。IP硬盤A接收到檢測指令后,根據(jù)分區(qū)I的標(biāo)識,將分區(qū)I中多個鍵對應(yīng)的多個第一哈希值返回服務(wù)器。為了方便說明,假設(shè)IP硬盤A返回的多個第一哈希值為:
[0073]hash—treeA—Keyl (10),hash—treeA—Key3 (53),hash—treeA—Key4 (24),hash_treeA—Key5 ⑴,hash—treeA—Key6 (36),hash—treeA—Key7 (12),hash—treeA—Key8 (2),hash—treeA—Key9(52),hash—treeA—KeylO(3) 0
[0074]同時,假設(shè)IP硬盤B發(fā)送的多個第二哈希值分別為:
[0075]hash—treeB—Keyl (10),hash—treeB—Key2 (6),hash—treeB—Key3 (53),hash—treeB—Key4(24),hash—treeB—Key5(I),hash—treeB—Key6(36),hash—treeB—Key7(12),hash—treeB—Key8 (2),hash—treeB—Key9 (52),hash—treeB—KeylO (3) 0
[0076]IP硬盤C發(fā)送的多個第二哈希值分別為:
[0077]hash—treeC—Keyl (10),hash—treeC—Key2 (6),hash—treeC—Key3 (53),hash—treeC—Key4(24),hash—treeC—Key5 (I),hash—treeC—Key7(12),hash—treeC—Key8(2),hash—treeC—Key9 (52),hash—treeC—KeylO (3) 0
[0078]其中,hash—treeA—Keyl (10)表示IP硬盤A返回的對應(yīng)Keyl的第一哈希值,Keyl的哈希值具體為10。其他哈希值表示意義類似,這里就不再一一贅述了。
[0079]接下來,判斷每個第二哈希值是否均存在相等的第一哈希值。首先,IP硬盤B和IP硬盤C發(fā)送的多個第二哈希值中,將目標(biāo)哈希值確定為hash—treeB—Keyl (10)和hash—treeC—Keyl (10),在多個第一哈希值中,hash—treeA—Keyl (10)與 hash—treeB—Keyl (10)和hash_treeC_Keyl (10)相等,所以,Keyl在第一 IP硬盤中未被損壞。而多個第一哈希值中,目標(biāo)哈希值為hash_treeB_Key2 (6)和hash_treeC_Key2 (6)時,卻不存在相等的第一哈希值,所以確定第一 IP硬盤中存儲的Key2被損壞。同時,可以看出,Key3、Key4、Key5、Key6、Key7、Key8、Key9和KeylO在對應(yīng)的多個第二哈希值相等的第一哈希值都包含在多個第一哈希值中,所以上述9個鍵也未被損壞。
[0080]同樣的方法,當(dāng)IP硬盤C作為第一 IP硬盤,即判斷IP硬盤C中是否有鍵損壞時,也可以確定出Key6被損壞。具體過程這里就不再一一贅述了。
[0081]由上述描述可以看出,在本發(fā)明實施例中,通過多個第二哈希值與多個第一哈希值是否相等就可以判斷第一 IP硬盤中的鍵是否被損壞,不再需要通過網(wǎng)絡(luò)傳輸所有鍵的內(nèi)容,僅傳輸數(shù)據(jù)大小為Kbyte級的哈希值即可。因此與現(xiàn)有技術(shù)相比,提高了檢測效率。
[0082]進一步,在S104之后,為了修復(fù)第一 IP硬盤中損壞的鍵,還包括:
[0083]所述服務(wù)器向所述其他IP硬盤發(fā)送所述目標(biāo)哈希值;
[0084]接收所述其他IP硬盤發(fā)送的所述目標(biāo)哈希值對應(yīng)的所述鍵;
[0085]將所述鍵發(fā)送至所述第一 IP硬盤,以使所述第一 IP硬盤修復(fù)所述鍵。
[0086]具體來講,當(dāng)檢測出目標(biāo)哈希值對應(yīng)的鍵被損壞后,為了方便用戶訪問第一 IP硬盤中損壞鍵對應(yīng)的數(shù)據(jù),在本發(fā)明實施例中,將會修復(fù)損壞的鍵。首先,為了修復(fù)被損壞的鍵,服務(wù)器將目標(biāo)哈希值發(fā)送至其他IP硬盤。在具體實現(xiàn)過程中,服務(wù)器可以僅向其他IP硬盤中的一個IP硬盤發(fā)送目標(biāo)哈希值,也可以向所有其他IP硬盤中,目標(biāo)哈希值對應(yīng)的鍵未損壞的IP硬盤發(fā)送目標(biāo)哈希值,對此本申請不做限制。
[0087]其他IP硬盤中的一個或多個接收到目標(biāo)哈希值后,根據(jù)存儲在IP硬盤中的對應(yīng)關(guān)系,確定目標(biāo)哈希值對應(yīng)的鍵,獲取鍵的副本,然后發(fā)送到服務(wù)器。服務(wù)器再將鍵發(fā)送到第一 IP硬盤中,以使IP硬盤修復(fù)損壞的鍵。
[0088]沿用上述例子來說明。在確定IP硬盤A中的Key2被損壞后,服務(wù)器從IP硬盤B中獲取Key2的副本,然后發(fā)送到IP硬盤A中。IP硬盤A存儲Key2,從而修復(fù)Key2。
[0089]本申請第二方面提供了一種生成哈希值的方法,如圖2所示,包括:
[0090]S201:對多個鍵中的每個鍵進行哈希運算,獲得所述每個鍵對應(yīng)的哈希值。
[0091]S202:接收服務(wù)器發(fā)送的檢測指令。
[0092]S203:向所述服務(wù)器發(fā)送與所述標(biāo)識對應(yīng)的多個哈希值。
[0093]首先,在本發(fā)明實施例中,IP硬盤上存儲有待檢測分區(qū)包括的多個鍵。另外,還存儲有其他分區(qū)對應(yīng)的鍵。在S201中,IP硬盤對多個鍵中的每個鍵進行哈希運算,獲得每個鍵所對應(yīng)的哈希值。其中,對每個鍵進行哈希運算的過程,與現(xiàn)有技術(shù)中哈希運算的原理和算法類似,因此這里就不再贅述了。
[0094]由于多個鍵各不相同,所以,獲得的哈希值也就各不相同了。因此,哈希值和表征IP硬盤中存儲的鍵是一一對應(yīng)的。當(dāng)IP硬盤中的鍵未損壞時,就會獲得對應(yīng)的哈希值;當(dāng)IP硬盤存在壞道,而有鍵恰好在這個壞道中時,那么這些處于壞道中的鍵將無法讀取,進而也就無法對損壞的鍵進行哈希運算而獲得哈希值了。
[0095]當(dāng)然,除了對待檢測分區(qū)包括的多個鍵進行哈希運算,IP硬盤還可以對存儲的其他鍵進行哈希運算,進而獲得其他鍵對應(yīng)的哈希值,對此本申請不做具體限制。
[0096]在S202中,IP硬盤接收服務(wù)器發(fā)送而來的檢測指令。檢測指令中包括了待檢測分區(qū)的標(biāo)識,根據(jù)檢測指令中的標(biāo)識,IP硬盤能夠確定待檢測指令所針對的分區(qū),以及存儲在IP硬盤中的待檢測分區(qū)的多個鍵。
[0097]接下來,IP硬盤向服務(wù)器發(fā)送與標(biāo)識對應(yīng)的多個哈希值。
[0098]可選的,在本發(fā)明實施例中,還包括:
[0099]保存所述每個鍵與哈希值之間的對應(yīng)關(guān)系;
[0100]接收所述服務(wù)器發(fā)送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一個;
[0101]根據(jù)所述對應(yīng)關(guān)系和所述第一哈希值,確定與所述第一哈希值所對應(yīng)的第一鍵;
[0102]獲取所述第一鍵,并向所述服務(wù)器發(fā)送所述第一鍵。
[0103]具體來講,為了方便IP硬盤確定每個鍵在多個哈希值中對應(yīng)的哈希值,IP硬盤在獲得每個鍵對應(yīng)的哈希值后,會進一步將每個鍵與哈希值的對應(yīng)關(guān)系保存。
[0104]當(dāng)服務(wù)器發(fā)現(xiàn)其他一個或多個IP硬盤中的第一鍵損壞,而本發(fā)明實施例中的IP硬盤的第一鍵未損壞時,IP硬盤可能接收到服務(wù)器發(fā)送的第一哈希值。IP硬盤根據(jù)對應(yīng)關(guān)系確定出第一哈希值所對應(yīng)的第一鍵。具體來講,第一哈希值為IP硬盤中保存的多個哈希值中的一個。IP硬盤接收到第一哈希值后,在保存的對應(yīng)關(guān)系進行查找。在對應(yīng)關(guān)系中查找到第一哈希值的對應(yīng)關(guān)系,從而確定第一哈希值所對應(yīng)的第一鍵。
[0105]接著,IP硬盤獲得第一鍵,并向服務(wù)器發(fā)送第一鍵,以供一個或多個其他IP硬盤修復(fù)第一鍵。
[0106]可選的,在本發(fā)明實施例中,還包括:
[0107]接收所述服務(wù)器發(fā)送的第二鍵,并存儲所述第二鍵,所述多個鍵中不包含所述第二鍵。
[0108]另外,當(dāng)服務(wù)器發(fā)現(xiàn)本發(fā)明實施例中的IP硬盤中的第二鍵損壞時,也可以從第二鍵未被損壞的其他IP硬盤中獲取第二鍵并發(fā)送至本發(fā)明實施例中的IP硬盤。具體來講,第二鍵并不包括在多個鍵中,第二鍵在IP硬盤中被損壞。由于IP硬盤在進行哈希運算時,無法對第二鍵進行哈希運算,因此,第二鍵對應(yīng)的第二哈希值也就不包括在保存的哈希值中。
[0109]IP硬盤接收到服務(wù)器發(fā)送的第二鍵后,將第二鍵存儲,從而修復(fù)損壞的第二鍵。進一步,為了方便后續(xù)操作,IP硬盤仍然可以對第二鍵進行哈希運算,獲得第二鍵對應(yīng)的哈希值。
[0110]本申請第三方面提供了一種服務(wù)器,如圖3所示,包括:
[0111]通信接口 101,用于向多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;并所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值;
[0112]處理器102,用于根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
[0113]可選的,通信接口 101還用于:
[0114]向所述其他IP硬盤發(fā)送所述目標(biāo)哈希值;
[0115]接收所述其他IP硬盤發(fā)送的所述目標(biāo)哈希值對應(yīng)的所述鍵;
[0116]將所述鍵發(fā)送至所述第一 IP硬盤,以使所述第一 IP硬盤修復(fù)所述鍵。
[0117]在本發(fā)明實施例中,多個IP硬盤是待檢測分區(qū)對應(yīng)的IP硬盤。
[0118]其中,在圖3中,總線架構(gòu)(用總線100來代表),總線100可以包括任意數(shù)量的互聯(lián)的總線和橋,總線100將包括由處理器102代表的一個或多個處理器和存儲器103代表的存儲器的各種電路鏈接在一起??偩€100還可以將諸如外圍設(shè)備、穩(wěn)壓器和功率管理電路等之類的各種其他電路鏈接在一起,這些都是本領(lǐng)域所公知的,因此,本文不再對其進行進一步描述。總線接口 104在總線100和通信接口 101之間提供接口。通信接口 101可以包括接收接口和發(fā)送接口,也可以是收發(fā)接口,提供用于在傳輸介質(zhì)上與各種其他裝置通信的單元。
[0119]處理器102負責(zé)管理總線100和通常的處理,而存儲器103可以被用于存儲處理器102在執(zhí)行操作時所使用的數(shù)據(jù)。
[0120]前述實施例中描述的檢測鍵執(zhí)行過程的各種變化方式和具體實例同樣適用于本實施例的服務(wù)器,通過前述對檢測鍵執(zhí)行過程的詳細描述,本領(lǐng)域技術(shù)人員可以清楚的知道本實施例中服務(wù)器的實施方法,所以為了說明書的簡潔,在此不再詳述。
[0121]本申請第四方面提供了一種IP硬盤,如圖4所示,包括:
[0122]存儲單元201,用于存儲多個鍵;
[0123]處理器202,用于對多個鍵中的每個鍵進行哈希運算,獲得所述每個鍵對應(yīng)的哈希值;
[0124]接口 203,用于接收服務(wù)器發(fā)送的檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括所述多個鍵;并向所述服務(wù)器發(fā)送與所述標(biāo)識對應(yīng)的多個哈希值。
[0125]可選的,存儲單元201還用于保存所述每個鍵與哈希值之間的對應(yīng)關(guān)系;
[0126]接口 203還用于接收所述服務(wù)器發(fā)送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一個;
[0127]處理器202還用于根據(jù)所述對應(yīng)關(guān)系和所述第一哈希值,確定與所述第一哈希值所對應(yīng)的第一鍵;以及獲取所述第一鍵;
[0128]接口 203還用于向所述服務(wù)器發(fā)送所述第一鍵。
[0129]可選的,接口 203還用于接收所述服務(wù)器發(fā)送的第二鍵;
[0130]存儲單元201還用于存儲所述第二鍵,所述多個鍵中不包含所述第二鍵。
[0131]在具體實現(xiàn)過程中,存儲單元201包括IP硬盤中的內(nèi)存和磁盤。本發(fā)明實施例中的多個鍵,存儲在內(nèi)存或磁盤均可。本申請所屬技術(shù)人員可以根據(jù)實際需要來進行設(shè)置,本申請不作具體的限制。
[0132]其中,在圖4中,總線架構(gòu)(用總線200來代表),總線200可以包括任意數(shù)量的互聯(lián)的總線和橋,總線200將包括由處理器202代表的一個或多個處理器、接口 203代表的一個或多個接口、存儲單元201鏈接在一起。總線200還可以將諸如外圍設(shè)備、穩(wěn)壓器和功率管理電路等之類的各種其他電路鏈接在一起,這些都是本領(lǐng)域所公知的,因此,本文不再對其進行進一步描述。
[0133]在具體實現(xiàn)過程中,接口 203具體為以太網(wǎng)接口,通過以太網(wǎng)協(xié)議實現(xiàn)IP硬盤與服務(wù)器、其他外部設(shè)備、網(wǎng)絡(luò)或應(yīng)用交互數(shù)據(jù)。
[0134]處理器202負責(zé)管理總線200和通常的處理,而存儲單元201還被用于存儲處理器202在執(zhí)行操作時所使用的數(shù)據(jù)。
[0135]前述實施例中描述的生成哈希值過程的各種變化方式和具體實例同樣適用于本實施例的IP硬盤,通過前述對生成哈希值執(zhí)行過程的詳細描述,本領(lǐng)域技術(shù)人員可以清楚的知道本實施例中IP硬盤的實施方法,所以為了說明書的簡潔,在此不再詳述。
[0136]本發(fā)明實施例中提供的一個或多個技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點:
[0137]所述服務(wù)器向所述多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;所述服務(wù)器接收所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值;所述服務(wù)器根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。所以,在本發(fā)明實施例中,當(dāng)目標(biāo)哈希值未包含在第一哈希值中時,就可以確定第一 IP硬盤中存儲的第一哈希值對應(yīng)的鍵已被損壞。并且,哈希值與鍵本身相比,數(shù)據(jù)量要小,因此傳輸效率比傳輸鍵本身更快。所以,提高了 IP硬盤中損壞鍵的檢測效率。
[0138]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0139]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0140]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0141]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0142]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種檢測鍵的方法,其特征在于,所述方法應(yīng)用于存儲系統(tǒng)中,所述存儲系統(tǒng)包括服務(wù)器和多個IP硬盤,包括: 所述服務(wù)器向所述多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵; 所述服務(wù)器接收所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值; 所述服務(wù)器根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值; 當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,所述服務(wù)器確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述服務(wù)器向所述其他IP硬盤發(fā)送所述目標(biāo)哈希值; 接收所述其他IP硬盤發(fā)送的所述目標(biāo)哈希值對應(yīng)的所述鍵; 將所述鍵發(fā)送至所述第一 IP硬盤,以使所述第一 IP硬盤修復(fù)所述鍵。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述多個IP硬盤是所述待檢測分區(qū)對應(yīng)的IP硬盤。
4.一種生成哈希值的方法,其特征在于,應(yīng)用于IP硬盤,所述IP硬盤包括多個鍵,所述方法包括: 對多個鍵中的每個鍵進行哈希運算,獲得所述每個鍵對應(yīng)的哈希值; 接收服務(wù)器發(fā)送的檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括所述多個鍵; 向所述服務(wù)器發(fā)送與所述標(biāo)識對應(yīng)的多個哈希值。
5.如權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 保存所述每個鍵與哈希值之間的對應(yīng)關(guān)系; 接收所述服務(wù)器發(fā)送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一個; 根據(jù)所述對應(yīng)關(guān)系和所述第一哈希值,確定與所述第一哈希值所對應(yīng)的第一鍵; 獲取所述第一鍵,并向所述服務(wù)器發(fā)送所述第一鍵。
6.如權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 接收所述服務(wù)器發(fā)送的第二鍵,并存儲所述第二鍵,所述多個鍵中不包含所述第二鍵。
7.一種服務(wù)器,其特征在于,包括: 通信接口,用于向多個IP硬盤中的第一 IP硬盤發(fā)送檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括多個鍵;并所述第一 IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第一哈希值; 處理器,用于根據(jù)所述多個IP硬盤中的其他IP硬盤發(fā)送的與所述標(biāo)識對應(yīng)的多個第二哈希值,判斷是否每個第二哈希值均存在相等的第一哈希值;當(dāng)所述多個第二哈希值中的目標(biāo)哈希值沒有包含在所述多個第一哈希值時,確定所述第一 IP硬盤中存儲的與所述目標(biāo)哈希值對應(yīng)的鍵被損壞。
8.如權(quán)利要求7所述的服務(wù)器,其特征在于,所述通信接口還用于: 向所述其他IP硬盤發(fā)送所述目標(biāo)哈希值; 接收所述其他IP硬盤發(fā)送的所述目標(biāo)哈希值對應(yīng)的所述鍵; 將所述鍵發(fā)送至所述第一 IP硬盤,以使所述第一 IP硬盤修復(fù)所述鍵。
9.如權(quán)利要求7或8所述的服務(wù)器,其特征在于,所述多個IP硬盤是所述待檢測分區(qū)對應(yīng)的IP硬盤。
10.一種IP硬盤,其特征在于,包括: 存儲單元,用于存儲多個鍵; 處理器,用于對多個鍵中的每個鍵進行哈希運算,獲得所述每個鍵對應(yīng)的哈希值; 接口,用于接收服務(wù)器發(fā)送的檢測指令,所述檢測指令包括待檢測分區(qū)的標(biāo)識,所述待檢測分區(qū)包括所述多個鍵;并向所述服務(wù)器發(fā)送與所述標(biāo)識對應(yīng)的多個哈希值。
11.如權(quán)利要求10所述的IP硬盤,其特征在于,所述存儲單元還用于保存所述每個鍵與哈希值之間的對應(yīng)關(guān)系; 所述接口還用于接收所述服務(wù)器發(fā)送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一個; 所述處理器還用于根據(jù)所述對應(yīng)關(guān)系和所述第一哈希值,確定與所述第一哈希值所對應(yīng)的第一鍵;以及獲取所述第一鍵; 所述接口還用于向所述服務(wù)器發(fā)送所述第一鍵。
12.如權(quán)利要求11所述的IP硬盤,其特征在于,所述接口還用于接收所述服務(wù)器發(fā)送的第二鍵; 所述存儲單元還用于存儲所述第二鍵,所述多個鍵中不包含所述第二鍵。
【文檔編號】G06F17/30GK104461817SQ201410696743
【公開日】2015年3月25日 申請日期:2014年11月26日 優(yōu)先權(quán)日:2014年11月26日
【發(fā)明者】張雷 申請人:華為技術(shù)有限公司