JP2007164451A - 入出力制御方法、入出力制御プログラムおよび磁気ディスク装置 - Google Patents

入出力制御方法、入出力制御プログラムおよび磁気ディスク装置 Download PDF

Info

Publication number
JP2007164451A
JP2007164451A JP2005359476A JP2005359476A JP2007164451A JP 2007164451 A JP2007164451 A JP 2007164451A JP 2005359476 A JP2005359476 A JP 2005359476A JP 2005359476 A JP2005359476 A JP 2005359476A JP 2007164451 A JP2007164451 A JP 2007164451A
Authority
JP
Japan
Prior art keywords
magnetic disk
disk device
command
output
input
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.)
Withdrawn
Application number
JP2005359476A
Other languages
English (en)
Inventor
Seiji Toda
誠二 戸田
Mitsuhiko Ota
光彦 太田
Kaku Ejiri
革 江尻
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005359476A priority Critical patent/JP2007164451A/ja
Priority to US11/384,839 priority patent/US20070174722A1/en
Publication of JP2007164451A publication Critical patent/JP2007164451A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】磁気ディスク装置のエラーを早期に検出すること。
【解決手段】I/O要求受付部が受け付けたI/O要求を渡された状態判定部が磁気ディスク装置の制御コマンド用キューに対して状態確認コマンドを発行することによって装置状態を取得し、取得した装置状態が正常である場合には、I/O要求部が磁気ディスク装置のI/Oコマンド用キューに対してI/Oコマンドを発行するとともに、取得した装置状態が正常ではない場合には、I/O応答通知部がI/O要求の要求元に対して装置状態のエラー情報を通知するよう構成する。
【選択図】 図2

Description

この発明は、データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御方法に関し、特に、磁気ディスク装置のエラーを早期に検出することができる入出力制御方法、入出力制御プログラムおよび磁気ディスク装置に関するものである。
従来、コンピュータの記憶装置として磁気ディスク装置が広く用いられている。かかる磁気ディスク装置は、ディスクの物理的破損や、振動やメカニカルな作動誤差に起因した入出力エラーを起こすことがある。
そして、コンピュータ上のオペレーティングシステムは、これらの入出力エラーを検出すると入出力コマンドを再発行するなどしてエラーからの復旧を試みることが通常である。しかし、オペレーティングシステムによる上記した復旧処理は、入出力コマンドのタイムアウト/リトライ(再発行)に依存しているものが多く、エラー検出に大きなタイムラグを伴うという問題を有している。
すなわち、磁気ディスク装置上で深刻な(復旧不可能な)エラーが発生しているにもかかわらず、オペレーティングシステムやオペレーティングシステム上で動作するアプリケーションプログラムは、長期間にわたるディスクI/O待ちを強いられることになる。
このため、磁気ディスク装置のエラー検出を早期におこなうための技術が種々提案されている。たとえば、特許文献1には、磁気ディスク装置の障害発生回数を計数し、累積回数が所定値を上回った磁気ディスク装置を閉塞させる技術が開示されている。また、特許文献2には、ディスクI/Oに関するリトライ状況を所定の処理部にて把握する技術が開示されている。
特開平06−051914号公報 特開2003−233540号公報
しかしながら、特許文献1や特許文献2の技術は、磁気ディスク装置上で軽微なエラーが発生している段階で、すなわち、深刻なエラーが発生する前に、復旧不可能なエラーを引き起こす可能性がある磁気ディスク装置を特定するための技術である。したがって、磁気ディスク装置に深刻な(復旧不可能な)エラーが発生してしまった場合には、入出力コマンドのタイムアウトを待たざるを得ずエラー検出を迅速におこなうことができないという問題があった。
特に、近年ではコンピュータシステムで取り扱われるデータ量は増加の一途をたどり、磁気ディスク装置を多数内蔵したディスクアレイ装置などの記憶装置も広く用いられている。ディスクアレイ装置は、内蔵する磁気ディスク装置のエラーを検出すると、この磁気ディスク装置を閉塞するとともに代替ディスク装置を用いて処理を継続する。しかし、このようなディスクアレイ装置においてもエラーが発生した磁気ディスク装置を早期に検出することができなければ、データ復旧に多くの時間を要することとなってしまう。
これらのことから、磁気ディスク装置のエラーを早期に検出することができる入出力制御手法をいかにして実現するかが大きな課題となっている。なお、かかる課題は、単一の磁気ディスク装置のみならず、多数の磁気ディスク装置を内蔵するディスクアレイ装置においても同様に発生する課題である。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、磁気ディスク装置のエラーを早期に検出することができる入出力制御方法、入出力制御プログラムおよび磁気ディスク装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため請求項1に係る発明は、データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御方法であって、前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得し、当該磁気ディスク装置の装置状態を判定する装置状態判定工程と、前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求工程と、前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知工程とを備えたことを特徴とする。
また、請求項2に係る発明は、上記の発明において、前記装置状態判定工程は、前記入出力要求工程が前記データ入出力コマンドを発行した後に、前記制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって前記磁気ディスク装置の装置状態を取得し、前記エラー報知工程は、前記入出力要求工程が前記データ入出力コマンドを発行した後に、前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知することを特徴とする。
また、請求項3に係る発明は、上記の発明において、前記装置状態判定工程が取得した装置状態を外部からの問い合わせに対して応答する装置状態応答工程をさらに含んだことを特徴とする。
また、請求項4に係る発明は、データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御方法であって、前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求工程と、前記入出力要求工程が前記データ入出力コマンドを発行したならば、前記制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定工程と、前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知工程とを備えたことを特徴とする。
また、請求項5に係る発明は、データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御プログラムであって、前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得し、当該磁気ディスク装置の装置状態を判定する装置状態判定手順と、前記装置状態判定手順が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求手順と、前記装置状態判定手順が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知手順とをコンピュータに実行させることを特徴とする。
また、請求項6に係る発明は、データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置であって、前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得し、当該磁気ディスク装置の装置状態を判定する装置状態判定手段と、前記装置状態判定手段が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求手段と、前記装置状態判定手段が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知手段とを備えたことを特徴とする。
請求項1、5または6の発明によれば、制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって磁気ディスク装置の装置状態を取得してこの磁気ディスク装置の装置状態を判定し、磁気ディスク装置の装置状態を正常と判定したことを条件としてデータ入出力コマンド用キューに対してデータ入出力コマンドを発行し、磁気ディスク装置の装置状態を正常ではないと判定したことを条件として磁気ディスク装置のエラーを報知するよう構成したので、磁気ディスク装置に回復不可能な障害が発生した場合であっても磁気ディスク装置のエラーを早期に検出することができるという効果を奏する。
また、請求項2の発明によれば、データ入出力コマンドを発行した後に、制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって磁気ディスク装置の装置状態を取得し、データ入出力コマンドを発行した後に装置状態を正常ではないと判定したことを条件として磁気ディスク装置のエラーを報知するよう構成したので、データ入出力コマンドの発行後に磁気ディスク装置が障害となった場合であっても磁気ディスク装置のエラーを早期に検出することができるという効果を奏する。
また、請求項3の発明によれば、取得した装置状態を外部からの問い合わせに対して応答するよう構成したので、オペレーティングシステムやオペレーティングシステム上で動作するアプリケーションが所望するタイミングで磁気ディスク装置のエラー情報を取得することができるという効果を奏する。
また、請求項4の発明によれば、データ入出力コマンド用キューに対してデータ入出力コマンドを発行した後に、制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって磁気ディスク装置の装置状態を取得して磁気ディスク装置の装置状態を判定し、磁気ディスク装置の装置状態を正常ではないと判定したことを条件として磁気ディスク装置のエラーを報知するよう構成したので、データ入出力コマンドの発行後において磁気ディスク装置に回復不可能な障害が発生した場合であっても磁気ディスク装置のエラーを早期に検出することができるという効果を奏する。
以下に添付図面を参照して、この発明に係る入出力制御手法の好適な実施例を詳細に説明する。
まず、本発明に係る入出力制御手法の概要について図1を用いて説明する。図1は、本発明に係る入出力制御手法の概要を示す図である。同図に示すように、本発明に係る入出力制御手法は、オペレーティングシステムと磁気ディスク装置との間に設けたエラー検出モジュールがR/W(リード/ライト)要求の中継をおこなうとともに、磁気ディスク装置の制御コマンド用キューを用いて磁気ディスク装置の装置状態を確認したうえで磁気ディスク装置に対してI/O(入力/出力)コマンドを発行する点に主たる特徴がある。
なお、図1においては、かかるエラー検出モジュールをオペレーティングシステムが動作するコンピュータ上に設けた場合について示しているが、エラー検出モジュールを必ずしもかかるコンピュータ上に設ける必要はない。すなわち、エラー検出モジュールを磁気ディスク装置上に設けたり、エラー検出モジュールを備えた入出力制御装置を別途構成したりすることとしてもよい。
図1に示すように、アプリケーションプログラム(以下、単に「アプリケーション」と記載する)が発行したR/W要求は、オペレーティングシステムを介してエラー検出モジュールへと渡される。そして、R/W要求を受け取ったエラー検出モジュールは、磁気ディスク装置の制御コマンド用キューに対して状態確認コマンドを発行する(図1の(1)参照)。
ここで、この制御コマンド用キューおよび同図に示すI/Oコマンド用キューについて説明しておく。制御コマンド用キューおよびI/Oコマンド用キューは、従来の磁気ディスク装置が一般的に備えているキューであり、磁気ディスク装置上で動作するファームウェアあるいは電子回路によって実現されるものである。
I/Oコマンドキューは、磁気ディスク装置が書き込み要求(INPUTコマンド)や、読み出し要求(OUTPUTコマンド)を受け付けるためのキューである。磁気ディスク装置は、このI/Oコマンドキューに格納されたI/Oコマンドを順次処理することによってメディア(ディスク)に対する入出力動作を実行し、応答を返すことになる。
ところで、磁気ディスク装置が大量のI/Oコマンドを受け取った場合には、かかる応答が遅延する。従来、磁気ディスク装置からの応答が遅延した場合には、同図に示すオペレーティングシステムなどがR/W要求が失敗したものと判定してR/W要求の再発行をおこなっていた。このようなエラー回復処理を自動実行することで、磁気ディスク装置に発生した一時的な障害の影響を排除することが可能であった。
しかし、磁気ディス装置に回復不可能な重大な障害が発生している場合には、上記したI/Oコマンドの再発行を繰り返した後にはじめて障害を検知することになるため、オペレーティングシステムやオペレーティングシステム上で動作するアプリケーションは長時間の待ち合わせを余儀なくされるという問題があった。
一方、制御コマンド用キューはATA(AT Attachment)やSCSI(Small Computer System Interface)といった標準規格で定義されている制御コマンドを受け付けるためのキューである。この制御コマンド用キューに格納される制御コマンドは、上記したI/Oコマンドよりも短時間で実行される。そして、かかる制御コマンドとしては磁気ディスク装置の装置状態を取得するためのコマンドも用意されている。
そこで、本発明に係る入出力制御手法では、この制御コマンド用キューに対して磁気ディスク装置の装置状態を取得するコマンドを発行して(図1の(1)参照)磁気ディスク装置の装置状態を取得し(図1の(2)参照)、装置状態が正常であることを確認したうえでI/Oコマンドを発行する(図1の(3)参照)ようエラー検出モジュールを構成した。そして、装置状態が異常であることを確認した場合には、オペレーティングシステムに対して磁気ディスク装置が異常である旨を報知することした。
したがって、オペレーティングシステムやアプリケーションは、磁気ディスク装置の異常を早期に認知することが可能となり、磁気ディスク装置に重大な障害が発生している場合であっても長期間の待ち合わせを強いられることがない。
また、本発明に係る入出力制御手法では、ATAやSCSIといった標準規格で定義されている制御コマンドを用いて磁気ディスク装置の装置状態を取得するよう構成したので、一般的な磁気ディスク装置を用いる場合であっても磁気ディスク装置の異常を早期に検出することができる。
次に、本発明に係る入出力制御手法を適用したディスク制御装置について図2を用いて説明する。図2は、ディスク制御装置10の構成を示すブロック図である。なお、同図では、図1に示したエラー検出モジュールを備えたディスク制御装置10を、オペレーティングシステム5と磁気ディスク装置20との間に設けた場合について示している。
しかしながら、これに限らず、ディスク制御装置10と同等の機能をオペレーティングシステムが動作するコンピュータ上に構成したり、磁気ディスク装置20上に構成したりすることもできる。なお、かかる変形例については図7を用いて後述する。
図2に示すように、ディスク制御装置10は、I/O要求受付部11と、I/O応答通知部12と、状態判定部13と、I/O要求部14と、I/O応答取得部15とを備えている。なお、各処理部は、ディスク制御装置10上で動作するファームウェアなどのプログラムによって実現される。また、これらの各処理部を電子回路を用いて構成することとしてもよい。
I/O要求受付部11は、オペレーティングシステム5から書き込み要求や読み出し要求といった要求を受け付けるとともに、受け付けた要求を状態判定部13に渡す処理をおこなう処理部である。また、I/O応答通知部12は、状態判定部13あるいはI/O応答取得部15から渡された装置状態あるいはI/O応答をオペレーティングシステム5に対して通知する処理をおこなう処理部である。
このように、オペレーティングシステム5は、インタフェース部分であるI/O要求受付部11に対してI/O要求をおこない、I/O応答通知部12からI/O応答を受け取ることになるので、ディスク制御装置10内で実行される他の処理を意識することなく通常のI/O処理をおこなえばよい。なお、磁気ディスク装置20の装置状態は上記したI/O応答に含まれる形でオペレーティングシステム5に通知される。
状態判定部13は、I/O要求受付部11からI/O要求を渡されると、磁気ディスク20の制御コマンド用キュー(図1参照)に対して装置状態問い合わせコマンドを発行して装置状態を取得するとともに、取得した装置状態に基づいてI/O応答通知部12またはI/O要求部14に対して所定の指示をおこなう処理部である。
具体的には、この状態判定部13は、取得した装置状態が正常である場合には、I/O要求受付部11から受け取ったI/O要求を磁気ディスク装置20に対して発行するようI/O要求部14に指示する。一方、取得した装置状態が異常である場合には、磁気ディスク装置20が異常である旨をオペレーティングシステム5に対して通知するようI/O応答通知部12に指示する。
なお、状態判定部13は、磁気ディスク装置20に対する装置状態問い合わせコマンドを所定間隔ごとに複数回繰り返すこともできる。上記したように、制御コマンド用キューに対して発行されたコマンドは磁気ディスク装置20によって遅滞なく処理されるが、磁気ディスク装置20に一時的な障害(回復可能な障害)が発生した場合には、一回の装置状態問い合わせコマンドの応答に失敗することがある。したがって、装置状態問い合わせコマンドを複数回発行することとすれば、このような一時的な障害と、重大な障害(回復不可能な障害)とを切り分けたうえでオペレーティングシステム5に通知することが可能となる。
I/O要求部14は、状態判定部13の指示によってI/O要求受付部11が受け取ったI/O要求を磁気ディスク装置20のI/Oコマンド用キュー(図1参照)に対して発行する処理をおこなう処理部である。また、I/O応答取得部15は、磁気ディスク装置20から受け取ったI/O応答をI/O応答通知部12に中継する処理をおこなう処理部である。
次に、図2に示したディスク制御装置10における処理手順について図3を用いて説明する。図3は、ディスク制御装置10における処理手順を示すフローチャートである。同図に示すように、I/O要求受付部11がオペレーティングシステム(以下、「OS」と記載する)からのI/O要求(I/Oコマンド)を受け付けると(ステップS101)、状態判定部13は、磁気ディスク装置20の制御コマンド用キューに対して状態確認コマンドを発行する(ステップS102)。
そして、磁気ディスク装置20から正常応答を受信した場合には(ステップS103,Yes)、I/O要求部14が磁気ディスク装置20のI/Oコマンド用キューに対してI/Oコマンドを発行する(ステップS104)。一方、磁気ディスク装置20から正常応答を受信しなかった場合(ステップS103,No)、すなわち、異常である旨の応答を受信した場合あるいは所定時間以内に応答を受信しなかった場合には、I/O応答通知部12がOSに対してエラー情報を通知して(ステップS107)処理を終了する。
ステップS104の処理手順につづいて、I/O応答取得部15が磁気ディスク装置20からI/O要求応答を受信すると(ステップS105,Yes)、I/O応答通知部12はOSに対してI/O応答を通知して(ステップS106)処理を終了する。一方、I/O応答を受信しなかった場合には(ステップS105,No)、I/O応答を受信するまでステップS105の処理を繰り返すことになる。
図3に示したように、ディスク制御装置10では、I/Oコマンドの発行に先だって状態確認コマンドを発行することによって磁気ディスク装置20の装置状態を取得し、装置状態が正常であることを条件としてI/Oコマンドを発行することとした。したがって、磁気ディスク装置20の異常を早期に検出することができるとともに、回復不可能な障害に陥っている磁気ディスク装置20に対してI/Oコマンドを発行してしまい長時間に渡って待ち合わせをおこなう事態を回避することができる。
ところで、図3に示したフローチャートでは、状態確認コマンドで磁気ディスク装置20の正常性を確認したうえでI/Oコマンドの発行をおこなう場合について説明した。しかし、I/Oコマンドを発行した後に磁気ディスク装置20に重大な障害が発生することもありうる。そこで、以下では、I/Oコマンドの発行後における障害をも検出することが可能な処理手順について説明することとする。
図4は、ディスク制御装置10における処理手順の変形例を示すフローチャートである。同図に示すように、I/O要求受付部11がOSからのI/O要求(I/Oコマンド)を受け付けると(ステップS201)、状態判定部13は、磁気ディスク装置20の制御コマンド用キューに対して状態確認コマンドを発行する(ステップS202)。
そして、磁気ディスク装置20から正常応答を受信した場合には(ステップS203,Yes)、I/O要求部14が磁気ディスク装置20のI/Oコマンド用キューに対してI/Oコマンドを発行する(ステップS204)。一方、磁気ディスク装置20から正常応答を受信しなかった場合(ステップS203,No)、すなわち、異常である旨の応答を受信した場合あるいは所定時間以内に応答を受信しなかった場合には、I/O応答通知部12がOSに対してエラー情報を通知して(ステップS209)処理を終了する。
ステップS204の処理手順につづいて、I/O応答取得部15が磁気ディスク装置20からI/O要求応答を受信すると(ステップS205,Yes)、I/O応答通知部12はOSに対してI/O応答を通知して(ステップS206)処理を終了する。一方、I/O応答を受信しなかった場合には(ステップS205,No)、磁気ディスク装置20に対して状態確認コマンドを発行し(ステップS207)、正常応答を受信したか否かを判定する(ステップS208)。
そして、正常応答を受信した場合には(ステップS208,Yes)、ステップS205に進むことでI/O応答受信待ちをおこなう。一方、磁気ディスク装置20から正常応答を受信しなかった場合(ステップS208,No)、すなわち、異常である旨の応答を受信した場合あるいは所定時間以内に応答を受信しなかった場合には、I/O応答通知部12がOSに対してエラー情報を通知して(ステップS209)処理を終了する。
ところで、図2のディスク制御装置10では、オペレーティングシステム5からのI/O要求をトリガーとして磁気ディスク装置20の装置状態を取得することとしていた。しかしながら、これに限らず、オペレーティングシステム5からの装置状態取得要求を受け付けることとし、この要求の応答として装置状態を返す構成とすることもできる。そこで、以下では、装置状態応答機能を備えたディスク制御装置10aについて説明する。図5は、装置状態応答機能を備えたディスク制御装置10aの構成を示すブロック図である。
なお、以下では、図2に示したディスク制御装置10との差異点について主に説明する。そして、図2と同様の処理をおこなう処理部には同一の符号を付し、共通点の説明を省略することとする。図5に示すように、ディスク制御装置10aは、ディスク制御装置10(図2参照)が備える各処理部(11〜15)に加えて処理状態情報16を記憶する記憶部を備えている。
この処理状態情報16は、上記した状態判定部13によって更新される情報であり、磁気ディスク装置20に対して発行した状態確認コマンドの進捗状況をあらわす情報である。たとえば、かかる処理状態情報16は、状態確認コマンドの発行回数や、発行後の経過時間といった項目を含んだ情報である。
そして、図5に示すI/O要求受付部11は、I/O要求に加えて装置状態取得要求を受け付け、受け付けた装置状態取得要求を状態判定部13に渡す処理をさらにおこなう。また、状態判定部13は、装置状態取得要求に該当する情報を処理状態情報16から取得し、取得した装置状態をI/O応答通知部12を介することによってオペレーティングシステム5に返す処理をさらにおこなう。
このように、装置状態応答機能を備えたディスク制御装置10aを構成することとすれば、オペレーティングシステム5が所望するタイミングで磁気ディスク装置20の装置状態を取得することが可能となる。したがって、オペレーティングシステム5あるいはアプリケーション(図1参照)は、磁気ディスク装置20の障害を早期に認識することができる。
次に、図5に示したディスク制御装置10aで実行される処理状態応答処理の処理手順について図6を用いて説明する。図6は、処理状態応答処理の処理手順を示すフローチャートである。同図に示すように、I/O要求受付部11がOSからの処理状態要求を受け付けると(ステップS301)、状態判定部13は、処理状態情報16を検索する(ステップS302)。
そして、該当するI/O要求コマンドが処理中である場合には(ステップS303,Yes)、処理状態情報16から抽出した処理状態をOSに対して通知して(ステップS304)処理を終了する。一方、該当するI/O要求コマンドが処理済みである場合には(ステップS303,No)、I/O要求コマンドが処理済みである旨をOSに通知して(ステップS305)処理を終了する。
ところで、図2では、オペレーティングシステム5と磁気ディスク装置20との間にディスク制御装置10を構成する場合について説明した。しかしながら、ディスク制御装置10が備える各処理部を、オペレーティングシステム5が動作するコンピュータ1上および磁気ディスク装置20上に分散して構成することも可能である。
そこで、以下では、図2に示したディスク制御装置10が備える各処理部をコンピュータ1と磁気ディスク装置20とに分散して配置する場合について説明する。図7は、ドライバ10bおよび磁気ディスク装置20aの構成を示すブロック図である。なお、図7においては、図2と同様の処理をおこなう処理部には同一の符号を付し、共通点の説明については省略することとする。
図7に示すように、コンピュータ1上に設けられるドライバ10bは、I/O要求受付部11およびI/O応答通知部12を備えている。また、磁気ディスク装置20は、状態判定部13と、I/O要求部14と、I/O応答取得部15とを備えている。
このように、磁気ディスク装置20に状態判定部13などの処理部を設けることとすれば、コンピュータ1/磁気ディスク装置20間のインタフェースとして独自のインタフェースを採用することが可能となる。したがって、処理効率のよいコマンドや応答速度の速いコマンドをあらたに設けることが容易となり、磁気ディスク装置20の障害状態をいち早く取得することができるようになる。
ところで、図2では、単一の磁気ディスク装置20の入出力制御をおこなうディスク制御装置10について説明した。しかし、ディスク制御装置10は複数の磁気ディスク装置を内蔵したディスクアレイ装置の入出力制御をおこなうこともできる。そして、ディスクアレイ装置の入出力制御をおこなう場合には、特定の磁気ディスク装置の障害を検出した場合に、正常な磁気ディスク装置を代替装置として入出力制御を継続することが可能である。そこで、以下では、代替処理機能を備えたディスク制御装置10cについて説明することとする。
図8は、代替処理機能を備えたディスク制御装置10cの構成を示すブロック図である。同図に示すように、ディスク制御装置10cはディスク制御装置10(図2参照)と同様の各処理部(11〜15)を備えている。しかし、ディスク制御装置10cの状態判定部13はI/O要求の発行対象となる磁気ディスク装置の代替処理機能を有している点が異なっている。そこで、図8に示す状態判定部13がおこなう代替処理の処理手順について図9を用いて説明する。図9は、代替処理の処理手順を示すフローチャートである。
図9に示すように、I/O要求受付部11がOSからのI/O要求(I/Oコマンド)を受け付けると(ステップS401)、ディスク制御装置10cは図3に示したエラー検出処理を実行する(ステップS402)。つづいて、該当ディスク装置でエラーを検出した場合には(ステップS403,Yes)、代替ディスク装置があるか否かを判定する(ステップS404)。
そして、代替ディスク装置がある場合には(ステップS404,Yes)、このディスク装置(代替ディスク装置)へアクセスする(ステップS405)。一方、ステップS403で該当ディスク装置のエラーを検出しなかった場合には(ステップS403,No)、このディスク装置(該当ディスク装置)へアクセスする(ステップS405)。
ステップS405につづき、I/O応答通知部12はOSに対してI/O応答を通知して(ステップS406)処理を終了する。一方、ステップS404において代替ディスク装置がないと判定された場合には(ステップS404,No)、I/O応答通知部12はOSに対してエラー情報を通知し(ステップS407)、処理を終了する。
上述してきたように、I/O要求受付部が受け付けたI/O要求を渡された状態判定部が磁気ディスク装置の制御コマンド用キューに対して状態確認コマンドを発行することによって装置状態を取得し、取得した装置状態が正常である場合には、I/O要求部が磁気ディスク装置のI/Oコマンド用キューに対してI/Oコマンドを発行するとともに、取得した装置状態が正常ではない場合には、I/O応答通知部がI/O要求の要求元に対して装置状態のエラー情報を通知するよう構成したので、磁気ディスク装置のエラーを早期に検出することができる。
(付記1)データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御方法であって、
前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定工程と、
前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求工程と、
前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知工程と
を備えたことを特徴とする入出力制御方法。
(付記2)前記装置状態判定工程は、
前記入出力要求工程が前記データ入出力コマンドを発行した後に、前記制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって前記磁気ディスク装置の装置状態を取得し、
前記エラー報知工程は、
前記入出力要求工程が前記データ入出力コマンドを発行した後に、前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知することを特徴とする付記1に記載の入出力制御方法。
(付記3)前記装置状態判定工程が取得した装置状態を外部からの問い合わせに対して応答する装置状態応答工程をさらに含んだことを特徴とする付記1または2に記載の入出力制御方法。
(付記4)前記装置状態判定工程は、
前記制御コマンド用キューに対して発行した前記装置状態問い合わせコマンドの応答を所定時間内に受け取ることができない場合に、当該磁気ディスク装置が復旧見込みのない致命的エラーに陥っていると判定することを特徴とする付記1、2または3に記載の入出力制御方法。
(付記5)前記装置状態判定工程は、
前記制御コマンド用キューに対して発行した前記装置状態問い合わせコマンドの応答が所定回数連続して正常ではない場合に、当該磁気ディスク装置が復旧見込みのない致命的エラーに陥っていると判定することを特徴とする付記1〜4のいずれか一つに記載の入出力制御方法。
(付記6)前記入出力要求工程は、
前記装置状態判定工程が前記磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置以外の磁気ディスク装置が有する前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行することを特徴とする付記1〜5のいずれか一つに記載の入出力制御方法。
(付記7)データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御方法であって、
前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求工程と、
前記入出力要求工程が前記データ入出力コマンドを発行したならば、前記制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定工程と、
前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知工程と
を備えたことを特徴とする入出力制御方法。
(付記8)データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御プログラムであって、
前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定手順と、
前記装置状態判定手順が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求手順と、
前記装置状態判定手順が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知手順と
をコンピュータに実行させることを特徴とする入出力制御プログラム。
(付記9)データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置であって、
前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定手段と、
前記装置状態判定手段が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求手段と、
前記装置状態判定手段が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知手段と
を備えたことを特徴とする磁気ディスク装置。
以上のように、本発明に係る入出力制御方法、入出力制御プログラムおよび磁気ディスク装置は、磁気ディスク装置のエラーを早期に検出したい場合に有用であり、特に、オペレーティングシステムやオペレーティングシステム上で動作するアプリケーションプログラムからエラー検出処理を隠蔽したい場合に適している。
本発明に係る入出力制御方法の概要を示す図である。 ディスク制御装置の構成を示すブロック図である。 ディスク制御装置における処理手順を示すフローチャートである。 ディスク制御装置における処理手順の変形例を示すフローチャートである。 装置状態応答機能を備えたディスク制御装置の構成を示すブロック図である。 処理状態応答処理の処理手順を示すフローチャートである。 ドライバおよび磁気ディスク装置の構成を示すブロック図である。 代替処理機能を備えたディスク制御装置の構成を示すブロック図である。 代替処理の処理手順を示すフローチャートである。
符号の説明
1 コンピュータ
5 オペレーティングシステム
10、10a、10c ディスク制御装置
10b ドライバ
11 I/O要求受付部
12 I/O応答通知部
13 状態判定部
14 I/O要求部
15 I/O応答取得部
16 処理状態情報
20、20a 磁気ディスク装置
20c ディスクアレイ装置

Claims (6)

  1. データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御方法であって、
    前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定工程と、
    前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求工程と、
    前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知工程と
    を備えたことを特徴とする入出力制御方法。
  2. 前記装置状態判定工程は、
    前記入出力要求工程が前記データ入出力コマンドを発行した後に、前記制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって前記磁気ディスク装置の装置状態を取得し、
    前記エラー報知工程は、
    前記入出力要求工程が前記データ入出力コマンドを発行した後に、前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知することを特徴とする請求項1に記載の入出力制御方法。
  3. 前記装置状態判定工程が取得した装置状態を外部からの問い合わせに対して応答する装置状態応答工程をさらに含んだことを特徴とする請求項1または2に記載の入出力制御方法。
  4. データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御方法であって、
    前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求工程と、
    前記入出力要求工程が前記データ入出力コマンドを発行したならば、前記制御コマンド用キューに対して装置状態問い合わせコマンドを所定間隔ごとに発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定工程と、
    前記装置状態判定工程が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知工程と
    を備えたことを特徴とする入出力制御方法。
  5. データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置の入出力制御プログラムであって、
    前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定手順と、
    前記装置状態判定手順が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求手順と、
    前記装置状態判定手順が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知手順と
    をコンピュータに実行させることを特徴とする入出力制御プログラム。
  6. データ入出力コマンドを受け付けるためのデータ入出力コマンド用キューと制御コマンドを受け付けるための制御コマンド用キューとを有する磁気ディスク装置であって、
    前記制御コマンド用キューに対して装置状態問い合わせコマンドを発行することによって前記磁気ディスク装置の装置状態を取得して当該磁気ディスク装置の装置状態を判定する装置状態判定手段と、
    前記装置状態判定手段が当該磁気ディスク装置の装置状態を正常と判定したことを条件として前記データ入出力コマンド用キューに対して前記データ入出力コマンドを発行する入出力要求手段と、
    前記装置状態判定手段が当該磁気ディスク装置の装置状態を正常ではないと判定したことを条件として当該磁気ディスク装置のエラーを報知するエラー報知手段と
    を備えたことを特徴とする磁気ディスク装置。
JP2005359476A 2005-12-13 2005-12-13 入出力制御方法、入出力制御プログラムおよび磁気ディスク装置 Withdrawn JP2007164451A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005359476A JP2007164451A (ja) 2005-12-13 2005-12-13 入出力制御方法、入出力制御プログラムおよび磁気ディスク装置
US11/384,839 US20070174722A1 (en) 2005-12-13 2006-03-20 Input/output control method, computer product, and disk control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005359476A JP2007164451A (ja) 2005-12-13 2005-12-13 入出力制御方法、入出力制御プログラムおよび磁気ディスク装置

Publications (1)

Publication Number Publication Date
JP2007164451A true JP2007164451A (ja) 2007-06-28

Family

ID=38247277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005359476A Withdrawn JP2007164451A (ja) 2005-12-13 2005-12-13 入出力制御方法、入出力制御プログラムおよび磁気ディスク装置

Country Status (2)

Country Link
US (1) US20070174722A1 (ja)
JP (1) JP2007164451A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008270887A (ja) * 2007-04-16 2008-11-06 Murata Mach Ltd シリアル通信方法
KR20190032809A (ko) * 2017-09-20 2019-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CS164932B2 (ja) * 1971-09-07 1975-11-28
US5513192A (en) * 1992-08-28 1996-04-30 Sun Microsystems, Inc. Fault tolerant disk drive system with error detection and correction
US6157967A (en) * 1992-12-17 2000-12-05 Tandem Computer Incorporated Method of data communication flow control in a data processing system using busy/ready commands
US5457694A (en) * 1993-06-25 1995-10-10 Smith; Dale J. Method and apparatus for analyzing the ATA (IDE) interface
US5920709A (en) * 1996-06-04 1999-07-06 Exabyte Corporation Bus interface for IDE device
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6985901B1 (en) * 1999-12-23 2006-01-10 Accenture Llp Controlling data collection, manipulation and storage on a network with service assurance capabilities
US6496900B1 (en) * 2000-09-12 2002-12-17 3Ware, Inc. Disk array system, controller, and method for verifying command data written to disk drives
JP3938475B2 (ja) * 2001-03-29 2007-06-27 株式会社日立製作所 バックアップ処理方法及びその実施システム並びにその処理プログラム
US7043578B2 (en) * 2003-01-09 2006-05-09 International Business Machines Corporation Method, system, and program for processing a packet including I/O commands and data

Also Published As

Publication number Publication date
US20070174722A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
EP3985512B1 (en) Robust hardware/software error recovery system
JP5910444B2 (ja) 情報処理装置、起動プログラム、および起動方法
JP4822000B2 (ja) フォールトトレラントコンピュータ
JP4535371B2 (ja) ディスクアレイ制御プログラム、方法及び装置
CN102915260B (zh) 固态硬盘容错的方法及其固态硬盘
US10360115B2 (en) Monitoring device, fault-tolerant system, and control method
JP2007299213A (ja) Raid制御装置および障害監視方法
WO2016151964A1 (ja) 情報処理装置
JP6880961B2 (ja) 情報処理装置、およびログ記録方法
JP2007164451A (ja) 入出力制御方法、入出力制御プログラムおよび磁気ディスク装置
JP2009169854A (ja) コンピュータシステム、障害処理方法および障害処理プログラム
JP5849491B2 (ja) ディスク制御装置、ディスク装置異常検出方法、及びプログラム
JP2006344087A (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
US20100023801A1 (en) Method to recover from ungrouped logical path failures
JP2007233915A (ja) ディスクアレイ制御装置及びエラー監視方法並びにプログラム
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
JP2009151440A (ja) プログラムハング検出方法及びそれを適用したコンピュータ装置
JP4876093B2 (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
JP6765874B2 (ja) 電子制御装置
JP5440673B1 (ja) プログラマブルロジックデバイス、情報処理装置、被疑箇所指摘方法およびプログラム
JP2010108330A (ja) ビルドアップ方式電子計算機、切替制御方法及びプログラム
JP6230092B2 (ja) 監視システム
US8020040B2 (en) Information processing apparatus for handling errors
JP2001175545A (ja) サーバシステムおよび障害診断方法ならびに記録媒体
JP6430994B2 (ja) メモリモジュール制御装置、メモリモジュール制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080911

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091022

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091029