(57)【要約】プール内の各実ページが、複数の実トラックで構成され、仮想ボリューム内の各仮想ページが、複数の仮想トラックで構成される。メインフレーム系の記憶制御装置が、ユーザデータ（メインフレーム系のホスト装置が使用するデータ）を含んだレコードであるユーザレコードがどのトラックに存在するかを表す情報を含んだ管理情報を有する。コントローラが、管理情報を基に、ユーザレコードを有しないトラックのみで構成されている実ページを特定し、特定した実ページの仮想ページに対する割当てを解除する。【選択図】図２
2013516667.tif 000002
【特許請求の範囲】
【請求項１】
メインフレーム系のストレージ装置であって、
物理記憶デバイス群と、
メインフレーム系のホスト装置と前記物理記憶デバイス群とに接続されたコントローラと
を有し、
前記物理記憶デバイス群に基づくプールがあり、前記プールは、複数の実ページで構成され、各実ページは、複数の実トラックで構成され、
Thin Provisioningが適用された仮想的な論理ボリュームである仮想ボリュームがあり、前記仮想ボリュームは、複数の仮想ページで構成され、各仮想ページは、複数の仮想トラックで構成され、
前記コントローラが、前記ホスト装置が使用するデータであるユーザデータを含んだレコードであるユーザレコードがどのトラックに存在するかを表す情報であるトラック管理情報を有し、
（ｐ１）前記コントローラが、前記トラック管理情報を基に、前記ユーザレコードを有しないトラックのみで構成されている実ページを特定し、
（ｐ２）前記コントローラが、特定した実ページの前記仮想ページに対する割当てを解除する、
ストレージ装置。
【請求項２】
請求項１記載のストレージ装置であって、
前記コントローラが、前記ホスト装置からライト系コマンドを受信し、
（Ａ）前記受信したライト系コマンドが、前記ユーザレコードを書き込むことになるライト系コマンドである第１のライト系コマンドである場合、
（ａ１）前記コントローラが、前記受信したライト系コマンドに従う仮想トラックである対象トラックを含んだ仮想ページに実ページが割り当てられていなければ、前記プール内のいずれかのフリーの実ページをその仮想ページに割り当て、
（ａ２）前記コントローラが、前記トラック管理情報を、前記対象トラックに前記ユーザレコードが書き込まれていることを表す情報に更新することと、前記対象トラックに対応する実トラックに前記ユーザデータを書き込むこととを行い、
（Ｂ）前記受信したライト系コマンドが、前記ユーザレコード以外のレコードを書き込む又は前記ユーザレコードを消去することになるライト系コマンドである第２のライト系コマンドである場合、
（ｂ１）前記コントローラが、前記受信したライト系コマンドを処理し、
（ｂ２）前記コントローラが、前記受信したライト系コマンドに従う仮想トラックである対象トラックに前記ユーザレコードが有るか否かを判断し、
（ｂ３）前記（ｂ２）の判断の結果が肯定的の場合、前記コントローラが、前記トラック管理情報を、前記対象トラックに前記ユーザレコードが書き込まれていないことを表す情報に更新し、
（ｂ４）前記コントローラが、前記（ｐ１）において、前記（ｂ３）で更新されたトラック管理情報を基に、前記対象トラックを含んだ仮想ページに割り当てられている実ページに前記ユーザレコードが有るか否かを判断し、
前記（ｂ４）の判断の結果が否定的の場合、前記対象トラックを含んだ仮想ページに割り当てられている実ページが、前記ユーザレコードを有しないトラックのみで構成されている実ページであり、前記（ｐ２）が行われる、
ストレージ装置。
【請求項３】
請求項２記載のストレージ装置であって、
前記コントローラが、前記（ｂ３）の後、前記対象トラックが、前記対象トラックを含んだ仮想ページにおける末尾のトラックであるか否かを判断し、その判断の結果が肯定的の場合に、前記（ｂ４）を実行し、その判断の結果が否定的の場合に、前記（ｂ４）を実行しない、
ストレージ装置。
【請求項４】
請求項２記載のストレージ装置であって、
前記コントローラが、前記（ａ２）において、前記トラック管理情報を、前記対象トラックに前記ユーザレコードが書き込まれていることを表す情報に更新し、その後に、前記対象トラックに対応する実トラックに前記ユーザデータを書き込む、
ストレージ装置。
【請求項５】
請求項２記載のストレージ装置であって、
前記ユーザレコードは、そのユーザレコードの状態、位置及び長さを表す情報であるカウント部と、前記ユーザデータの一部又は全部であるデータ部とを有し、
前記コントローラが、前記実ページに書き込まれるユーザレコードを一時的に記憶するキャッシュメモリ領域を有し、
前記キャッシュメモリ領域が、複数のブロックで構成され、
１個の仮想トラックが、前記複数のブロックのうちの２以上のブロックに対応し、
各ブロックが、トラック情報を記憶し、
前記トラック情報は、そのトラック情報を記憶するブロックに対応する仮想トラックを含んだ仮想ページに割り当てられた実ページ内の実トラックに前記ユーザレコードがあるか否かを表す情報であり、
前記トラック管理情報は、前記トラック情報とは別に用意された情報である、
ストレージ装置。
【請求項６】
請求項５記載のストレージ装置であって、
前記トラック管理情報は、前記仮想ボリュームが有する複数の仮想トラックに対応した複数のビットで構成されたビットマップである、
ストレージ装置。
【請求項７】
請求項２記載のストレージ装置であって、
前記第１のライト系コマンドが、ＷＲＣＫＤコマンドであり、
前記第２のライト系コマンドが、ＷＲＴＲＫコマンド又はＥＲＡＳＥコマンドである、
ストレージ装置。
【請求項８】
請求項１記載のストレージ装置であって、
前記ユーザレコードは、そのユーザレコードの状態、位置及び長さを表す情報であるカウント部と、前記ユーザデータの一部又は全部であるデータ部とを有し、
前記コントローラが、前記実ページに書き込まれるユーザレコードを一時的に記憶するキャッシュメモリ領域を有し、
前記キャッシュメモリ領域が、複数のブロックで構成され、
１個の仮想トラックが、前記複数のブロックのうちの２以上のブロックに対応し、
各ブロックが、トラック情報を記憶し、
前記トラック情報は、そのトラック情報を記憶するブロックに対応する仮想トラックを含んだ仮想ページに割り当てられた実ページ内の実トラックに前記ユーザレコードがあるか否かを表す情報であり、
前記トラック管理情報は、前記トラック情報とは別に用意された情報である、
ストレージ装置。
【請求項９】
請求項８記載のストレージ装置であって、
前記トラック管理情報は、前記仮想ボリュームが有する複数の仮想トラックに対応した複数のビットで構成されたビットマップである、
ストレージ装置。
【請求項１０】
請求項１記載のストレージ装置であって、
前記コントローラは、前記（ｐ２）において、前記特定した実ページを初期化する、
ストレージ装置。
【請求項１１】
メインフレーム系のストレージ装置で実現される記憶制御方法であって、
トラック管理情報を基に、プールを構成する複数の実ページのうちの、ユーザレコードを有しないトラックのみで構成されている実ページを特定し、
仮想ボリュームを構成する複数の仮想ページのうちの、特定した実ページの前記仮想ページ、に対する割当てを解除し、
前記プールは、複数の実ページで構成され、各実ページは、複数の実トラックで構成され、
前記仮想ボリュームは、Thin Provisioningが適用された仮想的な論理ボリュームであり、複数の仮想ページで構成され、各仮想ページは、複数の仮想トラックで構成され、
前記トラック管理情報は、ホスト装置が使用するデータであるユーザデータを含んだレコードであるユーザレコードがどのトラックに存在するかを表す情報である、
記憶制御方法。
【請求項１２】
メインフレーム系のホスト装置とプールの基になる物理記憶デバイス群とに接続されたメインフレーム系の記憶制御装置であって、
記憶資源と、
前記記憶資源に接続されたプロセッサと
を有し、
前記プールは、複数の実ページで構成され、各実ページは、複数の実トラックで構成され、
Thin Provisioningが適用された仮想的な論理ボリュームである仮想ボリュームがあり、前記仮想ボリュームは、複数の仮想ページで構成され、各仮想ページは、複数の仮想トラックで構成され、
前記記憶資源が、前記ホスト装置が使用するデータであるユーザデータを含んだレコードであるユーザレコードがどのトラックに存在するかを表す情報であるトラック管理情報を有し、
（ｐ１）前記プロセッサが、前記トラック管理情報を基に、前記ユーザレコードを有しないトラックのみで構成されている実ページを特定し、
（ｐ２）前記プロセッサが、特定した実ページの前記仮想ページに対する割当てを解除する、
記憶制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メインフレーム系の記憶制御に関する。
【背景技術】
【０００２】
Thin Provisioning（Dynamic Provisioningとも呼ばれる）が適用されたストレージ装置が知られている。そのストレージ装置は、オープン系のストレージ装置（以下、ＯＰストレージ）である。ＯＰストレージは、一般に、複数の仮想ページで構成された仮想的な論理ボリューム（以下、仮想ボリューム）を提供し、複数の実ページで構成されたプールを有する。ストレージ装置は、仮想ページに対するユーザデータ（ホスト装置（例えばホスト装置で実行されるアプリケーションプログラム）が使用するデータ）のライトの場合に、ライト先の仮想ページにプールから実ページを割当て、割り当てた実ページに、ライト対象のユーザデータを書き込む。仮想ページは、仮想的な記憶領域であり、実ページは、実体的な記憶領域である。
【０００３】
ホスト装置にとって不要なユーザデータのために仮想ページに実ページが割り当てられ且つその実ページにその不要なユーザデータが書き込まれるケースがある。
【０００４】
そのケースの一例が、コピー元記憶領域から仮想ボリュームへのユーザデータのコピーである。コピー元記憶領域は、例えば、別の論理ボリューム（仮想ボリュームを有するＯＰストレージ内又は外の論理ボリューム）、或いは、磁気テープである。そのコピーによれば、コピー元記憶領域の全域におけるデータが仮想ボリュームに書き込まれる。このため、そのデータに、ホスト装置にとって不要なユーザデータが含まれている場合、その不要なユーザデータも、仮想ボリュームに対するライト対象である。それ故、仮想ページに実ページが割り当てられ、実ページに不要なユーザデータが書き込まれる。
【０００５】
不要なユーザデータのために仮想ページに実ページが割り当てられると、プールから実ページが無駄に消費されることになる。
【０００６】
ＯＰストレージは、例えば、実ページが割り当てられていない仮想ページに関するアドレスを指定したリード要求をホスト装置から受けた場合、そのホスト装置に、全ビットが「０」で構成されたデータを返す。
【０００７】
特許文献１に開示されているＯＰストレージは、仮想ページに割り当てられている実ページ内の全ビットが「０」であるか否かの判定（以下、ゼロパターン判定）を行い、ゼロパターン判定の結果が肯定的であれば、その実ページの仮想ページに対する割当てを解除する。
【０００８】
ＯＰストレージは、一般に、実ページの先頭からユーザデータを書き込むので、上記のゼロパターン判定により、不要なユーザデータのみを記憶している実ページを特定することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１４６５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
Thin Provisioningをメインフレーム系のストレージ装置（以下、ＭＦストレージ）に適用することを考察する。
【００１１】
ＭＦストレージにThin
Provisioningを適用した場合にも、プール内の実ページが無駄に消費されてしまうという問題が生じ得る。
【００１２】
しかし、その問題を、ＯＰストレージと同じようにして解決することはできない。なぜなら、ＭＦストレージ内のいずれの実ページも、「０」ではないビットを有することになるからである。具体的には、メインフレームのトラックフォーマットの概念によれば、トラックにユーザデータ以外のデータが書き込まれることになり、そのデータは、「０」ではないビットを有するからである。
【００１３】
ＭＦストレージが、実ページ内のどこがユーザデータであるかを特定し、そのユーザデータについて上記ゼロパターン判定を行っても良いかもしれない。しかし、それは、ＭＦストレージの負担が大きく、現実的ではない。
【００１４】
そこで、本発明の目的は、Thin Provisioningを適用したＭＦストレージ内の実ページが無駄に消費されないようにすることにある。
【課題を解決するための手段】
【００１５】
プール内の各実ページが、複数の実トラックで構成され、仮想ボリューム内の各仮想ページが、複数の仮想トラックで構成される。メインフレーム系の記憶制御装置が、ユーザデータ（メインフレーム系のホスト装置が使用するデータ）を含んだレコードであるユーザレコードがどのトラックに存在するかを表す情報を含んだ管理情報を有する。コントローラが、管理情報を基に、ユーザレコードを有しないトラックのみで構成されている実ページを特定し、特定した実ページの仮想ページに対する割当てを解除する。
【００１６】
記憶制御装置は、ＭＦストレージが有するコントローラであっても良いし、ＭＦストレージとホスト装置との間の通信を中継する装置（例えば、サーバ装置、或いは、インテリジェントなスイッチ装置）であっても良い。
【発明の効果】
【００１７】
Thin Provisioningを適用したＭＦストレージ内の実ページが無駄に消費されないようにすることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施例で行われる第１の処理の概要を示す。
【図２】本実施例で行われる第２の処理の概要を示す。
【図３】仮想ページ１８１内のトラックのフォーマットを示す。
【図４】実ページ１９１内のトラックのフォーマットを示す。
【図５】本実施例に係るメインフレーム系のコンピュータシステムの構成を示す。
【図６】ＣＫＤフォーマットからＦＢＡフォーマットへのフォーマット変換の説明図である。
【図７】トラックビットマップ７０３の構成を示す。
【図８】管理情報１４１が有する各種情報を示す。
【図９】ＣＨＡ３０１がＭＦホスト３５１からコマンドを受信した場合に行われる処理の流れを示す。
【図１０】第１の処理の流れを示す。
【図１１】第２の処理（１）の流れを示す。
【図１２】第２の処理（２）の流れを示す。
【図１３】不要実ページ解除判定の流れを示す。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の一実施例を説明する。
【００２０】
＜本実施例の概要＞。
【００２１】
図１は、本発明の一実施例で行われる第１の処理の概要を示し、図２は、本実施例で行われる第２の処理の概要を示す。
【００２２】
ＭＦストレージ（メインフレーム系のストレージ）１０１が、仮想ボリューム（以下、ＶＶＯＬ）１１１と、プール１２１と、コントローラ１３１とを有する。
【００２３】
ＶＶＯＬ１１１は、Thin Provisioningに従う仮想的な論理ボリュームであり、複数の仮想ページ（仮想的な記憶領域）１８１で構成されている。
【００２４】
プール１２１は、複数の実ページ（実体的な記憶領域）１９１で構成された実ページ群である。
【００２５】
コントローラ１３１は、管理情報１４１を有する。管理情報１４１は、データの管理ための情報である。
【００２６】
メインフレームのトラックフォーマットが適用されたＶＶＯＬ１１１によれば、図３に示すように、仮想ページ１８１は、複数個（例えば６７２個）の仮想トラック４０１で構成されており、それ故、実ページ１９１も、図４に示すように、複数個（例えば６７２個）の実トラック５０１で構成されている。仮想ページ１８１に実ページ１９１が割り当てられた場合、その仮想ページ１８１における仮想トラック４０１と、割り当てられている実ページ１９１における実トラック５０１は、例えば、１対１で対応する。
【００２７】
トラック４０１（５０１）は、１以上のレコードを有する。以下、レコード番号ｎのレコード（（ｎ＋１）番目のレコード）を、「Ｒｎ」と言うことがある（ｎは０以上の整数）。レコードは、３種類の情報、具体的には、カウント部（Ｃ）、キー部（Ｋ）、及び、データ部（Ｄ）を有する。トラックフォーマットの種類によっては、キー部を有しないタイプのレコードもある。
【００２８】
トラック４０１（５０１）は、初めから（ユーザデータが書かれていなくても）、ＨＡとＲ０を有する。ＨＡは、トラック４０１（５０１）の先頭に位置し、そのトラック４０１（５０１）の状態に関する情報（ホームアドレス部）である。Ｒ０は、Ｒ０ＣとＲ０Ｄを有する。Ｒ０Ｃは、ＨＡの次に位置し、Ｒ０の状態、位置及び長さを表すカウント部である。Ｒ０Ｄは、Ｒ０Ｃの次に位置し、所定の長さ（例えば８バイト）のデータである。ＨＡ、Ｒ０Ｃ及びＲ０Ｄが、初期のトラックが有する情報である。
【００２９】
ユーザデータは、Ｒ１以降のレコード（Ｒ１含む）に書かれる。すなわち、ユーザデータを有するトラック４０１（５０１）は、Ｒ０の他に、１以上のレコード（Ｒ１以降のレコード）を有する。Ｒ１以降の各々のレコードであるＲｍは（ｍは自然数）、ＲｍＣ、ＲｍＫ及びＲｍＤを有する。ＲｍＣは、Ｒｍの状態、位置及び長さを表すカウント部である。ＲｍＫは、後続のＲｍＤの手引きとなる情報（キー部）であり、ＲｍＤの探索に使用される（キー部の無いレコードがあっても良い）。ＲｍＤは、データ部であり、例えば、ユーザデータである。ユーザデータは、１個のＲｍに含まれていても良いし、連続した複数個のＲｍの各々に分散して含まれていても良い。
【００３０】
このように、メインフレームのトラックフォーマットは、ＣＫＤフォーマット（可変長フォーマット）となっている（「ＣＫＤ」は、Count Key Dataの略である）。つまり、各トラック４０１（５０１）には、メインフレーム系のホスト装置（以下、ＭＦホスト）から書き込まれるユーザデータ以外に、意味を持つ情報（ＨＡ、ＲｎＣ等）が書き込まれ、且つ、ユーザデータは、Ｒ１以降のレコードに書き込まれる。
【００３１】
なお、仮想トラック４０１は、仮想ページ１８１内の要素であるため、仮想トラック４０１に書き込まれるユーザデータは、実際には、その仮想ページ１８１に割り当てられた実ページ１９１内の実トラック５０１に書き込まれる。
【００３２】
また、全仮想トラック４０１内のＨＡ及びＲ０は、ＨＡ／Ｒ０集約情報と呼ばれる情報に集約されている。ＨＡ／Ｒ０集約情報は、管理情報１４１に含まれる情報の一種である。ＨＡ／Ｒ０集約情報は、仮想トラック４０１毎に、ＨＡ及びＲＯの他に、ＲｍＣとデータ位置情報を有する。データ位置情報は、ＲｍＫ及びＲｍＤの位置（トラック４０１における位置）を表す情報である。
【００３３】
管理情報１４１は、ＨＡ／Ｒ０集約情報の他に、どのトラック４０１がＲｍ（ユーザデータを有するレコード）を有するかを表すトラック管理情報を含む。トラック管理情報と、各仮想ページ１８１が６７２個の仮想トラック４０１で構成されていることとを基に、どの仮想ページ１８１がユーザデータを有しない仮想ページ１８１であるかがわかる。
【００３４】
以下、本実施例で行われる処理の概要を説明する。
【００３５】
コントローラ１３１は、図１に示すように、メインフレーム系のホスト装置（以下、ＭＦホスト）から第１のライト系コマンドを受信した場合（Ｓ１１）、その第１のライト系コマンドを処理する。第１のライト系コマンドは、例えば、ＷＲＣＫＤコマンドである。ＷＲＣＫＤコマンドは、１個のレコード用のライトコマンドであり、Ｒ１以降のいずれかのレコードにユーザデータを書き込むために使用されるコマンドである。
【００３６】
第１の処理において、コントローラ１３１は、管理情報１４１内のトラック管理情報を、ＷＲＣＫＤコマンドに従うライト先のトラック４０１にＲｍがあることを意味する情報に更新する（Ｓ１２）。つまり、コントローラ１３１は、実際にユーザデータを書き込む前に、ライト先トラック４０１にＲｍがあることを意味する情報に更新する。
【００３７】
コントローラ１３１は、ライト先トラック４０１を含んだ仮想ページ１８１に、フリーの実ページ１９１を割り当て、割り当てた実ページ１９１に、ライト対象のユーザデータを書き込む。「フリーの実ページ１９１」とは、どの仮想ページ１８１にも割り当てられておらず、仮想ページ１８１に割り当てられて良い実ページ１９１である。
【００３８】
このように、ＷＲＣＫＤ処理によれば、仮想ページ１８１にユーザデータが書き込まれる場合、その仮想ページ１８１がユーザデータを有することが管理情報１４１に書き込まれることになる。
【００３９】
コントローラ１３１は、図２に示すように、ＭＦホストから第２のライト系コマンドを受信した場合（Ｓ２１）、そのコマンドを処理する。第２のライト系コマンドは、Ｒ１以降のレコード（ユーザデータ）を書き込むことに限らないライト系コマンドであり、例えば、ＷＲＴＲＫコマンド、又は、ＥＲＡＳＥコマンドである。ＷＲＴＲＫコマンドは、１トラック用のライトコマンドであり、トラックにＲｎＤを書き込むために使用されるコマンドである。このコマンドは、Ｒ０Ｄだけを書き込むためにも使用される。ＥＲＡＳＥコマンドは、Ｒ１以降の１以上のレコードを消去するために使用されるコマンドである。
【００４０】
第２のライト系コマンドの処理では、コントローラ１３１は、第２のライト系コマンドに従ってレコードを書き込む（或いは消去する）。
【００４１】
コントローラ１３１は、第２のライト系コマンドの処理に同期して（第２のライト系コマンドの処理に続いて）、以下の処理（ｘ１）〜（ｘ４）を行う。
（ｘ１）コントローラ１３１は、Ｓ２１で受信したコマンドに従うライト先のトラック（図２の説明において「対象トラック」と言う）４０１にＲ１以降のレコードがあるか否かを判断する。
（ｘ２）（ｘ１）の判断の結果が否定的であれば、コントローラ１３１は、管理情報１４１内のトラック管理情報を、対象トラック４０１にユーザデータが無いことを意味する情報に更新する（Ｓ２２）。
（ｘ３）コントローラ１３１は、対象トラック４０１が仮想ページにおける最後のトラックである場合、更新後の管理情報１４１が、対象トラック４０１を含んだ仮想ページ（図２の説明において、「対象仮想ページ」と言う）１８１にユーザデータが無いことを表しているか否かを判断する。
（ｘ４）（ｘ３）の判断の結果が肯定的であれば（Ｓ２３）、コントローラ１３１は、不要実ページ解除を行う。ここで言う「不要実ページ」は、対象仮想ページ１８１に割り当てられている実ページ１９１、すなわち、ＭＦホストにとって必要なユーザデータを記憶していない実ページである。不要実ページ解除として、コントローラ１３１は、対象仮想ページ１８１に対する不要実ページ１９１の割当てを解除し（Ｓ２４）、且つ、不要実ページ１９１を初期化する（Ｓ２５）。不要実ページ１９１の初期化とは、不要実ページ１９１内の全トラック５０１からＲ１以降の全レコードを消去することである。
【００４２】
（ｘ４）が行われることで、プール１２１に、フリーの実ページ１９１が増えることになる。
【００４３】
図１及び図２の説明によれば、管理情報１４１を基に、不要実ページ解除を行うことができる。すなわち、実ページ１９１からデータを読み出さなくても、不要実ページ１９１を特定することができる。
【００４４】
また、図１及び図２の説明によれば、不要実ページ解除が、第２のライト処理に同期して（第２のライト処理に続いて）行われる。ＯＰストレージによれば、ホスト装置からＶＶＯＬへのデータの書込みとは非同期にゼロパターン判定が行われる。それ故、ＯＰストレージによれば、不要なユーザデータのみが書き込まれる実ページが、ＶＶＯＬに一旦割り当てられ、しばらくＶＶＯＬに割り当てられたままとなる。それに対し、本実施例によれば、不要実ページ解除が第２のライト処理に同期して行われるので、第２のライト処理によって実ページ１９１が不要実ページ１９１になったらＶＶＯＬ１１１からその不要実ページ１９１を外すことができる。
【００４５】
＜本実施例の詳細＞。
【００４６】
＜＜メインフレーム系のコンピュータシステムの構成＞＞。
【００４７】
図５は、本実施例に係るメインフレーム系のコンピュータシステムの構成を示す。
【００４８】
通信ネットワーク５５１に、１以上のＭＦホスト３５１と、ＭＦストレージ１０１が接続されている。
【００４９】
ＭＦホスト３５１は、ＭＦストレージ１０１から提供される論理ボリュームに対するデータのライト系コマンド及びリード系コマンドを送信する。そのライト系コマンド及びリード系コマンドに応答して、論理ボリュームに対するデータの入出力が行われる。
【００５０】
バックアップ先装置３５３に接続されているＭＦホスト３５１があっても良い。そのＭＦホスト３５１は、そのＭＦホスト３５１が使用する論理ボリュームから全データを読み出してバックアップ先装置３５３にバックアップしたり、論理ボリュームの全バックアップデータをバックアップ先装置３５３から読み出してＶＶＯＬ１１１にリストアしたりする。全バックアップデータには、ＭＦホスト３５１にとって不要なユーザデータが含まれていることがある。バックアップ先装置３５３は、単一の物理記憶デバイス（例えば、ＨＤＤ（Hard Disk Drive）、磁気テープドライブ、或いは、ＭＯ（Magneto-Optical disk）ドライブ）であっても良いし、複数の物理記憶デバイスを有するストレージ装置であっても良い。
【００５１】
ＭＦストレージ１０１は、物理記憶デバイス群と、コントローラ１３１と、ＳＶＰ（Service Processor）３１１とを有する。
【００５２】
物理記憶デバイス群は、複数の物理記憶デバイス３７１（例えば、ＨＤＤ（Hard Disk Drive）、又は、フラッシュメモリデバイス（例えばＳＳＤ（Solid State Drive））の集合である。物理記憶デバイス群は、１以上のＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループ３７５を有する。ＲＡＩＤグループ３７５は、２以上の物理記憶デバイス３７１で構成されており、所定のＲＡＩＤレベルでデータを記憶する。１以上のＲＡＩＤグループ３７５の記憶空間を基に実体的な論理ボリューム（以下、実ボリューム）が形成される。プール１２１は、例えば、１以上の実ボリュームの集合であって、プール１２１内の各実ボリュームが、２以上の実ページ１９１に分割されて良い。
【００５３】
コントローラ１３１は、ＭＦホスト３５１との通信インタフェースと、物理記憶デバイス３７１との通信インタフェースと、メモリと、それらに接続されたプロセッサとを有する。具体的には、例えば、コントローラ１３１は、ＣＨＡ３０１と、ＤＫＡ３０３と、キャッシュメモリ（以下、ＣＭ）３０７と、共有メモリ（以下、ＳＭ）３０９と、スイッチ装置（以下、ＳＷ）３０５とを有する。これらの要素の数は１以上である。
【００５４】
ＣＨＡ３０１は、ＭＦホスト３５１との通信インタフェース装置である。ＣＨＡ３０１は、ポート３０２と、ＭＰ（Micro Processor）２０とを有する。これらの要素の数は１以上である。ＭＰ２０は、ＭＦホスト３５１からのコマンドを処理する。例えば、ＭＰ２０は、ＭＦホスト３５１からポート３０２を介して受信したライト系コマンドに応答して、ライト対象のユーザデータをＣＭ３０７に書き込む。
【００５５】
ＤＫＡ３０３は、物理記憶デバイス３７１との通信インタフェース装置である。ＤＫＡ３０３は、１以上のＭＰ（Micro Processor）３０を有する。ＭＰ３０は、物理記憶デバイス３７１に対するデータの入出力を制御する。例えば、ＭＰ３０は、ＣＭ３０７に記憶されているライト対象のユーザデータを、そのユーザデータのライト先の実ページ１９１に基づくＲＡＩＤグループ３７５に書き込む。
【００５６】
ＣＭ３０７は、複数のＭＰ２０及び３０に共有のメモリであり、物理記憶デバイス群に入出力されるユーザデータを一時的に記憶する。
【００５７】
ＳＭ３０９は、複数のＭＰ２０及び３０に共有のメモリであり、管理情報１４１の一部又は全部を記憶する。ＣＭ３０７とＳＭ３０９は、別々のメモリでなく、一体であっても良い。つまり、１つのメモリが、ＣＭとして使用される領域と、ＳＭとして使用される領域とを有して良い。
【００５８】
ＳＷ３０５に、ＣＨＡ３０１、ＤＫＡ３０３、ＣＭ３０７及びＳＭ３０９が接続されている。ＳＷ３０５は、例えばクロスバススイッチであり、それらの要素間の接続を切り替える。ＳＷ３０５以外の接続部（例えばバス）で、ＣＨＡ３０１、ＤＫＡ３０３、ＣＭ３０７及びＳＭ３０９が互いに接続されても良い。
【００５９】
ＳＶＰ３１１は、ＭＦストレージ１０１の保守又は管理に使用されるコンピュータであり、例えばＬＡＮ（Local Area Network）を通じて、各ＭＰ２０及び３０に接続されている。例えば、ＳＶＰ３１１は、管理情報１４１に含まれている情報を表示する。ＳＶＰ３１１は、ＭＦストレージ１０１の外にあっても良い。
【００６０】
＜＜ＣＫＤフォーマットからＦＢＡフォーマットへのフォーマット変換＞＞。
【００６１】
メインフレームのトラックフォーマットは、ＣＫＤフォーマット（可変長フォーマット）である。つまり、ＭＦホスト３５１から書き込まれるレコードが可変長である。
【００６２】
一方、ＭＦストレージ１０１内の記憶領域、例えば、ＣＭ３０７を構成する各ブロックは固定長である。
【００６３】
そこで、ＭＦホスト３５１からのデータの書込みの際に、ＣＫＤフォーマット（可変長フォーマット）をＦＢＡフォーマット（固定長フォーマット）に変換するフォーマット変換が必要になる（「ＦＢＡ」は、Fixed Block Architectureの略である）。
【００６４】
そのフォーマット変換は、ＭＰ２０（又は３０）によって行われても良いが、本実施例では、図６に示すように、フォーマット変換回路６５１というハードウェアによって行われる。回路６５１は、例えば、ＣＨＡ３０１が有する。
【００６５】
ＣＭ３０７は、複数のスロットで構成されている。各スロットは、複数個のブロックで構成されている。各ブロックは、複数個のサブブロックで構成されている。本実施例での１個のトラックの長さは、複数個のブロックの長さの合計と同じ長さである。
【００６６】
フォーマット変換回路６５１は、図６に例示するフォーマット変換を行う。すなわち、回路６５１は、Ｒｎ毎に存在するギャップ（Ｇ２）（レコード内のギャップ）を除き、キャップ（Ｇ２）が除かれた各ＲｎをＣＭ３０７に書き込む。なお、ギャップ（Ｇ１）は、トラックの先頭とＨＡとの間のギャップであり、ギャップ（Ｇ３）は、レコード間のギャップである。
【００６７】
このようにしてＣＭ３０７に書き込まれたデータ（ブロック内のデータ）が、実ページ１９１に書き込まれる。従って、実ページ１９１内のＲ１以降のレコードは、ギャップ（Ｇ２）の無いレコードである。
【００６８】
サブブロックの終端に、ラベル情報（ＬＡ）が書き込まれている。
【００６９】
ブロックの先頭サブブロックの先頭に、トラック情報（Ｔ）が書き込まれる。トラック情報（Ｔ）は、ＭＦホスト３５１からＭＦストレージ１０１書き込まれたデータをＣＫＤ可変長レコードにエミュレートするための情報である。トラック情報（Ｔ）は、例えば、Ｒｍの有無を表す情報（例えばビット）を有する。例えば、或るブロックが、或るトラック内のＲ３及びＲ４を有する場合、そのブロックの先頭のトラック情報（Ｔ）は、Ｒ３及びＲ４を有することを表す情報を含む。
【００７０】
＜＜トラックビットマップ＞＞。
【００７１】
ＣＭ３０７が、トラックビットマップ７０３を有する。トラックビットマップ７０３は、ＶＶＯＬ１１１毎に存在する。トラックビットマップ７０３は、図７に示すように、ＶＶＯＬ１１１が有する複数のトラック４０１に対応した複数のビットで構成される。従って、各ビット群（連続した所定数のビット）が、各仮想ページ１８１に対応する。オンのビット（例えばビット「１」）は、そのビットに対応したトラック４０１がＲ１以降のレコードを有することを意味する。オフのビット（例えばビット「０」）は、そのビットに対応したトラック４０１がＲ１以降のレコードを有しないことを意味する。従って、仮想ページ１８１に対応したビット群に１個でもオンのビットがあれば、その仮想ページ１８１（その仮想ページ１８１に割り当てられた実ページ１９１）にユーザデータが有り、仮想ページ１８１に対応したビット群にオンのビットが無ければ、その仮想ページ１８１（その仮想ページ１８１に割り当てられた実ページ１９１）にユーザデータが無い。
【００７２】
トラック４０１（５０１）にユーザデータが有るか否かを、トラック情報（Ｔ）を基に判断可能であるが、トラック毎に先頭サブブロックのトラック情報（Ｔ）を取得して判断すると、大幅に時間がかかる。このため、上述したように、Ｒ１以降のレコードの有無を表す情報が集約されたトラックビットマップ７０３があれば、トラック４０１（５０１）にユーザデータが有るか否かを迅速に判断することができる。
【００７３】
＜＜管理情報＞＞。
【００７４】
図８は、管理情報１４１が有する各種情報を示す。
【００７５】
管理情報１４１は、ＨＡ／Ｒ０集約情報７０１と、トラックビットマップ７０３と、マッピング情報７０５と、プール管理情報７０７とを有する。情報７０１、７０３及び７０５は、例えば、ＶＶＯＬ１１１毎に存在する。情報７０１、７０３、７０５及び７０７は、ＳＭ３０９、ＣＭ３０７及び物理記憶デバイス群のどこに存在しても良い。
【００７６】
マッピング情報７０５は、仮想ページ１８１毎に実ページ１９１が割り当てられているか否かを表す。仮想ページ１８１に実ページ１９１が割り当てられている場合、マッピング情報７０５は、その仮想ページ１８１に割り当てられている実ページ１９１の識別情報（例えば、プール１２１の番号と、実ページ１９１の番号との組合せ）を有して良い。
【００７７】
プール管理情報７０７は、実ページ１９１毎にフリーか割当て済みかを表す。
【００７８】
＜＜処理の説明＞＞。
【００７９】
図９は、ＣＨＡ３０１がＭＦホスト３５１からコマンドを受信した場合に行われる処理の流れを示す。以下の処理は、例えば、コマンドを受信したＣＨＡ３０１内のＭＰ２０がコンピュータプログラムを実行することにより、行われる。
【００８０】
ＭＰ２０が、受信したコマンドが、ライト系のコマンドか否かを判断する（Ｓ９０１）。
【００８１】
Ｓ９０１の判断の結果が否定的の場合（Ｓ９０１：ＮＯ）、ＭＰ２０は、受信したコマンドを処理する（Ｓ９０２）。例えば、受信したコマンドが、ＶＶＯＬ１１１に対するリードコマンドの場合、ＭＰ２０は、そのリードコマンドから特定されたレコードを有する仮想ページ１８１を特定し、その仮想ページ１８１に割り当てられている実ページ１９１を、マッピング情報７０５を基に特定する。この場合、ＤＫＡ３０３内のＭＰ３０が、特定された実ページ１９１内のレコードが有するユーザデータをＣＭ３０７に書き込み、ＭＰ２０が、ＣＭ３０７に書き込まれたユーザデータをＭＦホスト３５１に送信する。
【００８２】
Ｓ９０１の判断の結果が肯定的の場合（Ｓ９０１：ＹＥＳ）、受信したコマンドは、ライト系のコマンドである。本実施例では、ライト系のコマンドは、ＥＲＡＳＥコマンド、ＷＲＴＲＫコマンド、及びＷＲＣＫＤコマンドの３種類である。
【００８３】
ＥＲＡＳＥコマンドは、Ｒ１以降の全レコード、又は、Ｒ１より後のユーザ所望のレコード以降の全レコード、を消去するためのコマンドである。
【００８４】
ＷＲＴＲＫコマンドは、トラック全体にレコードを書き込むためのライトコマンドである。ＷＲＴＲＫコマンドは、Ｒ０のみを書き込むときにも使用される。
【００８５】
ＷＲＣＫＤコマンドは、１個のレコードを書き込むためのライトコマンドであり、Ｒ０の書き込みには使用できない。このため、ＷＲＣＫＤコマンドは、必ず、Ｒ１以降のいずれかのレコードの書き込みのためのコマンドである。
【００８６】
受信したコマンドが、ＷＲＣＫＤコマンドであれば（Ｓ９０３：ＮＯ、及び、Ｓ９０５：ＮＯ）、図１を参照して説明した第１の処理が行われる（Ｓ９０７）。
【００８７】
受信したコマンドが、ＷＲＴＲＫコマンドであれば（Ｓ９０３：ＮＯ、及び、Ｓ９０５：ＹＥＳ）、図２を参照して説明した、１つの種類の第２の処理（第２の処理（１））が行われる（Ｓ９０６）。
【００８８】
受信したコマンドが、ＥＲＡＳＥコマンドであれば（Ｓ９０３：ＹＥＳ）、図２を参照して説明した、別の種類の第２の処理（第２の処理（２））が行われる（Ｓ９０４）。
【００８９】
図１０は、第１の処理の流れを示す。この処理は、例えば、ＷＲＣＫＤコマンドを処理するためのコンピュータプログラムをＭＰ２０が実行することにより、行われて良い。
【００９０】
まず、ＭＰ２０は、対象トラックをロックする（Ｓ１００１）。ここで言う「対象トラック」は、ＷＲＣＫＤコマンドが有するライト先情報を基に特定されたトラックである。対象トラックをロックする理由は、他のＭＰから対象トラックにアクセスされてしまうことを防ぐためである。
【００９１】
次に、ＭＰ２０は、マッピング情報７０５を基に、対象トラックを含んだ仮想ページ（以下、図１０の説明において「対象仮想ページ」）１８１に実ページ１９１が割り当てられているか否かを判断する（Ｓ１００２）。
【００９２】
Ｓ１００２の判断の結果が否定的の場合（Ｓ１００２：ＮＯ）、ＭＰ２０は、いずれかのフリーの実ページ１９１を対象仮想ページ１８１に割り当てる（Ｓ１００３）。具体的には、例えば、下記の処理が行われる。
（＊）ＭＰ２０が、プール管理情報７０７を基に、フリーの実ページ１９１を見つける。
（＊）ＭＰ２０が、マッピング情報７０５を、見つけたフリーの実ページ１９１を対象仮想ページ１８１に割り当てたことを表す情報に更新する。
（＊）ＭＰ２０が、プール管理情報７０７を、見つけたフリーの実ページ１９１が割当て済みであることを表す情報に更新する。
【００９３】
次に、ＭＰ２０は、トラックビットマップ７０３における、対象トラックに対応したビットを、オンにする（Ｓ１００４）。
【００９４】
次に、ＭＰ２０は、対象トラックのロックを解除する（Ｓ１００５）。
【００９５】
最後に、ＭＰ２０は、対象仮想ページ１８１に割り当てた実ページにおける、対象トラックに対応したトラックに、ユーザデータ（Ｒ１以降）を書き込む（Ｓ１００６）。ユーザデータを含むレコードは、通常、トラックの先頭から末尾へ順次に書き込まれる。また、レコードは、仮想ページ１８１（実ページ１９１）における先頭のトラック４０１（５０１）から末尾のトラック４０１（５０１）にかけて順次に書き込まれる。
【００９６】
第１の処理によれば、ユーザデータを実ページ１９１に書き込む前に、対象トラックに対応したビット（トラックビットマップ７０３におけるビット）をオンにする。もし、ユーザデータを実ページ１９１に書き込んだ後に対象トラックに対応したビットをオンにすると、例えば以下の問題が生じる。すなわち、ユーザデータを実ページ１９１に書き込んだ後であってビットをオンにする前に何らかのエラーが生じ、それ故に、オンにされるべきビットがオンにされなかった場合、後述の第２の処理（１）又は（２）において、ユーザデータが記憶されている実ページ１９１の割当てが解除されてしまう可能性がある。本実施例では、その問題を回避することができる。
【００９７】
図１１は、第２の処理（１）の流れを示す。この処理は、例えば、ＷＲＴＲＫコマンドを処理するためのコンピュータプログラムをＭＰ２０が実行することにより、行われて良い。
【００９８】
Ｓ１００１〜Ｓ１００６（図１０参照）と同じ処理が行われる。但し、Ｓ１００６では、Ｒ１以降の１個のレコードではなく、対象トラック全体に複数のレコードが書き込まれるか、或いは、対象トラックにＲ０のみが書き込まれる。図１１（及び図１３）で言う「対象トラック」は、ＷＲＴＲＫコマンドが有するライト先情報を基に特定されたトラックである。
【００９９】
次に、ＭＰ２０が、対象トラックにＲ１以降のレコードがあるか否かを判断する（Ｓ１１０１）。この判断は、対象トラックの先頭サブブロックにあるトラック情報（Ｔ）を基に行うことができる。
【０１００】
Ｓ１１０１の判断の結果が否定的であれば（Ｓ１１０１：ＮＯ）、対象トラックを含んだ仮想ページ（以下、図１１及び１３の説明において「対象仮想ページ」）１８１に割り当てられている実ページ１９１がユーザデータを有しない可能性がある。そこで、以下のＳ１１０２〜Ｓ１１０５が行われる。
【０１０１】
すなわち、ＭＰ２０が、対象トラックをロックする（Ｓ１１０２）。
【０１０２】
次に、ＭＰ２０が、対象トラックに対応したビット（トラックビットマップ７０３におけるビット）をオフにする（Ｓ１１０３）。
【０１０３】
次に、ＭＰ２０が、不要実ページ解除判定を行う（Ｓ１１０４）。この処理において、対象仮想ページ１８１にユーザデータが無いことが検出されれば、対象仮想ページ１８１に対する実ページ１９１の割当てが解除され、且つ、実ページ１９１が初期化される。
【０１０４】
最後に、ＭＰ２０が、対象トラックのロックを解除する（Ｓ１１０５）。
【０１０５】
Ｓ１１０１の判断の結果が肯定的であれば（Ｓ１１０１：ＹＥＳ）、対象仮想ページ１８１に割り当てられている実ページ１９１がユーザデータを有する。このため、上記のＳ１１０２〜Ｓ１１０５はスキップされる。
【０１０６】
図１２は、第２の処理（２）の流れを示す。この処理は、例えば、ＥＲＡＳＥコマンドを処理するためのコンピュータプログラムをＭＰ２０が実行することにより、行われて良い。
【０１０７】
Ｓ１００１〜Ｓ１００５（図１０参照）と同じ処理が行われる。なお、その処理は、必ずしも行われなくて良い。
【０１０８】
ＭＰ２０は、対象トラックから１以上の対象レコードを消去する（Ｓ１２００）。図１２（及び図１３）で言う「対象トラック」は、ＥＲＡＳＥコマンドを基に特定されたトラックである。「１以上の対象レコード」は、ＥＲＡＳＥコマンドを基に特定された１以上のレコードであり、例えば、Ｒ１以降の全レコード、或いは、Ｒ１より後のユーザ所望のレコード以降の全レコードである。
【０１０９】
Ｓ１２００では、ＭＰ２０は、対象トラックを含んだ仮想ページ（以下、図１２及び１３の説明において「対象仮想ページ」）１８１に割り当てられている実ページから対象レコードを削除せず、ＨＡ／Ｒ０集約情報７０１を更新する（例えば、ＨＡ／Ｒ０集約情報７０１から、対象レコードに対応した情報を削除する）。つまり、ＭＰ２０は、論理的に対象レコードを削除し、物理的に対象レコードを削除しない。
【０１１０】
そこで、ＥＲＡＳＥコマンドの処理に同期して（ＥＲＡＳＥコマンドの処理に続いて）、以下の処理が行われる。
【０１１１】
すなわち、ＭＰ２０は、対象トラックにＲ１以降のレコードがあるか否かを判断する（Ｓ１２０１）。この判断は、前述したように、対象トラックの先頭サブブロックにあるトラック情報（Ｔ）を基に行うことができる。
【０１１２】
Ｓ１２０１の判断の結果が否定的であれば（Ｓ１１０１：ＮＯ）、対象トラックを含んだ仮想ページ（以下、図１２及び１３の説明において「対象仮想ページ」）１８１に割り当てられている実ページ１９１がユーザデータを有しない可能性がある。そこで、以下のＳ１２０２〜Ｓ１２０５が行われる。
【０１１３】
すなわち、ＭＰ２０が、対象トラックをロックする（Ｓ１２０２）。
【０１１４】
次に、ＭＰ２０が、対象トラックに対応したビット（トラックビットマップ７０３におけるビット）をオフにする（Ｓ１２０３）。
【０１１５】
次に、ＭＰ２０が、不要実ページ解除判定を行う（Ｓ１２０４）。対象仮想ページ１８１にユーザデータが無いことが検出されれば、対象仮想ページ１８１に対する実ページ１９１の割当てが解除され、且つ、実ページ１９１が初期化される。
【０１１６】
最後に、ＭＰ２０が、対象トラックのロックを解除する（Ｓ１２０５）。
【０１１７】
Ｓ１２０１の判断の結果が肯定的であれば（Ｓ１２０１：ＹＥＳ）、対象仮想ページ１８１に割り当てられている実ページ１９１がユーザデータを有する。このため、上記のＳ１２０２〜Ｓ１２０５はスキップされる。
【０１１８】
図１３は、不要実ページ解除判定の流れを示す。この処理は、例えば、不要実ページ解除判定のためのコンピュータプログラムをＭＰ２０が実行することにより、行われて良い。この処理は、第２の処理（１）又は（２）においてコールされる。それに代えて又は加えて、システム管理者による明示的な指示に応答してＳＶＰ３１１からコールされても良い。
【０１１９】
レコードは、仮想ページ１８１（実ページ１９１）における先頭のトラック４０１（５０１）から末尾のトラック４０１（５０１）にかけて順次に書き込まれる。
【０１２０】
そこで、ＭＰ２０は、対象トラックが、対象仮想ページ１８１における末尾のトラックであるか否かを判断する（Ｓ１３０１）。
【０１２１】
Ｓ１３０１の判断の結果が肯定的の場合（Ｓ１３０１：ＹＥＳ）対象仮想ページ１８１にユーザデータが無い可能性がある。ＭＰ２０は、対象仮想ページに対応したビット群（トラックビットマップ７０３におけるビット群）を参照する（Ｓ１３０２）。
【０１２２】
次に、ＭＰ２０は、参照したビット群に、オンのビットが有るか否かを判断する（Ｓ１３０３）。
【０１２３】
Ｓ１３０３の判断の結果が否定的の場合（Ｓ１３０３：ＮＯ）、対象仮想ページ１８１にユーザデータが無い。従って、対象仮想ページ１８１に割り当てられている実ページ１９１は、不要な実ページ１９１である。このため、ＭＰ２０は、不要実ページ解除を行う（Ｓ１３０４）。具体的には、下記が行われる。
（＊）ＭＰ２０は、対象仮想ページ１８１に対する実ページ１９１の割当てを解除する。より具体的には、ＭＰ２０は、マッピング情報７０５を、対象仮想ページ１８１に実ページ１９１が割り当てられていないことを表す情報に更新する。
（＊）ＭＰ２０は、割当てが解除された実ページ１９１を初期化する。この結果、その実ページ１９１から、Ｒ１以降の全てのレコードが消去され、それ故、その実ページ１９１は、ＨＡ及びＲ０のみを有する。
（＊）ＭＰ２０が、プール管理情報７０７を、初期化された実ページ１９１がフリーであることを表す情報に更新する。
【０１２４】
不要実ページ解除が行われることで、プール１２１にフリーの実ページ１９１が増えることになる。
【０１２５】
Ｓ１３０３の判断の結果が肯定的の場合（Ｓ１３０３：ＹＥＳ）、対象仮想ページ１８１にユーザデータが有る。このため、Ｓ１３０４がスキップされる。
【０１２６】
Ｓ１３０１の判断の結果が否定的の場合も（Ｓ１３０１：ＮＯ）、対象仮想ページ１８１にユーザデータが有る。このため、Ｓ１３０２以降がスキップされる。
【０１２７】
図１３の説明によれば、ＷＲＴＲＫコマンド又はＥＲＡＳＥコマンドを受信する都度にＳ１３０２以降が行われるのではなく、対象トラックが対象仮想ページ１８１における末尾のトラックである場合にのみ行われる。これにより、Ｓ１３０２以降が無駄に行われない。
【０１２８】
以上が、本実施例の説明である。本実施例によれば、ＭＦストレージ１０１において、無駄に実ページ１９１が消費されることの回避を、ＭＦホスト３５１からの第２のライト系コマンド（例えばＷＲＴＲＫコマンド又はＥＲＡＳＥコマンド）の処理に同期して行うことができる。
【０１２９】
以上、本発明の一実施例を説明したが、本発明は、この実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１３０】
１０１…メインフレーム系のストレージ装置
【図１】
2013516667.tif 000003
【図２】
2013516667.tif 000004
【図３】
2013516667.tif 000005
【図４】
2013516667.tif 000006
【図５】
2013516667.tif 000007
【図６】
2013516667.tif 000008
【図７】
2013516667.tif 000009
【図８】
2013516667.tif 000010
【図９】
2013516667.tif 000011
【図１０】
2013516667.tif 000012
【図１１】
2013516667.tif 000013
【図１２】
2013516667.tif 000014
【図１３】
2013516667.tif 000015
【国際調査報告】
2013516667.tif 000016
2013516667.tif 000017
2013516667.tif 000018