JP2006114039A - 入出力オペレーションのエラー回復 - Google Patents

入出力オペレーションのエラー回復 Download PDF

Info

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
Application number
JP2005296003A
Other languages
English (en)
Inventor
Frederick Earl Knight
フレデリック・エール・ナイト
Susan Rundbaken
スーザン・ランドベイクン
Rick Wagner
リック・ワグナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2006114039A publication Critical patent/JP2006114039A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error 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スタックのレイヤが冗長性を追加するように開発されている。
故障したストレージデバイスの影響を軽減する一方法は、複数のロケーションにデータのコピーを書き込むことである。
この方法では、I/Oの故障がデータのどの所与の部分に発生しても、そのデータは、依然として別のロケーションで利用可能である。
I/Oスタックのこのレイヤは、一般に、論理ストレージマネージャ(LSM(Logical Storage Manager))又は論理ボリュームマネージャ(LVM(Logical Volume Manager))として知られている。
また、ハードウェアも、この冗長性を提供するように開発されてきた。
これらのストレージデバイスは、独立(又は安価)ディスク冗長アレイコントローラ、すなわちRAIDコントローラとして知られている。
I/Oオペレーション及び関連したあらゆるエラー回復の制御は、要求を有するレイヤからレイヤを通ってオペレーションを実行する。
一般に、I/OオペレーションがLSM/LVMレイヤから、下にあるデバイスドライバへ発行されると、デバイスドライバは、そのI/Oオペレーション、あらゆるエラー回復、又は再試行を制御する。
これと同じことは、デバイスドライバがそのデバイス自身(RAIDコントローラを含む)へI/Oを発行した場合にも当てはまり、デバイスは、その後、I/O、あらゆるエラー回復、又は再試行を制御する。
小型コンピュータシステムインターフェース(SCSI)デバイスの場合、SCSIストレージデバイスのエラー回復/再試行方法論を確立するための方法が存在する。
この方法は、SCSIエラー回復モードページを介し、オペレーティングシステムを通じて実行される。
しかしながら、多くのストレージデバイス及びオペレーティングシステムは、この方法を十分に実施しない。
これに加えて、この方法は、I/Oごとに使用されると、性能をかなり低下させることになり得る。
アプリケーションは、アプリケーション自身のI/O要求ができるだけ迅速に完了されることを望む。
エラー回復が、下にあるハードウェアデバイスドライバ又はソフトウェアデバイスドライバによって起動されると、その回復によって、アプリケーションのI/Oオペレーションの完了が不必要に遅延されることがある。
例えば、ミラーリングしている状況では、一方のユニットが故障し始めると、その故障し始めているユニットにおいてエラー回復を開始するよりも、代わりのデータセットへ切り換える方が好まれることがある。
しかしながら、階層化されたプロトコルスタックは、一般に、境界交差を禁止しているので、下にあるデバイスドライバが、エラー回復を行うべき時及び行うべきでない時を知ることは望ましくなく、ハードウェアにあってはそれを知ることすらできない。
1つの解決法では、下にあるデバイスドライバが、上位レイヤにタイマを提供する。
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.概要]
本発明の実施の形態は、入出力(I/O)オペレーションのエラー回復の調節、調整、又は選択を可能にするものである。
例えば、エラー回復レベルの選択的な調節を使用して、失敗に終わったI/Oオペレーションから回復することができる。
以下の節IIでは、失敗に終わったI/Oオペレーションに使用されるエラー回復レベルが、例えば管理インターフェースを通じてユーザにより選択される例示の一実施の形態を説明する。
この実施の形態によって、オペレーティングシステムが直接的に関与することなく、エラー回復技法を変更することが可能になる。
この実施の形態では、エラー回復レベルが、ストレージデバイスのすべてのI/Oオペレーションについて全体的に設定されるか、又は、ストレージデバイスの個々のサブユニット(SCSI LUNや論理ユニット等)について設定される。
以下の節IIIでは、エラー回復レベルが、I/Oコマンドに組み込まれた信号を使用してI/Oごとに選択される例示の一実施の形態を説明する。
この組み込まれた信号は、一実施の形態では、ストレージデバイスにおいて実行されるエラー回復手順を制御する。
別の実施の形態では、この組み込まれた信号は、オペレーティングシステムのデバイスドライバで実行されるエラー回復手順、又は、I/Oが通過しなければならないI/Oスタックの他の或るレベルで実行されるエラー回復手順を制御する。
[II.ストレージデバイスにおけるエラー回復]
<直接的なオペレーティングシステムの関与を伴わない場合>
図1は、全体を100で示す情報システムのブロック図である。
この情報システムは、失敗に終わった入出力オペレーションに使用されるエラー回復技法の調節を可能にするストレージデバイス102を有する。
ストレージデバイス102は、ホストシステム104に接続されている。
ホストシステム104は、例えば、ストレージデバイスにデータを記憶するコンピュータ、ネットワーク、又は他の適切な電子回路である。
また、ストレージデバイス102は、当該ストレージデバイス102の態様を構成するのに使用される管理ツール又はインターフェース106にも接続されている。
一実施の形態では、管理ツール106は、直接接続を介してストレージデバイス102に接続されている管理コンソールを備える。
他の実施の形態では、管理ツール106は、コマンドラインインターフェース又はグラフィカルユーザインターフェース(GUI)としてストレージデバイス102に提供される。
一実施の形態では、管理ツール106は、ホストシステム104においてアプリケーションとして実行される。
一実施の形態では、ストレージデバイス102は、複数の論理ユニット(LUN)を備え、したがって、物理的には1つのデバイスであるが、独立に制御される複数のストレージデバイスの見え方をホストシステム104に提示する。
ストレージデバイス102が複数のLUNで実施される場合、エラー回復技法の調節は、LUNごとに独立に制御することができる。
したがって、この明細書においては、用語「ストレージデバイス」は、物理的に独立したストレージデバイスもカバーするように意図されているし、同じ物理デバイスに存在するLUNの少なくとも一部で実施される複数のLUNもカバーするように意図されている。
ストレージデバイス102は、ホストシステム104のデータの読み出し及び書き込みを行うためのストレージ媒体110を提供する。
一実施の形態では、ストレージ媒体110には、磁気ディスク、光ディスク、テープ、フラッシュメモリ、又はデータの電子記憶に適した他の媒体の1つ又は複数が含まれる。
ストレージデバイス102は、制御回路108を通じてストレージ媒体110からデータを読み出し、且つストレージ媒体110へデータを書き込む。
制御回路108は、ソフトウェア、ハードウェア、又はファームウェアの1つ又は複数として実施される。
制御回路108は、一態様では、エラー回復機能112を含む。
エラー回復機能112は、制御回路108によって実行された入出力オペレーションが失敗に終わった場合に実行されるエラー回復オペレーションを制御する。
一実施の形態では、エラー回復レベルが、管理ツール106を通じて選択され、すべての入出力オペレーションについて選択されたレベルに設定される。
一実施の形態では、管理ツール106は、異なるエラー回復レベルを有する2つの状態から選択を行うのに使用される。
一方の状態では、エラー回復機能112がエラー回復を制限できるようにされる。
例えば、この状態では、入出力オペレーションが失敗に終わった場合に、エラー回復はエラーを返すことに制限される。
他方の状態では、より高いエラー回復レベルが提供される。
この状態では、例えば、エラー回復機能112が、入出力オペレーションの実行を複数回(指定された回数等)、或いは、場合によっては無制限に試行できるようにされる。
したがって、一実施の形態では、これら2つの状態は、エラーが返される前に試行されたエラー回復の試みの回数によって区別され、一方の状態では、エラー回復の試みが多く行われ、他方の状態では、エラー回復の試みがあまり行われない。
一実施の形態では、ストレージ媒体110に記憶されたデータが別のストレージデバイスでも利用可能である場合に、管理コンソールは、エラー回復オペレーションの実行が少ない方の状態を選択するのに使用される。
さらに、ストレージ媒体110に記憶されたデータが他の場所で利用可能でない場合には、エラー回復オペレーションの実行が多い方の状態が選択される。
この実施の形態では、管理ツール106がエラー回復レベルを設定するのに使用されるので、ストレージデバイスのオペレーションは、ホストシステム104で実行されているオペレーティングシステムから独立したものとなる。
したがって、ホストシステム104のオペレーティングシステムは、ストレージ媒体110のデータの状態について独立して知っている必要はない。
さらに、ホストシステム104は、データを取り出す際に別のことを何ら行う必要がない。
したがって、既存のオペレーティングシステムを変更する必要なく、オペレーティングシステムプラットフォームの全体にわたって、エラー回復のさまざまな状態を使用することができる。
図2Aは、すべての入出力オペレーションについて、オペレーティングシステムとは独立した、選択されたエラー回復レベルを有するストレージデバイスの入出力オペレーションを実行するための方法の一実施の形態のフローチャートである。
この方法はブロック200で開始する。
ブロック200において、ストレージデバイスに対する失敗に終わった入出力オペレーションに使用されるエラー回復レベルが、そのストレージデバイスによって実行されるすべての入出力オペレーションについて選択される。
一実施の形態では、このエラー回復レベルの選択は、管理インターフェースを通じてユーザにより行われる。
このようなエラー回復レベルの選択によって、オペレーティングシステムの標準オペレーションを何ら変更することなく、多種多様なオペレーティングシステムにわたってこの方法を適用することが可能になる。
選択が行われると、選択されたエラー回復レベルに適合するように、ストレージデバイスの適切なパラメータが更新される。
この方法は入出力(I/O)要求を処理する。
ブロック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に進む。
ブロック208において、この方法は、ストレージデバイスに対して可能にされたあらゆるエラー回復を実行する。
この方法は、ストレージデバイスについて選択された状態のエラー回復レベルを決定する。
選択された状態がエラー回復を許可するものである場合、このプロセスはブロック204に戻って、I/Oオペレーションを再試行する。
一方、状態がエラー回復を許可するものでない場合、このプロセスはブロック202に戻る。
さらに、このプロセスは、I/Oオペレーションが失敗に終わったことを示すエラーメッセージを返す。
この実施の形態は、2つのエラー回復レベルを用いて説明してきた。
他の実施の形態では、3つ以上のエラー回復レベルが使用され、それにより、関与したアプリケーション及びデータに基づいて、再試行しない場合と無制限に再試行する場合の両極端の間のエラー回復レベルが提供される。
図2Bは、すべての入出力オペレーションについて、オペレーティングシステムとは独立して、選択されたエラー回復レベルを有するストレージデバイスの入出力オペレーションを実行するための方法の別の実施の形態のフローチャートである。
この方法はブロック250で開始する。
ブロック250において、ストレージデバイスに対する失敗に終わった入出力オペレーションに使用されるエラー回復レベルが、そのストレージデバイスによって実行されるすべての入出力オペレーションについて選択される。
一実施の形態では、このエラー回復レベルの選択は、管理インターフェースを通じてユーザにより行われる。
このようなエラー回復レベルの選択によって、オペレーティングシステムの標準オペレーションを何ら変更することなく、多種多様なオペレーティングシステムにわたってこの方法を適用することが可能になる。
選択が行われると、選択されたエラー回復レベルに適合するように、ストレージデバイスの適切なパラメータが更新される。
この方法は入出力(I/O)要求を処理する。
ブロック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に進む。
ブロック258において、この方法は、選択されたエラー回復レベルを調べる。
この方法は、エラー回復レベルが低いと判断すると、ブロック262に進む。
ブロック262において、この方法は、致命的エラー表示をホストのオペレーティングシステムに返し、ブロック252に戻る。
一方、この方法は、ブロック258において、高い方のエラー回復レベルが選択されていると判断すると、ブロック260に進み、「再試行」メッセージをオペレーティングシステムに返す。
この時点で、この方法は、ブロック252に戻り、要求されたI/Oオペレーションを待つ。
この実施の形態は、2つのエラー回復レベルを用いて説明してきた。
他の実施の形態では、3つ以上のエラー回復レベルが使用され、それにより、関与したアプリケーション及びデータに基づいて、再試行しない場合と無制限に再試行する場合の両極端の間のエラー回復レベルが提供される。
[III.I/Oごとのエラー回復]
図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ごとに独立に調節することができる。
したがって、上述したように、この明細書で使用されるストレージデバイスという用語は、独立した物理デバイス全体に限定されるものではない。
そうではなく、この用語は、独立した物理デバイス全体だけでなく、物理デバイスの一部もカバーする。
オペレーティングシステム306は、アプリケーション308によって要求されると、I/Oオペレーションを実行するように共に動作する複数のレイヤを含む。
オペレーティングシステムの或るレイヤは、従来から、論理ストレージマネージャ又は論理ボリュームマネージャ(LSM/LVM)レイヤ310と呼ばれている。
このレイヤは、故障したストレージデバイスの影響を軽減するために部分的に開発されたものである。
基本的に、LSM/LVMレイヤ310は、ストレージデバイス304−1〜304−Nの複数のロケーションにアプリケーション308のデータのコピーを記憶する。
したがって、アプリケーション308は、複数のロケーションからトランスペアレントにデータを読み出すことができ、複数のロケーションへトランスペアレントにデータを書き込むことができる。
これによって、アプリケーション308は、ストレージデバイス304−1〜304−Nの1つが故障しても、データにアクセスすることが可能になる。
また、オペレーティングシステム306は、デバイスドライバインスタンス312−1〜312−Nも含む。
これらのドライバインスタンスは、オペレーティングシステム306とストレージデバイス304−1〜304−Nとの間のインターフェースとして動作する。
I/Oオペレーションがアプリケーション308によって要求されると、オペレーティングシステム306は、冗長データがその要求について利用可能であるかどうかに基づいて、失敗に終わったI/Oオペレーションに使用されるエラー回復レベルを調節する。
オペレーティングシステム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スタックの各レイヤを通って伝播するにつれて変化することがある。
一実施の形態では、ストレージデバイス304−1〜304−Nのそれぞれは、ストレージデバイス102と同様に構成される。
この実施の形態では、エラー回復機能112が、失敗に終わったI/Oオペレーションのエラー回復を実行する際に使用するエラー回復レベルを選択する、組み込まれた信号を受信する。
この実施の形態では、エラー回復レベルは、I/Oごとに選択される。
その後、任意の所与の時刻において、ストレージデバイス304−1〜304−Nは、異なるエラー回復レベルを有するI/Oオペレーションを同時に処理することができる。
図4は、I/Oオペレーションのエラー回復を調節するための方法のフローチャートである。
この方法は、I/O要求が、例えばアプリケーション308から受信された時に、ブロック400において開始する。
ブロック402において、このプロセスは、I/Oオペレーションについてエラー回復レベルを決定して指定する。
一実施の形態では、このプロセスは、冗長データの可用性に基づいてエラー回復レベルを決定する。
例えば、I/O要求が、データが複数のロケーションに記憶されるアプリケーションに関係するものである場合、このプロセスは、低いエラー回復レベル、例えば、I/Oオペレーションが失敗に終わった時にエラーが返されて、再試行が実行されないエラー回復レベルを設定する。
データが冗長ロケーションに記憶されない場合、高い方のエラー回復レベルが選択され、例えば、I/Oオペレーションが複数回(場合によっては、I/Oオペレーションが成功するまで)再試行される状態が選択される。
他の実施の形態では、3つ以上のエラー回復レベルが使用され、それにより、関与したアプリケーション及びデータに基づいて、再試行しない場合と無制限に再試行する場合の両極端の間のエラー回復レベルが提供される。
この方法は、次に、選択されたエラー回復レベルに基づいてI/Oコマンドを生成する。
ブロック404において、このプロセスは、エラー回復レベルを示す信号をI/Oコマンドに組み込む。
例えば、このプロセスは、I/Oコマンドの1ビット又は2ビット以上のビットを設定して、I/Oオペレーションが失敗に終わった場合に使用するエラー回復レベルを示す。
一実施の形態では、I/Oコマンドは、読み出しコマンド、書き込みコマンド、検証、及び他のあらゆる適切な媒体アクセスコマンドのうちの1つを含む。
ブロック406において、このコマンドは発行される。
例えば、一実施の形態では、コマンドは、LSM/LVMレイヤによってデバイスドライバへ発行され、そのデバイスドライバで実行されるエラー回復を制御する。
他の実施の形態では、コマンドは、デバイスドライバからストレージデバイスへ発行され、そのデバイスにおけるエラー回復を制御する。
<A.ストレージデバイスにおけるエラー回復>
図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オペレーションが失敗に終わったことを示すエラー信号を返す前に、限られた回数の再試行を試みる。
一実施の形態では、状態信号は、現在予約されているフィールド又は他の任意の適切なフィールドの1ビット又は2ビット以上を使用して、read(6)、read(10)、read(12)、read(16)、write(*)、read long、verify(*)、write and verify、及び他のあらゆる媒体アクセスコマンド等のSCSIコマンドに組み込まれる。
例えば、SCSIのreadコマンドのバイト1のビット5〜7のいずれか1つ又は複数をこの目的に使用することができる。
一実施の形態では、Nビットが状態信号として使用される場合、最大2個までのエラー回復レベルの状態が提供される。
さらに、一実施の形態では、選択された状態の特定のエラー回復技法のパラメータが、SCSIエラー回復モードページにパターン化されたモードページを使用して指定される。
このSCSIエラー回復モードページは、「Information Technology - SCSI-3 Block Commands (SBC)」改定8版(1997年2月13日)(以下「sbc−r08」という)という表題のX3T10 ANSI委員会のプロジェクト996Dの標準草案に記載されている。
sbc−r08草案では、オペレーティングシステムがSCSIデバイスによって使用されるエラー回復技法を変更することを可能にするためのモードページが定義されている。
一実施の形態では、この種類の複数のモードページがストレージデバイスに提供され、各状態につき1つが提供される。
特定のI/Oコマンドの状態信号に基づいて、対応するモードページのエラー回復機能が実行される。
<B.デバイスドライバにおけるエラー回復>
図6は、失敗に終わったI/Oオペレーションについてデバイスドライバで使用されるエラー回復技法を調節するための方法のフローチャートである。
この方法は、I/Oオペレーションがアプリケーションによって要求された時、ブロック600において開始する。
ブロック602において、この方法は、失敗に終わったI/Oオペレーションに使用されるエラー回復レベルを決定する。
一実施の形態では、I/O要求に関連したデータが複数のロケーションに記憶されているかどうかに基づいて、エラー回復オペレーションの状態が選択される。
一実施の形態では、この方法は、エラー回復技法の複数の状態の中から1つを選択し、例えば、I/Oオペレーションが失敗に終わった際にI/Oコマンドが何度も(場合によっては、無制限に)再試行される状態、I/Oオペレーションが失敗に終わった際に、エラーが返される別の状態、及び他のエラー回復レベルを有するあらゆる適切な状態の中から1つを選択する。
ブロック604において、この方法は、I/Oオペレーションを実行するためのコマンドを生成する。
このコマンドは、I/Oオペレーションが失敗に終わった場合に実行されるエラー回復オペレーションの選択された状態を示す、組み込まれた信号を含む。
この方法は、実行するために、このコマンドをデバイスドライバに渡す。
ブロック606において、デバイスドライバは、ストレージデバイスへ要求を回送することによって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に組み込むこともできる。
失敗に終わった入出力オペレーションに使用されるエラー回復技法の調節を可能にするストレージデバイスを有する情報システムの一例示の実施の形態のブロック図である。 すべての入出力オペレーションについて、オペレーティングシステムとは独立して、選択されたエラー回復レベルを有するストレージデバイスの入出力オペレーションを実行するための方法の例示の実施の形態のフローチャートである。 すべての入出力オペレーションについて、オペレーティングシステムとは独立して、選択されたエラー回復レベルを有するストレージデバイスの入出力オペレーションを実行するための方法の例示の実施の形態のフローチャートである。 失敗に終わった入出力(I/O)オペレーションのシステムのエラー回復メカニズムの調節をI/Oごとに可能にするシステムの一例示の実施の形態のブロック図である。 I/Oオペレーションについてエラー回復をストレージデバイスでどのように調節するかをシステムがストレージデバイスに指定するための例示の方法のフローチャートである。 オペレーティングシステムから受信された、組み込まれた信号に基づいて、ストレージデバイスにおけるI/Oオペレーションのエラー回復を調節するための例示の方法のフローチャートである。 失敗に終わったI/Oオペレーションについてデバイスドライバで使用されるエラー回復技法を調節するための例示の方法のフローチャートである。
符号の説明
102・・・ストレージデバイス,
104・・・ホストシステム,
106・・・管理ツール,
108・・・制御回路,
110・・・ストレージ媒体,
112・・・エラー回復機能,
302・・・ホストシステム,
304−1,304−N・・・ストレージデバイス,
306・・・オペレーティングシステム,
308・・・アプリケーション,
312−1、312−N・・・デバイスドライバ,

Claims (11)

  1. ユーザによって、ストレージデバイスの入出力オペレーションのエラー回復レベルを選択する(200)ことと、
    前記入出力オペレーションを実行する要求を受信する(202)ことと、
    前記入出力オペレーションを試みる(204)ことと、
    前記入出力オペレーションが失敗に終わった場合に、前記ユーザによって指定された前記エラー回復レベルを実行する(208)ことと
    を含む方法。
  2. データを記憶するためのストレージ媒体(110)と、
    前記ストレージ媒体に接続され、前記ストレージデバイスのオペレーションを制御する制御回路(108)と、
    前記制御回路に関連付けられたエラー回復機能(112)であって、
    すべての入出力オペレーションに使用するエラー回復レベル
    を有するエラー回復機能と
    を備え、
    前記エラー回復レベルは、複数の異なるエラー回復レベルから選択されて、ユーザから入力される
    ストレージデバイス。
  3. 前記複数の異なるエラー回復レベルは、少なくとも第1のエラー回復レベル及び第2のエラー回復レベルを含み、前記第1のエラー回復レベルは前記第2のエラー回復レベルよりも多くのエラー回復を実行する
    請求項2に記載のストレージデバイス。
  4. ストレージデバイスのエラー回復レベルを設定するユーザコマンドを受信する(200)ことによって、前記ストレージデバイスのエラー回復を調節することと、
    前記コマンドが或る状態を示している場合に、失敗に終わった入出力オペレーションについて限られたエラー回復を可能にすることと、
    前記コマンドが別の状態を示している場合に、失敗に終わった入出力オペレーションについてより高いエラー回復レベルを可能にすることと
    を含む方法。
  5. 入出力オペレーションの要求を受信する(400)ことと、
    前記入出力オペレーションが失敗に終わった場合に、使用するエラー回復レベルを決定する(402)ことと、
    前記エラー回復レベルを示す状態信号を、前記入出力オペレーションを実行するコマンドに組み込む(404)ことと、
    前記コマンドを発行する(406)ことと
    を含む方法。
  6. 状態信号を前記組み込むことは、
    デバイスドライバに発行される入出力コマンドに状態信号を組み込むこと
    を含む
    請求項5に記載の方法。
  7. 状態信号を前記組み込むことは、
    ストレージデバイスに発行される入出力コマンドに状態信号を組み込むこと
    を含む請求項5に記載の方法。
  8. デバイスドライバにおいて前記コマンドを受信することと、
    ストレージデバイスへ前記コマンドを伝播することと
    をさらに含む請求項5に記載の方法。
  9. 前記コマンドを前記伝播することは、
    前記組み込まれた状態信号を選択的に変更すること
    を含む請求項8に記載の方法。
  10. 入出力オペレーションの要求を受信する(600)ことと、
    前記入出力オペレーションに使用するエラー回復レベルを示す状態信号を前記要求から抽出する(602)ことと、
    前記入出力オペレーションを試みる(606)ことと、
    前記入出力オペレーションが失敗に終わった場合に、前記抽出した状態信号に基づいてエラー回復オペレーションを実行する(610)ことと
    を含む方法。
  11. データを記憶するためのストレージ媒体(110)と、
    前記ストレージ媒体に接続され、前記ストレージデバイスのオペレーションを制御する制御回路(108)と、
    前記制御回路に関連付けられたエラー回復機能(112)と、
    を備え、
    前記エラー回復機能は、前記制御回路によって受信された入出力要求に組み込まれた状態信号を受信し、前記状態信号は、前記入出力要求を実行するのに使用するエラー回復レベルを示す
    ストレージデバイス。
JP2005296003A 2004-10-14 2005-10-11 入出力オペレーションのエラー回復 Pending JP2006114039A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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の障害対応方法およびそのプログラム

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