(57)【要約】【課題】  複数のスペアドライブをもつディスクアレイ装置において、スペアドライブの物理的な境界に影響されずに、スペアドライブの記憶領域を無駄なく使用する。【解決手段】  複数のスペアドライブ103、103、…から構成される１つの大きなスペアパリティグループ104が定義される。スペアパリティグループ104が提供する大きなスペア論理ドライブ201から、障害データドライブ101Bと同容量のスペア論理ドライブ202が切出され、それに障害データドライブ101Bのデータがコピーされる。スペア論理ドライブ202に対応する仮想的な物理ドライブ206が定義され、これが障害データドライブ101Bに代わって、データパリティグループ102Aに組み込まれる。これにより、障害データドライブ101Bのデータが仮想ドライブ206(スペア論理ドライブ202）に退避される。【選択図】図３
2005149374.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ物理ドライブと複数のスペア物理ドライブを備えるディスクアレイ装置において、
前記複数のスペア物理ドライブにより構成されたスペアパリティグループと、
前記複数のデータ物理ドライブ中にデータ退避の対象となるデータ物理ドライブが存在する場合、所望容量のスペア論理ドライブを前記スペアパリティグループ内に確保するスペア論理ドライブ確保手段と、
前記データ退避の対象となるデータ物理ドライブのデータを前記スペア論理ドライブに退避させるデータ退避手段と
を備えたディスクアレイ装置。
【請求項２】
請求項１記載のものにおいて、
前記スペア論理ドライブ確保手段が、前記データ退避の対象となるデータ物理ドライブの容量に応じて、前記スペア論理ドライブの容量を、前記データ退避の対象となるデータ物理ドライブのデータを退避するに必要な大きさになるよう制御するように構成されているディスクアレイ装置。
【請求項３】
請求項１記載のものにおいて、
前記複数のデータドライブ中に新たなデータ退避の対象となるデータ物理ドライブが出現する都度、
前記スペア論理ドライブ確保手段が、前記パリティグループ内に前詰めで新たなスペア論理ドライブを確保し、
前記データ退避手段が、前記新たにデータ退避の対象となるデータ物理ドライブのデータを、前記新たなスペア論理ドライブに退避させるように構成されているディスクアレイ装置。
【請求項４】
請求項１記載のものにおいて、
前記スペアパリティグループ内のいずれか一つのスペア物理ドライブのデータが他のスペア物理ドライブのデータから複製できるように、前記スペアパリティグループが冗長度をもつデータ格納形式で構成されているディスクアレイ装置。
【請求項５】
請求項１記載のものにおいて、
前記複数のデータドライブにより構成されるデータパリティグループと、
前記スペア論理ドライブに対応する仮想的な物理ドライブを定義し、前記データパリティグループから前記データ退避の対象となるデータ物理ドライブを外し、代わりに、前記仮想的な物理ドライブを前記データパリティグループに組み込むデータパリティグループ再編手段を更に備えたディスクアレイ装置。
【請求項６】
請求項５記載のものにおいて、
前記データパリティグループに対するデータアクセス要求を受けて、前記データパリティグループを構成する複数のデータ物理ドライブの各々が、前記仮想的な物理ドライブであるか実際の物理ドライブであるかを判断するドライブ種別判断手段と、
前記ドライブ種別判断手段によって実際の物理ドライブであると判断されたデータ物理ドライブに対するデータアクセスコマンドを生成する物理ドライブ制御手段と、
前記ドライブ種別判断手段によって仮想的な物理ドライブであると判断されたデータ物理ドライブに対応する前記スペア論理ドライブを識別し、識別された前記スペア論理ドライブが属する前記スペアパリティグループを識別し、識別された前記スペアパリティグループを構成する前記複数のスペア物理ドライブを識別して、識別された前記スペア物理ドライブに対するデータアクセスコマンドを生成する仮想ドライブ制御手段と、
前記物理ドライブ制御手段から前記データ物理ドライブに対するデータアクセスコマンドを受けて前記データ物理ドライブに対するデータアクセスを行い、また、前記仮想ドライブ制御手段から前記スペア物理ドライブに対するデータアクセスコマンドを受けて前記スペア物理ドライブに対するデータアクセスを行う物理ドライブ制御手段と
を更に備えたディスクアレイ装置。
【請求項７】
複数のデータ論理ドライブと複数のスペア物理ドライブを備えるディスクアレイ装置において、
前記複数のスペア物理ドライブにより構成されたスペアパリティグループと、
前記複数のデータ論理ドライブ中にデータ退避の対象となるデータ論理ドライブが存在する場合、所望容量のスペア論理ドライブを前記スペアパリティグループ内に確保するスペア論理ドライブ確保手段と、
前記データ退避の対象となるデータ論理ドライブのデータを前記スペア論理ドライブに退避させるデータ退避手段と
を備えたディスクアレイ装置。
【請求項８】
複数のパリティグループを備えるディスクアレイ装置において、
前記複数のパリティグループのうちのいずれかのパリティグループ内にデータ退避の対象となる物理又は論理ドライブが存在する場合、別のパリティグループ内に所望容量のスペア論理ドライブを確保するスペア論理ドライブ確保手段と、
前記データ退避の対象となる物理又は論理ドライブのデータを前記スペア論理ドライブに退避させるデータ退避手段と
を備えたディスクアレイ装置。
【請求項９】
複数のデータ物理ドライブと複数のスペア物理ドライブを備えるディスクアレイ装置における、前記データ物理ドライブのデータを前記スペア物理ドライブに退避するための方法において、
前記複数のスペア物理ドライブによりスペアパリティグループを構成するステップと、
前記複数のデータ物理ドライブ中にデータ退避の対象となるデータ物理ドライブが存在する場合、所望容量のスペア論理ドライブを前記スペアパリティグループ内に確保するステップと、
前記データ退避の対象となるデータ物理ドライブのデータを前記スペア論理ドライブに退避させるステップと
を備えたデータ退避方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはRAID装置に代表されるようなディスクアレイ装置に関わり、特に、ディスクアレイ装置内のデータドライブのデータを退避する方式に関する。
【背景技術】
【０００２】
ディスクアレイ装置において、障害が発生したデータドライブのデータを、予め交代用に実装されているスペアドライブに退避する方法が一般的に用いられている。装置が健全な状態で動作しているときは、データドライブのデータをスペアドライブに退避する必要が無いので、スペアドライブ自身は全く活用されない状態にある。ディスクアレイ装置に実装できるドライブ台数は限られるので、スペアドライブの実装数は無闇に多くできない。
【０００３】
特許文献１は、少ないスペアドライブ領域を有効活用する方法を提供している。その方法によれば、例えば、或るスペアドライブの容量が複数のデータドライブの各々の容量より大きい場合、そのスペアドライブを複数のパーティションに分割して、それぞれのパーティションにそれぞれのデータドライブのデータを退避させる。或いは、或るデータドライブの容量が複数のスペアドライブの各々の容量より大きい場合、そのデータドライブを、複数のパーティションに分割し、それぞれのパーティションのデータをそれぞれのスペアドライブに退避する。
【０００４】
【特許文献１】特開2003-186630号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されているデータのスペアドライブへの退避方法は、スペアドライブの容量をある程度効率的に使用することができる。しかし、全てのデータドライブの各々と全てのスペアドライブの各々の容量が一致するか整数倍もしくは整数分の１でない限り、スペアドライブ内に無駄な空き領域が生じてしまう場合がある。例えば、70GBのスペアドライブに、２つの30GBのデータドライブのデータが既に退避されている場合、そのスペアドライブには10GBの空き領域が残っている。その後、別の30GBのデータドライブのデータを退避させる場合、10GBの空き領域は小さすぎるため、別のスペアディスクが使われることになり、10GBの空き領域は無駄になってしまう。
【０００６】
ディスクアレイ装置に実装できるドライブには様々な容量のものがあるため、上述した問題が発生する可能性は高い。そして、無駄領域を最小限にするために、或るデータドライブの退避領域をどのスペアドライブの何処に割り当てることが最適であるかを判断することは、事実上困難である。
【０００７】
例えば、30GBの複数のデータドライブと40GBの複数のデータドライブと60GB及び70GBの２つのスペアドライブが存在した場合において、或る30GBのデータドライブのデータを退避させるとき、60GBと70GBのいずれのスペアドライブを選択することが最適であるかは、将来的に30GBと40GBのいずれのデータドライブが次の退避の対象になるかによって異なる。そして、このことは現時点では不明であるから、最適な割り当てを選択することは非常に困難である。
【０００８】
本発明の目的は、複数のスペアドライブをもつディスクアレイ装置において、スペアドライブの物理的な境界に影響されずに、スペアドライブの記憶領域を無駄なく使用できるようにすることにある。
【課題を解決するための手段】
【０００９】
本発明の一つの観点に従う、複数のデータ物理ドライブと複数のスペア物理ドライブを備えるディスクアレイ装置は、前記複数のスペア物理ドライブにより構成されたスペアパリティグループと、前記複数のデータ物理ドライブ中にデータ退避の対象となるデータ物理ドライブが存在する場合、所望容量のスペア論理ドライブを前記スペアパリティグループ内に確保するスペア論理ドライブ確保手段と、前記データ退避の対象となるデータ物理ドライブのデータを前記スペア論理ドライブに退避させるデータ退避手段とを備える。
【００１０】
一つの実施形態では、前記スペア論理ドライブ確保手段が、前記データ退避の対象となるデータ物理ドライブの容量に応じて、前記スペア論理ドライブの容量を、前記データ退避の対象となるデータ物理ドライブのデータを退避するに必要な大きさになるよう制御するように構成されている。
【００１１】
一つの実施形態では、新たなデータ退避の対象となるデータ物理ドライブが出現する都度、前記スペア論理ドライブ確保手段が、前記パリティグループ内に前詰めで新たなスペア論理ドライブを確保し、そして、前記データ退避手段が、前記新たにデータ退避の対象となるデータ物理ドライブのデータを、前記新たなスペア論理ドライブに退避させるように構成されている。
【００１２】
一つの実施形態では、前記スペアパリティグループ内のいずれか一つのスペア物理ドライブのデータが他のスペア物理ドライブのデータから複製できるように、前記スペアパリティグループが冗長度をもつデータ格納形式で構成されている。
【００１３】
一つの実施形態では、前記複数のデータドライブによりデータパリティグループが構成されている。そして、前記スペア論理ドライブに対応する仮想的な物理ドライブを定義し、前記データパリティグループから前記データ退避の対象となるデータ物理ドライブを外し、代わりに、前記仮想的な物理ドライブを前記データパリティグループに組み込むデータパリティグループ再編手段が更に設けられる。
【００１４】
一つの実施形態では、前記データパリティグループに対するデータアクセス要求を受けて、前記データパリティグループを構成する複数のデータ物理ドライブの各々が、前記仮想的な物理ドライブであるか実際の物理ドライブであるかを判断するドライブ種別判断手段と、前記ドライブ種別判断手段によって実際の物理ドライブであると判断されたデータ物理ドライブに対するデータアクセスコマンドを生成する物理ドライブ制御手段と、前記ドライブ種別判断手段によって仮想的な物理ドライブであると判断されたデータ物理ドライブに対応する前記スペア論理ドライブを識別し、識別された前記スペア論理ドライブが属する前記スペアパリティグループを識別し、識別された前記スペアパリティグループを構成する前記複数のスペア物理ドライブを識別して、識別された前記スペア物理ドライブに対するデータアクセスコマンドを生成する仮想ドライブ制御手段と、前記物理ドライブ制御手段から前記データ物理ドライブに対するデータアクセスコマンドを受けて前記データ物理ドライブに対するデータアクセスを行い、また、前記仮想ドライブ制御手段から前記スペア物理ドライブに対するデータアクセスコマンドを受けて前記スペア物理ドライブに対するデータアクセスを行う物理ドライブ制御手段とが更に設けられる。
【００１５】
本発明の別の観点に従う、複数のデータ論理ドライブと複数のスペア物理ドライブを備えるディスクアレイ装置は、前記複数のスペア物理ドライブにより構成されたスペアパリティグループと、前記複数のデータ論理ドライブ中にデータ退避の対象となるデータ論理ドライブが存在する場合、所望容量のスペア論理ドライブを前記スペアパリティグループ内に確保するスペア論理ドライブ確保手段と、前記データ退避の対象となるデータ論理ドライブのデータを前記スペア論理ドライブに退避させるデータ退避手段とを備える。
【００１６】
本発明のまた別の観点に従う、複数のパリティグループを備えるディスクアレイ装置は、前記複数のパリティグループのうちのいずれかのパリティグループ内にデータ退避の対象となる物理又は論理ドライブが存在する場合、別のパリティグループ内に所望容量のスペア論理ドライブを確保するスペア論理ドライブ確保手段と、前記データ退避の対象となる物理又は論理ドライブのデータを前記スペア論理ドライブに退避させるデータ退避手段とを備える。
【００１７】
本発明の更に別の観点に従う、複数のデータ物理ドライブと複数のスペア物理ドライブを備えるディスクアレイ装置における、前記データ物理ドライブのデータを前記スペア物理ドライブに退避するための方法は、前記複数のスペア物理ドライブによりスペアパリティグループを構成するステップと、前記複数のデータ物理ドライブ中にデータ退避の対象となるデータ物理ドライブが存在する場合、所望容量のスペア論理ドライブを前記スペアパリティグループ内に確保するステップと、前記データ退避の対象となるデータ物理ドライブのデータを前記スペア論理ドライブに退避させるステップとを備える。
【発明の効果】
【００１８】
本発明によれば、スペアパリティグループによって提供されるスペア論理ドライブに、退避対象のドライブのデータが退避される。よって、個々のスペアアドライブの容量による物理的な境界に影響されずに、スペアドライブ空間を効率的に使用することができる。
【発明を実施するための最良の形態】
【００１９】
本発明の一つの実施形態を図面を参照して説明する。
【００２０】
図１は、本発明の一実施形態にかかるディスクアレイ装置の全体構成を示す。
【００２１】
図１に示すように、ディスクアレイ装置100は、多数のディスクドライブ101、103、ディスク制御部105、共用メモリ106、キャッシュメモリ107及びホストインタフェース制御部108を有する。ディスクドライブ101、103は、その使用目的に応じ、データの主たる記憶場所として使用されるデータドライブ101、データドライブ101の故障に備えるためにデータドライブ101のデータの退避先として使用されるスペアドライブ103とに分類することができる。具体的にどのディスクドライブをデータドライブ101又はスペアドライブ103として使用するかの使い分けは、ユーザ又はホストコンピュータ109等からこのディスクアレイ装置100に対する命令によって、任意に制御することができる。
【００２２】
ディスク制御部105は、主に、ディスクドライブ101、103に対するデータの読み／書きの制御を行う。ホストインタフェース制御部108は、１以上のホストコンピュータ（以下、ホストと略称する）109と接続され、ホスト109に対するデータ読み／書き要求等のコマンド、それらコマンドに対する応答、及び読み／書き対象のデータ等の送受信を行う。また、ホストインタフェース制御部108は、ホストコンピュータ109から受信したデータ読み／書き要求等のコマンドを解釈して、解釈結果に応じてディスク制御部105を初めとするディスクアレイ装置100内の各部の動作を制御することも行う。ディスク制御部105とホストインタフェース制御部108は、協働して、本発明の原理に従うデータドライブ101のデータをスペアドライブ103に退避させる動作の制御、及び退避されたデータに対するホスト109からデータ読み／書き要求の処理等も行う。
【００２３】
共用メモリ106には、各種の管理用又は制御用のデータ及び各種の制御プログラムが格納される。共用メモリ106内のデータ及びプログラムは、ディスク制御部105及びホストインタフェース制御部108によって登録、更新、参照或いは実行され、それにより、ディスク制御部105及びホストインタフェース制御部108がそれぞれの動作を正しく行うことができる。
【００２４】
キャッシュメモリ107は、ディスク制御部105によってディスクドライブ101、103から読み出されたデータ、及びホストインタフェース制御部108によってホストコンピュータ109から受信されたデータが、少なくともそれぞれのデータの宛先へ送り出されるまでの間、一時的に保持されるために使用される。例えば、ホスト109からデータ読み出し要求を受けた場合、然るべきデータドライブ101から読み取られたデータは、一旦キャッシュメモリ107に格納されホストインタフェース制御部108を介してホスト109に転送される。また、ホスト109からのデータ書き込み要求を受けた場合、書き込み対象のデータは、一旦キャッシュメモリ107に格納された後、ディスク制御部105を介し、然るべきデータドライブ101に書き込まれる。
【００２５】
ディスク制御部105は、複数のディスク接続インタフェース110を持ち、各ディスク接続インタフェース110に対して複数のデータドライブ101と１以上のスペアドライブ103が接続されている。各データドライブ101は、異なるディスク接続インタフェース110に接続される他の１以上のデータドライブ101と論理的に結合されてパリティグループ102を形成する。各スペアドライブ103も、異なるディスク接続インタフェース110に接続される他の１以上のスペアドライブ103と論理的に結合されてパリティグループ104を形成する。以下の説明では、データドライブ101により構成されるパリティグループ102と、スペアドライブ103により構成されるパリティグループ104とを区別するために、前者102をデータパリティグループと呼び、後者104をスペアパリティグループと呼ぶ。通常、データパリティグループ102は複数存在し、スペアパリティグループ104は１以上存在する。パリティグループ102、104がどのディスクドライブ101、103から構成され、且つ、それがデータパリティグループとスペアパリティグループの何れの種別に該当するかということを定義した情報（以下、パリティグループ情報という）が、共用メモリ106内に格納される。ディスク制御部105は、データをディスクドライブ101、103に対して読んだり書いたりするときに、上記パリティグループ情報を参照して、どのディスクドライブ101、103に対して読み／書き動作を行えばいいのか判断する。また、ディスク制御部105は、ディスクドライブ101のデータを退避させるとき、上記パリティグループ情報を参照して、どのスペアドライブ103に対して退避対象のデータを書き込めばいいのか判断する。
【００２６】
図２は、パリティグループにおけるデータの格納形式を説明したものである。図２では、一例として４つのディスクドライブから構成される３Ｄ＋１Ｐ形式（３つのデータを３つのディスクドライブにそれぞれ格納し、それら３つのデータの排他的論理により得られるパリティデータをもう一つのデースクドライブに格納する形式）のパリティグループを取り上げているが、図２を参照した以下の説明は、RAID1又はRAID5などの原理に従う様々な形式のパリティグループにもあてはまるものである。また、この説明は、図１に示したデータパリティグループ102にもスペアパリティグループ104にもあてはまるものである。
【００２７】
図２に示すように、１つのパリティグループ102（又は104）を構成する複数のディスクドライブ101、101、…（又は103、103、…）のそれぞれの記憶領域は、所定の単位容量をもつ多数の小記憶領域（以下、ブロック領域という）120に論理的に分割されている。そして、各ディスクドライブ101（又は103）内のブロック領域120、120、…の各々は、他の全てのディスクドライブ101、101、…（又は103、103、…）内のブロック領域120、120、…と論理的に組み合わされて、図２中では横方向に伸びた行として図示された領域（以下、ストライプ領域と呼ぶ）121、121、…を形成する。このようにして、１つのパリティグループ102（又は104）内には多数のストライプ領域121、121、…が存在する。
【００２８】
各ストライプ領域121は、図示のように、そのパリティグループ102（又は104）を構成する全てのディスクドライブ101、101、…（又は103、103、…）に跨っていて、それら全てのディスクドライブ101、101、…（又は103、103、…）からそれぞれ選ばれた複数個のブロック領域120、120、…から構成される。１つのストライプ領域121を構成する複数個のブロック領域120、120、…のうち、例えば１つを除いた他のブロック領域120、120、…には、ホスト装置５によるアクセス対象である対象データが格納され、もう１つのブロック領域120には、その対象データから作られたパリティデータが格納される。例えば、図２中の一番上に示されたストライプ領域121では、参照符号B1、B2、B3が対象データを表し、参照符号P(1-3)が、対象データB1、B2、B3から作成されたパリティデータである。このようにパリティデータを含ませた冗長的なデータ構造をもつ各ストライプ領域121においては、そこに含まれるいずれのデータも他の全てのデータから複製することができるという関係をもつ。従って、同じパリティグループ102（又は104）においては、各ディスクドライブ101（又は103）は、他の全てのディスクドライブ101、101、…（又は103、103、…）のデータから複製することができる。
【００２９】
各パリティグループ102（又は104）は、それ全体として、それを構成する複数のディスクドライブ101、101、…（又は103、103、…）の物理的な境界から解放された、大容量の論理的に連続な一つの記憶領域、つまり、大容量の論理的な一つのディスクドライブを提供する。そして、この大容量の一つの論理ドライブは、より小容量の複数の論理ドライブ122、122、…に分割することができる。これら分割された論理ドライブの122、122、…は、それぞれ、任意数のストライプ領域のセットから構成される。換言すれば、これら分割された論理ドライブの122、122、…の各々の容量は、そのパリティグループを構成する複数のディスクドライブ101、101、…（又は103、103、…）の物理的な境界には影響されずに、実質的に自由に設定され得る。この利点は、以下に説明するように、この実施形態におけるデータ退避の制御に利用される。
【００３０】
図３は、この実施形態におけるデータ退避の動作の概要を示す。
【００３１】
図３に示すように、複数のスペアドライブ103、103、…から構成される１つの大きなスペアパリティグループ104が定義される。このスペアパリティグループ104は、上述したように、データ退避用の大容量の一つの論理ドライブ（以下、大スペア論理ドライブという）201を提供する。
【００３２】
例えばデータドライブ101Bで障害が発生してそのデータドライブ（障害の生じたデータドライブを、以下、障害データドライブという）101Bのデータを退避させる必要が生じたとき、スペアパリティグループ104が提供する大スペア論理ドライブ201の先頭アドレスから、障害データドライブ101Bの容量と同じ正味の容量（パリティデータを除いた、対象データだけのための記憶容量）をもったデータ退避領域（以下、スペア論理ドライブ空間という）202が確保されて、これが障害データドライブ101Bに割り当てられる。こうして障害データドライブ101B
に割り当てられたスペア論理ドライブ空間202は、一つの論理的なスペアドライブ（以下、割当スペア論理ドライブという）として定義される。その後、この割当スペア論理ドライブ（論理スペアドライブ空間）202に、矢印204で示すように、障害データドライブ101B内のデータがコピーされる。さらに、割当スペア論理ドライブ202に対して、仮想的な物理ドライブドライブ（以下、仮想ドライブとして）206が定義される。そして、障害データドライブ101Bがデータパリティグループ102Aから外され、代わって、仮想ドライブ206が、矢印208で示すように、データパリティグループ102Aに組み込まれる。これにより、障害データドライブ101Bのデータが、仮想ドライブ206（割当スペア論理ドライブ202）に退避されたことになる。
【００３３】
その後、別の障害データドライブ101Fのデータを退避させる必要が生じたときは、大スペア論理ドライブ201内の既に定義された割当スペア論理ドライブ202に引き続くアドレスから（つまり、前の割当スペア論理ドライブ202との間に無駄な領域を開けずに、アドレスが連続するようにして）、障害データドライブ101Fの容量と同じ正味の容量をもつ新たなスペア論理ドライブ空間203が確保され、それが障害データドライブ101Fに割り当てられた新たな割当スペア論理ドライブとして定義される。そして、この割当スペア論理ドライブ203に、矢印205で示すように、障害データドライブ101Fのデータがコピーされる。さらに、割当スペア論理ドライブ203に対して、仮想ドライブ207が定義される。そして、障害データドライブ101Fがデータパリティグループ102Bから外され、代わって、仮想ドライブ207がデータパリティグループ102Bに組み込まれる。これにより、障害データドライブ101Fのデータが、仮想ドライブ207（割当スペア論理ドライブ203）に退避されたことになる。
【００３４】
以上の動作は、スペアパリティグループ104の大スペア論理ドライブ201から、次のスペア論理ドライブに必要な容量の空き記憶領域が無くなるまで、繰り返し行うことができる。また、特開2003-186630号公報に記載された退避対象のドライブをパーティッションに分割する方法を併用すれば、大スペア論理ドライブ201から空き記憶領域が全く無くなるまで、上記の動作を繰り返し行うこともできる。大スペア論理ドライブ201に必要な空き容量がある限りにおいて、そこに退避され得るデータドライブの個数には制限がない。よって、スペアドライブ数より多くのデータドライブが退避できる場合がある。
【００３５】
また、データドライブの容量とスペアドライブの容量との大小関係、将来的に次のデータ退避対象がどの容量のデータドライブになるかという点、或いは、スペアドライブ間の物理的な境界などを意識することなしに、データ退避対象のデータドライブが生じる都度に、大スペア論理ドライブ201に前詰めでデータを押し込んでいくことができる。よって、スペアドライブの空間を有効活用することができる。
【００３６】
図４は、共用メモリ106に記憶されるデータ退避の制御に利用される管理データの例を示す。
【００３７】
共用メモリ106内には、物理ドライブ情報301、パリティグループ情報302及び論理ドライブ情報303が格納されている。物理ドライブ情報301は、図１に示したデータドライブ101、101、…やスペアドライブ103、103、…などの全ての物理的なディスクドライブのそれぞれについて、そのディスクドライブに固有の物理ドライブ識別情報、ディスクアレイ装置100内での実装場所を示す場所情報、記憶容量を示す容量情報、型式を示す型式情報、及びデータドライブかスペアドライブかを示す種別情報などを含んだ物理ドライブ定義情報304、304、…が格納されている。ディスク情報301には、また、実在の物理ドライブ101、101、…、103、103、…についてだけでなく、図３を参照して説明した割当スペア論理ドライブにそれぞれ対応する仮想ドライブについても、その仮想ドライブに固有の仮想ドライブ識別情報、場所情報、容量情報、型式情報、仮想ドライブであることを示す種別情報、及び対応する論理ドライブ（割当スペア論理ドライブ）を識別する論理ドライブ識別情報などを含んだ仮想ドライブ定義情報305、305、…が記憶されている。
【００３８】
パリティグループ情報305には、データパリティグループ102、102、…及びスペアパリティグループ104、104、…などの全てのパリティグループのそれぞれについて、そのパリティグループに固有のパリティグループ識別情報、それを構成する複数のディスクドライブの物理ドライブ識別情報、及びデータパリティグループかスペアパリティグループかを示す種別情報などを含んだパリティグループ定義情報306、306、…が格納されている。パリティグループ定義情報306、306、…は、それぞれ、それを構成する複数のディスクドライブの物理ドライブ定義属情報304、304、…と、矢印307で示すようにリンクされている。
【００３９】
論理ドライブ情報303には、全ての論理ドライブについて、その論理ドライブに固有の論理ドライブ識別情報及びその論理ドライブが存在するパリティグループのパリティグループ識別情報とそのパリティグループ内の位置情報（例えば、ブロック領域或いはストライプ領域の識別番号など）などを含んだ論理ドライブ定義情報308、308、…が格納されている。これらの論理ドライブ定義情報308、308、…は、それぞれ、対応するパリティグループの構成ドライブ情報306、306、…に、矢印309で示すようにリンクされている。ここに定義された論理ドライブには、データパリティグループから提供されるデータ論理ドライブだけでなく、スペアパリティグループから提供される割当スペア論理ドライブも含まれている。割当スペア論理ドライブの論理ドライブ定義情報308、308、…は、それぞれ、対応する仮想ドライブの仮想ドライブ定義情報305、305、…に、矢印310、310、…で示すようにリンクされている。また、仮想ドライブ定義情報305、305、…は、それぞれ、対応する割当スペア論理ドライブに割り当てられたデータドライブの物理ドライブ定義情報304、304、…に、矢印311で示すようにリンクされている。
【００４０】
これらの情報の操作手順を、図４に示した例を用いて説明する。
【００４１】
例えば、「ドライブ00」、「ドライブ10」、「ドライブ20」及び「ドライブ30」により構成される「データパリティグループ0」を定義したパリティグループ定義情報306がパリティグループ情報302に登録されることにより、「データパリティグループ0」が作成される。同様にして、別の「データパリティグループ1」のパリティグループ定義情報306がパリティグループ情報302に登録されることにより、「データパリティグループ1」が作成される。そして、「データパリティグループ0」又は「データパリティグループ1」に属する「データ論理ドライブ00」、「データ論理ドライブ01」及び「データ論理ドライブ10」を定義した論理ドライブ定義情報308、308、308が論理ドライブ情報303に登録されることにより、データ論理ドライブ00」、「データ論理ドライブ01」及び「データ論理ドライブ10」が作成される。
【００４２】
また、「ドライブ02」、「ドライブ12」、「ドライブ22」及び「ドライブ32」により構成される「スペアパリティグループ0」を定義したパリティグループ定義情報306がパリティグループ情報302に登録されることにより、「スペアパリティグループ0」が作成される。
【００４３】
その後、例えば、「データパリティグループ0」に属する「ドライブ10」のデータを退避させようとする場合、「スペアパリティグループ0」から、「ドライブ10」と同じ正味容量をもった「割当スペア論理ドライブ00」が確保されて、その論理ドライブ定義情報308が論理ドライブ情報303に追加登録されるとともに、これに対応する「仮想ドライブ00」の定義情報305が物理ドライブ情報301に追加登録される。この「仮想ドライブ00」の物理ドライブ定義情報305は、「データドライブ10」の定義情報304とリンクされる。これにより、「データドライブ10」に対して「仮想ドライブ00」つまり「割当スペア論理ドライブ00」が割り当てられたことになる。そして、「データディスク0010」内のデータが、「仮想ドライブ00」つまり「割当スペア論理ドライブ00」にコピーされる。
【００４４】
コピー終了後、「データパリティグループ0」のパリティグループ定義情報306に記録されている物理ディスク識別情報から、「データドライブ00」の識別情報が除去され、代わりに、「仮想ドライブ00」の識別情報がそこに書き込まれる。これにより、「データパリティグループ0」において、「データドライブ00」が「仮想ドライブ00」に入れ替えられたことになる。こうして、「データドライブ00」のデータが、「スペアパリティグループ0」内の「割当スペア論理ドライブ00」に退避される。
【００４５】
図５は、この実施形態においてホストコンピュータ109からのデータリード／ライト要求に基づくデータのリード／ライト処理を行うためにディスク制御部105がもつ機能的構成を示す。以下、図５を参照して、ディスク制御部105が行うデータリード／ライト処理について説明する。
【００４６】
図５に示すように、ディスク制御部105は、データリード／ライト要求を処理するRAID制御部402、物理ドライブ101、101、…に対するデータリード／ライト処理を制御する物理ドライブ制御部403、及び仮想ドライブに対するデータリード／ライト処理を制御する仮想ドライブ制御部404を有する。
【００４７】
まず、通常のデータリード/ライト処理、すなわち、データのリード／ライトを要求されたパリティグループが物理ドライブ（データディスクドライブ）のみから構成され、仮想ドライブ（割当スペア論理ドライブ）を含んでいない場合におけるデータリード/ライト処理について説明する。
【００４８】
ディスク制御部105とホストインタフェース制御部608との間のデータの受け渡しは、全てキャッシュメモリ107内に格納されたリード／ライトデータ407を介して行う。リード／ライトデータ407は、どの論理ドライブに対するデータか示す論理ドライブ識別情報と共にキャッシュメモリ107に格納されている。
【００４９】
データライト時は、データライト要求を受けたRAID制御部402が、キャッシュメモリ107内の要求されたライトデータ407を参照し、そして、そのライトデータ407をライトするよう要求された論理ドライブがどのパリティグループに属しているかを、共用メモリ106内の論理ドライブ情報303を参照して判断する。そして、RAID制御部402は、そのパリティグループがどの物理ドライブから成り立っているかを、パリティグループ情報302と物理ドライブ情報301を参照して判断する。その後、RAID制御部402は、物理ドライブ制御部403を介して、そのパリティグループを構成するそれぞれの物理ドライブ101、101、…に対して、要求されたライトデータ407のライトコマンドを発行する。
【００５０】
データリード時も同様に、データリード要求を受けたRAID制御部402が、データリードを要求された論理ドライブがどのパリティグループに属しているかを、共用メモリ106内の論理ドライブ情報303を参照して判断し、そして、そのパリティグループがどの物理ドライブから成り立っているかを、パリティグループ情報302と物理ドライブ情報301を参照して判断する。その後、RAID制御部402は、物理ドライブ制御部403を介して、そのパリティグループを構成するそれぞれの物理ドライブ101、101、…に対して、要求されたデータのリードコマンドを発行する。そして、RAID制御部402は、それぞれの物理ドライブ101、101、…からリードされたデータを組み立ててキャッシュメモリ107にライトデータ407として書き込む。
【００５１】
以上が、通常のデータリード／ライト処理である。次に、データのリード／ライトを要求されたパリティグループが仮想ドライブ（割当スペア論理ドライブ）を含んでいる場合におけるデータリード/ライト処理について説明する。
【００５２】
RAID制御部402は、上述したデータリード／ライト処理の過程において、パリティグループ情報302と物理ドライブ情報301を参照した結果、データのリード／ライトが要求されたパリティグループがスペアパリティグループ内の仮想ドライブを含んでいたと判った場合には、その仮想ドライブに対するデータのリード／ライトコマンドを発行する。この場合、RAID制御部402は、物理ドライブ制御部403にではなく、仮想ドライブ制御部404に対して、そのリード／ライトコマンドを送る。仮想ドライブ制御部404は、共用メモリ106内の物理ドライブ情報301と論理ドライブ情報303を参照して、その仮想ドライブがどの論理ドライブ（割当スペア論理ドライブ）に対応しているか判断する。
【００５３】
その後、仮想ドライブ制御部404は、リードコマンドの場合には、RAID制御部402に対して、その論理ドライブ（割当スペア論理ドライブ）から要求されたデータをリードすることを要求する。RAID制御部402は、上述した通常のデータリード処理と同様の制御を行って、その論理ドライブ（割当スペア論理ドライブ）からのデータのリード処理を行う。その結果、リードデータ407がキャッシュメモリ107に書き込まれる。RAID制御部402によってキャッシュメモリ107に書き込まれたリードデータは、仮想ドライブ制御部404によって読み込まれてRAID制御部402に渡され、そして、RAID制御部402によって再びキャッシュメモリ107に書き込まれる。一方、ライトコマンドの場合には、仮想ドライブ制御部404は、キャッシュメモリ107内にライトデータ407を書き込んで、RAID制御部402に対して、そのライトデータ407についてのライト要求を出す。RAID制御部808は、上述した通常のデータライト処理と同様の制御を行って、その論理ドライブ（割当スペア論理ドライブ）へのデータのライト処理を行う。
【００５４】
以下では、上述したデータリード／ライト処理の流れを、図６〜図１１を参照してさらに詳細に説明する。
【００５５】
まず、データリード処理について説明する。図６は、データリード処理の全体の流れを示す。図７は、データリード処理のうちRAID制御部402が行う部分の流れを示す。図８は、データリード処理のうち仮想ドライブ制御部404が行う部分の流れを示す。
【００５６】
図６及び図７に示すように、RAID制御部402は、或る論理ドライブに対するデータリード要求をホストインタフェース制御部108から受け取ると(501)、その論理ドライブが属するパリティグループを論理ドライブ情報303から導き出し(502)、そして、そのパリティグループを構成するデータ物理ドライブをパリティグループ情報302から導き出す(503)。RAID制御部402は、それらのデータ物理ドライブが、仮想ドライブであるか通常（実際）のデータ物理ドライブであるかを、物理ドライブ情報301の種別情報に基づいて判断する(504)。
【００５７】
ステップ504の結果が通常の物理ドライブの場合、RAID制御部402は、物理ドライブ制御部403に対してデータリード要求を発行する(506)。ステップ504の結果が仮想ドライブの場合、RAID制御部402は、仮想ドライブ制御部404に対してデータリード要求を発行する(図７の521)。RAID制御部402は、上記のようにドライブの種別を判定し(504)、そして、その種別に応じて物理ドライブ制御部403又は仮想ドライブ制御部404にデータリード要求を発行する(506又は521)という制御を、リード対象のパリティグループを構成する全ドライブに関して繰り返す（517、518）。
【００５８】
ステップ506でRAID制御部402が物理ドライブ制御部403にデータリード要求を発行した場合、その後、RAID制御部402は、物理ドライブ制御部403からリードデータを受け取る(507)。
【００５９】
一方、ステップ521でRAID制御部402が仮想ドライブ制御部404にデータリード要求を発行した場合には、そのデータリード要求を受けた仮想ドライブ制御部404は、図６及び図８に示すような処理を行う。すなわち、仮想ドライブ制御部404は、RAID制御部402からのデータリード要求を受け付けると(531)、指定された仮想ドライブがどの論理ドライブ（割当スペア論理ドライブ）に対応するかを、物理ドライブ情報301内の仮想ドライブ定義情報(305)から導き出す(508)。そして、仮想ドライブ制御部404は、その論理ドライブ（割当スペア論理ドライブ）に対するデータリード要求をRAID制御部402に発行する(532)。このようにして、RAID制御部402へは再帰的にデータリード要求が発行されることになる。
【００６０】
仮想ドライブ制御部404からの再帰的なデータリード要求を受けると、RAID制御部402は、図７にステップ501、509、510及び504の流れで示された制御を行う。そして、この場合、図７のステップ504での判断結果は、通常の物理ドライブ（スペアドライブ）となるため、RAID制御部402は、図６及び図７に示すステップ511へ進んで、物理ドライブ制御部403にデータリード要求を発行し、そして、ステップ512にて、物理ドライブ制御部403からリードデータを受け取る。RAID制御部402は、上記のステップ511及び512の制御を、リード対象のパリティグループ（スペアパリティグループ）を構成する全物理ドライブ(スペアドライブ）に関して繰り返す（513、514）。そして、RAID制御部402は、それぞれのスペアドライブからリードされたデータを組み立ててキャッシュメモリ107にライトデータ407として書き込む(515)。
【００６１】
その後、図６及び図８に示すように、仮想ドライブ制御部404が、ステップ515でキャッシュメモリ107書き込まれたライトデータ407を読み込み(516)、そのライトデータ407を、RAID制御部402からのデータリード要求（図７のステップ521）に対する応答して、RAID制御部402に返送する。これにより、RAID制御部402は、仮想ドライブからのリードデータを受け取ったことになる。
【００６２】
このようにして、RAID制御部402は、ホストインタフェース制御部108からのデータリード要求により要求された全てのデータを通常の物理ドライブ又は仮想ドライブから取得する。そして、RAID制御部402は、それら取得されたリードデータを組み立ててキャッシュメモリ107にライトデータ407として書き込む。
【００６３】
次に、データライト処理に関して説明する。図９は、データライト処理の全体の流れを示す。図１０は、データライト処理のうちRAID制御部402が行う部分の流れを示す。図１１は、データライト処理のうち仮想ドライブ制御部404が行う部分の流れを示す。
【００６４】
図９及び図１０に示すように、RAID制御部402は、或る論理ドライブに対するデータライト要求をホストインタフェース制御部108から受け取ると(601)、その論理ドライブが属するパリティグループを論理ドライブ情報303から導き出し(602)、そして、そのパリティグループを構成する物理ドライブをパリティグループ情報302から導き出す(603)。さらに、RAID制御部402は、キャッシュメモリ107からライトデータを読み込み(604)、それに基づいてパリティデータを作成する(605)。
【００６５】
さらに、RAID制御部402は、ステップ603で導き出された物理ドライブの各々が、仮想ドライブであるかそれ以外の通常の物理ドライブであるかを、物理ドライブ情報301の種別情報に基づいて判断する(606)。ステップ606の結果が通常の物理ドライブの場合、RAID制御部402は、物理ドライブ制御部403に対してデータライト要求を発行する(607)。ステップ606の結果が仮想ドライブの場合、RAID制御部402は、仮想ドライブ制御部404に対してデータライト要求を発行する(図１０の622)。RAID制御部402は、上記のようにドライブの種別を判定し(606)、そして、その種別に応じて物理ドライブ制御部403又は仮想ドライブ制御部404にデータライト要求を発行する(607又は622)という制御を、リード対象のパリティグループを構成する全ドライブに関して繰り返す（619、621）。
【００６６】
ステップ607でRAID制御部402が物理ドライブ制御部403にデータライト要求を発行した場合、その後、RAID制御部402は、物理ドライブ制御部403からリードライト応答を受け取る(608)。
【００６７】
一方、ステップ622でRAID制御部402が仮想ドライブ制御部404にデータライト要求を発行した場合には、そのデータライト要求を受けた仮想ドライブ制御部404は、図９及び図１１に示すような処理を行う。すなわち、仮想ドライブ制御部404は、RAID制御部402からのデータライト要求を受け付けると(図１１、631)、指定された仮想ドライブがどの論理ドライブ（割当スペア論理ドライブ）に対応するかを、物理ドライブ情報301内の仮想ドライブ定義情報(305)から導き出す(609)。そして、仮想ドライブ制御部404は、ライトデータをキャッシュメモリ107に書き込み(610)、そして、ステップ609で導き出された論理ドライブ（割当スペア論理ドライブ）へのデータライト要求をRAID制御部402に発行する(632)。このようにしれ、RAID制御部402へは再帰的にデータライト要求が発行されることになる。
【００６８】
仮想ドライブ制御部404からの再帰的なデータライト要求を受けると、RAID制御部402は、図１０にステップ601、611〜614及び606の流れで示された制御を行う。そして、この場合、図１０のステップ606での判断結果は、通常の物理ドライブ（スペアドライブ）となるため、RAID制御部402は、図９及び図１０に示すステップ615へ進んで、物理ドライブ制御部403にデータライト要求を発行し、そして、ステップ616にて、物理ドライブ制御部403からデータライト応答を受け取る。RAID制御部402は、上記のステップ615及び616の制御を、ライト対象のパリティグループ（スペアパリティグループ）を構成する全物理ドライブ(スペアドライブ）に関して繰り返す（617、618）。これにより、仮想ドライブへのリードライトが完了する。
【００６９】
以上のようにして、ホストインタフェース制御部108からのデータライト要求により要求された全てのライトデータが、要求された論理ドライブを構成する通常の物理ドライブ又は仮想ドライブに書き込まれ、データライト処理が完了する。
【００７０】
図１２は、スペアパリティグループ104をRAID5などの冗長度をもつパリティグループとすることによる利点を説明するものである。
【００７１】
図１２に示すように、スペアパリティグループ104内の一部のスペアドライブ103Cのデータが読み取り不能になった場合、スペアパリティグループ104内の他の正常なスペアドライブ103A、103B及び103Dのデータから、その読取り不能なデータを複製することができる。そのため、スペアパリティグループ104に退避されたデータドライブ101Bのデータは全く失われない。ところで、このようにスペアドライブ103Cに障害が生じた場合、そのスペアドライブライブ103Cのデータをスペアパリティグループ104に退避させたとすると、アクセスが回帰的になってしまうという問題が生じる。そのためスペアパリティグループ104内のドライブのデータ退避は行わないようにする。
【００７２】
スペアドライブの障害からデータを保護する方法として、上述した冗長性のあるスペアパリティグループを用いたストライピングの他に、スペアパリティグループを二重化するミラーリング、或いは、障害の生じたスペアドライブを別のスペアパリティグループに退避する方法などが採用し得る。これらの方法は、併用してもよいし、いずれか一つを選択的に採用してもよいし、或いは、条件に応じて使い分けた又は組み合わせるようにしてもよい。例えば、図１３に例示するように、重要性の高いデータドライブ101Bのデータを退避させる場合には、矢印701及び702で示しように、冗長性のある２つのスペアパリティグループ104A及び104Bに二重にコピーするという、ストライピングとミラーリングを併用した安全対策を採用し、他方、重要性がそれ程高くないデータドライブ101G のデータを退避させる場合には、矢印703で示すように、冗長性のある１つのスペアパリティグループ104Aにコピーするという、ストライピングのみの安全策を適用するというように、重要性に応じて退避のやり方を代えるようにしてもよい。
【００７３】
以上、本発明の実施形態を説明したが、この実施形態は本発明の説明のための例示にすぎず、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【００７４】
例えば、上述した実施形態では、図５に示すようにディスク制御部105がRAID制御部402、物理ドライブ制御部403及び仮想ドライブ制御部404の機能を有しているが、必ずしもそうである必要はない。変形例として、RAID制御部402、物理ドライブ制御部403及び仮想ドライブ制御部404のうちの一部の機能、例えばRAID制御部402の機能を、ホストインタフェース制御部108が備え、そして、ディスク制御部105及びホストインタフェース制御部108が協働して上述したデータ退避の制御を行うようにする構成も採用することもできる。このような変形例の場合、ディスク制御部105とホストインタフェース制御部108との間の通信は、リード／ライトデータについては例えばキャッシュメモリ107を介して、リード／ライト要求などの制御情報に関しては例えば共用メモリ106を介して、行うことができる。また、ディスク制御部105及びホストインタフェース制御部108としてそれぞれ機能するプロセッサが複数存在して、それらが上述したデータ退避の制御を分散処理するような構成も採用することができる。また、ディスク制御部105及びホストインタフェース制御部108が共通のプロセッサによって実現される構成も採用することができる。さらに、キャッシュメモリ107及び共用メモリ106としてそれぞれ使用される別個のメモリ装置が存在する構成だけでなく、同一のメモリ装置をキャッシュメモリ107及び共用メモリ106として共用する構成も採用することができる。
【００７５】
また、上述した実施形態では、物理ドライブのデータを退避させているが、論理ドライブのデータを退避する場合にも、本発明の原理を適用することが出来る。例えば、図１４に示すように、データパリティグループ102内にある複数のデータ論理ドライブ712A、712B、712Cの中から選択したデータ論理ドライブ712Aのデータを、矢印713で示すように、スペアパリティグループ104内の割当スペア論理ドライブ202に退避させることもできる。
【００７６】
また、ディスクアレイ装置内に存在する複数のパリティグループの中から予め特定のものをスペアパリティグループとして確保しておく方法の他に、スペアパリティグループを前もって確保せずに、或るデータパリティグループの中にデータ退避が必要な物理ドライブ又は論理ドライブが発生した場合、他の任意のパリティグループ内に然るべき容量のスペア論理ドライブを確保して、そこに上記データ退避が必要な物理ドライブ又は論理ドライブのデータを退避するように構成してもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態にかかるディスクアレイ装置の全体構成を示すブロック図。
【図２】パリティグループにおけるデータの格納形式を説明したブロック図。
【図３】同実施形態におけるデータ退避の動作の概要を示すブロック図。
【図４】共用メモリ106に記憶されるデータ退避の制御に利用される管理データの例を示すブロック図。
【図５】データのリード／ライト処理を行うためにディスク制御部105がもつ機能的構成を示すブロック図。
【図６】データリード処理の全体の流れを示す図。
【図７】データリード処理のうちRAID制御部402が行う処理部分の流れを示す図。
【図８】データリード処理のうち仮想ドライブ制御部404が行う部分の流れを示す図。
【図９】データライト処理の全体の流れを示す図。
【図１０】データライト処理のうちRAID制御部402が行う処理部分の流れを示す図。
【図１１】データライト処理のうち仮想ドライブ制御部404が行う部分の流れを示す図。
【図１２】スペアパリティグループ104を冗長度をもつ構成とすることによる利点を説明するためのブロック図。
【図１３】ストライピングとミラーリングを用いたデータ退避方法の変形例を説明するためのブロック図。
【図１４】データ論理ドライブのデータ退避方法の例を説明するためのブロック図。
【符号の説明】
【００７８】
100…ディスクアレイ装置、
101…データドライブ、
102…パリティグループ、
103…スペアドライブ、
104…スペアパリティグループ、
105…ディスク制御部、
106…共用メモリ、
107…キャッシュメモリ
108…ホストインタフェース制御部、
109…ホストコンピュータ、
110…ドライブ接続インタフェース、
120…ブロック領域、
121…ストライプ領域、
201…大スペア論理ドライブ
202、203…割当スペア論理ドライブ（スペア論理ドライブ空間）、
204、205…データコピー処理、
206、207…仮想ドライブ
208、209…パリティグループへの組み込み処理、
301…物理ドライブ情報、
302…パリティグループ情報、
303…論理ドライブ情報、
304…物理ドライブ定義情報、
305…仮想ドライブ定義情報、
306…パリティグループ定義情報、
307…物理ドライブ-パリティグループ間リンク、
308…論理ドライブ定義情報、
309…パリティグループ-論理ドライブ間リンク、
310…割当スペア論理ドライブ-仮想ドライブ間リンク、
311…仮想ドライブ-障害データドライブ間リンク、
402…RAID制御部、
402…物理ドライブ制御部、
404…論理ドライブ制御部、
405…物理ドライブ群
407…キャッシュメモリ上のリード／ライトデータ
【図１】
2005149374.tif 000003
【図２】
2005149374.tif 000004
【図３】
2005149374.tif 000005
【図４】
2005149374.tif 000006
【図５】
2005149374.tif 000007
【図６】
2005149374.tif 000008
【図７】
2005149374.tif 000009
【図８】
2005149374.tif 000010
【図９】
2005149374.tif 000011
【図１０】
2005149374.tif 000012
【図１１】
2005149374.tif 000013
【図１２】
2005149374.tif 000014
【図１３】
2005149374.tif 000015
【図１４】
2005149374.tif 000016