(57)【特許請求の範囲】
【請求項１】
１以上の物理ディスクの物理領域によって構成されるディスクプールを有するディスクプール提供装置と、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理領域を動的に割り当てる仮想ボリューム管理装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理する複数のファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記仮想ボリューム管理装置とを管理するための管理コンピュータとを備えるコンピュータシステムであって、
前記管理コンピュータは、
前記ディスクプールの物理領域残量との比較に用いる所定の閾値を記憶する閾値記憶部と、
前記仮想ボリューム管理装置から前記ディスクプールにおける前記物理領域残量を取得する物理領域残量取得部と、
前記複数のファイルシステムのうち物理領域を回収する対象となるファイルシステムの前記仮想ボリュームにおける前記物理領域が割り当てられているが前記ファイルが格納されていない領域である無効領域の量を、前記複数のホストコンピュータの夫々から取得する無効領域量取得部と、
前記取得された無効領域の量の総和と予め定められた値とを比較し、前記取得された無効領域の量の総和が前記予め定められた値を超えている場合に、前記無効領域に割り当てられている前記物理領域の回収を指示する前記ホストコンピュータの順序を決定するホスト決定部と、
前記ディスクプールの物理領域残量が前記閾値よりも少ないか否かを判定する物理領域残量判定部と、
前記ディスクプールの物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信する回収要求部と、を備え、
前記ホストコンピュータは、
前記仮想ボリュームにおける前記無効領域の量を検出して、前記管理コンピュータに送信する無効領域量検出送信部と、
前記管理コンピュータから前記回収要求を受信した場合に、前記仮想ボリュームにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記仮想ボリューム管理装置に送信する無効領域位置情報送信部と、を備え、
前記仮想ボリューム管理装置は、
前記管理コンピュータに前記ディスクプールの物理領域残量を送信する物理領域残量送信部と、
前記無効領域位置情報を前記ホストコンピュータから受信し、前記無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収する回収部と、を備え、
前記ホストコンピュータは更に、所定の条件に基づいて、前記複数のファイルシステムの中から前記対象となるファイルシステムを決定する対象ファイルシステム決定部を有し、
前記無効領域位置情報送信部は、前記対象となるファイルシステムにおける前記無効領域位置情報を生成して送信する
コンピュータシステム。
【請求項２】
前記管理コンピュータは、
前記仮想ボリューム管理装置から前記ディスクプールの容量を受信する容量受信部と、
前記ディスクプールの容量に対する前記閾値の割合を記憶する割合記憶部と、
前記ディスクプールの容量に前記割合を乗算することにより前記閾値を算出し、前記閾値記憶部に格納する閾値算出部と
を有する請求項１に記載のコンピュータシステム。
【請求項３】
前記ホストコンピュータは、
前記仮想ボリュームにおける前記ファイルの書き込みが行われた記憶領域を示す書込み済みマップ情報を記憶する書込み済みマップ情報記憶部と、
前記仮想ボリュームにおける前記ファイルが格納されている記憶領域を示すファイルシステムマップ情報を記憶するファイルシステムマップ情報記憶部と
を更に有し、
前記無効領域量検出送信部は、前記書込み済みマップ情報及び前記ファイルシステムマップ情報に基づいて、前記無効領域を特定して前記無効領域の量を検出する
請求項１又は請求項２に記載のコンピュータシステム。
【請求項４】
前記ホストコンピュータは、
前記無効領域の量を計数するカウンタを備え、
前記無効領域量検出送信部は、前記ファイルを前記仮想ボリュームの記憶領域から削除する際に、前記カウンタを前記仮想ボリュームから削除する記憶領域の数だけ加算し、前記カウンタの値により前記無効領域の量を検出する
請求項１又は請求項２に記載のコンピュータシステム。
【請求項５】
前記対象ファイルシステム決定部は、前記無効領域の量が多い前記ファイルシステムから回収対象として決定する
請求項１乃至請求項４のいずれか一項に記載のコンピュータシステム。
【請求項６】
前記対象ファイルシステム決定部は、Ｉ／Ｏ負荷が所定の値を超えるファイルシステムを回収対象から除外する
請求項１乃至請求項４のいずれか一項に記載のコンピュータシステム。
【請求項７】
前記ホストコンピュータは、
回収対象から除外する前記ファイルシステムを特定する情報を記憶する除外情報記憶部を更に有し、
前記対象ファイルシステム決定部は、前記除外情報記憶部に記憶された情報に対応するファイルシステムを回収対象から除外する
請求項１乃至請求項６のいずれか一項に記載のコンピュータシステム。
【請求項８】
前記管理コンピュータは、
前記ホストコンピュータからプロセッサの使用率を取得する使用率取得部を更に備え、
前記ホスト決定部は、前記プロセッサの使用率が所定以上のホストコンピュータを回収指示する対象から除外する
請求項１乃至請求項７のいずれか一項に記載のコンピュータシステム。
【請求項９】
前記管理コンピュータは、
前記ホストコンピュータからメインメモリの残量を取得する残量取得部を更に備え、
前記ホスト決定部は、前記メインメモリの残量が所定以下のホストコンピュータを回収指示する対象から除外する
請求項１乃至請求項８のいずれか一項に記載のコンピュータシステム。
【請求項１０】
前記ホストコンピュータは、
前記ホストコンピュータを回収対象から除外することを示すホスト除外情報を記憶するホスト除外情報記憶部を更に有し、
前記管理コンピュータは、
前記ホスト除外情報を取得するホスト除外情報受信部を更に備え、
前記ホスト決定部は、前記ホスト除外情報に対応する前記ホストコンピュータを回収指示する対象から除外する
請求項１乃至請求項９のいずれか一項に記載のコンピュータシステム。
【請求項１１】
前記仮想ボリューム管理装置は、
前記ファイルシステムが管理するファイルの実データを格納する前記物理領域が当該ファイルのスナップショット用参照データにおいて参照されているか否かを示す被参照マップ情報を記憶する被参照マップ情報記憶部を更に備え、
前記回収部は、前記被参照マップ情報に基づいて、前記スナップショット用参照データにおいて参照されている前記物理領域を回収対象から除外する
請求項１乃至請求項１０のいずれか一項に記載のコンピュータシステム。
【請求項１２】
前記仮想ボリューム管理装置は、
所定の時点において、前記ファイルシステムが管理するファイルの実データを参照するスナップショット用参照データを作成するスナップショット処理部と、
当該実データを格納する前記物理領域が前記スナップショット用参照データにより参照されていることを示す被参照マップ情報を作成して前記被参照マップ情報記憶部に格納する被参照マップ作成部と、
前記ファイルの前記実データを新たな実データに更新する際に、更新前の前記実データを他の物理領域に格納すると共に、前記スナップショット用参照データの参照先を前記他の物理領域に更新する参照先更新部と、
前記物理領域に前記ファイルの前記新たな実データを格納する実データ更新部と、
前記新たな実データが格納された前記物理領域について、前記スナップショット用参照データにより参照されていないことを示す被参照マップ情報を作成して前記被参照マップ記憶部に格納する被参照マップ更新部とを有する
請求項１１に記載のコンピュータシステム。
【請求項１３】
前記ホストコンピュータは、物理コンピュータ上に配置される仮想ホストコンピュータであり、
前記管理コンピュータは、
前記物理コンピュータからプロセッサの第１使用率を取得する第１使用率取得部と、
前記プロセッサの第１使用率が所定値以上の物理コンピュータ上に配置されている少なくとも１つの仮想ホストコンピュータを他の物理コンピュータに再配置させる再配置部とを更に備える
請求項１乃至請求項１２のいずれか一項に記載のコンピュータシステム。
【請求項１４】
前記管理コンピュータは、
前記仮想ホストコンピュータによる前記物理コンピュータのプロセッサの第２使用率を取得する第２使用率取得部を更に有し、
前記再配置部は、前記物理コンピュータ上に配置されている複数の仮想ホストコンピュータのうち、前記第２使用率が所定値以下の仮想ホストコンピュータを前記他の物理コンピュータに再配置させる
請求項１３に記載のコンピュータシステム。
【請求項１５】
１以上の物理ディスクの物理領域によって構成されるディスクプールを有するディスクプール提供装置と、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理領域を動的に割り当てる仮想ボリューム管理装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理する複数のファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記仮想ボリューム管理装置とを管理するための管理コンピュータとを備えるコンピュータシステムによる物理ディスク回収方法であって、
前記管理コンピュータの物理領域残量取得部が、前記仮想ボリューム管理装置から前記ディスクプールにおける前記物理領域残量を取得する物理領域残量取得ステップと、
前記管理コンピュータの物理領域残量判定部が、前記物理領域残量が閾値記憶部に格納されている前記ディスクプールの物理領域残量との比較に用いる所定の閾値よりも少ないか否かを判定する物理領域残量判定ステップと、
前記ホストコンピュータの対象ファイルシステム決定部が、所定の条件に基づいて、前記複数のファイルシステムの中から物理領域を回収する対象となるファイルシステムを決定する対象ファイルシステム決定ステップと、
前記管理コンピュータの無効領域量取得部が、前記対象となるファイルシステムの仮想ボリュームにおける前記物理領域が割り当てられているが前記ファイルが格納されていない領域である無効領域の量を前記複数のホストコンピュータの夫々から取得する無効領域量取得ステップと、
前記管理コンピュータのホスト決定部が、前記取得された無効領域の量の総和と予め定められた値とを比較し、前記取得された無効領域の量の総和が前記予め定められた値を超えている場合に、前記無効領域に割り当てられている前記物理領域の回収を指示する前記ホストコンピュータの順序を決定する決定ステップと、
前記管理コンピュータの回収要求部が、前記物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信する回収要求ステップと、
前記ホストコンピュータの無効領域位置情報送信部が、前記回収要求を受信した場合に、前記対象となるファイルシステムにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記仮想ボリューム管理装置に送信する無効領域位置情報送信ステップと、
前記仮想ボリューム管理装置の回収部が、前記無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収する回収ステップと、を備える
物理ディスク回収方法。
【請求項１６】
１以上の物理ディスクの物理領域によって構成されるディスクプールを有し、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理記憶領域を動的に割り当てるディスクアレイ装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理する複数のファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記ディスクアレイ装置とを管理するための管理コンピュータとを備えるコンピュータシステムであって、
前記管理コンピュータは、第１メモリと、第１プロセッサとを備え、
前記第１メモリは、前記ディスクプールの物理領域残量との比較に用いる所定の閾値を記憶し、
前記第１プロセッサは、前記ディスクアレイ装置から前記ディスクプールにおける前記物理領域残量を取得し、また、前記複数のファイルシステムのうち物理領域を回収する対象となるファイルシステムの前記仮想ボリュームにおける前記物理領域が割り当てられているがファイルが格納されていない領域である無効領域の量を複数の前記ホストコンピュータから取得し、また、前記取得された無効領域の量の総和と予め定められた値とを比較し、前記取得された無効領域の量の総和が前記予め定められた値を超えている場合に、前記無効領域に割り当てられている物理領域の回収を指示するホストコンピュータの順序を決定し、また、前記物理領域残量が前記閾値よりも少ないか否かを判定し、前記物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した順序に従って前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信し、
前記ホストコンピュータは、第２メモリと、第２プロセッサとを備え、
前記第２メモリは、前記仮想ボリュームの前記物理領域が割り当てられている記憶領域の位置を示す書込み済み領域位置情報と、前記仮想ボリュームの前記ファイルが格納されている記憶領域を示すファイル位置情報とを記憶し、
前記第２プロセッサは、所定の条件に基づいて、前記複数のファイルシステムの中から前記対象となるファイルシステムを決定し、前記管理コンピュータに前記無効領域の量を通知し、また、前記管理コンピュータから前記無効領域に割り当てられた物理領域の回収要求を受信した場合に、前記書込み済み領域位置情報と前記ファイル位置情報とに基づいて、前記対象となるファイルシステムにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記ディスクアレイ装置に送信し、
前記ディスクアレイ装置は、第３プロセッサを備え、
前記第３プロセッサは、前記管理コンピュータにディスクプールの物理領域残量を送信し、また、前記ホストコンピュータから受信した無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収する
コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ストレージに物理ディスクの記憶領域（物理領域）を動的に割り当て可能な仮想ストレージ管理装置を備え、ファイルを仮想ストレージを用いて管理するファイルシステムを有するコンピュータシステム等に関し、特に、ファイルのデータの記憶に使用されていない物理領域を回収する技術に関する。
【背景技術】
【０００２】
企業の情報システムにおけるＴＣＯ（Ｔｏｔａｌ  Ｃｏｓｔ  ｏｆ  Ｏｗｎｅｒｓｈｉｐ）の削減、消費電力削減への要求が高まるなか、ストレージのオーバー・プロビジョニングが問題になっている。オーバープロビジョニングとは、システム導入前のキャパシティプランニングが失敗し、ホストコンピュータが実際に必要とするディスク容量よりも多くのディスクを搭載してしまうことである。このオーバー・プロビジョニングにより、情報システムへの無駄な設備投資によるＴＣＯの増大、未使用のディスクの稼動による無駄な電力消費が発生する。
【０００３】
オーバー・プロビジョニングを回避するための技術として、近年、ディスクアレイ装置にシン・プロビジョニングが搭載され始めている。これは、ホストコンピュータに対して仮想的なディスクボリュームを提供し、データの書き込みに応じてバックエンドの物理ディスクのプールから物理ディスク領域を割り当てるディスク仮想化技術である。この技術により、複数のホストコンピュータが仮想ディスクボリュームを介して単一の物理ディスクプールを共有し、その格納データ量に応じて物理ディスク領域が割り当てられる。これにより、ホストコンピュータ毎に容量のマージンを与える必要がなくなるため、システム全体としての総ディスク容量が削減される。
【０００４】
だたし、通常のディスクアレイ装置によるシン・プロビジョニングには、システム稼働中の容量効率の面で課題が残っている。ディスクアレイ装置は、ホストコンピュータのファイルシステムの情報を持たないため、ホストコンピュータのファイルシステムでファイルが削除され、該当する物理ディスク領域が未使用になったことを知ることができない。ファイルシステム作成後に、一度、仮想ボリュームに割り当たられた物理ディスク領域は、ファイルシステムが削除されるまでは回収されない。これらの理由により、物理ディスクが枯渇しているシステムにおいて、あるファイルシステムのファイルを大量に削除したにも関わらず、未使用になった物理ディスクを別のファイルシステムが利用することができない。その結果、システム全体のディスク利用効率を低下させる。
【０００５】
このようなシン・プロビジョニングにおける容量効率の問題を解決する技術として、例えば、特許文献１に記載の技術が知られている。この技術は、ディスクアレイ装置が、ファイルシステムのジャーナルログを、該当する仮想ボリュームの特定領域（ジャーナル領域）から読み取り、その内容を解釈し、ファイルシステムによるファイルの削除の検出及び削除されたファイルのディスク領域の特定を行い、該当する物理ディスク領域を仮想ディスクボリュームから回収する。すなわち、該当する物理ディスク領域を割当可能な領域とする。
【０００６】
また、特許文献１には、システム管理者がデフラグ開始指示を行った際に、使用されなくなった実領域の割当をやめる技術も開示されている。
【０００７】
【特許文献１】特開２００５−１１３１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記したジャーナルログを用いた物理ディスク領域の回収技術では、ジャーナルの書込みを判断し、ジャーナルが書きこまれた場合に開放可能な実領域があるか否かを解析し、開放可能な実領域について開放を行うようにしている。このため、特定のファイルシステムにファイルの削除・更新が頻発すると、シン・プロビジョニング機能を稼動させていないシステムに比べて、大幅に性能が低下してしまう。これは、該当する仮想ディスクボリュームを管理するプロセッサが、通常のデータ読み出し処理及びデータ書き込み処理と並行して、シン・プロビジョニングのために必要な、ジャーナルログの解析、物理ディスク領域の割り当て、及び物理ディスク領域の開放を非常に高い頻度で行うからである。更に、このようにファイルの削除・更新が頻繁する状況では、仮想ディスクボリュームの或る領域から物理ディスクの記憶領域が回収された後、すぐに、同じ領域に物理ディスクの記憶領域が割り当てられることが行われることとなり、回収しなければ不必要であった物理ディスクの記憶領域の割り当てを再び実行しなければならなくなり、システムの入出力に関する処理効率を無駄に低下させてしまうおそれがある。
【０００９】
また、システム管理者がデフラグ開始指示を行った際に、使用されなくなった実領域の割り当てを開放する場合においては、割り当て可能な物理ディスク領域が十分であっても回収処理が実行されてしまい、システムの入出力に関する処理効率を低下させるおそれがある。また、ファイルが頻繁に削除・更新等が行われる場合には、上記と同様に、回収しなければ不必要であった物理ディスクの記憶領域の割り当てしなければならなくなり、システムの入出力に関する処理効率を無駄に低下させてしまうおそれもある。
【００１０】
そこで、本発明は、コンピュータシステムにおける入出力に関する処理効率を低下させることを適切に防止しつつ、仮想ボリュームに割り当てられた物理領域の回収を適切に行うことができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的達成のため、本発明の一態様に係るコンピュータシステムは、１以上の物理ディスクの物理領域によって構成されるディスクプールを有するディスクプール提供装置と、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理領域を動的に割り当てる仮想ボリューム管理装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理するファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記仮想ボリューム管理装置とを管理するための管理コンピュータとを備えるコンピュータシステムであって、前記管理コンピュータは、前記ディスクプールの物理領域残量との比較に用いる所定の閾値を記憶する閾値記憶部と、前記仮想ボリューム管理装置から前記ディスクプールにおける前記物理領域残量を取得する物理領域残量取得部と、前記仮想ボリュームにおける前記物理領域が割り当てられているが前記ファイルが格納されていない領域である無効領域の量を、複数の前記ホストコンピュータから取得する無効領域量取得部と、前記無効領域の量に基づいて前記無効領域に割り当てられている前記物理領域の回収を指示する前記ホストコンピュータを決定するホスト決定部と、前記ディスクプールの物理領域残量が前記閾値よりも少ないか否かを判定する物理領域残量判定部と、前記ディスクプールの物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信する回収要求部と、を備え、前記ホストコンピュータは、前記仮想ボリュームにおける前記無効領域の量を検出して、前記管理コンピュータに送信する無効領域量検出送信部と、前記管理コンピュータから前記回収要求を受信した場合に、前記仮想ボリュームにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記仮想ボリューム管理装置に送信する無効領域位置情報送信部と、を備え、前記仮想ボリューム管理装置は、前記管理コンピュータに前記ディスクプールの物理領域残量を送信する物理領域残量送信部と、前記無効領域位置情報を前記ホストコンピュータから受信し、前記無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収する回収部と、を備える。
【発明の効果】
【００１２】
本発明によれば、コンピュータシステムにおける入出力に関する処理効率を低下させることを適切に防止しつつ、物理ディスクの物理領域の回収を適切に行うことができる技術を提供することができる。
【発明を実施するための最良の形態】
【００１３】
(第１実施形態：コンピュータシステム)
以下、本発明の第１実施形態を詳細に説明する。
【００１４】
（システムの全体構成）
図１は、本発明の第１実施形態に係るコンピュータシステムの全体構成を示すブロック図である。
【００１５】
コンピュータシステム１は、一般のユーザが利用し、さまざまなネットワーク上のサービスを利用するためのクライアントコンピュータ１１と、管理コンピュータ１２と、クライアントコンピュータ１１にサービス（Ｗｅｂサーバサービス、ファイル共有サービスなど）を提供するホストコンピュータ（ホスト）１３と、ホストコンピュータ１３に仮想的なディスクボリューム１４１（仮想ボリューム：ＶＶＯＬ）を提供するディスクプール提供装置及び仮想ボリューム管理装置の一例としてのディスクアレイ装置１４と、これらを接続するネットワーク１０及び１５より構成される。ネットワーク１０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）でも良いし、インターネットやＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）でも良い。このネットワーク１０の通信プロトコルは、一般的にＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）である。ネットワーク１５は、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。このネットワーク１５の通信プロトコルは、一般的には、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）プロトコルであるが、ネットワーク１０と同じ、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）でも良い。例えば、ネットワーク１０とネットワーク１５とを同一ネットワークとして構成することも出来る。
【００１６】
（管理コンピュータ１２)
管理コンピュータ１２は、各種プログラムや各種テーブル等を記憶するメモリ１２Ｍと、メモリ１２Ｍのプログラムに従って各種処理を実行するプロセッサ１２Ｐとを有する。
【００１７】
メモリ１２Ｍは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）によって構成され、プロセッサ１２Ｐにより実行される物理ディスクの物理記憶領域（物理領域）の回収を管理する回収管理プログラム１２０と、ディスクの物理領域の回収に関するシステム設定を格納する回収設定テーブル１２１と、物理ディスクの物理領域の回収に必要なテンポラリの情報を格納する回収管理テーブル１２２と、ホストコンピュータ１３の負荷や無効領域の量を格納するホスト管理テーブル１２３とを格納する。
【００１８】
（回収設定テーブル１２１）
図２は、本発明の第１実施形態に係る回収設定テーブルの一例を示す図である。
【００１９】
回収設定テーブル１２１は、ディスク回収処理の設定を格納するためのテーブルであり、回収判定時刻欄１２１０と、、回収開始ディスク残率欄１２１１と、回収終了ディスク残率欄１２１２と、最小ディスク回収率欄１２１３と、最大ＣＰＵ使用率欄１２１４と、最大Ｉ／Ｏ単位負荷欄１２１５とから構成される。
【００２０】
回収判定時刻欄１２１０は、回収処理を実行するか否かを判定する時刻（回収判定時刻：Ｔｊｄｇ）を格納する。回収開始ディスク残率欄１２１１は、回収処理を開始する基準となる、ディスクプールの全容量に対する残りディスク量の割合である回収開始ディスク残率（Ｒｓｔａｒｔ）を格納する。回収終了ディスク残率欄１２１２は、回収処理を終了する基準となる、ディスクプールの全容量に対する残りディスク量の割合である回収終了ディスク残率（Ｒｅｎｄ）を格納する。最小ディスク回収率欄１２１３は、ディスクプールの全容量に対する回収処理により回収する最小のディスク量の割合である最小ディスク回収率（Ｒｃｌｌｃｔ−ｍｉｎ）を格納する。最大ＣＰＵ使用率欄１２１４は、回収する対象となるホストコンピュータ１３の基準としての最大のＣＰＵ使用率（最大ＣＰＵ使用率：Ｒｃｐｕ−ｍａｘ）を格納する。最大Ｉ／Ｏ単位負荷欄１２１５は、回収対象として許可するファイルシステムの単位サイズあたりのＩ／Ｏ負荷の最大値を示す最大Ｉ／Ｏ単位負荷（Ｒｉｏ−ｕｎｉｔ−ｍａｘ）を格納する。Ｒｉｏ−ｕｎｉｔ−ｍａｘの単位は、Ｉ／Ｏ負荷の単位であるＩＯＰＳ（Ｉ／Ｏ  ｐｅｒ  ｓｅｃｏｎｄ）をサイズを示すバイト（Ｂ：Ｂｙｔｅｓ）で割ったものである。
【００２１】
例えば、図２に示されている例では、回収判定時刻は、１４：００であり、回収開始ディスク残率は、２０パーセントであり、回収終了ディスク残率は、３０パーセントであり、最小ディスク回収率は１０パーセントであり、最大ＣＰＵ使用率は、８０パーセントであり、最大Ｉ／Ｏ単位負荷は、０．０５（Ｋ  ＩＯＰＳ／ＧＢ）であることを示している。
【００２２】
（回収管理テーブル１２２）
図３は、本発明の第１実施形態に係る回収管理テーブルの一例を示す図である。
【００２３】
回収管理テーブル１２２は、ディスク回収処理を管理するための情報を格納するテーブルであり、ディスクプール総ディスク量欄１２２０と、ディスクプールディスク残量欄１２２１と、回収開始ディスク残量欄１２２２と、回収終了ディスク残量欄１２２３と、目標回収ディスク量欄１２２４と、最小回収ディスク量欄１２２５とから構成される。
【００２４】
ディスクプール総ディスク量欄１２２０は、ディスクプールの総ディスク量（Ｑａｌｌ）を格納する。ディスクプールディスク残量欄１２２１は、ディスクプールのディスク残量であるディスクプールディスク残量（Ｑｒｅｓｔ）を格納する。回収開始ディスク残量欄１２２３は、回収処理を開始する基準（閾値）となるディスクプールの残りディスク量である回収開始ディスク残量（Ｑｓｔａｒｔ）を格納する。回収終了ディスク残量欄１２２４は、回収処理を終了する基準となるディスクプールの残り残量である回収終了ディスク残量（Ｑｅｎｄ）を格納する。目標回収ディスク量欄１２２４は、回収する目標とするディスク量である目標回収ディスク量（Ｑｃｌｌｃｔ）を格納する。最小回収ディスク量欄１２２５は、回収する最小目標とするディスク量である最小回収ディスク量（Ｑｃｌｌｃｔ−ｍｉｎ）を格納する。
【００２５】
例えば、図３に示されている例では、ディスクプール総ディスク量は、３０００（ＧＢ）であり、ディスクプールディスク残量は、５００（ＧＢ）であり、回収開始ディスク残量が６００（ＧＢ）であり、回収終了ディスク残量が９００（ＧＢ）であり、目標回収ディスク量が４００（ＧＢ）であり、最小回収ディスク量が４０（ＧＢ）であることを示している。
【００２６】
（ホスト管理テーブル１２３）
図６は、本発明の第１実施形態に係るホスト管理テーブルの一例を示す図である。
【００２７】
ホスト管理テーブル１２３は、ホストコンピュータ１３のＣＰＵ使用率、ＦＳ数、無効領域などの情報を格納するテーブルである。ホスト管理テーブル１２３は、大きくわけて、ホストＩＤ欄１２３００と、ホスト名欄１２３０１と、状態欄１２３０２と、調査結果欄１２３０３と、回収順序欄１２３０４と、回収結果欄１２３０５とに分かれる。
【００２８】
ホストＩＤ欄１２３００は、ホストコンピュータ１３の識別番号（ＩＤ）を格納する。ホスト名欄１２３０１は、ホストコンピュータ１３の名称（ホスト名）を格納する。状態欄１２３０２は、ホストコンピュータ１３の状態を示す情報を格納する。
【００２９】
調査結果欄１２３０３は、ＣＰＵ使用率欄１２３０６と、合計のＦＳ数欄１２３０７と、合計の無効領域量欄１２３０８と、回収対象のＦＳ数欄１２３０９と、回収対象の無効領域量欄１２３１０とから構成される。この調査結果欄１２３０３のフォーマットは、後述するホスト情報調査要求の戻り値フォーマット１２６１０と同様である。
【００３０】
ＣＰＵ使用率欄１２３０６は、対応するホストコンピュータ１３におけるＣＰＵ使用率を格納する。合計のＦＳ数欄１２３０７は、対応するホストコンピュータ１３に構成されたＦＳ（ファイルシステム）の数を格納する。合計の無効領域量欄１２３０８は、対応するホストコンピュータにおける無効領域量（例えば、ブロック数）の合計を格納する。回収対象のＦＳ数欄１２３０９は、回収対象とされたＦＳの数を格納する。回収対象の無効領域量欄１２３１０は、回収対象の無効領域量の合計を格納する。
【００３１】
回収順序欄１２３０４は、無効領域を回収する順序を格納する。回収結果欄１２３０５は、回収済みＦＳ数欄１２３１１と、回収済み無効領域量欄１２３１２と、回収済み誤差欄１２３１３と、回収未のＦＳ数欄１２３１４と、回収未無効領域量欄１２３１５と、回収失敗ＦＳ数欄１２３１６と、回収失敗無効領域量欄１２３１７とを有する。
【００３２】
回収済みＦＳ数欄１２３１１は、回収済みのＦＳ数を格納する。回収済み無効領域量欄１２３１２は、回収済みの無効領域量を格納する。回収済み誤差欄１２３１３は、調査結果と回収結果との無効領域量の差を格納する。回収未のＦＳ数欄１２３１４は、未回収のＦＳ数を格納する。回収未無効領域量欄１２３１５は、未回収の無効領域量を格納する。回収失敗ＦＳ数欄１２３１６は、回収が失敗したＦＳ数を格納する。回収失敗無効領域量欄１２３１７は、回収が失敗した無効領域量を格納する。
（ホストコンピュータ１３）
ホストコンピュータ１３は、各種プログラムや各種テーブル等を記憶するメモリ１３Ｍと、メモリ１３Ｍのプログラムに従って各種処理を実行するプロセッサ（ＣＰＵ）１３Ｐとを有する。
【００３３】
メモリ１３Ｍは、例えば、ＲＡＭ、ＲＯＭによって構成され、プロセッサ１３Ｐにより実行され、ホストコンピュータ１３内の負荷やファイルシステム（ＦＳ）を調査するためのホスト調査プログラム１３０と、プロセッサ１３Ｐにより実行され、管理コンピュータ１２からの回収要求を受けて物理ディスクの回収を制御するための回収制御プログラム１３１と、ファイルシステムを管理するための負荷情報などを格納するＦＳ管理テーブル１３２と、ホストコンピュータの状態を格納するホストカウンタ群１３３と、ファイルシステム１３４のプログラム等を格納する。
【００３４】
ファイルシステム１３４は、ファイルシステムのＩ／Ｏ処理を実行するＦＳ  Ｉ／Ｏ処理プログラム１３５と、ファイルシステムの管理情報であるＦＳマップ群１３６と、ファイルシステムのＩ／Ｏ負荷や回収状況を計測するためのＦＳカウンタ群１３７とを用いてプロセッサ１３Ｐが処理を行うことにより構成される。
【００３５】
図４は、本発明の第１実施形態に係るビットマップ、カウンタ群の構成を示すブロック図である。
【００３６】
ホストカウンタ群１３３は、ホストコンピュータ１３のＣＰＵ使用率を計測するためのＣＰＵ負荷カウンタ１３３０と、物理ディスクの回収の状態を管理するための回収状態管理カウンタ１３３１とから構成される。
【００３７】
ＦＳマップ群１３６は、ＦＳマップ（ファイルシステムマップ情報）１３６０と、ＦＳ書込み済みマップ（書込み済みマップ情報）１３６１とにより構成される。
【００３８】
ＦＳマップ１３６０は、ファイルシステムで有効なデータの位置（ブロック位置）を表したビットマップである。本実施形態では、ビットマップは、ファイルシステム上のデータ格納位置のそれぞれに対応するビットが所定の順番に並んで構成されし、有効なデータが格納されたビットは、”１”に設定される。
【００３９】
ＦＳ書込み済みマップ１３６１は、ファイルシステム上で一度書いたデータの位置（ブロック位置）を表したビットマップである。本実施形態では、ビットマップは、ファイルシステム上のデータ格納位置のそれぞれに対応するビットが所定の順番に並んで構成され、書込み済みである位置に対応するビットは、”１”に設定される。。
【００４０】
ＦＳマップ１３６０とＦＳ書込み済みマップ１３６１とにおける、同一のデータ位置に対応するそれぞれのビットの値によって、該当するブロックが、ディスクの物理領域未割り当てである未使用ブロックであるか、使用ブロックであるか、又は無効ブロックであるかを把握することができる。ここで、無効ブロックとは、過去にファイルシステムによってデータが書き込まれてたが、その後、該当するファイルのデータが削除されたために、データが無効となったブロックである。このブロックは、データが無効なのにも関わらず、物理領域が割り当てられた状態となっている。
【００４１】
図５は、本発明の第１実施形態に係るＦＳマップ及びＦＳ書込み済みマップを説明する図である。
【００４２】
例えば、図５に示すように、同一のデータ位置に対応するビットが、ＦＳマップ１３６０において”０”であり、ＦＳ書込み済みマップ１３６１において”０”である場合には、当該ビットに対応する位置のブロックは、未使用ブロックであることを示し、同一のデータ位置に対応するビットが、ＦＳマップ１３６０において”１”であり、ＦＳ書込み済みマップ１３６１において”１”である場合には、使用ブロックであることを示し、同一のデータ位置に対応するビットが、ＦＳマップ１３６０において”０”であり、ＦＳ書込み済みマップ１３６１において”１”である場合には、無効ブロックであることを示している。
【００４３】
図４の説明に戻り、ＦＳカウンタ群１３７は、書込み要求の回数をカウントするための書込みＩ／Ｏカウンタ１３７０と、無効領域のサイズ（量）をカウントするための無効領域サイズカウンタ１３７１とから構成される。
（ＦＳ管理テーブル）
図７は、本発明の第１実施形態に係るＦＳ管理テーブルの一例を示す図である。
【００４４】
ＦＳ管理テーブル１３２は、ファイルシステムの調査結果、回収結果を格納するためのテーブルであり、ＦＳＩＤ欄１３２００と、ＦＳ名欄１３２０１と、対応ＶＶＯＬ欄１３２０２と、サイズ欄１３２０３と、最大Ｉ／Ｏ負荷欄１３２０４と、調査結果のＩ／Ｏ負荷欄１３２０５と、調査結果の無効領域サイズ欄１３２０６と、回収対象か否かを示す回収対象欄１３２０７と、回収順序欄１３２０８と、回収結果の成功欄１３２０９と、失敗欄１３２１０と、回避欄１３２１１と、回収完了の実績欄１３２１２と、誤差欄１３２１３とから構成される。
【００４５】
ＦＳＩＤ欄１３２００は、ファイルシステムの識別番号（ＩＤ）を格納する。ＦＳ名欄１３２０１は、ＦＳ名を格納する。対応ＶＶＯＬ欄１３２０２は、対応する仮想ボリューム名（ＶＶＯＬ名）を格納する。サイズ欄１３２０３は、ＶＶＯＬの記憶領域のサイズを格納する。最大Ｉ／Ｏ負荷欄１３２０４は、ファイルシステムの無効領域の回収を許可するＩ／Ｏ負荷の最大値である最大Ｉ／Ｏ負荷を格納する。この値は、回収設定テーブルに格納されている最大Ｉ／Ｏ単位負荷（Ｒｉｏ−ｕｎｉｔ−ｍａｘ）１２１５にファイルシステムのサイズを乗算することにより得られる。調査結果のＩ／Ｏ負荷欄１３２０５は、対応するＦＳのＩ／Ｏ負荷を格納する。調査結果の無効領域サイズ欄１３２０６は、対応するＦＳにおける無効領域サイズを格納する。回収対象欄１３２０７は、回収対象であるか否かを示す情報を格納する。回収順序欄１３２０８は、回収する際の基準となる順序を格納する。回収結果の成功欄１３２０９は、回収が成功したか否かを示す情報を格納する。失敗欄１３２１０は、回収が失敗したか否かを示す情報を格納する。回避欄１３２１１は、回収が回避されたか否かを示す情報を格納する。回収完了の実績欄１３２１２は、回収が完了した無効領域のサイズを格納する。誤差欄１３２１３は、調査結果の無効領域サイズと回収された無効領域サイズとの誤差を格納する。
【００４６】
（ディスアレイ装置１４）
ディスクアレイ装置１４は、各種プログラムや各種テーブル等を記憶するメモリ１４Ｍと、メモリ１４Ｍのプログラムに従って各種処理を実行するプロセッサ１４Ｐと、１以上のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ：物理ディスク）より構成される物理領域をプールしたディスクプール１４３とを有する。
【００４７】
メモリ１４Ｍは、例えば、ＲＡＭ、ＲＯＭにより構成され、ホストコンピュータ１３からのＩ／Ｏ要求に応じて動的にＶＶＯＬ１４１にディスクプール１４３の物理領域を割り当てる処理をプロセッサ１４Ｐに実行させるためのＶＶＯＬ  Ｉ／Ｏ処理プログラム１４０と、ＶＶＯＬの物理領域の割当て状況を表すビットマップ群であるＶＶＯＬマップ群１４２と、ディスクプール１４３の物理ディスクの物理領域の利用状況を調査する処理を実行させるためのプール調査プログラム１４４と、物理領域の回収を実行させるための回収実行プログラム１４５と、ディスクプール１４３の物理領域の状況を管理するプールカウンタ群１４６と、Ｉ／Ｏ処理用のプロセッサ１４Ｐの負荷を調査する処理を実行させるための負荷調査プログラム１４７とを記憶する。
【００４８】
なお、図１ではシン・プロビジョニング機能をディスクアレイ装置１４が提供するようにしているが、シン・プロビジョニング機能をホストコンピュータ１３が提供するようにしてもよい。この場合には、ＶＶＯＬ  Ｉ／Ｏ処理プログラム１４０、ＶＶＯＬマップ群１４２、プール調査プログラム１４４、回収実行プログラム１４５、プールカウンタ群１４６等の全て又は一部をホストコンピュータ１３に格納し、実行させることにより実現することができる。
【００４９】
プールカウンタ群１４６は、図４に示すように、ディスクプール１４３内の物理ディスク領域の合計サイズを示すディスク領域カウンタ１４６０と、ディスクプール１４３内の未割当て領域の合計サイズを示す未割り当て領域カウンタ１４６１とから構成される。
【００５０】
ＶＶＯＬマップ群１４２は、図４に示すように、対応するＶＶＯＬ上の領域（仮想領域）への物理領域の割当て状況を示すビットマップであるＶＶＯＬマップ１４２０と、回収対象となるのＶＶＯＬ上の領域を示す回収対象マップ１４２１とから構成される。
【００５１】
次に、管理コンピュータ１２が実行する処理について説明する。
【００５２】
（回収管理処理）
図１２は、本発明の第１実施形態に係る回収管理処理を示すフローチャートである。
【００５３】
回収管理処理は、管理コンピュータ１２において、プロセッサ１２Ｐが回収管理プログラム１２０を実行することにより実行される。
【００５４】
プロセッサ１２Ｐは、まず、回収管理に関わるテーブルを初期化するプログラム初期化処理を実行する（ステップＳ１２０１）。プログラム初期化処理では、回収設定テーブル１２１を読み出すとともに、回収管理テーブル１２２、及びホスト管理テーブル１２３を初期化する。
【００５５】
次いで、プロセッサ１２Ｐは、ディスクプールの物理領域の残量を監視するディスクプール残量監視処理を実行する（ステップＳ１２０２）。ディスクプール残量監視処理では、ディスクアレイ装置１４のプール調査プログラム１４４を実行するプロセッサ１４Ｐに対して定期的にディスクプール残量調査要求１２５０を発行することにより、ディスクプール１４３の残量を監視する。
【００５６】
そして、プロセッサ１２Ｐは、ディスクプールの残量が回収開始ディスク残量よりも少なくなった場合に、次のホスト情報収集処理（ステップＳ１２０３）に処理を移す。これにより、以降においてディスクプール１４３の物理領域の回収が開始されることとなる。
【００５７】
プロセッサ１２Ｐは、ホストコンピュータ１３の負荷情報や無効領域の量などの情報を収集するホスト情報収集処理を実行する（ステップＳ１２０３）。ホスト情報収集処理では、プロセッサ１２Ｐは、ホスト管理テーブル１２３に登録されているホストコンピュータ１３のホスト調査プログラム１３０を実行するプロセッサ１３Ｐに対して、ホスト情報調査要求１２６０を発行し、その戻り値であるＣＰＵ使用率、合計のファイルシステム数、合計の無効領域量、回収対象のファイルシステム数、回収対象の無効領域量をホスト管理テーブル１２３に登録する。プロセッサ１２Ｐは、ホスト管理テーブル１２３に登録されている全ホストコンピュータに対して調査を終えると次のディスク領域回収制御処理（Ｓ１２０４）に処理を移す。
【００５８】
プロセッサ１２Ｐは、ディスクアレイ装置１４のディスクプールの物理領域を回収するディスク領域回収制御処理を実行する（ステップＳ１２０４）。ディスク領域回収制御処理では、プロセッサ１２Ｐは、ホスト管理テーブル１２３に登録されている各ホストコンピュータの調査結果を比較し、各ホストコンピュータに要求するディスク回収量と回収順序とを決定する。その後、プロセッサ１２Ｐは、決定した回収順序に従い、各ホストコンピュータ１３の回収制御プログラム１３１を実行するプロセッサ１３Ｐに対して、無効領域回収要求１２７０を発行し、物理領域を回収させる。プロセッサ１２Ｐは、回収条件を満たした場合、又は、対象となる全ホストコンピュータ１３の無効領域を回収した場合には、ディスクプール残量監視処理（Ｓ１２０２）に処理を戻す。
【００５９】
次に、上記回収管理処理において、ホストコンピュータ１３やディスクアレイ装置１４に対して発行する各種要求のフォーマットについて説明する。
【００６０】
（ディスクプール残量調査要求１２５０のフォーマット）
図８は、本発明の第１実施形態に係るディスクプール残量調査要求のフォーマットの一例を示す図である。
【００６１】
ディスクプール残量調査要求１２５０の要求データ１２５００は、要求を一意に識別するための要求ＩＤを格納する要求ＩＤ欄１２５０１と、受信側が要求の種別を識別するための要求種別を格納する要求種別欄１２５０２と、調査対象のディスクプールの名前を示すプール名を格納するプール名欄１２５０３とを有する。要求データ１２５００のフォーマットとして、本実施形態ではメッセージ形式のものを用いているが、ＲＳＨシェルなどを使ってコマンドを送信する形式としても良い。なお、後述する各要求についても同様のことがいえる。
【００６２】
戻り値データ１２５１０は、要求ＩＤを格納する要求ＩＤ欄１２５１１と、要求に対する結果を示す結果コードを格納する結果コード欄１２５１２と、ディスクプールの総ディスク量を示す総ディスク量Ｑａｌｌを格納する総ディスク量欄１２５１３と、ディスクプールの未割当てディスク領域の残量を示すディスク残量Ｑｒｅｓｔを格納するディスク残量欄１２５１４とを有する。
【００６３】
上記のディスクプール残量調査要求１２５０を用いることにより、管理コンピュータ１２の回収管理調査プログラム１２０を実行するプロセッサ１２Ｐは、指定したディスクプールのディスクプールの総ディスク量及び未割当てディスク領域の残量を、ディスクアレイ装置１４のプール調査プログラム１４４を実行するプロセッサ１４Ｐから得ることが出来る。得られたディスクプールの総ディスク量及び未割当てディスク領域の残量は、それぞれ、回収管理テーブル１２２のディスクプール層ディスク量欄１２２０と、ディスクプールディスク残量欄１２２１に格納される。
【００６４】
（ホスト情報調査要求１２６０のフォーマット）
図９は、本発明の第１実施形態に係るホスト情報調査要求のフォーマットの一例を示す図である。
【００６５】
ホスト情報調査要求１２６０の要求データ１２６００は、要求ＩＤを格納する要求ＩＤ欄１２６０１と、要求種別を格納する要求種別欄１２６０２と、最大ＣＰＵ使用率を格納する最大ＣＰＵ使用率欄１２６０４と、最大Ｉ／Ｏ単位負荷を格納する最大Ｉ／Ｏ単位負荷欄１２６０５とを有する。最大ＣＰＵ使用率は、“通常”の回収モードにおいて回収対象となるホストコンピュータ１３の基準としてのＣＰＵ使用率の最大値である。“通常”の回収モードにおいては、最大ＣＰＵ使用率よりもＣＰＵ使用率が高いホストコンピュータに対しては、プロセッサ１２Ｐは回収要求を発行しない。最大Ｉ／Ｏ単位負荷は、“通常”の回収モードにおいて回収対象となるホストコンピュータ１３の基準としての単位容量あたりのＩ／Ｏ負荷の最大値である。
【００６６】
ホスト情報調査要求１２６０の戻り値データ１２６１０は、要求ＩＤを格納する要求ＩＤ欄１２６１１と、結果コードを格納する結果コード欄１２６１２と、ＣＰＵ使用率を格納するＣＰＵ使用率欄１２６１３と、合計のＦＳの数を格納する合計ＦＳ数欄１２６１４と、合計の無効領域量を格納する合計無効領域量欄１２６１５、回収対象となるＦＳ数（対象ＦＳ数）を格納する対象ＦＳ数欄１２６１６と、対象の無効領域量（対象無効領域量）を格納する対象無効領域量欄１２６１７とを有する。ここで、対象ＦＳ数と対象無効領域量とは、それぞれ、“通常”の回収モードにおいて物理領域を回収する対象となるＦＳ数と無効領域量である。戻り値データ１２６１０に格納されているデータは、ＣＰＵ使用率から順に、ホスト管理テーブル１２３の調査結果欄１２３０３（１２３０６〜１２３１０）に登録される。
【００６７】
（無効領域回収要求１２７０のフォーマット）
図１０は、本発明の第１実施形態に係る無効領域回収要求のフォーマットの一例を示す図である。
【００６８】
無効領域回収要求１２７０の要求データ１２７００は、要求ＩＤを格納する要求ＩＤ欄１２７０１と、要求種別を格納する要求種別欄１２７０２と、回収モードを格納する回収モード欄１２７０３と、要求回収無効領域量を格納する要求回収無効領域量欄１２７０４と、最大ＣＰＵ使用率を格納する最大ＣＰＵ使用率欄１２７０５と、最大Ｉ／Ｏ単位負荷を格納する最大Ｉ／Ｏ単位負荷欄１２７０６とを有する。回収モードには、通常モードと強制モードとがあり、通常モードは、所定の条件を満たしているホストコンピュータのファイルシステムを対象として、物理領域の回収を行うモードであり、強制モードは、ホストコンピュータのファイルシステムが所定の条件を満たしているか否かにかかわらず、物理領域の回収を行うモードである。
【００６９】
無効領域回収要求１２７０の戻り値データ１２７１０は、要求ＩＤを格納する要求ＩＤ欄１２７１１と、結果コードを格納する結果コード欄１２７１２と、回収を行ったＦＳ数（回収ＦＳ数）を格納する回収ＦＳ数欄１２７１３と、回収を行った無効領域量（回収無効領域量）を格納する回収無効領域量欄２１７１４と、未回収ＦＳ数を格納する未回収ＦＳ数欄１２７１５と、未回収無効領域量を格納する未回収無効領域量欄１２７１６と、回収失敗ＦＳ数を格納する回収失敗ＦＳ数欄１２７１７と、回収失敗無効領域量を格納する回収失敗無効領域量欄１２７１８とを有する。未回収ＦＳ数と未回収無効領域量は、回収モードが“通常”の場合にホストコンピュータ１３側での回収条件を満たさずに回収しなかったＦＳ数と無効領域量である。回収失敗ＦＳ数と、回収失敗無効領域量は、故障や障害などの理由で回収に失敗したＦＳ数と無効領域量である。
【００７０】
ここで、戻り値データ１２７１０に記述されている３つの無効領域量（回収無効領域量、未回収無効領域量、回収失敗無効領域量）を足した値と、ホスト情報調査要求１２６０の戻り値データ１２６１０の合計無効領域量とは、異なる値となる場合がある。これは、調査を行う時点と回収を行う時点とにはタイムラグがあり、ホストコンピュータ１３における無効領域量も当然変化しているからである。調査時と回収時とのこれらの量の差は誤差として、ホスト管理テーブル１２３の１２３１３に登録される。戻り値データ１２７１０の結果は、回収ＦＳ数から順に、ホスト管理テーブル１２３の対応する欄１２３１１、１２３１２、１２３１４、１２３１５、１２３１６、１２３１７に登録される。
【００７１】
（ディスクプール残量監視処理）
図１３は、本発明の第１実施形態に係るディスクプール残量監視処理を示すフローチャートである。
【００７２】
プロセッサ１２Ｐがディスクプール残量監視処理の実行を開始すると、回収判定時刻（Ｔｊｄｇ）までウェイトする（ステップＳ１３０１）。その後、プロセッサ１２Ｐがディスクアレイ装置１４のプール調査プログラム１４４を実行するプロセッサ１４Ｐに、ディスクプール残量調査要求１２５０を発行し、戻り値データ１２５１０を受信する（ステップＳ１３０２）。次いで、プロセッサ１２Ｐは、戻り値データ１２５１０のディスクプールの総ディスク量Ｑａｌｌ、ディスクプールのディスク残量Ｑｒｅｓｔを回収管理テーブル１２２の該当する欄１２２０、１２２１に登録する（ステップＳ１３０３）。次に、プロセッサ１２Ｐは、回収設定テーブル１２１から回収開始ディスク残率Ｒｓｔａｒｔ、回収終了ディスク残率Ｒｅｎｄを読み出し、それぞれのパラメータにステップＳ１３０３で得たディスクプール総ディスク量Ｑａｌｌを掛け合わせ、回収開始ディスク残量Ｑｓｔａｒｔ、回収終了ディスク残量Ｑｅｎｄを計算し、回収管理テーブル１２２の該当欄に登録する（ステップＳ１３０４）。これらの計算を、図２、図３の具体例で示すと、Ｑｓｔａｒｔ＝３０００ＧＢ（Ｑａｌｌ）×２０％（Ｒｓｔａｒｔ）／１００＝６００ＧＢ、Ｑｅｎｄ＝３０００ＧＢ（Ｑａｌｌ）×３０％（Ｒｅｎｄ）／１００＝９００ＧＢとなる。
【００７３】
次に、プロセッサ１２Ｐは、ディスクプールディスク残量Ｑｒｅｓｔと回収開始ディスク残量Ｑｓｔａｒｔとの大小を比較し、物理領域の回収処理を起動するか否かを判定する（ステップＳ１３０５）。この結果、ディスクプールディスク残量Ｑｒｅｓｔが回収開始ディスク残量Ｑｓｔａｒｔ以上であれば、プロセッサ１２Ｐは、物理領域の回収処理は行わず、ステップＳ１３０１に移行する。一方、ディスクプールディスク残量Ｑｒｅｓｔが回収開始ディスク残量Ｑｓｔａｒｔよりも小さければ、プロセッサ１２Ｐは、物理ディスクの回収処理を行うために、回収終了ディスク残量Ｑｅｎｄからディスクプールディスク残量Ｑｒｅｓｔを減算して目標回収ディスク量Ｑｃｌｌｃｔを算出し、回収管理テーブル１２２の該当欄に登録する（Ｓ１３０６）。図３の例では、目標回収ディスク量Ｑｃｌｌｃｔ＝９００ＧＢ（回収終了ディスク残量Ｑｅｎｄ）−５００ＧＢ（ディスクプールディスク残量Ｑｒｅｓｔ）＝４００ＧＢである。最後に、プロセッサ１２Ｐは、目標回収ディスク量Ｑｃｌｌｃｔに最小ディスク回収率Ｒｃｌｌｃｔ−ｍｉｎを乗算し、さらに１００で除算することにより最小回収ディスク量Ｑｃｌｌｃｔ−ｍｉｎを算出し、回収管理テーブル１２２の該当欄に登録し、処理を終了する（ステップＳ１３０７）。図２及び図３の例では、最小回収ディスク量Ｑｃｌｌｃｔ−ｍｉｎ＝４００ＧＢ（目標回収ディスク量Ｑｃｌｌｃｔ）＊１０（最小ディスク回収率（％）Ｒｃｌｌｃｔ−ｍｉｎ）／１００＝４０ＧＢである。
【００７４】
（ホスト情報収集処理）
図１４は、本発明の第１実施形態に係るホスト情報収集処理を示すフローチャートである。
【００７５】
ホスト情報収集処理では、プロセッサ１２Ｐは、ホスト管理テーブル１２３に登録されている全ホストコンピュータの、ＣＰＵ使用率、合計ＦＳ数、合計無効領域量、回収対象のＦＳ数、及び回収対象の無効領域量を調べる処理を行う。すなわち、プロセッサ１２Ｐは、ホスト管理テーブル１２３のホストＩＤの値が“１”のホストを対象ホストとして選択する（ステップＳ１４０１）。次に、プロセッサ１２Ｐは、対象ホストのホスト調査プログラム１３０を実行するプロセッサ１３Ｐにホスト情報調査要求１２６０を発行し、戻り値データ１２６１０を受信する（ステップＳ１４０２）。次に、プロセッサ１２Ｐは、戻り値データ１２６１０の各値をホスト管理テーブル１２３の調査結果欄１２３０３（１２３０６、１２３０７、１２３０８、１２３０９、１２３１０）に登録する（ステップＳ１４０３）。例えば、図６に示すように、ホストＩＤが”１”のホストコンピュータの調査の結果は、ＣＰＵ使用率が７２％、合計ＦＳ数が５個、合計無効領域が５９ＧＢ、回収対象のＦＳ数が５個、回収対象の無効領域が５９ＧＢとなる。
【００７６】
次いで、プロセッサ１２Ｐは、ホスト管理テーブル１２３に登録されているホストコンピュータ１３をすべて調査したか否かをチェックする（ステップＳ１４０４）。この結果、全てのホストコンピュータ１３を調査した場合（ステップＳ１４０４：Ｙｅｓ）には、プロセッサ１２Ｐは、ホスト情報収集処理を終了する。一方、全てのホストコンピュータ１３の調査をしていない場合（ステップＳ１４０４：Ｎｏ）には、プロセッサ１２Ｐは、次の順番のホスト、すなわち、次のホストＩＤのホストを対象ホストとして選択し（ステップＳ１４０５）、当該対象ホストに対してステップＳ１４０２〜Ｓ１４０４のステップを実行する。
【００７７】
（ディスク領域回収制御処理）
図１５は、本発明の第１実施形態に係るディスク領域回収制御処理を示すフローチャートである。
【００７８】
ディスク回収制御処理は、回収管理テーブル１２２及びホスト管理テーブル１２３に登録されているディスクアレイ装置１４、ホストコンピュータ１３の調査結果から、回収モードを決めて、ホストコンピュータ１３の回収制御プログラム１３１を実行するプロセッサ１３Ｐに対してディスク回収要求１２７０を発行し、物理ディスクの回収を実行させるための処理である。
【００７９】
まず、プロセッサ１２Ｐは、回収管理テーブル１２２より、目標回収ディスク量Ｑｃｌｌｃｔ、最小回収ディスク量Ｑｃｌｌｔ−ｍｉｎを読み出す（ステップＳ１５０１）。次に、プロセッサ１２Ｐは、ホスト管理テーブル１２３の回収対象無効領域の総和を求め（ステップＳ１５０２）、当該総和が目標回収ディスク量Ｑｃｌｌｃｔ以上であるかを評価する（ステップＳ１５０３）。
【００８０】
この結果、総和が目標回収ディスク量Ｑｃｌｌｃｔ以上の場合（ステップＳ１５０３：Ｙｅｓ）には、所定の条件を満たすホストコンピュータ及びファイルシステムから十分な物理領域を回収できることを意味するので、プロセッサ１２Ｐは、回収モードを“通常”に設定し（ステップＳ１５０４）、回収対象無効領域が“０”よりも大きいホストコンピュータのうち、回収対象無効領域の値が大きいものから順に採番して、ホスト管理テーブル１２３の回収順序欄１２３０４に採番した順序を登録する（ステップＳ１５０５）。
【００８１】
一方、総和が目標回収ディスク量Ｑｃｌｌｃｔ未満の場合（ステップＳ１５０３：Ｎｏ）には、プロセッサ１２Ｐは、ホスト管理テーブル１２３に登録されている合計無効領域の総和を求め（ステップＳ１５０６）、合計無効領域の総和が最小回収ディスク量Ｑｃｌｌｃｔ−ｍｉｎ以上であるかを評価する（ステップＳ１５０７）。この結果、合計無効領域の総和が最小回収ディスク量Ｑｃｌｌｃｔ−ｍｉｎ以上の場合（ステップＳ１５０７：Ｙｅｓ）には、全てのホストコンピュータ及びファイルシステムによって最小回収ディスク量を満たす物理領域を回収できることを意味するので、プロセッサ１２Ｐは、回収モードを“強制”に設定し（ステップＳ１５０８）、合計無効領域が“０”よりも大きいホストコンピュータのうち、合計無効領域の値が大きいものから順に採番し、ホスト管理テーブル１２３の回収順序欄１２３０４に採番した順序を登録する（ステップＳ１５０９）。一方、合計無効領域の総和が最小回収ディスク量Ｑｃｌｌｃｔ−ｍｉｎ未満の場合（ステップＳ１５０７：Ｎｏ）には、プロセッサ１２Ｐは、最小回収ディスク量が確保できない旨を報告し（ステップＳ１５１１）、処理を終了する。
【００８２】
最後に、ステップＳ１５０４及び１５０５、又はステップＳ１５０８及び１５０９において決定した回収モード、回収順序に従い、ホストコンピュータ１３に対して無効領域回収要求１２７０を発行し、戻り値データ１２７１０を受信してホスト管理テーブル１２３に登録し（ステップＳ１５１０）、処理を終了する。
【００８３】
次に、ホストコンピュータ１３が実行する各種処理について説明する。
【００８４】
（ホスト調査処理）
図１６は、本発明の第１実施形態に係るホスト調査処理を示すフローチャートである。
【００８５】
このホスト調査処理は、プロセッサ１３Ｐがホスト調査プログラム１３０を実行することに実現される処理であり、管理コンピュータ１２の回収管理プログラム１２０を実行するプロセッサ１２Ｐからホスト情報調査要求１２６０を受信し、ホストコンピュータ１３内の各ファイルシステム１３４のＩ／Ｏ負荷、無効領域の量を集計し、回収管理プログラム１２０を実行するプロセッサ１２Ｐに返送する処理である。
【００８６】
プロセッサ１３Ｐは、管理コンピュータ１２からホスト情報調査要求１２６０を受信すると、ＦＳ管理テーブル１３２を初期化する（ステップＳ１６０１）。この初期化においては、ホストコンピュータ１３上に構成されているファイルシステム名、対応するＶＶＯＬ名、サイズを、ＦＳ管理テーブル１３２の各欄１３２０１、１３２０２、１３２０３に登録する。更に、プロセッサ１３Ｐは、回収設定テーブルに格納されている最大Ｉ／Ｏ単位負荷（Ｒｉｏ−ｕｎｉｔ−ｍａｘ）１２１５にファイルシステムのサイズを乗算して最大Ｉ／Ｏ負荷（Ｌｉｏ−ｍａｘ）を算出し、その結果をＦＳ管理テーブル１３２の最大Ｉ／Ｏ負荷欄１３２０４に登録する。
【００８７】
次に、プロセッサ１３Ｐは、ホスト情報調査要求１２６０の要求データ１２６００の内容を取り出し（ステップＳ１６０２）、自ノードのＣＰＵ使用率Ｒｃｐｕを調査する（ステップＳ１６０３）。次に、プロセッサ１３Ｐは、ＦＳ管理テーブル１３２のＦＳＩＤ＝１として登録されているファイルシステムを対象として選択する（ステップＳ１６０４）。
【００８８】
次に、プロセッサ１３Ｐは、対象ファイルシステムの無効領域カウンタ１３７１から無効領域の量を読み出してＦＳ管理テーブル１３２に登録し（ステップＳ１６０５）、更に、書込みＩ／Ｏ負荷カウンタ１３７０からＩ／Ｏ負荷を読み出してＦＳ管理テーブル１３２に登録する（ステップＳ１６０６）。
【００８９】
次に、プロセッサ１３Ｐは、ファイルシステムの調査Ｉ／Ｏ負荷Ｌｉｏが、その上限（最大Ｉ／Ｏ負荷）Ｌｉｏ−ｍａｘ以下か否かを評価する（ステップＳ１６０７）。この結果、Ｉ／Ｏ負荷Ｌｉｏが上限Ｌｉｏ−ｍａｘ以下の場合には、該当するファイルシステムにおける物理領域の回収がＩ／Ｏ処理を妨げる可能性が低いと把握できるので、ＦＳ管理テーブル１３２の回収対象欄１３２０７に回収対象であることを示す“１”を登録する（ステップＳ１６０８）一方、Ｉ／Ｏ負荷Ｌｉｏが上限Ｌｉｏ−ｍａｘより大きい場合には、該当するファイルシステムにおける物理領域の回収がＩ／Ｏ処理を妨げる可能性が高いと把握できるので、ＦＳ管理テーブル１３２の回収対象欄１３２０７に回収対象ではないことを示す“０”を登録する（ステップＳ１６０９）。
【００９０】
次いで、プロセッサ１３Ｐは、これら一連のステップ（ステップＳ１６０５〜１６０９）を全てのファイルシステムに対して行ったか否かを判定し（ステップＳ１６１０）、全てのファイルシステムに対して行っていない場合には、ＦＳ管理テーブル１３２における次のファイルシステム、すなわち、次のＦＳＩＤのファイルシステムを対象ファイルシステムとして（ステップＳ１６１１）ステップＳ１６０５からの処理を行う。
【００９１】
そして、全てのファイルシステムに対して調査が終わった場合（ステップＳ１６１０：Ｙｅｓ）には、プロセッサ１３Ｐは、無効領域サイズが大きいファイルシステムから順に回収順序を採番し、ＦＳ管理テーブル１３２の回収順序欄１３２０８に登録する（ステップＳ１６１２）。最後に、プロセッサ１３Ｐは、ＣＰＵ使用率、合計ＦＳ数、合計無効領域、対象ＦＳ数、対象無効領域を、ホスト情報調査要求１２６０の戻り値データ１２６１０に格納して、管理コンピュータ１２に返送して（ステップＳ１６１３）、処理を終了する。
【００９２】
（回収制御処理）
図１７は、本発明の第１実施形態に係る回収制御処理を示すフローチャートである。
【００９３】
回収制御処理は、プロセッサ１３Ｐが回収制御プログラム１３１を実行することにより実現され、無効領域の分布を表すビットマップを作成し、ディスクアレイ装置１４の回収実行プログラム１４５を実行するプロセッサ１４Ｐに無効領域の回収要求を送信する処理である。
【００９４】
回収制御処理において、プロセッサ１３Ｐは、管理コンピュータ１２から受信した無効領域回収要求１２７０の要求データ１２７００の内容を取り出し（ステップＳ１７０１）、回収モードが“標準”か否かを評価する（ステップＳ１７０２）。この評価の結果、回収モードが”標準”である場合（ステップＳ１７０２：Ｙｅｓ）には、プロセッサ１３Ｐは、ＦＳ管理テーブル１３２の回収対象欄１３２０７が“１”のファイルシステムを回収対象として決定する（ステップＳ１７０３）。一方、回収モードが”標準”でない場合（ステップＳ１７０２：Ｎｏ）には、プロセッサ１３Ｐは、ＦＳ管理テーブル１３２に登録されているすべてのファイルシステムを回収対象と決定する（ステップＳ１７０４）。
【００９５】
その後、プロセッサ１３Ｐは、回収処理を行っていない回収対象の中で回収順序がもっとも小さいファイルシステムを次の処理対象ファイルシステムとして選択し（ステップＳ１７０５）、選択した対象ファイルシステムをフリーズさせる（ステップＳ１７０６）。ここで、フリーズとは、ファイルシステムがディスクアレイ装置１４に反映させる前に一時的にホストコンピュータ１３のメモリに記憶しているデータをディスクアレイ装置１４に反映させ、Ｉ／Ｏを受け付けない状態にさせることをいう。
【００９６】
その後、プロセッサ１３Ｐは、対象ファイルシステムのＦＳマップ１３６０とＦＳ書込み済みマップ１３６１とを取得し（ステップＳ１７０７）、取得した２つのマップからファイルシステムの回収対象とする無効領域を示すビットマップ（回収対象ビットマップ：無効領域位置情報）を作成する（ステップＳ１７０８）。ここで、回収対象ビットマップは、ＦＳ書込み済みマップ１３６１と、ＦＳマップ１３６０を反転させたもの（ＮＯＴ（ＦＳマップ１３６０））との論理積（アンド）をとることにより作成できる。
【００９７】
次に、プロセッサ１３Ｐは、物理ディスク回収要求１３１０の要求データ１３１００（図１１参照）を作成し、ディスクアレイ装置１４に送信する（ステップＳ１７０９）。その後、プロセッサ１３Ｐは、戻り値データ１３１１０を受信し、その内容をＦＳ管理テーブル１３２に登録し、更に、戻り値データ１３１１０の回収受付マップ１３１１５に基づいて、ＦＳ書込み済みマップ１３６１に回収した結果を反映させ（ステップＳ１７１０）、ファイルシステムをアンフリーズする（ステップＳ１７１１）。ここで、ＦＳ書込み済みマップ１３６１に回収した結果を反映させるものは、ＦＳ書込み済みマップ１３６１と、回収受付マップ１３１１５を反転させたもの（ＮＯＴ（回収受付マップ１３１１５））との論理積（アンド）をとることにより得ることができる。
【００９８】
次に、プロセッサ１３Ｐは、これまでの回収量の合計が要求回収量以上になったかを評価する（ステップＳ１７１２）。この結果、回収量合計が要求回収量以上であると評価した場合（ステップＳ１７１２：Ｙｅｓ）には、プロセッサ１３Ｐは、無効領域回収要求１２７０の戻り値データ１２７１０を作成し、管理コンピュータ１２に送信し（ステップＳ１７１３）、処理を終了する。
【００９９】
一方、回収量合計が要求回収量未満であると評価した場合（ステップＳ１７１２：Ｎｏ）には、プロセッサ１３Ｐは、全ての対象ファイルシステムからの物理領域の回収を行ったか否かを評価し（ステップＳ１７１４）、全ての対象ファイルシステムから回収を行った場合には、処理を終了する一方、全ての対象ファイルシステムから回収を行っていない場合には、次のファイルシステムに対して同様なステップ（ステップＳ１７０５〜１７１２）を実行する。
【０１００】
次に、上記回収制御処理において、ホストコンピュータ１３がディスクアレイ装置１４との間で用いる要求のフォーマットについて説明する。
【０１０１】
（物理ディスク回収要求１３１０のフォーマット）
図１１は、本発明の第１実施形態に係る物理ディスク回収要求のフォーマットの一例を示す図である。
【０１０２】
物理ディスク回収要求１３１０の要求データ１３１００は、要求ＩＤを格納する要求ＩＤ欄１３１０１と、要求種別を格納する要求種別欄１３１０２と、ＶＶＯＬ名を格納するＶＶＯＬ名欄１３１０３と、回収単位ブロックサイズを格納する回収単位ブロックサイズ欄１３１０４と、回収開始ブロックを格納する回収開始ブロック欄１３１０５と、回収対象ブロック数を格納する回収対象ブロック数欄１３１０６と、回収対象ビットマップを格納する回収対象ビットマップ欄１３１０７とを有する。回収単位ブロックサイズとは、回収するブロックのデータサイズであり、例えば、予め回収単位のブロックのデータサイズが規定されている場合には、回収単位ブロックサイズ欄１３１０４に回収単位ブロックサイズを格納する必要がない。回収開始ブロックとは、対応する回収対象ビットマップの先頭のブロックのブロック番号のことをいう。回収対象ブロック数とは、対応する回収対象ビットマップに含まれている回収開始ブロックから続く回収対象となるブロックの数のことをいう。
【０１０３】
なお、ブロックのデータサイズが一定であり、回収対象ビットマップがＶＶＯＬの先頭のブロックからのビットマップである場合には、回収単位ブロックサイズ欄１３１０４と、回収開始ブロック欄１３１０５と、回収対象ブロック数欄１３１０６とを備えなくてもよく、また、備えていたとしても値を格納する必要がない。
【０１０４】
戻り値データ１３１１０は、要求ＩＤを格納する要求ＩＤ欄１３１１１と、結果コードを格納する結果コード欄１３１１２と、回収したデータサイズを格納する回収サイズ欄１３１１３と、回収を受け付けたブロックのビットマップ（回収受付マップ）のサイズを格納するビットマップサイズ欄１３１１４と、回収受付マップを格納する回収受付マップ欄１３１１５とを有する。
【０１０５】
（ＦＳ  Ｉ／Ｏ処理：ファイルのＷｒｉｔｅ／Ｃｒｅａｔｅ要求時処理）
図１８は、本発明の第１実施形態に係るＷｒｉｔｅ／Ｃｒｅａｔｅ要求時処理を示すフローチャートである。
【０１０６】
Ｗｒｉｔｅ／Ｃｒｅａｔｅ要求時処理は、クライアントコンピュータ１１からファイルシステムに対するＷｒｉｔｅ／Ｃｒｅａｔｅ要求を受信した際に実行される。Ｗｒｉｔｅ／Ｃｒｅａｔｅ要求を受信すると、プロセッサ１３Ｐは、ＦＳマップ１３６０、ＦＳ書込み済みマップ１３６１の更新対象ブロックに該当するビットを参照し、更新対象ブロックの状態を調べる（ステップＳ１８０１）。
【０１０７】
次に、プロセッサ１３Ｐは、更新対象ブロックが無効ブロック（無効領域）であるかを否か評価する（ステップＳ１８０２）。この結果、更新対象ブロックが無効ブロックであると評価された場合（ステップＳ１８０２：Ｙｅｓ）には、無効ブロックに書込みが行われて、使用ブロックとなるので、プロセッサ１３Ｐは、無効領域サイズカウンタ１３７１をデクリメントし（ステップＳ１８０３）、Ｗｒｉｔｅ／Ｃｒｅａｔｅ処理を実行する（ステップＳ１８０４）。ここで、Ｗｒｉｔｅ／Ｃｒｅａｔｅ処理とは、Ｗｒｉｔｅ／Ｃｒｅａｔｅ要求に含まれているデータを、ファイルシステムにおいて割り当てたＶＶＯＬのブロックを指定して、ディスクアレイ装置１４に格納させる処理をいう。
【０１０８】
一方、更新対象ブロックが無効ブロックではないと評価された場合（ステップＳ１８０２：Ｎｏ）には、カウンタのデクリメントを飛ばして、Ｗｒｉｔｅ／Ｃｒｅａｔｅ処理を実行する（ステップＳ１８０４）。その後、プロセッサ１３Ｐは、ＦＳマップ１３６０、ＦＳ書込み込み済みマップ１３６１の更新対象ブロックに対応するビットを”１”に更新するとともに、書込みＩ／Ｏカウンタ１３７０をインクリメントして、処理を終了する。
【０１０９】
この処理により、書込みＩ／Ｏカウンタ１３７０には、Ｗｒｉｔｅ／Ｃｒｅａｔｅ要求の回数が格納されることとなり、所定時間毎にこのカウンタを見ることにより、所定時間におけるＷｒｉｔｅ／ＣｒｅａｔｅのＩ／Ｏ負荷を把握することができる。
【０１１０】
図１９は、本発明の第１実施形態に係るＲｅｍｏｖｅ要求時処理を示すフローチャートである。
【０１１１】
Ｒｅｍｏｖｅ要求時処理は、クライアントコンピュータ１１からファイルシステムに対するファイルのＲｅｍｏｖｅ要求を受信した際に実行される。Ｒｅｍｏｖｅ要求を受信すると、プロセッサ１３Ｐは、まず、無効領域サイズカウンタ１３７１をＲｅｍｏｖｅ対象ファイルのサイズ分（ブロック数）だけインクリメントする。これは、Ｒｅｍｏｖｅをすると、ブロックが無効領域となり、無効領域が増加するからである。その後、プロセッサ１３Ｐは、Ｒｅｍｏｖｅ処理を行い（ステップ１９０２）、ＦＳマップ１３６０のＲｅｍｏｖｅされたブロックに対応するビットを”０”に更新し（ステップＳ１９０３）、処理を終了する。
【０１１２】
この処理により、無効領域サイズカウンタ１３７１には、無効領域サイズが適切にカウントされることとなる。
【０１１３】
次に、ディスクアレイ装置１４が実行する各種処理について説明する。
【０１１４】
（プール調査処理）
図２０は、本発明の第１実施形態に係るプール調査処理を示すフローチャートである。
【０１１５】
プール調査処理は、プール調査プログラム１４４をプロセッサ１４Ｐが実行することにより実現される。
【０１１６】
ディスクアレイ装置１４が管理コンピュータ１２からディスクプール残量調査要求１２５０を受信すると、プロセッサ１４Ｐは、ディスクプール残量調査要求１２５０の内容を取り出し（ステップＳ２００１）、調査対象となるディスクプール１４３のディスク領域カウンタ１４６０と未割当て領域カウンタ１４６１の値を戻り値データ１２５１０に格納し（ステップＳ２００２）、戻り値データを管理コンピュータ１２に返送し（ステップＳ２００３）、処理を終了する。
【０１１７】
この処理により、ディスクプール１４３のディスク領域量（総ディスク量）と未割り当て領域（ディスク残量）とを迅速に管理コンピュータ１２に返送することができる。
【０１１８】
（回収実行処理）
図２１は、本発明の第１実施形態に係る回収実行処理を示すフローチャートである。
【０１１９】
回収実行処理は、回収実行プログラム１４５をプロセッサ１４Ｐが実行することにより実現される。
【０１２０】
ディスクアレイ装置１４がホストコンピュータ１３から物理ディスク回収要求１３１００を受信すると、プロセッサ１４Ｐは、物理ディスク回収要求１３１００の内容を取り出し（ステップＳ２１０１）、ディスク領域の回収を実行する。ここで、回収対象ブロックは、物理ディスク回収要求１３１０の要求データ１３１００に格納されている回収対象ビットマップによって特定することができる。すなわち、回収対象ビットマップの中で“１”が立っているビットに対応する全てのブロックが回収対象である。ここで、ディスクアレイ装置１４においては、仮想ボリュームの各ブロックと、当該ブロックに割り当てられている物理ディスクの物理領域との対応関係を示すデータが管理されており、当該データ中において、回収対象ブロックと割り当てられた物理ディスクの物理領域との対応関係を削除することにより、物理ディスクの物理領域を回収することができる。すなわち、後に新たに割り当てに利用することが可能となる。
【０１２１】
次いで、プロセッサ１４Ｐは、回収が完了したブロックに関しては、回収対象ビットマップのブロックに対応するビットを”０”クリアするとともに、各ブロックに対応するビットを有する回収受付マップにおける対応するビットに”１”を立てる（ステップＳ２１０２）。次いで、プロセッサ１４Ｐは、物理ディスク回収要求の戻り値データ１３１１０に回収受付マップを格納してホストコンピュータ１３に返送し、処理を終了する。
【０１２２】
（ＶＶＯＬ  Ｉ／Ｏ処理）
図２２は、本発明の第１実施形態に係るＶＶＯＬ  Ｉ／Ｏ処理を示すフローチャートである。
【０１２３】
同図は、回収実行処理が実行されている最中に、ＶＶＯＬ  Ｉ／Ｏ処理のＷｒｉｔｅ処理が発生した場合におけるフローチャートである。
【０１２４】
ＶＶＯＬ  Ｉ／Ｏ処理は、ＶＶＯＬ  Ｉ／Ｏ処理プログラム１４０をプロセッサ１４Ｐが実行することにより実現される。
【０１２５】
回収実行処理が実行されている際に、ディスクアレイ装置１４が、ＶＶＯＬへのＷｒｉｔｅ要求をホストコンピュータ１３から受信すると、プロセッサ１４Ｐは、回収対象ビットマップ中のＷｒｉｔｅ対象のブロックに該当するビットを参照し（ステップＳ２２０１）、該当ビットが“１”であるか否かを評価する（ステップＳ２２０２）。この結果、該当ビットが”１”であると評価した場合（ステップＳ２２０２：Ｙｅｓ）には、プロセッサ１４Ｐは、回収対象ビットマップの該当ビットを“０”クリアしてから、Ｗｒｉｔｅ処理を実行し（ステップＳ２２０４）、処理を終了する。
【０１２６】
一方、該当ビットが“０”であると評価した場合（ステップＳ２２０２：Ｎｏ）には、プロセッサ１４Ｐは、該当ビットの操作は行わずに、Ｗｒｉｔｅ処理を実行し（ステップＳ２２０４）、処理を終了する。
【０１２７】
この処理によって、回収対象であったブロックに対して書込みが行われる場合にあっては、回収対象ビットマップが”０”となるので、回収実行処理において回収されることがない。このため、回収処理と並行してＷｒｉｔｅ処理を実行することができ、処理効率の低下を防止することができる。
【０１２８】
上記した実施形態に係るコンピュータシステムによると、ディスクアレイ装置１４のディスクプールのディスク残量が閾値よりも少なくなったという、ディスクプールのディスク残量を増加させる必要が高いと考えられる場合に、迅速に無効領域の物理領域を回収することができる。
【０１２９】
（第２実施形態）
次に、本発明の第２実施形態に係るコンピュータシステムについて説明する。
【０１３０】
第２実施形態に係るコンピュータシステムは、前述の第１実施形態に係るコンピュータシステムにおいて、ディスクアレイ装置１４にスナップショット機能を追加したものである。なお、第１実施形態との差異を中心に説明する。
【０１３１】
（システムの全体構成）
図２３は、本発明の第２実施形態に係るコンピュータシステムの全体構成を示すブロック図である。なお、同図においては、第１実施形態に係るコンピュータシステムと同様な要素には、同一の符号を付している。
【０１３２】
第２実施形態に係るコンピュータシステムにおいては、ディスクアレイ装置１４に、スナップショット機能を実現する構成を追加した点が第１実施形態に係るコンピュータシステムと異なっている。ディスクアレイ装置１４以外の構成要素、例えば、クライアントコンピュータ１０、管理コンピュータ１２、ホストコンピュータ１３、ネットワーク１０、１５は、構成及びその動作が第１実施形態と同様である。
【０１３３】
なお、図２３ではシン・プロビジョニング機能をディスクアレイ装置１４が提供するようにしているが、シン・プロビジョニング機能をホストコンピュータ１３が提供するようにしてもよい。この場合には、ＶＶＯＬ  Ｉ／Ｏ処理プログラム１４８、ＶＶＯＬマップ群１４２、プール調査プログラム１４４、回収実行プログラム１５１、プールカウンタ群１４６等の全て又は一部をホストコンピュータ１３に格納し、実行させることにより実現することができる。
【０１３４】
（ディスアレイ装置１４）
第２実施形態に係るディスクアレイ装置１４は、第１実施形態の構成要素のほかに、ＶＶＯＬのスナップショットを提供する仮想ボリューム（ＳＶＯＬ）１４９と、ＶＶＯＬに割り当てられている物理ディスク領域（実データブロック）の中でＳＶＯＬから参照されているブロック番号を示すための被参照ビットマップ（被参照マップ情報）１５０とを有する。また、ＶＶＯＬ
Ｉ／Ｏ処理プログラム１４８及び回収実行プログラム１５１は、第１実施形態のＶＶＯＬ  Ｉ／Ｏ処理プログラム１４０及び回収実行プログラム１４５に対して、ＳＶＯＬを維持するための処理を更にプロセッサ１４Ｐに実行させるようになっている。なお、プロセッサ１４ＰがＶＶＯＬ
Ｉ／Ｏ処理プログラム１４８及び回収実行プログラム１５１に従って実行する動作については後述する。
【０１３５】
第２実施形態に係るディスクアレイ装置１４は、スナップショット機能としては、代表的なスナップショット方式であるＣＯＷ(Ｃｏｐｙ  Ｏｎ  Ｗｒｉｔｅ)方式、すなわち、旧データを別の専用ディスクボリュームに退避してから新データを書き込む方式を用いている。なお、ディスクアレイ装置１４におけるスナップショット機能の方式としては、ＣＯＷ方式に限られず、例えば、旧データを退避させずに、新データを新たな領域に書き込む方式を適用することもできる。
【０１３６】
図２４、図２５及び図２６は、本発明の第２実施形態に係るスナップショット運用時の回収処理を説明する図である。なお、これら図においては、便宜上各ファイルが１つのブロックサイズに収まる例を挙げて説明しているが、ファイルが複数のブロックに格納される場合であっても同様に実現することができる。
【０１３７】
図２４は、スナップショット作成する前（時刻Ｔ０）及びスナップショット作成した際（時刻Ｔ１）におけるディスクアレイ装置１４の状態を示し、図２５は、運用ファイルシステムにおいてファイルに追記した際（時刻Ｔ２）におけるディスクアレイ装置１４の状態を示し、図２６は、運用ファイルシステムのファイルを一部削除した際（時刻Ｔ３）、及び不要領域に対して回収処理を行った際（時刻Ｔ４）におけるディスクアレイ装置１４の状態を示している。
【０１３８】
ディスクアレイ装置１４には、図２４に示すように、ＶＶＯＬ１４１a、ＳＶＯＬ１４９ａ、ＶＶＯＬの実データを格納するための物理ディスク１４３ａ（ＨＤＤ−Ａ）、ＳＶＯＬを維持するための旧データを退避させるための物理ディスク１４３ｂ（ＨＤＤ−Ｂ）が備えられている。物理ディスク１４３ａには、実データブロック１４３１が格納される。また、ディスクアレイ装置１４には、実データブロック群１４３１を参照するポインタを格納する仮想データブロック群１４１１、１４９１、及び被参照ビットマップ１５０も備えられている。
【０１３９】
（時刻Ｔ０：スナップショット作成前）
ここで、時刻Ｔ０においては、ホストコンピュータ１３のファイルシステム１３４により、管理されているファイルａ、ｂ、ｃがＶＶＯＬ１４１ａに存在しているものとする。この場合、ホストコンピュータ１３のファイルシステム１３４が管理している各ファイルａ、ｂ、ｃのメタデータ２４０１、２４０２、２４０３は、それぞれＶＶＯＬ１４１の仮想データブロック群１４１１における対応する仮想データブロック１４１２、１４１３、１４１４を参照している。各仮想データブロック１４１２、１４１３、１４１４は、それぞれ、物理ディスク１４３ａ（ＨＤＤ−Ａ）の実データブロック群１４３１の対応する実データブロック１４３２、１４３３、１４３４を参照している。なお、仮想データブロック群１４１１の仮想データブロック１４１５は、データが書き込まれていないため、実データブロックは割り当てられていない。実データブロック１４３２、１４３３、１４３４には、それぞれファイルの実データ（図では、‘Ａ’、‘Ｂ’、‘Ｃ’と記載）が格納されている。この時点では、ＶＶＯＬのスナップショットは作成されていないため、被参照ビットマップ１５０の各ビットはすべて‘０’となっている。
【０１４０】
ここで、ファイルシステム１３４が管理しているファイルのメタデータ２４０１、２４０２、２４０３及び仮想データブロック群１４１１は、例えば、物理ディスク１４３ａ（ＨＤＤ−Ａ）又は別の物理ディスクに割り当てられた実データブロックに格納される。なお、ファイルのメタデータの格納位置は、ホストコンピュータ１３のファイルシステム１３４の実装に依存するものであり、仮想データブロック群１４１１の格納位置はディスクアレイ装置１４のＶＶＯＬ  Ｉ／Ｏ処理プログラム１４８の実装に依存するものであり、メタデータや仮想データブロック群は、実装に応じて任意の物理ディスクに格納することができる。
【０１４１】
（時刻Ｔ１：スナップショット作成）
ＶＶＯＬ  Ｉ／Ｏ処理プログラム１４８を実行するプロセッサ１４Ｐは、スナップショット作成の指示が発生した場合には、図２４に示すように、ＶＶＯＬ１４１ａの仮想データブロック群１４１１をコピーし、ＳＶＯＬ１４９ａを作成する。これにより、ＳＶＯＬ１４９ａには、仮想データブロック群（スナップショット用参照データ）１４９１が存在する。ここで、ＳＶＯＬ１４９ａにファイルシステム１３４をマウントし参照すると、ＶＶＯＬ１４１ａと同一のファイルａ、ｂ、ｃが存在する。ファイルシステム１３４が管理している各ファイルａ、ｂ、ｃのメタデータ２４０４、２４０５、２４０６は、それぞれＳＶＯＬ１４９ａの仮想データブロック１４９２、１４９３、１４９４を参照している。各仮想データブロック１４９２、１４９３、１４９４は、ＶＶＯＬ１４１ａの仮想データブロック１４１２、１４１３、１４１４と同一の実データブロック１４３２、１４３３、１４３４を参照している。
【０１４２】
このように、ＶＶＯＬ１４１ａの仮想データブロック１４１２、１４１３、１４１４の実データブロック１４３２、１４３３、１４３４は、ＳＶＯＬ１４９ａの仮想データブロック１４９２、１４９３、１４９４に参照されるため、プロセッサ１４Ｐは、被参照ビットマップ１５０の参照されている各ブロックに該当するビット１５０１、１５０２、１５０３に‘１’をセットする。なお、実データが書き込まれていない仮想データブロック１４１５に該当する被参照ビットマップ１５０のビット１５０４の値は、’０’のまま変更されない。
【０１４３】
（時刻Ｔ２：新規データ書込み時）
ＶＶＯＬ  Ｉ／Ｏ処理プログラム１４８を実行するプロセッサ１４Ｐは、図２５に示すように、ＶＶＯＬ１４１ａのファイルｃへの新規データ‘Ｃ´’の書き込み要求を受け付ける（時刻Ｔ２−１）と、旧データ‘Ｃ’を実データブロック１４３４から物理ディスク１４３ｂ（ＨＤＤ−Ｂ）に新たに割り当てられた実データブロック１４３６に退避する(時刻Ｔ２−２)。次に、プロセッサ１４Ｐは、ＳＶＯＬ１４９ａの仮想データブロック１４９４の参照先を、これまでの実データブロック１４３４からデータ‘Ｃ’の退避先の実データブロック１４３６に変更し（時刻Ｔ２−３）、被参照ビットマップ１５０の該当ビット１５０３の値を‘１’から‘０’に変更する。その後、プロセッサ１４Ｐは、ＶＶＯＬ１４１ａのデータブロック１４１４が参照しているデータブロック１４３４の内容を‘Ｃ´’に更新する。ここで、ＶＶＯＬ１４１ａのデータブロック１４１４は、被参照ビットマップ１５０の該当ビットマップ１５０３が‘０’であり、ＳＶＯＬ１４９ａの仮想ブロックデータにより参照されていないので、ＶＶＯＬ１４１ａ上で不要になった場合には、スナップショットに影響を与えることなく回収することができる。
【０１４４】
（時刻Ｔ３：ファイル削除時）
ホストコンピュータ１３のＦＳＩ／Ｏ処理プログラム１３４を実行するプロセッサ１３Ｐがファイルａ、ｃの削除を受け付けると、ファイルａ、ｃのメタデータ２４０１、２４０３が削除される。この場合において、ファイルのデータを格納している仮想データブロック１４１２、１４１４と、それぞれの参照先である実データブロック１４３２、１４３４は残っている。これらの仮想データブロック１４１２、１４１４は、ホストコンピュータ１３のファイルシステム１３４からみると不要領域（無効領域）となる。ここで、この仮想データブロック１４１２、１４１４に該当する被参照ビットマップ１５０のビットの値はそれぞれ‘１’、‘０’である。
【０１４５】
（時刻Ｔ４：ＶＶＯＬ上の無効領域を回収）
ホストコンピュータ１３においてプロセッサ１３Ｐにより回収制御プログラム１３１が起動されて実行されると、ディスクアレイ装置１４に対して、ＶＶＯＬ１４１ａ上の不要領域１４１２、１４１４の回収要求が送られる。回収実行プログラム１５１を実行するディスクアレイ装置１４のプロセッサ１４Ｐは、回収要求を受け取ると、回収対象ビットマップ欄１３１０７の内容を回収対象ビットマップ１４２１（図２６では図示せず）にコピーする。そして回収対象ビットマップの値と被参照ビットマップ１５０の値に基づいて、不要領域の回収を行う。本実施形態では、プロセッサ１４Ｐは、不要領域１４１２については、被参照ビットマップの該当するビットの値が’１’であり、対応する実データブロック１４３２がＳＶＯＬ１４９ａの仮想データブロック１４９２から参照されていることを示しているために回収されない。一方、不要領域１４１４については、被参照ビットマップ１５０の該当するビットの値が’０’であり、参照している実データブロック２３４４がＳＶＯＬから参照されていないことを示しているため回収され、結果として、実データブロック１４３４が回収されることとなる。
【０１４６】
このようにして、スナップショットを破壊せずに、運用ファイルシステムで使用していた不要領域を回収することができる。
【０１４７】
次に、回収実行プログラム１５１とＶＶＯＬ  Ｉ／Ｏ処理プログラム１４８とをプロセッサ１４Ｐが実行することにより実現される各種処理を説明する。
（回収実行処理）
図２７は、本発明の第２実施形態に係る回収実行処理を示すフローチャートである。
【０１４８】
回収実行処理は、回収実行プログラム１５１をプロセッサ１４Ｐが実行することにより実現される。なお、図２１の第１実施形態における回収実行処理と同様なステップについては、同一符号を付している。
【０１４９】
ディスクアレイ装置１４がホストコンピュータ１３から物理ディスク回収要求１３１００を受信すると、プロセッサ１４Ｐは、物理ディスク回収要求１３１００の内容を取り出す（ステップＳ２１０１）。次いで、プロセッサ１４Ｐは、物理ディスク回収要求１３１００中の回収対象ビットマップ１３１０７を次式に示すように被参照ビットマップ１５０を用いて更新する（ステップＳ２７０１）。すなわち、プロセッサ１４Ｐは、回収対象ビットマップ１３１０７と、被参照ビットマップ１５０を反転させたもの（ＮＯＴ（被参照ビットマップ１５０））との論理積（アンド）をとったものに回収対象ビットマップを更新する。ここで、更新された回収対象ビットマップには、回収対象の実データブロックであって、ＳＶＯＬから参照されていない実データブロックに対応するビットに’１’が立っている。
【０１５０】
次いで、プロセッサ１４Ｐは、回収対象ビットマップに基づいて、ディスク領域の回収を実行する。本実施形態では、回収対象ビットマップの中で“１”が立っているビットに対応する全てのブロックが回収されることとなる。ここで、仮想ボリュームの各ブロックと、当該ブロックに割り当てられている物理ディスクの物理領域との対応関係を示す仮想ブロックデータ群１４１１が管理されており、当該データ群において、回収対象ブロックに割り当てられた物理ディスクの物理領域への参照情報を削除することにより、物理ディスクの物理領域を回収することができる。これによって、ＳＶＯＬから参照されている実データブロックを回収してしまうというＳＶＯＬを破壊する事態を適切に防止することができる。
【０１５１】
次いで、プロセッサ１４Ｐは、回収が完了したブロックに関しては、回収対象ビットマップのブロックに対応するビットを”０”クリアするとともに、各ブロックに対応するビットを有する回収受付マップにおける対応するビットに”１”を立てる（ステップＳ２１０２）。次いで、プロセッサ１４Ｐは、物理ディスク回収要求の戻り値データ１３１１０に回収受付マップを格納してホストコンピュータ１３に返送し、処理を終了する。
（ＶＶＯＬ  Ｉ／Ｏ処理）
図２８は、本発明の第２実施形態に係るＶＶＯＬ  Ｉ／Ｏ処理を示すフローチャートである。同図は、回収実行処理が実行されている最中に、ＶＶＯＬ  Ｉ／Ｏ処理のＷｒｉｔｅ処理が発生した場合におけるフローチャートである。なお、図２２の第１実施形態におけるＶＶＯＬ  Ｉ／Ｏ処理と同様なステップについては、同一符号を付している。
【０１５２】
ＶＶＯＬ  Ｉ／Ｏ処理は、ＶＶＯＬ  Ｉ／Ｏ処理プログラム１４８をプロセッサ１４Ｐが実行することにより実現される。
【０１５３】
回収実行処理が実行されている際に、ディスクアレイ装置１４が、ＶＶＯＬへのＷｒｉｔｅ要求をホストコンピュータ１３から受信すると、プロセッサ１４Ｐは、回収対象ビットマップ中のＷｒｉｔｅ対象のブロックに該当するビットを参照し（ステップＳ２２０１）、該当ビットが“１”であるか否かを評価する（ステップＳ２２０２）。この結果、該当ビットが”１”であると評価した場合（ステップＳ２２０２：Ｙｅｓ）には、プロセッサ１４Ｐは、回収対象ビットマップの該当ビットを“０”クリアし（ステップＳ２２０３）、次のステップＳ２８０１に進む。一方、該当ビットが“０”であると評価した場合（ステップＳ２２０２：Ｎｏ）には、プロセッサ１４Ｐは、該当ビットの操作は行わずに、ステップＳ２８０１に進む。
【０１５４】
次に、プロセッサ１４Ｐは、被参照ビットマップ１５０の該当ビットを参照し（ステップＳ２８０１）、当該ビットが”１”であるか否かを評価する（ステップＳ２８０２）。この結果、該当ビットが“１”であると評価した場合には、プロセッサ１４Ｐは、該当ブロックに対応する実データブロックを別のディスクの物理領域に退避し、スナップショット（ＳＶＯＬ）の仮想データブロック１４９１のポインタを更新する（ステップＳ２８０３）。次いで、プロセッサ１４Ｐは、被参照ビットマップ１５０の該当ビットを“０”にクリア（ステップＳ２８０４）し、該当するファイルの実データを物理領域に格納するＷｒｉｔｅ処理を実行し（ステップＳ２２０４）、処理を終了する。一方、該当ビットが“０”であると評価した場合（ステップＳ２８０２：Ｎｏ）には、ステップＳ２８０３、２８０４を行わずに、該当するファイルの実データを物理領域に格納するＷｒｉｔｅ処理を実行し（ステップＳ２２０４）、処理を終了する。
【０１５５】
この処理によって、回収対象であったブロックに対して書込みが行われる場合にあっては、回収対象ビットマップが”０”となるので、回収実行処理において回収されることがない。このため、回収処理と並行してＷｒｉｔｅ処理を実行することができ、処理効率の低下を防止することができる。
【０１５６】
また、上記した処理によると、ＳＶＯＬの仮想ブロックデータにより参照されている実データブロックのデータに書き込みが発生した際に、適切に書き込み前の実データを退避でき、当該実データブロックに対するＳＶＯＬの仮想ブロックデータによる参照の状態を適切に被参照ビットマップのビットに反映させることができる。
【０１５７】
上記した第２実施形態によると、スナップショットを破壊せずに、運用ファイルシステムで使用していた無効領域を適切に回収することができる。
【０１５８】
（第３実施形態）
次に、本発明の第３実施形態に係るコンピュータシステムについて説明する。
【０１５９】
図２９は、本発明の第３実施形態に係るコンピュータシステムの全体構成を示すブロック図である。なお、同図においては、第１実施形態に係るコンピュータシステムと同様な要素には、同一の符号を付している。
【０１６０】
第３実施形態に係るコンピュータシステムは、前述の第１実施形態に係るホストコンピュータ１３の機能を、ホストコンピュータ１３上で動作する仮想ホストコンピュータ（一般的には、仮想ＯＳ（Operating system）といい、以下、仮想ホストともいう。）１３ａにより実現し、ホストコンピュータ１３においては、複数の仮想ホストコンピュータ１３ａが動作可能となっている。なお、第３実施形態においては、ホストコンピュータ１３を物理ホストコンピュータ（物理コンピュータ）１３として説明する。なお、ここでは、第１実施形態との差異を中心に説明する。
【０１６１】
管理コンピュータ１２のメモリ１２Ｍは、プロセッサ１２Ｐにより実行される物理ディスクの回収を管理するための回収管理プログラム１５２と、仮想ホストコンピュータ１３ａを他の物理ホストコンピュータ１３に再配置するための仮想ホスト再配置プログラム１５３と、ディスク回収のシステム設定を格納する回収設定テーブル１５４と、物理ディスクの回収に必要なテンポラリの情報を格納する回収管理テーブル１２２と、物理ホストコンピュータ１３のＣＰＵ使用率（第１使用率）、仮想ホスト数等を格納する物理ホスト管理テーブル１５５と、仮想ホストコンピュータ１３aの負荷や無効領域の量を格納する仮想ホスト管理テーブル１５６とを格納する。
【０１６２】
（回収設定テーブル１５４）
図３０は、本発明の第３実施形態に係る回収設定テーブルの一例を示す図である。なお、図２に示す第１実施形態に係る回収設定テーブル１２１と同様な部分は、同一符号を付している。
【０１６３】
回収設定テーブル１５４は、第１実施形態に係る回収設定テーブル１２１において、最大ＣＰＵ使用率欄１２１４に格納する最大使用率について異なる目的のために用いるようにし、移動許可ＣＰＵ使用率欄１５４１を新たに備えるようにしたものである。
【０１６４】
最大ＣＰＵ使用率欄１２１４は、仮想ホストコンピュータ１３ａが利用している物理領域を回収する際に、仮想ホストコンピュータを他の物理ホストコンピュータ１３に再配置させる際の閾値としてＣＰＵ（プロセッサ）の使用率（最大ＣＰＵ使用率）を格納する。物理ホストコンピュータ１３のＣＰＵ使用率が最大ＣＰＵ使用率以上である場合に、当該物理ホストコンピュータ１３の仮想ホストコンピュータ１３ａが再配置されることとなる。
【０１６５】
移動許可ＣＰＵ使用率欄１５４１は、他の物理ホストコンピュータ１３に再配置を許可する仮想ホストコンピュータ１３ａの閾値となるＣＰＵの使用率（移動許可ＣＰＵ使用率）を格納する。仮想ホストコンピュータ１３ａによるＣＰＵの使用率が、移動許可ＣＰＵ使用率以下である場合に、当該仮想ホストコンピュータ１３ａが再配置されることとなる。
【０１６６】
（物理ホスト管理テーブル１５５）
図３１は、本発明の第３実施形態に係る物理ホスト管理テーブルの一例を示す図である。
【０１６７】
物理ホスト管理テーブル１５５は、ＩＤ欄１５５１と、ホスト名欄１５５２と、調査時仮想ホスト数欄１５５３と、調査時ＣＰＵ使用率欄１５５４と、仮想ホスト数増減欄１５５５と、移動後仮想ホスト数欄１５５６と、移動後ＣＰＵ使用率欄１５５７とを有する。
【０１６８】
ＩＤ欄１５５１は、物理ホストコンピュータ１３の識別番号（ＩＤ）を格納する。ホスト名欄１５５２は、物理ホストコンピュータ１３の名称（ホスト名）を格納する。調査時仮想ホスト数欄１５５３は、調査時点における仮想ホストコンピュータ数を格納する。調査時ＣＰＵ使用率欄１５５４は、調査時における物理ホストコンピュータ１３のプロセッサの使用率（第１使用率）を格納する。仮想ホスト数増減欄１５５５は、仮想ホストコンピュータ数の増減を格納する。移動後仮想ホスト数欄１５５６は、移動後の仮想ホストコンピュータ数を格納する。移動後ＣＰＵ使用率欄１５５７は、移動後の物理ホストコンピュータ１３のプロセッサの使用率を格納する。
【０１６９】
（仮想ホスト管理テーブル１５６）
図３２は、本発明の第３実施形態に係る仮想ホスト管理テーブルの一例を示す図である。なお、図６に示す第１実施形態に係るホスト管理テーブル１２３と同様な部分は、同一符号を付している。
【０１７０】
仮想ホスト管理テーブル１５６は、第１実施形態に係るホスト管理テーブル１２３において、ホストコンピュータ１３に代えて仮想ホストコンピュータ１３ａに関するデータを格納するようにするととともに、新たに物理ホスト名欄１５６０１と、移動先物理ホスト欄１５６０２とを更に備えるようにしたものである。
【０１７１】
ホストＩＤ欄１２３００は、仮想ホストコンピュータ１３ａのＩＤを格納する。ホスト名欄１２３０１は、仮想ホストコンピュータ１３ａの名称を格納する。物理ホスト名欄１５６０１は、物理ホストコンピュータ１３のＩＤを格納する。移動先物理ホスト欄１５６０２は、移動先とする物理ホストコンピュータ１３の名称を格納する。
【０１７２】
（物理ホストコンピュータ１３）
図２９の説明に戻り、ホストコンピュータ１３は、各種プログラムや各種テーブル等を記憶するメモリ１３Ｍと、メモリ１３Ｍのプログラムに従って各種処理を実行するプロセッサ（ＣＰＵ）１３Ｐとを有する。
【０１７３】
メモリ１３Ｍは、物理ホスト調査プログラム１５７と、クラスタ管理プログラム１５８と、仮想ホストコンピュータ１３ａの動作に必要なプログラム等を格納する。なお、仮想ホストコンピュータ１３ａに必要なプログラム等は、第１実施形態におけるホストコンピュータ１３に格納されていているプログラム等と同様である。本実施形態では、物理ホストコンピュータ１３は、複数の仮想ホストコンピュータ１３ａを構築することができるようになっている。
【０１７４】
物理ホスト調査プログラム１５７は、プロセッサ１３Ｐにより実行されることにより、物理ホストコンピュータ１３のプロセッサの使用率を調査する。例えば、Ｌｉｎｕｘ（登録商標）ＯＳのｓａｒコマンドを利用することで実現することができる。
【０１７５】
クラスタ管理プログラム１５８は、プロセッサ１３Ｐにより実行されて、物理ホストコンピュータ１３上で稼動している仮想ホストコンピュータ１３ａを管理する処理を実現でき、例えば、仮想ホストコンピュータ１３ａを他の物理ホストコンピュータ１３に移動させる処理（フェールオーバ）を実現できる。
【０１７６】
次に、第３実施形態に係るコンピュータシステムによる処理について説明する。
【０１７７】
（回収管理処理）
図３３は、本発明の第３実施形態に係る回収管理処理を示すフローチャートである。なお、図１２に示す第１実施形態に係る回収管理処理と同様な部分には、同一の符号を付している。
【０１７８】
回収管理処理は、管理コンピュータ１２において、プロセッサ１２Ｐが回収管理プログラム１５２を実行することにより実行される。
【０１７９】
プロセッサ１２Ｐは、まず、回収管理に関わるテーブルを初期化するプログラム初期化処理を実行する（ステップＳ３３０１）。プログラム初期化処理では、回収設定テーブル１５４を読み出すとともに、回収管理テーブル１２２、物理ホスト管理テーブル１５５、及び仮想ホスト管理テーブル１５６を初期化する。
【０１８０】
次いで、プロセッサ１２Ｐは、ディスクプールのディスク領域の残量を監視するディスクプール残量監視処理を実行する（ステップＳ１２０２）。
【０１８１】
そして、プロセッサ１２Ｐは、ディスクプールの残量が回収開始ディスク残量１２２２よりも少なくなった場合に、次の物理ホスト情報収集処理（ステップＳ３３０２）に処理を移す。これにより、以降においてディスクプール１４３の物理ディスクの回収が開始されることとなる。
【０１８２】
プロセッサ１２Ｐは、物理ホストコンピュータ１３のＣＰＵ使用率、仮想ホストコンピュータ数等の情報を収集する物理ホスト情報収集処理を実行する（ステップＳ３３０２）。物理ホスト情報収集処理では、プロセッサ１２Ｐは、物理ホスト管理テーブル１５５に登録されている物理ホストコンピュータ１３の物理ホスト調査プログラム１５７を実行するプロセッサ１３Ｐに対して、物理ホスト情報調査要求を発行し、その戻り値であるＣＰＵ使用率、仮想ホスト数を物理ホスト管理テーブル１５５に登録する。プロセッサ１２Ｐは、物理ホスト管理テーブル１５５に登録されている全物理ホストコンピュータ１３に対して調査を終えると次の仮想ホスト情報収集処理（Ｓ３３０３）に処理を移す。
【０１８３】
プロセッサ１２Ｐは、仮想ホストコンピュータ１３ａの負荷情報や無効領域の量などの情報を収集する仮想ホスト情報収集処理を実行する（ステップＳ３３０３）。仮想ホスト情報収集処理では、プロセッサ１２Ｐは、仮想ホスト管理テーブル１５６に登録されている仮想ホストコンピュータ１３ａのホスト調査プログラム１３０を実行するプロセッサ１３Ｐに対して、ホスト情報調査要求１２５１を発行し、その戻り値であるＣＰＵ使用率（第２使用率）、合計のファイルシステム数、合計の無効領域量、回収対象のファイルシステム数、回収対象の無効領域量を仮想ホスト管理テーブル１５６に登録する。プロセッサ１２Ｐは、仮想ホスト管理テーブル１５６に登録されている全仮想ホストコンピュータ１３ａに対して調査を終えると次のディスク領域回収処理（Ｓ３３０４）に処理を移す。
【０１８４】
プロセッサ１２Ｐは、ディスクアレイ装置１４のディスク領域を回収するディスク領域回収制御処理を実行する（ステップＳ３３０４）。ディスク領域回収制御処理では、プロセッサ１２Ｐは、仮想ホスト管理テーブル１５６に登録されている各仮想ホストコンピュータ１３ａの調査結果を比較し、各仮想ホストコンピュータ１３ａに要求するディスク回収量と回収順序とを決定する。その後、プロセッサ１２Ｐは、決定した回収順序に従い、各仮想ホストコンピュータ１３ａの回収制御プログラム１３１を実行するプロセッサ１３Ｐに対して、無効領域回収要求１２７０を発行し、物理領域を回収させる。プロセッサ１２Ｐは、回収条件を満たした場合、又は、対象となる全仮想ホストコンピュータ１３の無効領域を回収した場合には、ディスクプール残量監視処理（Ｓ１２０２）に処理を戻す。
【０１８５】
（ディスク領域回収制御処理３０００）
図３４は、本発明の第３実施形態に係るディスク領域回収制御処理を示すフローチャートである。なお、第３実施形態に係るディスク領域回収制御処理においては、第１実施形態に係るディスク領域回収制御処理においてホスト管理テーブル１２３に代えて仮想ホスト管理テーブル１５６を用いて処理を行うようにした点と、新たにステップＳ３４０１を実行するようにした点が異なっている。なお、略同様なステップにおいては、第１実施形態と同じ符号を付している。
【０１８６】
第３実施形態に係るディスク領域回収制御処理おいては、ステップＳ１５０５又はステップＳ１５０９において、仮想ホスト管理テーブル１５６の回収順序欄１２３０４に採番した順序を登録した後において、プロセッサ１２Ｐは、仮想ホスト再配置処理を実行する（ステップＳ３４０１）。
【０１８７】
仮想ホスト再配置処理では、仮想ホスト再配置プログラム１５３を実行するプロセッサ１２Ｐが回収順序の若い仮想ホストコンピュータ１３ａから順にＣＰＵ使用率と稼動元物理ホストコンピュータ１３のＣＰＵ使用率を走査し、必要に応じて別の物理ホストコンピュータ１３に再配置させる。
【０１８８】
仮想ホスト再配置処理を実行した後、プロセッサ１２Ｐは、ステップＳ１５０４及び１５０５、又はステップＳ１５０８及び１５０９において決定した回収モード、回収順序に従い、仮想ホストコンピュータ１３ａに対して無効領域回収要求１２７０を発行し、戻り値データ１２７１０を受信して仮想ホスト管理テーブル１５６に登録し（ステップＳ１５１０）、処理を終了する。
【０１８９】
（仮想ホスト再配置処理）
図３５は、本発明の第３実施形態に係る仮想ホスト再配置処理を示すフローチャートである。
【０１９０】
仮想ホスト再配置処理は、仮想ホスト再配置プログラム１５３をプロセッサ１２Ｐが実行することにより実現される。
【０１９１】
プロセッサ１２Ｐは、物理ホスト管理テーブル１５５に登録されている物理ホストコンピュータ１３の中から以降のステップを未実施であって最もＩＤの小さいものを移動元物理ホストコンピュータとして選択する（ステップＳ３５０１）。次いで、プロセッサ１２Ｐは、移動元物理ホストコンピュータ１３のＣＰＵ使用率を物理ホスト管理テーブル１５５から取得し（ステップＳ３５０２）、当該ＣＰＵ使用率が回収設定テーブル１５４の最大ＣＰＵ使用率以上か否かを評価し（ステップＳ３５０３）、最大ＣＰＵ使用率未満であると評価した場合には、回収処理が当該物理ホストコンピュータ１３における処理の効率を低下させる影響がほとんどないと考えられるので、ステップＳ３５１０に進む。
【０１９２】
一方、ＣＰＵ使用率が最大ＣＰＵ使用率以上であると評価した場合には、プロセッサ１２Ｐは、仮想ホスト管理テーブル１５６に登録されている仮想ホストコンピュータ１３ａの中から、移動元物理ホストコンピュータ１３で稼働中であり、再配置未実施であり、回収順序が最も小さいものを対象仮想ホストコンピュータ１３ａとして選択する（ステップＳ３５０４）。
【０１９３】
次いで、プロセッサ１２Ｐは、仮想ホスト管理テーブル１５６から対象仮想ホストコンピュータ１３ａのＣＰＵ使用率を取得し（ステップＳ３５０５）、取得したＣＰＵ使用率が回収設定テーブル１５４の移動許可ＣＰＵ使用率以下か否かを評価する（ステップＳ３５０６）。
【０１９４】
ＣＰＵ使用率が移動許可使用率以下であると評価した場合（ステップＳ３５０６：Ｙｅｓ）には、プロセッサ１２Ｐは、物理ホスト管理テーブル１５５に登録されている物理ホストコンピュータ１３の中から、最もＣＰＵ使用率が小さいものを移動先物理ホストコンピュータ１３として選択する（ステップＳ３５０７）。次いで、プロセッサ１２Ｐは、移動元物理ホストコンピュータ１３のクラスタ管理プログラム１５８を実行するプロセッサ１３Ｐに、対象仮想ホストコンピュータ１３ａの移動先物理ホストコンピュータ１３への移動（再配置）を依頼する。これにより、移動元物理ホストコンピュータ１３のプロセッサ１３Ｐは、対象仮想ホストコンピュータ１３ａを、移動先物理ホストコンピュータ１３に移動させる処理を行い、実行結果を管理コンピュータ１２に返信する。管理コンピュータ１２のプロセッサ１２Ｐは、移動元物理ホストコンピュータ１３のプロセッサ１３Ｐから仮想ホストコンピュータ１３ａの移動処理の実行結果を受信（ステップＳ３５０８）した後、移動元物理ホストコンピュータ１３のＣＰＵ使用率を調査し、物理ホスト管理テーブル１５５の該当欄を更新し（ステップＳ３５０９）、ステップＳ３５１０に進む。
【０１９５】
一方、対象仮想ホストコンピュータ１３ａのＣＰＵ使用率が移動許可使用率より大きいと判定した場合（ステップＳ３５０６：Ｎｏ）には、当該対象仮想ホストコンピュータ１３ａの移動をせずにステップＳ３５１０に進む。
【０１９６】
ステップＳ３５１０では、プロセッサ１２Ｐは、移動元物理ホストコンピュータ１３に稼働中の全仮想ホストコンピュータ１３ａを対象としたか否かを判定し、全仮想ホストコンピュータ１３ａを対象にしている場合には、次のステップＳ３５１１に進む一方、対象にしていない場合には、ステップＳ３５０２に進む。
【０１９７】
ステップＳ３５１１では、プロセッサ１２Ｐは、全物理ホストコンピュータ１３を対象としたか否かを判定し、全物理ホストコンピュータ１３を対象にしている場合には、処理を終了する一方、対象にしていない場合には、ステップＳ３５０１に進む。
【０１９８】
上記処理によって、ＣＰＵの使用率が高い物理ホストコンピュータ１３の仮想ホストコンピュータ１３ａをＣＰＵの使用率の低い物理ホストコンピュータ１３に適切に移動させることができ、物理領域の回収時における他の処理への影響を効果的に抑えることができる。
【０１９９】
また、上記処理では、対象仮想ホストコンピュータ１３ａのＣＰＵ使用率が移動許可使用率以下のものを移動するようにし、それ以外について移動させないようにしている。これは、以下のような理由によるものである。
【０２００】
仮想ホストコンピュータ１３ａを他の物理ホストコンピュータ１３へ移動させるには、（１）仮想ホストコンピュータ１３ａのサービスの停止（Ｉ／Ｏの停止）、（２）ダーティ・データの物理ディスクへの書き込み、（３）キャッシュデータの廃棄、（４）サービスの再開（Ｉ／Ｏの再開）等の処理を行う必要がある。
【０２０１】
ここで、比較的高負荷な仮想ホストコンピュータ１３ａを移動させることを考慮すると、比較的高負荷な仮想ホストコンピュータ１３ａにおいては、物理ディスクに反映していないデータ（ダーティ・データ）がメモリ１３Ｍ上に大量にキャッシュされるようになる。このため、移動させるさせる際には、このダーティデータをディスクアレイ装置１４に反映するためにディスクアレイ装置１４へ急峻なＩ／Ｏ増加が発生してしまう。また、ダーティ・データの書込み量が多いために、ダーティデータの書込み時間が増大し、結果としてサービス停止時間も増大する。さらに、大量のキャッシュが破棄されることとなり、仮想ホストコンピュータ１３ａの移動後においては、移動前より性能が低下してしまう。
【０２０２】
このように、比較的高負荷な仮想ホストコンピュータ１３ａを移動する際にデメリットが発生する。そこで、本実施形態では、移動許可使用率以下の仮想ホストコンピュータ１３ａを移動するようにしてこのようなデメリットの発生を極力防止するようにしている。
【０２０３】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【０２０４】
例えば、上記実施形態において、管理コンピュータ１２において、プロセッサ１２Ｐが各ホストコンピュータ１３からＣＰＵの使用率を収集するようにし、当該ＣＰＵの使用率に基づいて回収順序を決定するようにしてもよい。この場合、例えば、ＣＰＵの使用率が所定以上のホストコンピュータ１３を物理領域の回収対象から外すようにしてもよい。
【０２０５】
また、管理コンピュータ１２のプロセッサ１２Ｐが、各ホストコンピュータ１３のメインメモリの残量（空き容量）のデータを収集するようにし、メインメモリの残量のデータに基づいて回収順序を決定するようにしてもよい。この場合、例えば、メインメモリの残量が所定以下の場合に物理領域の回収対象から外すようにしてもよい。
【０２０６】
また、上記実施形態において、回収対象から外すこととするホストコンピュータ１３に対して、回収対象から外すことを指定する属性情報を記憶させるようにしておき、管理コンピュータ１２は、当該属性情報に基づいて該当するホストコンピュータ１３を回収対象から外すようにしてもよい。
【０２０７】
また、ホストコンピュータ１３において、物理領域の回収対象から外すことを指定する属性情報をファイルシステムと対応付けて記憶して管理できるようにしておき、ホストコンピュータ１３は、当該属性情報に基づいて対応するファイルシステムを回収対象から外すようにしてもよい。
【図面の簡単な説明】
【０２０８】
【図１】本発明の第１実施形態に係るコンピュータシステムの全体構成を示すブロック図である。
【図２】本発明の第１実施形態に係る回収設定テーブルの一例を示す図である。
【図３】本発明の第１実施形態に係る回収管理テーブルの一例を示す図である。
【図４】本発明の第１実施形態に係るビットマップ、カウンタ群の構成を示すブロック図である。
【図５】本発明の第１実施形態に係るＦＳマップ及びＦＳ書き込み済みマップを説明する図である。
【図６】本発明の第１実施形態に係るホスト管理テーブルの一例を示す図である。
【図７】本発明の第１実施形態に係るＦＳ管理テーブルの一例を示す図である。
【図８】本発明の第１実施形態に係るディスクプール残量調査要求のフォーマットの一例を示す図である。
【図９】本発明の第１実施形態に係るホスト情報調査要求のフォーマットの一例を示す図である。
【図１０】本発明の第１実施形態に係る無効領域回収要求のフォーマットの一例を示す図である。
【図１１】本発明の第１実施形態に係る物理ディスク回収要求のフォーマットの一例を示す図である。
【図１２】本発明の第１実施形態に係る回収管理処理を示すフローチャートである。
【図１３】本発明の第１実施形態に係るディスクプール残量監視処理を示すフローチャートである。
【図１４】本発明の第１実施形態に係るホスト情報収集処理を示すフローチャートである。
【図１５】本発明の第１実施形態に係るディスク領域回収制御処理を示すフローチャートである。
【図１６】本発明の第１実施形態に係るホスト調査処理を示すフローチャートである。
【図１７】本発明の第１実施形態に係る回収制御処理を示すフローチャートである。
【図１８】本発明の第１実施形態に係るＷｒｉｔｅ／Ｃｒｅａｔｅ要求時処理を示すフローチャートである。
【図１９】本発明の第１実施形態に係るＲｅｍｏｖｅ要求時処理を示すフローチャートである。
【図２０】本発明の第１実施形態に係るプール調査処理を示すフローチャートである。
【図２１】本発明の第１実施形態に係る回収実行処理を示すフローチャートである。
【図２２】本発明の第１実施形態に係るＶＶＯＬ  Ｉ／Ｏ処理を示すフローチャートである。
【図２３】本発明の第２実施形態に係るコンピュータシステムの全体構成を示すブロック図である。
【図２４】本発明の第２実施形態に係るスナップショット運用時の回収処理を説明する第１の図である。
【図２５】本発明の第２実施形態に係るスナップショット運用時の回収処理を説明する第２の図である。
【図２６】本発明の第２実施形態に係るスナップショット運用時の回収処理を説明する第３の図である。
【図２７】本発明の第２実施形態に係る回収実行処理を示すフローチャートである。
【図２８】本発明の第２実施形態に係るＶＶＯＬ  Ｉ／Ｏ処理を示すフローチャートである。
【図２９】本発明の第３実施形態に係るコンピュータシステムの全体構成を示すブロック図である。
【図３０】本発明の第３実施形態に係る回収設定テーブルの一例を示す図である。
【図３１】本発明の第３実施形態に係る物理ホスト管理テーブルの一例を示す図である。
【図３２】本発明の第３実施形態に係る仮想ホスト管理テーブルの一例を示す図である。
【図３３】本発明の第３実施形態に係る回収管理処理を示すフローチャートである。
【図３４】本発明の第３実施形態に係るディスク領域回収制御処理を示すフローチャートである。
【図３５】本発明の第３実施形態に係る仮想ホスト再配置処理を示すフローチャートである。
【符号の説明】
【０２０９】
１０，１５  ネットワーク、１１  クライアントコンピュータ、１２  管理コンピュータ、１２Ｐ  プロセッサ、１２Ｍ  メモリ、１３  ホストコンピュータ、１３Ｐ  プロセッサ、１３Ｍ  メモリ、１４  ディスクアレイ装置、１４Ｐ  プロセッサ、１４Ｍ  メモリ、１２０  回収管理プログラム、１２１  回収設定テーブル、１２２  回収管理テーブル、１２３  ホスト管理テーブル、１３０  ホスト調査プログラム、１３１  回収制御プログラム、１３２  ＦＳ管理テーブル、１３３  ホストカウンタ群、１３４  ファイルシステム、１３５  ＦＳ  Ｉ／Ｏ処理プログラム、１３６  ＦＳマップ群、１３７  ＦＳカウンタ群、１４０  ＶＶＯＬ  Ｉ／Ｏ処理プログラム、１４１  ＶＶＯＬ、１４２  ＶＶＯＬマップ群、１４３  ディスクプール、１４４  プール調査プログラム、１４５  回収実行プログラム、１４６  プールカウンタ群、１４７  負荷調査プログラム。
【図１】
0005221157.tif 000002
【図２】
0005221157.tif 000003
【図３】
0005221157.tif 000004
【図４】
0005221157.tif 000005
【図５】
0005221157.tif 000006
【図６】
0005221157.tif 000007
【図７】
0005221157.tif 000008
【図８】
0005221157.tif 000009
【図９】
0005221157.tif 000010
【図１０】
0005221157.tif 000011
【図１１】
0005221157.tif 000012
【図１２】
0005221157.tif 000013
【図１３】
0005221157.tif 000014
【図１４】
0005221157.tif 000015
【図１５】
0005221157.tif 000016
【図１６】
0005221157.tif 000017
【図１７】
0005221157.tif 000018
【図１８】
0005221157.tif 000019
【図１９】
0005221157.tif 000020
【図２０】
0005221157.tif 000021
【図２１】
0005221157.tif 000022
【図２２】
0005221157.tif 000023
【図２３】
0005221157.tif 000024
【図２４】
0005221157.tif 000025
【図２５】
0005221157.tif 000026
【図２６】
0005221157.tif 000027
【図２７】
0005221157.tif 000028
【図２８】
0005221157.tif 000029
【図２９】
0005221157.tif 000030
【図３０】
0005221157.tif 000031
【図３１】
0005221157.tif 000032
【図３２】
0005221157.tif 000033
【図３３】
0005221157.tif 000034
【図３４】
0005221157.tif 000035
【図３５】
0005221157.tif 000036