JP2006114039A - 入出力オペレーションのエラー回復 - Google Patents
入出力オペレーションのエラー回復 Download PDFInfo
- Publication number
- JP2006114039A JP2006114039A JP2005296003A JP2005296003A JP2006114039A JP 2006114039 A JP2006114039 A JP 2006114039A JP 2005296003 A JP2005296003 A JP 2005296003A JP 2005296003 A JP2005296003 A JP 2005296003A JP 2006114039 A JP2006114039 A JP 2006114039A
- Authority
- JP
- Japan
- Prior art keywords
- error recovery
- input
- storage device
- level
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 168
- 238000000034 method Methods 0.000 claims abstract description 105
- 238000010348 incorporation Methods 0.000 claims 2
- 230000001902 propagating effect Effects 0.000 claims 2
- 238000007726 management method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】本発明にかかる方法は、ユーザによりストレージデバイスの入出力オペレーションのエラー回復レベルを選択し、入出力オペレーションを実行する要求を受信し、入出力オペレーションを試み、入出力オペレーションが失敗に終わったときに、ユーザによって指定されたエラー回復レベルを実行する。また、本発明にかかるストレージデバイスは、データを記憶するためのストレージ媒体と、ストレージ媒体に接続され、ストレージデバイスのオペレーションを制御する制御回路と、制御回路に関連付けられ、すべての入出力オペレーションに使用され、ユーザにより異なる複数から選択されて入力されるエラー回復レベルを有するエラー回復機能とを備える。
【選択図】図2A
Description
しかしながら、ドライバサブシステムは、入出力(I/O)オペレーションを常に完了できるとは限らない。
場合により、ドライバサブシステムは、データの読み出し又は書き込みの試みが所与の回数成功しなかった後、要求されたI/Oオペレーションを完了しない可能性がある。
しかし、他のシステムは、故障を認識することもできないし、I/Oオペレーション中の故障を無視するように選択することもできない。
これらの場合、ドライバサブシステムは、読み出しオペレーション又は書き込みオペレーションを継続的又は無制限に試みることがある。
故障したストレージデバイスの影響を軽減する一方法は、複数のロケーションにデータのコピーを書き込むことである。
この方法では、I/Oの故障がデータのどの所与の部分に発生しても、そのデータは、依然として別のロケーションで利用可能である。
I/Oスタックのこのレイヤは、一般に、論理ストレージマネージャ(LSM(Logical Storage Manager))又は論理ボリュームマネージャ(LVM(Logical Volume Manager))として知られている。
また、ハードウェアも、この冗長性を提供するように開発されてきた。
これらのストレージデバイスは、独立(又は安価)ディスク冗長アレイコントローラ、すなわちRAIDコントローラとして知られている。
一般に、I/OオペレーションがLSM/LVMレイヤから、下にあるデバイスドライバへ発行されると、デバイスドライバは、そのI/Oオペレーション、あらゆるエラー回復、又は再試行を制御する。
これと同じことは、デバイスドライバがそのデバイス自身(RAIDコントローラを含む)へI/Oを発行した場合にも当てはまり、デバイスは、その後、I/O、あらゆるエラー回復、又は再試行を制御する。
この方法は、SCSIエラー回復モードページを介し、オペレーティングシステムを通じて実行される。
しかしながら、多くのストレージデバイス及びオペレーティングシステムは、この方法を十分に実施しない。
これに加えて、この方法は、I/Oごとに使用されると、性能をかなり低下させることになり得る。
エラー回復が、下にあるハードウェアデバイスドライバ又はソフトウェアデバイスドライバによって起動されると、その回復によって、アプリケーションのI/Oオペレーションの完了が不必要に遅延されることがある。
例えば、ミラーリングしている状況では、一方のユニットが故障し始めると、その故障し始めているユニットにおいてエラー回復を開始するよりも、代わりのデータセットへ切り換える方が好まれることがある。
しかしながら、階層化されたプロトコルスタックは、一般に、境界交差を禁止しているので、下にあるデバイスドライバが、エラー回復を行うべき時及び行うべきでない時を知ることは望ましくなく、ハードウェアにあってはそれを知ることすらできない。
LSM/LVMレイヤは、各I/Oオペレーションが許可される時間量を決定し、この時間を(実際のタイミングが発生する)下位レイヤに指定する。
次に、デバイスドライバはその時間内にI/Oを完了する。
デバイスドライバは成功してデータを返すか、又は、I/Oが終了されて、失敗が返される。
しかしながら、この解決法は、デバイスドライバレイヤにかなりの複雑さを追加する。
デバイスドライバは、I/Oオペレーションを終了するのに要する時間を求めなければならず(いくつかのI/Oプロトコルを使用する場合には、使用する正確な値を求めることさえ可能でない場合がある)、求めた時間を、ユーザが要求した制限時間から差し引かなければならない。
例えば、LSM/LVMレイヤが、20秒の制限時間を要求するが、デバイスドライバがI/Oを終了するのに5秒を要する場合、I/Oを実行するのに15秒しか使用することができない。
15秒後には、I/Oは終了され、次いで、指定された20秒の制限前に、I/Oは失敗ステータスで返される可能性がある。
一例示の実施の形態では、方法は、ユーザによって、ストレージデバイスの入出力オペレーションのエラー回復レベルを選択すること、入出力オペレーションを実行する要求を受信すること、入出力オペレーションを試みること、及び、入出力オペレーションが失敗に終わった場合に、ユーザによって指定されたエラー回復レベルを実行すること、を含む。
このストレージデバイスは、データを記憶するためのストレージ媒体と、ストレージ媒体に接続され、ストレージデバイスのオペレーションを制御する制御回路と、制御回路に関連付けられたエラー回復機能であって、すべての入出力オペレーションに使用するエラー回復レベルを有する、エラー回復機能と、を備え、エラー回復レベルは、複数の異なるエラー回復レベルから選択されて、ユーザから入力される。
この方法は、入出力オペレーションの要求を受信すること、入出力オペレーションが失敗に終わった場合に、使用するエラー回復レベルを決定すること、エラー回復レベルを示す状態信号を、入出力オペレーションを実行するコマンドに組み込むこと、及び、コマンドを発行すること、を含む。
添付図面では、参照は、本発明による実施の形態を実施できる図に特有の例示の実施の形態として示されている。
これらの実施の形態は、例示であって、当業者が本発明を実施することを可能にするために十分詳細に説明されている。
したがって、以下の詳細な説明は、限定する意味に解釈されるべきではない。
本発明の実施の形態は、入出力(I/O)オペレーションのエラー回復の調節、調整、又は選択を可能にするものである。
例えば、エラー回復レベルの選択的な調節を使用して、失敗に終わったI/Oオペレーションから回復することができる。
以下の節IIでは、失敗に終わったI/Oオペレーションに使用されるエラー回復レベルが、例えば管理インターフェースを通じてユーザにより選択される例示の一実施の形態を説明する。
この実施の形態によって、オペレーティングシステムが直接的に関与することなく、エラー回復技法を変更することが可能になる。
この実施の形態では、エラー回復レベルが、ストレージデバイスのすべてのI/Oオペレーションについて全体的に設定されるか、又は、ストレージデバイスの個々のサブユニット(SCSI LUNや論理ユニット等)について設定される。
以下の節IIIでは、エラー回復レベルが、I/Oコマンドに組み込まれた信号を使用してI/Oごとに選択される例示の一実施の形態を説明する。
この組み込まれた信号は、一実施の形態では、ストレージデバイスにおいて実行されるエラー回復手順を制御する。
別の実施の形態では、この組み込まれた信号は、オペレーティングシステムのデバイスドライバで実行されるエラー回復手順、又は、I/Oが通過しなければならないI/Oスタックの他の或るレベルで実行されるエラー回復手順を制御する。
<直接的なオペレーティングシステムの関与を伴わない場合>
図1は、全体を100で示す情報システムのブロック図である。
この情報システムは、失敗に終わった入出力オペレーションに使用されるエラー回復技法の調節を可能にするストレージデバイス102を有する。
ストレージデバイス102は、ホストシステム104に接続されている。
ホストシステム104は、例えば、ストレージデバイスにデータを記憶するコンピュータ、ネットワーク、又は他の適切な電子回路である。
また、ストレージデバイス102は、当該ストレージデバイス102の態様を構成するのに使用される管理ツール又はインターフェース106にも接続されている。
一実施の形態では、管理ツール106は、直接接続を介してストレージデバイス102に接続されている管理コンソールを備える。
他の実施の形態では、管理ツール106は、コマンドラインインターフェース又はグラフィカルユーザインターフェース(GUI)としてストレージデバイス102に提供される。
一実施の形態では、管理ツール106は、ホストシステム104においてアプリケーションとして実行される。
ストレージデバイス102が複数のLUNで実施される場合、エラー回復技法の調節は、LUNごとに独立に制御することができる。
したがって、この明細書においては、用語「ストレージデバイス」は、物理的に独立したストレージデバイスもカバーするように意図されているし、同じ物理デバイスに存在するLUNの少なくとも一部で実施される複数のLUNもカバーするように意図されている。
一実施の形態では、ストレージ媒体110には、磁気ディスク、光ディスク、テープ、フラッシュメモリ、又はデータの電子記憶に適した他の媒体の1つ又は複数が含まれる。
制御回路108は、ソフトウェア、ハードウェア、又はファームウェアの1つ又は複数として実施される。
制御回路108は、一態様では、エラー回復機能112を含む。
エラー回復機能112は、制御回路108によって実行された入出力オペレーションが失敗に終わった場合に実行されるエラー回復オペレーションを制御する。
一実施の形態では、エラー回復レベルが、管理ツール106を通じて選択され、すべての入出力オペレーションについて選択されたレベルに設定される。
一実施の形態では、管理ツール106は、異なるエラー回復レベルを有する2つの状態から選択を行うのに使用される。
一方の状態では、エラー回復機能112がエラー回復を制限できるようにされる。
例えば、この状態では、入出力オペレーションが失敗に終わった場合に、エラー回復はエラーを返すことに制限される。
他方の状態では、より高いエラー回復レベルが提供される。
この状態では、例えば、エラー回復機能112が、入出力オペレーションの実行を複数回(指定された回数等)、或いは、場合によっては無制限に試行できるようにされる。
したがって、一実施の形態では、これら2つの状態は、エラーが返される前に試行されたエラー回復の試みの回数によって区別され、一方の状態では、エラー回復の試みが多く行われ、他方の状態では、エラー回復の試みがあまり行われない。
一実施の形態では、ストレージ媒体110に記憶されたデータが別のストレージデバイスでも利用可能である場合に、管理コンソールは、エラー回復オペレーションの実行が少ない方の状態を選択するのに使用される。
さらに、ストレージ媒体110に記憶されたデータが他の場所で利用可能でない場合には、エラー回復オペレーションの実行が多い方の状態が選択される。
したがって、ホストシステム104のオペレーティングシステムは、ストレージ媒体110のデータの状態について独立して知っている必要はない。
さらに、ホストシステム104は、データを取り出す際に別のことを何ら行う必要がない。
したがって、既存のオペレーティングシステムを変更する必要なく、オペレーティングシステムプラットフォームの全体にわたって、エラー回復のさまざまな状態を使用することができる。
この方法はブロック200で開始する。
ブロック200において、ストレージデバイスに対する失敗に終わった入出力オペレーションに使用されるエラー回復レベルが、そのストレージデバイスによって実行されるすべての入出力オペレーションについて選択される。
一実施の形態では、このエラー回復レベルの選択は、管理インターフェースを通じてユーザにより行われる。
このようなエラー回復レベルの選択によって、オペレーティングシステムの標準オペレーションを何ら変更することなく、多種多様なオペレーティングシステムにわたってこの方法を適用することが可能になる。
選択が行われると、選択されたエラー回復レベルに適合するように、ストレージデバイスの適切なパラメータが更新される。
ブロック202において、この方法は、I/O要求が受信されているかどうかを判断する。
一実施の形態では、I/O要求には、ストレージデバイスからデータを読み出す要求、及び、ストレージデバイスへデータを書き込む要求が含まれる。
利用可能なI/O要求が存在しない場合、このプロセスはブロック202に戻って、ブロック202においてI/O要求を待つ。
一方、I/O要求が存在する場合、この方法はブロック204に進む。
ブロック204において、この方法は、ストレージデバイスでI/Oオペレーションを試みる。
この方法は、ブロック206において、I/Oオペレーションにエラーがあるかどうかを判断する。
エラーがない場合、I/Oオペレーションは完了し、成功指示子が返され、そして、この方法はブロック202に戻る。
一方、I/Oオペレーションにエラーがある場合、この方法はブロック208に進む。
この方法は、ストレージデバイスについて選択された状態のエラー回復レベルを決定する。
選択された状態がエラー回復を許可するものである場合、このプロセスはブロック204に戻って、I/Oオペレーションを再試行する。
一方、状態がエラー回復を許可するものでない場合、このプロセスはブロック202に戻る。
さらに、このプロセスは、I/Oオペレーションが失敗に終わったことを示すエラーメッセージを返す。
この実施の形態は、2つのエラー回復レベルを用いて説明してきた。
他の実施の形態では、3つ以上のエラー回復レベルが使用され、それにより、関与したアプリケーション及びデータに基づいて、再試行しない場合と無制限に再試行する場合の両極端の間のエラー回復レベルが提供される。
この方法はブロック250で開始する。
ブロック250において、ストレージデバイスに対する失敗に終わった入出力オペレーションに使用されるエラー回復レベルが、そのストレージデバイスによって実行されるすべての入出力オペレーションについて選択される。
一実施の形態では、このエラー回復レベルの選択は、管理インターフェースを通じてユーザにより行われる。
このようなエラー回復レベルの選択によって、オペレーティングシステムの標準オペレーションを何ら変更することなく、多種多様なオペレーティングシステムにわたってこの方法を適用することが可能になる。
選択が行われると、選択されたエラー回復レベルに適合するように、ストレージデバイスの適切なパラメータが更新される。
ブロック252において、この方法は、I/O要求が受信されているかどうかを判断する。
一実施の形態では、I/O要求には、ストレージデバイスからデータを読み出す要求、及び、ストレージデバイスへデータを書き込む要求が含まれる。
利用可能なI/O要求が存在しない場合、このプロセスはブロック252に戻って、ブロック252においてI/O要求を待つ。
一方、I/O要求が存在する場合、この方法はブロック254に進む。
ブロック254において、この方法は、ストレージデバイスでI/Oオペレーション(再試行及びエラー回復を含む)を試みる。
この方法は、ブロック256において、I/Oオペレーションにエラーがあるかどうかを判断する。
エラーがない場合、I/Oオペレーションは完了し、成功指示子が返され、そして、この方法はブロック252に戻る。
一方、I/Oオペレーションにエラーがある場合、この方法はブロック258に進む。
この方法は、エラー回復レベルが低いと判断すると、ブロック262に進む。
ブロック262において、この方法は、致命的エラー表示をホストのオペレーティングシステムに返し、ブロック252に戻る。
一方、この方法は、ブロック258において、高い方のエラー回復レベルが選択されていると判断すると、ブロック260に進み、「再試行」メッセージをオペレーティングシステムに返す。
この時点で、この方法は、ブロック252に戻り、要求されたI/Oオペレーションを待つ。
この実施の形態は、2つのエラー回復レベルを用いて説明してきた。
他の実施の形態では、3つ以上のエラー回復レベルが使用され、それにより、関与したアプリケーション及びデータに基づいて、再試行しない場合と無制限に再試行する場合の両極端の間のエラー回復レベルが提供される。
図3は、失敗に終わった入出力(I/O)オペレーションのシステムのエラー回復メカニズムの調節をI/Oごとに可能にする、全体を300で示すシステムの一実施の形態のブロック図である。
このシステム300は、アプリケーション308によって代表されるアプリケーション、及び、オペレーティングシステム306を実行するホストシステム302を含む。
アプリケーション308は、オペレーティングシステム306の制御下でデータの記憶及び取り出しを行う。
オペレーティングシステム306は、ストレージデバイス304−1〜304−Nにデータを記憶する。
システム300は、2つのストレージデバイスを有するものとして示されている。
任意の適切な個数のストレージデバイスが特定のシステムに含まれ、アプリケーションは、2つのストレージデバイスと共に使用することに限定されないことを理解されたい。
さらに、一実施の形態では、ストレージデバイス304−1〜304−Nが、物理的に分離したストレージデバイスを備えることを理解されたい。
他の実施の形態では、ストレージデバイス304−1〜304−Nは、同じ物理デバイスの一部の場合がある論理ユニット(LUN)を備える。
LUNの場合、失敗に終わったI/Oオペレーションに使用されるエラー回復メカニズムは、LUNが同じ物理デバイスに存在する場合であっても、LUNごとに独立に調節することができる。
したがって、上述したように、この明細書で使用されるストレージデバイスという用語は、独立した物理デバイス全体に限定されるものではない。
そうではなく、この用語は、独立した物理デバイス全体だけでなく、物理デバイスの一部もカバーする。
オペレーティングシステムの或るレイヤは、従来から、論理ストレージマネージャ又は論理ボリュームマネージャ(LSM/LVM)レイヤ310と呼ばれている。
このレイヤは、故障したストレージデバイスの影響を軽減するために部分的に開発されたものである。
基本的に、LSM/LVMレイヤ310は、ストレージデバイス304−1〜304−Nの複数のロケーションにアプリケーション308のデータのコピーを記憶する。
したがって、アプリケーション308は、複数のロケーションからトランスペアレントにデータを読み出すことができ、複数のロケーションへトランスペアレントにデータを書き込むことができる。
これによって、アプリケーション308は、ストレージデバイス304−1〜304−Nの1つが故障しても、データにアクセスすることが可能になる。
これらのドライバインスタンスは、オペレーティングシステム306とストレージデバイス304−1〜304−Nとの間のインターフェースとして動作する。
オペレーティングシステム306は、エラー回復レベルを選択する信号をI/Oコマンドに組み込むことによって、I/Oごとにエラー回復レベルを調整する。
したがって、冗長データが、要求されたI/Oオペレーションを満たすのに利用可能である場合、オペレーティングシステムが入出力の失敗によってハング状態になる可能性が低減される。
一実施の形態では、オペレーティングシステム306のLSM/LVMレイヤ310は、デバイスドライバ312−1〜312−Nを通じてストレージデバイス304−1〜304−Nにより実行されるエラー回復レベルを制御する。
他の実施の形態では、オペレーティングシステム306のLSM/LVMレイヤ310は、デバイスドライバ312−1〜312−Nによって実行されるエラー回復レベルを制御する。
さらに、一実施の形態では、エラー回復レベルは、システム300のさまざまなレベルを通って伝播するにつれて調節される。
例えば、オペレーティングシステム306は、例えばデバイスドライバ312−1といったデバイスドライバに対して、高いエラー回復レベルでエラー回復レベルを設定することができる。
デバイスドライバ312−1は、このエラー回復レベルを、ストレージデバイス304−1に、同じエラー回復レベルとして渡すこともできるし、又は例えばそれよりも低いエラー回復レベルといった異なるエラー回復レベルとして渡すこともできる。
したがって、エラー回復レベルは、オペレーティングシステムから物理デバイスへI/Oスタックの各レイヤを通って伝播するにつれて変化することがある。
この実施の形態では、エラー回復機能112が、失敗に終わったI/Oオペレーションのエラー回復を実行する際に使用するエラー回復レベルを選択する、組み込まれた信号を受信する。
この実施の形態では、エラー回復レベルは、I/Oごとに選択される。
その後、任意の所与の時刻において、ストレージデバイス304−1〜304−Nは、異なるエラー回復レベルを有するI/Oオペレーションを同時に処理することができる。
この方法は、I/O要求が、例えばアプリケーション308から受信された時に、ブロック400において開始する。
ブロック402において、このプロセスは、I/Oオペレーションについてエラー回復レベルを決定して指定する。
一実施の形態では、このプロセスは、冗長データの可用性に基づいてエラー回復レベルを決定する。
例えば、I/O要求が、データが複数のロケーションに記憶されるアプリケーションに関係するものである場合、このプロセスは、低いエラー回復レベル、例えば、I/Oオペレーションが失敗に終わった時にエラーが返されて、再試行が実行されないエラー回復レベルを設定する。
データが冗長ロケーションに記憶されない場合、高い方のエラー回復レベルが選択され、例えば、I/Oオペレーションが複数回(場合によっては、I/Oオペレーションが成功するまで)再試行される状態が選択される。
他の実施の形態では、3つ以上のエラー回復レベルが使用され、それにより、関与したアプリケーション及びデータに基づいて、再試行しない場合と無制限に再試行する場合の両極端の間のエラー回復レベルが提供される。
ブロック404において、このプロセスは、エラー回復レベルを示す信号をI/Oコマンドに組み込む。
例えば、このプロセスは、I/Oコマンドの1ビット又は2ビット以上のビットを設定して、I/Oオペレーションが失敗に終わった場合に使用するエラー回復レベルを示す。
一実施の形態では、I/Oコマンドは、読み出しコマンド、書き込みコマンド、検証、及び他のあらゆる適切な媒体アクセスコマンドのうちの1つを含む。
ブロック406において、このコマンドは発行される。
例えば、一実施の形態では、コマンドは、LSM/LVMレイヤによってデバイスドライバへ発行され、そのデバイスドライバで実行されるエラー回復を制御する。
他の実施の形態では、コマンドは、デバイスドライバからストレージデバイスへ発行され、そのデバイスにおけるエラー回復を制御する。
図5は、オペレーティングシステムから受信された、組み込まれた信号に基づいて、ストレージデバイスにおけるI/Oオペレーションのエラー回復を調節するための方法のフローチャートである。
この方法は、ブロック500において開始し、I/Oオペレーションの要求、例えば、読み出しオペレーション、書き込みオペレーション、又は他のあらゆる適切な媒体アクセスコマンドを受信する。
ブロック502において、この方法は、失敗に終わったI/Oオペレーションのエラー回復オペレーションの状態を示す信号をコマンドから抽出する。
一実施の形態では、この状態信号は、I/Oコマンドの1ビット又は2ビット以上のビットとして組み込まれている。
ブロック504において、この方法は、要求されたI/Oオペレーションを試みる。
ブロック506において、この方法は、I/Oオペレーションが失敗に終わったかどうかを判断する。
この方法は、I/Oオペレーションが成功したと判断すると、ブロック510において終了し、成功指示子がオペレーティングシステムに返される。
一方、この方法は、I/Oオペレーションが失敗に終わったと判断すると、ブロック508に進み、ブロック502において抽出されたエラー回復オペレーションの状態信号に基づいて、取るべき次のステップを決定する。
この状態信号が、エラー回復が実行されないことを示している場合、この方法は、ブロック510に進み、ブロック510において完了すると共に、オペレーティングシステムにエラー表示を返す。
一方、この状態信号が、エラー回復が実行されることを示している場合、このプロセスは、ブロック504に戻り、I/Oオペレーションを再試行する。
この方法は、状態信号の条件(terms)に従ってこのプロセスを繰り返す。
例えば、一実施の形態では、状態信号は、I/Oオペレーションの完了を無制限に試行することを示す。
他の状態では、この方法は、I/Oオペレーションが失敗に終わったことを示すエラー信号を返す前に、限られた回数の再試行を試みる。
例えば、SCSIのreadコマンドのバイト1のビット5〜7のいずれか1つ又は複数をこの目的に使用することができる。
一実施の形態では、Nビットが状態信号として使用される場合、最大2N個までのエラー回復レベルの状態が提供される。
このSCSIエラー回復モードページは、「Information Technology - SCSI-3 Block Commands (SBC)」改定8版(1997年2月13日)(以下「sbc−r08」という)という表題のX3T10 ANSI委員会のプロジェクト996Dの標準草案に記載されている。
sbc−r08草案では、オペレーティングシステムがSCSIデバイスによって使用されるエラー回復技法を変更することを可能にするためのモードページが定義されている。
一実施の形態では、この種類の複数のモードページがストレージデバイスに提供され、各状態につき1つが提供される。
特定のI/Oコマンドの状態信号に基づいて、対応するモードページのエラー回復機能が実行される。
図6は、失敗に終わったI/Oオペレーションについてデバイスドライバで使用されるエラー回復技法を調節するための方法のフローチャートである。
この方法は、I/Oオペレーションがアプリケーションによって要求された時、ブロック600において開始する。
ブロック602において、この方法は、失敗に終わったI/Oオペレーションに使用されるエラー回復レベルを決定する。
一実施の形態では、I/O要求に関連したデータが複数のロケーションに記憶されているかどうかに基づいて、エラー回復オペレーションの状態が選択される。
一実施の形態では、この方法は、エラー回復技法の複数の状態の中から1つを選択し、例えば、I/Oオペレーションが失敗に終わった際にI/Oコマンドが何度も(場合によっては、無制限に)再試行される状態、I/Oオペレーションが失敗に終わった際に、エラーが返される別の状態、及び他のエラー回復レベルを有するあらゆる適切な状態の中から1つを選択する。
ブロック604において、この方法は、I/Oオペレーションを実行するためのコマンドを生成する。
このコマンドは、I/Oオペレーションが失敗に終わった場合に実行されるエラー回復オペレーションの選択された状態を示す、組み込まれた信号を含む。
この方法は、実行するために、このコマンドをデバイスドライバに渡す。
一実施の形態では、デバイスドライバは、I/Oオペレーションが失敗に終わった場合に、ストレージデバイスにおいて実行されるエラー回復レベルを示す状態信号を渡す。
他の実施の形態では、デバイスドライバは、組み込まれた状態信号に基づいてエラー回復技法を実行する。
ブロック608において、この方法は、I/Oオペレーションが失敗に終わったかどうかを判断する。
I/Oオペレーションが成功した場合、この方法は、ブロック612において終了し、成功指示子が返される。
一方、この方法は、ブロック608において、I/Oオペレーションが失敗に終わったと判断すると、ブロック610に進み、状態信号に指定されたエラー回復レベルを実行する。
例えば、エラー回復が実行されないことを状態信号が示している場合、このプロセスは、ブロック612においてエラーメッセージを返して終了する。
一方、エラー回復が実行されることを状態信号が示している場合、このプロセスは、ブロック606に戻り、エラー回復レベルを設定している状態信号に従って、指定されたI/Oオペレーションを試みる。
これらの技法を具現する装置は、適切な入力デバイス及び出力デバイス、プログラマブルプロセッサ、並びに、プログラマブルプロセッサによって実行するための、機械可読媒体上のプログラム命令を有形に具現するストレージ媒体を含んでもよい。
これらの技法を具現するプロセスは、プログラマブルプロセッサが、入力データに対して操作を行って適切な出力を生成することにより所望の機能を実行する命令から成るプログラムを実行することによって、実行することができる。
これらの技法は、プログラマブルシステムにおいて実行可能な1つ又は複数のプログラムに実施することができる。
このプログラマブルシステムは、データストレージシステムからデータ及び命令を受信し、且つ、データストレージシステムへデータ及び命令を送信するように接続された少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むものである。
一般に、プロセッサは、読み出し専用メモリ及び/又はランダムアクセスメモリから命令及びデータを受信する。
コンピュータプログラム命令及びデータを有形に具現するのに適した機械可読媒体又はストレージデバイスには、例として、EPROM、EEPROM、フラッシュメモリデバイス等の半導体メモリデバイス、内部ハードディスクやリムーバブルディスク等の磁気ディスク、磁気光ディスク、及びDVDディスクを含めて、あらゆる形式の不揮発性メモリが含まれる。
上記のいずれも、特別設計された特定用途向け集積回路(ASIC)によって補完することもできるし、当該ASICに組み込むこともできる。
104・・・ホストシステム,
106・・・管理ツール,
108・・・制御回路,
110・・・ストレージ媒体,
112・・・エラー回復機能,
302・・・ホストシステム,
304−1,304−N・・・ストレージデバイス,
306・・・オペレーティングシステム,
308・・・アプリケーション,
312−1、312−N・・・デバイスドライバ,
Claims (11)
- ユーザによって、ストレージデバイスの入出力オペレーションのエラー回復レベルを選択する(200)ことと、
前記入出力オペレーションを実行する要求を受信する(202)ことと、
前記入出力オペレーションを試みる(204)ことと、
前記入出力オペレーションが失敗に終わった場合に、前記ユーザによって指定された前記エラー回復レベルを実行する(208)ことと
を含む方法。 - データを記憶するためのストレージ媒体(110)と、
前記ストレージ媒体に接続され、前記ストレージデバイスのオペレーションを制御する制御回路(108)と、
前記制御回路に関連付けられたエラー回復機能(112)であって、
すべての入出力オペレーションに使用するエラー回復レベル
を有するエラー回復機能と
を備え、
前記エラー回復レベルは、複数の異なるエラー回復レベルから選択されて、ユーザから入力される
ストレージデバイス。 - 前記複数の異なるエラー回復レベルは、少なくとも第1のエラー回復レベル及び第2のエラー回復レベルを含み、前記第1のエラー回復レベルは前記第2のエラー回復レベルよりも多くのエラー回復を実行する
請求項2に記載のストレージデバイス。 - ストレージデバイスのエラー回復レベルを設定するユーザコマンドを受信する(200)ことによって、前記ストレージデバイスのエラー回復を調節することと、
前記コマンドが或る状態を示している場合に、失敗に終わった入出力オペレーションについて限られたエラー回復を可能にすることと、
前記コマンドが別の状態を示している場合に、失敗に終わった入出力オペレーションについてより高いエラー回復レベルを可能にすることと
を含む方法。 - 入出力オペレーションの要求を受信する(400)ことと、
前記入出力オペレーションが失敗に終わった場合に、使用するエラー回復レベルを決定する(402)ことと、
前記エラー回復レベルを示す状態信号を、前記入出力オペレーションを実行するコマンドに組み込む(404)ことと、
前記コマンドを発行する(406)ことと
を含む方法。 - 状態信号を前記組み込むことは、
デバイスドライバに発行される入出力コマンドに状態信号を組み込むこと
を含む
請求項5に記載の方法。 - 状態信号を前記組み込むことは、
ストレージデバイスに発行される入出力コマンドに状態信号を組み込むこと
を含む請求項5に記載の方法。 - デバイスドライバにおいて前記コマンドを受信することと、
ストレージデバイスへ前記コマンドを伝播することと
をさらに含む請求項5に記載の方法。 - 前記コマンドを前記伝播することは、
前記組み込まれた状態信号を選択的に変更すること
を含む請求項8に記載の方法。 - 入出力オペレーションの要求を受信する(600)ことと、
前記入出力オペレーションに使用するエラー回復レベルを示す状態信号を前記要求から抽出する(602)ことと、
前記入出力オペレーションを試みる(606)ことと、
前記入出力オペレーションが失敗に終わった場合に、前記抽出した状態信号に基づいてエラー回復オペレーションを実行する(610)ことと
を含む方法。 - データを記憶するためのストレージ媒体(110)と、
前記ストレージ媒体に接続され、前記ストレージデバイスのオペレーションを制御する制御回路(108)と、
前記制御回路に関連付けられたエラー回復機能(112)と、
を備え、
前記エラー回復機能は、前記制御回路によって受信された入出力要求に組み込まれた状態信号を受信し、前記状態信号は、前記入出力要求を実行するのに使用するエラー回復レベルを示す
ストレージデバイス。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/964,862 US7478265B2 (en) | 2004-10-14 | 2004-10-14 | Error recovery for input/output operations |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006114039A true JP2006114039A (ja) | 2006-04-27 |
Family
ID=36182201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005296003A Pending JP2006114039A (ja) | 2004-10-14 | 2005-10-11 | 入出力オペレーションのエラー回復 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7478265B2 (ja) |
JP (1) | JP2006114039A (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945657B1 (en) * | 2005-03-30 | 2011-05-17 | Oracle America, Inc. | System and method for emulating input/output performance of an application |
JP4377313B2 (ja) * | 2004-10-22 | 2009-12-02 | 株式会社日立製作所 | ネットワークシステムにおけるエラーリカバリレベルの最適化 |
GB0426309D0 (en) * | 2004-11-30 | 2004-12-29 | Ibm | Method and system for error strategy in a storage system |
US20070083867A1 (en) * | 2005-09-09 | 2007-04-12 | International Business Machines Corporation | Method and system to recover from control block hangs in a heterogenous multiprocessor environment |
US7958406B2 (en) * | 2006-10-03 | 2011-06-07 | International Business Machines Corporation | Verifying a record as part of an operation to modify the record |
KR100868762B1 (ko) * | 2006-12-01 | 2008-11-17 | 삼성전자주식회사 | 임베디드용 소프트웨어의 오류 검출 방법 |
US9411667B2 (en) | 2012-06-06 | 2016-08-09 | Intel Corporation | Recovery after input/ouput error-containment events |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3715573A (en) * | 1971-04-14 | 1973-02-06 | Ibm | Failure activity determination technique in fault simulation |
US4821228A (en) * | 1986-12-24 | 1989-04-11 | Hewlett-Packard Company | Method and apparatus for computation stack recovery in a calculator |
JPH08505968A (ja) * | 1992-12-23 | 1996-06-25 | タリジェント インコーポレイテッド | コンピュータ・システムでダイアログ・ボックスを実行する方法 |
US5369533A (en) * | 1992-12-30 | 1994-11-29 | International Business Machines Corporation | Data storage device having different storage densities for differing types of data |
JP3628777B2 (ja) | 1995-10-30 | 2005-03-16 | 株式会社日立製作所 | 外部記憶装置 |
US5949973A (en) * | 1997-07-25 | 1999-09-07 | Memco Software, Ltd. | Method of relocating the stack in a computer system for preventing overrate by an exploit program |
US6499050B1 (en) * | 1998-06-09 | 2002-12-24 | Advanced Micro Devices, Inc. | Means used to allow driver software to select most appropriate execution context dynamically |
JP2000148604A (ja) * | 1998-11-12 | 2000-05-30 | Hitachi Ltd | 記憶装置の制御方法 |
US6463509B1 (en) * | 1999-01-26 | 2002-10-08 | Motive Power, Inc. | Preloading data in a cache memory according to user-specified preload criteria |
US6832379B1 (en) * | 1999-08-17 | 2004-12-14 | Emc Corporation | Computer architecture utilizing layered device drivers |
US6594709B1 (en) * | 1999-09-24 | 2003-07-15 | Cisco Technology, Inc. | Methods and apparatus for transferring data using a device driver |
US6687849B1 (en) * | 2000-06-30 | 2004-02-03 | Cisco Technology, Inc. | Method and apparatus for implementing fault-tolerant processing without duplicating working process |
JP2003151214A (ja) | 2001-11-08 | 2003-05-23 | Matsushita Electric Ind Co Ltd | データ記録再生装置 |
US7293030B2 (en) * | 2001-11-29 | 2007-11-06 | Symantec Operating Corporation | Methods, functional data, and systems to represent a storage environment |
US7266538B1 (en) * | 2002-03-29 | 2007-09-04 | Emc Corporation | Methods and apparatus for controlling access to data in a data storage system |
US7076690B1 (en) * | 2002-04-15 | 2006-07-11 | Emc Corporation | Method and apparatus for managing access to volumes of storage |
JP4259036B2 (ja) | 2002-05-14 | 2009-04-30 | 株式会社日立製作所 | ネットワークデータのキャッシュ方法およびシステム |
US20040008360A1 (en) * | 2002-07-11 | 2004-01-15 | Corlene Ankrum | Setting device parameters to values associated with selected device-performable task |
US7340179B2 (en) * | 2002-12-31 | 2008-03-04 | Intel Corporation | Support of dual infrared remote signaling protocols |
US7162550B2 (en) * | 2003-07-21 | 2007-01-09 | Intel Corporation | Method, system, and program for managing requests to an Input/Output device |
EP1533932A1 (en) * | 2003-11-19 | 2005-05-25 | Mitsubishi Denki Kabushiki Kaisha | Error control mechanism for a segment based link layer in a digital network |
US8244974B2 (en) * | 2003-12-10 | 2012-08-14 | International Business Machines Corporation | Method and system for equalizing usage of storage media |
JP2005301639A (ja) * | 2004-04-12 | 2005-10-27 | Hitachi Ltd | Osの障害対応方法およびそのプログラム |
-
2004
- 2004-10-14 US US10/964,862 patent/US7478265B2/en active Active
-
2005
- 2005-10-11 JP JP2005296003A patent/JP2006114039A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US7478265B2 (en) | 2009-01-13 |
US20060085665A1 (en) | 2006-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477681B2 (en) | File management among different zones of storage media | |
US7558839B1 (en) | Read-after-write verification for improved write-once-read-many data storage | |
US9542272B2 (en) | Write redirection in redundant array of independent disks systems | |
US7461176B2 (en) | Method for initialization of storage systems | |
US7908446B2 (en) | Copy system and method using differential bitmap | |
US20050229033A1 (en) | Disk array controller and information processing apparatus | |
CN106168920B (zh) | 控制包括只读闪速数据存储设备的独立磁盘冗余阵列 | |
JP2006114039A (ja) | 入出力オペレーションのエラー回復 | |
JP5712713B2 (ja) | 制御装置、制御方法およびストレージ装置 | |
JP2005100259A5 (ja) | ||
JP2007156597A (ja) | ストレージ装置 | |
JP4783076B2 (ja) | ディスクアレイ装置及びその制御方法 | |
JP4491330B2 (ja) | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム | |
JP2006072435A (ja) | ストレージシステムおよびデータ記録方法 | |
JP2005107838A (ja) | ディスクアレイコントローラ及びログ情報記録方法 | |
JP2007193886A (ja) | ディスク装置、データ書込み制御方法およびコマンド制御方法 | |
JP6052288B2 (ja) | ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム | |
JP2006252165A (ja) | ディスクアレイ装置、及びコンピュータシステム | |
JP5107096B2 (ja) | 情報処理装置および起動制御方法 | |
JP4398596B2 (ja) | ディスクアレイ装置 | |
JP2009252001A (ja) | Raidシステム、及びエラーセクタの修復方法 | |
JP2008065559A (ja) | ストレージ装置、ストレージシステム、ストレージ装置の制御方法 | |
JP2013029911A (ja) | 制御装置、制御方法およびストレージ装置 | |
JP2004185477A (ja) | 光記憶媒体アレイ装置およびデータ転送方法 | |
JP5729043B2 (ja) | ストレージ装置および制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070607 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070907 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20071207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080626 |