国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)校驗(yàn)方法及存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)的制作方法

      文檔序號(hào):6384307閱讀:375來(lái)源:國(guó)知局
      專利名稱:一種數(shù)據(jù)校驗(yàn)方法及存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及ー種數(shù)據(jù)校驗(yàn)方法及存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)。
      背景技術(shù)
      隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,用戶數(shù)據(jù)越來(lái)越多,計(jì)算機(jī)自身攜帯的單個(gè)硬盤(pán)已經(jīng)沒(méi)無(wú)法滿足用戶數(shù)據(jù)的存儲(chǔ)需求,需要使用獨(dú)立的存儲(chǔ)系統(tǒng)存儲(chǔ)用戶數(shù)據(jù)。為了檢測(cè)用戶數(shù)據(jù)在存儲(chǔ)系統(tǒng)內(nèi)部的傳輸和保存的過(guò)程中,因存儲(chǔ)系統(tǒng)的硬件故障、軟件故障、硬盤(pán)錯(cuò)誤等導(dǎo)致用戶數(shù)據(jù)的損壞,保證用戶數(shù)據(jù)的完整性,則需要對(duì)用戶數(shù)據(jù)進(jìn)行校驗(yàn)?,F(xiàn)有技術(shù)中,提供兩種用戶數(shù)據(jù)的校驗(yàn)方法
      其一在主機(jī)側(cè)實(shí)現(xiàn)數(shù)據(jù)完整性字段(Data Integrity Field,DIF)數(shù)據(jù)校驗(yàn)。當(dāng)需要向存儲(chǔ)系統(tǒng)寫(xiě)入用戶數(shù)據(jù)時(shí),主機(jī)總線適配器(HostBus Adapte,HBA)根據(jù)用戶數(shù)據(jù)和邏輯塊地址生成DIF校驗(yàn)碼,并把DIF校驗(yàn)碼添加到用戶數(shù)據(jù)的末尾,形成寫(xiě)入數(shù)據(jù)。寫(xiě)入數(shù)據(jù)包括用戶數(shù)據(jù)和DIF校驗(yàn)碼,如圖1所示。然后,HBA將寫(xiě)入數(shù)據(jù)發(fā)送到存儲(chǔ)系統(tǒng)。存儲(chǔ)系統(tǒng)接收到寫(xiě)入數(shù)據(jù)后,從寫(xiě)入數(shù)據(jù)提取用戶數(shù)據(jù)和DIF校驗(yàn)碼,并校驗(yàn)用戶數(shù)據(jù)是否與DIF校驗(yàn)碼相匹配。如果用戶數(shù)據(jù)與DIF校驗(yàn)碼相匹配,則將寫(xiě)入數(shù)據(jù)寫(xiě)入物理存儲(chǔ)介質(zhì)。當(dāng)需要從存儲(chǔ)系統(tǒng)讀寫(xiě)入數(shù)據(jù)時(shí),存儲(chǔ)系統(tǒng)向HBA返回寫(xiě)入數(shù)據(jù)。HBA從寫(xiě)入數(shù)據(jù)提取用戶數(shù)據(jù)和DIF校驗(yàn)碼,并校驗(yàn)用戶數(shù)據(jù)是否與DIF校驗(yàn)碼相匹配。如果用戶數(shù)據(jù)與DIF校驗(yàn)碼相匹配,則HBA剔除DIF校驗(yàn)碼,僅向主機(jī)返回用戶數(shù)據(jù)。其ニ 在存儲(chǔ)系統(tǒng)側(cè)實(shí)現(xiàn)DIF數(shù)據(jù)校驗(yàn)。存儲(chǔ)系統(tǒng)接收用戶數(shù)據(jù)時(shí),根據(jù)用戶數(shù)據(jù)生成DIF校驗(yàn)碼。當(dāng)存儲(chǔ)系統(tǒng)需要將用戶數(shù)據(jù)寫(xiě)入物理存儲(chǔ)介質(zhì)時(shí),存儲(chǔ)系統(tǒng)校驗(yàn)用戶數(shù)據(jù)是否與DIF校驗(yàn)碼相匹配。如果用戶數(shù)據(jù)與DIF校驗(yàn)碼相匹配,則存儲(chǔ)系統(tǒng)將用戶數(shù)據(jù)與DIF校驗(yàn)碼一起寫(xiě)入物理存儲(chǔ)介質(zhì)。當(dāng)需要讀取用戶數(shù)據(jù)時(shí),存儲(chǔ)系統(tǒng)再一次校驗(yàn)用戶數(shù)據(jù)是否與DIF校驗(yàn)碼相匹配,并在用戶數(shù)據(jù)與DIF校驗(yàn)碼相匹配吋,則剔除DIF校驗(yàn)碼,僅返回用戶數(shù)據(jù)。本發(fā)明人在長(zhǎng)期研究中發(fā)現(xiàn)現(xiàn)有技術(shù)的兩種用戶數(shù)據(jù)的校驗(yàn)方法,在向物理存儲(chǔ)介質(zhì)存儲(chǔ)用戶數(shù)據(jù)時(shí),均將DIF校驗(yàn)碼與用戶數(shù)據(jù)寫(xiě)入物理存儲(chǔ)介質(zhì)的ー個(gè)邏輯塊中。又如圖1所示,ー個(gè)DIF校驗(yàn)碼共8個(gè)字節(jié),包含ー個(gè)2個(gè)字節(jié)的循環(huán)冗余校驗(yàn)碼(CyclicRedundancy Check,CRC)、一個(gè) 2 字節(jié)的應(yīng)用標(biāo)簽(Application tag,App Tag)和一個(gè) 4 字節(jié)的參照標(biāo)簽(Reference tag,參照標(biāo)簽Ref Tag),—個(gè)DIF校驗(yàn)碼可對(duì)512字節(jié)的用戶數(shù)據(jù)進(jìn)行校驗(yàn)。簡(jiǎn)而言之,存儲(chǔ)512字節(jié)的用戶數(shù)據(jù)時(shí),額外需要8字節(jié)來(lái)存儲(chǔ)DIF校驗(yàn)碼,而用戶數(shù)據(jù)與DIF校驗(yàn)碼均存儲(chǔ)在物理存儲(chǔ)介質(zhì)的同一個(gè)扇區(qū),因此,扇區(qū)的容量需要為520字節(jié),或者為520字節(jié)的整數(shù)倍。但是,目前通用的硬盤(pán)或者操作系統(tǒng)支持一個(gè)扇區(qū)的大小為512字節(jié)或4096字節(jié),無(wú)法滿足需求,若要増加DIF校驗(yàn),會(huì)更改物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局。

      發(fā)明內(nèi)容
      本發(fā)明實(shí)施方式主要解決的技術(shù)問(wèn)題是提供一種數(shù)據(jù)校驗(yàn)方法及裝置,既能夠?qū)崿F(xiàn)用戶數(shù)據(jù)的校驗(yàn),而用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)又不受物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,更加靈活。第一方面,提供一種數(shù)據(jù)校驗(yàn)方法,包括接收將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)以及用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼;在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;若用戶數(shù)據(jù)與校驗(yàn)碼匹配,則將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊對(duì)應(yīng)的用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼。結(jié)合第一方面實(shí)現(xiàn)方式,在第一方面的第一種可能實(shí)現(xiàn)方式中,將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系的步驟包括在關(guān)聯(lián)數(shù)據(jù)中查詢是否存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址;若查詢到校驗(yàn)數(shù)據(jù)塊地址,則將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊,并將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊,若沒(méi)有查詢到校驗(yàn)數(shù)據(jù)塊地址,則申請(qǐng)新的校驗(yàn)數(shù)據(jù)塊,并將校驗(yàn)碼寫(xiě)入新的校驗(yàn)數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與新的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。第二方面,提供一種數(shù)據(jù)校驗(yàn)方法,包括接收讀用戶數(shù)據(jù)的讀請(qǐng)求,讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址;從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;從校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù);根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則返回用戶數(shù)據(jù)。結(jié)合第二方面的實(shí)現(xiàn)方式,在第二方面的第一種可能實(shí)現(xiàn)方式中,根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配的步驟包括在讀取用戶數(shù)據(jù)和校驗(yàn)碼完成時(shí),根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則在返回用戶數(shù)據(jù)時(shí),根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配。結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第二方面的第二種可能實(shí)現(xiàn)方式中,方法還包括在讀取用戶數(shù)據(jù)和校驗(yàn)碼完成時(shí),若校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼不匹配,則修復(fù)用戶數(shù)據(jù),并在修復(fù)成功后,進(jìn)入在返回用戶數(shù)據(jù)時(shí),根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配的步驟。第三方面,提供一種存儲(chǔ)設(shè)備,包括接收模塊,用于接收將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)以及用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);生成模塊,用于根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼;校驗(yàn)?zāi)K,在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;寫(xiě)入模塊,用于在用戶數(shù)據(jù)與校驗(yàn)碼匹配時(shí),將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊的用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;其中,校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼。
      結(jié)合第三方面實(shí)現(xiàn)方式,在第三方面的第一種可能實(shí)現(xiàn)方式中,存儲(chǔ)設(shè)備還包括查詢模塊,用于在校驗(yàn)?zāi)K校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),在關(guān)聯(lián)數(shù)據(jù)中查詢是否存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址;寫(xiě)入模塊包括第一寫(xiě)入?yún)g元和第二寫(xiě)入?yún)g元;第一寫(xiě)入?yún)g元,用于在查詢模塊在關(guān)聯(lián)數(shù)據(jù)中查詢到存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址時(shí),將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊,并將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊;第二寫(xiě)入?yún)g元,用于在查詢模塊在關(guān)聯(lián)數(shù)據(jù)中查詢到不存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址吋,申請(qǐng)新的校驗(yàn)數(shù)據(jù)塊,并將校驗(yàn)碼寫(xiě)入新的校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與新的校驗(yàn)數(shù)據(jù)塊的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。第四方面,提供ー種存儲(chǔ)設(shè)備,包括接收模塊,用于接收讀用戶數(shù)據(jù)的讀請(qǐng)求,讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址;獲取模塊,用于從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;讀取模塊,用于從校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù);校驗(yàn)?zāi)K,用于根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)是否與校驗(yàn)碼相匹配;數(shù)據(jù)返回模塊,用于在用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),返回用戶數(shù)據(jù)。結(jié)合第四方面實(shí)現(xiàn)方式,在第四方面的第一種可能實(shí)現(xiàn)方式中,校驗(yàn)?zāi)K包括第一校驗(yàn)單元和第二校驗(yàn)單元;第一校驗(yàn)單元,用于在讀取用戶數(shù)據(jù)和校驗(yàn)碼完成時(shí),根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;第二校驗(yàn)單元,用于在第一校驗(yàn)單元校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配,并在進(jìn)入數(shù)據(jù)返回模塊之前,校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;數(shù)據(jù)返回模塊具體用于在第二校驗(yàn)單元校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配,返回用戶數(shù)據(jù)。結(jié)合第四方面的第一種可能實(shí)現(xiàn)方式,在第四方面的第二種可能實(shí)現(xiàn)方式中,校驗(yàn)?zāi)K還包括修復(fù)單元;修復(fù)單元用于在第一校驗(yàn)?zāi)K校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼不相匹配時(shí),修復(fù)用戶數(shù)據(jù)。第五方面,提供ー種存儲(chǔ)系統(tǒng),包括存儲(chǔ)系統(tǒng)包括處理設(shè)備和存儲(chǔ)設(shè)備;存儲(chǔ)設(shè)備包括存儲(chǔ)處理器和存儲(chǔ)器,存儲(chǔ)器包括存儲(chǔ)塊,存儲(chǔ)塊劃分有用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊,用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù),校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼;存儲(chǔ)管理器接收來(lái)自處理器的將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)以及用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼;在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;若用戶數(shù)據(jù)與校驗(yàn)碼匹配,存儲(chǔ)管理器將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊對(duì)應(yīng)的用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。本發(fā)明實(shí)施方式的有益效果是本發(fā)明將用戶數(shù)據(jù)與校驗(yàn)碼分開(kāi)存儲(chǔ),用戶數(shù)據(jù)存儲(chǔ)用戶數(shù)據(jù)塊中,校驗(yàn)碼存儲(chǔ)在校驗(yàn)數(shù)據(jù)塊中。并通過(guò)在關(guān)聯(lián)數(shù)據(jù)中建立用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,從而通過(guò)用戶數(shù)據(jù)塊地就能查找到校驗(yàn)碼。使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的ー個(gè)邏輯塊中,并且用戶數(shù)據(jù)或者校驗(yàn)碼的大小均沒(méi)超過(guò)現(xiàn)有技術(shù)中物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小,進(jìn)而使得用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)不再受物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。


      為了更清楚地說(shuō)明本發(fā)明實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是現(xiàn)有技術(shù)中用戶數(shù)據(jù)與校驗(yàn)碼合并成一個(gè)數(shù)據(jù)字段的示意圖;圖2是本發(fā)明存儲(chǔ)系統(tǒng)實(shí)施方式的結(jié)構(gòu)示意圖;圖3是本發(fā)明數(shù)據(jù)校驗(yàn)方法第一實(shí)施方式的流程圖;圖4是本發(fā)明數(shù)據(jù)校驗(yàn)方法第二實(shí)施方式的流程圖;圖5是本發(fā)明數(shù)據(jù)校驗(yàn)方法第三實(shí)施方式的流程圖;圖6是本發(fā)明數(shù)據(jù)校驗(yàn)方法第四實(shí)施方式的流程圖;圖7是本發(fā)明存儲(chǔ)設(shè)備第一實(shí)施方式的結(jié)構(gòu)示意圖;圖8是本發(fā)明存儲(chǔ)設(shè)備第二實(shí)施方式的結(jié)構(gòu)示意圖;圖9是本發(fā)明存儲(chǔ)設(shè)備第三實(shí)施方式的結(jié)構(gòu)示意圖;圖10是本發(fā)明存儲(chǔ)設(shè)備第四實(shí)施方式的結(jié)構(gòu)示意圖。
      具體實(shí)施例方式請(qǐng)參閱圖2,圖2是本發(fā)明存儲(chǔ)系統(tǒng)實(shí)施方式的結(jié)構(gòu)示意圖。如圖所述,存儲(chǔ)系統(tǒng)10包括處理設(shè)備11和存儲(chǔ)設(shè)備12。存儲(chǔ)設(shè)備12包括存儲(chǔ)管理器121和存儲(chǔ)器122。存儲(chǔ)器122包括存儲(chǔ)塊123,存儲(chǔ)塊123劃分有用戶數(shù)據(jù)塊1231和校驗(yàn)數(shù)據(jù)塊1232。用戶數(shù)據(jù)塊1231用于存儲(chǔ)用戶數(shù)據(jù),校驗(yàn)數(shù)據(jù)塊1232用于存儲(chǔ)校驗(yàn)碼。需要說(shuō)明的是存儲(chǔ)塊123可為存儲(chǔ)器122的最小存儲(chǔ)單元,即為扇區(qū)。將存儲(chǔ)塊123劃分為用戶數(shù)據(jù)塊1231和校驗(yàn)數(shù)據(jù)塊1232,并不需要改動(dòng)的存儲(chǔ)器123的存儲(chǔ)空間布局,僅需要從邏輯上進(jìn)行定義即可,比如存儲(chǔ)器123有150兆存儲(chǔ)空間,可將其中50兆存儲(chǔ)空間定義用于存儲(chǔ)校驗(yàn)碼,剩余的100兆存儲(chǔ)空間定義用于存儲(chǔ)用戶數(shù)據(jù),則該50兆存儲(chǔ)空間中的存儲(chǔ)塊為校驗(yàn)數(shù)據(jù)塊,剩余的100兆存儲(chǔ)空間內(nèi)的存儲(chǔ)塊為用戶數(shù)據(jù)塊,并且用戶數(shù)據(jù)塊1231和校驗(yàn)數(shù)據(jù)塊1232位于存儲(chǔ)器122的不同扇區(qū)。進(jìn)一步的,存儲(chǔ)器123的數(shù)量可以為多個(gè),用戶數(shù)據(jù)塊1231和校驗(yàn)數(shù)據(jù)塊1232的數(shù)量也可為多個(gè)。每一個(gè)用戶數(shù)據(jù)塊1231對(duì)應(yīng)有唯一標(biāo)識(shí)的用戶數(shù)據(jù)塊地址,每一個(gè)校驗(yàn)數(shù)據(jù)塊1232對(duì)應(yīng)有唯一標(biāo)識(shí)的校驗(yàn)數(shù)據(jù)塊地址。就在操作系統(tǒng)層面而言,校驗(yàn)數(shù)據(jù)塊地址和用戶數(shù)據(jù)塊地址可為邏輯單元編號(hào)(Logic Unit Number,LUN),以邏輯單元編號(hào)映射存儲(chǔ)塊123。操作系統(tǒng)進(jìn)行操作時(shí),是對(duì)邏輯單元編號(hào)進(jìn)行操作。值得說(shuō)明的是,在本發(fā)明實(shí)施方式中,校驗(yàn)數(shù)據(jù)塊地址和用戶數(shù)據(jù)塊地址可以分屬在不同的LUN,在接收寫(xiě)入請(qǐng)求之前存儲(chǔ)系統(tǒng)可以分配一段LUN用于存儲(chǔ)處理設(shè)備下發(fā)的用戶數(shù)據(jù),在根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼之后,可以再分配另一段LUN用于存儲(chǔ)校驗(yàn)碼。在使用上述存儲(chǔ)系統(tǒng)10時(shí),又具體分為寫(xiě)和讀兩方面。對(duì)于寫(xiě)方面,存儲(chǔ)管理器121接收來(lái)自處理器11的將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)以及用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址。存儲(chǔ)管理器121根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼。其中,校驗(yàn)規(guī)則不作具體限定,可為DIF校驗(yàn)、奇偶校驗(yàn)等等。在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊1231之前,存儲(chǔ)管理器121根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配。若用戶數(shù)據(jù)與校驗(yàn)碼匹配,存儲(chǔ)管理器121將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊1232,將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊,并在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊1231的用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊1232的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。關(guān)聯(lián)數(shù)據(jù)可存儲(chǔ)于存儲(chǔ)管理器121自身配置的存儲(chǔ)空間中。對(duì)于讀方面,存儲(chǔ)管理器121接收來(lái)自處理器11的讀用戶數(shù)據(jù)的讀請(qǐng)求,讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊1231對(duì)應(yīng)的用戶數(shù)據(jù)塊地址。存儲(chǔ)管理器121在從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址。存儲(chǔ)管理器121從校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊1232讀取校驗(yàn)碼,從用戶數(shù)據(jù)塊1231讀取用戶數(shù)據(jù)。存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配。若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則存儲(chǔ)管理器121向處理器11返回用戶數(shù)據(jù)。在本發(fā)明實(shí)施方式中,存儲(chǔ)管理器121將用戶數(shù)據(jù)存儲(chǔ)用戶數(shù)據(jù)塊1231中,將校驗(yàn)碼存儲(chǔ)在校驗(yàn)數(shù)據(jù)塊1232中,并且在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的ー個(gè)邏輯塊中,避免了用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)受到物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制。當(dāng)需要對(duì)數(shù)據(jù)添加校驗(yàn)時(shí),直接添加即可,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。本發(fā)明又提供ー種數(shù)據(jù)校驗(yàn)方法的實(shí)施方式。請(qǐng)參閱圖3,圖3是本發(fā)明數(shù)據(jù)校驗(yàn)方法第一實(shí)施方式的流程圖。如圖所示,所述方法包括步驟S201 :存儲(chǔ)管理器接收將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)以及用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);存儲(chǔ)管理器用于管理用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊。每ー個(gè)用戶數(shù)據(jù)塊都有唯一標(biāo)識(shí)的用戶數(shù)據(jù)塊地址,同樣的,每ー個(gè)校驗(yàn)數(shù)據(jù)塊都有唯一標(biāo)識(shí)的校驗(yàn)數(shù)據(jù)塊。進(jìn)ー步的,用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊可以預(yù)先劃分好的,比如150兆存儲(chǔ)空間,可將其中50兆存儲(chǔ)空間定義用于存儲(chǔ)校驗(yàn)碼,剰余的100兆存儲(chǔ)空間定義用于存儲(chǔ)用戶數(shù)據(jù),則該50兆存儲(chǔ)空間中的存儲(chǔ)塊為校驗(yàn)數(shù)據(jù)塊,剰余的100兆存儲(chǔ)空間內(nèi)的存儲(chǔ)塊為用戶數(shù)據(jù)塊。就操作系統(tǒng)層面而言,用戶數(shù)據(jù)塊地址和校驗(yàn)數(shù)據(jù)塊地址相當(dāng)于LUN,以LUN映射用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊,則劃分用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊,可直接對(duì)LUN進(jìn)行劃分即可。步驟S202 :存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼;在本發(fā)明實(shí)施方式中,校驗(yàn)規(guī)則不作具體限定,可為DIF校驗(yàn)、奇偶校驗(yàn)、總數(shù)校驗(yàn)等等,不同的校驗(yàn)規(guī)則,生成的校驗(yàn)碼不一定相同,例如校驗(yàn)規(guī)則為DIF校驗(yàn),則生成的校驗(yàn)碼為DIF校驗(yàn)碼,若為奇偶校驗(yàn),則生成的校驗(yàn)碼為奇偶校驗(yàn)碼。步驟S203 :在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配,若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則進(jìn)入步驟S204,否則進(jìn)入步驟S205 ;存儲(chǔ)管理器接收用戶數(shù)據(jù)后,可能需要對(duì)用戶數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)發(fā),在進(jìn)行對(duì)用戶數(shù)據(jù)處理和轉(zhuǎn)發(fā)的過(guò)程中,有可能會(huì)損壞用戶數(shù)據(jù)。為了避免向用戶數(shù)據(jù)塊寫(xiě)入錯(cuò)誤的用戶數(shù)據(jù),在對(duì)用戶數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)發(fā)完成后,在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,對(duì)用戶數(shù)據(jù)進(jìn)行校驗(yàn),確保寫(xiě)入用戶數(shù)據(jù)塊的用戶數(shù)據(jù)為完整的數(shù)據(jù)。步驟S203所說(shuō)的在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前具體為存儲(chǔ)管理器已經(jīng)完成對(duì)用戶數(shù)據(jù)的轉(zhuǎn)發(fā)和處理后,將進(jìn)入將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的前一刻。步驟S204 :存儲(chǔ)管理器將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼;關(guān)聯(lián)數(shù)據(jù)可存儲(chǔ)在存儲(chǔ)管理器自身攜帶的存儲(chǔ)空間中。關(guān)聯(lián)數(shù)據(jù)塊不同于校驗(yàn)數(shù)據(jù)塊和用戶數(shù)據(jù)塊,關(guān)聯(lián)數(shù)據(jù)塊僅用于存儲(chǔ)關(guān)聯(lián)數(shù)據(jù)。步驟S205 :存儲(chǔ)管理器返回寫(xiě)錯(cuò)誤消息,并結(jié)束流程。在本發(fā)明實(shí)施方式中,將用戶數(shù)據(jù)與校驗(yàn)碼分開(kāi)存儲(chǔ),用戶數(shù)據(jù)存儲(chǔ)用戶數(shù)據(jù)塊中,校驗(yàn)碼存儲(chǔ)在校驗(yàn)數(shù)據(jù)塊中,并通過(guò)在關(guān)聯(lián)數(shù)據(jù)中建立用戶數(shù)據(jù)對(duì)應(yīng)的用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,從而通過(guò)用戶數(shù)據(jù)塊地址就能查找到校驗(yàn)碼。使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的一個(gè)邏輯塊中,避免了用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)受到物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制。當(dāng)需要對(duì)數(shù)據(jù)添加校驗(yàn)時(shí),直接添加即可,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。請(qǐng)參閱圖4,圖4是本發(fā)明數(shù)據(jù)校驗(yàn)方法第二實(shí)施方式的流程圖。如圖所示,所述方法包括步驟S301 :存儲(chǔ)管理器接收將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)以及用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);值得注意的是用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊的數(shù)量為多個(gè),每一個(gè)用戶數(shù)據(jù)塊通過(guò)唯一用戶數(shù)據(jù)塊地址標(biāo)識(shí),每一個(gè)校驗(yàn)數(shù)據(jù)塊通過(guò)唯一的校驗(yàn)數(shù)據(jù)塊地址標(biāo)識(shí)。存儲(chǔ)管理器用于管理用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊。步驟S302 :存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼;數(shù)據(jù)校驗(yàn)規(guī)則不作限定,可根據(jù)實(shí)情況進(jìn)行選擇,例如,若校驗(yàn)規(guī)則為DIF校驗(yàn),則生成的校驗(yàn)碼為DIF校驗(yàn)碼,若校驗(yàn)規(guī)則為奇偶校驗(yàn),則生成的校驗(yàn)碼為奇偶校驗(yàn)碼。步驟S303 :在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配,若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則步驟S305,否則進(jìn)入步驟S304 ;存儲(chǔ)管理器接收用戶數(shù)據(jù)后,可能需要對(duì)用戶數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)發(fā),在進(jìn)行對(duì)用戶數(shù)據(jù)處理和轉(zhuǎn)發(fā)的過(guò)程中,有可能會(huì)損壞用戶數(shù)據(jù),為了避免向用戶數(shù)據(jù)塊寫(xiě)入錯(cuò)誤的用戶數(shù)據(jù),需要寫(xiě)用戶數(shù)據(jù)之前對(duì)用戶數(shù)據(jù)進(jìn)行校驗(yàn)。步驟S203所述的在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前具體為存儲(chǔ)管理器已經(jīng)完成用戶數(shù)據(jù)的轉(zhuǎn)發(fā)和處理后,將進(jìn)入將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的前一刻。步驟S304 :存儲(chǔ)管理器返回寫(xiě)錯(cuò)誤消息,并結(jié)束流程。存儲(chǔ)管理器校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配的方式是根據(jù)具體數(shù)據(jù)校驗(yàn)規(guī)則進(jìn)行,例如數(shù)據(jù)校驗(yàn)規(guī)則為奇偶校驗(yàn),校驗(yàn)碼為奇數(shù),則計(jì)算用戶數(shù)據(jù)的位數(shù),并判斷是否為奇數(shù)。步驟S305 :存儲(chǔ)管理器在關(guān)聯(lián)數(shù)據(jù)中查詢是否存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,若找到與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,則進(jìn)入步驟S306,否則進(jìn)入步驟S307 ;通過(guò)關(guān)聯(lián)數(shù)據(jù)記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,使用戶數(shù)據(jù)塊內(nèi)的用戶數(shù)據(jù)與校驗(yàn)數(shù)據(jù)塊地址內(nèi)的校驗(yàn)碼存在一一對(duì)應(yīng)關(guān)系,進(jìn)而使得用戶數(shù)據(jù)和校驗(yàn)碼可分開(kāi)存儲(chǔ)。步驟S306 :存儲(chǔ)管理器將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊、并將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊;步驟S307 :存儲(chǔ)管理器申請(qǐng)新的校驗(yàn)數(shù)據(jù)塊,并將校驗(yàn)碼寫(xiě)入新的校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與新的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。在本發(fā)明實(shí)施方式中,將用戶數(shù)據(jù)存儲(chǔ)用戶數(shù)據(jù)塊中,將校驗(yàn)碼存儲(chǔ)在校驗(yàn)數(shù)據(jù)塊中,并且在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的ー個(gè)邏輯塊中,避免了用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)受到物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制。當(dāng)需要對(duì)數(shù)據(jù)添加校驗(yàn)時(shí),直接添加即可,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。請(qǐng)參閱圖5,圖5是本發(fā)明數(shù)據(jù)校驗(yàn)方法第三實(shí)施方式的流程圖。如圖所示,所述方法包括步驟S401 :存儲(chǔ)管理器接收讀用戶數(shù)據(jù)的讀請(qǐng)求,讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊的用戶數(shù)據(jù)塊地址;用戶數(shù)據(jù)塊僅用于存儲(chǔ)用戶數(shù)據(jù)。每ー個(gè)用戶數(shù)據(jù)塊都有唯一標(biāo)識(shí)的用戶數(shù)據(jù)塊地址。步驟S402 :存儲(chǔ)管理器從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;校驗(yàn)數(shù)據(jù)塊地址為校驗(yàn)數(shù)據(jù)塊的標(biāo)識(shí),一個(gè)校驗(yàn)數(shù)據(jù)塊對(duì)應(yīng)ー個(gè)唯一校驗(yàn)數(shù)據(jù)塊地址。關(guān)聯(lián)數(shù)據(jù)可存儲(chǔ)于存儲(chǔ)管理器自身攜帯的存儲(chǔ)空間中,關(guān)聯(lián)數(shù)據(jù)塊僅用于存儲(chǔ)關(guān)聯(lián)數(shù)據(jù)。步驟S403 :存儲(chǔ)管理器從校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù);校驗(yàn)碼為在數(shù)據(jù)校驗(yàn)規(guī)則下,根據(jù)用戶數(shù)據(jù)生成的,而本發(fā)明實(shí)施方式不限定具體的數(shù)據(jù)校驗(yàn)規(guī)則,可根據(jù)實(shí)際情況進(jìn)行選擇,比如數(shù)據(jù)校驗(yàn)為DIF校驗(yàn),則校驗(yàn)碼為DIF校驗(yàn)碼。步驟S404 :存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配,若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則進(jìn)入步驟S405,否則進(jìn)入步驟S406 ;若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則說(shuō)明當(dāng)前的讀取到的用戶數(shù)據(jù)為完整可靠的數(shù)據(jù),可直接返回該用戶數(shù)據(jù)。步驟S405 :存儲(chǔ)管理器返回用戶數(shù)據(jù);步驟S406 :存儲(chǔ)管理器返回讀用戶數(shù)據(jù)失敗消息,并結(jié)束流程;在本發(fā)明實(shí)施方式中,存儲(chǔ)管理器從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,并從用戶數(shù)據(jù)塊地址對(duì)應(yīng)的用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù),從校驗(yàn)數(shù)據(jù)塊地址對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及在用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),返回用戶數(shù)據(jù)。其中,用戶數(shù)據(jù)存儲(chǔ)用戶數(shù)據(jù)塊中,校驗(yàn)碼存儲(chǔ)在校驗(yàn)數(shù)據(jù)塊,使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的一個(gè)邏輯塊中,避免了用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)受到物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制。當(dāng)需要對(duì)數(shù)據(jù)添加校驗(yàn)時(shí),直接添加即可,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。請(qǐng)參閱圖6,圖6是本發(fā)明數(shù)據(jù)校驗(yàn)方法第四實(shí)施方式的流程圖。如圖所示,所述方法包括步驟S501 :存儲(chǔ)管理器接收讀用戶數(shù)據(jù)的讀請(qǐng)求,讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊的用戶數(shù)據(jù)塊地址;存儲(chǔ)管理器用于管理用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊。用戶數(shù)據(jù)塊僅用于存儲(chǔ)用戶數(shù)據(jù)。校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼。每一個(gè)用戶數(shù)據(jù)塊都有唯一標(biāo)識(shí)的用戶數(shù)據(jù)塊地址。每一個(gè)校驗(yàn)數(shù)據(jù)塊都有唯一標(biāo)識(shí)的校驗(yàn)數(shù)據(jù)塊地址。步驟S502 :存儲(chǔ)管理器從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;通過(guò)關(guān)聯(lián)數(shù)據(jù)記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,使用戶數(shù)據(jù)塊內(nèi)的用戶數(shù)據(jù)與校驗(yàn)數(shù)據(jù)塊地址內(nèi)的校驗(yàn)碼存在一一對(duì)應(yīng)關(guān)系,進(jìn)而使得用戶數(shù)據(jù)和校驗(yàn)碼可分開(kāi)存儲(chǔ)。步驟S503 :存儲(chǔ)管理器從校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從用戶數(shù)據(jù)塊獲取用戶數(shù)據(jù);校驗(yàn)碼為在數(shù)據(jù)校驗(yàn)規(guī)則下,根據(jù)用戶數(shù)據(jù)生成的,而本發(fā)明實(shí)施方式不限定具體的數(shù)據(jù)校驗(yàn)規(guī)則,可根據(jù)實(shí)際情況進(jìn)行選擇。步驟S504:在讀取用戶數(shù)據(jù)和校驗(yàn)碼完成時(shí),存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配,若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則進(jìn)入步驟S506,否則進(jìn)入步驟S505 ;存儲(chǔ)管理器在讀取用戶數(shù)據(jù)完成時(shí),對(duì)用戶數(shù)據(jù)進(jìn)行校驗(yàn),若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則說(shuō)明當(dāng)前讀取的用戶數(shù)據(jù)為完整的數(shù)據(jù)。若若用戶數(shù)據(jù)與校驗(yàn)碼不匹配,則說(shuō)明用戶數(shù)據(jù)不完整,進(jìn)入步驟S506 ;步驟S505:存儲(chǔ)管理器修復(fù)用戶數(shù)據(jù),并在修復(fù)成功后,進(jìn)入步驟S506,若修復(fù)失敗,則進(jìn)入步驟S507 ;步驟S506 :在返回用戶數(shù)據(jù)時(shí),存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配,若用戶數(shù)據(jù)與校驗(yàn)碼相匹配,則進(jìn)入步驟S508,否則進(jìn)入步驟S507 ;存儲(chǔ)管理器在讀取到完整的用戶數(shù)據(jù)后,可能還需要經(jīng)過(guò)轉(zhuǎn)發(fā)等操作,才能向處理器返回用戶數(shù)據(jù)。而轉(zhuǎn)發(fā)用戶數(shù)據(jù)的過(guò)程中,有可能損壞用戶數(shù)據(jù),因此,在向處理器返回用戶數(shù)據(jù)時(shí),需要再次對(duì)用戶數(shù)據(jù)進(jìn)行校驗(yàn),避免返回錯(cuò)誤的用戶數(shù)據(jù)。步驟S507 :存儲(chǔ)管理器返回讀用戶數(shù)據(jù)失敗消息,結(jié)束流程。步驟S508 :存儲(chǔ)管理器返回用戶數(shù)據(jù);在本發(fā)明實(shí)施方式中,存儲(chǔ)管理器從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,并從用戶數(shù)據(jù)塊地址對(duì)應(yīng)的用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù),從校驗(yàn)數(shù)據(jù)塊地址對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及在用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),返回用戶數(shù)據(jù)。其中,用戶數(shù)據(jù)存儲(chǔ)用戶數(shù)據(jù)塊中,校驗(yàn)碼存儲(chǔ)在校驗(yàn)數(shù)據(jù)塊,使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的ー個(gè)邏輯塊中,避免了用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)受到物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制。當(dāng)需要對(duì)數(shù)據(jù)添加校驗(yàn)時(shí),直接添加即可,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。請(qǐng)參閱圖7,圖7是本發(fā)明存儲(chǔ)設(shè)備第一實(shí)施方式的結(jié)構(gòu)示意圖。如圖所示,所述存儲(chǔ)設(shè)備60包括接收模塊601、生成模塊602、校驗(yàn)?zāi)K603和寫(xiě)入模塊605。接收模塊601接收接收用戶數(shù)據(jù)以及將用戶數(shù)據(jù)寫(xiě)入的用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù)。生成模塊602根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼。校驗(yàn)規(guī)則不作具體限定,可為DIF校驗(yàn)、奇偶校驗(yàn)等等。校驗(yàn)?zāi)K603在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配。寫(xiě)入模塊605用于在校驗(yàn)?zāi)K603校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼。可選的,存儲(chǔ)設(shè)備60還包括查詢模塊604。寫(xiě)入模塊605包括第一寫(xiě)入?yún)g元6051和第二寫(xiě)入單元6052。查詢模塊604在校驗(yàn)?zāi)K603校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),在關(guān)聯(lián)數(shù)據(jù)中查詢是否存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址。第一寫(xiě)入?yún)g元6051在查詢模塊604在關(guān)聯(lián)數(shù)據(jù)中查詢到存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址時(shí),將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊,以及將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊。第二寫(xiě)入?yún)g元6052在查詢模塊604在關(guān)聯(lián)數(shù)據(jù)中查詢到不存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址時(shí),申請(qǐng)新的校驗(yàn)數(shù)據(jù)塊,并將校驗(yàn)碼寫(xiě)入新的校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與新的校驗(yàn)數(shù)據(jù)塊校驗(yàn)數(shù)據(jù)塊的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系??蛇x的,存儲(chǔ)設(shè)備還包括錯(cuò)誤返回模塊606。錯(cuò)誤返回模塊606在校驗(yàn)?zāi)K603校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相不匹配時(shí),返回用戶錯(cuò)誤消息。在本發(fā)明實(shí)施方式中,寫(xiě)入模塊605將接收模塊601接收的用戶數(shù)據(jù)和生成模塊602生成的校驗(yàn)碼分別存儲(chǔ)在用戶數(shù)據(jù)塊中和校驗(yàn)數(shù)據(jù)塊中,并在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的ー個(gè)邏輯塊中,避免了用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)受到物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制。當(dāng)需要對(duì)數(shù)據(jù)添加校驗(yàn)時(shí),直接添加即可,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。請(qǐng)參閱圖8,圖8是本發(fā)明存儲(chǔ)設(shè)備第二實(shí)施方式的結(jié)構(gòu)示意圖。如圖所示,所述存儲(chǔ)設(shè)備70包括處理器701、存儲(chǔ)器702和總線703。存儲(chǔ)器702包括用戶數(shù)據(jù)塊7021和校驗(yàn)數(shù)據(jù)塊7022。處理器701、用戶數(shù)據(jù)塊7021和校驗(yàn)數(shù)據(jù)塊7022均與總線703連接。處理器701用于接收將用戶數(shù)據(jù)寫(xiě)入的用戶數(shù)據(jù)塊703的寫(xiě)入請(qǐng)求,寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)和用戶數(shù)據(jù)塊對(duì)應(yīng)的用戶數(shù)據(jù)塊地址;用戶數(shù)據(jù)塊703用于存儲(chǔ)用戶數(shù)據(jù);根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼;在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配;若用戶數(shù)據(jù)與校驗(yàn)碼匹配,將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊702、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊703、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼。請(qǐng)參閱圖9,圖9是本發(fā)明存儲(chǔ)設(shè)備第三實(shí)施方式的結(jié)構(gòu)示意圖。如圖所示,所述存儲(chǔ)設(shè)備80包括接收模塊801、獲取模塊802、讀取模塊803、校驗(yàn)?zāi)K804和數(shù)據(jù)返回模塊 805。接收模塊801接收讀用戶數(shù)據(jù)的讀請(qǐng)求,讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊的用戶數(shù)據(jù)塊地址。獲取模塊802從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。讀取模塊803從校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù)。校驗(yàn)?zāi)K804校驗(yàn)根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)與校驗(yàn)碼是否匹配。數(shù)據(jù)返回模塊805在校驗(yàn)?zāi)K804校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),返回用戶數(shù)據(jù)??蛇x的,存儲(chǔ)設(shè)備80還包括錯(cuò)誤返回模塊806。校驗(yàn)?zāi)K804包括第一校驗(yàn)單元8041、第二校驗(yàn)單元8042以及修復(fù)單元8043。第一校驗(yàn)單元8041在讀取模塊803讀取校驗(yàn)碼和用戶數(shù)據(jù)完成時(shí),根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)是否與校驗(yàn)碼相匹配。第二校驗(yàn)單元8042在第一校驗(yàn)單元8041校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配后,以及在進(jìn)入所述數(shù)據(jù)返回單元之前,根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)是否與校驗(yàn)碼相匹配。數(shù)據(jù)返回模塊805具體在第二校驗(yàn)單元8042校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配,返回用戶數(shù)據(jù)。若第二校驗(yàn)單元8042校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼不相匹配時(shí),錯(cuò)誤返回模塊806返回讀取失敗消息。進(jìn)一步的,若第一校驗(yàn)單元8041校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼不相匹配,則修復(fù)單元8043修復(fù)用戶數(shù)據(jù)。并且修復(fù)單元8043成功修復(fù)用戶數(shù)據(jù)后,進(jìn)入第二校驗(yàn)單元8042。若修復(fù)單元8043修復(fù)用戶數(shù)據(jù)失敗,則錯(cuò)誤返回模塊806返回讀取失敗消息。在本發(fā)明實(shí)施方式中,獲取模塊802從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址。讀取模塊803從用戶數(shù)據(jù)塊地址對(duì)應(yīng)的用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù),從校驗(yàn)數(shù)據(jù)塊地址對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,數(shù)據(jù)返回模塊805在用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),返回用戶數(shù)據(jù)。其中,用戶數(shù)據(jù)存儲(chǔ)用戶數(shù)據(jù)塊中,校驗(yàn)碼存儲(chǔ)在校驗(yàn)數(shù)據(jù)塊,使得用戶數(shù)據(jù)與校驗(yàn)碼不再需要同時(shí)存儲(chǔ)在物理存儲(chǔ)介質(zhì)的一個(gè)邏輯塊中,避免了用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)受到物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制。當(dāng)需要對(duì)數(shù)據(jù)添加校驗(yàn)時(shí),直接添加即可,不需要改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,非常靈活。請(qǐng)參閱圖10,圖10是本發(fā)明存儲(chǔ)設(shè)備第四實(shí)施方式的結(jié)構(gòu)示意圖。如圖所示,所述存儲(chǔ)設(shè)備90包括處理器901、存儲(chǔ)器902和總線903。存儲(chǔ)器902包括用戶數(shù)據(jù)塊9021和校驗(yàn)數(shù)據(jù)塊9022。處理器901、用戶數(shù)據(jù)塊9021和校驗(yàn)數(shù)據(jù)塊9022均與總線903連接。處理器901用于接收讀用戶數(shù)據(jù)的讀請(qǐng)求,讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊的用戶數(shù)據(jù)塊地址;從關(guān)聯(lián)數(shù)據(jù)中獲取與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;從校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從用戶數(shù)據(jù)塊讀取用戶數(shù)據(jù);根據(jù)校驗(yàn)規(guī)則校驗(yàn)用戶數(shù)據(jù)是否與校驗(yàn)碼相匹配;若用戶數(shù)據(jù)與所述校驗(yàn)碼相匹配,則返回用戶數(shù)據(jù)。以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
      權(quán)利要求
      1.一種數(shù)據(jù)校驗(yàn)方法,其特征在于,所述方法包括接收將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,所述寫(xiě)入請(qǐng)求包括所述用戶數(shù)據(jù)以及所述用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,所述用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);根據(jù)校驗(yàn)規(guī)則利用所述用戶數(shù)據(jù)生成校驗(yàn)碼;在將所述用戶數(shù)據(jù)寫(xiě)入所述用戶數(shù)據(jù)塊之前,根據(jù)所述校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配;若所述用戶數(shù)據(jù)與所述校驗(yàn)碼匹配,則將所述校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將所述用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄所述用戶數(shù)據(jù)塊對(duì)應(yīng)的用戶數(shù)據(jù)塊地址與所述校驗(yàn)數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系,所述校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)所述校驗(yàn)碼。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將所述用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在所述關(guān)聯(lián)數(shù)據(jù)中記錄所述用戶數(shù)據(jù)塊地址與所述校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系的步驟包括在所述關(guān)聯(lián)數(shù)據(jù)中查詢是否存在與用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址;若查詢到所述校驗(yàn)數(shù)據(jù)塊地址,則將所述校驗(yàn)碼寫(xiě)入所述校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊,并將所述用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊,若沒(méi)有查詢到所述校驗(yàn)數(shù)據(jù)塊地址,則申請(qǐng)新的校驗(yàn)數(shù)據(jù)塊,并將所述校驗(yàn)碼寫(xiě)入所述新的校驗(yàn)數(shù)據(jù)塊、以及在所述關(guān)聯(lián)數(shù)據(jù)中記錄所述用戶數(shù)據(jù)塊地址與所述新的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
      3.一種數(shù)據(jù)校驗(yàn)的方法,其特征在于,所述方法包括接收讀用戶數(shù)據(jù)的讀請(qǐng)求,所述讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址;從關(guān)聯(lián)數(shù)據(jù)中獲取與所述用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址,所述關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;從所述校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從所述用戶數(shù)據(jù)塊讀取所述用戶數(shù)據(jù);根據(jù)校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配;若所述用戶數(shù)據(jù)與所述校驗(yàn)碼相匹配,則返回所述用戶數(shù)據(jù)。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配的步驟包括在讀取所述用戶數(shù)據(jù)和所述校驗(yàn)碼完成時(shí),根據(jù)所述校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配;若所述用戶數(shù)據(jù)與所述校驗(yàn)碼相匹配,則在返回所述用戶數(shù)據(jù)時(shí),根據(jù)所述校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括在讀取所述用戶數(shù)據(jù)和所述校驗(yàn)碼完成時(shí),若校驗(yàn)得到所述用戶數(shù)據(jù)與所述校驗(yàn)碼不匹配,則修復(fù)所述用戶數(shù)據(jù),并在修復(fù)成功后,進(jìn)入所述在返回所述用戶數(shù)據(jù)時(shí),根據(jù)所述校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配的步驟。
      6.—種存儲(chǔ)設(shè)備,其特征在于,包括接收模塊,用于接收將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,所述寫(xiě)入請(qǐng)求包括所述用戶數(shù)據(jù)以及所述用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,所述用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);生成模塊,用于根據(jù)校驗(yàn)規(guī)則利用所述用戶數(shù)據(jù)生成校驗(yàn)碼;校驗(yàn)?zāi)K,在將所述用戶數(shù)據(jù)寫(xiě)入所述用戶數(shù)據(jù)塊之前,根據(jù)所述校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配;寫(xiě)入模塊,用于在所述用戶數(shù)據(jù)與所述校驗(yàn)碼匹配時(shí),將所述校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、 將所述用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄所述用戶數(shù)據(jù)塊的用戶數(shù)據(jù)塊地址與所述校驗(yàn)數(shù)據(jù)塊的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;其中,所述校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼。
      7.根據(jù)權(quán)利要求6所述的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備還包括查詢模塊,用于在所述校驗(yàn)?zāi)K校驗(yàn)得到所述用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),在所述關(guān)聯(lián)數(shù)據(jù)中查詢是否存在與所述用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址;所述寫(xiě)入模塊包括第一寫(xiě)入單元和第二寫(xiě)入單元;所述第一寫(xiě)入單元,用于在所述查詢模塊在所述關(guān)聯(lián)數(shù)據(jù)中查詢到存在與所述用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址時(shí),將所述校驗(yàn)碼寫(xiě)入所述校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊,并將所述用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊;第二寫(xiě)入單元,用于在所述查詢模塊在所述關(guān)聯(lián)數(shù)據(jù)中查詢到不存在與所述用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址時(shí),申請(qǐng)新的校驗(yàn)數(shù)據(jù)塊,并將所述校驗(yàn)碼寫(xiě)入所述新的校驗(yàn)數(shù)據(jù)塊、將所述用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在所述關(guān)聯(lián)數(shù)據(jù)中記錄所述用戶數(shù)據(jù)塊地址與所述新的校驗(yàn)數(shù)據(jù)塊的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
      8.一種存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備包括接收模塊,用于接收讀用戶數(shù)據(jù)的讀請(qǐng)求,所述讀請(qǐng)求包括用戶數(shù)據(jù)所在的用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址;獲取模塊,用于從關(guān)聯(lián)數(shù)據(jù)中獲取與所述用戶數(shù)據(jù)塊地址相對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址, 所述關(guān)聯(lián)數(shù)據(jù)用于記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;讀取模塊,用于從所述校驗(yàn)數(shù)據(jù)塊地址所對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊讀取校驗(yàn)碼,以及從所述用戶數(shù)據(jù)塊讀取所述用戶數(shù)據(jù);校驗(yàn)?zāi)K,用于根據(jù)校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)是否與所述校驗(yàn)碼相匹配;數(shù)據(jù)返回模塊,用于在所述用戶數(shù)據(jù)與所述校驗(yàn)碼相匹配時(shí),返回所述用戶數(shù)據(jù)。
      9.根據(jù)權(quán)利要求8所述存儲(chǔ)設(shè)備,其特征在于,所述校驗(yàn)?zāi)K包括第一校驗(yàn)單元和第二校驗(yàn)單元;所述第一校驗(yàn)單元,用于在讀取所述用戶數(shù)據(jù)和所述校驗(yàn)碼完成時(shí),根據(jù)所述校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配;所述第二校驗(yàn)單元,用于在所述第一校驗(yàn)單元校驗(yàn)得到所述用戶數(shù)據(jù)與校驗(yàn)碼相匹配,并在進(jìn)入所述數(shù)據(jù)返回模塊之前,校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配;所述數(shù)據(jù)返回模塊具體用于在所述第二校驗(yàn)單元校驗(yàn)得到所述用戶數(shù)據(jù)與所述校驗(yàn)碼相匹配,返回所述用戶數(shù)據(jù)。
      10.根據(jù)權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述校驗(yàn)?zāi)K還包括修復(fù)單元;所述修復(fù)單元用于在所述第一校驗(yàn)?zāi)K校驗(yàn)得到所述用戶數(shù)據(jù)與校驗(yàn)碼不相匹配時(shí),修復(fù)所述用戶數(shù)據(jù)。
      11.一種存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)系統(tǒng)包括處理設(shè)備和存儲(chǔ)設(shè)備;所述存儲(chǔ)設(shè)備包括存儲(chǔ)處理器和存儲(chǔ)器,所述存儲(chǔ)器包括存儲(chǔ)塊,所述存儲(chǔ)塊劃分有用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊,所述用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù),所述校驗(yàn)數(shù)據(jù)塊用于存儲(chǔ)校驗(yàn)碼;所述存儲(chǔ)管理器接收來(lái)自處理器的將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,所述寫(xiě)入請(qǐng)求包括用戶數(shù)據(jù)以及所述用戶數(shù)據(jù)塊所對(duì)應(yīng)的用戶數(shù)據(jù)塊地址,所述用戶數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù);所述存儲(chǔ)管理器根據(jù)校驗(yàn)規(guī)則利用所述用戶數(shù)據(jù)生成校驗(yàn)碼;在將所述用戶數(shù)據(jù)寫(xiě)入所述用戶數(shù)據(jù)塊之前,所述存儲(chǔ)管理器根據(jù)所述校驗(yàn)規(guī)則校驗(yàn)所述用戶數(shù)據(jù)與所述校驗(yàn)碼是否匹配;若所述用戶數(shù)據(jù)與所述校驗(yàn)碼匹配,所述存儲(chǔ)管理器將所述校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將所述用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄所述用戶數(shù)據(jù)塊對(duì)應(yīng)的用戶數(shù)據(jù)塊地址與所述校驗(yàn)數(shù)據(jù)塊對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
      全文摘要
      本發(fā)明公開(kāi)了一種數(shù)據(jù)校驗(yàn)方法及存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)。方法包括存儲(chǔ)管理器接收寫(xiě)入請(qǐng)求后,根據(jù)校驗(yàn)規(guī)則利用用戶數(shù)據(jù)生成校驗(yàn)碼;在將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊之前,存儲(chǔ)管理器在校驗(yàn)得到用戶數(shù)據(jù)與校驗(yàn)碼相匹配時(shí),將校驗(yàn)碼寫(xiě)入校驗(yàn)數(shù)據(jù)塊、將用戶數(shù)據(jù)寫(xiě)入用戶數(shù)據(jù)塊、以及在關(guān)聯(lián)數(shù)據(jù)中記錄用戶數(shù)據(jù)塊地址與校驗(yàn)數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;存儲(chǔ)管理器接收讀請(qǐng)求后,分別從用戶數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊讀用戶數(shù)據(jù)和校驗(yàn)碼;在校驗(yàn)得到用戶數(shù)據(jù)和校驗(yàn)碼相匹配時(shí),返回用戶數(shù)據(jù)。通過(guò)上述方式,本發(fā)明既實(shí)現(xiàn)用戶數(shù)據(jù)的校驗(yàn),用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的存儲(chǔ)又不受物理存儲(chǔ)介質(zhì)或者操作系統(tǒng)的扇區(qū)分區(qū)大小的限制,不改變現(xiàn)有的物理存儲(chǔ)介質(zhì)的存儲(chǔ)空間布局,更加靈活。
      文檔編號(hào)G06F11/08GK103019880SQ20121054454
      公開(kāi)日2013年4月3日 申請(qǐng)日期2012年12月14日 優(yōu)先權(quán)日2012年12月14日
      發(fā)明者鄒蛟同 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1