まず、各実施例に共通する内容について説明する。
図2は、本発明の対象となる計算機システムの構成である。計算機システムは、処理装置1300、制御装置1305、および、2台以上のR/W装置1304、2台以上の収納倉庫1306、1台以上のロボット1307により構成する。処理装置1300は、CPU1301、主記憶1302、および、チャネル1303により構成される場合があってもよい。制御装置1305は、処理装置1300からのリード/ライト要求にしたがって、処理装置1300と、ディスク装置1304の間で、転送処理を実行する。制御装置バッファ1310は、制御装置1305がリードライトするデータを、一時的に蓄えるバッファである。
収納倉庫1306には、デ−タを格納した物理記憶媒体1311が複数枚収納されている。ロボット1307は、収納倉庫1306とR/W装置1304の間で、物理記憶媒体1311を運搬する。R/W装置1304は、ロッボト1307によりセットされた物理記憶媒体1311を読み書きする。
図3は、本発明の対象となる別の計算機システムの構成である。図2に示した構成との差異は、制御装置1305が、キャッシュメモリ1308、ディレクトリ1309、不揮発性メモリ1400、および、不揮発性メモリ管理情報1401を含む点である。キャッシュメモリ(以下、単にキャッシュと略す。)1308は、R/W装置1304にセットされた物理記憶媒体1311の一部のデ−タを格納する。ディレクトリ1309には、キャッシュ1308の管理情報を格納する。不揮発性メモリ1400は、不揮発の媒体であり、キャッシュ1308と同様に、R/W装置1304にセットされた物理記憶媒体1311の一部のデ−タを格納する。不揮発性メモリ管理情報1401も不揮発の媒体であり、不揮発性メモリ1400の管理情報を格納する。この場合、制御装置1305は、処理装置1300からのリード/ライト要求とは、非同期に、R/W装置1304とキャッシュ1308との間で、リード/ライト動作を実行する。ただし、図7に示したように、制御装置1305内に2つ以上のディレクタ1312を含み、それぞれのディレクタ1307が、処理装置1300からリード/ライト要求を受け付け、リード/ライト動作を実行するような構成でも本発明は有効である。
通常、処理装置1300がディスク装置との間で、リード/ライトするデータの単位は、レコードと呼ばれる。ただし、本発明では、処理装置1300から見たレコードと、物理記憶媒体1311上に格納されたレコードが、ディスクアレイのレコード配置によって異なる場合がある。以下、ディスクアレイを適用した場合のデータの記録形式について説明する。
次に、図4、図5、図6を用いて、本実施形態における物理記憶媒体1311の記録形式について説明する。論理記憶媒体400は、処理装置1300から見た1枚の記憶媒体である。これに対し、物理記憶媒体1311は、すでに述べたように、1枚の記憶媒体であり、収納倉庫1306の収納単位、ロボット1307の搬送単位、R/W装置1304のセット単位となる。図4の構成では、m+n枚の物理記憶媒体1311が1枚の論理記憶媒体400となる。図5に示すように、論理レコ−ド401は、処理装置1300からリ−ド/ライトされるレコ−ドである。一方、図6に示すように、R/W装置1304と制御装置1305の間で、リード/ライトされる単位、すなわち、物理記憶媒体1311に記録されている単位を、物理レコード1502と呼ぶ。本発明においては、物理記憶媒体1311上に格納されている物理レコード1502には、データレコード1500とパリティレコード1501の2種類が存在する。データレコード1500は、論理レコ−ド401の内容を格納した物理レコード1502である。一方、パリティレコード1501は、物理記憶媒体1311に障害が発生し、データレコード1501の内容が消失した時、その消失した内容を回復する処理に用いるレコードである。この場合、データレコード1500の値が変更されると、これに対応して、パリティレコード1501の内容も変更する必要が生ずる。
図6を用いて、本実施形態における記憶媒体パリティグル−プ1610について説明する。図6に示す構成では、記憶媒体パリティグル−プ1610は、1つの論理記憶媒体400に対応するm+n枚の物理記憶媒体1311に相当する。
次に、レコ−ドパリティグル−プ1600について説明する。1組の記憶媒体パリティグル−プ1610を構成するm枚の物理記憶媒体1311に、それぞれ対応するデータレコード1500が格納されている。これらのm個のデータレコード1500から、n個のパリティレコード1501が作成され、それぞれ対応するn枚の物理記憶媒体1311に格納される。したがって、図6では、m個のデータレコード1500とn個のパリティレコード1501から、レコ−ドパリティグループ1600が構成されている。一般に、n個のパリティレコード1501を含むレコ−ドパリティグループ1600においては、そのレコ−ドパリティグループ1600内の物理レコード1502が格納されているm+n個物理記憶媒体のうち、n台の物理記憶媒体1304が故障しても、レコ−ドパリティグループ1600内のすべての物理レコード1502の内容を回復することができる。以上より、物理記憶媒体1311の高信頼化が実現できる。もちろん、それぞれの物理記憶媒体1311には、複数の物理レコ−ド1502が含まれ、1つのパリティグル−プ記憶媒体1610には、複数のパリティグル−プレコ−ド1600が存在する。
また、図8(b)に示すように、1組のパリティグル−プ記憶媒体1610に複数の論理記憶媒体400が対応してもよい。なお、本発明は、図8(a)に示すように、1つの論理記憶媒体400に複数組パリティグル−プ記憶媒体が対応してもよい。
図9は、R/W装置パリティグル−プ900と論理R/W装置901を示す。パリティ
グル−プ900は、m+n台のR/W装置1304から構成され、1組のパリティグル−
プ記憶媒体1610を装填する。本実施形態では、制御装置1305には、1組以上のR
/W装置パリティグル−プ900が接続されているものとする。一方、論理R/W装置9
01は、処理装置1300から見たR/W処理を実行する論理的な装置であり、論理記憶
媒体400を装填する。図8(b)に示すように、1つの記憶媒体パリティグル−プ16
10が、1つの論理記憶媒体400に対応する場合、あるいは、1つの記憶媒体パリティ
グル−プ1610が、複数の論理記憶媒体400に対応する場合、論理R/W装置901は、R/W装置パリティグル−プ900と1対1に対応する。一方、図8(a)に示すように、複数の記憶媒体パリティグル−プ1610が、1つの論理記憶媒体400に対応する場合、論理R/W装置901は、複数のR/W装置パリティグル−プ900に対応する。
図10は、収納倉庫1306の構成である。収納倉庫1306は複数のスロット1000を持つ。スロット1000は、1枚の物理記憶媒体1311を収納する単位である。
図11は、スロットパリティグル−プ1100と論理スロット1101を示す。スロットパリティグル−プ1100は、1つの記憶媒体パリティグル−プ1610に属するm+n枚の物理媒体1311を収納したm+n個のスロット1000の集合である。図11に示した構成では、スロットパリティグル−プ1100に属するスロット1000は、1つの収納倉庫1306内のスロット1000となっている。ただし、もちろん、本発明は、1つのスロットパリティグル−プ1100に属する2つ以上のスロット1000が同一の収納倉庫1306に含まれていても有効である。あるいは、1つのスロットパリティグル−プ1100に属するのスロット1000がすべて別々の収納倉庫1306に含まれていても有効である。
論理スロット1101は、処理装置1300から見た論理記憶媒体400を収納する論理的な収納単位である。記憶媒体パリティグル−プ1610が、1つの論理記憶媒体400に対応する場合には、図11(a)に示すように、論理スロット1101は、スロットパリティグル−プ1100と1対1に対応する。一方、記憶媒体パリティグル−プ1610が、複数の論理記憶媒体400に対応する場合には、図11(b)に示すように、スロットパリティグル−プ1100は、複数の論理スロット1101に対応する。さらに、図11(c)に示すように、複数の記憶媒体パリティグル−プ1610が、1つの論理記憶媒体400に対応する場合、論理スロット1101は、複数のスロットパリティグル−プ1100に対応する。
以下に示す各実施形態では、記憶媒体パリティグル−プ1610が、1つの論理記憶媒体400に対応する場合について説明する。もちろん、本発明は、記憶媒体パリティグル−プ1610が、複数の論理記憶媒体400に対応する場合についても有効である。
図1は、第1の実施形態の構成/動作を表す。第1の実施形態では、制御装置1304には、1つのR/W装置パリティグル−プ900、すなわち、m+n台のR/W装置1304が接続されているものとする。
第1の実施形態に関する情報として、制御装置1305は、制御装置バッファ1312、ディレクトリ1309、不揮発性メモリ管理情報1401などに、回復中スロットパリティグル−プ識別子100、回復中フラグ101、中断要求フラグ102、中断フラグ103、回復ポインタ104、R/W処理並列フラグ105を含む。
本実施形態では、回復処理中の記憶媒体パリティグル−プ1610は1つであるため、これに対応するスロットパリティグル−プ1000も1つである。回復中スロットパリティグル−プ識別子100は、回復中の記憶媒体パリティグル−プ1610に対応するスロットパリティグル−プ1000の識別子である。
回復中フラグ101は、回復中スロットパリティグル−プ識別子100で示されたスロットパリティグル−プ1000に対応する記憶媒体パリティグル−プ1610の回復処理を実行中であることを示す。
回復中断要求フラグ102は、他のスロットパリティグル−プ1000のマウント要求を受け取ったため、回復処理の中断が要求されていることを示す。
中断フラグ103は、回復中のスロットパリティグル−プ1000の回復処理を中断したことを示す情報である。
回復ポインタ104は、回復処理をどこまで行なっていたかを表す情報である。回復処理を開始、あるいは、再開する場合、この回復ポインタ104に示された領域から回復処理を再開する。回復ポインタ102は、回復中の記憶媒体パリティグル−プ1610の各物理記憶媒体1311に記憶しておいてもよい。
R/W処理並列フラグ105は、回復処理と処理装置1300からのリ−ド/ライト要求を並行して実行していることを表す。
制御装置1305の主な機能は、マウント処理実行部A110、R/W処理実行部A111、デマウント処理実行部A112、回復処理マウント部A113、回復処理R/W部A114、回復処理デマウント部A115である。
マウント処理実行部A110は、処理装置1300の要求にしたがって、ロボット1307を用い、論理記憶媒体400を論理R/W装置901に装填する。実際には、対応するスロットパリティグル−プ1000に格納されている記憶媒体パリティグル−プ1610を、R/W装置パリティグル−プ900に、装填する。
R/W処理実行部A111は、処理装置1300の要求にしたがって、論理R/W装置901に装填された論理記憶媒体400のR/W処理を実行する。実際には、対応するR/W装置グル−プ900に装填中の記憶媒体パリティグル−プ1610のリ−ド/ライト処理を実行する。この時、回復処理を実行中であれば、回復の中断を要求する。
デマウント処理実行部A112は、処理装置1300の要求にしたがって、ロボット1307を用い、論理R/W装置901に装填された論理記憶媒体400の取りだしを行なう。実際には、対応するR/W装置パリティグル−プ900から、記憶媒体パリティグル−プ1610を取り出す。
回復処理マウント部A113は、故障した物理記憶媒体1312を回復するために、ロボット1307を用い、対応するスロットパリティグル−プ1000に格納されている記憶媒体パリティグル−プ1610を、R/W装置パリティグル−プ900に装填する。
回復処理R/W部A114は、故障した物理記憶媒体1312を回復する処理を実行する。この時、回復中断要求があるかをチェックし、あれば、中断ポイントを記憶し、一度、R/W装置パリティグル−プ900から、回復処理を行っている記憶媒体パリティグル−プ1610を取り出す。
回復デマウント部114は、ロボット1307を用い、回復処理が終了した時、R/W装置パリティグル−プ900から、記憶媒体パリティグル−プ1610を取り出す。
以下、各処理のフロ−を説明する。
まず、マウント処理実行部A110の処理フロ−を説明する。まず、ステップ120で、制御装置1305は、回復中フラグ101を参照する。回復中でなければ、ステップ121で、制御装置1305は、通常のマウント処理を実行する。回復中であれば、ステップ122で、制御装置1305は、回復中スロットパリティグル−プ識別子100を参照して、マウントを要求されたスロットパリティグル−プ1000が、回復中スロットパリティグル−プ識別子100であるかを参照する。そうであれば、ステップ123では、制御装置1305は、R/W処理並列フラグ105をオンにして、ステップ124で、制御装置1305は、処理装置1300に完了報告を行う。そうでなければ、ステップ125で、回復中断要求フラグ102をオンにする。この後、中断フラグ103がオンになるのを待つ。最後に、制御装置1305は、ステップ121で通常のマウント処理を実行する。
R/W処理実行部A111の処理フロ−を説明する。まず、ステップ130で、制御装置1305は、R/W処理並列フラグ105がオンかをチェックする。オンでなければ、ステップ131で、制御装置1305は、要求されたリ−ド/ライト処理を実行する。オンであれば、ステップ132で、回復処理の切れ目をまつ。この後、ステップ131の実行に入る。
デマウント処理実行部A112の処理フロ−を説明する。ステップ140で、制御装置1305は、R/W処理並列フラグ105がオンかをチェックする。ステップ141で、オンでなければ、要求されたデマウント処理を実行する。さらに、ステップ142で、制御装置1305は、R/W処理並列フラグ105をオフし、デマウント要求の完了を報告する。ステップ143で、制御装置1305は、中断フラグ103がオンかをチェックする。オンでなければ、処理を終了し、オンであれば、ステップ144で、回復処理マウント処理の実行を要求する。具体的には、回復処理マウント部A113を起動する。
回復処理マウント部113Aの処理フロ−を説明する。ステップ150で、制御装置1305は、回復処理の対象となる記憶媒体パリティグル−プ1610をR/W装置パリティグル−プ900に装填する。この後ステップ151で、制御装置1305は、中断フラグ103がオンかをチェックする。オフの場合、回復ポインタ103に初期値(まったく回復を行なっていないことを示す値)に設定し、ステップ153へジャンプする。
ステップ152では、制御装置1305は、中断フラグ103をオフにする。さらに、回復ポインタ104を物理記憶媒体1311に退避した場合、この値を読みだし、回復ポインタ104再設定する。ステップ153では、制御装置1305は、回復処理の対象となる記憶媒体パリティグル−プ1610に対応するスロットパリティグル−プ1000の識別子を回復中スロットパリティグル−プ識別子100に設定する。さらに、回復中フラグ101をオンにする。ステップ154では、制御装置1305は、回復ポインタ104で示す領域から、回復処理の実行を要求する。すなわち、回復処理R/W部113の実行を要求する。
回復処理R/W部A114の処理フロ−を説明する。ステップ160で、制御装置1305は、部分領域の回復処理実行する。ステップ161では、回復処理全体が完了したかをチェックする。完了した場合、ステップ162で、回復デマウント処理の実行を要求する。具体的には回復処理デマウント部A115の実行を要求する。完了していない場合、ステップ163で、制御装置1305は、R/W処理並列フラグ105がオンかをチェックする。オフの場合、次の回復処理を行なうため、ステップ160に戻る。オンの場合、ステップ164で、制御装置1305は、実行すべきリ−ド/ライト要求があれば、それが完了するのをまつ。この後、次の回復処理を行なうため、ステップ160に戻る。
回復処理デマウント部A115の処理フロ−を説明する。ステップ170では、制御装置1305は、回復中フラグ101をオフする。ステップ171では、R/W処理並列フラグ105がオンかをチェックする。オンであれば、ステップ172では、R/W処理並列フラグ105をオフし、処理を完了する。オフであれば、ステップ173で、制御装置1305は、回復処理の完了した記憶媒体パリテイグル−プ1600を、R/W装置パリグル−プ900から回復中スロットパリティグル−プ識別子100に対応するスロットパリティグル−プ1000に戻す。
図12は、第2の実施形態を表す。第2の実施形態では、制御装置1305が回復処理専用のR/W装置パリティグル−プ900である回復用R/W装置パリティグル−プ200を持つ点である。本実施形態では、回復用R/W装置パリティグル−プ200が1組の場合について説明するが、本発明は、回復用R/W装置パリティグル−プ200が複数組の場合についても有効である。
本実施形態では、回復処理は、回復用R/W装置パリティグル−プ200を用いるため、処理装置1300からのリ−ド/ライト要求と回復処理との間でリソ−ス競合が発生するのは、回復処理中の記憶媒体パリティグル−プ1610に処理装置1300からリ−ド/ライト要求を受け付けた時だけである。また、この時には、制御装置1305は、処理装置1300から指示された論理R/W装置901に対応するR/W装置パリティグル−プ900を使用せず、回復用R/W装置パリティグル−プ200を用いる。
第2の実施形態に関する情報として、制御装置1305は、制御装置バッファ1310、ディレクトリ1309、不揮発性メモリ管理情報1401などに、回復中スロットパリティグル−プ識別子100、回復中フラグ101、R/W処理並列フラグ105を含む。いずれの情報も第1の実施形態に含まれる情報であり、意味も同様である。さらに、本実施形態では、仮想R/W装置アドレス201を設ける。上記に説明したように、本実施形態では、回復処理中の記憶媒体パリティグル−プ1610に処理装置1300からリ−ド/ライト要求を受け付けた時には、処理装置1300から指示された論理R/W装置901に対応するR/W装置パリティグル−プ900を使用せず、回復用R/W装置パリティグル−プ200を用いる。この際には、回復用R/W装置パリティグル−プ200が見掛け上は、処理装置1300が指定した論理R/W装置901に相当することになる。仮想R/W装置アドレス201には、この論理R/W装置901に相当するアドレスを設定する。
制御装置1305主な機能は、マウント処理実行部B210、R/W処理実行部B211、デマウント処理実行部B212、回復処理マウント部B213、回復処理R/W部B214、回復処理デマウント部B215である。それぞれが、第1の実施形態におけるマウント処理実行部A110、R/W処理実行部A111、デマウント処理実行部A112、回復処理マウント部A113、回復処理R/W部A114、回復処理デマウントA部115に対応する機能である。以下、それぞれについて説明する。
マウント処理実行部B210について説明する。まず、ステップ220で、制御装置1305は、回復中フラグ101を参照する。回復中でなければ、ステップ221で、通常のマウント処理を実行する。回復中であれば、ステップ222で、制御装置1305は、回復中スロットパリティグル−プ識別子100を参照して、マウントを要求されたスロットパリティグル−プ1000が、回復中スロットパリティグル−プ識別子100であるかを参照する。そうであれば、ステップ223では、制御装置1305は、R/W処理並列フラグ105をオンにして、さらに、処理装置1300から指定された論理R/W装置901を、仮想R/W装置アドレス201に設定する。この後、ステップ224で、処理装置1300への完了報告を実行する。
R/W処理実行部B211の処理を説明する。まず、ステップ230で、制御装置1305は、R/W処理並列フラグ105がオンかをチェックする。オンでなれば、さらに、処理装置1300から指定された論理R/W装置901を、仮想R/W装置アドレス201に等しいかをチェックする。両方の条件が成立すれば、ステップ231で、制御装置1305は、回復用R/W装置パリティグル−プ200を用いて、指定されたリ−ド/ライト処理を実行する。どちらか1つでも条件が成立しない場合、ステップ232で、制御装置1305は回復処理の切れ目をまつ。この後、ステップ231に戻り、回復用R/W装置パリティグル−プ200を用いて、指定されたリ−ド/ライト処理を実行する。
デマウント処理実行部B212について説明する。まず、制御装置1305は、ステップ240で、R/W処理並列フラグ105がオンかをチェックする。オンでなれば、ステップ241で、通常のデマウント処理を実行する。この後、ステップ244にジャンプする。オンであれば、ステップ242で、制御装置1305は、処理装置1300から指定された論理R/W装置901を、仮想R/W装置アドレス201に等しいかをチェックする。等しくなければ、ステップ241へジャンプし、通常のデマウント処理を実行する。等しければ、ステップ243で、制御装置1305は、R/W処理並列フラグ105をオフする。この後、ステップ244で、処理装置1300に完了報告を行なう。
回復処理マウント部B213について説明する。ステップ250で、制御装置1305は、回復処理の対象となる記憶媒体パリティグル−プ1610をR/W装置パリティグル−プ900に装填する。ステップ251では、制御装置1305は、回復処理の対象となる記憶媒体パリティグル−プ1610に対応するスロットパリティグル−プ1000の識別子を回復中スロットパリティグル−プ識別子100に設定する。さらに、回復中フラグ101をオンにする。ステップ252では、制御装置1305は、回復ポインタ104で示す領域から、回復処理の実行を要求する。すなわち、回復処理R/W部B214の実行を要求する。
回復処理R/W部B214は、回復処理R/W部A114の処理と同じであるため、説明を省略する。
同様に、回復処理デマウント部B215の処理も、回復処理デマウント部A115と同じであるため、説明を省略する。
図13は、第3の実施形態を表す。第3の実施形態では、制御装置1305が回復処理を行なう際に、回復処理用にR/W装置パリティグル−プ900を割り当てる。特に、何もしないと処理装置1300が、この回復処理用に割り当てたR/W装置パリティグル−プ900に記憶媒体パリティグル−プ1610を装填することを要求してくる。第1の実施形態では、この際、回復処理を中断した。第1の実施形態は、制御装置1304には、1つのR/W装置パリティグル−プ900、すなわち、m+n台のR/W装置1304が接続されている構成で説明した。しかし、この回復処理用に割り当てたR/W装置パリティグル−プ900に記憶媒体パリティグル−プ1610を装填することを要求してきた時、回復処理を中断することは、制御装置1305が複数組のR/W装置パリティグル−プ900を含む場合も適用できる。すなわち、第1の実施形態で示した内容は、制御装置1305が複数組のR/W装置パリティグル−プ900を含む場合も有効である。一方、第3の実施形態では、処理装置1300には、回復処理用に割り当てたR/W装置パリティグル−プ900に対応する論理R/W装置901に障害が発生したとように見せる。こうすることにより、処理装置1300が、回復処理用に割り当てたR/W装置パリティグル−プ900に記憶媒体パリティグル−プ1610を装填することを要求してくることを防ぐことができる。
第3の実施形態に関する情報として、制御装置1305は、制御装置バッファ1310、ディレクトリ1309、不揮発性メモリ管理情報1401などに、回復中スロットパリティグル−プ識別子100、回復中フラグ101、R/W処理並列フラグ105、仮想R/W装置アドレス201を含む。いずれの情報も第2の実施形態に含まれる情報であり、意味も同様である。
制御装置1305内のディレクタ1312の主な機能は、マウント処理実行部B210、R/W処理実行部B211、デマウント処理実行部B212、回復処理マウント部B213、回復処理R/W部B214、回復処理デマウント部C315である。回復処理デマウント部C315以外は、いずれの情報も第2の実施形態に含まれる機能であるため、説明を省略する。さらに、第3の実施形態では、仮障害報告部310を含む。以下、第2実施形態とはことなる2つの機能のそれぞれについて説明する。
まず、仮障害報告部310の処理について説明する。ステップ320で、制御装置1305は、回復処理用に割り当てるR/W装置パリティグル−プ900を決定する。ステップ321では、制御装置1305は、このR/W装置パリティグル−プ900に対応する論理的R/W901に障害が発生したということを処理装置1300に報告する。最後に322で、回復処理マウント部B210を起動する。
回復処理デマウント部C315では、最後にステップ330で、制御装置1305が、処理装置1300に回復用に割り当てていた、R/W装置パリティグル−プ900の障害が回復したことを報告する。
図14は、第4の実施形態を表す。第4の実施形態でも、制御装置1305が回復処理を行なう際に、回復処理用にR/W装置パリティグル−プ900を割り当てる。第3の実施形態でも述べたように、何もしないと処理装置1300が、この回復処理用に割り当てたR/W装置パリティグル−プ900に記憶媒体パリティグル−プ1610を装填することを要求してくる。本実施形態では、制御装置1305が、論理R/W装置900とR/W装置パリティグル−プ900の対応関係を動的に切り換える。すなわち、回復処理用に割り当てたR/W装置パリティグル−プ900に論理R/W装置900を割り当てないようにする。ただし、処理装置1300に見せている論理的R/W装置900の数より、処理装置1300からのリ−ド/ライト処理用にR/W装置パリティグル−プ900の数が少ない場合、対応するR/W装置パリティグル−プ900が空くまでマウント要求がまたされることになる。
第4の実施形態に関する情報として、制御装置1305は、制御装置バッファ1310、ディレクトリ1309、不揮発性メモリ管理情報1401などに、回復中スロットパリティグル−プ識別子100、回復中フラグ101、R/W処理並列フラグ105、仮想R/W装置アドレス201を含む。いずれの情報も第2の実施形態に含まれる情報であり、意味も同様である。さらに、第4の実施形態では、さらに、対応R/W装置パリティグル−プ350、R/W装置パリティグル−プ状態351、回復用R/W装置パリティグル−プ352を含む。
対応R/W装置パリティグル−プ350は、論理R/W装置901ごとの情報である。本情報は、論理R/W装置901が、どのR/W装置パリティグル−プ900に対応するかを表す。R/W装置パリティグル−プ状態351は、R/W装置パリティグル−プ900ごとの情報である。R/W装置パリティグル−プ状態351は、対応するR/W装置パリティグル−プ900が使用中であるか、空いているかを表す。回復用R/W装置パリティグル−プ352は、回復処理用に割り当てたR/W装置パリティグル−プ900の識別子である。本実施形態は、回復用R/W装置パリティグル−プ352が1つ、すなわち、回復処理用に割り当てるR/W装置パリティグル−プ900が1つの場合について説明する。もちろん、本発明は、回復処理用に割り当てるR/W装置パリティグル−プ900が2以上ある場合も有効である。
制御装置1305の主な機能は、マウント処理実行部C360、R/W処理実行部C361、デマウント処理実行部C362、回復処理マウント部C363、回復処理R/W部C364、回復処理デマウント部D365である。以下、各機能ついて説明する。
マウント処理実行部C360について説明する。まず、ステップ370で、制御装置1305は、R/W装置パリティグル−プ状態351を参照して、空いているものがないかを調べる。空いていなければ、ステップ371では、制御装置1305は、当該マウント要求を待たせ、一度処理を終了する。この時、指定された論理R/W装置900の対応R/W装置パリティグル−プ350に、待ち情報を設定する。空いているR/W装置パリティグル−プ900を見つけられたら、ステップ372で、制御装置1305は、指定された論理R/W装置900の対応R/W装置パリティグル−プ350に、見つけたR/W装置パリティグル−プ900の識別子を設定する。制御装置1305は、ステップ373で、回復処理中の記憶媒体パリティグル−プにマウント要求を受け付けたかをチェックし、そうであれば、ステップ374で、指定された論理R/W装置900の対応R/W装置パリティグル−プ350に、回復処理用のR/W装置パリティグル−プ900の識別子を設定し直す。この後、マウント処理実行部B210と同様の処理を実行する。
R/W処理実行部C361の説明を行なう。まず、ステップ380で、制御装置1305は、指定された論理R/W装置900の対応R/W装置パリティグル−プ350を参照し、当該要求がどのR/W装置パリティグル−プ900に対する要求かを認識する。以降は、R/W処理実行部B211の処理を実行する。
デマウント処理実行部C362の説明を行う。まず、制御装置1305は、ステップ390で、指定された論理R/W装置900の対応R/W装置パリティグル−プ350を参照し、当該要求がどのR/W装置パリティグル−プ900に対する要求かを認識する。さらに、ステップ391では、制御装置1305は、R/W処理並列フラグ105を参照し、オンかをチェックする。オンでない時、ステップ392で、対応するR/W装置パリティグル−プ状態351を空き状態にする。オンでない場合、さらに、対応R/W装置パリティグル−プ350を参照し、待ち状態にあるマウント要求があるかをチェックし、あれば、これを記憶しておく。次に、デマウント処理実行部B212の処理を実行する。
最後に、制御装置1305は、ステップ393で、起動しようと記憶していた待ち状態にあるマウント要求があれば、マウント処理を実行するために、マウント処理実行部C360を起動する。
回復処理マウント部C363について説明する。ステップ410で、制御装置1305は、R/W装置パリティグル−プ状態351を参照して、空いているものがないかを調べる。空いていなければ、一度処理を終了する。空いているR/W装置パリティグル−プ900を見つけられたら、ステップ411で、制御装置1305は、回復用R/W装置パリティグル−プ352に、見つけたR/W装置パリティグル−プ900の識別子を設定する。以降の処理は、回復処理マウント部B213と同様である。
回復処理R/W部C364は、回復処理R/W部B214と同じであるため、説明を省略する。
回復処理デマウント部D365の説明を行う。まず、制御装置1305は、ステップ420で、R/W処理並列フラグ105を参照し、オンかをチェックする。オンでない時、ステップ421で、制御装置1305は、回復用R/W装置パリティグル−プ352に対応するR/W装置パリティグル−プ状態351を空き状態にする。さらに、オンでない場合、ステップ422で、制御装置1305は、対応R/W装置パリティグル−プ350を参照し、待ち状態にあるマウント要求があるかをチェックし、あれば、これを記憶しておく。次に、回復処理デマウント部B215と同じ処理を実行する。
この後、制御装置1305は、ステップ423で、回復用R/W装置パリティグル−プ352をクリアする。さらに、制御装置1305は、ステップ424で、記憶していた待ち状態にあるマウント要求があれば、マウント処理の実行を要求する。すなわち、マウント処理実行部C360の実行を要求する。
100:回復中スロットパリティグル−プ識別子、101:回復中フラグ、102:中断要求フラグ、103:中断フラグ、104:回復ポインタ、105:R/W処理並列フラグ、110:マウント処理実行部A、111:R/W処理実行部A、112:デマウント処理実行部A、113:回復処理マウント部A、114:回復処理R/W部A、115:回復処理デマウント部A、201:仮想R/W装置アドレス、210:マウント処理実行部B、211:R/W処理実行部B、212:デマウント処理実行部B、213:回復処理マウント部B、214:回復処理R/W部B、215:回復処理デマウント部B、315:回復処理デマウント部C、310:仮障害報告部、350:対応R/W装置パリティグル−プ、351:R/W装置パリティグル−プ状態、352回復用R/W装置パリティグル−プ、360:マウント処理実行部C、361:R/W処理実行部C、362:デマウント処理実行部C、363:回復処理マウント部C、364:回復処理R/W部C、365:回復処理デマウント部D