專利名稱:一種基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢查方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)完整性檢査方法。
背景技術(shù):
iSCSI (互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口)是一種在Internet協(xié)議網(wǎng)絡(luò)上,特別是 在以太網(wǎng)上進(jìn)行數(shù)據(jù)塊傳輸?shù)臉?biāo)準(zhǔn),是一個(gè)供硬件設(shè)備使用的可以在IP協(xié)議上 層運(yùn)行的SCSI指令集。簡(jiǎn)單地說(shuō),iSCSI可以實(shí)現(xiàn)在IP網(wǎng)絡(luò)上運(yùn)行SCSI協(xié)議, 使其能夠在諸如高速千兆以太網(wǎng)上進(jìn)行路由選擇。SCSI (小型計(jì)算機(jī)系統(tǒng)接口)是一種廣泛使用的連接硬盤和計(jì)算機(jī)的技術(shù) 標(biāo)準(zhǔn),iSCSI這種技術(shù)則是將該技術(shù)應(yīng)用到網(wǎng)絡(luò)連接上,對(duì)于中小企業(yè)的存儲(chǔ)網(wǎng) 絡(luò)而言,iSCSI技術(shù)的性價(jià)比要高于基于光纖的產(chǎn)品。iSCSI是基于IP協(xié)議的技 術(shù)標(biāo)準(zhǔn),是允許網(wǎng)絡(luò)在TCP/IP協(xié)議上傳輸SCSI命令的新協(xié)議,實(shí)現(xiàn)了SCSI和 TCP/IP協(xié)議的連接,該技術(shù)允許用戶通過(guò)TCP/IP網(wǎng)絡(luò)來(lái)構(gòu)建存儲(chǔ)區(qū)域網(wǎng)(SAN)。iSCSI協(xié)議就是一個(gè)在網(wǎng)絡(luò)上封裝和分解的過(guò)程,在網(wǎng)絡(luò)的一端,數(shù)據(jù)包被 封裝成包括TCP/IP頭、iSCSI識(shí)別包和SCSI數(shù)據(jù)三部分內(nèi)容,傳輸?shù)骄W(wǎng)絡(luò)另一 端時(shí),這三部分內(nèi)容分別被順序地分解開(kāi)。參照?qǐng)D1 , iSCSI模塊230由 一塊SCSI卡發(fā)出 一個(gè)SCSI命令,命令被封裝 到第四層的IP數(shù)據(jù)包中并發(fā)送。接收方從IP數(shù)據(jù)包中抽取SCSI命令并執(zhí)行, 然后把返回的SCSI命令和數(shù)據(jù)封裝到IP數(shù)據(jù)包240中,并將它們發(fā)回到發(fā)送方。 系統(tǒng)抽取數(shù)據(jù)或命令,并把它們傳回SCSI子系統(tǒng)。所有這一切的完成都無(wú)需用 戶干預(yù),而且對(duì)終端用戶是完全透明的?,F(xiàn)有標(biāo)準(zhǔn)iSCSI協(xié)議目標(biāo)裝置在數(shù)據(jù)處理上處于被動(dòng)地位,也就是啟動(dòng)裝置 發(fā)送什么命令請(qǐng)求,目標(biāo)裝置被動(dòng)的執(zhí)行,很少主動(dòng)和啟動(dòng)裝置交流。iSCSI協(xié) 議實(shí)質(zhì)是端到端(target端和initiator端)的數(shù)據(jù)傳輸和保護(hù),目標(biāo)裝置或啟動(dòng) 裝置可在iSCSI協(xié)議的保留字段中增加它所希望的任何信息,并要求目標(biāo)裝置返 回寫入情況。目標(biāo)裝置中,沒(méi)有文件系統(tǒng)的概念,對(duì)任何數(shù)據(jù)都以塊來(lái)寫入磁盤。 在網(wǎng)絡(luò)傳輸310過(guò)程中,無(wú)法保證每次都會(huì)完整的寫入內(nèi)容,即使寫入了完整的塊,就在塊的分界處時(shí),出現(xiàn)網(wǎng)絡(luò)斷開(kāi)時(shí),造成文件的不完整。對(duì)于應(yīng)用系統(tǒng)來(lái) 講是致命的,尤其數(shù)據(jù)庫(kù)系統(tǒng)文件等。造成的這些不完整性包含應(yīng)用系統(tǒng)突然停 止服務(wù)、網(wǎng)絡(luò)突然斷開(kāi)及斷電等因素。在共享存儲(chǔ)數(shù)據(jù)環(huán)境中,沒(méi)有完整性處理, 其它裝置訪問(wèn)這些數(shù)據(jù)將是錯(cuò)誤的數(shù)據(jù)。存儲(chǔ)系統(tǒng)首要保證數(shù)據(jù)的完整保存和返回?cái)?shù)據(jù),禁止端到端檢查產(chǎn)生極大數(shù) 據(jù)丟失和不完整數(shù)據(jù)保存的風(fēng)險(xiǎn)。根據(jù)上面的討論,需要強(qiáng)制性對(duì)端到端數(shù)據(jù)做 完整性檢查。發(fā)明內(nèi)容本發(fā)明的目的是提供一種基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性 檢查方法,系統(tǒng)使用這個(gè)方法可實(shí)現(xiàn)數(shù)據(jù)安全共享和文件完整性保護(hù)。 本發(fā)明的目的通過(guò)以下技術(shù)方案予以實(shí)現(xiàn)一種基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢查方法,由基于 iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的啟動(dòng)裝置和目標(biāo)裝置協(xié)同完成,通過(guò)iSCSI命令擴(kuò) 展和iSCSI協(xié)議擴(kuò)展實(shí)現(xiàn)完整性檢查,包括① 數(shù)據(jù)塊的完整性檢査提供iSCSI擴(kuò)展協(xié)議規(guī)定的保留字段,對(duì)于原本 iSCSI系統(tǒng)中的啟動(dòng)裝置和目標(biāo)裝置經(jīng)過(guò)IP數(shù)據(jù)包封裝后,再傳送出去,兩端裝 置在iSCSI層將其分解,如果是完整性檢查數(shù)據(jù)包,則執(zhí)行完整性檢查并將狀態(tài) 信息返回,再由SCSI層解讀剩余的SCSI命令描述塊格式數(shù)據(jù)及其命令;② 文件完整性的檢査在啟動(dòng)裝置寫入文件過(guò)程中,寫入數(shù)據(jù)塊需要啟動(dòng)裝置和目標(biāo)裝置雙方做完整性檢查,數(shù)據(jù)一致后才放棄重傳;數(shù)據(jù)寫入完成后,如 果是完整的文件,需要通過(guò)iSCSI擴(kuò)展命令,發(fā)送到目標(biāo)裝置,目標(biāo)裝置返回已 收到的完整性信息;③ 網(wǎng)絡(luò)共享存儲(chǔ)系統(tǒng)的完整性檢査在共享網(wǎng)絡(luò)存儲(chǔ)的環(huán)境中,目標(biāo)裝置發(fā)布該文件修改信息,其它啟動(dòng)裝置更新自己的緩存數(shù)據(jù)和此文件相關(guān)信息,確保 數(shù)據(jù)的一致性。本發(fā)明所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢査方法,包 括以下具體的檢查步驟登錄,啟動(dòng)裝置(initiator)登錄到目標(biāo)裝置(target)中,任何一個(gè)接收到 沒(méi)有執(zhí)行登錄過(guò)程的啟動(dòng)裝置的iSCSI PDU (iSCSI Protocol Data Units, iSCSI協(xié)議數(shù)據(jù)單元)的目標(biāo)裝置都將生成一個(gè)協(xié)議錯(cuò)誤,而且目標(biāo)裝置也會(huì)關(guān)閉連接; 封裝,啟動(dòng)裝置將數(shù)據(jù)封裝,并把校驗(yàn)信息保存到iSCSIPDU中的保留字段中;發(fā)送,啟動(dòng)裝置通過(guò)IP網(wǎng)絡(luò)發(fā)送封裝好的IP數(shù)據(jù)包; 提取,目標(biāo)裝置除去一些協(xié)議數(shù)據(jù),獲取源數(shù)據(jù); 校驗(yàn),目標(biāo)裝置計(jì)算校驗(yàn)值與傳送過(guò)來(lái)的校驗(yàn)值比較;返回,目標(biāo)裝置計(jì)算后判斷如果相同,返回文件傳輸成功,否則返回文件傳 輸錯(cuò)誤;獲取,啟動(dòng)裝置發(fā)現(xiàn)錯(cuò)誤,重新傳輸,否則繼續(xù);傳輸,啟動(dòng)裝置數(shù)據(jù)塊傳輸完成后,進(jìn)行文件完整性計(jì)算;擴(kuò)展,啟動(dòng)裝置將計(jì)算的結(jié)果傳給目標(biāo)裝置;解析,目標(biāo)裝置解析,其命令為完整性檢驗(yàn),計(jì)算校驗(yàn)碼;校驗(yàn),目標(biāo)裝置計(jì)算校驗(yàn)值與傳送過(guò)來(lái)的校驗(yàn)值比較;返回,目標(biāo)裝置計(jì)算后判斷如果相同,返回文件傳輸成功,否則返回文件傳 輸錯(cuò)誤;結(jié)束,共享存儲(chǔ)系統(tǒng)中,將文件完整性信息發(fā)送給每個(gè)啟動(dòng)裝置; 更新,每個(gè)啟動(dòng)裝置對(duì)其文件信息進(jìn)行更新。本發(fā)明所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢查方法適 用于基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)塊的完整性檢査。本發(fā)明所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢査方法適 用于基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的整個(gè)文件的完整性檢查。本發(fā)明所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢查方法適 用于基于iSCSI協(xié)議的網(wǎng)絡(luò)共享存儲(chǔ)系統(tǒng)中的數(shù)據(jù)互斥操作的完整性檢查。也就是說(shuō),本發(fā)明通過(guò)iSCSI命令擴(kuò)展和iSCSI協(xié)議擴(kuò)展實(shí)現(xiàn)完整性檢査, 而這種檢查需要基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的啟動(dòng)裝置和目標(biāo)裝置協(xié)同來(lái) 完成;它是iSCSI協(xié)議的擴(kuò)展,因此不失為其標(biāo)準(zhǔn)性;每個(gè)數(shù)據(jù)塊都能夠?qū)崟r(shí)確 認(rèn),避免信息錯(cuò)誤或丟失;對(duì)整個(gè)文件進(jìn)行完整性檢査,避免傳輸過(guò)程中的錯(cuò)誤 和保證數(shù)據(jù)的完整性,特別在共享環(huán)境中,數(shù)據(jù)的不完整將影響很多服務(wù),本發(fā) 明很好的解決了這個(gè)問(wèn)題。此外,本發(fā)明還提出一種共享環(huán)境網(wǎng)絡(luò)系統(tǒng)中數(shù)據(jù)互斥操作完整性的檢査方 法。所提供的方法實(shí)質(zhì)上包括實(shí)現(xiàn)共享存儲(chǔ)文件完整性檢驗(yàn)的步驟。在一個(gè)實(shí)例 中,在多個(gè)啟動(dòng)裝置共享數(shù)據(jù)時(shí), 一個(gè)啟動(dòng)裝置更新數(shù)據(jù),其它啟動(dòng)裝置需要更 新本地的緩存,這就需要一種方法發(fā)布更新完整的信息,啟動(dòng)裝置可以完成,但 啟動(dòng)裝置之間可能并不互通,因此目標(biāo)裝置是發(fā)布完整信息的最佳選擇,它正是 通過(guò)發(fā)布擴(kuò)展的iSCSI命令并附帶文件屬性給啟動(dòng)裝置,完成文件完整性檢查和數(shù)據(jù)的同步更新。
圖1是基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中,端到端的數(shù)據(jù)流向示意圖;圖2是基于數(shù)據(jù)塊完整性檢測(cè)實(shí)施例方框示意圖;圖3是基于文件完整性檢測(cè)實(shí)施例方框示意圖;圖4是共享數(shù)據(jù)啟動(dòng)裝置的完整性檢査實(shí)施例示意圖;圖5本發(fā)明完整性檢查的流程圖。
具體實(shí)施方式
本發(fā)明提供一種基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢査方法, 這種方法需要啟動(dòng)裝置和目標(biāo)裝置協(xié)同來(lái)完成,它能夠完成存儲(chǔ)系統(tǒng)中數(shù)據(jù)塊、 文件和共享存儲(chǔ)環(huán)境中的完整性檢査。圖1是基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中端到端的數(shù)據(jù)流向示意圖,其中圖 標(biāo)說(shuō)明如下210-目標(biāo)裝置中保存數(shù)據(jù)實(shí)體,通常指硬盤系統(tǒng);220-目標(biāo)裝置中 保證數(shù)據(jù)的容錯(cuò)性(raid系列算法)和空間的管理(lvtn); 230-目標(biāo)裝置中承載數(shù)據(jù) 的PDU,塊完整性信息保存到這個(gè)之中;擴(kuò)展命令和數(shù)據(jù)信息也在這里封裝; 240-目標(biāo)裝置中把iSCSI數(shù)據(jù)包封裝為IP包;250-目標(biāo)裝置中IP數(shù)據(jù)包通過(guò)IP 網(wǎng)絡(luò)傳輸;310-數(shù)據(jù)經(jīng)過(guò)的物理鏈路;150-啟動(dòng)裝置接受到網(wǎng)絡(luò)數(shù)據(jù)包;140-啟 動(dòng)裝置接受和分解IP數(shù)據(jù)包;130-啟動(dòng)裝置分析iSCSI包,對(duì)協(xié)議擴(kuò)展和命令 的擴(kuò)展分別處理;120-啟動(dòng)裝置的文件系統(tǒng);110-啟動(dòng)裝置。請(qǐng)參照?qǐng)D2,途中啟動(dòng)裝置與目標(biāo)裝置之間的數(shù)據(jù)操作,實(shí)質(zhì)是對(duì)iSCSI協(xié) 議的封裝和分解的操作。當(dāng)啟動(dòng)裝置需要做數(shù)據(jù)操作時(shí),把命令描述塊直接傳遞 給SCSI層的磁盤驅(qū)動(dòng)程序(這個(gè)驅(qū)動(dòng)是磁盤虛擬磁盤驅(qū)動(dòng)),這和以往的對(duì)本 地機(jī)器磁盤驅(qū)動(dòng)類似。接著對(duì)源數(shù)據(jù)進(jìn)行封裝,計(jì)算校驗(yàn)碼,起用iSCSI協(xié)議PDU的保留字段,填充校驗(yàn)信息,封裝完成后,通過(guò)IP網(wǎng)絡(luò)發(fā)送到目標(biāo)裝置。 目標(biāo)裝置獲取iSCSI包后,分離出數(shù)據(jù),然后進(jìn)行校驗(yàn)碼計(jì)算,分解出完整性檢 測(cè)信息,將計(jì)算的校驗(yàn)碼與之比較,如果相同,返回完整收到信息給啟動(dòng)裝置, 否則返回獲取的數(shù)據(jù)不完整,重新傳輸。圖2的實(shí)施例只能用于數(shù)據(jù)塊的校驗(yàn),所有數(shù)據(jù)塊都完整,但并不表明組成 的一個(gè)文件是完整的。這是因?yàn)橛捎趇SCSI協(xié)議通過(guò)IP網(wǎng)絡(luò)傳輸,由于網(wǎng)絡(luò)傳 輸?shù)膹?fù)雜性,掉線時(shí)常發(fā)生,還包括其它如停止服務(wù),寫入錯(cuò)誤問(wèn)題,導(dǎo)致寫入 數(shù)據(jù)到目標(biāo)裝置時(shí)數(shù)據(jù)不完整。目標(biāo)裝置只能保證每個(gè)數(shù)據(jù)塊是完整,但它不知 道一個(gè)完整的文件究竟由多少數(shù)據(jù)塊組成,在文件系統(tǒng)中的起始和結(jié)束地址是多 少,因此目標(biāo)裝置是無(wú)法判斷一個(gè)完整的文件包含哪些塊,從而無(wú)法判斷文件的 完整性,這個(gè)需要啟動(dòng)裝置來(lái)配合完整。圖3實(shí)施例是本發(fā)明完整實(shí)施例,用于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中文件的 完整性檢査,此實(shí)施例建立在圖2實(shí)施例基礎(chǔ)上。也就是在所有文件塊傳輸完成 后,再實(shí)施文件的完整性判斷。同圖2起始階段一樣,操作都在途中啟動(dòng)裝置與 目標(biāo)裝置之間的進(jìn)行。在完成圖2的塊級(jí)傳輸后,將實(shí)施文件級(jí)的完整性檢査。 首先啟動(dòng)裝置發(fā)出封裝命令iFILE一FULL,表示文件寫完,進(jìn)行文件完整檢査。 攜帶信息包含文件的起始范圍和校驗(yàn)碼,是否需要更新到其它啟動(dòng)裝置,以及一 個(gè)完整的PDU的對(duì)齊信息。之所以有是否需要更新到其它啟動(dòng)裝置這一步驟是 因?yàn)槿绻麊?dòng)裝置知道自己是獨(dú)享這個(gè)存儲(chǔ)通道,就沒(méi)有必要更新;同樣,目標(biāo) 裝置可以根據(jù)系統(tǒng)的鏈接判斷哪些啟動(dòng)裝置在線,從而更新這些啟動(dòng)裝置。圖3實(shí)施例當(dāng)啟動(dòng)裝置封裝完文件完整性檢査的命令和數(shù)據(jù)包后,發(fā)送給目 標(biāo)裝置。目標(biāo)裝置獲取命令iFILE_FULL后,分解PDU,根據(jù)啟動(dòng)裝置提供的 文件起始范圍對(duì)所有數(shù)據(jù)塊進(jìn)行校驗(yàn)碼計(jì)算,然后進(jìn)行校驗(yàn)碼比較,如果完全一 致。如果一致將返回,再分解判斷是否需要發(fā)布給其它裝置.返回的PDU包含返 回命令iFILE—FULL_END,此命令表示指定文件完整寫入的目標(biāo)裝置中;還包 含文件起始范圍;是否執(zhí)行的更新發(fā)布以及PDU的對(duì)齊信息。啟動(dòng)裝置收到此 包后,根據(jù)結(jié)果作出是否重傳的決定。目標(biāo)裝置發(fā)布消息給每個(gè)已連接的啟動(dòng)裝 置,通知它們哪個(gè)文件或是哪些數(shù)據(jù)范圍需要更新,啟動(dòng)裝置接收到更新指定范 圍后,經(jīng)過(guò)iSCSI層進(jìn)行數(shù)據(jù)更新和緩存。這個(gè)緩存是文件屬性相關(guān)信息,部分啟動(dòng)裝置具有緩存數(shù)據(jù)的功能,因此需要同時(shí)更新啟動(dòng)裝置緩存數(shù)據(jù)。在圖3的實(shí)施例中,該方法包括數(shù)據(jù)塊的完整性和文件完整性的強(qiáng)制性檢査。它具有本發(fā)明擴(kuò)展命令和強(qiáng)制完整性檢查的特性。實(shí)施例中除了用于網(wǎng)絡(luò)存儲(chǔ)完整性檢測(cè)外,還可在網(wǎng)絡(luò)共享存儲(chǔ)環(huán)境中使用本發(fā)明方法,見(jiàn)圖4實(shí)施例。此實(shí)施例由多個(gè)啟動(dòng)裝置組成,同時(shí)使用目標(biāo)裝置的數(shù)據(jù)。它的執(zhí)行流程如下?tīng)?zhēng)取,由啟動(dòng)裝置爭(zhēng)取寫入請(qǐng)求;界定,成功后,對(duì)某個(gè)文件進(jìn)行寫操作,其它啟動(dòng)裝置被目標(biāo)裝置界定為只 讀;傳送,iSCSI協(xié)議將封裝數(shù)據(jù)包,然后通過(guò)IP網(wǎng)絡(luò)傳輸給目標(biāo)裝置; 利用,為完整性,需要圖2的實(shí)施例過(guò)程;驗(yàn)證,啟動(dòng)裝置文件傳送完成后,發(fā)送擴(kuò)展命令給目標(biāo)裝置,表示此文件寫 入完成;通告,目標(biāo)裝置發(fā)送命令,通知其它啟動(dòng)裝置更新數(shù)據(jù),并能夠重新獲取寫 權(quán)限了。整個(gè)過(guò)程完全遵循本發(fā)明步驟,因此本發(fā)明為共享存儲(chǔ)提供了強(qiáng)制完整性文 件檢査,保證每個(gè)啟動(dòng)裝置獲取的都是完整的數(shù)據(jù)。在圖5為本發(fā)明的流程圖,它是一般陳述式邏輯流程圖。因此提供的步驟就 是方法中的實(shí)施例,它是一個(gè)功能單位,不是實(shí)質(zhì)的操作步驟,可以擴(kuò)展。其它 步驟和方法可被認(rèn)為在功能、邏輯或效果上與圖解說(shuō)明的方法的一個(gè)或多個(gè)步驟 或多個(gè)部分等同。其次,采用的描述和符號(hào)被用于解釋該方法的邏輯步驟,不是 對(duì)方法的限制。其箭頭和線條表明數(shù)據(jù)流方向,不是方法的范圍。 一些特定的方 法中發(fā)生順序可以嚴(yán)格遵守所示對(duì)應(yīng)步驟的順序,也可以不嚴(yán)格遵守,選擇其中 一個(gè)或多個(gè)都可行。雖說(shuō)圖5是本發(fā)明流程圖,也可以用于實(shí)施例的操作步驟的參考,本發(fā)明著 重強(qiáng)調(diào)數(shù)據(jù)更改和傳輸時(shí)的應(yīng)用級(jí)完整性,即文件完整性。由于安全性,啟動(dòng)裝 置需要登錄系統(tǒng),如果登錄不成功則繼續(xù)登錄,否則啟動(dòng)裝置文件系統(tǒng)各種操作 響應(yīng),目標(biāo)裝置不關(guān)心文件系統(tǒng)問(wèn)題,它所有數(shù)據(jù)都按照塊來(lái)處理,包括文件系 統(tǒng)的超級(jí)塊、INODE節(jié)點(diǎn)等內(nèi)容。文件更新過(guò)程中,判斷是否文件已經(jīng)傳送完成,如果完成,啟動(dòng)裝置處理驗(yàn)證信息,否則直接計(jì)算校驗(yàn)碼;計(jì)算完成后進(jìn)行 iSCSI協(xié)議包的封裝,再通過(guò)IP數(shù)據(jù)包的封裝直接通過(guò)IP網(wǎng)絡(luò)傳送數(shù)據(jù)給目標(biāo) 裝置。此過(guò)程中啟動(dòng)裝置主要是網(wǎng)絡(luò)連接,數(shù)據(jù)包的封裝,校驗(yàn)碼計(jì)算以及通過(guò) 文件系統(tǒng)判斷文件是否傳輸完成。目標(biāo)裝置通過(guò)IP網(wǎng)絡(luò)接收到IP數(shù)據(jù)包后,經(jīng)過(guò)層層分解,然后獲取iSCSI 協(xié)議的PDU,利用iSCSI協(xié)議進(jìn)行命令分解,判斷是數(shù)據(jù)更新還是文件傳輸完 成。如果是數(shù)據(jù)塊更新,直接通過(guò)計(jì)算校驗(yàn)碼與PDU附帶的進(jìn)行比較;如果是 文件完成命令,獲取文件起始地址,進(jìn)行校驗(yàn)碼計(jì)算后進(jìn)行比較。然后判斷是否 一致,如果不一致,則需要重新傳送,否則繼續(xù)分解PDU,和根據(jù)目標(biāo)裝置判 斷是否需要公告給其它啟動(dòng)裝。整個(gè)流程可以根據(jù)需要進(jìn)行步驟拆解,不局限于整個(gè)流程的全部應(yīng)用??傊?, 本發(fā)明例舉了上述優(yōu)選實(shí)施方式,但是應(yīng)該說(shuō)明,本領(lǐng)域的技術(shù)人員可以進(jìn)行各 種變化和改型。因此,除非這樣的變化和改型偏離了本發(fā)明的范圍,否則都應(yīng)該 包括在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢查方法,其特征在于,由基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的啟動(dòng)裝置和目標(biāo)裝置協(xié)同完成,通過(guò)iSCSI命令擴(kuò)展和iSCSI協(xié)議擴(kuò)展實(shí)現(xiàn)完整性檢查,包括①數(shù)據(jù)塊的完整性檢查提供iSCSI擴(kuò)展協(xié)議規(guī)定的保留字段,對(duì)于原本iSCSI系統(tǒng)中的啟動(dòng)裝置和目標(biāo)裝置經(jīng)過(guò)IP數(shù)據(jù)包封裝后,再傳送出去,兩端裝置在iSCSI層將其分解,如果是完整性檢查數(shù)據(jù)包,則執(zhí)行完整性檢查并將狀態(tài)信息返回,再由SCSI層解讀剩余的SCSI命令描述塊格式數(shù)據(jù)及其命令;②文件完整性的檢查在啟動(dòng)裝置寫入文件過(guò)程中,寫入數(shù)據(jù)塊需要啟動(dòng)裝置和目標(biāo)裝置雙方做完整性檢查,數(shù)據(jù)一致后才放棄重傳;數(shù)據(jù)寫入完成后,如果是完整的文件,需要通過(guò)iSCSI擴(kuò)展命令,發(fā)送到目標(biāo)裝置,目標(biāo)裝置返回已收到的完整性信息;③網(wǎng)絡(luò)共享存儲(chǔ)系統(tǒng)的完整性檢查在共享網(wǎng)絡(luò)存儲(chǔ)的環(huán)境中,目標(biāo)裝置發(fā)布該文件修改信息,其它啟動(dòng)裝置更新自己的緩存數(shù)據(jù)和此文件相關(guān)信息,確保數(shù)據(jù)的一致性。
2. 根據(jù)權(quán)利要求1所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性 檢查方法,其特征在于,包括以下具體的檢查步驟登錄,啟動(dòng)裝置登錄到目標(biāo)裝置中,任何一個(gè)接收到?jīng)]有執(zhí)行登錄過(guò)程的啟動(dòng)裝置的iSCSI PDU的目標(biāo)裝置都將生成一個(gè)協(xié)議錯(cuò)誤,而且目標(biāo)裝置也會(huì)關(guān) 閉連接;封裝,啟動(dòng)裝置將數(shù)據(jù)封裝,并把校驗(yàn)信息保存到iSCSIPDU中的保留字段中;發(fā)送,啟動(dòng)裝置通過(guò)IP網(wǎng)絡(luò)發(fā)送封裝好的IP數(shù)據(jù)包; 提取,目標(biāo)裝置除去一些協(xié)議數(shù)據(jù),獲取源數(shù)據(jù); 校驗(yàn),目標(biāo)裝置計(jì)算校驗(yàn)值與傳送過(guò)來(lái)的校驗(yàn)值比較;返回,目標(biāo)裝置計(jì)算后判斷如果相同,返回文件傳輸成功,否則返回文件傳 輸錯(cuò)誤;獲取,啟動(dòng)裝置發(fā)現(xiàn)錯(cuò)誤,重新傳輸,否則繼續(xù);傳輸,啟動(dòng)裝置數(shù)據(jù)塊傳輸完成后,進(jìn)行文件完整性計(jì)算;擴(kuò)展,啟動(dòng)裝置將計(jì)算的結(jié)果傳給目標(biāo)裝置;解析,目標(biāo)裝置解析,其命令為完整性檢驗(yàn),計(jì)算校驗(yàn)碼; 校驗(yàn),目標(biāo)裝置計(jì)算校驗(yàn)值與傳送過(guò)來(lái)的校驗(yàn)值比較;返回,目標(biāo)裝置計(jì)算后判斷如果相同,返回文件傳輸成功,否則返回文件傳 輸錯(cuò)誤;結(jié)束,共享存儲(chǔ)系統(tǒng)中,將文件完整性信息發(fā)送給每個(gè)啟動(dòng)裝置; 更新,每個(gè)啟動(dòng)裝置對(duì)其文件信息進(jìn)行更新。
3. 根據(jù)權(quán)利要求1或2所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完 整性檢查方法,其特征在于,適用于基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)塊 的完整性檢査。
4. 根據(jù)權(quán)利要求1或2所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完 整性檢査方法,其特征在于,適用于基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的整個(gè)文 件的完整性檢查。
5. 根據(jù)權(quán)利要求1或2所述的基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完 整性檢査方法,其特征在于,適用于基于iSCSI協(xié)議的網(wǎng)絡(luò)共享存儲(chǔ)系統(tǒng)中的數(shù) 據(jù)互斥操作的完整性檢查。
全文摘要
本發(fā)明公開(kāi)了一種基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的文件完整性檢查方法,由基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的啟動(dòng)裝置和目標(biāo)裝置協(xié)同完成,通過(guò)iSCSI命令擴(kuò)展和iSCSI協(xié)議擴(kuò)展實(shí)現(xiàn)完整性檢查。本發(fā)明方法適用于基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)塊、整個(gè)文件及網(wǎng)絡(luò)共享存儲(chǔ)系統(tǒng)中的數(shù)據(jù)互斥操作的完整性檢查?;趇SCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)使用本發(fā)明方法能實(shí)現(xiàn)數(shù)據(jù)安全共享和文件完整性保護(hù)。
文檔編號(hào)H04L29/06GK101404657SQ20081021875
公開(kāi)日2009年4月8日 申請(qǐng)日期2008年10月30日 優(yōu)先權(quán)日2008年10月30日
發(fā)明者賈力瑛 申請(qǐng)人:廣州慧揚(yáng)科技投資有限公司