(57)【要約】  不揮発性データ記憶媒体にログファイルを生成するよう、装置、システム、方法及び物が動作する。ログファイルは、ＲＡＩＤサブシステムのストライプに係るヘッダレコード、トレイラレコード及び少なくとも１つのパリティ値を有する。ストライプは、動作中の第１ディスクドライブに設けられた更新対象の第１データストリップ、故障したディスクドライブに設けられた第２データストリップ及び動作中のディスクドライブに設けられたストライプパリティストリップを有する。【特許請求の範囲】
【請求項１】
不揮発性データ記憶媒体にログファイルを生成するステップを有する方法であって、
前記ログファイルは、ＲＡＩＤサブシステムのストライプに係るヘッダレコード、トレイラレコード及び少なくとも１つのパーシャルパリティ値を有し、
前記ストライプは、動作中の第１ディスクドライブに設けられた更新対象となる第１データストリップ、故障したディスクドライブに設けられた第２データストリップ及び動作中のディスクドライブに設けられたストライプパリティストリップを有する方法。
【請求項２】
前記動作中の第１ディスクドライブから前記第１データストリップを読み込むステップと、
前記ＲＡＩＤサブシステムから前記ストライプパリティストリップを読み込むステップと、
前記第１データストリップ及び前記ストライプパリティストリップから前記少なくとも１つのパーシャルパリティ値を計算するステップと、
第１データストリップに係るパリティディスクナンバー、データディスクナンバー、論理ブロックアドレス及びトランスファーバイトカウントを前記ログファイルのヘッダレコードに書き込むステップと、
前記ログファイルのメインセクションに前記少なくとも１つのパーシャルパリティ値を書き込むステップと、
前記メインセクションへの少なくとも１つのパーシャルパリティ値の書き込み後、前記ログファイルにおいて前記ヘッダレコードを前記トレイラレコードにコピーするステップと、
をさらに有する、請求項１記載の方法。
【請求項３】
前記少なくとも１つのパーシャルパリティ値を計算するステップは、前記第１データストリップ及び前記ストライプパリティストリップに対して排他的ＯＲファンクションを実行する、請求項２記載の方法。
【請求項４】
前記第１データストリップ及び前記ストライプパリティストリップへの更新書き込みの開始時と該更新書き込みの完了時との間の期間中に予期せぬサブシステムリセットが発生したか判断するため、前記リセットの後に前記ヘッダレコードと前記トレイラレコードとを比較するステップをさらに有する、請求項１記載の方法。
【請求項５】
前記予期せぬサブシステムリセット後、前記ログファイルを使用して前記第１データストリップと前記ストライプパリティストリップとの間の第１コンシスタンシをリストアするステップをさらに有する、請求項４記載の方法。
【請求項６】
前記ログファイルから前記少なくとも１つのパーシャルパリティ値、ストライプパリティストリップセット及び第１データストリップ位置の値を読み込むステップと、
前記動作中の第１ディスクドライブから前記第１データストリップを読み込むステップと、
リストアされたストライプパリティストリップ値を取得するため、前記少なくとも１つのパーシャルパリティ値及び前記第１データストリップに対して第１パリティリストア処理を実行するステップと、
前記リストアされたストライプパリティストリップ値により前記ストライプパリティストリップを上書きするステップと、
をさらに有する、請求項５記載の方法。
【請求項７】
前記第１パリティリストア処理は、排他的ＯＲファンクションを有する、請求項６記載の方法。
【請求項８】
前記第１データストリップを利用して計算された２次元パリティパリティストリップが前記ＲＡＩＤサブシステム上に存在し、前記ＲＡＩＤサブシステムがＲＡＩＤレベル６サブシステムからなることをさらに提供する前記ログファイルを生成するステップと、
リストアされた２次元パリティストリップ値を生成するため、前記ストライプのすべてのデータストリップ及び前記リストアされたストライプパリティストリップ値に対して第２パリティリストア処理を実行するステップと、
前記リストアされた２次元パリティストリップ値により前記２次元パリティストリップを上書きするステップと、
をさらに有する、請求項６記載の方法。
【請求項９】
前記ストライプパリティストリップは、前記ストライプに含まれるさらなるデータストリップ及び前記第１データストリップを使用して計算されたパリティ値を有する、請求項１記載の方法。
【請求項１０】
前記不揮発性データ記憶媒体は、前記ＲＡＩＤサブシステムに含まれる少なくとも１つのディスクドライブに設けられるリザーブドエリアを有する、請求項１記載の方法。
【請求項１１】
ライトスループットを向上させるため、前記ログファイルへの少なくとも１つのパーシャルパリティ値の各書き込みをまとめるステップをさらに有する、請求項１記載の方法。
【請求項１２】
関連する情報を有するマシーンアクセス可能媒体を有する物であって、
前記情報は、アクセス時に、マシーンに、不揮発性データ記憶媒体にログファイルを生成するステップを実行させ、
前記ログファイルは、ＲＡＩＤサブシステムのストライプに係るヘッダレコード、トレイラレコード及び少なくとも１つのパーシャルパリティ値を有し、
前記ストライプは、動作中の第１ディスクドライブに設けられた更新対象となる第１データストリップ、故障したディスクドライブに設けられた第２データストリップ及び動作中のディスクドライブに設けられたストライプパリティストリップを有する物。
【請求項１３】
前記情報は、アクセス時に、マシーンに、
前記動作中の第１ディスクドライブから前記第１データストリップを読み込むステップと、
前記ＲＡＩＤサブシステムから前記ストライプパリティストリップを読み込むステップと、
前記第１データストリップ及び前記ストライプパリティストリップから前記少なくとも１つのパーシャルパリティ値を計算するステップと、
第１データストリップに係るパリティディスクナンバー、データディスクナンバー、論理ブロックアドレス及びトランスファーバイトカウントを前記ログファイルのヘッダレコードに書き込むステップと、
前記ログファイルのメインセクションに前記少なくとも１つのパーシャルパリティ値を書き込むステップと、
前記メインセクションへの少なくとも１つのパーシャルパリティ値の書き込み後、前記ログファイルにおいて前記ヘッダレコードを前記トレイラレコードにコピーするステップと、
を実行させる、請求項１２記載の物。
【請求項１４】
前記情報は、アクセス時に、マシーンに、前記ログファイルからのヘッダレコードが前記少なくとも１つのパーシャルパリティ値に関連付けされていることを確認するのに利用されるデジタルシグネチャを前記ログファイルに書き込むステップを実行させる、請求項１３記載の物。
【請求項１５】
前記情報は、アクセス時に、マシーンに、前記第１データストリップ及び前記ストライプパリティストリップへの更新書き込みの開始時と該更新書き込みの完了時との間の期間中に予期せぬサブシステムリセットが発生したか判断するため、前記リセットの後に前記ヘッダレコードと前記トレイラレコードとを比較するステップを実行させる、請求項１２記載の物。
【請求項１６】
前記情報は、アクセス時に、マシーンに、
前記少なくとも１つのパーシャルパリティ値に係るデジタルシグネチャを前記ログファイルから読み込むステップと、
前記ログファイルからのヘッダレコードが前記少なくとも１つのパーシャルパリティ値に関連付けされていることを確認するため、前記デジタルシグネチャを検証するステップと、
を実行させる、請求項１５記載の物。
【請求項１７】
前記情報は、アクセス時に、マシーンに、前記予期せぬサブシステムリセット後、前記ログファイルを使用して前記第１データストリップと前記ストライプパリティストリップとの間の第１コンシスタンシをリストアするステップを実行させ、
前記リセットは、前記第１データストリップ及び前記ストライプパリティストリップへの更新書き込みの開始時と該更新書き込みの完了時との間の期間中に発生したものである、請求項１６記載の物。
【請求項１８】
前記情報は、アクセス時に、マシーンに、
前記ログファイルから前記少なくとも１つのパーシャルパリティ値、ストライプパリティストリップセット及び第１データストリップ位置の値を読み込むステップと、
前記動作中の第１ディスクドライブから前記第１データストリップを読み込むステップと、
リストアされたストライプパリティストリップ値を取得するため、前記少なくとも１つのパーシャルパリティ値及び前記第１データストリップに対して第１パリティリストア処理を実行するステップと、
前記リストアされたストライプパリティストリップ値により前記ストライプパリティストリップを上書きするステップと、
を実行させる、請求項１７記載の物。
【請求項１９】
不揮発性データ記憶媒体にログファイルを生成するパーシャルパリティログ処理モジュールを有する装置であって、
前記ログファイルは、ＲＡＩＤサブシステムのストライプに係るヘッダレコード、トレイラレコード及び少なくとも１つのパーシャルパリティ値を有し、
前記ストライプは、動作中の第１ディスクドライブに設けられた更新対象となる第１データストリップ、故障したディスクドライブに設けられた第２データストリップ及び動作中のディスクドライブに設けられたストライプパリティストリップを有する装置。
【請求項２０】
前記ログ処理モジュールに接続され、前記予期せぬサブシステムリセット後、前記ログファイルを使用して前記第１データストリップと前記ストライプパリティストリップとの間の第１コンシスタンシをリストアするパリティリストアモジュールをさらに有し、
前記リセットは、前記第１データストリップ及び前記ストライプパリティストリップへの更新書き込みの開始時と該更新書き込みの完了時との間の期間中に発生したものである、請求項１９記載の装置。
【請求項２１】
前記ログファイルはさらに、前記ストライプパリティストリップに係るパリティディスクナンバーと、前記第１データストリップに係るデータディスクナンバー、論理ブロックアドレス及びトランスファーバイトカウントとを有する、請求項１９記載の装置。
【請求項２２】
前記パリティディスクナンバー、前記データディスクナンバー、前記論理ブロックアドレス及び前記トランスファーバイトカウントは、前記ログファイルのヘッダセクションに設けられ、
前記少なくとも１つのパーシャルパリティ値は、前記ログファイルのメインセクションに設けられる、請求項２１記載の装置。
【請求項２３】
前記少なくとも１つのパーシャルパリティ値は、前記第１データストリップ及び前記ストライプパリティストリップに対して実行される排他的ＯＲ演算の結果を有する、請求項１９記載の装置。
【請求項２４】
前記不揮発性データ記憶媒体は、ディスクドライブのストレージエリアを構成する、請求項１９記載の装置。
【請求項２５】
前記ストレージエリアは、前記ＲＡＩＤサブシステムに含まれる少なくとも１つのディスクドライブに設けられるリザーブドエリアを有する、請求項２４記載の装置。
【請求項２６】
不揮発性データ記憶媒体にログファイルを生成するパーシャルパリティログ処理モジュールと、
前記ログ処理モジュールに接続されるパリティリストアモジュールと、
前記ログ処理モジュールに接続されるプロセッサと、
前記プロセッサに接続される液晶ディスプレイと、
を有するシステムであって、
前記ログファイルは、ＲＡＩＤサブシステムのストライプに係るヘッダレコード、トレイラレコード及び少なくとも１つのパーシャルパリティ値を有し、
前記ストライプは、動作中の第１ディスクドライブに設けられた更新対象となる第１データストリップ、故障したディスクドライブに設けられた第２データストリップ及び動作中のディスクドライブに設けられたストライプパリティストリップを有し、
前記パリティリストアモジュールは、前記予期せぬサブシステムリセット後、前記ログファイルを使用して前記第１データストリップと前記ストライプパリティストリップとの間の第１コンシスタンシをリストアし、
前記リセットは、前記第１データストリップ及び前記ストライプパリティストリップへの更新書き込みの開始時と該更新書き込みの完了時との間の期間中に発生したものであり、
前記プロセッサは、前記第１データストリップに書き込むデータを提供し、
前記液晶ディスプレイは、前記データを表示するシステム。
【請求項２７】
前記ＲＡＩＤサブシステムは、ＲＡＩＤレベル３、ＲＡＩＤレベル４、ＲＡＩＤレベル５、ＲＡＩＤレベル６、ＲＡＩＤレベル３０及びＲＡＩＤレベル５０の少なくとも１つから構成される、請求項２６記載のシステム。
【請求項２８】
動作中のディスクドライブに設けられ、前記第１データストリップを用いて計算される２次元パリティストリップをさらに有し、
前記ＲＡＩＤサブシステムは、ＲＡＩＤレベル６サブシステムから構成され、
前記パリティリストアモジュールは、前記ストライプのすべてのデータストリップ及びリストされたストライプパリティストリップを使用して、前記第１データストリップと前記２次元パリティストリップとの間の第２コンシスタンシをリストアする、請求項２６記載のシステム。
【請求項２９】
前記不揮発性データ記憶媒体は、前記ＲＡＩＤサブシステムに含まれる少なくとも１つのディスクドライブに設けられるリザーブドエリアを有する、請求項２６記載のシステム。
【請求項３０】
前記予期せぬサブシステムのリセットは、ＲＡＩＤサブシステムの処理の中断を、該中断前に前記ＲＡＩＤサブシステムに通知することなく構成する、請求項２６記載のシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［技術分野］
ここに記載される各種実施例は、一般に電力ロスに続いて冗長なアレイにおけるパリティコンシスタンシをリストアするのに使用される装置、システム及び方法を含むディスクストレージ技術に関する。
【０００２】
［背景情報］
ディスクストレージシステムは、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ）サブシステムを有するかもしれない。ＲＡＩＤサブシステムは、当該ＲＡＩＤサブシステムに含まれる複数のデータディスクドライブのそれぞれに配備される“ストリップ（ｓｔｒｉｐ）”と呼ばれるデータの集合体を格納するかもしれない。各データディスクドライブからの各ストリップは、複数のデータディスクドライブの１つに、又は独立したパリティディスクドライブに配備されるパリティストリップによってその他のものと関連付けされるかもしれない。パリティストリップ及び関連するデータストリップは、まとめて“ストライプ（ｓｔｒｉｐｅ）”と呼ばれるかもしれない。
【０００３】
パリティストリップは、関連するデータストリップに対して排他的ＯＲ演算を実行することによって計算可能であり、ストライプの書き込み後のある時点において読み取り不可となったデータストリップの値を再計算するため、データストリップと共にＲＡＩＤサブシステムにより利用されるかもしれない。これによって、冗長性がＲＡＩＤサブシステムに備えられ、その冗長性は、１以上のディスクドライブの不具合に続いてあるボリュームのリカバリをイネーブルにするかもしれない（劣化処理モード）。しかしながら、劣化モードによる動作中に、ターゲットデータストリップ又はパリティストリップへのライトアップデートを実行するプロセッサ又はコントローラが突然リセットした場合、問題が発生するかもしれない。この予期せぬリセットは、例えば、電力ロス又は致命的なオペレーティングシステムのエラーを引き起こす可能性がある。パリティストリップは、リセット後にストライプのデータストリップと整合性を欠くかもしれない。
【０００４】
［詳細な説明］
図１は、本発明の各種実施例による装置１００及びシステム１９０のブロック図である。装置１００は、不揮発性データ記憶媒体１１６にログファイル１１２を生成するパーシャルパリティログ処理モジュール１０６を有するかもしれない。ログファイル１１２は、ＲＡＩＤサブシステム１３０にストライプ１２４に係る１以上のパーシャルパリティ値１２０を有するかもしれない。ＲＡＩＤサブシステム１３０は、ＲＡＩＤレベル３、ＲＡＩＤレベル４、ＲＡＩＤレベル５、ＲＡＩＤレベル６、ＲＡＩＤレベル３０、ＲＡＩＤレベル５０若しくは他の何れかのＲＡＩＤ又はストライプを構成するデータストリップセットから計算される１以上のパリティ値とストリップされたデータを使用する冗長ディスクアレイサブシステムを有するかもしれない。
【０００５】
ストライプ１２４は、動作中の第１ディスクドライブ１３８に設けられた更新対象となる第１データストリップ１３４、故障したディスクドライブに設けられる第２データストリップ１４２、及び動作中のディスクドライブ１５４に設けられたストライプパリティストリップ１５０を有するかもしれない。パーシャルパリティ値１２０は、第１データストリップ１３４とストライプパリティストリップ１５０に対して実行される排他的ＯＲ演算の結果を有するかもしれない。不揮発性データ記憶媒体１１６は、ＲＡＩＤサブシステム１３０に含まれる１以上のディスクドライブに設けられたリザーブドエリア１５８を含むディスクドライブ１５６上のストレージエリアを有するかもしれない。
【０００６】
ログファイル１１２はまた、ストライプパリティストリップ１５０に係るパリティディスクナンバー１６４、データディスクナンバー１６６、論理ブロックアドレス１７０及び第１データストリップ１３４に係るトランスファーバイトカウント１７２を含むかもしれない。このパリティ及びデータストリップ位置情報は、ログファイルのヘッダセクション１７６に見つけられ、パーシャルパリティ値１２０は、ログファイルのメインセクション１８０に見つけられるかもしれない。これらの値は、ログファイルからのパーシャルパリティ値を利用してパリティリストア処理に参加するためのディスクドライブを特定するかもしれない。
【０００７】
装置１００はまた、第１データストリップ１３４とストライプパリティストリップ１５０との間のコンシスタンシをリストアするため、ログ処理モジュール１０６に接続されるパリティリストアモジュール１８２を有するかもしれない。コンシスタンシのリストアは、予期しないサブシステムのリセット後に要求されるかもしれない（例えば、第１データストリップ１３４及びストライプパリティストリップ１５０への更新書き込み１８４を開始した時間と、更新書き込み１８４を完了した時間との間に生じたリセットなど）。リストアは、ログファイル１１２から取得したパーシャルパリティ値１２０と第１データストリップ１３４とに対する排他的ＯＲ演算を実行することを含むかもしれない。
【０００８】
他の実施例が実現されてもよい。例えば、システム１９０は、パーシャルパリティログ処理モジュール１０６、ログファイル１１２及び不揮発性データ記憶媒体１１６を含む装置１００の１以上を有するかもしれない。これは、ＲＡＩＤサブシステム１３０に含まれる１以上のディスクドライブに設けられるリザーブドエリア１５８を有するかもしれない。システム１９０はまた、１以上のパーシャルパリティ値１２０、ストライプ１２４、第１データストリップ１３４、ストライプパリティストリップ１５０、パリティリストアモジュール１８２及び装置１００について説明されたようなＲＡＩＤサブシステム１３０を含むかもしれない。ＲＡＩＤサブシステム１３０は、ＲＡＩＤレベル３、ＲＡＩＤレベル４、ＲＡＩＤレベル５、ＲＡＩＤレベル６、ＲＡＩＤレベル３０、ＲＡＩＤレベル５０若しくは他の何れかのＲＡＩＤ又はストライプを構成するデータストリップセットから計算される１以上のパリティ値とストリップされたデータを使用する冗長ディスクアレイサブシステムを有するかもしれない。
【０００９】
システム１９０はさらに、第１データストリップ１３４に書き込むデータ１９４を提供するため、ログ処理モジュール１０６に接続される１以上のプロセッサ９１２と、データ１９４を表示するため、プロセッサ９１２に接続されるディスプレイ１９６とを有するかもしれない。ディスプレイ１９６は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ、又は液晶ディスプレイ、プラズマディスプレイ若しくは発光ダイオードディスプレイなどのソリッドステートディスプレイから構成されるかもしれない。
【００１０】
システム１９０の一部の実施例は、ＲＡＩＤレベル６サブシステム内の動作中のディスクドライブ１３８に設けられた２次元パリティストリップ１９８を有するかもしれない。２次元パリティストリップ１９８は、第１データストリップ１３４と、おそらく他のすべてを含むストライプ１２４の他のデータストリップとを利用して計算されるかもしれない。パリティリストアモジュール１８２は、予期せぬサブシステムリセットの後（例えば、中断前にＲＡＩＤサブシステムに通知することなくＲＡＩＤサブシステムの処理を中断するなど）、第１データストリップ１３４と２次元パリティストリップ１９８との間の第２コンシスタンシをリストアするのに利用されてもよい。２次元パリティコンシスタンシリストア処理は、リストアされたストライプパリティストリップ値１９９とストライプ１２４のその他のデータストリップとに対して実行される処理を含むかもしれない。
【００１１】
上述されたコンポーネントの何れかは、ソフトウェアによる実施例を含むいくつかの方法により実現可能である。従って、装置１００、パーシャルパリティログ処理モジュール１０６、ログファイル１１２、不揮発性データ記憶媒体１１６、パーシャルパリティ値１２０、ストライプ１２４、ＲＡＩＤサブシステム１３０、データストリップ１３４、１４２、ディスクドライブ１３８、１４６、１５４、１５６、ストライプパリティストリップ１５０、リザーブドエリア１５８、ディスクナンバー１６４、１６６、論理ブロックアドレス１７０、トランスファーバイトカウント１７２、ログファイルのセクション１７６、１８０、パリティリストアモジュール１８２、更新書き込み１８４、システム１９０、プロセッサ１９２、データ１９４、液晶ディスプレイ１９６、２次元パリティストリップ１９８、及びリストアされたストライプパリティストリップ値１９９はすべて、ここでは“モジュール”として特徴付けされるかもしれない。
【００１２】
これらのモジュールは、装置１００及びシステム１９０のアーキテクトによって所望されるように、また各種実施例の実現に対して適切に、ハードウェア回路、シングル若しくはマルチプロセッサ回路、メモリ回路、ソフトウェアプログラムモジュール及びオブジェクト、ファームウェア並びにこれらの組み合わせを含むものであってもよい。従って、これらのモジュールは、ソフトウェア電気信号シミュレーションパッケージ、電力使用及び分配シミュレーションパッケージ、キャパシタンスインダクタンスシミュレーションパッケージ、電力／熱発散シミュレーションパッケージ、信号送受信シミュレーションパッケージ、又は各種可能性のある実施例の処理をシミュレートするのに利用されるソフトウェア及びハードウェアの何れかの組み合わせなど、システムオペレーションシミュレーションパッケージに含まれるようにしてもよい。これらのシミュレーションは、実施例を特徴付け又はテストするのに使用されてもよい。
【００１３】
各種実施例の装置及びシステムは、予期せぬリセットの後に劣化モードＲＡＩＤボリュームにおけるストライプパリティコンシスタンシをリストアする以外のアプリケーションに利用可能であるということが理解されるべきである。このため、本発明の各種実施例はそれほど限定的なものでない。装置１００及びシステム１９０の説明は、各種実施例の構成の一般的な理解を提供することを意図したものであり、ここに記載される構成を利用する装置及びシステムのすべての要素及び特徴の完全な記載として使用されることを意図したものでない。
【００１４】
各種実施例の新規な装置及びシステムを有するアプリケーションは、高速コンピュータに使用される電子回路、通信信号処理回路、モデム、シングル又はマルチプロセッサモジュール、シングル又はマルチ埋め込みプロセッサ、データスイッチ、並びにマルチレイヤ、マルチチップモジュールを含む特定用途向けモジュールを含む。このような装置及びシステムはさらに、テレビ、携帯電話、パーソナルコンピュータ、ワークステーション、ラジオ、ビデオプレーヤー、車両などの各種電子システム内のサブコンポーネントとして含まれるかもしれない。一部の実施例は、いくつかの方法を含むかもしれない。
【００１５】
図２は、本発明の各種実施例による複数の方法２１１を示すフロー図である。このような方法２１１の１つは、ブロック２２３において不揮発性データ記憶媒体にログファイルを生成することにより開始される。不揮発性データ記憶媒体は、ＲＡＩＤサブシステムに含まれる１以上のディスクドライブに設けられるリザーブドエリアを有するかもしれない。上述したように、ＲＡＩＤサブシステムは、ＲＡＩＤレベル３、ＲＡＩＤレベル４、ＲＡＩＤレベル５、ＲＡＩＤレベル６、ＲＡＩＤレベル３０、ＲＡＩＤレベル５０若しくは他の何れかのＲＡＩＤ又はストライプを構成するデータストリップセットから計算される１以上のパリティ値とストリップされたデータを使用する冗長ディスクアレイサブシステムを有するかもしれない。
【００１６】
ログファイルは、ＲＡＩＤサブシステムのストライプに係るヘッダレコード、トレイラレコード及び１以上のパーシャルパリティ値を有するかもしれない。ストライプは、動作中の第１ディスクドライブに設けられる更新対象となる第１データストリップ、故障したディスクドライブに設けられた第２データストリップ、及び動作中のディスクドライブに設けられたストライプパリティストリップを有するかもしれない。ストライプパリティストリップは、第１データストリップとストライプに含まれる追加的なデータストリップとを用いて計算されるパリティ値を有するかもしれない。
【００１７】
方法２１１は、ブロック２３１において動作中の第１ディスクドライブから第１データストリップを読み込み、ブロック２３７においてＲＡＩＤサブシステムからストライプパリティストリップを読み込むことにより続けられるかもしれない。方法２１１はまた、ブロック２４１において、おそらく第１データストリップ及びストライプパリティストリップに対して排他的ＯＲ関数を実行することによって、第１データストリップとストライプパリティストリップから１以上のパーシャルパリティ値を計算することを含むかもしれない。方法２１１はさらに、ブロック２４５において、第１データストリップに係るパリティディスクナンバー、データディスクナンバー、論理ブロックアドレス及びトランスファーバイトカウントのログファイルのヘッダレコードへの書き込みを含むかもしれない。
【００１８】
方法２１１は、ブロック２５１において、ライトスループットを向上させるため、ログファイルへのパーシャルパリティ値の書き込みを集め、ブロック２５５において、ログファイルのメインセクションへのパーシャルパリティ値を書き込むことにより続けられるかもしれない。方法２１１はまた、ブロック２５９において、メインセクションへのパーシャルパリティ値の書き込み後にログファイルにおいてヘッダレコードをトレイラレコードにコピーし、ブロック２６１において、ログファイルからのヘッダレコードがパーシャルパリティ値に関連付けされていることを確認するのに使用されるデジタルシグネチャをログファイルに書き込むことを含むかもしれない。
【００１９】
データストリップセットに対する更新セットが、ログファイルのヘッダコンテンツをログファイルのトレイラセクションにコピーすることを含み、更新セットに対応するログファイルへの書き込みを完了させると、ディスクに書き込みされるかもしれない。このため、ヘッダとトレイラとの比較は、データストリップディスクライトセットが実行中か又はまだ開始されていないかに関する表示を提供するかもしれない。データストリップディスクライトセットは、データストリップ更新セットに対応するログファイルへのパーシャルパリティライトが完了し、ヘッダコンテンツがトレイラセクションにコピーされ、ヘッダとトレイラが等しくなった後にスタートしたと考えられるかもしれない。このため、ヘッダとトレイラが等しくない場合、ログファイルは更新実行中とみなされ、データストリップライトセットはスタートしていないかもしれない。
【００２０】
方法２１１はさらに、第１データストリップ及びストライプパリティストリップへの更新書き込みの開始時と当該更新書き込みの完了時との間にリセットが行われたか判断するため、予期せぬサブシステムのリセットとの後に、ヘッダレコードとトレイラレコードとを比較するブロック２６３に続く。パリティコンシスタンシがリストアを要求する場合、方法２１１は、ブロック２６５においてパーシャルパリティ値に係るログファイルからデジタルシグネチャを読み込み、ブロック２６６においてログファイルからのヘッダレコードがパーシャルパリティ値に関連付けされていることを確認するため、デジタルシグネチャを検証することに続く。
【００２１】
クレームの方法２１１はまた、ブロック２６７において、予期せぬサブシステムのリセット後に、ログファイルを使用して第１データストリップとストライプパリティストリップとの間の第１コンシスタンシをリストアすることを含むかもしれない。第１コンシスタンシのリストアは、ブロック２７１において、ログファイルからパーシャルパリティ値、ストライプパリティストリップセット及び第１データストリップ位置の値を読み込むかもしれない。方法２１１は、ブロック２７５において、動作中の第１ディスクドライブから第１データストリップを読み込むことに続くかもしれない。方法２１１は、ブロック２７９においてリストアされたストライプパリティストリップ値を取得するため、おそらくパーシャルパリティ値と第１データストリップに対して排他的ＯＲ演算を実行することを含む第１パリティリストア処理を実行することを含むかもしれない。方法２１１はまた、ブロック２８３において、リストアされたストライプパリティ値によってストライプパリティストリップを上書きすることを含むかもしれない。
【００２２】
ログファイルは、２次元パリティストリップが第１データストリップを用いて計算されるＲＡＩＤレベル６サブシステムにおいて生成されるようにしてもよい。方法２１１は、ブロック２８７において、リストアされた２次元パリティストリップ値を生成するため、ストライプのすべてのデータストリップとリストアされた２次元パリティストリップ値に対して第２パリティリストア処理を実行することを含むかもしれない。方法２１１は、ブロック２９１において、リストアされた２次元パリティストリップ値により２次元パリティストリップを上書きすることにより終了するかもしれない。
【００２３】
ここに記載された方法は、説明された順序によって又は何れか特定の順序によって実行される必要はない。さらに、ここで特定された方法に関して説明された各種活動は、繰り返し的、逐次的又は並列的に実行可能である。パラメータ、コマンド、オペランド及び他のデータを含む情報は、１以上の搬送波の形式により送受信することが可能である。
【００２４】
当業者は、ソフトウェアプログラムに規定されるファンクションを実行するため、ソフトウェアプログラムがコンピュータベースシステムにおいてコンピュータ可読媒体から起動可能な方法を理解している。ここに記載された方法を実現及び実行するため設計された１以上のソフトウェアプログラムを生成するため、各種プログラミング言語が利用可能である。プログラムは、Ｊａｖａ（登録商標）やＣ＋＋などのオブジェクト指向言語を用いてオブジェクト指向フォーマットにより構成されてもよい。あるいは、プログラムは、アセンブリやＣなどの手続き型言語を用いて手続指向フォーマットにより構成することも可能である。ソフトウェアコンポーネントは、リモートプロシージャの呼び出しを含むプロセス間通信技術やアプリケーションプログラムインタフェースなど、当業者に周知ないくつかのメカニズムを利用して通信するようにしてもよい。各種実施例の教示は、何れか特定のプログラミング言語又は環境に限定されるものでない。従って、以下の図３に関して説明されるように、他の実施例が実現されてもよい。
【００２５】
図３は、本発明の各種実施例による物３８５のブロック図である。このような実施例は、コンピュータ、メモリシステム、磁気若しくは光ディスク、他の記憶装置又は何れかのタイプの電子装置若しくはシステムから構成されるかもしれない。もの３８５は、メモリ３８９（電気、光又は電磁素子を含むメモリなど）などのマシーンアクセス可能媒体に接続される１以上のプロセッサ３８７を含むかもしれない。当該媒体は、アクセス時に、マシーン（プロセッサ３８７など）に不揮発性データ記憶媒体においてログファイルを生成される関連する情報３９１（コンピュータプログラム命令、データ又はその両方など）を含むかもしれず、ログファイルは、ＲＡＩＤサブシステムのストライプに係る１以上のパーシャルパリティ値、ヘッダレコード及びトレイラレコードを有する。ストライプは、動作中の第１ディスクドライブに設けられた更新対象となる第１データストリップ、故障したディスクドライブに設けられた第２データストリップ、及び動作中のディスクドライブに設けられたストライプパリティストリップを有するかもしれない。
【００２６】
他の動作として、動作中の第１ディスクドライブからの第１データストリップの読み出し、ＲＡＩＤサブシステムからのストライプパリティストリップの読み出し、及び第１データストリップとストライプパリティストリップからのパーシャルパリティ値の計算が含まれるかもしれない。動作としてはまた、第１データストリップに係るパリティディスクナンバー、データディスクナンバー、論理ブロックアドレス及びトランスファーバイトカウントのログファイルのヘッダレコードへの書き込み、並びにログファイルのメインセクションへのパーシャルパリティ値の書き込みが含まれるかもしれない。さらなる動作として、メインセクションへのパーシャルパリティ値の書き込み後のログファイルのヘッダレコードのトレイラレコードへのコピー、及びログファイルからのヘッダレコードがパーシャルパリティ値に関連付けされていることを確認するのに使用されるログファイルへのデジタルシグネチャの書き込みが含まれるかもしれない。
【００２７】
動作としてはまた、第１データストリップ及びストライプパリティストリップへの更新書き込みの開始時と当該更新書き込みの完了時との間の期間中にリセットが行われたか判断するため、予期せぬサブシステムリセットの後にヘッダレコードとトレイラレコードとを比較することが含まれるかもしれない。さらなる動作として、パーシャルパリティ値に係るログファイルからのデジタルシグネチャの読み出しと、ログファイルからのヘッダレコードがパーシャルパリティ値に関連付けされているか確認するため、デジタルシグネチャを検証することが含まれるかもしれない。
【００２８】
さらなる動作として、予期せぬサブシステムのリセット後に、ログファイルを用いて第１データストリップとストライプパリティストリップとの間のコンシスタンシをリストすることが含まれるかもしれない。上記動作は、ログファイルからパーシャルパリティ値、ストライプパリティストリップセット及び第１データストリップ位置の値の読み出しを含むかもしれない。上記動作はまた、動作中の第１ディスクドライブからの第１データストリップの読み出し、リストアされたストライプパリティストリップ値を取得するため、パーシャルパリティ値と第１データストリップに対するパリティリストア処理の実行、及びリストアされたストライプパリティストリップ値によりストライプパリティストリップの上書きが含まれるかもしれない。
【００２９】
ここに記載された装置、システム及び方法の実現は、ストライプに係るデータ若しくはパリティストリップへの更新中、予期せぬリセットの後において劣化モードＲＡＩＤボリュームにおけるストライプパリティコンシスタンシをリストするのに作用するかもしれない。
【００３０】
一部を構成する添付した図面は、限定的でなく例示によって、その内容が実現可能な具体的な実施例を示している。図示された実施例は、当業者がここに記載された教示を実践することを可能にするのに十分詳細に説明されている。構成的及び論理的置換及び変更が本開示の範囲から逸脱することなく可能となるように、他の実施例が利用及びそれから導出されてもよい。このため、この詳細な説明は、限定的なものとして解釈されるものでなく、様々な実施例の範囲は、添付した請求項が権利付与された均等の十分な範囲と共に、添付した請求項によってのみ規定されるものである。
【００３１】
本発明の内容の上記実施例は、実際に複数開示される場合には、何れか１つの発明若しくは発明概念に本出願の範囲を自発的に制限することを意図せず、単に便宜上“発明”という用語によって個別に又はまとめて参照されるかもしれない。ここでは具体的な実施例が図示及び説明されたが、同一の目的を達成するため計算される何れかの構成が図示された具体的な実施例に置換可能である。本開示は、各種実施例の何れか及びすべての適応及び変形をカバーすることを意図している。上記実施例の組み合わせ及びここには具体的に説明されていない他の実施例は、上記記載を参照することにより当業者に明らかであろう。
【００３２】
開示の要約は、読者が技術的な開示の本質を迅速に確認することを可能にする要約を要求した３７  Ｃ．Ｆ．Ｒ．§１．７２（ｂ）に準拠するよう提供されている。それは請求項の範囲又は意義を解釈又は制限するのに利用されないという理解の下に提出されている。さらに、上記詳細な説明では、各種の特徴は開示を簡略化するため１つの実施例においてまとめてグループ化されていることが理解される。この開示方法は、各請求項に明示的に記載されているより多くの特徴を要求すると解釈されるものでない。むしろ、本発明の内容は、開示された１つの実施例のすべての特徴より少ないものにおいて見出されるかもしれない。従って、以下の請求項は、各請求項が異なる実施例としてそれ自体成り立つことによって、詳細な説明に含まれる。
【図面の簡単な説明】
【００３３】
【図１】図１は、本発明の各種実施例による装置及び典型的なシステムのブロック図である。
【図２】図２は、本発明の各種実施例によるいくつかの方法を示すフロー図である。
【図３】図３は、本発明の各種実施例による物のブロック図である。
【図１】
2008539474.tif 000002
【図２】
2008539474.tif 000003
【図３】
2008539474.tif 000004