JP4911198B2 - ストレージ制御装置、ストレージシステムおよびストレージ制御方法 - Google Patents

ストレージ制御装置、ストレージシステムおよびストレージ制御方法 Download PDF

Info

Publication number
JP4911198B2
JP4911198B2 JP2009133798A JP2009133798A JP4911198B2 JP 4911198 B2 JP4911198 B2 JP 4911198B2 JP 2009133798 A JP2009133798 A JP 2009133798A JP 2009133798 A JP2009133798 A JP 2009133798A JP 4911198 B2 JP4911198 B2 JP 4911198B2
Authority
JP
Japan
Prior art keywords
storage
data
read
temporary storage
storage area
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.)
Expired - Fee Related
Application number
JP2009133798A
Other languages
English (en)
Other versions
JP2010282324A (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.)
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 JP2009133798A priority Critical patent/JP4911198B2/ja
Priority to US12/790,035 priority patent/US8321628B2/en
Publication of JP2010282324A publication Critical patent/JP2010282324A/ja
Application granted granted Critical
Publication of JP4911198B2 publication Critical patent/JP4911198B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/224Disk storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置、そのようなストレージ制御装置を備えたストレージシステム、および、ストレージ制御方法に関する。
磁気テープを用いた記録媒体を複数備えたテープライブラリ装置は、データバックアップ用など、大容量の記憶が必要な用途に広く利用されている。磁気テープは、低コストでかつ記憶容量が大きいという利点がある反面、HDD(Hard Disk Drive)などと比較してデータアクセス速度が遅い。そこで、近年では、複数のHDDを備えたディスクアレイ装置をキャッシュ機構(一次ストレージ)として用い、より大容量のテープライブラリ装置をバックエンド(二次ストレージ)に配置した階層型ストレージシステムが利用されている。
階層型ストレージシステムでは、例えば、次のような処理が行われる。ホストからデータの書き込み要求があった場合、そのデータは一次ストレージに一旦書き込まれ、書き込みが完了すると、ホストに書き込み完了が報告される。その後、一次ストレージは、書き込まれたデータを二次ストレージに書き込む。また、ホストからデータの読み出し要求があった場合、そのデータが一次ストレージに記憶されていれば、そのデータがホストに転送される。一方、そのデータが一次ストレージに記憶されていなければ、データは二次ストレージから一次ストレージに書き込まれ、書き込みが完了した後、そのデータが一次ストレージからホストに転送される。
しかしながら、このような処理が行われるシステムでは、一次ストレージが故障すると、ホストから書き込みおよび読み出しのための一切のアクセスができなくなってしまうという問題がある。例えば、ホストから読み出し要求があった場合、たとえ二次ストレージに有効なデータが存在していたとしても、ホストはそのデータを取得できなくなってしまう。
なお、一次ストレージの故障対策を施した階層型ストレージシステムとして、一次ストレージに現用記憶部と予備用記憶部とを設けておき、故障した現用記憶部の論理ボリュームを予備用記憶部に復元するものがあった(例えば、特許文献1参照)。ただし、このような技術では、予備用記憶部が必要になる分、一次ストレージの製造コストは高くなる。
また、上記に関連する技術として、メモリの障害発生時に、喪失した障害ページのコピーをトレースキャッシュから二次ストレージに出力することで、障害ページを復旧するようにした計算機システムがあった(例えば、特許文献2参照)。さらに、ミラーリング構成の一次ストレージにおいて、ディスクディグレード発生時に、空きのホットスペアが存在しない場合には、他のディスクペアを解体してその1つを新規ホットスペアとするものがあった(例えば、特許文献3参照)。
特開2006−190039号公報 特開平9−81464号公報 国際公開WO2006/085357号公報
前述のように、階層型ストレージシステムでは、一次ストレージが故障すると、ホストからの書き込みおよび読み出しのためのアクセスができなくなってしまい、システムの運用が停止されてしまうという問題があった。
本発明はこのような点に鑑みてなされたものであり、故障などにより一次ストレージと通信できない場合でも階層型ストレージシステムの運用を継続できるようにしたストレージ制御装置、ストレージシステムおよびストレージ制御方法を提供することを目的とする。
上記目的を達成するために、一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置が提供される。このストレージ制御装置は、前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御する第1の読み出し制御部と、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する第2の読み出し制御部と、を有する。
このようなストレージ制御装置では、二次ストレージに記録されたデータの読み出し要求を受け付けたとき、一次ストレージとの通信が不可能であった場合には、データ記録判定部により、読み出しを要求されたデータが一時記憶領域に記憶されているか否かが判定される。ここで、一時記憶領域は、階層型ストレージシステムが備える情報処理装置のうち、一次ストレージおよび二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定されたものである。読み出しを要求されたデータが一時記憶領域に記憶されていた場合には、第1の読み出し制御部の制御の下で、そのデータが一時記憶領域から読み出されて、読み出し要求に対する応答として出力される。一方、読み出しを要求されたデータが一時記憶領域に記憶されていなかった場合には、第2の読み出し制御部の制御の下で、そのデータが二次ストレージから読み出されて一時記憶領域に格納されるとともに、そのデータが読み出し要求に対する応答として出力される。
また、上記目的を達成するために、ストレージシステムおよびストレージ制御方法が提供される。
上記のストレージ制御装置によれば、一次ストレージとの通信が不可能となった場合でも、一時記憶領域を用いて階層型ストレージシステムの運用を継続することができる。
第1の実施の形態に係るストレージシステムの構成例を示す図である。 第2の実施の形態に係るストレージシステムの全体構成例を示す図である。 ストレージシステムが備える各制御プロセッサ間の結線図を示す図である。 VL制御プロセッサのハードウェア構成例を示す図である。 ディスクアレイ装置のハードウェア構成例を示す図である。 ストレージシステムの各制御プロセッサが備える機能を示す図である。 VL管理テーブルに格納されるデータの例を示す図である。 一時記憶管理テーブルに格納されるデータの例を示す図である。 ストレージシステムでの処理手順を示すフローチャート(その1)である。 ストレージシステムでの処理手順を示すフローチャート(その2)である。 ストレージシステムでの処理手順を示すフローチャート(その3)である。 ストレージシステムでの処理手順を示すフローチャート(その4)である。 ストレージシステムでの処理手順を示すフローチャート(その5)である。 第3の実施の形態に係るストレージ制御装置の機能を示す図である。
以下、実施の形態を図面を参照して詳細に説明する。
図1は、第1の実施の形態に係るストレージシステムの構成例を示す図である。
図1に示すストレージシステムには、一次ストレージ1と、この一次ストレージ1より大容量であるがアクセス速度の低い二次ストレージ2と、ストレージ制御装置10とが接続されている。さらに、本実施の形態のストレージシステムには、要求受け付け装置20およびインタフェース装置30も接続されている。
ストレージ制御装置10は、一次ストレージ1および二次ストレージ2を階層型ストレージシステムとして動作させるように制御する。例えば、二次ストレージ2へのデータの書き込みが要求された場合には、そのデータを一次ストレージ1に一旦格納させた後、そのデータを二次ストレージ2にも格納させる。また、二次ストレージ2に記憶されたデータの読み出しが要求された場合には、まず、そのデータが一次ストレージ1にキャッシュされているかを判定する。読み出しを要求されたデータが一次ストレージ1にキャッシュされていれば、キャッシュされているデータを出力させる。一方、読み出しを要求されたデータが一次ストレージ1にキャッシュされていなければ、読み出しを要求されたデータを二次ストレージ2から一次ストレージ1に格納させた後、一次ストレージ1からデータを出力させる。
本実施の形態では、例として、二次ストレージ2に対するデータの書き込み要求や、二次ストレージ2からのデータの読み出し要求は、要求受け付け装置20によって受け付けられる。この場合、ストレージ制御装置10は、これらの要求が受け付けられたことを要求受け付け装置20を通じて検知する。要求受け付け装置20は、これらの要求を、例えば、ホスト装置などの外部装置から受け付ける。あるいは、要求受け付け装置20は、これらの要求を、自機に接続された入力デバイスを用いたユーザ操作に応じて受け付けてもよい。
インタフェース装置30は、二次ストレージ2にアクセスするためのインタフェース機能を提供する装置である。
次に、ストレージ制御装置10が備える機能について説明する。ストレージ制御装置10は、通信可否判定部11、データ記録判定部12、読み出し制御部13、書き込み制御部14および復帰制御部15を備えている。なお、これらの各機能は、例えば、ストレージ制御装置10が備えるCPU(Central Processing Unit)が、所定のプログラムを実行することで実現される。
通信可否判定部11は、要求受け付け装置20により書き込み要求や読み出し要求が受け付けられたときに、ストレージ制御装置10と一次ストレージ1との通信が可能であるか否かを判定する。通信可否判定部11は、例えば、一次ストレージ1が故障している場合や、一次ストレージ1とストレージ制御装置10との間の接続経路に障害が発生している場合などに、通信が不可能と判定する。
データ記録判定部12は、要求受け付け装置20により読み出し要求が受け付けられたとき、読み出しを要求されたデータが所定の記憶領域に記憶されているか否かを判定する。
読み出し制御部13は、データ記録判定部12の判定結果に基づき、読み出しを要求されたデータの記憶領域からの読み出し動作や、読み出しを要求されたデータを要求受け付け装置20から出力させる動作を制御する。
書き込み制御部14は、要求受け付け装置20により書き込み要求が受け付けられたとき、書き込みを要求されたデータを所定の記憶領域へ書き込むための動作を制御する。
復帰制御部15は、要求受け付け装置20により書き込み要求が受け付けられたとき、通信可否判定部11によりストレージ制御装置10と一次ストレージ1との通信が不可能と判定された場合に動作する機能である。復帰制御部15は、ストレージ制御装置10と一次ストレージ1との通信が回復したときのデータ書き込み動作を制御する。
以下、上記各機能の動作を、順を追って説明する。まず、ストレージ制御装置10と一次ストレージ1との通信が可能な状態での動作について説明する。
要求受け付け装置20により読み出し要求が受け付けられると、通信可否判定部11は、ストレージ制御装置10と一次ストレージ1との通信が可能であるか否かを判定する。ストレージ制御装置10と一次ストレージ1との通信が可能であった場合、データ記録判定部12は、読み出しを要求されたデータが一次ストレージ1にキャッシュされているかを判定する。
読み出しを要求されたデータが一次ストレージ1にキャッシュされている場合、読み出し制御部13は、そのデータを一次ストレージ1から読み出し、読み出したデータを読み出し要求に対する応答として要求受け付け装置20が出力するように制御する。一方、読み出しを要求されたデータが一次ストレージ1にキャッシュされていない場合、読み出し制御部13は、読み出しを要求されたデータを二次ストレージ2から一次ストレージ1に格納させる。そして、一次ストレージ1に格納されたデータを読み出し、読み出したデータを読み出し要求に対する応答として要求受け付け装置20が出力するように制御する。
また、要求受け付け装置20により書き込み要求が受け付けられると、通信可否判定部11は、ストレージ制御装置10と一次ストレージ1との通信が可能であるか否かを判定する。ストレージ制御装置10と一次ストレージ1との通信が可能であった場合、書き込み制御部14は、書き込みが要求されたデータを一次ストレージ1に格納させた後、格納されたデータを二次ストレージ2にも格納させる。
次に、ストレージ制御装置10と一次ストレージ1との通信が不可能な状態での動作について説明する。
要求受け付け装置20により読み出し要求が受け付けられたとき、通信可否判定部11によりストレージ制御装置10と一次ストレージ1との通信が不可能と判定されると、データ記録判定部12は、読み出しを要求されたデータが一時記憶領域21に記憶されているか否かを判定する。ここで、一時記憶領域21とは、ストレージシステムが備える情報処理装置のうち、一次ストレージ1および二次ストレージ2を除く情報処理装置に対して個別に接続された記憶装置内に設定される記憶領域である。図1では、このような情報処理装置としてストレージ制御装置10、要求受け付け装置20およびインタフェース装置30が適用可能である。また、一時記憶領域21は、例えば、これらの情報処理装置の内部に搭載されたHDDなどの不揮発性記憶装置に設定される。
読み出し制御部13は、読み出しを要求されたデータが一時記憶領域に記憶されていた場合には、読み出しを要求されたデータを一時記憶領域21から読み出し、読み出したデータを読み出し要求に対する応答として要求受け付け装置20が出力するように制御する。一方、要求されたデータが一時記憶領域21に記憶されていなかった場合には、読み出しを要求されたデータを二次ストレージ2から読み出して一時記憶領域21に格納させる。これとともに、一時記憶領域21に格納されたデータを、読み出し要求に対する応答として要求受け付け装置20から出力させる。このような処理により、一時記憶領域21は、一次ストレージ1と同様に、二次ストレージ2のキャッシュとして利用されるようになる。
ここで、読み出し要求を受け付けた場合には、一時記憶領域として、要求受け付け装置20に個別に接続された記憶装置に設定される領域(図1の一時記憶領域21)が優先的に使用されることが望ましい。これにより、要求されたデータが一時記憶領域21に記憶されていた場合には、一時記憶領域21内のデータを即座に出力して応答することができる。
要求受け付け装置20により書き込み要求が受け付けられたとき、通信可否判定部11によりストレージ制御装置10と一次ストレージ1との通信が不可能と判定されると、書き込み制御部14は、書き込みを要求されたデータを一時記憶領域21に格納させる。復帰制御部15は、書き込み制御部14による一時記憶領域21への書き込み処理が実行された後に、通信可否判定部11によりストレージ制御装置10と一次ストレージ1との通信が回復したと判定された場合に、一時記憶領域21に格納された、書き込みが要求されたデータを、一次ストレージ1に移動させる。さらに、その後に、一次ストレージ1に移動させたデータを、二次ストレージ2にも記憶させる。
このような処理により、書き込みが要求されたデータを一次ストレージ1に格納できない場合でも、そのデータを一時記憶領域に保持しておき、通信復帰後に、一時記憶領域に保持されたデータを一次ストレージ1に格納して、元の動作を再開させることができるようになる。
ここで、書き込み要求を受け付けた場合には、一時記憶領域として、インタフェース装置30に個別に接続された記憶装置(ただし、二次ストレージ2を除く)に設定される領域(図1の一時記憶領域31)が優先的に使用されることが望ましい。これにより、例えば、一次ストレージ1との通信が復帰する前に一時記憶領域31に記憶されたデータを出力しなければならない事態が発生した場合に、一時記憶領域31に記憶されたデータを短時間で二次ストレージ2に移動させることができるようになる。
以上のストレージシステムでは、ストレージ制御装置10と一次ストレージ1との通信が不可能な状態で読み出し要求や書き込み要求を受け付けた場合でも、一時記憶領域を一次ストレージ1の代替手段として利用することで、階層型ストレージシステムの運用を継続させることができる。また、一時記憶領域は、ストレージシステム内にすでに用意されたハードウェア資源によって実現されるので、システムの製造コストや装置の設置面積を増大させることなく、上記効果を得ることができる。
なお、ストレージ制御装置10は、書き込み要求や読み出し要求を、要求受け付け装置20を介さずに直接受け付けるようにしてもよい。この場合、要求受け付け装置20は不要となる。そして、ストレージ制御装置10は、一次ストレージ1との通信不能時に読み出し要求を受け付けた場合には、自機に個別に接続された記憶装置に設定した一時記憶領域を優先的に利用すればよい。
また、ストレージ制御装置10は、インタフェース装置30を介さずに、二次ストレージ2に対して直接アクセスできる構成であってもよい。この場合、インタフェース装置30は不要となる。そして、ストレージ制御装置10は、一次ストレージ1との通信不能時に書き込み要求を受け付けた場合には、自機に個別に接続された記憶装置に設定した一時記憶領域を優先的に利用すればよい。
次に、一次ストレージとして磁気ディスクを、二次ストレージとして磁気テープをそれぞれ用いた階層型ストレージシステムについて説明する。
図2は、第2の実施の形態に係るストレージシステムの全体構成例を示す図である。
図2に示すストレージシステムは、チャネルプロセッサ200a,200b、仮想ライブラリ制御プロセッサ(以下、“VL制御プロセッサ”と略称する。VL:Virtual Library)300a,300b、ディスクアレイ装置400a,400bおよびデバイスプロセッサ500a,500bを備えている。また、これらの各部は、ファイバチャネルスイッチ600a,600bを介して光ファイバにより相互に接続されている。
なお、本実施の形態では、信頼性の向上や処理負荷の分散などを目的として、チャネルプロセッサ、VL制御プロセッサ、ディスクアレイ装置およびデバイスプロセッサの各機能がすべて2系統ずつ設けられている。例えば、VL制御プロセッサ300a,300bについては、一方が他方のバックアップとして機能するように構成されればよい。
また、チャネルプロセッサ200a,200b、VL制御プロセッサ300a,300b、ディスクアレイ装置400a,400b、およびデバイスプロセッサ500a,500bは、それぞれ2系統の接続経路により相互に接続されている。すなわち、その一方の経路はファイバチャネルスイッチ600aを介して接続され、他方の経路はファイバチャネルスイッチ600bを介して接続されている。これにより、接続経路の耐故障性が向上する。
チャネルプロセッサ200a,200bには、例えば光ファイバなどを介してホスト装置100が接続されている。チャネルプロセッサ200a,200bは、ホスト装置100に対して、このストレージシステムにより実現される仮想ライブラリにアクセスするためのインタフェース機能を提供する。
ここで、仮想ライブラリとは、デバイスプロセッサ500a,500bに接続されたテープライブラリ装置510による大容量の記憶領域を、ホスト装置100が、ディスクアレイ装置400a,400bを通じて仮想的に利用できるようにしたものである。すなわち、ここでは、ディスクアレイ装置400a,400bを一次ストレージとし、テープライブラリ装置510を二次ストレージとした階層型ストレージシステムが構成されている。
チャネルプロセッサ200a,200bは、ホスト装置100からデータの書き込み要求を受けると、例えばVL制御プロセッサ300aの制御の下で、ホスト装置100からのデータをディスクアレイ装置400a,400bのいずれかに書き込む。また、ホスト装置100からデータの読み出し要求を受けると、例えばVL制御プロセッサ300aの制御の下で、ホスト装置100からのデータをディスクアレイ装置400a,400bのいずれかから読み出す。そして、ディスクアレイ装置から読み出したデータをホスト装置100に送信する。なお、チャネルプロセッサ200a,200bには、複数のホスト装置100が接続されていてもよい。
VL制御プロセッサ300a,300bは、一次ストレージとしてのディスクアレイ装置400a,400bを、テープライブラリ装置510内のデータをキャッシュする一次ストレージとして機能させるように、データの書き込み動作や転送動作を管理する。そして、VL制御プロセッサ300a,300bは、このような一次ストレージおよび二次ストレージを用いた仮想ライブラリに対してホスト装置100がアクセスできるように、チャネルプロセッサ200a,200bの動作を制御する。
また、後述するように、VL制御プロセッサ300a,300bは、ディスクアレイ装置400a,400bに障害が発生した場合でも、ホスト装置100から仮想ライブラリへのアクセスを継続できるようにするための制御機能も備えている。
ディスクアレイ装置400a,400bは、それぞれ複数枚の磁気ディスクを備え、仮想ライブラリにおける一次ストレージとして機能する。基本的に、ディスクアレイ装置400a,400bのアクセス速度はテープライブラリ装置510と比較して高速であるが、その容量はテープライブラリ装置510より小さい。
デバイスプロセッサ500a,500bは、テープライブラリ装置510にアクセスするためのインタフェース機能を提供する。テープライブラリ装置510は、例えば、複数の磁気テープを備え、仮想ライブラリにおける二次ストレージとして機能する。なお、磁気テープは、例えば、それぞれ個別のテープカセットに収納された状態で提供される。
なお、チャネルプロセッサ200a,200b、VL制御プロセッサ300a,300bおよびデバイスプロセッサ500a,500bは、例えば、それぞれ個別のコンピュータとして実現される。また、これらの各コンピュータは、1つの筐体内に設置されてもよい。
図3は、ストレージシステムが備える各制御プロセッサ間の結線図を示す図である。
チャネルプロセッサ200a,200b、VL制御プロセッサ300a,300bおよびデバイスプロセッサ500a,500bのそれぞれは、例えば、光ファイバだけでなく、LAN(Local Area Network)によっても接続されていてもよい。図3の例では、各プロセッサは、LANスイッチ610a,610bを介してLANに接続されている。このように接続経路を冗長化することで、耐故障性が向上する。
例えば、本実施の形態では、後述するように、ディスクアレイ装置400a,400bに障害が発生した場合でも、チャネルプロセッサ200a,200b、VL制御プロセッサ300a,300bおよびデバイスプロセッサ500a,500bにより仮想ライブラリの運用を継続することができる。ここで、例えば、VL制御プロセッサ300a,300bが、光ファイバによる接続経路上の問題のために、ディスクアレイ装置400a,400bに接続できなかったとする。このとき、VL制御プロセッサ300a,300bは、ディスクアレイ装置400a,400bが正常に動作していたとしても、ディスクアレイ装置400a,400bに障害が発生したと認識する場合があり得る。このような場合に、図3のように光ファイバ以外の接続経路を用意しておくことで、チャネルプロセッサ200a,200b、VL制御プロセッサ300a,300bおよびデバイスプロセッサ500a,500bにより、仮想ライブラリの運用をより確実に継続することができる。
また、例えば、光ファイバを書き込みデータや読み出しデータの転送用に使用し、LANを制御プロセッサ間の制御データの転送用に使用するようにしてもよい。この場合、例えば、光ファイバによる接続経路上に障害が発生した場合には、LANを通じて書き込みデータや読み出しデータを転送できるようにすることで、耐故障性が向上する。
なお、図3の例では、一方の系統の制御プロセッサ、すなわち、チャネルプロセッサ200a、VL制御プロセッサ300aおよびデバイスプロセッサ500aについては、それぞれLANスイッチ610aを介して接続されている。また、他方の系統の制御プロセッサ、すなわち、チャネルプロセッサ200b、VL制御プロセッサ300bおよびデバイスプロセッサ500bについては、それぞれLANスイッチ610bを介して接続されている。
次に、ストレージシステムが備える装置の構成および機能について説明する。なお、以下では説明を簡単にするために、チャネルプロセッサ200a,200bを“チャネルプロセッサ200”と表し、VL制御プロセッサ300a,300bを“VL制御プロセッサ300”と表し、ディスクアレイ装置400a,400bを“ディスクアレイ装置400”と表し、デバイスプロセッサ500a,500bを“デバイスプロセッサ500”と表すことにする。
図4は、VL制御プロセッサのハードウェア構成例を示す図である。
VL制御プロセッサ300は、例えば、図4に示すようなコンピュータによって実現される。このコンピュータは、CPU301、RAM(Random Access Memory)302、HDD303、グラフィック処理部304,入力インタフェース(I/F)305、読み取り部306および通信インタフェース(I/F)307を備えており、これらの各部はバス308によって相互に接続されている。
CPU301は、HDD303に記憶された各種プログラムを実行することにより、このコンピュータ全体を統括的に制御する。RAM302は、CPU301に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。HDD303は、CPU301により実行されるプログラムや、プログラムの実行に必要な各種のデータなどを記憶する。
グラフィック処理部304には、例えば、モニタ304aが接続されている。このグラフィック処理部304は、CPU301からの命令に従って、モニタ304aの画面上に画像を表示させる。入力インタフェース305には、例えば、キーボード305aやマウス305bが接続されている。この入力インタフェース305は、キーボード305aやマウス305bからの信号を、バス308を介してCPU301に送信する。
読み取り部306は、可搬型の記録媒体306aからデータを読み取り、バス308を介してCPU301に送信する。記録媒体306aとしては、例えば、光ディスクなどを適用可能である。通信インタフェース307は、図示しないコネクタを介して、チャネルプロセッサ200、ディスクアレイ装置400、デバイスプロセッサ500などの外部装置と接続し、外部装置との間でデータの送受信を行う。
なお、ホスト装置100、チャネルプロセッサ200およびデバイスプロセッサ500も、基本的に、図4に示したVL制御プロセッサ300と同様のハードウェア構成によって実現可能である。
図5は、ディスクアレイ装置のハードウェア構成例を示す図である。
ディスクアレイ装置400は、制御回路401、メモリ402、ディスクインタフェース403、ディスクアレイ404および通信インタフェース405を備えている。
制御回路401は、ディスクアレイ装置400全体を統括的に制御する。メモリ402は、例えば、制御回路401での処理に必要な各種のデータなどを記憶する。ディスクインタフェース403は、制御回路401からの要求に応じて、ディスクアレイ404に対するデータの書き込みや、ディスクアレイ404からのデータの読み出しを行う。ディスクアレイ404には、複数の磁気ディスクがアレイ状に搭載されている。通信インタフェース405は、図示しないコネクタを介して、チャネルプロセッサ200、VL制御プロセッサ300およびデバイスプロセッサ500などの外部装置と接続し、外部装置との間でデータの送受信を行う。
図6は、ストレージシステムの各制御プロセッサが備える機能を示す図である。
VL制御プロセッサ300は、VL制御部321、障害制御部322および一時記憶処理部323を備えている。これらの機能は、例えば、VL制御プロセッサ300が備えるCPUが、所定のプログラムを実行することにより実現される。
VL制御部321は、VL管理テーブル331を参照して、仮想ライブラリにおける基本的なデータの書き込みや転送の動作を制御する。後述するように、VL管理テーブル331には、二次ストレージとしてのテープライブラリ装置510内の記憶領域と、一次ストレージとしてのディスクアレイ装置400内の記憶領域とを対応付けるための情報が格納されている。さらに、VL管理テーブル331には、ディスクアレイ装置400内のデータに対応するテープライブラリ装置510内のデータが最新であるか否かを識別するための情報も格納されている。
障害制御部322は、ディスクアレイ装置400に障害が発生した場合に、仮想ライブラリの運用を継続させるための動作を制御する。障害制御部322は、障害発生時に書き込みや読み出しが要求されたデータを、チャネルプロセッサ200、VL制御プロセッサ300およびデバイスプロセッサ500にそれぞれ設定された一時記憶領域231,333,531のいずれかに一時的に記録する。そして、障害制御部322は、障害の復旧後に、一時記憶領域に記録したデータを用いて、仮想ライブラリの運用状態を正常に復帰させる。障害制御部322は、一時記憶管理テーブル332を用いて、各プロセッサの一時記憶領域に保持されたデータを管理する。
なお、VL管理テーブル331および一時記憶管理テーブル332は、例えば、VL制御プロセッサ300が備えるHDDなどの記憶領域に格納される。また、これらのテーブルは、外部の機器に記憶されていてもよい。
一時記憶処理部323は、ディスクアレイ装置400に障害が発生した場合に、障害制御部322からの要求に応じて、一時記憶領域333に対するデータの書き込みや、一時記憶領域333からのデータの読み出しを行う。一時記憶領域333は、例えば、VL制御プロセッサ300が備えるHDDの記憶領域の一部として割り当てられる。このような記憶領域は、所定の容量分だけあらかじめ設定されていてもよいし、一時記憶処理部323により動的に設定されてもよい。
チャネルプロセッサ200は、ホストインタフェース(I/F)処理部221および一時記憶処理部222を備えている。これらの機能は、例えば、チャネルプロセッサ200が備えるCPUが、所定のプログラムを実行することにより実現される。
ホストインタフェース処理部221は、ホスト装置100からのデータの書き込み要求や読み出し要求を受け付ける。そして、ホストインタフェース処理部221は、VL制御プロセッサ300のVL制御部321の制御の下で、ディスクアレイ装置400にアクセスし、データの書き込み動作や読み出し動作を実行する。
一時記憶処理部222は、ディスクアレイ装置400に障害が発生した場合に、VL制御プロセッサ300の障害制御部322からの要求に応じて、一時記憶領域231に対するデータの書き込みや、一時記憶領域231からのデータの読み出しを行う。一時記憶領域231は、例えば、チャネルプロセッサ200が備えるHDDの記憶領域の一部として割り当てられる。このような記憶領域は、所定の容量分だけあらかじめ設定されていてもよいし、一時記憶処理部222により動的に設定されてもよい。
デバイスプロセッサ500は、テープインタフェース(I/F)処理部521および一時記憶処理部522を備えている。これらの機能は、例えば、デバイスプロセッサ500が備えるCPUが、所定のプログラムを実行することにより実現される。
テープインタフェース処理部521は、チャネルプロセッサ200およびVL制御プロセッサ300からの要求に応じて、テープライブラリ装置510内の磁気テープへのデータの書き込みや、磁気テープからのデータの読み出しを行う。
一時記憶処理部522は、ディスクアレイ装置400に障害が発生した場合に、VL制御プロセッサ300の障害制御部322からの要求に応じて、一時記憶領域531に対するデータの書き込みや、一時記憶領域531からのデータの読み出しを行う。一時記憶領域531は、例えば、デバイスプロセッサ500が備えるHDDの記憶領域の一部として割り当てられる。このような記憶領域は、所定の容量分だけあらかじめ設定されていてもよいし、一時記憶処理部522により動的に設定されてもよい。
図7は、VL管理テーブルに格納されるデータの例を示す図である。
VL管理テーブル331には、基本的に、テープライブラリ装置510内の記憶領域とディスクアレイ装置400内の記憶領域とを対応付けるための情報が格納されている。図7の例では、このような情報として、テープライブラリ装置510内の記憶領域を示す物理ボリュームと、ディスクアレイ装置400におけるデータの仮想的な記憶領域および記憶位置をそれぞれ示す論理ボリュームおよびアドレスとが格納されている。1つの物理ボリュームは、例えば、1つのテープカセットに対応している。また、図7の例では、1つの物理ボリュームに対して複数の論理ボリュームを割り当てることが可能になっている。
さらに、VL管理テーブル331には、1つのアドレスにより管理される領域のデータの状態を示すデータステータスが格納されている。このデータステータスには、例えば、“Dirty”“Hit”“Miss”のいずれかの値が設定される。
“Dirty”は、ディスクアレイ装置400上には最新のデータが記録されているが、そのデータによりテープライブラリ装置510内の対応するデータが更新されていない状態を示す。“Hit”は、ディスクアレイ装置400上のデータと、テープライブラリ装置510上の対応するデータとが等価である状態を示す。“Miss”は、ディスクアレイ装置400上にデータが割り当てられておらず、テープライブラリ装置510上にのみデータが記録されている状態を示す。
図8は、一時記憶管理テーブルに格納されるデータの例を示す図である。
一時記憶管理テーブル332には、一時記憶領域231,333,531に格納されたデータを管理するための情報が格納される。図8の例では、一時記憶領域におけるデータのアドレスと、その一時記憶領域を識別するための記憶領域種別とが、一次ストレージとしてのディスクアレイ装置400上のアドレスと対応付けられている。ここで、記憶領域種別は、そのデータが格納された一時記憶領域がどの制御プロセッサに設けられたものかを識別するためのものである。本実施の形態では、記憶領域種別により、そのデータが一時記憶領域231,333,531のうちのどこに格納されているかが識別可能になる。
なお、一時記憶管理テーブル332に記録されたディスクアレイ装置400上のアドレスは、VL管理テーブル331に記録されたアドレスに対応している。このため、例えば、図8に示した一時記憶領域上のアドレスおよび記憶領域種別の情報を、VL管理テーブル331内のアドレスの欄に格納して、一時記憶管理テーブル332を用いず、VL管理テーブル331のみを用いて一時記憶領域を管理するようにしてもよい。
次に、図9〜図13は、ストレージシステムでの処理手順を示すフローチャートである。
まず、図9を用いて、主に、ディスクアレイ装置400に障害が発生していない場合の処理について説明する。
[ステップS11]ホスト装置100からI/O(Input/Output)要求が送信されると、チャネルプロセッサ200のホストインタフェース処理部221は、このI/O要求を受け付ける。ホストインタフェース処理部221は、I/O要求を受け付けたことを、VL制御プロセッサ300のVL制御部321に通知する。
[ステップS12]VL制御部321は、ディスクアレイ装置400が正常に動作しているか否かを判定する。ディスクアレイ装置400が正常に動作している場合には、ステップS13の処理が実行される。一方、正常に動作していない場合、VL制御部321は、障害制御部322に障害の発生を通知する。この後、ステップS24の処理が実行される。
なお、このステップS12の判定処理は、例えば、ホストインタフェース処理部221からI/O要求の受信通知を受けた時点で、VL制御部321がディスクアレイ装置400に問い合わせることで行われる。あるいは、VL制御部321は、ディスクアレイ装置400に対する問い合わせを定期的に行ってもよい。
また、ディスクアレイ装置400が正常に動作していないと判定されるケースには、ディスクアレイ装置400自体の動作に異常がある場合の他、接続経路の異常によりディスクアレイ装置400との通信が不可能である場合なども含まれる。
[ステップS13]VL制御部321は、ホストインタフェース処理部221からの通知に基づき、ホスト装置100からのI/O要求が書き込み要求であったか、あるいは読み出し要求であったかを判定する。書き込み要求であった場合にはステップS14の処理が実行され、読み出し要求であった場合にはステップS19の処理が実行される。
[ステップS14]ホスト装置100から書き込みが要求されたデータが、ディスクアレイ装置400に書き込まれる。この処理では、まず、VL制御部321は、ディスクアレイ装置400におけるデータの書き込みアドレスをホストインタフェース処理部221に通知する。ホストインタフェース処理部221は、通知された書き込みアドレスに対して、ホスト装置100からのデータを書き込む。
[ステップS15]VL制御部321は、ホストインタフェース処理部221からデータ書き込みの完了通知を受けると、VL管理テーブル331を更新する。例えば、VL制御部321は、データが書き込まれたアドレスに対応するデータステータスを“Dirty”に設定する。VL管理テーブル331の更新処理が終了すると、VL制御部321は、ホストインタフェース処理部221に対して処理完了通知を出力する。
[ステップS16]ホストインタフェース処理部221は、VL制御部321から処理完了通知を受けると、ホスト装置100に対して書き込み処理が完了したことを報告する。
[ステップS17]ステップS14においてディスクアレイ装置400に書き込まれたデータが、テープライブラリ装置510にも書き込まれる。この処理では、まず、VL制御部321は、VL管理テーブル331を参照し、データが書き込まれたディスクアレイ装置400上のアドレスと、書き込み先とするテープライブラリ装置510上の物理ボリュームとを取得する。そして、取得したそれらの情報をデバイスプロセッサ500のテープインタフェース処理部521に通知する。テープインタフェース処理部521は、ディスクアレイ装置400上の通知されたアドレスからデータを読み出し、テープライブラリ装置510上の通知された物理ボリュームに対応する領域に書き込む。
なお、このステップS17の処理は、ステップS15の処理が終了した後の任意のタイミングで実行されればよい。
[ステップS18]VL制御部321は、ステップS17での処理に従い、VL管理テーブル331を更新する。ここでは例えば、対応するデータステータスが“Hit”に設定される。これにより、ホスト装置100からデータの書き込みが要求された場合の一連の処理が終了する。
[ステップS19]VL制御部321は、VL管理テーブル331を参照して、ホスト装置100から読み出しを要求されたデータがディスクアレイ装置400にキャッシュされているか否かを判定する。ここでは、要求されたデータに対応するデータステータスが“Hit”または“Dirty”の場合に、データがキャッシュされていると判定する。データがディスクアレイ装置400にキャッシュされている場合には、ステップS22の処理が実行され、キャッシュされていない場合には、ステップS20の処理が実行される。
[ステップS20]VL制御部321は、ホスト装置100から要求されたデータをテープライブラリ装置510から読み出し、ディスクアレイ装置400上の指定したアドレスに転送するように、デバイスプロセッサ500のテープインタフェース処理部521に依頼する。テープインタフェース処理部521は、テープライブラリ装置510からデータを読み出し、ディスクアレイ装置400上の指定されたアドレスに書き込む。
[ステップS21]VL制御部321は、ステップS20での処理に従い、VL管理テーブル331を更新する。ここでは例えば、データを記録したディスクアレイ装置400上のアドレスに対応するデータステータスが“Hit”に設定される。
[ステップS22]ホスト装置100から要求されたデータが、ディスクアレイ装置400から読み出されてホスト装置100に転送される。この処理では、まず、VL制御部321は、要求されたデータが書き込まれたアドレスをVL管理テーブル331から取得し、チャネルプロセッサ200のホストインタフェース処理部221に通知する。ホストインタフェース処理部221は、ディスクアレイ装置400上の通知されたアドレスからデータを読み出し、読み出したデータをホスト装置100に送信する。データの送信が終了すると、ホストインタフェース処理部221は、VL制御部321に対して、データ読み出しの完了通知を出力する。
[ステップS23]VL制御部321は、ホストインタフェース処理部221に対して処理完了通知を出力し、ホストインタフェース処理部221は、処理完了通知に応じて、ホスト装置100に対して読み出し処理が完了したことを報告する。この処理により、ホスト装置100からデータの読み出しが要求された場合の一連の処理が終了する。
[ステップS24]VL制御部321は、ホストインタフェース処理部221からの通知に基づき、ホスト装置100からのI/O要求が書き込み要求であったか、あるいは読み出し要求であったかを判定する。書き込み要求であった場合には、図10のステップS31の処理が実行され、読み出し要求であった場合には、図12のステップS71の処理が実行される。
次に、図10を用いて、ディスクアレイ装置400における障害発生時に、ホスト装置100から書き込みが要求された場合の処理について説明する。
[ステップS31]VL制御プロセッサ300の障害制御部322は、デバイスプロセッサ500の一時記憶領域531に空き領域があるか否かを、デバイスプロセッサ500の一時記憶処理部522に問い合わせる。一時記憶領域531に空き領域がある場合には、ステップS32の処理が実行され、空き領域がない場合には、ステップS33の処理が実行される。
なお、空き領域の有無については、例えば、障害制御部322が、一時記憶管理テーブル332における一時記憶領域ごとの情報登録数などから判定してもよい。
[ステップS32]ホスト装置100から書き込みを要求されたデータが、デバイスプロセッサ500の一時記憶領域531に書き込まれる。
この処理では、まず、障害制御部322は、デバイスプロセッサ500の一時記憶処理部522から、一時記憶領域531における空き領域のアドレスを取得する。なお、一時記憶処理部522は、例えば、デバイスプロセッサ500が備える記憶装置(例えばHDD)における現在の空き領域を、一時記憶領域531として確保して、空き領域のアドレスを障害制御部322に送信してもよい。
障害制御部322は、一時記憶処理部522から取得したアドレスを、チャネルプロセッサ200の一時記憶処理部222に対して通知する。一時記憶処理部222は、ホスト装置100からの書き込みデータをホストインタフェース処理部221から受け取る。そして、書き込みデータを、障害制御部322から通知されたアドレスとともに、デバイスプロセッサ500の一時記憶処理部522に送信し、一時記憶領域531にデータを格納するように依頼する。一時記憶処理部522は、一時記憶領域531内の対応する領域にデータを書き込む。
一時記憶処理部522による書き込み処理が終了すると、チャネルプロセッサ200の一時記憶処理部222に対して書き込み完了が通知され、一時記憶処理部222は、書き込み完了の通知に応じて、障害制御部322に書き込み完了を通知する。この後、ステップS37の処理が実行される。
[ステップS33]障害制御部322は、VL制御プロセッサ300内の一時記憶領域333に空き領域があるか否かを、一時記憶処理部323に問い合わせる。一時記憶領域333に空き領域がある場合には、ステップS36の処理が実行され、空き領域がない場合には、ステップS34の処理が実行される。
[ステップS34]障害制御部322は、一時記憶管理テーブル332を参照し、デバイスプロセッサ500の一時記憶領域531にすでにデータが格納されている場合には、このデータをテープライブラリ装置510に移動させる。デバイスプロセッサ500の一時記憶処理部522は、障害制御部322の制御の下で、一時記憶領域531に格納されたデータをテープライブラリ装置510に移動させる。これにより、デバイスプロセッサ500の記憶装置に空き領域が生成される。このとき、障害制御部322は、一時記憶管理テーブル332から、テープライブラリ装置510に移動された一時記憶領域531のデータに関する情報を削除する。また、VL制御部321は、テープライブラリ装置510に格納したデータに対応するVL管理テーブル331上のデータステータスを“Miss”に設定する。
[ステップS35]障害制御部322は、一時記憶管理テーブル332を参照し、VL制御プロセッサ300の一時記憶領域333にすでにデータが格納されている場合には、このデータを一時記憶処理部323を通じて読み出す。そして、デバイスプロセッサ500の一時記憶処理部522にデータを送信し、一時記憶領域531に記録させる。これにより、VL制御プロセッサ300の記憶装置に空き領域が生成される。このとき、障害制御部322は、一時記憶管理テーブル332中の、一時記憶領域531に記録されたデータに対応するアドレスおよび記憶領域種別を更新する。
[ステップS36]障害制御部322は、チャネルプロセッサ200の一時記憶処理部222を通じて、ホスト装置100から書き込みを要求されたデータを取得する。そして、障害制御部322は、取得したデータを一時記憶処理部323に受け渡し、一時記憶領域333に格納させる。一時記憶領域333への書き込み処理が終了すると、チャネルプロセッサ200の一時記憶処理部222に対して障害制御部322から書き込み完了が通知され、一時記憶処理部222は、書き込み完了通知に応じて、障害制御部322に書き込み完了を通知する。この後、ステップS37の処理が実行される。
[ステップS37]障害制御部322は、書き込み完了通知を受けると、一時記憶管理テーブル332を更新する。ここでは、一時記憶管理テーブルに、一次ストレージ上のアドレス、一時記憶領域上のアドレスおよび記憶領域種別を新たに登録する。ステップS32の処理が実行された場合には、デバイスプロセッサ500の一時記憶領域531のアドレスが一時記憶管理テーブル332に登録される。一方、ステップS36の処理が実行された場合には、VL制御プロセッサ300の一時記憶領域333のアドレスが一時記憶管理テーブル332に登録される。このような処理が終了すると、VL制御部321は、ホストインタフェース処理部221に対して処理完了通知を出力する。
[ステップS38]ホストインタフェース処理部221は、VL制御部321から処理完了通知を受けると、ホスト装置100に対して書き込み処理が完了したことを報告する。この後、図11に示すステップS51の処理が実行される。
以上の図10に示した処理では、ホスト装置100から書き込みが要求された場合、書き込みが要求されたデータを、最初にデバイスプロセッサ500上の一時記憶領域531に書き込むように制御される(ステップS31,S32)。これは、一時記憶領域に書き込まれたデータはその後にテープライブラリ装置510に書き込まれる可能性があり、そのような場合に、テープライブラリ装置510にできるだけ短時間で書き込みができるようにするためである。
また、デバイスプロセッサ500に空き領域がない場合には、VL制御プロセッサ300の一時記憶領域333にデータが格納される(ステップS31,S33,S36)。さらに、VL制御プロセッサ300にも空き領域がない場合には、デバイスプロセッサ500に空き領域が生成され(ステップS34)、その空き領域に対して、VL制御プロセッサ300の一時記憶領域333のデータが移動される(ステップS35)。そして、VL制御プロセッサ300に生成された空き領域に、書き込みが要求されたデータが格納される(ステップS36)。
次に、図11を用いて、ディスクアレイ装置400が障害から復帰したときの処理について説明する。
[ステップS51]ステップS32,S35において一時記憶領域531にデータが格納された後、デバイスプロセッサ500の記憶装置に対して他の種類の処理によりデータが記録されると、デバイスプロセッサ500の記憶装置の残容量が低下する。障害制御部322は、デバイスプロセッサ500の記憶装置の残容量が一定値以下に低下したか否かを判定する。この判定は、例えば、デバイスプロセッサ500の一時記憶処理部522からの通知を基に行われる。記憶装置の残容量が一定値以下に低下した場合には、ステップS52の処理が実行され、低下していない場合には、ステップS53の処理が実行される。
[ステップS52]障害制御部322は、デバイスプロセッサ500の一時記憶処理部522を制御して、一時記憶領域531に格納されたデータをテープライブラリ装置510に移動させる。一時記憶処理部522は、一時記憶領域531から対応するデータを読み出してテープインタフェース処理部521に受け渡し、テープライブラリ装置510への書き込みを依頼する。
[ステップS53]障害制御部322は、ディスクアレイ装置400が障害から復帰したか否かを判定する。ディスクアレイ装置400が障害から復帰した場合には、ステップS54の処理が実行され、復帰していない場合には、ステップS51の処理が再度実行される。
なお、ステップS51,S53による処理ループは、例えば一定時間ごとに繰り返される。また、例えば、ステップS53において障害から復帰したと判定されるまでの間に、ホスト装置100から新たな書き込み要求または読み出し要求が送信された場合には、図9に示した処理が再度実行されることになる。
[ステップS54]障害制御部322は、ステップS52が実行されて、デバイスプロセッサ500の一時記憶領域531のデータがすでにテープライブラリ装置510に移動されたか否かを判定する。一時記憶領域531のデータが移動済みである場合には、ステップS55の処理が実行され、データが移動されていない場合には、ステップS58の処理が実行される。
[ステップS55]障害制御部322は、テープライブラリ装置510に移動されたデータに対応する更新前のデータが、ディスクアレイ装置400に記録されているか否かを、VL制御部321に問い合わせる。VL制御部321は、VL管理テーブル331を参照して、この問い合わせに対する返答を行う。ディスクアレイ装置400に更新前のデータが記録されていた場合には、ステップS56の処理が実行され、記録されていなかった場合には、ステップS57の処理が実行される。
[ステップS56]障害制御部322は、ディスクアレイ装置400に記録されていた更新前のデータを削除する。これは、ディスクアレイ装置400上の情報を更新するためにテープライブラリ装置510から最新のデータを読み出そうとすると、比較的長時間を要してしまうためである。
[ステップS57]VL制御部321および障害制御部322は、VL管理テーブル331および一時記憶管理テーブル332の情報をそれぞれ更新する。ここでは、VL管理テーブル331内の、テープライブラリ装置510に移動済みのデータに対応するデータステータスが“Miss”に設定される。さらに、一時記憶管理テーブル332から、テープライブラリ装置510に移動された一時記憶領域531のデータに関する登録情報が削除される。
[ステップS58]障害制御部322は、一時記憶領域531,333に格納された、書き込みを要求されたデータを、ディスクアレイ装置400に移動させる。例えば、障害制御部322は、デバイスプロセッサ500の一時記憶処理部522を制御して、一時記憶領域531に格納されたデータをディスクアレイ装置400に移動させる。また、一時記憶領域333に格納されたデータについては、一時記憶処理部323を通じてそのデータを読み出し、ディスクアレイ装置400に移動させる。このとき、書き込みを要求されたデータに対応する古いデータがディスクアレイ装置400に記録されていた場合には、そのデータが一時記憶領域531,333からのデータによって更新される。
[ステップS59]VL制御部321および障害制御部322は、VL管理テーブル331および一時記憶管理テーブル332の情報をそれぞれ更新する。ここでは、VL管理テーブル331内の、ディスクアレイ装置400に移動されたデータに対応するデータステータスが“Dirty”に設定される。さらに、一時記憶管理テーブル332から、ディスクアレイ装置400に移動された一時記憶領域531または一時記憶領域333のデータに関する情報が削除される。
[ステップS60]ステップS58においてディスクアレイ装置400に移動されたデータが、テープライブラリ装置510にも書き込まれる。この処理手順は、ステップS17で説明した通りである。なお、このステップS60の処理は、ステップS59の処理終了後の任意のタイミングで行われればよい。
[ステップS61]VL制御部321は、ステップS60での処理に従い、VL管理テーブル331を更新する。ここでは、テープライブラリ装置510に書き込まれたデータに対応するデータステータスが“Hit”に設定される。
以上の図11に示した処理により、デバイスプロセッサ500の一時記憶領域531に格納されたデータが、ディスクアレイ装置400またはテープライブラリ装置510に移動され、仮想ライブラリの運用が通常状態に復帰される。この処理では、ディスクアレイ装置400が障害から復帰すると、一時記憶領域に格納されたデータは、基本的に、ディスクアレイ装置400に移動された後、テープライブラリ装置510にも書き込まれる(ステップS58〜S61)。
また、ディスクアレイ装置400が障害から復帰する前に一時記憶領域のデータがテープライブラリ装置510に移動される事態が発生した場合には、そのデータをディスクアレイ装置400に書き込まないようにして、処理速度の低下を防止している。図11の例では、ディスクアレイ装置400が障害から復帰する前に一時記憶領域のデータがテープライブラリ装置510に移動されるケースとして、一時記憶領域が設けられた制御プロセッサの残容量が低下した場合を想定している。
なお、図示しないが、ディスクアレイ装置400が障害から復帰したとき、VL制御プロセッサの一時記憶領域333にデータが格納されている場合には、このデータは障害制御部322の処理により、ディスクアレイ装置400に移動されればよい。また、一時記憶領域333へのデータ格納後に、VL制御プロセッサ300の記憶装置の残容量が低下した場合には、例えば、一時記憶領域333のデータがテープライブラリ装置510に移動されればよい。この場合、VL管理テーブル331では、移動されたデータに対応するデータステータスが“Miss”に設定され、一時記憶管理テーブル332から、移動されたデータに対応する登録情報が削除される。
以上の図10および図11に示した処理により、ディスクアレイ装置400に障害が発生した場合でも、ホスト装置100から書き込みを要求されたデータが消失することなく、仮想ライブラリの運用が続行される。また、書き込みデータは、システム内の既存の記憶領域に一時的に保持されるので、その保持のための専用の記憶装置を新たに用意する必要はなく、製造コストや装置の設置スペースなどが増大することがない。従って、低コストで信頼性の高いシステムを構築することができる。
次に、図12および図13を用いて、ディスクアレイ装置400における障害発生時に、ホスト装置100から読み出しが要求された場合の処理について説明する。
[ステップS71]障害制御部322は、一時記憶管理テーブル332を基にデータが格納済みの一時記憶領域を探索し、読み出しを要求されたデータが一時記憶領域に格納されているか否かを判定する。ここでは、チャネルプロセッサ200の一時記憶領域231またはVL制御プロセッサ300の一時記憶領域333に、データが格納されているか否かが判定される。また、データが格納されていた場合、そのデータは、ステップS71の処理以前にホスト装置100から読み出しが要求されて、テープライブラリ装置510から読み出されたものである。なお、VL制御プロセッサ300では、一時記憶領域333に格納されたデータが、読み出しを要求されたデータか、あるいは書き込みを要求されたデータかを識別できるようにしておく必要がある。
一時記憶領域にデータが格納されていた場合には、ステップS72の処理が実行され、格納されていなかった場合には、ステップS73の処理が実行される。
[ステップS72]一時記憶領域に格納されていたデータが、ホスト装置100に転送される。
例えば、チャネルプロセッサ200の一時記憶領域231にデータが格納されていた場合、障害制御部322は、チャネルプロセッサ200の一時記憶処理部222に対して、一時記憶領域231からそのデータを読み出してホスト装置100に転送するように要求する。一時記憶処理部222は、読み出しを要求されたデータを一時記憶領域231から読み出してホストインタフェース処理部221に受け渡し、ホスト装置100へ送信させる。また、ホスト装置100へのデータ送信が終了すると、一時記憶処理部222は、障害制御部322に対してデータ送信の完了通知を送信する。
また、VL制御プロセッサ300の一時記憶領域333にデータが格納されていた場合、障害制御部322は、一時記憶処理部323を通じてそのデータを取得する。そして、取得したデータをチャネルプロセッサ200の一時記憶処理部222に送信し、ホスト装置100に転送するように要求する。これにより、上記と同様に、データがホストインタフェース処理部221からホスト装置100に送信され、障害制御部322にはデータ送信の完了通知が送信される。
この後、ステップS82の処理が実行される。
[ステップS73]障害制御部322は、読み出しを要求されたデータに対応するテープライブラリ装置510上のデータが最新のものであるか否かを、VL制御部321に問い合わせる。VL制御部321は、VL管理テーブル331を参照する。そして、読み出しを要求されたデータに対応するデータステータスが“Hit”または“Miss”であった場合は、テープライブラリ装置510上のデータが最新であると判定し、判定結果を一時記憶処理部323に通知する。一方、読み出しを要求されたデータに対応するデータステータスが“Dirty”であった場合は、テープライブラリ装置510上のデータが最新でないと判定して、判定結果を一時記憶処理部323に通知する。
テープライブラリ装置510上のデータが最新であると判定された場合には、ステップS75の処理が実行され、最新でないと判定された場合には、ステップS74の処理が実行される。
[ステップS74]障害制御部322は、VL制御部321を通じて、チャネルプロセッサ200のホストインタフェース処理部221に対してエラー発生を通知する。ホストインタフェース処理部221は、データ読み出しのエラーが発生したことをホスト装置100に報告する。
[ステップS75]障害制御部322は、読み出しを要求されたデータの物理ボリュームをVL制御部321から取得する。そして、取得した物理ボリュームをデバイスプロセッサ500のテープインタフェース処理部521に送信して、送信した物理ボリュームに対応するテープカセットを準備させる。テープライブラリ装置510は、テープライブラリ装置510を制御して、障害制御部322から受信した物理ボリュームに対応するテープカセットをテープデッキ部にマウントさせる。このとき、例えば、読み出すデータの頭出しが行われるなど、データ読み出しが即座に実行可能な状態にしておくことが望ましい。
[ステップS76]障害制御部322は、チャネルプロセッサ200の一時記憶領域231に空き領域があるか否かを、チャネルプロセッサ200の一時記憶処理部222に問い合わせる。一時記憶領域231に空き領域がある場合には、ステップS80の処理が実行され、空き領域がない場合には、ステップS77の処理が実行される。
なお、ステップS75の処理とステップS76の処理は、例えば並列に実行させてもよい。
[ステップS77]障害制御部322は、VL制御プロセッサ300内の一時記憶領域333に空き領域があるか否かを、一時記憶処理部323に問い合わせる。一時記憶領域333に空き領域がある場合には、ステップS79の処理が実行され、空き領域がない場合には、ステップS78の処理が実行される。
[ステップS78]障害制御部322は、一時記憶管理テーブル332を参照し、一時記憶領域333にデータがすでに格納されていた場合には、それらのデータのうち最も古いデータを削除するように一時記憶処理部323に要求する。これにより、VL制御プロセッサ300に空き領域が生成される。このとき、障害制御部322は、一時記憶管理テーブル332から、一時記憶領域333から削除したデータに関する情報を削除する。
[ステップS79]障害制御部322は、一時記憶管理テーブル332を参照し、チャネルプロセッサ200の一時記憶領域231にデータが格納されていた場合には、このデータをVL制御プロセッサ300の一時記憶領域333に移動させる。障害制御部322は、チャネルプロセッサ200の一時記憶処理部222を通じて一時記憶領域231からのデータを取得し、一時記憶処理部323を通じて一時記憶領域333に格納する。このとき、障害制御部322は、一時記憶管理テーブル332の対応するアドレスおよび記憶領域種別を更新する。
[ステップS80]読み出しを要求されたデータが、テープライブラリ装置510から、チャネルプロセッサ200の一時記憶領域231に転送される。この処理では、例えば、障害制御部322は、チャネルプロセッサ200の一時記憶処理部222に対して、テープライブラリ装置510からデータを読み出すように要求する。一時記憶処理部222は、デバイスプロセッサ500のテープインタフェース処理部521を通じてデータを取得し、一時記憶領域231に格納する。障害制御部322は、一時記憶領域231へのデータ格納処理が終了したことを検知すると、一時記憶管理テーブル332の対応するアドレスおよび記憶領域種別を更新する。
なお、ステップS75の処理により、テープライブラリ装置510では、データが格納されたテープカセットがすでに準備されている。このため、テープカセットに格納されたデータは比較的短時間に読み出されて、チャネルプロセッサ200に転送される。
[ステップS81]チャネルプロセッサ200の一時記憶領域231に格納されていたデータが、ホスト装置100に転送される。この処理では、障害制御部322は、チャネルプロセッサ200の一時記憶処理部222に対して、一時記憶領域231に格納されていたデータを一時記憶領域231から読み出してホスト装置100に転送するように要求する。一時記憶処理部222は、一時記憶領域231から対応するデータを読み出してホストインタフェース処理部221に受け渡し、ホスト装置100へ送信させる。また、ホスト装置100へのデータ送信が終了すると、一時記憶処理部222は、障害制御部322に対してデータ送信の完了通知を送信する。
[ステップS82]障害制御部322は、チャネルプロセッサ200の一時記憶処理部222からデータ送信の完了通知を受けると、VL制御部321を通じて、チャネルプロセッサ200のホストインタフェース処理部221に対して、処理完了通知を送信する。ホストインタフェース処理部221は、ホスト装置100に対して書き込み処理が完了したことを報告する。
図12および図13に示した処理では、ディスクアレイ装置400の障害発生時にホスト装置100から読み出し要求を受けると、テープライブラリ装置510からデータが読み出されて、ホスト装置100に送信される。このとき、テープライブラリ装置510から読み出されたデータは一旦一時記憶領域に格納された後(ステップS80)、この一時記憶領域からホスト装置100に対して送信される(ステップS81)。
さらに、データが格納された一時記憶領域は、ディスクアレイ装置400が障害から復旧するまでの間、一次ストレージとして使用される。すなわち、一時記憶領域に格納されたものと同じデータの読み出しがホスト装置100から要求されると、そのデータが一時記憶領域から読み出されて、ホスト装置100に送信される(ステップS72)。ここで、テープライブラリ装置510から読み出されたデータは、チャネルプロセッサ200内の一時記憶領域231に優先的に格納される。これにより、テープライブラリ装置510からのデータが一時記憶領域に格納された後、同じデータの読み出しがホスト装置100から再度要求されて、一時記憶領域が一次ストレージとして使用されたときに、データを短時間でホスト装置100に返信できるようになる。
以上のような読み出し要求時の処理により、ディスクアレイ装置400に障害が発生した場合でも、要求されたデータを確実にホスト装置100に送信することができ、仮想ライブラリの運用が続行される。また、読み出しデータは、システム内の既存の記憶領域に一時的に保持されるので、その保持のための専用の記憶装置を新たに用意する必要はなく、製造コストや装置の設置スペースなどが増大することがない。従って、低コストで信頼性の高いシステムを構築することができる。
なお、第2の実施の形態において、例えば、チャネルプロセッサ200が備える機能とVL制御プロセッサ300が備える機能とを、1つの装置において実現してもよい。この場合、図6の一時記憶処理部222および一時記憶領域231は不要となり、一時記憶領域231は一時記憶領域333によって実現されればよい。すなわち、ディスクアレイ装置400の障害発生時にデータの読み出しが要求された場合には、テープライブラリ装置510から読み出されたデータは一時記憶領域333に格納されればよい。
また、VL制御プロセッサ300およびチャネルプロセッサ200の機能を、ホスト装置100に搭載させてもよい。この場合、ホスト装置100自体が、仮想ライブラリを管理することが可能になる。
さらに、例えば、デバイスプロセッサ500が備える機能とVL制御プロセッサ300が備える機能とを、1つの装置において実現してもよい。この場合、図6の一時記憶処理部522および一時記憶領域531は不要となり、一時記憶領域531は一時記憶領域333によって実現されればよい。すなわち、ディスクアレイ装置400の障害発生時にデータの書き込みが要求された場合には、書き込みデータは一時記憶領域333に格納されればよい。
また、チャネルプロセッサ200、VL制御プロセッサ300およびデバイスプロセッサ500の各機能を、1つの装置において実現してもよい。ここで、このような場合の構成例を、第3の実施の形態として説明する。
図14は、第3の実施の形態に係るストレージ制御装置の機能を示す図である。なお、図14では、図6に対応する構成要素には同じ符号を付して示し、その説明を省略する。
図14に示すストレージ制御装置700は、ホストインタフェース処理部221a、VL制御部321a、障害制御部322a、一時記憶処理部323およびテープインタフェース処理部521aを備えている。なお、ストレージ制御装置700は、例えば、図3に示した構成のコンピュータとして実現可能である。この場合、上記各機能は、CPUにより所定のプログラムを実行することで実現可能である。
ホストインタフェース処理部221aは、VL制御部321aおよびテープインタフェース処理部521aに対して装置内部の接続経路を介して接続していること、図6の一時記憶処理部222との処理を行わないことを除き、図6のホストインタフェース処理部221とほぼ同様の機能を有する。
VL制御部321aは、ホストインタフェース処理部221aに対して装置内部の接続経路を介して接続していることを除き、図6のVL制御部321とほぼ同様の機能を有する。また、参照するVL管理テーブル331の内容は、図6に示したものと同じでよい。すなわち、VL制御部321aは、ディスクアレイ装置400を一次ストレージとし、テープライブラリ装置510を二次ストレージとして利用した仮想ライブラリの基本的なデータ転送動作を制御する。
障害制御部322aの基本的な機能は、図6の障害制御部322と同様である。すなわち、障害制御部322aは、ディスクアレイ装置400に障害が発生したときに、ホスト装置100からデータの書き込み要求および読み出し要求が出力された場合に、装置内部の一時記憶領域を一次ストレージとして利用することで、仮想ライブラリの運用を継続させる。
ただし、図6の障害制御部322と異なる点は、書き込みが要求された場合でも、読み出しが要求された場合でも、ストレージ制御装置700に接続された記憶装置(例えばHDD)に設定した一時記憶領域333に対して、データを格納することである。例えば、障害制御部322aは、ディスクアレイ装置400の障害発生時にデータの書き込みが要求された場合には、書き込みデータを一時記憶領域333に格納させる。また、ディスクアレイ装置400の障害発生時にデータの読み出しが要求された場合には、テープライブラリ装置510から読み出されたデータを一時記憶領域333に格納させる。なお、一時記憶管理テーブル332aには、図8に示した記憶領域種別を記録する必要はなくなる。
テープインタフェース処理部521aは、ホストインタフェース処理部221a、VL制御部321aおよび障害制御部322aに対して装置内部の接続経路を介して接続していること、図6の一時記憶処理部522との処理を行わないことを除き、図6のテープインタフェース処理部521とほぼ同様の機能を有する。
このようなストレージ制御装置700によれば、ディスクアレイ装置400に障害が発生した場合でも、一時記憶領域333を一次ストレージとして利用することで、仮想ライブラリの運用を継続することができる。
なお、このストレージ制御装置700が備える機能を、ホスト装置100に搭載させてもよい。
ところで、上記のストレージシステムに設けられた各装置が有する機能や、ストレージ制御装置が有する機能の少なくとも一部は、コンピュータによって実現することができる。その場合には、上記機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、そのプログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置において、
前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、
読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御する第1の読み出し制御部と、
読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する第2の読み出し制御部と、
を有することを特徴とするストレージ制御装置。
(付記2) 前記データ記録判定部が、前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置を通じて前記読み出し要求を受け付ける場合、前記一時記憶領域は、前記要求受け付け装置に個別に接続された記憶装置内に設定されることを特徴とする付記1記載のストレージ制御装置。
(付記3) 前記第2の読み出し制御部は、前記要求受け付け装置の前記一時記憶領域の空き容量が不足していた場合、当該一時記憶領域に記憶されていたデータを、当該ストレージ制御装置に個別に接続された記憶装置内に設定された前記一時記憶領域に移動させた後、前記二次ストレージから読み出したデータを前記要求受け付け装置の前記一時記憶領域に格納するように制御することを特徴とする付記2記載のストレージ制御装置。
(付記4) 前記データ記録判定部は、読み出しを要求されたデータが、前記要求受け付け装置の前記一時記憶領域または当該ストレージ制御装置の前記一時記憶領域に記憶されているかを判定し、
前記第1の読み出し制御部は、読み出しを要求されたデータを、前記要求受け付け装置の前記一時記憶領域または当該ストレージ制御装置の前記一時記憶領域から読み出して、前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する、
ことを特徴とする付記3記載のストレージ制御装置。
(付記5) 前記二次ストレージに対するデータの書き込み要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、書き込みを要求されたデータを前記一時記憶領域に格納するように制御する書き込み制御部と、
前記一次ストレージとの通信が再開された場合に、前記一時記憶領域に格納された、書き込みを要求されたデータを、前記一次ストレージに移動させ、その後、当該データを前記二次ストレージにも記憶させる復帰制御部と、
をさらに有することを特徴とする付記1記載のストレージ制御装置。
(付記6) 前記一時記憶領域は、前記二次ストレージにアクセスするためのインタフェース機能を提供するインタフェース装置に個別に接続された、前記二次ストレージ以外の記憶装置内に設定されることを特徴とする付記5記載のストレージ制御装置。
(付記7) 前記書き込み制御部は、前記インタフェース装置の前記一時記憶領域の空き容量が不足していた場合、当該一時記憶領域に記憶されていたデータを、当該ストレージ制御装置に個別に接続された記憶装置内に設定された前記一時記憶領域に移動させた後、書き込みを要求されたデータを前記インタフェース装置の前記一時記憶領域に格納するように制御することを特徴とする付記6記載のストレージ制御装置。
(付記8) 前記一次ストレージとの通信が再開される前に、前記一時記憶領域に格納された、書き込みが要求されたデータを、前記二次ストレージに移動させる移動制御部と、
前記移動制御部により移動されたデータにより前記二次ストレージ上のデータが更新され、なおかつ、その更新前のデータが前記一次ストレージに記憶されている場合に、前記一次ストレージとの通信が再開されたとき、前記一次ストレージに記憶されていた更新前のデータを削除する削除制御部と、
をさらに有することを特徴とする付記5記載のストレージ制御装置。
(付記9) 一次ストレージと、
二次ストレージと、
前記一次ストレージと前記二次ストレージとを階層型ストレージシステムとして動作させるストレージ制御装置と、
前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置と、
を有し、
前記ストレージ制御装置は、
前記二次ストレージに記録されたデータの読み出し要求を前記要求受け付け装置が受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記要求受け付け装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、
読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていた場合に、当該データを当該一時記憶領域から読み出して、前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する第1の読み出し制御部と、
読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記要求受け付け装置の一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する第2の読み出し制御部と、
を有することを特徴とするストレージシステム。
(付記10) 前記二次ストレージにアクセスするためのインタフェース機能を提供するインタフェース装置をさらに有し、
前記ストレージ制御装置は、
前記二次ストレージに対するデータの書き込み要求を前記要求受け付け装置が受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、書き込みを要求されたデータを前記一時記憶領域に格納するように制御する書き込み制御部と、
前記一次ストレージとの通信が再開された場合に、前記一時記憶領域に格納された、書き込みを要求されたデータを、前記一次ストレージに移動させ、その後、当該データを前記二次ストレージにも記憶させる復帰制御部と、
をさらに有することを特徴とする付記9記載のストレージシステム。
(付記11) 一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するためのストレージ制御方法において、
データ記録判定手段が、前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定し、
第1の読み出し制御手段が、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御し、
第2の読み出し制御手段が、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する、
ことを特徴とするストレージ制御方法。
1 一次ストレージ
2 二次ストレージ
10 ストレージ制御装置
11 通信可否判定部
12 データ記録判定部
13 読み出し制御部
14 書き込み制御部
15 復帰制御部
20 要求受け付け装置
21,31 一時記憶領域
30 インタフェース装置

Claims (8)

  1. 一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置において、
    前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が可能であり、かつ、読み出しを要求されたデータが前記一次ストレージに記憶されている場合に、当該データを前記一次ストレージから読み出して前記読み出し要求に対する応答として出力するように制御する第1の制御部と、
    前記読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定し、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御し、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する第2の制御部と、
    を有することを特徴とするストレージ制御装置。
  2. 前記ストレージ制御装置が、前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置を通じて前記読み出し要求を受け付ける場合、前記一時記憶領域は、前記要求受け付け装置に個別に接続された記憶装置内に設定されることを特徴とする請求項1記載のストレージ制御装置。
  3. 前記第2の制御部は、
    前記二次ストレージに対するデータの書き込み要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、書き込みを要求されたデータを前記一時記憶領域に格納するように制御
    前記一次ストレージとの通信が再開された場合に、前記一時記憶領域に格納された、書き込みを要求されたデータを、前記一次ストレージに移動させ、その後、当該データを前記二次ストレージにも記憶させる、
    とを特徴とする請求項1記載のストレージ制御装置。
  4. 前記一時記憶領域は、前記二次ストレージにアクセスするためのインタフェース機能を提供するインタフェース装置に個別に接続された、前記二次ストレージ以外の記憶装置内に設定されることを特徴とする請求項3記載のストレージ制御装置。
  5. 前記第2の制御部は、
    前記一次ストレージとの通信が再開される前に、前記一時記憶領域に格納された、書き込みが要求されたデータを、前記二次ストレージに移動させ、
    移動させたデータにより前記二次ストレージ上のデータが更新され、なおかつ、その更新前のデータが前記一次ストレージに記憶されている場合に、前記一次ストレージとの通信が再開されたとき、前記一次ストレージに記憶されていた更新前のデータを削除する、
    とを特徴とする請求項3記載のストレージ制御装置。
  6. 一次ストレージと、
    二次ストレージと、
    前記一次ストレージと前記二次ストレージとを階層型ストレージシステムとして動作させるストレージ制御装置と、
    前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置と、
    を有し、
    前記ストレージ制御装置は、
    前記二次ストレージに記録されたデータの読み出し要求を前記要求受け付け装置が受け付けたとき、前記一次ストレージとの通信が可能であり、かつ、読み出しを要求されたデータが前記一次ストレージに記憶されている場合に、当該データを前記一次ストレージから読み出して前記読み出し要求に対する応答として出力するように制御する第1の制御部と、
    前記読み出し要求を前記要求受け付け装置が受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記要求受け付け装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定し、読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていた場合に、当該データを当該一時記憶領域から読み出して、前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御し、読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記要求受け付け装置の一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する第2の制御部と、
    を有することを特徴とするストレージシステム。
  7. 一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するためのストレージ制御方法において、
    第1の制御部が、前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が可能であり、かつ、読み出しを要求されたデータが前記一次ストレージに記憶されている場合に、当該データを前記一次ストレージから読み出して前記読み出し要求に対する応答として出力するように制御し、
    第2の制御部が、
    前記読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定し、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御し、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する、
    ことを特徴とするストレージ制御方法。
  8. 一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するためのストレージ制御装置において、
    ホスト装置から、前記二次ストレージに記録されたデータのアクセス要求を受け付ける第1のインタフェース制御部と、
    前記一次ストレージを前記二次ストレージに対するキャッシュとして機能させるストレージ制御部と、
    前記二次ストレージに対するデータ送受信を制御する第2のインタフェース制御部と、
    を有し、
    前記ストレージ制御部は、
    前記第1のインタフェース制御部が前記ホスト装置から前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が可能であり、かつ、読み出しを要求されたデータが前記一次ストレージに記憶されている場合に、当該データを前記一次ストレージから読み出して前記読み出し要求に対する応答として出力するように制御する第1の制御部と、
    前記第1のインタフェース制御部が前記読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記第1のインタフェース制御部、前記第2のインタフェース制御部および前記ストレージ制御部のいずれかに設けられた一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定し、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御し、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対応する応答として出力するように制御する第2の制御部と、
    を有することを特徴とするストレージ制御装置。
JP2009133798A 2009-06-03 2009-06-03 ストレージ制御装置、ストレージシステムおよびストレージ制御方法 Expired - Fee Related JP4911198B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009133798A JP4911198B2 (ja) 2009-06-03 2009-06-03 ストレージ制御装置、ストレージシステムおよびストレージ制御方法
US12/790,035 US8321628B2 (en) 2009-06-03 2010-05-28 Storage system, storage control device, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009133798A JP4911198B2 (ja) 2009-06-03 2009-06-03 ストレージ制御装置、ストレージシステムおよびストレージ制御方法

Publications (2)

Publication Number Publication Date
JP2010282324A JP2010282324A (ja) 2010-12-16
JP4911198B2 true JP4911198B2 (ja) 2012-04-04

Family

ID=43301567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009133798A Expired - Fee Related JP4911198B2 (ja) 2009-06-03 2009-06-03 ストレージ制御装置、ストレージシステムおよびストレージ制御方法

Country Status (2)

Country Link
US (1) US8321628B2 (ja)
JP (1) JP4911198B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124100A1 (ja) * 2011-03-17 2012-09-20 富士通株式会社 情報処理装置、ストレージシステムおよび書き込み制御方法
JP5577471B2 (ja) * 2011-09-14 2014-08-20 株式会社日立製作所 サーバ計算機、サーバ計算機システム、及びサーバ計算機制御方法
US10223431B2 (en) * 2013-01-31 2019-03-05 Facebook, Inc. Data stream splitting for low-latency data access
KR102079620B1 (ko) * 2013-11-12 2020-02-21 에스케이하이닉스 주식회사 전자 장치
JP6326898B2 (ja) * 2014-03-26 2018-05-23 日本電気株式会社 ストレージ装置、ストレージシステムおよびデータ配置方法
JP6497122B2 (ja) * 2015-02-24 2019-04-10 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム
US10157112B2 (en) * 2015-09-03 2018-12-18 Toshiba Memory Corporation Storage device
JP6927100B2 (ja) * 2018-03-13 2021-08-25 日本電気株式会社 ストレージシステム、ストレージ装置、データ移行方法、及びプログラム
US11604771B2 (en) * 2019-09-30 2023-03-14 Dell Products L.P. Method and system for data placement in a linked node system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175922A (ja) * 1992-12-08 1994-06-24 Oki Electric Ind Co Ltd キャッシュ管理装置
JPH096678A (ja) * 1995-06-19 1997-01-10 Toshiba Corp 階層記憶装置
JP3070453B2 (ja) 1995-09-20 2000-07-31 日本電気株式会社 計算機システムのメモリ障害回復方法および回復システム
JP3618552B2 (ja) * 1998-06-30 2005-02-09 富士通株式会社 記憶装置
JP2003316525A (ja) * 2002-04-26 2003-11-07 Seiko Epson Corp ディスクアレイ制御装置
JP4159506B2 (ja) * 2004-04-28 2008-10-01 Necソフトウェア東北株式会社 階層記憶装置、その復旧方法、及び復旧プログラム
JP2006059110A (ja) * 2004-08-19 2006-03-02 Fujitsu Ltd ライブラリ制御方法、ライブラリ制御装置、及びライブラリ制御プログラム
JP2006079273A (ja) * 2004-09-08 2006-03-23 Sony Corp ファイル管理装置、ネットワークシステム、ファイル管理方法及びプログラム
JP2006113882A (ja) * 2004-10-15 2006-04-27 Fujitsu Ltd データ管理装置
JP2006134049A (ja) * 2004-11-05 2006-05-25 Hitachi Ltd ホスト装置が接続される制御装置の接続部とその制御装置が備える記憶デバイスとの間の論理パスを生成する装置及び方法
JP4457019B2 (ja) * 2005-01-05 2010-04-28 富士通株式会社 情報処理システム及び一次ストレージ装置
WO2006085357A1 (ja) * 2005-02-08 2006-08-17 Fujitsu Limited ディスクアレイ装置の記憶制御装置および冗長性復旧方法
JP4648751B2 (ja) * 2005-05-02 2011-03-09 株式会社日立製作所 記憶制御システム及び記憶制御方法
JP4756545B2 (ja) * 2006-05-15 2011-08-24 株式会社日立製作所 複数のテープ装置を備えるストレージシステム
JP4863765B2 (ja) * 2006-05-15 2012-01-25 株式会社日立製作所 バックアップ及び/又はリストアを行う記憶制御方法及びシステム

Also Published As

Publication number Publication date
US20100312958A1 (en) 2010-12-09
JP2010282324A (ja) 2010-12-16
US8321628B2 (en) 2012-11-27

Similar Documents

Publication Publication Date Title
JP4911198B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP4738941B2 (ja) ストレージシステム及びストレージシステムの管理方法
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
JP4958739B2 (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
US7421550B2 (en) Storage system and storage system management method
JP6056453B2 (ja) プログラム、データ管理方法および情報処理装置
US6381674B2 (en) Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
JP4901316B2 (ja) ストレージシステム及び記憶制御装置
JP5390067B2 (ja) データのブロックを伝送するための優先順位方式
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
US20130132767A1 (en) Information system and i/o processing method
JP5310480B2 (ja) ストレージ制御装置および方法
US8255649B2 (en) Remote copy control method and system in storage cluster environment
US7080207B2 (en) Data storage apparatus, system and method including a cache descriptor having a field defining data in a cache block
JP2007265403A (ja) 階層型ストレージシステム間でのリモートミラー方式
CN113360082B (zh) 存储系统及其控制方法
JP2007310618A (ja) 階層型ストレージ装置及びその記録媒体管理方法
JP4454299B2 (ja) ディスクアレイ装置及びディスクアレイ装置の保守方法
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
JP2003015826A (ja) ディスクアレイ制御装置における共有メモリコピー機能
JP6005446B2 (ja) ストレージシステム、仮想化制御装置、情報処理装置、および、ストレージシステムの制御方法
JP5198659B2 (ja) 記憶制御装置及び記憶制御装置の制御方法
JP2006146661A (ja) レプリケーションシステム、方法、レプリカストレージ、およびプログラム
JP2012022645A (ja) データ記憶システムおよび非同期レプリケーション方法
JP2007128551A (ja) ストレージエリアネットワークシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111114

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: 20111220

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees