JPWO2011128936A1 - 記憶制御装置及び記憶制御装置の制御方法 - Google Patents

記憶制御装置及び記憶制御装置の制御方法 Download PDF

Info

Publication number
JPWO2011128936A1
JPWO2011128936A1 JP2012510449A JP2012510449A JPWO2011128936A1 JP WO2011128936 A1 JPWO2011128936 A1 JP WO2011128936A1 JP 2012510449 A JP2012510449 A JP 2012510449A JP 2012510449 A JP2012510449 A JP 2012510449A JP WO2011128936 A1 JPWO2011128936 A1 JP WO2011128936A1
Authority
JP
Japan
Prior art keywords
storage device
predetermined
data
time
value
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.)
Granted
Application number
JP2012510449A
Other languages
English (en)
Other versions
JP5451874B2 (ja
Inventor
栄寿 葛城
栄寿 葛城
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2011128936A1 publication Critical patent/JPWO2011128936A1/ja
Application granted granted Critical
Publication of JP5451874B2 publication Critical patent/JP5451874B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

記憶装置の応答時間が長い場合でも、記憶制御装置の応答時間が長くなるのを抑制する。ディスクアダプタ(DKA)は、チャネルアダプタ(CHA)からリードメッセージを受信すると、所定条件に基づいてタイムアウト時間を設定し、記憶装置4からのデータ読出しを試みる。タイムアウト時間として、通常値または短縮値のいずれか一つが選択される。タイムアウトエラーが生じた場合、リードジョブはリセットされてコレクションリードが開始される。

Description

本発明は、記憶制御装置及び記憶制御装置の制御方法に関する。
企業等のユーザは、記憶制御装置を用いてデータを管理する。記憶制御装置は、複数の記憶装置がそれぞれ有する物理的記憶領域をRAID(Redundant Array of Independent Disks)に基づく冗長な記憶領域としてグループ化する。記憶制御装置は、グループ化された記憶領域を用いて論理ボリュームを生成し、ホストコンピュータ(以下、ホスト)に提供する。
記憶制御装置は、ホストからのリード要求を受信すると、ハードディスクにデータの読出しを指示する。ハードディスクから読み出されたデータは、アドレス変換されて、キャッシュメモリに記憶され、ホストに送信される。
ハードディスクは、記録媒体または磁気ヘッド等に何らかの問題が生じて、記録媒体からデータを読み出せなかった場合、時間をおいてリトライする。リトライ処理を実行しても記録媒体からデータを読み出せない場合、記憶制御装置は、コレクションコピーを実行して、ホストから要求されたデータを生成する。コレクションコピーとは、障害の生じたハードディスクと同一パリティグループに属する他の各ハードディスクから、データ及びパリティを読出して、データを回復させる方法である(特許文献1)。
特開2007−213721号公報
ハードディスク内でリトライ処理が行われると、ホストから発行されたリード要求が処理されるまでの時間が長くなる。そのため、記憶制御装置の応答性能が悪化し、ホスト上のアプリケーションプログラムにより提供されるサービスの品質が低下する。
ホスト上で稼働するアプリケーションプログラムが、応答時間を気にしないのであれば、特に問題は生じない。しかし、例えば、発券プログラム、予約プログラム、動画配信プログラム等のように、クライアントマシンからの多量のアクセスを短時間で処理しなければならないアプリケーションプログラムの場合、記憶制御装置の応答時間が長くなると、サービス品質が低下する。
そこで、本発明の目的は、記憶装置の応答時間が長い場合でも、記憶制御装置から上位装置への応答時間が長くなるのを抑制できるようにした記憶制御装置及び記憶制御装置の制御方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明の第1観点に従う記憶制御装置は、上位装置からの要求に応じてデータを入出力する記憶制御装置であって、データを記憶する複数の記憶装置と、上位装置及び各記憶装置に接続され、上位装置からの要求に応じて各記憶装置のうち所定の記憶装置にデータを入出力させるコントローラと、を備え、コントローラは、上位装置からアクセス要求を受信すると、所定の場合にタイムアウト時間を第1値よりも短い第2値に設定して、各記憶装置のうち所定の記憶装置にアクセス要求に対応する所定のデータの読出しを要求し、設定されたタイムアウト時間内に所定の記憶装置からデータを取得できない場合は、タイムアウトエラーの発生であると検出し、タイムアウトエラーが検出された場合は、各記憶装置内で発生した障害を管理するための第1管理部とは異なる第2管理部により、タイムアウトエラーの発生を管理させ、さらに、所定の記憶装置と関連する他の記憶装置に、所定のデータに対応する他のデータの読み出しを要求し、他の記憶装置から取得される他のデータに基づいて所定のデータを生成し、生成された所定のデータを上位装置に転送する。
第2観点では、第1観点において、コントローラは、上位装置と通信するための第1通信制御部と、各記憶装置と通信するための第2通信制御部と、第1通信制御部及び第2通信制御部により使用されるメモリとを備え、メモリには、タイムアウト時間を第1値または第2値のいずれに設定するかを判定するためのタイムアウト時間設定用情報が記憶されており、タイムアウト時間設定用情報は、各記憶装置を対象とするキューの数と、キューイングモードが先入れ先出しモードに設定されている場合の先入れ先出し用閾値と、キューイングモードが論理アドレスの近い順番に並び替える並び替えモードに設定されている場合の、先入れ先出し用閾値よりも小さい並び替え用閾値とを含んでおり、第1通信制御部が上位装置からのアクセス要求を受信すると、第2通信制御部は、タイムアウト時間設定用情報に基づいて、所定の記憶装置を対象とするキューの数が、所定の記憶装置に設定されているキューイングモードに対応する先入れ先出し用閾値または並び替え用閾値のいずれかの値以上である場合は、第1値を、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間として選択し、所定の記憶装置を対象とするキューの数が、所定の記憶装置に設定されているキューイングモードに対応する先入れ先出し用閾値または並び替え用閾値のいずれかの値未満である場合は、第1値よりも小さい第2値を、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間として選択し、第2通信制御部は、所定のデータの読出しを所定の記憶装置に要求し、第2通信制御部は、設定されたタイムアウト時間内に所定の記憶装置から所定のデータを取得できない場合、タイムアウトエラーの発生を検出し、第2通信制御部は、タイムアウトエラーが検出された場合は、各記憶装置内で発生した障害を管理するための第1管理部とは異なる第2管理部により、タイムアウトエラーの発生を管理させ、障害の生じた記憶装置に関する所定の回復措置を開始させるための回復用閾値の値は、第1管理部よりも第2管理部の方が大きく設定されており、第2通信制御部は、第1値が選択される他のタイムアウト時間を設定して、所定の記憶装置と関連する他の記憶装置に、所定のデータに対応する他のデータの読み出しを要求し、他の記憶装置から取得される他のデータに基づいて所定のデータを生成し、生成された所定のデータを上位装置に転送し、第2通信制御部は、もしも他の記憶装置から他のデータを他のタイムアウト時間内に取得できない場合であって、タイムアウト時間として第2値が選択されていた場合、タイムアウト時間を第1値に変更して、所定のデータの読出しを所定の記憶装置に再度要求する。
第3観点では、第1観点において、第1管理部は、各記憶装置に発生した障害の数と、障害の発生した記憶装置に関する所定の回復措置を開始させるための回復用閾値とを対応付けて管理しており、第2管理部は、各記憶装置に発生したタイムアウトエラーの数と、タイムアウトエラーの発生した記憶装置に関する所定の回復措置を開始させるための他の回復用閾値とを対応付けて管理しており、第2管理部により管理される他の回復用閾値は、第1管理部により管理される回復用閾値よりも大きく設定されている。
第4観点では、第1観点において、コントローラは、所定の記憶装置に、所定時間内の応答を保証するための保証モードが設定されている場合、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間を第2値に設定する。
第5観点では、コントローラは、所定の記憶装置に関するキューイングモードが先入れ先出しモードに設定されている場合、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間を第2値に設定する。
第6観点では、第1観点において、コントローラは、所定の記憶装置が予め指定されている低速な記憶装置以外の記憶装置である場合に、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間を第2値に設定する。
第7観点では、第1観点において、コントローラは、所定の記憶装置を対象とするキューの数が所定の閾値よりも小さい場合に、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間を第2値に設定する。
第8観点では、第1観点において、コントローラは、タイムアウト時間を第1値または第2値のいずれに設定するかを判定するためのタイムアウト時間設定用情報であって、各記憶装置を対象とするキューの数と、キューイングモードが先入れ先出しモードに設定されている場合の先入れ先出し用閾値と、キューイングモードが論理アドレスの近い順番に並び替える並び替えモードに設定されている場合の、先入れ先出し用閾値よりも小さい並び替え用閾値とを含むタイムアウト時間設定用情報を備えており、さらに、コントローラは、所定の記憶装置を対象とするキューの数が、所定の記憶装置に設定されているキューイングモードに対応する先入れ先出し用閾値または並び替え用閾値のいずれかの値以上である場合は、第1値を、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間として選択し、所定の記憶装置を対象とするキューの数が、所定の記憶装置に設定されているキューイングモードに対応する先入れ先出し用閾値または並び替え用閾値のいずれかの値未満である場合は、第1値よりも小さい第2値を、所定の記憶装置から所定のデータを読み出す場合のタイムアウト時間として選択する。
第9観点では、第1観点において、コントローラは、タイムアウトエラーが検出された場合、第1値が選択される他のタイムアウト時間を設定して、所定の記憶装置と関連する他の記憶装置に、所定のデータに対応する他のデータの読み出しを要求する。
第10観点では、第1観点において、コントローラは、タイムアウトエラーが検出された場合、第2値が選択される他のタイムアウト時間を設定して、所定の記憶装置と関連する他の記憶装置に、所定のデータに対応する他のデータの読出しを要求する。
第11観点では、第10観点において、コントローラは、他の記憶装置から他のタイムアウト時間内に他のデータを取得できなかった場合、タイムアウト時間を第1値に変更して、所定のデータの読出しを所定の記憶装置に再度要求する。
第12観点では、第10観点において、コントローラは、他の記憶装置から他のタイムアウト時間内に他のデータを取得できなかった場合、ユーザに通知する。
本発明は、記憶制御装置の制御方法として把握することもできる。さらに、本発明の構成の少なくとも一部は、コンピュータプログラムとして構成できる。このコンピュータプログラムは、記録媒体に固定して配布したり、通信ネットワークを介して配信することができる。さらに、前記観点の組合せ以外の他の組合せも本発明の範囲に含まれる。
図1は、本発明の実施形態の全体概念を示す説明図である。 図2は、記憶制御装置を含むシステムの全体構成を示す説明図である。 図3は、記憶制御装置のブロック図である。 図4は、スロットと記憶装置とのマッピング状態を示す説明図である。 図5は、キューイングモードの相違を示す説明図である。 図6は、記憶装置と仮想デバイス(RAIDグループ)との関係を管理するテーブルである。 図7は、仮想デバイスを管理するテーブルである。 図8は、管理端末から設定可能なモードを管理するテーブルである。 図9は、ジョブを管理するためのテーブルである。 図10は、リード処理を示すフローチャートである。 図11は、ステージング処理を示すフローチャートである。 図12は、コレクションリード処理を示すフローチャートである。 図13は、エラーカウント処理を示すフローチャートである。 図14は、エラーカウントを管理するテーブルを示す。 図15は、タイムアウト時間を通常値よりも短く設定するための方法を示す説明図である。 図16は、第2実施例に係り、タイムアウト時間を設定するための閾値を管理するテーブルである。 図17は、第3実施例に係り、コレクションリード処理を示すフローチャートである。 図18は、第4実施例に係り、ステージング処理の状態を管理するテーブルである。 図19は、ステージング処理を示すフローチャートである。 図20は、図19に続くフローチャートである。 図21は、コレクションリード処理のフローチャートである。 図22は、第5実施例に係り、ステージング処理を示すフローチャートである。 図23は、各記憶装置の応答時間を管理するテーブルである。 図24は、第6実施例に係るシステムの全体構成図である。 図25は、ステージング処理のフローチャートである。 図26は、図25に続くフローチャートである。
以下、図面に基づいて、本発明の実施の形態を説明する。最初に、図1を参照して本発明の概要を説明し、次に、図2以降を参照して実施例について説明する。図1は、本発明の理解及び実施に必要な程度で記載されている。本発明の範囲は、図1に記載の構成に限定されない。図1に記載されていない特徴は、後述の実施例で明らかにされる。
図1は、全体概要を示す。図1の左側にはコンピュータシステムの構成が、その右側には処理の概略がそれぞれ示されている。コンピュータシステムは、記憶制御装置1と、上位装置としてのホスト2とを備えている。記憶制御装置1は、コントローラ3と、記憶装置4とを備える。コントローラ3は、第1通信制御部としてのチャネルアダプタ5と、メモリ6と、第2通信制御部としてのディスクアダプタ7とを備える。以下の説明では、チャネルアダプタをCHAと、ディスクアダプタをDKAと略記する。図1中の点線で囲われた範囲は、DKA7による処理内容を示す。
記憶装置4としては、例えば、ハードディスク装置、半導体メモリ装置、光ディスク装置、光磁気ディスク装置、磁気テープ装置、フレキシブルディスク装置等の、データを読み書き可能な種々の装置を利用可能である。
記憶装置としてハードディスク装置を用いる場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。記憶装置として半導体メモリ装置を用いる場合、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(MagnetoresistiveRandom Access
Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)、PRAM(Phase change RAM)等の種々のメモリ装置を利用可能である。
ホスト2上で稼働するアプリケーションプログラムは、記憶制御装置1に向けてアクセス要求(図中「IO」)を発行させる。アクセス要求には、リード要求とライト要求とがある。リード要求は、記憶装置4からのデータ読出しを要求する。ライト要求は、記憶装置4へのデータ書込みを要求する。記憶制御装置1がライト要求を処理する場合、最初に、既存データの読出しが行われる場合も多い。つまり、ライト要求を処理する場合、記憶制御装置1内ではデータの読出しが行われる。
CHA5は、ホスト2からのアクセス要求(例えば、リード要求)を受信すると、要求されたデータを取得するためのジョブを生成する(S1)。
DKA7は、CHA5により作成されたジョブを検出すると、ホスト2の要求するデータを記憶している所定の記憶装置4に、リード要求を発行する(S2)。リード要求を受領した記憶装置4は、記録媒体からデータを読み出そうとする(S3)。
DKA7は、記憶装置4からデータを取得するまでに要する上限時間(タイムアウト時間)を設定する(S4)。以下、タイムアウト時間をTOV(Time Out Value)と略記する場合がある。
予め複数のTOVが用意されている。第1値としてのTOV1と、第2値としてのTOV2である。TOV1は、通常設定される値である。TOV2は、応答性能を重視する場合に設定される値であり、TOV1よりも短く設定される。従って、TOV1を通常値、TOV2を短縮値と呼び変えることもできる。
一つの例では、TOV1は、4−6秒程度に設定される。TOV2は、1秒前後、例えば、0.9秒程度に設定される。TOV2は、コレクションリード処理に要する時間とTOV2との合計値が例えば2秒程度の所定時間に収まるように設定される。
DKA7は、予め設定されている条件に基づいて、タイムアウト時間をTOV1またはTOV2のいずれか一つに設定する。詳細は後述するが、例えば、記憶制御装置1の応答時間を保証するモードが設定されている場合、TOV2が選択される。読出し対象の記憶装置3に関するキューイングモード(キューの処理方法)が、先入れ先出し(FIFO:First In First Out)モードに設定されている場合、TOV2が選択される。読出し対象の記憶装置4が低速な記憶装置以外の場合は、TOV2が選択される。さらに、読出し対象の記憶装置4の稼働状況(負荷状況)に基づいて、TOV1またはTOV2のいずれかを選択することもできる。
設定されたタイムアウト時間内に記憶装置4から応答があった場合、記憶装置4から読み出されたデータはCHA5を介してホスト2に送信される。これに対し、記憶装置4の内部で何らかのエラーが発生して、タイムアウト時間内に応答することができなかった場合、DKA7は、タイムアウトエラーの発生であると判断する(S5)。
DKA7は、タイムアウトエラー(タイムアウト障害)の発生をタイムアウトエラーを管理するための管理部(第2管理部)に記憶させる。記憶装置4から報告される通常の障害は、記憶装置の通常の障害を管理するための管理部(第1管理部)に記憶される。
DKA7は、タイムアウトエラーを検出すると、S3で発行した読出し要求をリセットする(S7)。DKA7は、コレクションリード処理を開始する(S8)。コレクションリード処理とは、タイムアウトエラーの検出された記憶装置4と同一のパリティグループに属する他の各記憶装置4から、最初の読出し対象データと同一ストライプ列に属する他のデータ(及びパリティ)を読出し、論理演算により最初の読出し対象データを生成する処理である。コレクションリード処理はコレクションコピー処理とも呼ばれる。
DKA7は、復元されたデータをキャッシュメモリに転送させる(S9)。図示は省略するが、CHA5は、キャッシュメモリに転送されたデータをホスト2に送信する。これにより、ホスト2から受信したリード要求(リードコマンド)の処理が完了する。
このように構成される本実施形態では、DKA7は、所定の条件を満たす場合に、記憶装置4に送信したリード要求について短いタイムアウト時間TOV2を設定し、タイムアウトエラーが生じた場合は、リード要求をリセットさせて、コレクションリード処理を実行する。
従って、高負荷等の原因によって、読出し対象の記憶装置4の応答性能が低下している場合でも、TOV2が経過したときはコレクションリード処理を行うため、記憶制御装置1の応答性能が低下するのを防止できる。記憶制御装置1の応答時間は、TOV2にコレクションリード処理に要する時間を加えた値となり、所定の応答時間内にホスト2にデータを送信することができる。
本実施形態では、例えば、応答時間保証モードが設定されている場合、キューイングモードがFIFOの場合、低速な記憶装置ではない場合、記憶装置が高負荷ではない場合に、記憶装置4からデータを読み出す場合のタイムアウト時間を通常よりも短い値TOV2に設定する。従って、本実施形態では、状況に応じて、記憶制御装置1の応答性能低下を防止することができる。
本実施形態では、通常の記憶装置の障害を管理する管理部とは別の管理部で、タイムアウトエラーを管理する。従って、本実施形態では、障害の発生した記憶装置4に関する回復措置(例えば、その記憶装置4のデータを予備の記憶装置にコピーする処理、または、その記憶装置4内のデータをコレクションコピー処理により復元させる処理)の起動を、タイムアウトエラーと通常の障害とで分けて制御できる。
つまり、本実施形態では、記憶制御装置1の応答性能の低下を防止するために、所定条件下で、記憶装置4からデータを読み出す場合のタイムアウト時間を従来の値TOV1よりも短い値TOV2に設定する。従って、記憶装置4の状態によっては、タイムアウトエラーが比較的多く発生する可能性がある。タイムアウトエラーと通常の障害とを共通に管理すると、両方を合わせた障害カウント数が閾値を超える可能性が高くなり、回復措置の行われる回数が増加する。回復措置が頻繁に行われると、記憶制御装置1の負荷が増大し、記憶制御装置1の応答性能に悪影響を与える可能性がある。そこで、本実施形態では、タイムアウトエラーと通常の記憶装置障害とを分けて管理する。
図2は、本実施例に係る記憶制御装置10を含むシステムの全体構成を示す。このシステムは、例えば、少なくとも一つの記憶制御装置10と、一つまたは複数のホスト20と、少なくとも一つの管理端末30とを含んで構成することができる。
先に図1で述べた実施形態との対応関係を説明する。記憶制御装置10は図1の記憶制御装置1に、記憶装置210は図1の記憶装置4に、ホスト20は図1のホスト2に、コントローラ100は図1のコントローラ3に、チャネルアダプタ110は図1のCHA5に、ディスクアダプタ120は図1のDKA7に、キャッシュメモリ130及び共有メモリ140は図1のメモリ6に、それぞれ対応する。
先に、ホスト20及び管理端末30について説明し、次に記憶制御装置10について説明する。ホスト20は、例えば、メインフレームコンピュータまたはサーバコンピュータとして構成される。ホスト20は、通信ネットワークCN1を介して記憶制御装置10に接続されている。通信ネットワークCN1は、例えば、FC−SAN(Fibre Channel-Storage Area Network)、または、IP−SAN(Internet Protocol_SAN)のような通信ネットワークとして構成することができる。
管理端末30は、記憶制御装置10内のサービスプロセッサ160と通信ネットワークCN3を介して接続される。サービスプロセッサ160は、内部ネットワークCN4を介してCHA110等に接続されている。通信ネットワークCN3,CN4は、例えば、LAN(Local Area Network)のような通信ネットワークとして構成される。管理端末30は、サービスプロセッサ(以下、SVP)160を介して、記憶制御装置10内の各種情報を収集する。さらに、管理端末30は、SVP160を介して、記憶制御装置10内の各種設定を指示することができる。
記憶制御装置10の構成を説明する。記憶制御装置10は、コントローラ100と、記憶装置搭載部200とに大別することができる。コントローラ100は、例えば、少なくとも一つ以上のCHA110と、少なくとも一つ以上のDKA120と、少なくとも一つ以上のキャッシュメモリ130と、少なくとも一つ以上の共有メモリ140と、接続部(図中「SW」)150と、SVP160とを備えて構成される。なお、複数のコントローラ100をスイッチを介して相互に接続する構成でもよい。例えば、複数のコントローラ100からクラスタを構成することもできる。
CHA110は、ホスト20との間のデータ通信を制御するためのもので、例えば、マイクロプロセッサ及びローカルメモリ等を備えたコンピュータ装置として構成される。各CHA110は、少なくとも一つ以上の通信ポートを備えている。
DKA120は、各記憶装置210との間のデータ通信を制御するためのもので、CHA110と同様に、マイクロプロセッサ及びローカルメモリ等を備えたコンピュータ装置として構成される。
各DKA120と各記憶装置210とは、例えば、ファイバチャネルプロトコルに従う通信経路CN2を介して接続されている。各DKA120と各記憶装置210とは、ブロック単位のデータ転送を行う。
コントローラ100が各記憶装置210にアクセスする経路は、冗長化されている。いずれか一方のDKA120または通信経路CN2に障害が発生した場合でも、コントローラ100は、他方のDKA120または通信経路CN2を用いて、記憶装置210にアクセス可能である。同様に、ホスト20とコントローラ100との間の経路も冗長化することができる。CHA110及びDKA120の構成は、図3で後述する。
CHA110及びDKA120の動作を簡単に説明する。CHA110は、ホスト20から発行されたリードコマンドを受信すると、このリードコマンドを共有メモリ140に記憶させる。DKA120は、共有メモリ140を随時参照しており、未処理のリードコマンドを発見すると、記憶装置210からデータを読み出して、キャッシュメモリ130に記憶させる。CHA110は、キャッシュメモリ130に移されたデータを読み出し、ホスト20に送信する。DKA120が記憶装置210から読み出したデータをキャッシュメモリ130に転送させる処理をステージング処理と呼ぶ。ステージング処理の詳細は後述する。
一方、CHA110は、ホスト20から発行されたライトコマンドを受信すると、ライトコマンドを共有メモリ140に記憶させる。また、CHA110は、受信したライトデータをキャッシュメモリ130に記憶させる。CHA110は、キャッシュメモリ130にライトデータを記憶させた後、ホスト20に書込み完了を報告する。DKA120は、共有メモリ140に記憶されたライトコマンドに従って、キャッシュメモリ130に記憶されたデータを読出し、所定の記憶装置210に記憶させる。
キャッシュメモリ130は、例えば、ホスト20から受信したユーザデータ等を記憶するものである。キャッシュメモリ130は、例えば、揮発性メモリまたは不揮発性メモリから構成される。共有メモリ140は、例えば、不揮発メモリから構成される。共有メモリ140には、後述する各種テーブルTや管理情報等が記憶される。
共有メモリ140及びキャッシュメモリ130は、同一のメモリ基板上に混在して設けることができる。あるいは、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。
接続部150は、各CHA110と、各DKA120と、キャッシュメモリ130及び共有メモリ140をそれぞれ接続させる。これにより、全てのCHA110,DKA120は、キャッシュメモリ130及び共有メモリ140にそれぞれアクセス可能である。接続部150は、例えばクロスバスイッチ等として構成することができる。
SVP160は、内部ネットワークCN4を介して、各CHA110及び各DKA120とそれぞれ接続されている。また、SVP160は、通信ネットワークCN3を介して、管理端末30に接続される。SVP160は、記憶制御装置10内部の各種状態を収集し、管理端末30に提供する。なお、SVP160は、CHA110またはDKA120のいずれか一方にのみ接続されてもよい。SVP160は、共有メモリ140を介して、各種のステータス情報を収集可能だからである。
コントローラ100の構成は、上述した構成に限定されない。例えば、一つまたは複数の制御基板上に、ホスト20との間のデータ通信を行う機能と、記憶装置210との間のデータ通信を行う機能と、データを一時的に保存する機能と、各種テーブル類を書換可能に保存する機能とを、それぞれ設ける構成でもよい。
記憶装置搭載部200の構成について説明する。記憶装置搭載部200は、複数の記憶装置210を備えている。各記憶装置210は、例えば、ハードディスク装置として構成される。ハードディスク装置に限らず、フラッシュメモリ装置、光磁気記憶装置、ホログラフィックメモリ装置等を用いることができる場合もある。
RAID構成等によっても相違するが、例えば、2個1組や4個1組等の所定数の記憶装置210によって、パリティグループ220が構成される。パリティグループ220は、パリティグループ220内の各記憶装置210がそれぞれ有する物理的記憶領域を仮想化したものである。
従って、パリティグループ220は、仮想化された物理的記憶領域である。この仮想化された物理的記憶領域を、本実施例ではVDEVと呼ぶ場合がある。その仮想化された物理的記憶領域には、論理的記憶装置(LDEV)230を一つまたは複数設けることができる。論理的記憶装置230は、LUN(Logical Unit Number )に対応付けられて、ホスト20に提供される。論理的記憶装置230は、論理ボリュームとも呼ばれる。
図3は、CHA110及びDKA120の構成を示すブロック図である。CHA110は、例えば、プロトコルチップ111と、DMA回路112と、マイクロプロセッサ113とを備えている。プロトコルチップ111は、ホスト20との通信を行うための回路である。マイクロプロセッサ113は、CHA110の全体動作を制御する。DMA回路112は、プロトコルチップ111とキャッシュメモリ130との間のデータ転送をDMA(Direct Memory Access)方式で行うための回路である。
DKA120は、CHA110と同様に、例えば、プロトコルチップ121と、DMA回路112とマイクロプロセッサ123を備える。さらに、DKA120は、パリティ生成回路124も備えている。
プロトコルチップ121は、各記憶装置210と通信するための回路である。マイクロプロセッサ123は、DKA120の全体動作を制御する。パリティ生成回路124は、キャッシュメモリ130に記憶されたデータに基づいて所定の論理演算を行うことにより、パリティデータを生成する回路である。DMA回路122は、記憶装置210とキャッシュメモリ130との間のデータ転送を、DMA方式で行うための回路である。
図4は、スロット300と記憶装置210とのマッピング状態を模式的に示す説明図である。図4(a)はRAID5の場合を、図4(b)はRAID1の場合を示す。
図4(a)は、3個のデータディスク(#0,#1,#2)と1個のパリティディスク(#3)とから、3D+1PのRAID5を構成する場合を示す。データディスク(#0)にはスロット#0〜スロット#7が、データディスク(#1)にはスロット#8〜スロット#15が、データディスク(#2)にはスロット#16〜スロット#23が、右側のパリティディスク(#3)にはパリティ#0〜#7が、それぞれ配置される。即ち、各データディスクには、それぞれ連続する8個のスロットが配置される。
パリティが8スロット分(#0〜#7)のサイズを、パリティサイクルと呼ぶ。図示するパリティサイクルの次のパリティサイクルでは、ディスク(#3)の左隣のディスク(#2)にパリティが記憶される。さらに次のパリティサイクルでは、ディスク(#1)にパリティが記憶される。このように、パリティデータを記憶するディスクは、パリティサイクル毎に移動する。図4(a)からわかるように、一つのパリティサイクルに含まれるスロットの数は、データディスクの数に8を乗ずることにより求められる。
図5は、キューの処理方法を模式的に示す。図5(a)には、1番から7番までの合計7個のキューが示されている。図5(a)の横軸は、記憶装置210の記憶領域上の論理アドレスを示す。キューの番号は、コマンドの受付順番を示す。キュー間の距離は、論理アドレス上の距離に対応する。
図5(b)は、キューの処理方法(モード)を示す。キューイングモードとしては、例えば、FIFOモードと、並び替えモードとが知られている。FIFOモードでは、先に受信したキューから処理される。従って、1番目のキューから7番目のキューまで順番通りに処理されていく。これに対し、並び替えモードでは、できるだけ回転待ち時間及びシーク待ち時間を短縮させるためにキューを並び替える。図示の例では、1番目のキュー、6番目のキュー、3番目のキュー、5番目のキュー、4番目のキュー、2番目のキューの順番で処理される。2番目のキューは、早い時期に生成されているにもかかわらず、その処理は後回しにされる。もしも、4番目のキューの処理が完了する前に、7番目のキューを受信した場合、4番目のキューの直後に、7番目のキューが処理され、2番目のキューは最後に処理される。
図5に示すように特定の狭い領域にアクセスが集中し、希に、離れた位置にアクセスするコマンドが受領された場合は、その一つだけ離れたコマンドの処理は、後から受領されたコマンドに次々に追い抜かされる。その一つだけ離れたコマンドは、長時間(例えば、1秒程度)処理されない可能性がある。このように、並び替えモードは、FIFOモードよりも平均応答時間は高速になるが、応答時間の最大値も大きくなる。
図6は、装置IDとVDEVとの対応関係を管理するテーブルT10を示す。この管理テーブルT10は共有メモリ140に記憶される。CHA110,DKA120は、テーブルT10の少なくとも一部を、CHA110,DKA120内のローカルメモリにコピーして使用することができる。
装置ID−VDEV対応関係管理テーブルT10は、論理ボリューム230と仮想的な中間記憶装置としてのVDEV220との対応関係を管理する。管理テーブルT10は、例えば、装置ID欄C11と、VDEV番号欄C12と、開始スロット欄C13とスロット数欄C14とを対応付けて管理する。
装置ID欄C11には、論理ボリューム230を識別するための情報が記憶される。VDEV番号欄C12には、VDEV220を識別するための情報が記憶される。開始スロット欄C13には、論理ボリューム230がVDEV220内のどのスロットから始まるのを示すスロット番号が記憶される。スロット数欄C14には、論理ボリューム230を構成するスロット数が記憶される。
図7は、VDEV220を管理するためのテーブルT20を示す。管理テーブルT20は、共有メモリ140に記憶される。CHA110及びDKA120は、管理テーブルT20の少なくとも一部を、ローカルメモリにコピーして使用することができる。
VDEV管理テーブルT20は、例えば、VDEV番号欄C21と、スロットサイズ欄C22と、RAIDレベル欄C23と、データドライブ数欄C24と、パリティサイクルスロット数欄C24と、ディスクタイプ欄C26と、キューイングモード欄C27と、応答時間保証モード欄C28とを対応付けて管理する。
VDEV番号欄C21には、各VDEV220を識別する情報が記憶される。スロットサイズ欄C22には、VDEVに対応付けられるスロットの数が記憶されるを示す。RAIDレベル欄C23には、RAID1〜RAID6のような、RAIDの種類を示す情報が記憶される。データドライブ数欄C24には、データを記憶する記憶装置210の数が記憶される。
パリティサイクルスロット数欄C24には、一つのパリティサイクルに含まれるスロットの数が記憶される。そのスロット数は、記憶装置210にスロットを配置する場合に、何個のスロットで折り返して次の記憶装置210に移るのかを示す。ディスクタイプ欄C25には、VDEV220を構成する記憶装置210の種類が記憶される。
キューイングモード欄C27には、VDEV220に適用されるキューイングモードの種類が記憶される。FIFOモードの場合は「0」が、並び替えモードの場合は「1」がキューイングモード欄C27に設定される。応答時間保証モード欄C28は、応答時間保証モードの設定値が記憶される。応答時間保証モードとは、VDEV220の応答時間を所定時間内に収めることを保証するモードである。「1」が記憶されている場合は、応答時間保証モードが設定されていることを示す。
図8は、モード設定テーブルT30を示す。モード設定テーブルT30は、管理端末30からSVP160を介して設定される。モード設定テーブルT30は、記憶制御装置10の全体について、キューイングモード及び応答時間保証モードを設定する。モード設定テーブルT30は、項目欄C31と、設定値欄C32とを備える。項目欄C31には、キューイングモードと応答時間保証モードとが記憶される。設定値欄C32には、各モードを設定するか否かを示す値が記憶される。
なお、モード設定テーブルT30とVDEV管理テーブルT20のキューイングモード欄C27及び応答時間保証モード欄C28とは、いずれか一方が設けられていればよく、両方のテーブルT20,T30を記憶制御装置10が備えている必要はない。
つまり、キューイングモードは、VDEV単位で設定するか(C27)、または、記憶制御装置10の全体で設定する(T30)。応答時間保証モードも、VDEV単位で設定するか(C28)、または、記憶制御装置10の全体で設定する(T30)。
なお、VDEV管理テーブルT20とモード設定テーブルT30とを共存させる構成でもよい。例えば、例えば、モード設定テーブルT30の設定値を全てのVDEV220に適用し、その後、各VDEV220についてキューイングモードまたは応答時間保証モードを個別に設定できる構成とすればよい。
図9は、ジョブを管理するためのテーブルT40を示す。ジョブ管理テーブルT40は、ジョブ制御ブロック(JCB)とも呼ばれる。ジョブ管理テーブルT40は、カーネルにより生成されるジョブの状態を管理する。
ジョブ管理テーブルT40は、例えば、JCB番号欄C41と、ジョブ状態欄C42と、WAIT満了時刻欄C43と、起動フラグ欄C44と、障害発生フラグ欄C45と、引継ぎ情報欄C46とを対応付けて管理する。
JCB番号欄C41には、各ジョブを制御するためのJCBを識別するための番号が記憶される。ジョブ状態欄C42には、JCBにより管理されているジョブの状態が記憶される。
ジョブ状態としては、例えば、「RUN」、「WAIT」、「未使用」がある。「RUN」とは、ジョブが起動状態にあることを示す。DKA120がCHA110からのメッセージを受信すると、DKA120のカーネルは、ジョブを生成し、そのジョブに未使用のJCBを一つ割り当てる。DKA120は、ジョブに割り当てられたJCBのジョブ状態欄C42を「未使用」から「RUN」に変更させる。「WAIT」は、ジョブの処理完了を待っている状態を示す。「未使用」は、そのJCBがジョブに割り当てられていないことを示す。
WAIT満了時刻欄C43には、現在時刻に処理待ち時間(タイムアウト時間)を加えた値が記憶される。現在時刻はシステムタイマから取得される。例えば、現在時刻が「0000」であり、タイムアウト時間として「1000」が設定された場合、WAIT満了時刻は1000(=0000+1000)となる。
起動フラグ欄C44には、ジョブを再起動させるか否かを判定するためのフラグの値が記憶される。記憶装置210のデータ入出力が正常終了または異常終了すると、割込処理により、起動フラグが「1」に設定される。
障害発生フラグ欄C45には、記憶装置210で障害が生じたか否かを示すフラグの値が記憶される。記憶装置210に障害が発生した場合、障害発生フラグ欄C45には「1」が設定される。
引継ぎ情報欄C46には、ジョブの再起動時に必要となる情報が記憶される。そのような情報としては、例えば、VDEV番号、スロット番号等が挙げられる。
リードメッセージの受領により作成されたジョブは、記憶装置210からのデータ読出しが開始されると、その状態が「RUN」から「WAIT」に変化する。カーネルは、「WAIT」状態のジョブのうち、起動フラグに「1」が設定されたジョブ、または、WAIT満了時刻が現在時刻を超えているジョブが有るか否かを定期的に監視している。
起動フラグに「1」の設定されたジョブ、または、WAIT満了時刻が過ぎたジョブを発見した場合、DKA120のカーネルは、そのジョブを再起動させる。再起動されるジョブの状態は「WAIT」から「RUN」に変更される。再起動されたジョブは、引継ぎ情報を参照して処理を進める。ジョブが完了すると、その状態は「RUN」から「未使用」に変更される。
図10−図13のフローチャートを参照して記憶制御装置10の動作を説明する。各フローチャートは、各処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。いわゆる当業者であれば、図示されたステップの一部を変更または削除したり、新たなステップを追加したりすることができるであろう。
図10は、CHA110により実行されるリード処理のフローチャートである。CHA110は、CHA110内に記憶されている所定のコンピュータプログラムをマイクロプロセッサが読み込んで実行することにより、図10に示す機能を実現する。
CHA110は、ホスト20からリードコマンドを受信すると(S10)、そのリードコマンドで指定されている論理アドレスを、VDEV番号とスロット番号の組合せに変換する(S11)。
CHA110は、キャッシュヒットであるか否かを判定する(S12)。読出し対象スロット番号に対応するキャッシュ領域が既に確保されており、かつ、読出し対象の論理ブロック範囲のステージングビットがオンに設定されている場合は、キャッシュヒットであると判定される。
キャッシュヒットではない場合(S12:NO)、CHA110は、DKA120にリードメッセージを送信する(S13)。そのリードメッセージには、VDEV番号と、スロット番号と、スロット内の開始ブロック番号と、対象ブロック数とが含まれる。
CHA110は、リードメッセージをDKA120に送った後、DKA120によるデータの読出し処理(ステージング処理)が完了するのを待つ(S14)。CHA110は、DKA120から完了報告を受領すると(S15)、記憶装置からのデータ読出しが正常に終了したか否かを判定する(S16)。
記憶装置からのデータ読出しが正常に終了した場合(S16:YES)、CHA110は、キャッシュメモリ130に記憶されたデータをホスト20に送信して(S17)、本処理を終了する。記憶装置からのデータ読出しが失敗した場合(S16:NO)、CHA110は、ホスト20にエラーを通知し(S18)、本処理を終了する。
図11は、ステージング処理のフローチャートである。ステージング処理とは、記憶装置からデータを読み出してキャッシュメモリに転送させる処理であり、DKA120により実行される。
DKA120は、CHA110からのメッセージを受領すると(S20)、データを格納させるための領域をキャッシュメモリ上に確保し、さらに、メッセージで指定されたアドレスを物理アドレスに変換する(S21)。つまり、DKA120は、読出し先のアドレスを、記憶装置番号と論理アドレスと論理ブロック数との組合せに変換して、記憶装置210にデータ読出しを要求する(S22)。
DKA120は、記憶装置210にデータ読出しを要求するに際して、タイムアウト時間(図中、TOV)を設定し、待機状態に移行する(S23)。DKA120は、比較的長時間の通常値TOV1または比較的短時間の短縮値TOV2のいずれか一方を、タイムアウト時間として設定する。タイムアウト時間の選択方法は、図15で後述する。
図9で述べたように、記憶装置210からデータを読み出すためのジョブは、「WAIT」状態に変化する。起動フラグに「1」が設定された場合、または、WAIT満了時刻が過ぎた場合に、ジョブ処理が再起動される(S24)。
DKA120は、データの読出しが正常に終了したか、それとも異常終了したかを判定する(S25)。記憶装置210からキャッシュメモリ130にデータを転送できた場合、正常終了と判定される。正常終了の場合、DKA120は、ステージングビットをオンに設定し(S26)、CHA110にデータの読出しが正常に終了した旨を報告する(S27)。
これに対し、記憶装置210からのデータ読出しが異常終了した場合、DKA120は、タイムアウトエラーが生じたか否かを判定する(S28)。タイムアウトエラーとは、設定されたタイムアウト時間内に記憶装置210からデータを読み出すことができなかった場合のエラーである。
タイムアウトエラーが発生した場合(S28:YES)、DKA120は、記憶装置210にリセット命令を発行する(S29)。リセット命令により、記憶装置210へのデータ読出し要求は取り消される。
DKA120は、データ読出し要求を取り消した後、コレクションリード処理を実行する(S30)。コレクションリード処理の詳細は、図12で後述する。記憶装置210にタイムアウトエラー以外の障害が生じた場合(S28:NO)、DKA120は、S29をスキップしてS30に移る。
そして、DKA120は、コレクションリード処理が正常に終了したか否かを判定する(S31)。コレクションリード処理が正常に終了した場合(S31:YES)、DKA120は、リード要求が正常に終了した旨をCHA110に報告する(S27)。コレクションリード処理が正常に終了しなかった場合(S31:NO)、DKA120は、リード要求の処理が異常終了したことをCHA110に報告する(S32)。
図12は、図11中にS30として示されているコレクションリード処理のフローチャートである。DKA120は、読出し対象の記憶装置210が属するVDEV220のRAIDレベルを判定する(S40)。本実施例では、一例として、RAID1と、RAID5またはRAID6とのいずれであるかを判定する。
RAIDレベルがRAID5またはRAID6のいずれかである場合、DKA120は、エラースロットに関連する他の各スロットの番号を特定する(S41)。エラースロットとは、データを読み出すことのできなかったスロットであり、何らかの障害が生じているスロットである。エラースロットに関連する他の各スロットとは、エラースロットと同一のストライプ列に含まれる他のスロットである。
DKA120は、他の各スロットから取得するデータを格納させるための領域をキャッシュメモリ130に確保した後、S41で特定された他の各スロットを有する各記憶装置210にリード要求を発行する(S42)。さらに、DKA120は、各記憶装置210からデータを読み出す場合のタイムアウト時間を、通常値に設定する(S43)。本実施例では、エラースロット内のデータを復元するために必要なデータをより確実に取得するために、タイムアウト時間を通常値に設定する。
一方、RAIDレベルがRAID1の場合、DKA120は、エラーの発生した記憶装置210とペアを形成する記憶装置210にリード要求を発行して(S44)、S43に移る。
リード要求に係るジョブはWAIT状態となる。起動フラグが設定されるか、または、WAIT満了時刻を経過すると、再起動される(S45)。DKA120は、データの読出しが正常に終了したか否かを判定する(S46)。正常に終了しなかった場合、DKA120は、本処理を異常終了させる。
データの読出しが正常に終了した場合、DKA120は、RAIDレベルを判定する(S47)。RAID5またはRAID6のいずれかである場合、DKA120は、各記憶装置210から読み出されたデータ及びパリティに基づいて、データを復元し、復元されたデータをエラースロットに対応するキャッシュ領域に記憶させる(S48)。DKA120は、そのスロットに関するステージングビットをオンに設定する(S49)。RAID1の場合、DKA120は、S48をスキップしてS49に移る。
図13は、エラーカウント処理のフローチャートである。本処理は。DKA120により実行される。DKA120は、記憶装置210にエラー(障害)が発生したか否かを監視している(S60)。エラーが発生した場合(S60:YES)、DKA120は、タイムアウトエラーであるか否かを判定する(S61)。
記憶装置210で発生したエラーがタイムアウトエラーである場合(S61:YES)、DKA120は、そのタイムアウトエラーを、図14に示すエラーカウント管理テーブルT50のタイムアウト障害欄C53に記録する(S62)。
記憶装置210で発生したエラーがタイムアウトエラー以外の記憶装置エラーである場合(S61:NO)、DKA120は、そのエラーを、エラーカウント管理テーブルT50のHDD障害欄C52に記録する(S63)。
図14を参照してエラーカウント管理テーブルT50を説明する。エラーカウント管理テーブルT50は、記憶装置210で発生したエラーの数と回復措置を実行させるための閾値とを管理する。エラー管理テーブルT50は共有メモリ140に記憶されており、DKA120は、その一部をローカルメモリにコピーして使用することができる。
エラーカウント管理テーブルT50は、例えば、HDD番号欄C51と、HDD障害欄C52と、タイムアウト障害欄C53とを対応付けて管理する。HDD番号欄C51は、各記憶装置210を識別するための情報を記憶する。
HDD障害欄C52は、記憶装置210に生じる通常の障害を管理する。HDD障害欄C52は、エラーカウント欄C520と、スペアの記憶装置へのコピーを開始させるための閾値欄C521と、コレクションコピーを開始させるための閾値欄C522とを備えている。
エラーカウント欄C520は、記憶装置で生じた通常の障害の回数を記憶する。閾値欄C521は、エラーを生じた記憶装置から予備の記憶装置へデータをコピーさせるという「スペアリング処理」を開始させるための閾値TH1aを記憶する。他の閾値欄C522は、コレクションコピー処理を開始させるための閾値TH1bを記憶する。
タイムアウト障害欄C53は、記憶装置210に生じるタイムアウトエラーを管理するもので、エラーカウント欄C530と、スペアリング処理を開始させるための閾値欄C531と、コレクションコピーを開始させるための閾値欄C532とを備えている。
つまり、通常の障害の発生回数(エラーカウント値)とタイムアウトエラーの発生回数とはそれぞれ別々に管理される。さらに、回復措置としてのスペアリング処理及びコレクションコピー処理を実行させるための閾値も、通常の障害とタイムアウトエラーとでそれぞれ別々に設定される。さらに、本実施例では、タイムアウトエラーに関する閾値TH1b,TH2bの方が、通常の障害に関する閾値TH1a,TH2aよりも大きく(例えば、TH1b=TH1a×2,TH2b=TH2a×2)設定されている。
従って、本実施例では、記憶装置210からデータを読み出す場合のタイムアウト時間を短く設定した結果として、タイムアウトエラーが頻発した場合でも、スペアリング処理またはコレクションコピー処理のような回復措置の実行機会を低減できる。本実施例では、回復措置の起動を抑えることにより、記憶制御装置10の負荷が増大するのを防止している。
図15は、記憶装置210からデータを読み出す場合に設定されるタイムアウト時間の選択方法を示す。上述の通り、本実施例では、複数のタイムアウト時間TOV1,TOV2が用意されている。第1のタイムアウト時間TOV1は、例えば、数秒程度の比較的長い時間に設定されており、通常値とも呼ばれる。第2のタイムアウト時間TOV2は、例えば、1秒以下の比較的短い時間に設定されており、短縮値とも呼ばれる。以下に示すような所定条件を満たす場合に、DKA120は、タイムアウト時間を短い値TOV2に設定することができる。
(所定条件1)
図7に示すVDEV管理テーブルT20の応答時間保証モード欄C28に「1」が設定されている場合。つまり、所定時間内に応答するモードが選択されている場合は、タイムアウト時間として短縮値を選択する。
(所定条件2)
図8に示すモード設定テーブルT30の応答時間保証モードに「1」が設定されている場合。所定条件1と同様である。但し、所定条件1では、VDEV単位で応答時間保証モードを設定可能であるが、所定条件2では、記憶制御装置10の全体で応答時間保証モードを設定可能である。
(所定条件3)
読出し対象の記憶装置210が、SATAのような低速な記憶装置ではない場合。読出し対象の記憶装置が低速な場合(応答性能が低い場合)、タイムアウト時間を短くすると、障害が発生していないのにタイムアウトエラーを生じる可能性がある。
(所定条件4)
VDEV管理テーブルT20のキューイングモード欄C27またはモード設定テーブルのいずれかにおいて、キューイングモードに「1」が設定されている場合(キューイングモード=FIFOモード)。FIFOモードの場合は、発行順にキューが処理されるため、論理アドレスの離れているキューの処理が後回しにされて、極端に長時間待たされたりすることはない。これに対し、並び替えモードの場合、孤立した場所のキューは長時間待たされる可能性があるため、タイムアウト時間を短縮すると、障害が発生していないのにタイムアウトエラーを生じる可能性が高くなる。
(所定条件5)
読出し対象の記憶装置210の負荷状態が所定値以下の場合。記憶装置210の負荷が所定値以上の場合、データの読出しに時間を要し、障害が発生していないのにタイムアウトエラーを生じる可能性がある。従って、記憶装置210が高負荷状態ではない場合に、タイムアウト時間を短く設定する。
このように構成される本実施例では、DKA120は、所定の条件を満たす場合に、記憶装置210に送信したリード要求について短いタイムアウト時間TOV2を設定し、タイムアウトエラーが生じた場合はリード要求をリセットして、コレクションリード処理を実行する。
従って、読出し対象の記憶装置210の応答性能が低下している場合でも、タイムアウト時間が経過したときはコレクションリード処理を行うことができる。このため、記憶制御装置10の応答性能が低下するのを防止できる。
本実施例では、例えば、応答時間保証モードが設定されている場合、キューイングモードがFIFOの場合、低速な記憶装置ではない場合、記憶装置が高負荷ではない場合に、記憶装置210からデータを読み出す場合のタイムアウト時間を通常よりも短い値に設定する。従って、本実施例では、状況に応じて、記憶制御装置10の応答性能低下を防止することができる。
本実施例では、タイムアウトエラーを通常の記憶装置の障害とは別に管理する。従って、タイムアウト時間を通常よりも短く設定した場合でも、スペアリング処理またはコレクションコピー処理等の回復措置が実行されるのを抑制できる。このため、回復措置の実行により記憶制御装置10の負荷が増大して、応答性能が低下するのを防止できる。
図16を参照して第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に相当する。そこで、第1実施例との相違点を中心に述べる。本実施例では、キューイングモードと記憶装置210の負荷状態とに応じて、タイムアウト時間を短く設定する。本実施例は、第1実施例で述べた(所定条件5)の応用例である。
図16は、タイムアウト時間を設定するための閾値を記憶するテーブルT70である。閾値テーブルT70は、例えば、HDD番号欄C71と、キューイングコマンド数欄C72と、FIFOモード時の閾値欄C73と、並び替えモード時の閾値欄C74とを対応付けて管理する。
HDD番号欄C71には、各記憶装置210を識別するための情報が記憶される。キューイングコマンド数欄C72には、記憶装置210を対象とする未処理のコマンド数が記憶される。FIFOモード時の閾値欄C73には、キューイングモードがFIFOモードに設定されている場合の閾値TH3が記憶されている。並び替えモード時の閾値欄C74には、キューイングモードが並び替えモードに設定されている場合の閾値TH4が記憶されている。
記憶装置210を対象とする未処理のコマンドの数が、キューイングモードで定まる閾値TH3またはTH4のいずれかに達した場合、その記憶装置210を読出し対象とするリード要求のタイムアウト時間は、通常の値に設定される。
FIFOモード時の閾値TH3は、並び替えモード時の閾値TH4よりも大きい値に設定されている(例えば、TH3=TH4×4)。キューイングモードがFIFOモードに設定されている場合は、極端に処理の遅れるコマンドは生じないため、閾値TH3を並び替えモード時のTH4よりも大きく設定している。キューイングモードが並び替えモードの場合は、コマンドの対象とする論理アドレス次第で、処理が後回しにされる可能性があるため、閾値TH4をFIFOモード時のTH3よりも小さく設定している。
記憶装置210に未処理のコマンドが多く滞留している場合は、障害と無関係にタイムアウトエラーを生じる可能性がある。未処理のコマンドを処理する方法によっても、タイムアウトエラーを生じる可能性が変化する。
そこで、本実施例では、未処理のコマンド数とキューイングモードとに基づいて、タイムアウト時間を設定する。これにより、障害と無関係なタイムアウトエラーが生じる可能性を抑制できる。本実施例も第1実施例と同様の効果を奏する。
図17を参照して第3実施例を説明する。本実施例では、コレクションリード時のタイムアウト時間を短い値に設定する。図17は、コレクションリード処理のフローチャートである。本処理は、図12に示す処理と共通のステップS40−S42,S44−S49を備える。本処理は、S43Aの点で図12と相違する。つまり、本実施例のコレクションリード処理では、タイムアウト時間を通常よりも短い値に設定して、各記憶装置210からデータ及びパリティを読み出す。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例では、コレクションリード時のタイムアウト時間を短く設定するため、記憶制御装置10の応答性能低下をより一層防止できる。
図18−図21を参照して第4実施例を説明する。本実施例では、コレクションリード処理が失敗した場合に、最初の読出し対象の記憶装置210からのデータ読出しに再挑戦する。
図18は、ステージング処理の進行状況を管理するための状態管理テーブルT80である。状態管理テーブルT80は、例えば、項番欄C81と、内容欄C82と、値欄C83とを備える。内容欄C81には、記憶装置210からデータを読み出してキャッシュメモリ130に転送させるステージング処理の各段階が示されている。ステージング処理が各段階に到達すると、値欄C83には、「1」が設定される。ステージング処理の各段階の一例は、以下の通りである。
(段階1)
第1段階では、タイムアウト時間を短縮値TOV2に設定して、記憶装置210にデータ読出しを要求する。
(段階2)
第2段階では、最初の読出し要求についてタイムアウトエラーが発生する。
(段階3)
第3段階では、コレクションリード処理を試みるが失敗する。
(段階4)
第4段階では、タイムアウト時間を通常値TOV1に設定して、読出し対象の記憶装置210に2回目のデータ読出しを要求する。
図19及び図20は、ステージング処理のフローチャートである。本処理は、図11に示すステージング処理に対応する。本処理と図11に示す処理との相違点は、S70−S76である。
図19に示すように、DKA120は、CHA110からリードメッセージを受領すると(S20)、状態管理テーブルT80の値欄C83を初期化する(S83)。DKA120は、アドレス変換等を行った後(S21)、記憶装置210にリード要求を発行する(S22)。
DKA120は、そのリード要求のタイムアウト時間を通常よりも短い値TOV2に設定する(S71)。なお、同一の記憶装置210から再度データを読み出そうとする場合、タイムアウト時間は通常値TOV1に設定される(S71)。
DKA120は、タイムアウト時間を短縮値TOV2に設定した場合、状態管理テーブルの段階1の値を「1」に設定する(S72)。これにより、最初の読出しが開始されたことがテーブルT80に記録される。
図20に移る。記憶装置210からの1回目のデータ読出しがタイムアウトとなって失敗すると(S28:YES)、DKA120は、リセット命令を発行してリード要求を取り消す(S29)。DKA120は、状態管理テーブルT80の段階2の値に「1」を設定する(S73)。これにより、1回目のリード要求に関するタイムアウトエラーの発生が、状態管理テーブルT80に記録される。
DKA120は、状態管理テーブルT80を参照し、ステージング処理が第3段階に到達したか否かを判定する(S74)。ここでは、未だコレクションリード処理は開始されていないので、第3段階に到達していないと判定される(S74:NO)。そこで、DKA120は、コレクションリード処理を実行する(S75)。
コレクションリード処理が正常に終了した場合(S31:YES)、DKA120は、リード要求を正常に終了した旨をCHA110に通知する(S27)。コレクションリード処理が正常に終了しなかった場合(S31:NO)、DKA120は、状態管理テーブルT80を参照し、ステージング処理の進捗状況が第2段階まで到達しているか否かを判定する(S76)。
ここでは、図19のS72と図20のS73とで、状態管理テーブルT80の第1段階及び第2段階にそれぞれ「1」が設定されている。従って、DKA120は、第2段階に到達していると判定し(S76:YES)、図19のS22に戻る。DKA120は、読出し対象の記憶装置210にもう一度リード要求を発行する(S22)。その際、DKA120は、2回目のリード要求に関するタイムアウト値を通常値TOV1に設定する(S71)。2回目のリード要求であり、タイムアウト値は短縮されていないため、S72はスキップされる。
2回目のリード要求により、タイムアウト時間内に記憶装置210からデータを正常に読み出すことができた場合、DKA120は、ステージングビットをオンに設定し(S26)、CHA110に正常終了を報告する(S27)。
2回目のリード要求も失敗し、タイムアウトエラーが発生した場合(S28:YES)、DKA120は、2回目のリード要求をリセットする(S29)。なお、状態管理テーブルT80の第2段階に「1」が設定されているので、S73では再度「1」を設定せずにS73に移る。
DKA120は、状態管理テーブルT80を参照し、第3段階に到達しているか否かを判定する(S74)。ここでは、コレクションリード処理を試みて失敗しているため(S74:YES)、DKA120は、リード要求の処理に失敗した旨をCHA110に通知する(S32)。つまり、2回目のリード要求が失敗した場合は、2回目のコレクションリード処理を行わずに、本処理を終了させる。
図21は、コレクションリード処理のフローチャートである。本処理は、図12に示す処理に比べて、S80及びS81が相違する。DKA120は、コレクションリード時のタイムアウト時間として通常値を設定する(S80)。コレクションリード処理が異常終了した場合、DKA120は、状態管理テーブルT80の第3段階に「1」を設定し、コレクションリードに失敗したことを記録する(S81)。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例では、コレクションリードに失敗した場合、通常のタイムアウト時間で、記憶装置210からのデータ読出しを再び試みる。従って、記憶装置210からデータを読み出せる可能性を高めることができ、記憶制御装置10の信頼性を向上できる。
図22及び図23を参照して第5実施例を説明する。本実施例では、コレクションリードの対象となる各記憶装置210の状態に基づいて、コレクションリード処理の実行を制御する。
図22は、ステージング処理のフローチャートである。図22の処理は、図11の処理に比べて、S90及びS91が相違する。タイムアウトエラーが生じた場合(S28:YES)、DKA120は、応答時間管理テーブルT90を参照し(S90)、コレクションリードの対象となる全ての記憶装置210の応答時間が基準値よりも長いか否かを判定する(S91)。
コレクションリード対象の各記憶装置210の応答時間が長い場合(S91:YES)、DKA120は、コレクションリード処理を実行せずに、リード要求の処理に失敗した旨をCHA110に通知する(S32)。
コレクションリード対象の各記憶装置210の応答時間が基準値以上ではない場合(S91:NO)、DKA120は、リード要求をリセットして(S29)、コレクションリード処理を実行する(S30)。
なお、コレクションリード対象の全記憶装置210の応答時間が遅い場合に限らず、コレクションリード対象の全記憶装置210のうち所定数以上の記録装置210の応答時間が基準値以上の場合、または、コレクションリード対象の全記憶装置210のうち1つ以上の記憶装置210の応答時間が基準値以上の場合に、コレクションリード処理を行わない構成としてもよい。
図23は、各記憶装置210の応答時間を管理するテーブルT90を示す。応答時間管理テーブルT90は、例えば、VDEV番号欄C91と、HDD番号欄C92と、応答時間欄C93と、判定欄C94とを対応付けて管理する。
応答時間欄C93には、各記憶装置210の最新の応答時間が記録される。判定欄C94には、各記憶装置210の応答時間と所定の基準値とを比較した結果が記録される。応答時間が基準値以上の場合「遅」と記録され、応答時間が基準値未満の場合「通常」と記憶される。
応答時間管理テーブルT90を用いることにより、コレクションリードを短時間で完了させることができるか否かを判定することができる。なお、応答時間を直接管理するのではなく、各記憶装置についての未処理のコマンド数を管理してもよい。さらには、未処理のコマンド数と記憶装置210の種別等に基づいて、コレクションリード処理に要する時間を推測する構成でもよい。
図24−図26を参照して第6実施例を説明する。本実施例では、コレクションリード処理に失敗した場合はユーザに通知して、待機系の記憶制御装置10(2)に切り替えさせる。
図24は、本実施例のシステム構成図である。本実施例では、現用系の記憶制御装置10(1)と、待機系の記憶制御装置10(2)とを備える。通常の場合、ユーザは、現用系の記憶制御装置10(1)を使用する。
図25及び図26はステージング処理のフローチャートである。図25のフローチャートは、図19のフローチャートに比べて、結合子2を含まない点で相違する。図26のフローチャートは、図20のフローチャートに比べて、コレクションリード処理に失敗した後の処理が異なる。
本実施例では、コレクションリード処理に失敗した場合(S31:NO,S76:YES)、ユーザに通知して本処理を終了する(S100)。その通知は、管理端末30を介してユーザに知らされる。ユーザは、ホスト20から現用系記憶制御装置10(1)にリード要求を再発行させるか、それとも、現用系記憶制御装置10(1)から待機系記憶制御装置10(2)に切り替えるかを決定することができる。このように構成される本実施例も第1実施例と同様の効果を奏する。
なお、本発明は、上述した実施例に限定されない。当業者であれば、例えば、上記各実施例を適宜組み合わせる等のように、本発明の範囲内で、種々の追加や変更等を行うことができる。
1:記憶制御装置、2:ホスト、3:コントローラ、4:記憶装置、5:チャネルアダプタ(CHA)、6:メモリ、7:ディスクアダプタ(DKA)、10:記憶制御装置、20:ホスト、30:管理端末、100:コントローラ、110:CHA、120:DKA、130:キャッシュメモリ、140:共有メモリ、210:記憶装置、220:パリティグループ(VDEV)、230:論理ボリューム(LDEV)。

Claims (13)

  1. 上位装置からの要求に応じてデータを入出力する記憶制御装置であって、
    データを記憶する複数の記憶装置と、
    前記上位装置及び前記各記憶装置に接続され、前記上位装置からの要求に応じて前記各記憶装置のうち所定の記憶装置にデータを入出力させるコントローラと、を備え、
    前記コントローラは、
    前記上位装置からアクセス要求を受信すると、所定の場合にタイムアウト時間を第1値よりも短い第2値に設定して、前記各記憶装置のうち前記所定の記憶装置に前記アクセス要求に対応する所定のデータの読出しを要求し、
    設定された前記タイムアウト時間内に前記所定の記憶装置からデータを取得できない場合は、タイムアウトエラーの発生であると検出し、
    前記タイムアウトエラーが検出された場合は、前記各記憶装置内で発生した障害を管理するための第1管理部とは異なる第2管理部により、前記タイムアウトエラーの発生を管理させ、さらに、
    前記所定の記憶装置と関連する他の記憶装置に、前記所定のデータに対応する他のデータの読み出しを要求し、
    前記他の記憶装置から取得される前記他のデータに基づいて前記所定のデータを生成し、生成された前記所定のデータを前記上位装置に転送する、
    記憶制御装置。
  2. 前記コントローラは、前記上位装置と通信するための第1通信制御部と、前記各記憶装置と通信するための第2通信制御部と、前記第1通信制御部及び前記第2通信制御部により使用されるメモリとを備え、
    前記メモリには、タイムアウト時間を前記第1値または前記第2値のいずれに設定するかを判定するためのタイムアウト時間設定用情報が記憶されており、
    前記タイムアウト時間設定用情報は、前記各記憶装置を対象とするキューの数と、キューイングモードが先入れ先出しモードに設定されている場合の先入れ先出し用閾値と、キューイングモードが論理アドレスの近い順番に並び替える並び替えモードに設定されている場合の、前記先入れ先出し用閾値よりも小さい並び替え用閾値とを含んでおり、
    前記第1通信制御部が前記上位装置からのアクセス要求を受信すると、
    前記第2通信制御部は、前記タイムアウト時間設定用情報に基づいて、
    前記所定の記憶装置を対象とする前記キューの数が、前記所定の記憶装置に設定されているキューイングモードに対応する前記先入れ先出し用閾値または前記並び替え用閾値のいずれかの値以上である場合は、前記第1値を、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間として選択し、
    前記所定の記憶装置を対象とする前記キューの数が、前記所定の記憶装置に設定されているキューイングモードに対応する前記先入れ先出し用閾値または前記並び替え用閾値のいずれかの値未満である場合は、前記第1値よりも小さい前記第2値を、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間として選択し、
    前記第2通信制御部は、前記所定のデータの読出しを前記所定の記憶装置に要求し、
    前記第2通信制御部は、設定された前記タイムアウト時間内に前記所定の記憶装置から前記所定のデータを取得できない場合、前記タイムアウトエラーの発生を検出し、
    前記第2通信制御部は、前記タイムアウトエラーが検出された場合は、前記各記憶装置内で発生した障害を管理するための第1管理部とは異なる第2管理部により、前記タイムアウトエラーの発生を管理させ、
    障害の生じた記憶装置に関する所定の回復措置を開始させるための回復用閾値の値は、前記第1管理部よりも前記第2管理部の方が大きく設定されており、
    前記第2通信制御部は、
    前記第1値が選択される他のタイムアウト時間を設定して、前記所定の記憶装置と関連する他の記憶装置に、前記所定のデータに対応する他のデータの読み出しを要求し、
    前記他の記憶装置から取得される前記他のデータに基づいて前記所定のデータを生成し、生成された前記所定のデータを前記上位装置に転送し、
    前記第2通信制御部は、もしも前記他の記憶装置から前記他のデータを前記他のタイムアウト時間内に取得できない場合であって、前記タイムアウト時間として前記第2値が選択されていた場合、前記タイムアウト時間を前記第1値に変更して、前記所定のデータの読出しを前記所定の記憶装置に再度要求する、
    請求項1に記載の記憶制御装置。
  3. 前記第1管理部は、前記各記憶装置に発生した障害の数と、障害の発生した記憶装置に関する所定の回復措置を開始させるための回復用閾値とを対応付けて管理しており、
    前記第2管理部は、前記各記憶装置に発生したタイムアウトエラーの数と、タイムアウトエラーの発生した記憶装置に関する前記所定の回復措置を開始させるための他の回復用閾値とを対応付けて管理しており、
    前記第2管理部により管理される前記他の回復用閾値は、前記第1管理部により管理される前記回復用閾値よりも大きく設定されている、
    請求項1に記載の記憶制御装置。
  4. 前記コントローラは、前記所定の記憶装置に、所定時間内の応答を保証するための保証モードが設定されている場合、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間を前記第2値に設定する、
    請求項1に記載の記憶制御装置。
  5. 前記コントローラは、前記所定の記憶装置に関するキューイングモードが先入れ先出しモードに設定されている場合、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間を前記第2値に設定する、
    請求項1に記載の記憶制御装置。
  6. 前記コントローラは、前記所定の記憶装置が予め指定されている低速な記憶装置以外の記憶装置である場合に、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間を前記第2値に設定する、
    請求項1に記載の記憶制御装置。
  7. 前記コントローラは、前記所定の記憶装置を対象とするキューの数が所定の閾値よりも小さい場合に、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間を前記第2値に設定する、
    請求項1に記載の記憶制御装置。
  8. 前記コントローラは、タイムアウト時間を前記第1値または前記第2値のいずれに設定するかを判定するためのタイムアウト時間設定用情報であって、前記各記憶装置を対象とするキューの数と、キューイングモードが先入れ先出しモードに設定されている場合の先入れ先出し用閾値と、キューイングモードが論理アドレスの近い順番に並び替える並び替えモードに設定されている場合の、前記先入れ先出し用閾値よりも小さい並び替え用閾値とを含むタイムアウト時間設定用情報を備えており、さらに、
    前記コントローラは、
    前記所定の記憶装置を対象とする前記キューの数が、前記所定の記憶装置に設定されているキューイングモードに対応する前記先入れ先出し用閾値または前記並び替え用閾値のいずれかの値以上である場合は、前記第1値を、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間として選択し、
    前記所定の記憶装置を対象とする前記キューの数が、前記所定の記憶装置に設定されているキューイングモードに対応する前記先入れ先出し用閾値または前記並び替え用閾値のいずれかの値未満である場合は、前記第1値よりも小さい前記第2値を、前記所定の記憶装置から前記所定のデータを読み出す場合のタイムアウト時間として選択する、
    請求項1に記載の記憶制御装置。
  9. 前記コントローラは、前記タイムアウトエラーが検出された場合、前記第1値が選択される他のタイムアウト時間を設定して、前記所定の記憶装置と関連する他の記憶装置に、前記所定のデータに対応する他のデータの読み出しを要求する、
    請求項1に記載の記憶制御装置。
  10. 前記コントローラは、前記タイムアウトエラーが検出された場合、前記第2値が選択される他のタイムアウト時間を設定して、前記所定の記憶装置と関連する他の記憶装置に、前記所定のデータに対応する他のデータの読出しを要求する、
    請求項1に記載の記憶制御装置。
  11. 前記コントローラは、前記他の記憶装置から前記他のタイムアウト時間内に前記他のデータを取得できなかった場合、前記タイムアウト時間を前記第1値に変更して、前記所定のデータの読出しを前記所定の記憶装置に再度要求する、
    請求項10に記載の記憶制御装置。
  12. 前記コントローラは、前記他の記憶装置から前記他のタイムアウト時間内に前記他のデータを取得できなかった場合、ユーザに通知する、
    請求項10に記載の記憶制御装置。
  13. 上位装置と複数の記憶装置とに接続される記憶制御装置を制御する方法であって、
    前記上位装置からアクセス要求を受信すると、所定の場合にタイムアウト時間を第1値よりも短い第2値に設定して、前記各記憶装置のうち前記所定の記憶装置に前記アクセス要求に対応する所定のデータの読出しを要求し、
    設定された前記タイムアウト時間内に前記所定の記憶装置からデータを取得できない場合は、タイムアウトエラーの発生であると検出し、
    前記タイムアウトエラーが検出された場合は、前記各記憶装置内で発生した障害を管理するための第1管理部とは異なる第2管理部により、前記タイムアウトエラーの発生を管理させ、さらに、
    前記所定の記憶装置と関連する他の記憶装置に、前記所定のデータに対応する他のデータの読み出しを要求し、
    前記他の記憶装置から取得される前記他のデータに基づいて前記所定のデータを生成し、生成された前記所定のデータを前記上位装置に転送する、
    記憶制御装置の制御方法。
JP2012510449A 2010-04-14 2010-04-14 記憶制御装置及び記憶制御装置の制御方法 Expired - Fee Related JP5451874B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/002687 WO2011128936A1 (ja) 2010-04-14 2010-04-14 記憶制御装置及び記憶制御装置の制御方法

Publications (2)

Publication Number Publication Date
JPWO2011128936A1 true JPWO2011128936A1 (ja) 2013-07-11
JP5451874B2 JP5451874B2 (ja) 2014-03-26

Family

ID=44798331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012510449A Expired - Fee Related JP5451874B2 (ja) 2010-04-14 2010-04-14 記憶制御装置及び記憶制御装置の制御方法

Country Status (5)

Country Link
US (1) US8984352B2 (ja)
EP (1) EP2560089B1 (ja)
JP (1) JP5451874B2 (ja)
CN (1) CN102741801B (ja)
WO (1) WO2011128936A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256526B2 (en) * 2012-02-23 2016-02-09 National Taiwan University Flash memory storage system and access method
GB2513333A (en) * 2013-04-23 2014-10-29 Ibm Method and apparatus for testing a storage system
CN103577357B (zh) * 2013-11-06 2017-11-17 华为技术有限公司 一种i/o请求消息的处理方法及控制器
JP2015179326A (ja) * 2014-03-18 2015-10-08 株式会社東芝 データ転送装置、データ転送方法およびコンピュータプログラム
US10095431B2 (en) * 2015-06-18 2018-10-09 John Edward Benkert Device controller and method of enforcing time-based sector level security
JP2018041165A (ja) * 2016-09-05 2018-03-15 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US10691519B2 (en) * 2016-09-15 2020-06-23 International Business Machines Corporation Hang detection and recovery
US10146444B2 (en) 2016-10-03 2018-12-04 Samsung Electronics Co., Ltd. Method for read latency bound in SSD storage systems
US10452278B2 (en) * 2017-03-24 2019-10-22 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
TWI639921B (zh) 2017-11-22 2018-11-01 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
US10990319B2 (en) * 2018-06-18 2021-04-27 Micron Technology, Inc. Adaptive watchdog in a memory device
JP7073952B2 (ja) * 2018-07-09 2022-05-24 横河電機株式会社 データ収集システム及びデータ収集方法
JP7137612B2 (ja) * 2020-12-24 2022-09-14 株式会社日立製作所 分散型ストレージシステム、データ復旧方法、及びデータ処理プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758057A (en) * 1995-06-21 1998-05-26 Mitsubishi Denki Kabushiki Kaisha Multi-media storage system
JPH09258907A (ja) 1996-03-25 1997-10-03 Mitsubishi Electric Corp 複数の記憶ディスク部を有した高可用性の外部記憶装置
JP3284963B2 (ja) * 1998-03-10 2002-05-27 日本電気株式会社 ディスクアレイの制御装置及び制御方法
US6789165B2 (en) * 2002-05-10 2004-09-07 International Business Machines Corporation Data storage array method and system
JP3778171B2 (ja) * 2003-02-20 2006-05-24 日本電気株式会社 ディスクアレイ装置
JP4851063B2 (ja) * 2003-12-22 2012-01-11 ソニー株式会社 データ記録再生装置及びデータ記録再生方法
US7213103B2 (en) * 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
US7383400B2 (en) * 2004-04-22 2008-06-03 Apple Inc. Method and apparatus for evaluating and improving disk access time in a RAID system
US7366852B2 (en) * 2004-07-29 2008-04-29 Infortrend Technology, Inc. Method for improving data reading performance and storage system for performing the same
JP2007213721A (ja) 2006-02-10 2007-08-23 Hitachi Ltd ストレージシステム及びその制御方法
JP2007233903A (ja) * 2006-03-03 2007-09-13 Hitachi Ltd 記憶制御装置及び記憶制御装置のデータ回復方法
CN1997033B (zh) * 2006-12-28 2010-11-24 华中科技大学 一种用于网络存储的方法及其系统
US8095763B2 (en) * 2007-10-18 2012-01-10 Datadirect Networks, Inc. Method for reducing latency in a raid memory system while maintaining data integrity
US8631286B2 (en) * 2008-10-15 2014-01-14 Mitsubishi Electric Corporation Information storage device

Also Published As

Publication number Publication date
US20130024734A1 (en) 2013-01-24
EP2560089B1 (en) 2018-07-04
CN102741801B (zh) 2015-03-25
US8984352B2 (en) 2015-03-17
JP5451874B2 (ja) 2014-03-26
CN102741801A (zh) 2012-10-17
WO2011128936A1 (ja) 2011-10-20
EP2560089A4 (en) 2014-01-08
EP2560089A1 (en) 2013-02-20

Similar Documents

Publication Publication Date Title
JP5451874B2 (ja) 記憶制御装置及び記憶制御装置の制御方法
JP4871546B2 (ja) ストレージシステム
US7451346B2 (en) Storage control device and data recovery method for storage control device
JP4555036B2 (ja) ストレージ装置及びストレージ装置のデバイス切替制御方法
US8041914B2 (en) Storage system comprising function for reducing power consumption
US7607035B2 (en) Disk array apparatus and method for controlling the same
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
JP5958020B2 (ja) ストレージシステム
US20200225863A1 (en) Non-Disruptive Cross-Protocol Live Data Migration
US8499098B2 (en) Storage system and storage system communication path management method
US8321622B2 (en) Storage system with multiple controllers and multiple processing paths
US20060236056A1 (en) Storage system and storage system data migration method
JP2007156597A (ja) ストレージ装置
JP2006178811A (ja) ストレージシステム及びストレージシステムのパス制御方法
JP2006107151A (ja) ストレージシステム及びストレージシステムの通信パス制御方法
WO2009101074A2 (en) Apparatus and method to allocate resources in a data storage library
JP6955159B2 (ja) ストレージシステム、ストレージ制御装置およびプログラム
US9229660B2 (en) Storage system and method for controlling storage system
US20070266218A1 (en) Storage system and storage control method for the same
US9047247B2 (en) Storage system and data processing method
US7886186B2 (en) Storage system and management method for the same
US20110167232A1 (en) Storage control apparatus and method of controlling storage control apparatus
WO2010038258A1 (en) Storage system having function of performing formatting or shredding
JP7281515B2 (ja) ストレージシステム、ストレージ管理方法、ストレージ管理プログラム
US20220222015A1 (en) Storage system, storage control device, and storage control method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131226

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5451874

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees