两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

存儲系統(tǒng)中檢驗數(shù)據(jù)的方法及設備的制作方法

文檔序號:6750793閱讀:303來源:國知局
專利名稱:存儲系統(tǒng)中檢驗數(shù)據(jù)的方法及設備的制作方法
相關申請的交叉引用本申請要求基于2002年3月28日提交的日本特許公報No.2002-092685的優(yōu)先權,現(xiàn)將其通過引用結合于此。
經常要求運行于如上述配置和工作的存儲系統(tǒng)中的主機上的數(shù)據(jù)庫軟件或其它應用程序所用的數(shù)據(jù)符合某些規(guī)范(這種特性以下稱作“適用性”)。在這些情況下,某些應用程序配備了用于檢驗待處理數(shù)據(jù)的適用性的算法。
即使應用程序配備了上述算法,但是,數(shù)據(jù)適用性可能隨著將主機連接到存儲控制器的SAN或其它通信路徑的情況或者因存儲控制器所執(zhí)行的內部處理而丟失。此外,存儲控制器通常由多個主機共享。在這種情況下,如果例如運行于一個主機上的應用程序無意中訪問了運行于另一主機上的應用程序的數(shù)據(jù),則可能損害數(shù)據(jù)適用性。
例如,如果在未涉及應用程序的情況下丟失了待寫入存儲控制器的數(shù)據(jù)的適用性,則存儲控制器無法識別數(shù)據(jù)適用性的這種丟失,并自動存儲不適用的數(shù)據(jù)。在這種情況下,該應用程序在后來讀取該數(shù)據(jù)之前不會知道數(shù)據(jù)適用性的丟失。如果在寫入數(shù)據(jù)的時刻和讀取數(shù)據(jù)的時刻之間存在長的時滯,則難以實現(xiàn)數(shù)據(jù)恢復。
即使在存儲控制器備份了數(shù)據(jù)的情況下,如果備份數(shù)據(jù)已丟失適用性,則不能實現(xiàn)數(shù)據(jù)恢復。此外,如果在未涉及應用程序的情況下丟失了數(shù)據(jù)適用性,如上所述,通常難以指明問題的原因,使隨后的故障恢復及其它類似操作難以完成。
如果存儲控制器被配置成檢驗數(shù)據(jù),則能夠解決上述問題。在存儲系統(tǒng)中,通過應用程序存儲在存儲控制器中的數(shù)據(jù)一般配備了附加信息、如由運行在主機上的操作系統(tǒng)(以下稱作“OS”)添加的信息以及有關由主機邏輯組織的卷的信息。此外,例如由于OS、卷管理程序等原因,由應用程序存儲在存儲控制器中的數(shù)據(jù)的安排方式不是將主機上的數(shù)據(jù)安排為由應用程序調用。然而,存儲控制器無法獲得上述信息和安排。也就是說,只要使用傳統(tǒng)的存儲系統(tǒng)方案,應用程序所執(zhí)行的數(shù)據(jù)檢驗處理就無法由存儲控制器執(zhí)行。如果要允許存儲控制器完成這種數(shù)據(jù)檢驗,需要建立一種方案,使存儲控制器能夠從應用程序、OS以及卷管理程序中獲取相關信息。
例如,作為簡化增強數(shù)據(jù)可靠性、即RAS(可靠性、有效性和可服務性)的檢驗程序并且在應用程序從磁盤讀取數(shù)據(jù)或向其中寫入數(shù)據(jù)時執(zhí)行的一種方案,日本公開特許公報No.8-263223公開了一種機制,其中,CPU在應用程序執(zhí)行I/O操作時生成RAS數(shù)據(jù),并將RAS數(shù)據(jù)附加到待寫入磁盤的數(shù)據(jù)中,以便使磁盤輸入/輸出信道及磁盤控制器能夠進行數(shù)據(jù)檢驗。
但是,在上述特許公報中公開的方案中,RAS數(shù)據(jù)由CPU獨立生成并附加到待寫入的數(shù)據(jù)中。此外,RAS數(shù)據(jù)未涉及應用程序所要求的數(shù)據(jù)適用性。所公開的方案未被配置成識別這種信息或配置,也未被配置成檢驗運行在主機上的各應用程序所需的適用性。
本發(fā)明另一目的是提供實現(xiàn)上述功能的主機和存儲控制器。
根據(jù)實現(xiàn)上述及其它目的的本發(fā)明的一個方面,提供一種在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,所述存儲系統(tǒng)包括主機和存儲控制器,存儲控制器與主機連接以便與其進行通信,能夠接收從主機發(fā)送的輸入/輸出請求,并且能夠根據(jù)請求執(zhí)行對存儲裝置的數(shù)據(jù)輸入/輸出處理,該方法包括以下步驟主機執(zhí)行應用程序,以便在存儲控制器中根據(jù)預定義的規(guī)范來組織和管理要存儲的數(shù)據(jù);主機向存儲控制器發(fā)送區(qū)管理數(shù)據(jù),其中,區(qū)管理數(shù)據(jù)用于指定存儲裝置中提供的要由應用程序使用的存儲區(qū)的范圍;存儲控制器接收區(qū)管理數(shù)據(jù);以及存儲控制器接收應用程序執(zhí)行的處理所導致的、從主機發(fā)送的數(shù)據(jù)輸入/輸出請求,并檢驗要根據(jù)接收的數(shù)據(jù)輸入/輸出請求處理以及要向根據(jù)區(qū)管理數(shù)據(jù)指定的應用程序所用的存儲區(qū)輸入或從中輸出的數(shù)據(jù)是否是按照預定義的規(guī)范組織的。
根據(jù)本發(fā)明的這個方面,能夠提供數(shù)據(jù)檢驗方法、主機以及存儲控制器,用于以提高的準確性來檢驗和確保存儲系統(tǒng)中的數(shù)據(jù)適用性。
通過閱讀以下結合附圖對本發(fā)明進行的說明,本發(fā)明上述之外的其它特征和優(yōu)點會非常明顯。
圖4是說明根據(jù)本發(fā)明一個實施例的邏輯裝置管理表的示意圖;圖5A是示意圖,說明當應用程序對邏輯卷執(zhí)行數(shù)據(jù)輸入/輸出操作時本發(fā)明一個實施例中使用的數(shù)據(jù)單元;圖5B是示意圖,說明在向存儲控制器執(zhí)行輸入/輸出操作時,邏輯卷管理程序如何劃分圖5A所示的數(shù)據(jù)單元;圖5C是示意圖,說明劃分的數(shù)據(jù)如何存儲在邏輯裝置中;圖6A是示意圖,說明圖5A所示的SCSI數(shù)據(jù)格式的數(shù)據(jù)單元;圖6B是示意圖,說明圖5B所示的SCSI數(shù)據(jù)格式的數(shù)據(jù);圖7是流程圖,說明根據(jù)本發(fā)明的一個實施例、由存儲控制器所執(zhí)行的數(shù)據(jù)檢驗處理步驟;以及圖8是說明主機的示例配置的框圖。
概述的要點根據(jù)本發(fā)明一個實施例的檢驗數(shù)據(jù)的方法是用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,該存儲系統(tǒng)包括主機和存儲控制器,存儲控制器與主機連接以便與其進行通信,能夠接收主機發(fā)送的輸入/輸出請求,并且能夠根據(jù)該請求執(zhí)行對存儲裝置的數(shù)據(jù)輸入/輸出處理,該方法包括以下步驟主機執(zhí)行應用程序,用于在存儲控制器中根據(jù)預定義的規(guī)范來組織和管理要存儲的數(shù)據(jù);主機將區(qū)管理數(shù)據(jù)發(fā)送到存儲控制器,其中,區(qū)管理數(shù)據(jù)用于指定由應用程序使用的存儲裝置中提供的存儲區(qū)的范圍;存儲控制器接收區(qū)管理數(shù)據(jù);以及存儲控制器接收由應用程序所執(zhí)行的處理導致的、從主機發(fā)出的數(shù)據(jù)輸入/輸出請求,并且檢驗要根據(jù)所接收的數(shù)據(jù)輸入/輸出請求處理以及要向根據(jù)區(qū)管理數(shù)據(jù)指定的應用程序所用的存儲區(qū)輸入或從中輸出的數(shù)據(jù)是否是按照預定義的規(guī)范組織的。
例如,“從主機發(fā)出的輸入/輸出請求”是對諸如包含在存儲控制器中或者外部連接到存儲控制器的盤驅動器之類的上述存儲裝置的數(shù)據(jù)寫請求或數(shù)據(jù)讀請求?!皡^(qū)管理數(shù)據(jù)”是在區(qū)管理表中登記的數(shù)據(jù),稍后說明。根據(jù)本發(fā)明的數(shù)據(jù)檢驗方法還在存儲控制器中檢驗是否按照預定義的規(guī)范來組織應用程序所處理的數(shù)據(jù)。這確保了數(shù)據(jù)適用性能夠在提高的準確性下得到檢驗和保證。
上述數(shù)據(jù)檢驗方法可包括以下步驟存儲控制器存儲多個算法,其中各算法用于對運行于主機上的多個應用程序中的每一個執(zhí)行檢驗;存儲控制器根據(jù)從主機發(fā)送的區(qū)管理數(shù)據(jù)指定各應用程序所用的存儲區(qū);存儲控制器接收應用程序之一執(zhí)行的處理所導致的、從主機發(fā)出的數(shù)據(jù)輸入/輸出請求,并且根據(jù)區(qū)管理數(shù)據(jù)指定與所接收的數(shù)據(jù)輸入/輸出請求相關的應用程序;以及存儲控制器采用提供給指定應用程序的算法來檢驗要根據(jù)所接收的數(shù)據(jù)輸入/輸出請求來處理以及要輸入到根據(jù)區(qū)管理數(shù)據(jù)指定的存儲區(qū)或從中輸出的數(shù)據(jù)是否是按照預定義的規(guī)范組織的。
因此,即使在多個不同應用程序運行于主機上時,也能夠在存儲控制器這一側檢驗不同應用程序所處理的數(shù)據(jù)。
上述數(shù)據(jù)檢驗方法可包括以下步驟主機將算法從主機傳送到存儲控制器;以及存儲控制器接收并存儲算法。
上述數(shù)據(jù)檢驗方法可包括以下步驟在存儲區(qū)的范圍發(fā)生變化時,主機向存儲控制器傳送反映這種變化的區(qū)管理數(shù)據(jù)。因此,還能夠確保存儲控制器獲得與應用程序所用的存儲裝置的存儲區(qū)有關的最新信息。
應用程序所用的存儲裝置中的存儲區(qū)可以是除由運行于主機上的應用程序之外的軟件所添加的控制信息所用區(qū)域以外的區(qū)域。
區(qū)管理數(shù)據(jù)可包括用于將提供給應用程序的存儲區(qū)的范圍指定為采用存儲裝置的存儲區(qū)在邏輯上組織的卷的數(shù)據(jù)。
可通過根據(jù)RAID方法管理存儲裝置的存儲區(qū)來組織卷。
存儲裝置可與存儲控制器結合成整體來提供。此外,表示檢驗結果的數(shù)據(jù)可傳送到主機。例如,存儲區(qū)可作為由至少一個物理存儲裝置所提供的物理存儲區(qū)中組織的邏輯存儲裝置來提供。例如,預定義的規(guī)范表示例如指定的數(shù)據(jù)插入該數(shù)據(jù)的指定位置。存儲控制器可與主機連接,以便通過符合SCSI標準的通信線路經SAN或LAN與其通信。
此外,可使用另一種配置,使得從主機到存儲控制器的區(qū)管理數(shù)據(jù)的傳送通過與連接存儲控制器和主機的通信通路不同的通信通路來執(zhí)行。這種替代配置的使用可實現(xiàn)例如通信負荷分配。
實施例

圖1說明根據(jù)本發(fā)明一個實施例的存儲系統(tǒng)的配置。
例如,圖中所示的存儲控制器10是盤陣列裝置,主機20是使用存儲控制器10作為存儲資源的大型計算機或個人計算機。存儲控制器10經通信裝置40連接到主機20。例如,通信裝置40是符合SCSI接口標準的通信線路、LAN(局域網(wǎng))或SAN(存儲區(qū)網(wǎng)絡)。
存儲控制器10可包括以下裝置CPU11,用于控制存儲控制器10中的各種部件和功能,并且執(zhí)行和控制各種處理程序;控制存儲器12,用于存儲各種信息;物理裝置(未標出)、如盤驅動器,用作“存儲裝置”;主機接口13,可用作“接收區(qū)管理數(shù)據(jù)的裝置”和/或“接收數(shù)據(jù)輸入/輸出請求的裝置”,用于連接到主機20;數(shù)據(jù)控制器14,用于根據(jù)從主機20接收的數(shù)據(jù)輸入/輸出請求來控制對物理裝置的數(shù)據(jù)輸入/輸出;高速緩沖存儲器15;數(shù)據(jù)緩沖器16,用于臨時存儲要登記在高速緩沖存儲器15中的數(shù)據(jù);以及盤接口17,用于根據(jù)來自數(shù)據(jù)控制器14的指令控制物理裝置。
主機接口13配備一個或多個連接端口131。例如,主機20的外部接口26是主機總線適配器,用作信道接口,并且可用作“發(fā)送區(qū)管理數(shù)據(jù)的裝置”。
在存儲控制器10中,在物理裝置所提供的物理存儲區(qū)中組織一個或多個邏輯裝置18。對每個組織的邏輯裝置分配唯一的邏輯裝置ID,它可在主機20指定存儲控制器10的存儲區(qū)時使用。在本實施例中,假定在存儲控制器10中組織了五個邏輯裝置18,由邏輯裝置ID指定的各邏輯裝置為A、A’、B、C以及X。
OS21在主機20上運行。邏輯卷管理程序22、應用程序23以及區(qū)管理程序24運行于OS21上。
圖8是說明主機20的配置的框圖。主機20包括至少一個CPU(中央處理器)201、存儲器28、存儲裝置202以及上述外部接口26。
CPU201負責對主機20的整個控制,并且通過執(zhí)行存儲在存儲器28中的各種程序來實現(xiàn)根據(jù)本例的各種功能。存儲裝置202可存儲各種程序和數(shù)據(jù)。例如,硬盤驅動器等可用于存儲裝置202。在本例中,存儲裝置202存儲OS21、邏輯卷管理程序22、應用程序23以及區(qū)管理程序24,稍后進行詳細說明。
邏輯卷管理程序22在存儲控制器10的邏輯裝置18的邏輯存儲區(qū)中組織一個或多個邏輯卷27,并向應用程序23提供由邏輯卷27指定的存儲區(qū)。邏輯卷管理程序22的一個實例可以是所謂的SoftRAID程序,它根據(jù)基于軟件的RAID(獨立磁盤冗余陣列)方法來管理存儲控制器10的邏輯裝置所提供的存儲區(qū),并將最終組織的邏輯卷27提供給應用程序23。以下說明假定SoffRAID程序用作邏輯卷管理程序22。
例如,各應用程序23是數(shù)據(jù)庫軟件,它配備一種方案,該方案用于根據(jù)預定義的規(guī)范、即用于檢驗數(shù)據(jù)適用性的機制來組織和管理要存儲在存儲控制器10中的數(shù)據(jù)。各應用程序23還配備一種算法,該算法用于檢查要處理的數(shù)據(jù)是否是按照預定義的規(guī)范來組織的,即用于檢驗數(shù)據(jù)是否適用。
區(qū)管理程序24管理存儲在主機20的存儲器28中的區(qū)管理表25。下面說明關于區(qū)管理表25的詳細情況。區(qū)管理程序24能夠在適當時間將區(qū)管理表25發(fā)送給存儲控制器10。稍后進行詳細說明。
區(qū)管理表圖2說明區(qū)管理表25的一個實例。區(qū)管理表25是為邏輯卷管理程序22所組織的各個邏輯卷27生成的。例如,當邏輯卷管理程序22改變邏輯裝置18和邏輯卷27之間的關系時,區(qū)管理程序24根據(jù)需要按照從邏輯卷管理程序22、應用程序23等所獲取的信息來更新區(qū)管理表25。
圖2中,邏輯卷ID210是分配給各邏輯卷27的唯一標識符。邏輯卷ID表示區(qū)管理表25對應于哪個邏輯卷27。OS控制信息偏移量211和OS控制信息大小212指示邏輯裝置18中的存儲單元,用于存儲OS21所提供的OS控制信息,以便管理邏輯裝置18和邏輯卷27。OS控制信息的一個實例可以是文件控制信息。
邏輯卷控制信息偏移量213和邏輯卷控制信息大小214指示邏輯裝置18中的存儲單元,用于存儲邏輯卷管理程序22生成的邏輯卷控制信息,以便管理邏輯卷27。邏輯卷控制信息是邏輯卷管理程序22用來管理邏輯裝置18的信息。邏輯卷控制信息的一個實例可以是邏輯卷管理程序22根據(jù)RAID方法操作邏輯裝置18時所需的條配置信息。
邏輯裝置ID215是組成邏輯卷27的邏輯裝置18的ID,以及應用ID216是使用邏輯卷27的應用程序23的ID。例如,用戶可通過操作主機20的用戶界面來登記應用ID。
應用處理數(shù)據(jù)大小217是使用邏輯卷27的應用程序23向邏輯卷27執(zhí)行數(shù)據(jù)輸入/輸出操作時所處理的數(shù)據(jù)大小。條大小218是邏輯卷管理程序22通過根據(jù)RAID方法對數(shù)據(jù)分條而在邏輯裝置18上寫數(shù)據(jù)時所采用的數(shù)據(jù)大小。完整數(shù)據(jù)大小219是邏輯卷27的總存儲容量。
區(qū)管理表傳送區(qū)管理表25在適當時間由區(qū)管理程序24從主機20傳送到存儲控制器10。這種傳送的“適當時間”可以是例如在主機20啟動時或者在區(qū)管理表25被更新時,或者在已經設置為區(qū)管理程序24的調度功能時。
從主機20接收到區(qū)管理表25時,存儲控制器10將該表存儲在邏輯裝置18中。在本實施例中,雖然假定區(qū)管理表25存儲在具有邏輯裝置ID“X”的邏輯裝置18中,但區(qū)管理表25也可存儲在控制存儲器12等中。
圖3是流程圖,說明緊接主機向存儲控制器10傳送區(qū)管理表25之后的處理步驟。這些處理步驟可大致分為兩種處理區(qū)管理程序24獲取表示最新位置的區(qū)管理表25的處理;以及程序傳送所獲取的區(qū)管理表25的處理;首先,區(qū)管理程序24對用于處理過程中的標志及其它項的內容進行初始化(S310),請求OS21遞交最新的OS控制信息偏移量211和OS控制信息大小212,并獲取這類信息(S311)。隨后,區(qū)管理程序24檢查主機20的存儲器28中是否存在區(qū)管理表25(S312)。
如果在存儲器28中沒有找到區(qū)管理表25,區(qū)管理程序24在存儲器28中生成區(qū)管理表25(S313)。另一方面,如果在存儲器28中找到了區(qū)管理表25,區(qū)管理程序24則將區(qū)管理表25中的OS控制信息偏移量211及OS控制信息大小212與所獲取的OS控制信息偏移量211及OS控制信息大小212進行比較(S314)。如果所獲取的信息的內容不同于區(qū)管理表25中的內容,區(qū)管理程序24則更新表25以登記所獲取的信息(S315)。在這種更新之后,區(qū)管理程序24啟用更新標志(S316)。
隨后,區(qū)管理程序24還從OS21獲取邏輯卷控制信息偏移量213及邏輯卷控制信息大小214,并執(zhí)行類似于對OS控制信息所進行的比較處理。也就是說,所獲取的信息與存儲器中的區(qū)管理表25的內容進行比較(S317、318),如果發(fā)現(xiàn)所獲取信息的內容不同于區(qū)管理表25中的內容,區(qū)管理程序24則更新區(qū)管理表25以便反映所獲取的信息(S319),并在這種更新之后啟用更新標志(S320)。
根據(jù)上述程序,在存儲器28中生成表示最新狀態(tài)的區(qū)管理表25。
隨后,區(qū)管理程序24檢查更新標志(S321)。當更新標志啟用時,區(qū)管理程序24將存儲在存儲器28中的區(qū)管理表25的內容傳送到存儲控制器10(S322)。在接收到區(qū)管理表25時,存儲控制器10將該表存儲在邏輯裝置X中。
例如,如果組成邏輯卷27的邏輯裝置18的數(shù)量發(fā)生變化,則在例如OS控制信息或邏輯卷控制信息中出現(xiàn)變化的情況下或者在邏輯卷27的配置已經改變的情況下啟動OS21時,根據(jù)需要執(zhí)行將區(qū)管理表25從主機20傳送到存儲控制器10的上述處理。這確保表示最新狀態(tài)的區(qū)管理表25始終設在存儲控制器10中。
邏輯裝置管理表在存儲控制器10的控制存儲器12中存儲邏輯裝置管理表121。邏輯裝置管理表的一個實例如圖4所示。關于邏輯裝置ID411,該表管理例如以下各項對于各邏輯裝置ID411為唯一的LUN(邏輯單元號)412;各邏輯裝置18的存儲容量413;以及端口ID414,它是各邏輯裝置18所連接的主機接口13的端口131的ID。邏輯裝置管理表121的內容保持為最新。例如,它們由操作員通過連接存儲控制器10的管理終端(未標出)進行手動更新,或者根據(jù)例如存儲在存儲控制器10中或從主機20傳送的信息自動更新。
數(shù)據(jù)狀態(tài)下面說明從運行于主機20上的應用程序23輸出的數(shù)據(jù)如何存儲在存儲控制器10的邏輯裝置18中,注意數(shù)據(jù)配置。
圖5A說明當應用程序23向邏輯卷27執(zhí)行數(shù)據(jù)輸入/輸出操作時的數(shù)據(jù)單元。數(shù)據(jù)單元51的數(shù)據(jù)大小等于圖2所示應用程序的處理數(shù)據(jù)大小。
圖5B說明在向存儲控制器10執(zhí)行輸入/輸出操作時、邏輯卷管理程序22如何劃分圖5A所示的數(shù)據(jù)單元51。在該圖所示的實例中,數(shù)據(jù)單元51分為三個部分數(shù)據(jù)52、數(shù)據(jù)53以及數(shù)據(jù)54。
圖5C說明數(shù)據(jù)52、數(shù)據(jù)53以及數(shù)據(jù)54如何存儲在邏輯裝置18中。該圖說明一個實例,其中,具有應用程序23指定為“001h”的邏輯卷ID210的邏輯卷27包括邏輯裝置ID215為“A”的邏輯裝置18以及邏輯裝置ID215為“A’”的邏輯裝置18。劃分的數(shù)據(jù)52和53存儲在邏輯裝置ID215為“A”的邏輯裝置18中;劃分的數(shù)據(jù)54存儲在邏輯裝置ID215為“A’”的邏輯裝置18中。
這些邏輯裝置18的固定區(qū)存儲上述OS控制信息55、56以及邏輯卷控制信息57、58。
圖6A說明如圖5A所示的數(shù)據(jù)單元,它的數(shù)據(jù)格式符合SCSI標準。圖6B說明圖5B所示的SCSI數(shù)據(jù)格式的數(shù)據(jù)。
如圖6B所示,對于命令幀中的各操作碼字段611至613,設置了表示所請求處理的類型的命令。在該圖的實例中,設置了寫命令。對于各個LUN字段621至623,設置了將成為處理目標的邏輯裝置ID215或LUN(邏輯單元號)。在這些實例中,“0001h”設置在LUN字段621、622中,以及“0002h”設置在LUN字段623中。對于邏輯地址字段631至633,設置了與數(shù)據(jù)52至54將寫入其中的邏輯裝置18中的存儲起始單元(即開始存儲的單元)相對應的地址。對于數(shù)據(jù)長度字段641至643,設置了與相應命令幀中的寫數(shù)據(jù)52至54相對應的數(shù)據(jù)長度。
以上說明涉及從應用程序23輸出數(shù)據(jù)寫請求的情況。當輸出數(shù)據(jù)讀請求時,讀命令將設置到上述各操作碼字段611至613,指定邏輯裝置18中的數(shù)據(jù)讀起始單元(即開始讀取數(shù)據(jù)的單元)的地址將設置到邏輯地址字段631至633,以及待讀取數(shù)據(jù)的大小將設置到各數(shù)據(jù)長度字段。
數(shù)據(jù)檢驗處理下面說明在主機20向存儲控制器10傳送SCSI數(shù)據(jù)時、由存儲控制10執(zhí)行的數(shù)據(jù)檢驗處理。
通過執(zhí)行存儲控制器10存儲在其控制存儲器12中的數(shù)據(jù)檢驗程序122(算法)來執(zhí)行數(shù)據(jù)檢驗處理。因此,該程序可用作“檢驗裝置”。數(shù)據(jù)檢驗程序122是為主機20上運行的各應用程序23準備的。數(shù)據(jù)檢驗程序122包括一種功能,用于在執(zhí)行目標數(shù)據(jù)(即待處理數(shù)據(jù))的處理之前、檢驗目標數(shù)據(jù)是否符合預定義的規(guī)范,該功能執(zhí)行等效于或者優(yōu)于在主機20上運行的應用程序23所包含的上述算法的處理。
數(shù)據(jù)檢驗程序122例如通過從主機20的傳送或操作員采用管理終端(未標出)對存儲控制器10的手動操作而存儲在控制存儲器12中。對于待存儲的各數(shù)據(jù)檢驗程序122分配相關應用程序23的ID。
數(shù)據(jù)檢驗處理用于檢查目標數(shù)據(jù)是否符合應用程序23所要求的預定義規(guī)范。為此,在已經存儲于邏輯裝置18的存儲區(qū)中的整個數(shù)據(jù)中,只有存儲從應用程序23輸入或者輸出到應用程序23的數(shù)據(jù)的區(qū)域必須受到數(shù)據(jù)檢驗處理。因此,在數(shù)據(jù)檢驗處理之前,執(zhí)行排除這種區(qū)域的處理,稍后說明。
下面利用圖7所示的流程圖,結合從運行于主機20上的應用程序23傳送圖6A所示的寫入數(shù)據(jù)51的數(shù)據(jù)寫請求以及對應于數(shù)據(jù)寫請求的圖6B所示寫命令幀被傳送到存儲控制器10的情況,對存儲控制器10中執(zhí)行的數(shù)據(jù)檢驗處理進行說明。例如通過存儲在存儲控制器10的控制存儲器12中的微程序來執(zhí)行這種處理。
從主機20接收到帶有寫命令的命令幀時(S711),存儲控制器10將命令幀存儲在數(shù)據(jù)緩沖器16中(S712)。然后,存儲控制器10參考存儲在邏輯裝置ID為“X”的邏輯裝置18中的區(qū)管理表25,獲取關于設在所接收數(shù)據(jù)寫請求中的邏輯裝置ID的OS控制信息偏移量211、OS控制信息大小212、邏輯卷控制信息偏移量213以及邏輯卷控制信息大小214(S713)。此外,存儲控制器10參考邏輯裝置管理表121以獲取對應于上述邏輯裝置ID的邏輯裝置18的存儲容量413(S714)。
隨后,存儲控制器10存儲用于在對應于上述邏輯裝置ID的邏輯裝置18的整個存儲區(qū)中指定除上述OS控制信息偏移量211、OS控制信息大小212、邏輯卷控制信息偏移量213以及邏輯卷控制信息大小214指定區(qū)域之外的區(qū)域(S715)。以下將上述地址所指定的存儲區(qū)稱作用于檢驗的候選區(qū)。
隨后,存儲控制器10將這些地址所指定的用于檢驗的上述候選區(qū)與設置在所接收命令幀的邏輯地址字段631至633中的地址進行比較(S716)。如果設置在邏輯地址字段中的地址不在用于檢驗的候選區(qū)中,則結束數(shù)據(jù)檢驗處理(S717)。另一方面,如果該地址包含在用于檢驗的候選區(qū)中,則存儲控制器10還檢查由設置在邏輯地址字段中的地址以及設置在所接收命令幀的數(shù)據(jù)長度字段641至643中的數(shù)據(jù)長度所定義的、并被指定為寫入寫數(shù)據(jù)的寫目的地址的整個存儲區(qū)是否處于用于檢驗的候選區(qū)中(S718)。
如果所指定的整個存儲區(qū)在用于檢驗的候選區(qū)中,存儲控制器10則將已經指定為寫目的地址的整個存儲區(qū)設置為用于數(shù)據(jù)檢驗的目標區(qū),然后存儲用于定義這個區(qū)的地址(例如定義該區(qū)的起始和結束地址)(S719)。
另一方面,如果整個存儲區(qū)不在用于檢驗的候選區(qū)中,則存儲控制器10將從包含在命令幀中的上述邏輯地址開始、直到用于檢驗的候選區(qū)的結束地址為止的區(qū)域設置為用于數(shù)據(jù)檢驗的目標區(qū),然后再存儲用于定義這個區(qū)的地址(例如定義該區(qū)的起始和結束地址)(S720)。
按照上述設置用于數(shù)據(jù)檢驗的目標區(qū)之后,存儲控制器10獲得與待寫入邏輯裝置18相關的應用程序ID。應當指出,存儲控制器10存儲表示提供給各應用程序23的應用ID和數(shù)據(jù)檢驗程序122之間關系的對應關系。因此,存儲控制器10啟動與所獲得的應用程序ID相關的數(shù)據(jù)檢驗程序122(S721)。
啟動數(shù)據(jù)檢驗程序122時,存儲控制器10向數(shù)據(jù)檢驗程序122提供指定用于數(shù)據(jù)檢驗的目標區(qū)的上述地址。然后,數(shù)據(jù)檢驗程序122開始執(zhí)行與上述地址所指定的邏輯裝置18的存儲區(qū)相關的數(shù)據(jù)檢驗處理。
如果在數(shù)據(jù)檢驗程序122所執(zhí)行的數(shù)據(jù)檢驗處理中檢測到差錯(S723),則存儲控制器10將表示該差錯的消息(例如表示非法請求或寫錯誤的消息)傳送到主機20(S724)。如果沒有檢測到任何差錯,存儲控制器10將目前存儲在數(shù)據(jù)緩沖器16中的命令幀中的寫數(shù)據(jù)傳送到高速緩沖存儲器15,并將數(shù)據(jù)寫入邏輯裝置18(S725)。
以上說明涉及存儲控制器10從主機20接收數(shù)據(jù)寫請求的情況。但是,當接收數(shù)據(jù)讀請求時,不是檢驗命令幀中的數(shù)據(jù),而是從存儲裝置中讀出待讀取的數(shù)據(jù),存儲在數(shù)據(jù)緩沖器16中,并通過執(zhí)行與寫命令相同的處理來檢驗。也就是說,即使接收到數(shù)據(jù)讀請求,也會執(zhí)行數(shù)據(jù)檢驗處理,并且如果檢測到任何差錯,相關的出錯消息會發(fā)送給主機20。因此,例如,在讀數(shù)據(jù)遞交給應用程序23之前,可通知應用程序23數(shù)據(jù)不適用(即未確定數(shù)據(jù)的“適用性”)。因此能夠防止任何數(shù)據(jù)丟失或數(shù)據(jù)中的損壞,以及防止應用程序23執(zhí)行錯誤操作。
如上所述,根據(jù)本發(fā)明,存儲控制器10還能夠獲取數(shù)據(jù)檢驗所需的信息。因此,通常由應用程序23執(zhí)行的數(shù)據(jù)檢驗處理也能夠由存儲控制器10來執(zhí)行。由于存儲控制器10還檢驗應用程序23所要求的數(shù)據(jù)適用性,因此能夠進一步提高數(shù)據(jù)管理準確性。
其它應當指出,在上述說明中,邏輯卷管理程序22不一定是必要的構件。
此外,區(qū)管理表25的整個內容不一定要從主機20傳送到存儲控制器10;它可這樣配置,以便僅傳送表示因數(shù)據(jù)變化而產生的差別的差異數(shù)據(jù)。
當區(qū)管理程序24首次執(zhí)行時,沒有任何數(shù)據(jù)寫入主機20的區(qū)管理表25中。在這種情況下,它可經過配置,以便在假定例如某些變化已加至區(qū)管理表25的情況下,將區(qū)管理表25傳送到存儲控制器10。
此外,通過將主機20通過LAN之類的網(wǎng)絡與存儲控制器10連接以便經LAN傳送區(qū)管理表25,也可以高速執(zhí)行從主機20到存儲控制器10的區(qū)管理表傳送。
雖然詳細說明了本發(fā)明的最佳實施例,但應當理解,只要不背離所附權利要求所定義的本發(fā)明的精神和范圍,可以進行各種變更、替換和更改。
權利要求
1.一種用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,所述存儲系統(tǒng)包括主機和存儲控制器,所述存儲控制器與所述主機連接以便與其進行通信,能夠接收從所述主機發(fā)出的輸入/輸出請求,并且能夠根據(jù)所述請求向存儲裝置執(zhí)行數(shù)據(jù)輸入/輸出處理,所述方法包括以下步驟所述主機執(zhí)行應用程序,以便在所述存儲控制器中根據(jù)預定義的規(guī)范來組織和管理待存儲的數(shù)據(jù);所述主機向所述存儲控制器傳送區(qū)管理數(shù)據(jù),其中所述區(qū)管理數(shù)據(jù)用于指定所述存儲裝置中提供的、要由所述應用程序使用的存儲區(qū)的范圍;所述存儲控制器接收所述區(qū)管理數(shù)據(jù);以及所述存儲控制器接收所述應用程序執(zhí)行的處理所導致的、從所述主機發(fā)出的數(shù)據(jù)輸入/輸出請求,以及檢驗要根據(jù)所述接收的數(shù)據(jù)輸入/輸出請求來處理以及要輸入按照所述區(qū)管理數(shù)據(jù)所指定的所述應用程序所用的所述存儲區(qū)或從中輸出的數(shù)據(jù)是否是按照所述預定義的規(guī)范來組織的。
2.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于還包括以下步驟所述存儲控制器存儲多個算法,其中每個所述算法用于執(zhí)行對運行于所述主機上的多個應用程序中每一個的所述檢驗;所述存儲控制器根據(jù)從所述主機傳送的所述區(qū)管理數(shù)據(jù)來指定每個所述應用程序使用的存儲區(qū);所述存儲控制器接收所述應用程序之一執(zhí)行的處理所導致的、從所述主機發(fā)出的數(shù)據(jù)輸入/輸出請求,以及根據(jù)所述區(qū)管理數(shù)據(jù)指定與所述接收的數(shù)據(jù)輸入/輸出請求有關的應用程序;以及所述存儲控制器采用提供給所述指定應用程序的所述算法來檢驗要根據(jù)所述接收的數(shù)據(jù)輸入/輸出請求來處理以及要輸入按照所述區(qū)管理數(shù)據(jù)指定的所述存儲區(qū)或從中輸出的數(shù)據(jù)是否是根據(jù)所述預定義的規(guī)范來組織的。
3.如權利要求2所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于還包括以下步驟所述主機將所述算法從所述主機發(fā)送給所述存儲控制器;以及所述存儲控制器接收和存儲所述算法。
4.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于還包括以下步驟所述主機在所述存儲區(qū)的所述范圍發(fā)生變化時,將反映所述變化的所述區(qū)管理數(shù)據(jù)傳送到所述存儲控制器。
5.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,所述應用程序所用的所述存儲裝置中的所述存儲區(qū)是一個不包括由運行于所述主機上的所述應用程序之外的軟件所添加的控制信息所用區(qū)域的區(qū)域。
6.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,所述區(qū)管理數(shù)據(jù)包括用于將提供給所述應用程序的所述存儲區(qū)的范圍指定為采用所述存儲裝置的所述存儲區(qū)在邏輯上組織的卷的數(shù)據(jù)。
7.如權利要求6所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,通過根據(jù)RAID方法管理所述存儲裝置的存儲區(qū)來組織所述卷。
8.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,所述存儲裝置與所述存儲控制器結合成整體來提供。
9.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于還包括以下步驟向所述主機發(fā)送表示所述檢驗結果的數(shù)據(jù)。
10.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,所述存儲區(qū)作為由至少一個物理存儲裝置所提供的物理存儲區(qū)中組織的邏輯存儲裝置來提供。
11.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,所述存儲控制器連接到所述主機,以便通過符合SCSI標準的通信線路與其通信。
12.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,所述存儲控制器連接到所述主機,以便通過SAN與其通信。
13.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,所述存儲控制器連接到所述主機,以便通過LAN與其通信。
14.如權利要求1所述的用于在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法,其特征在于,通過除用于連接所述存儲控制器和所述主機的通信路徑之外的通信路徑來執(zhí)行從所述主機到所述存儲控制器的所述區(qū)管理數(shù)據(jù)的所述傳送。
15.一種存儲控制器,它連接到主機以便與其通信,能夠接收所述主機發(fā)出的輸入/輸出請求,并且能夠根據(jù)所述請求來執(zhí)行對存儲裝置的數(shù)據(jù)輸入/輸出處理,所述存儲控制器包括接收區(qū)管理數(shù)據(jù)的裝置,其中所述區(qū)管理數(shù)據(jù)用于指定要由應用程序使用的所述存儲裝置中提供的存儲區(qū)的范圍,并且是從所述主機發(fā)送的,以及所述應用程序在所述主機中提供,用于在所述存儲控制器中根據(jù)預定義的規(guī)范來組織和管理要存儲的數(shù)據(jù);接收由所述應用程序執(zhí)行的處理所導致的、從所述主機發(fā)出的數(shù)據(jù)輸入/輸出請求的裝置,以及檢驗要根據(jù)所述接收的數(shù)據(jù)輸入/輸出請求來處理以及要輸入所述應用程序使用的所述存儲區(qū)或從中輸出的數(shù)據(jù)是否是根據(jù)所述預定義的規(guī)范來組織的裝置。
16.一種主機,它連接到存儲控制器,所述存儲控制器能夠接收所述主機發(fā)出的輸入/輸出請求,并且能夠根據(jù)所述請求來執(zhí)行對存儲裝置的數(shù)據(jù)輸入/輸出處理,所述主機包括應用程序,用于在所述存儲控制器中根據(jù)預定義的規(guī)范來組織和管理要存儲的數(shù)據(jù);執(zhí)行所述應用程序的裝置;以及向所述存儲控制器傳送區(qū)管理數(shù)據(jù)的裝置,其中所述區(qū)管理數(shù)據(jù)用于指定要由所述應用程序使用的所述存儲裝置中提供的存儲區(qū)的范圍。
全文摘要
公開一種在存儲系統(tǒng)中檢驗數(shù)據(jù)的方法。主機向存儲控制器傳送區(qū)管理數(shù)據(jù)。區(qū)管理數(shù)據(jù)指定要由具有檢驗數(shù)據(jù)適用性的機制的應用程序使用的存儲裝置中的存儲區(qū)的范圍。接收到主機發(fā)出的輸入/輸出請求時,存儲控制器執(zhí)行通常由應用程序執(zhí)行的、對要根據(jù)數(shù)據(jù)輸入/輸出請求來處理以及要輸入到根據(jù)接收的區(qū)管理數(shù)據(jù)所指定的存儲區(qū)或從中輸出的數(shù)據(jù)的檢驗。
文檔編號G11C5/00GK1448827SQ0310774
公開日2003年10月15日 申請日期2003年3月28日 優(yōu)先權日2002年3月28日
發(fā)明者大橋和伸, 佐藤孝夫, 占部喜一郎, 中野俊夫, 橫畑靜生 申請人:株式會社日立制作所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
墨脱县| 大理市| 台中县| 台南市| 松潘县| 白银市| 焦作市| 黄浦区| 哈巴河县| 永嘉县| 邵阳市| 安庆市| 揭东县| 淮北市| 天镇县| 遵义市| 黄石市| 五常市| 嵊泗县| 吴桥县| 万安县| 永福县| 长武县| 漯河市| 高唐县| 昌都县| 博兴县| 长春市| 淳化县| 金坛市| 朔州市| 广南县| 琼结县| 沐川县| 靖宇县| 会东县| 建阳市| 通山县| 马尔康县| 恩施市| 尚志市|