JP5221157B2 - コンピュータシステム及び物理ディスク回収方法 - Google Patents

コンピュータシステム及び物理ディスク回収方法 Download PDF

Info

Publication number
JP5221157B2
JP5221157B2 JP2008024531A JP2008024531A JP5221157B2 JP 5221157 B2 JP5221157 B2 JP 5221157B2 JP 2008024531 A JP2008024531 A JP 2008024531A JP 2008024531 A JP2008024531 A JP 2008024531A JP 5221157 B2 JP5221157 B2 JP 5221157B2
Authority
JP
Japan
Prior art keywords
area
physical
disk
computer
collection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008024531A
Other languages
English (en)
Other versions
JP2009187142A5 (ja
JP2009187142A (ja
Inventor
淳 江端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008024531A priority Critical patent/JP5221157B2/ja
Priority to US12/081,855 priority patent/US7925846B2/en
Publication of JP2009187142A publication Critical patent/JP2009187142A/ja
Publication of JP2009187142A5 publication Critical patent/JP2009187142A5/ja
Application granted granted Critical
Publication of JP5221157B2 publication Critical patent/JP5221157B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、仮想ストレージに物理ディスクの記憶領域(物理領域)を動的に割り当て可能な仮想ストレージ管理装置を備え、ファイルを仮想ストレージを用いて管理するファイルシステムを有するコンピュータシステム等に関し、特に、ファイルのデータの記憶に使用されていない物理領域を回収する技術に関する。
企業の情報システムにおけるTCO(Total Cost of Ownership)の削減、消費電力削減への要求が高まるなか、ストレージのオーバー・プロビジョニングが問題になっている。オーバープロビジョニングとは、システム導入前のキャパシティプランニングが失敗し、ホストコンピュータが実際に必要とするディスク容量よりも多くのディスクを搭載してしまうことである。このオーバー・プロビジョニングにより、情報システムへの無駄な設備投資によるTCOの増大、未使用のディスクの稼動による無駄な電力消費が発生する。
オーバー・プロビジョニングを回避するための技術として、近年、ディスクアレイ装置にシン・プロビジョニングが搭載され始めている。これは、ホストコンピュータに対して仮想的なディスクボリュームを提供し、データの書き込みに応じてバックエンドの物理ディスクのプールから物理ディスク領域を割り当てるディスク仮想化技術である。この技術により、複数のホストコンピュータが仮想ディスクボリュームを介して単一の物理ディスクプールを共有し、その格納データ量に応じて物理ディスク領域が割り当てられる。これにより、ホストコンピュータ毎に容量のマージンを与える必要がなくなるため、システム全体としての総ディスク容量が削減される。
だたし、通常のディスクアレイ装置によるシン・プロビジョニングには、システム稼働中の容量効率の面で課題が残っている。ディスクアレイ装置は、ホストコンピュータのファイルシステムの情報を持たないため、ホストコンピュータのファイルシステムでファイルが削除され、該当する物理ディスク領域が未使用になったことを知ることができない。ファイルシステム作成後に、一度、仮想ボリュームに割り当たられた物理ディスク領域は、ファイルシステムが削除されるまでは回収されない。これらの理由により、物理ディスクが枯渇しているシステムにおいて、あるファイルシステムのファイルを大量に削除したにも関わらず、未使用になった物理ディスクを別のファイルシステムが利用することができない。その結果、システム全体のディスク利用効率を低下させる。
このようなシン・プロビジョニングにおける容量効率の問題を解決する技術として、例えば、特許文献1に記載の技術が知られている。この技術は、ディスクアレイ装置が、ファイルシステムのジャーナルログを、該当する仮想ボリュームの特定領域(ジャーナル領域)から読み取り、その内容を解釈し、ファイルシステムによるファイルの削除の検出及び削除されたファイルのディスク領域の特定を行い、該当する物理ディスク領域を仮想ディスクボリュームから回収する。すなわち、該当する物理ディスク領域を割当可能な領域とする。
また、特許文献1には、システム管理者がデフラグ開始指示を行った際に、使用されなくなった実領域の割当をやめる技術も開示されている。
特開2005−11316号公報
しかしながら、上記したジャーナルログを用いた物理ディスク領域の回収技術では、ジャーナルの書込みを判断し、ジャーナルが書きこまれた場合に開放可能な実領域があるか否かを解析し、開放可能な実領域について開放を行うようにしている。このため、特定のファイルシステムにファイルの削除・更新が頻発すると、シン・プロビジョニング機能を稼動させていないシステムに比べて、大幅に性能が低下してしまう。これは、該当する仮想ディスクボリュームを管理するプロセッサが、通常のデータ読み出し処理及びデータ書き込み処理と並行して、シン・プロビジョニングのために必要な、ジャーナルログの解析、物理ディスク領域の割り当て、及び物理ディスク領域の開放を非常に高い頻度で行うからである。更に、このようにファイルの削除・更新が頻繁する状況では、仮想ディスクボリュームの或る領域から物理ディスクの記憶領域が回収された後、すぐに、同じ領域に物理ディスクの記憶領域が割り当てられることが行われることとなり、回収しなければ不必要であった物理ディスクの記憶領域の割り当てを再び実行しなければならなくなり、システムの入出力に関する処理効率を無駄に低下させてしまうおそれがある。
また、システム管理者がデフラグ開始指示を行った際に、使用されなくなった実領域の割り当てを開放する場合においては、割り当て可能な物理ディスク領域が十分であっても回収処理が実行されてしまい、システムの入出力に関する処理効率を低下させるおそれがある。また、ファイルが頻繁に削除・更新等が行われる場合には、上記と同様に、回収しなければ不必要であった物理ディスクの記憶領域の割り当てしなければならなくなり、システムの入出力に関する処理効率を無駄に低下させてしまうおそれもある。
そこで、本発明は、コンピュータシステムにおける入出力に関する処理効率を低下させることを適切に防止しつつ、仮想ボリュームに割り当てられた物理領域の回収を適切に行うことができる技術を提供することを目的とする。
上記目的達成のため、本発明の一態様に係るコンピュータシステムは、1以上の物理ディスクの物理領域によって構成されるディスクプールを有するディスクプール提供装置と、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理領域を動的に割り当てる仮想ボリューム管理装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理するファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記仮想ボリューム管理装置とを管理するための管理コンピュータとを備えるコンピュータシステムであって、前記管理コンピュータは、前記ディスクプールの物理領域残量との比較に用いる所定の閾値を記憶する閾値記憶部と、前記仮想ボリューム管理装置から前記ディスクプールにおける前記物理領域残量を取得する物理領域残量取得部と、前記仮想ボリュームにおける前記物理領域が割り当てられているが前記ファイルが格納されていない領域である無効領域の量を、複数の前記ホストコンピュータから取得する無効領域量取得部と、前記無効領域の量に基づいて前記無効領域に割り当てられている前記物理領域の回収を指示する前記ホストコンピュータを決定するホスト決定部と、前記ディスクプールの物理領域残量が前記閾値よりも少ないか否かを判定する物理領域残量判定部と、前記ディスクプールの物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信する回収要求部と、を備え、前記ホストコンピュータは、前記仮想ボリュームにおける前記無効領域の量を検出して、前記管理コンピュータに送信する無効領域量検出送信部と、前記管理コンピュータから前記回収要求を受信した場合に、前記仮想ボリュームにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記仮想ボリューム管理装置に送信する無効領域位置情報送信部と、を備え、前記仮想ボリューム管理装置は、前記管理コンピュータに前記ディスクプールの物理領域残量を送信する物理領域残量送信部と、前記無効領域位置情報を前記ホストコンピュータから受信し、前記無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収する回収部と、を備える。
本発明によれば、コンピュータシステムにおける入出力に関する処理効率を低下させることを適切に防止しつつ、物理ディスクの物理領域の回収を適切に行うことができる技術を提供することができる。
(第1実施形態:コンピュータシステム)
以下、本発明の第1実施形態を詳細に説明する。
(システムの全体構成)
図1は、本発明の第1実施形態に係るコンピュータシステムの全体構成を示すブロック図である。
コンピュータシステム1は、一般のユーザが利用し、さまざまなネットワーク上のサービスを利用するためのクライアントコンピュータ11と、管理コンピュータ12と、クライアントコンピュータ11にサービス(Webサーバサービス、ファイル共有サービスなど)を提供するホストコンピュータ(ホスト)13と、ホストコンピュータ13に仮想的なディスクボリューム141(仮想ボリューム:VVOL)を提供するディスクプール提供装置及び仮想ボリューム管理装置の一例としてのディスクアレイ装置14と、これらを接続するネットワーク10及び15より構成される。ネットワーク10は、LAN(Local Area Network)でも良いし、インターネットやWAN(Wide Area Network)でも良い。このネットワーク10の通信プロトコルは、一般的にIP(Internet Protocol)である。ネットワーク15は、SAN(Storage Area Network)である。このネットワーク15の通信プロトコルは、一般的には、FC(Fibre Channel)プロトコルであるが、ネットワーク10と同じ、IP(Internet Protocol)でも良い。例えば、ネットワーク10とネットワーク15とを同一ネットワークとして構成することも出来る。
(管理コンピュータ12)
管理コンピュータ12は、各種プログラムや各種テーブル等を記憶するメモリ12Mと、メモリ12Mのプログラムに従って各種処理を実行するプロセッサ12Pとを有する。
メモリ12Mは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)によって構成され、プロセッサ12Pにより実行される物理ディスクの物理記憶領域(物理領域)の回収を管理する回収管理プログラム120と、ディスクの物理領域の回収に関するシステム設定を格納する回収設定テーブル121と、物理ディスクの物理領域の回収に必要なテンポラリの情報を格納する回収管理テーブル122と、ホストコンピュータ13の負荷や無効領域の量を格納するホスト管理テーブル123とを格納する。
(回収設定テーブル121)
図2は、本発明の第1実施形態に係る回収設定テーブルの一例を示す図である。
回収設定テーブル121は、ディスク回収処理の設定を格納するためのテーブルであり、回収判定時刻欄1210と、、回収開始ディスク残率欄1211と、回収終了ディスク残率欄1212と、最小ディスク回収率欄1213と、最大CPU使用率欄1214と、最大I/O単位負荷欄1215とから構成される。
回収判定時刻欄1210は、回収処理を実行するか否かを判定する時刻(回収判定時刻:Tjdg)を格納する。回収開始ディスク残率欄1211は、回収処理を開始する基準となる、ディスクプールの全容量に対する残りディスク量の割合である回収開始ディスク残率(Rstart)を格納する。回収終了ディスク残率欄1212は、回収処理を終了する基準となる、ディスクプールの全容量に対する残りディスク量の割合である回収終了ディスク残率(Rend)を格納する。最小ディスク回収率欄1213は、ディスクプールの全容量に対する回収処理により回収する最小のディスク量の割合である最小ディスク回収率(Rcllct−min)を格納する。最大CPU使用率欄1214は、回収する対象となるホストコンピュータ13の基準としての最大のCPU使用率(最大CPU使用率:Rcpu−max)を格納する。最大I/O単位負荷欄1215は、回収対象として許可するファイルシステムの単位サイズあたりのI/O負荷の最大値を示す最大I/O単位負荷(Rio−unit−max)を格納する。Rio−unit−maxの単位は、I/O負荷の単位であるIOPS(I/O per second)をサイズを示すバイト(B:Bytes)で割ったものである。
例えば、図2に示されている例では、回収判定時刻は、14:00であり、回収開始ディスク残率は、20パーセントであり、回収終了ディスク残率は、30パーセントであり、最小ディスク回収率は10パーセントであり、最大CPU使用率は、80パーセントであり、最大I/O単位負荷は、0.05(K IOPS/GB)であることを示している。
(回収管理テーブル122)
図3は、本発明の第1実施形態に係る回収管理テーブルの一例を示す図である。
回収管理テーブル122は、ディスク回収処理を管理するための情報を格納するテーブルであり、ディスクプール総ディスク量欄1220と、ディスクプールディスク残量欄1221と、回収開始ディスク残量欄1222と、回収終了ディスク残量欄1223と、目標回収ディスク量欄1224と、最小回収ディスク量欄1225とから構成される。
ディスクプール総ディスク量欄1220は、ディスクプールの総ディスク量(Qall)を格納する。ディスクプールディスク残量欄1221は、ディスクプールのディスク残量であるディスクプールディスク残量(Qrest)を格納する。回収開始ディスク残量欄1223は、回収処理を開始する基準(閾値)となるディスクプールの残りディスク量である回収開始ディスク残量(Qstart)を格納する。回収終了ディスク残量欄1224は、回収処理を終了する基準となるディスクプールの残り残量である回収終了ディスク残量(Qend)を格納する。目標回収ディスク量欄1224は、回収する目標とするディスク量である目標回収ディスク量(Qcllct)を格納する。最小回収ディスク量欄1225は、回収する最小目標とするディスク量である最小回収ディスク量(Qcllct−min)を格納する。
例えば、図3に示されている例では、ディスクプール総ディスク量は、3000(GB)であり、ディスクプールディスク残量は、500(GB)であり、回収開始ディスク残量が600(GB)であり、回収終了ディスク残量が900(GB)であり、目標回収ディスク量が400(GB)であり、最小回収ディスク量が40(GB)であることを示している。
(ホスト管理テーブル123)
図6は、本発明の第1実施形態に係るホスト管理テーブルの一例を示す図である。
ホスト管理テーブル123は、ホストコンピュータ13のCPU使用率、FS数、無効領域などの情報を格納するテーブルである。ホスト管理テーブル123は、大きくわけて、ホストID欄12300と、ホスト名欄12301と、状態欄12302と、調査結果欄12303と、回収順序欄12304と、回収結果欄12305とに分かれる。
ホストID欄12300は、ホストコンピュータ13の識別番号(ID)を格納する。ホスト名欄12301は、ホストコンピュータ13の名称(ホスト名)を格納する。状態欄12302は、ホストコンピュータ13の状態を示す情報を格納する。
調査結果欄12303は、CPU使用率欄12306と、合計のFS数欄12307と、合計の無効領域量欄12308と、回収対象のFS数欄12309と、回収対象の無効領域量欄12310とから構成される。この調査結果欄12303のフォーマットは、後述するホスト情報調査要求の戻り値フォーマット12610と同様である。
CPU使用率欄12306は、対応するホストコンピュータ13におけるCPU使用率を格納する。合計のFS数欄12307は、対応するホストコンピュータ13に構成されたFS(ファイルシステム)の数を格納する。合計の無効領域量欄12308は、対応するホストコンピュータにおける無効領域量(例えば、ブロック数)の合計を格納する。回収対象のFS数欄12309は、回収対象とされたFSの数を格納する。回収対象の無効領域量欄12310は、回収対象の無効領域量の合計を格納する。
回収順序欄12304は、無効領域を回収する順序を格納する。回収結果欄12305は、回収済みFS数欄12311と、回収済み無効領域量欄12312と、回収済み誤差欄12313と、回収未のFS数欄12314と、回収未無効領域量欄12315と、回収失敗FS数欄12316と、回収失敗無効領域量欄12317とを有する。
回収済みFS数欄12311は、回収済みのFS数を格納する。回収済み無効領域量欄12312は、回収済みの無効領域量を格納する。回収済み誤差欄12313は、調査結果と回収結果との無効領域量の差を格納する。回収未のFS数欄12314は、未回収のFS数を格納する。回収未無効領域量欄12315は、未回収の無効領域量を格納する。回収失敗FS数欄12316は、回収が失敗したFS数を格納する。回収失敗無効領域量欄12317は、回収が失敗した無効領域量を格納する。
(ホストコンピュータ13)
ホストコンピュータ13は、各種プログラムや各種テーブル等を記憶するメモリ13Mと、メモリ13Mのプログラムに従って各種処理を実行するプロセッサ(CPU)13Pとを有する。
メモリ13Mは、例えば、RAM、ROMによって構成され、プロセッサ13Pにより実行され、ホストコンピュータ13内の負荷やファイルシステム(FS)を調査するためのホスト調査プログラム130と、プロセッサ13Pにより実行され、管理コンピュータ12からの回収要求を受けて物理ディスクの回収を制御するための回収制御プログラム131と、ファイルシステムを管理するための負荷情報などを格納するFS管理テーブル132と、ホストコンピュータの状態を格納するホストカウンタ群133と、ファイルシステム134のプログラム等を格納する。
ファイルシステム134は、ファイルシステムのI/O処理を実行するFS I/O処理プログラム135と、ファイルシステムの管理情報であるFSマップ群136と、ファイルシステムのI/O負荷や回収状況を計測するためのFSカウンタ群137とを用いてプロセッサ13Pが処理を行うことにより構成される。
図4は、本発明の第1実施形態に係るビットマップ、カウンタ群の構成を示すブロック図である。
ホストカウンタ群133は、ホストコンピュータ13のCPU使用率を計測するためのCPU負荷カウンタ1330と、物理ディスクの回収の状態を管理するための回収状態管理カウンタ1331とから構成される。
FSマップ群136は、FSマップ(ファイルシステムマップ情報)1360と、FS書込み済みマップ(書込み済みマップ情報)1361とにより構成される。
FSマップ1360は、ファイルシステムで有効なデータの位置(ブロック位置)を表したビットマップである。本実施形態では、ビットマップは、ファイルシステム上のデータ格納位置のそれぞれに対応するビットが所定の順番に並んで構成されし、有効なデータが格納されたビットは、”1”に設定される。
FS書込み済みマップ1361は、ファイルシステム上で一度書いたデータの位置(ブロック位置)を表したビットマップである。本実施形態では、ビットマップは、ファイルシステム上のデータ格納位置のそれぞれに対応するビットが所定の順番に並んで構成され、書込み済みである位置に対応するビットは、”1”に設定される。。
FSマップ1360とFS書込み済みマップ1361とにおける、同一のデータ位置に対応するそれぞれのビットの値によって、該当するブロックが、ディスクの物理領域未割り当てである未使用ブロックであるか、使用ブロックであるか、又は無効ブロックであるかを把握することができる。ここで、無効ブロックとは、過去にファイルシステムによってデータが書き込まれてたが、その後、該当するファイルのデータが削除されたために、データが無効となったブロックである。このブロックは、データが無効なのにも関わらず、物理領域が割り当てられた状態となっている。
図5は、本発明の第1実施形態に係るFSマップ及びFS書込み済みマップを説明する図である。
例えば、図5に示すように、同一のデータ位置に対応するビットが、FSマップ1360において”0”であり、FS書込み済みマップ1361において”0”である場合には、当該ビットに対応する位置のブロックは、未使用ブロックであることを示し、同一のデータ位置に対応するビットが、FSマップ1360において”1”であり、FS書込み済みマップ1361において”1”である場合には、使用ブロックであることを示し、同一のデータ位置に対応するビットが、FSマップ1360において”0”であり、FS書込み済みマップ1361において”1”である場合には、無効ブロックであることを示している。
図4の説明に戻り、FSカウンタ群137は、書込み要求の回数をカウントするための書込みI/Oカウンタ1370と、無効領域のサイズ(量)をカウントするための無効領域サイズカウンタ1371とから構成される。
(FS管理テーブル)
図7は、本発明の第1実施形態に係るFS管理テーブルの一例を示す図である。
FS管理テーブル132は、ファイルシステムの調査結果、回収結果を格納するためのテーブルであり、FSID欄13200と、FS名欄13201と、対応VVOL欄13202と、サイズ欄13203と、最大I/O負荷欄13204と、調査結果のI/O負荷欄13205と、調査結果の無効領域サイズ欄13206と、回収対象か否かを示す回収対象欄13207と、回収順序欄13208と、回収結果の成功欄13209と、失敗欄13210と、回避欄13211と、回収完了の実績欄13212と、誤差欄13213とから構成される。
FSID欄13200は、ファイルシステムの識別番号(ID)を格納する。FS名欄13201は、FS名を格納する。対応VVOL欄13202は、対応する仮想ボリューム名(VVOL名)を格納する。サイズ欄13203は、VVOLの記憶領域のサイズを格納する。最大I/O負荷欄13204は、ファイルシステムの無効領域の回収を許可するI/O負荷の最大値である最大I/O負荷を格納する。この値は、回収設定テーブルに格納されている最大I/O単位負荷(Rio−unit−max)1215にファイルシステムのサイズを乗算することにより得られる。調査結果のI/O負荷欄13205は、対応するFSのI/O負荷を格納する。調査結果の無効領域サイズ欄13206は、対応するFSにおける無効領域サイズを格納する。回収対象欄13207は、回収対象であるか否かを示す情報を格納する。回収順序欄13208は、回収する際の基準となる順序を格納する。回収結果の成功欄13209は、回収が成功したか否かを示す情報を格納する。失敗欄13210は、回収が失敗したか否かを示す情報を格納する。回避欄13211は、回収が回避されたか否かを示す情報を格納する。回収完了の実績欄13212は、回収が完了した無効領域のサイズを格納する。誤差欄13213は、調査結果の無効領域サイズと回収された無効領域サイズとの誤差を格納する。
(ディスアレイ装置14)
ディスクアレイ装置14は、各種プログラムや各種テーブル等を記憶するメモリ14Mと、メモリ14Mのプログラムに従って各種処理を実行するプロセッサ14Pと、1以上のHDD(Hard Disk Drive:物理ディスク)より構成される物理領域をプールしたディスクプール143とを有する。
メモリ14Mは、例えば、RAM、ROMにより構成され、ホストコンピュータ13からのI/O要求に応じて動的にVVOL141にディスクプール143の物理領域を割り当てる処理をプロセッサ14Pに実行させるためのVVOL I/O処理プログラム140と、VVOLの物理領域の割当て状況を表すビットマップ群であるVVOLマップ群142と、ディスクプール143の物理ディスクの物理領域の利用状況を調査する処理を実行させるためのプール調査プログラム144と、物理領域の回収を実行させるための回収実行プログラム145と、ディスクプール143の物理領域の状況を管理するプールカウンタ群146と、I/O処理用のプロセッサ14Pの負荷を調査する処理を実行させるための負荷調査プログラム147とを記憶する。
なお、図1ではシン・プロビジョニング機能をディスクアレイ装置14が提供するようにしているが、シン・プロビジョニング機能をホストコンピュータ13が提供するようにしてもよい。この場合には、VVOL I/O処理プログラム140、VVOLマップ群142、プール調査プログラム144、回収実行プログラム145、プールカウンタ群146等の全て又は一部をホストコンピュータ13に格納し、実行させることにより実現することができる。
プールカウンタ群146は、図4に示すように、ディスクプール143内の物理ディスク領域の合計サイズを示すディスク領域カウンタ1460と、ディスクプール143内の未割当て領域の合計サイズを示す未割り当て領域カウンタ1461とから構成される。
VVOLマップ群142は、図4に示すように、対応するVVOL上の領域(仮想領域)への物理領域の割当て状況を示すビットマップであるVVOLマップ1420と、回収対象となるのVVOL上の領域を示す回収対象マップ1421とから構成される。
次に、管理コンピュータ12が実行する処理について説明する。
(回収管理処理)
図12は、本発明の第1実施形態に係る回収管理処理を示すフローチャートである。
回収管理処理は、管理コンピュータ12において、プロセッサ12Pが回収管理プログラム120を実行することにより実行される。
プロセッサ12Pは、まず、回収管理に関わるテーブルを初期化するプログラム初期化処理を実行する(ステップS1201)。プログラム初期化処理では、回収設定テーブル121を読み出すとともに、回収管理テーブル122、及びホスト管理テーブル123を初期化する。
次いで、プロセッサ12Pは、ディスクプールの物理領域の残量を監視するディスクプール残量監視処理を実行する(ステップS1202)。ディスクプール残量監視処理では、ディスクアレイ装置14のプール調査プログラム144を実行するプロセッサ14Pに対して定期的にディスクプール残量調査要求1250を発行することにより、ディスクプール143の残量を監視する。
そして、プロセッサ12Pは、ディスクプールの残量が回収開始ディスク残量よりも少なくなった場合に、次のホスト情報収集処理(ステップS1203)に処理を移す。これにより、以降においてディスクプール143の物理領域の回収が開始されることとなる。
プロセッサ12Pは、ホストコンピュータ13の負荷情報や無効領域の量などの情報を収集するホスト情報収集処理を実行する(ステップS1203)。ホスト情報収集処理では、プロセッサ12Pは、ホスト管理テーブル123に登録されているホストコンピュータ13のホスト調査プログラム130を実行するプロセッサ13Pに対して、ホスト情報調査要求1260を発行し、その戻り値であるCPU使用率、合計のファイルシステム数、合計の無効領域量、回収対象のファイルシステム数、回収対象の無効領域量をホスト管理テーブル123に登録する。プロセッサ12Pは、ホスト管理テーブル123に登録されている全ホストコンピュータに対して調査を終えると次のディスク領域回収制御処理(S1204)に処理を移す。
プロセッサ12Pは、ディスクアレイ装置14のディスクプールの物理領域を回収するディスク領域回収制御処理を実行する(ステップS1204)。ディスク領域回収制御処理では、プロセッサ12Pは、ホスト管理テーブル123に登録されている各ホストコンピュータの調査結果を比較し、各ホストコンピュータに要求するディスク回収量と回収順序とを決定する。その後、プロセッサ12Pは、決定した回収順序に従い、各ホストコンピュータ13の回収制御プログラム131を実行するプロセッサ13Pに対して、無効領域回収要求1270を発行し、物理領域を回収させる。プロセッサ12Pは、回収条件を満たした場合、又は、対象となる全ホストコンピュータ13の無効領域を回収した場合には、ディスクプール残量監視処理(S1202)に処理を戻す。
次に、上記回収管理処理において、ホストコンピュータ13やディスクアレイ装置14に対して発行する各種要求のフォーマットについて説明する。
(ディスクプール残量調査要求1250のフォーマット)
図8は、本発明の第1実施形態に係るディスクプール残量調査要求のフォーマットの一例を示す図である。
ディスクプール残量調査要求1250の要求データ12500は、要求を一意に識別するための要求IDを格納する要求ID欄12501と、受信側が要求の種別を識別するための要求種別を格納する要求種別欄12502と、調査対象のディスクプールの名前を示すプール名を格納するプール名欄12503とを有する。要求データ12500のフォーマットとして、本実施形態ではメッセージ形式のものを用いているが、RSHシェルなどを使ってコマンドを送信する形式としても良い。なお、後述する各要求についても同様のことがいえる。
戻り値データ12510は、要求IDを格納する要求ID欄12511と、要求に対する結果を示す結果コードを格納する結果コード欄12512と、ディスクプールの総ディスク量を示す総ディスク量Qallを格納する総ディスク量欄12513と、ディスクプールの未割当てディスク領域の残量を示すディスク残量Qrestを格納するディスク残量欄12514とを有する。
上記のディスクプール残量調査要求1250を用いることにより、管理コンピュータ12の回収管理調査プログラム120を実行するプロセッサ12Pは、指定したディスクプールのディスクプールの総ディスク量及び未割当てディスク領域の残量を、ディスクアレイ装置14のプール調査プログラム144を実行するプロセッサ14Pから得ることが出来る。得られたディスクプールの総ディスク量及び未割当てディスク領域の残量は、それぞれ、回収管理テーブル122のディスクプール層ディスク量欄1220と、ディスクプールディスク残量欄1221に格納される。
(ホスト情報調査要求1260のフォーマット)
図9は、本発明の第1実施形態に係るホスト情報調査要求のフォーマットの一例を示す図である。
ホスト情報調査要求1260の要求データ12600は、要求IDを格納する要求ID欄12601と、要求種別を格納する要求種別欄12602と、最大CPU使用率を格納する最大CPU使用率欄12604と、最大I/O単位負荷を格納する最大I/O単位負荷欄12605とを有する。最大CPU使用率は、“通常”の回収モードにおいて回収対象となるホストコンピュータ13の基準としてのCPU使用率の最大値である。“通常”の回収モードにおいては、最大CPU使用率よりもCPU使用率が高いホストコンピュータに対しては、プロセッサ12Pは回収要求を発行しない。最大I/O単位負荷は、“通常”の回収モードにおいて回収対象となるホストコンピュータ13の基準としての単位容量あたりのI/O負荷の最大値である。
ホスト情報調査要求1260の戻り値データ12610は、要求IDを格納する要求ID欄12611と、結果コードを格納する結果コード欄12612と、CPU使用率を格納するCPU使用率欄12613と、合計のFSの数を格納する合計FS数欄12614と、合計の無効領域量を格納する合計無効領域量欄12615、回収対象となるFS数(対象FS数)を格納する対象FS数欄12616と、対象の無効領域量(対象無効領域量)を格納する対象無効領域量欄12617とを有する。ここで、対象FS数と対象無効領域量とは、それぞれ、“通常”の回収モードにおいて物理領域を回収する対象となるFS数と無効領域量である。戻り値データ12610に格納されているデータは、CPU使用率から順に、ホスト管理テーブル123の調査結果欄12303(12306〜12310)に登録される。
(無効領域回収要求1270のフォーマット)
図10は、本発明の第1実施形態に係る無効領域回収要求のフォーマットの一例を示す図である。
無効領域回収要求1270の要求データ12700は、要求IDを格納する要求ID欄12701と、要求種別を格納する要求種別欄12702と、回収モードを格納する回収モード欄12703と、要求回収無効領域量を格納する要求回収無効領域量欄12704と、最大CPU使用率を格納する最大CPU使用率欄12705と、最大I/O単位負荷を格納する最大I/O単位負荷欄12706とを有する。回収モードには、通常モードと強制モードとがあり、通常モードは、所定の条件を満たしているホストコンピュータのファイルシステムを対象として、物理領域の回収を行うモードであり、強制モードは、ホストコンピュータのファイルシステムが所定の条件を満たしているか否かにかかわらず、物理領域の回収を行うモードである。
無効領域回収要求1270の戻り値データ12710は、要求IDを格納する要求ID欄12711と、結果コードを格納する結果コード欄12712と、回収を行ったFS数(回収FS数)を格納する回収FS数欄12713と、回収を行った無効領域量(回収無効領域量)を格納する回収無効領域量欄21714と、未回収FS数を格納する未回収FS数欄12715と、未回収無効領域量を格納する未回収無効領域量欄12716と、回収失敗FS数を格納する回収失敗FS数欄12717と、回収失敗無効領域量を格納する回収失敗無効領域量欄12718とを有する。未回収FS数と未回収無効領域量は、回収モードが“通常”の場合にホストコンピュータ13側での回収条件を満たさずに回収しなかったFS数と無効領域量である。回収失敗FS数と、回収失敗無効領域量は、故障や障害などの理由で回収に失敗したFS数と無効領域量である。
ここで、戻り値データ12710に記述されている3つの無効領域量(回収無効領域量、未回収無効領域量、回収失敗無効領域量)を足した値と、ホスト情報調査要求1260の戻り値データ12610の合計無効領域量とは、異なる値となる場合がある。これは、調査を行う時点と回収を行う時点とにはタイムラグがあり、ホストコンピュータ13における無効領域量も当然変化しているからである。調査時と回収時とのこれらの量の差は誤差として、ホスト管理テーブル123の12313に登録される。戻り値データ12710の結果は、回収FS数から順に、ホスト管理テーブル123の対応する欄12311、12312、12314、12315、12316、12317に登録される。
(ディスクプール残量監視処理)
図13は、本発明の第1実施形態に係るディスクプール残量監視処理を示すフローチャートである。
プロセッサ12Pがディスクプール残量監視処理の実行を開始すると、回収判定時刻(Tjdg)までウェイトする(ステップS1301)。その後、プロセッサ12Pがディスクアレイ装置14のプール調査プログラム144を実行するプロセッサ14Pに、ディスクプール残量調査要求1250を発行し、戻り値データ12510を受信する(ステップS1302)。次いで、プロセッサ12Pは、戻り値データ12510のディスクプールの総ディスク量Qall、ディスクプールのディスク残量Qrestを回収管理テーブル122の該当する欄1220、1221に登録する(ステップS1303)。次に、プロセッサ12Pは、回収設定テーブル121から回収開始ディスク残率Rstart、回収終了ディスク残率Rendを読み出し、それぞれのパラメータにステップS1303で得たディスクプール総ディスク量Qallを掛け合わせ、回収開始ディスク残量Qstart、回収終了ディスク残量Qendを計算し、回収管理テーブル122の該当欄に登録する(ステップS1304)。これらの計算を、図2、図3の具体例で示すと、Qstart=3000GB(Qall)×20%(Rstart)/100=600GB、Qend=3000GB(Qall)×30%(Rend)/100=900GBとなる。
次に、プロセッサ12Pは、ディスクプールディスク残量Qrestと回収開始ディスク残量Qstartとの大小を比較し、物理領域の回収処理を起動するか否かを判定する(ステップS1305)。この結果、ディスクプールディスク残量Qrestが回収開始ディスク残量Qstart以上であれば、プロセッサ12Pは、物理領域の回収処理は行わず、ステップS1301に移行する。一方、ディスクプールディスク残量Qrestが回収開始ディスク残量Qstartよりも小さければ、プロセッサ12Pは、物理ディスクの回収処理を行うために、回収終了ディスク残量Qendからディスクプールディスク残量Qrestを減算して目標回収ディスク量Qcllctを算出し、回収管理テーブル122の該当欄に登録する(S1306)。図3の例では、目標回収ディスク量Qcllct=900GB(回収終了ディスク残量Qend)−500GB(ディスクプールディスク残量Qrest)=400GBである。最後に、プロセッサ12Pは、目標回収ディスク量Qcllctに最小ディスク回収率Rcllct−minを乗算し、さらに100で除算することにより最小回収ディスク量Qcllct−minを算出し、回収管理テーブル122の該当欄に登録し、処理を終了する(ステップS1307)。図2及び図3の例では、最小回収ディスク量Qcllct−min=400GB(目標回収ディスク量Qcllct)*10(最小ディスク回収率(%)Rcllct−min)/100=40GBである。
(ホスト情報収集処理)
図14は、本発明の第1実施形態に係るホスト情報収集処理を示すフローチャートである。
ホスト情報収集処理では、プロセッサ12Pは、ホスト管理テーブル123に登録されている全ホストコンピュータの、CPU使用率、合計FS数、合計無効領域量、回収対象のFS数、及び回収対象の無効領域量を調べる処理を行う。すなわち、プロセッサ12Pは、ホスト管理テーブル123のホストIDの値が“1”のホストを対象ホストとして選択する(ステップS1401)。次に、プロセッサ12Pは、対象ホストのホスト調査プログラム130を実行するプロセッサ13Pにホスト情報調査要求1260を発行し、戻り値データ12610を受信する(ステップS1402)。次に、プロセッサ12Pは、戻り値データ12610の各値をホスト管理テーブル123の調査結果欄12303(12306、12307、12308、12309、12310)に登録する(ステップS1403)。例えば、図6に示すように、ホストIDが”1”のホストコンピュータの調査の結果は、CPU使用率が72%、合計FS数が5個、合計無効領域が59GB、回収対象のFS数が5個、回収対象の無効領域が59GBとなる。
次いで、プロセッサ12Pは、ホスト管理テーブル123に登録されているホストコンピュータ13をすべて調査したか否かをチェックする(ステップS1404)。この結果、全てのホストコンピュータ13を調査した場合(ステップS1404:Yes)には、プロセッサ12Pは、ホスト情報収集処理を終了する。一方、全てのホストコンピュータ13の調査をしていない場合(ステップS1404:No)には、プロセッサ12Pは、次の順番のホスト、すなわち、次のホストIDのホストを対象ホストとして選択し(ステップS1405)、当該対象ホストに対してステップS1402〜S1404のステップを実行する。
(ディスク領域回収制御処理)
図15は、本発明の第1実施形態に係るディスク領域回収制御処理を示すフローチャートである。
ディスク回収制御処理は、回収管理テーブル122及びホスト管理テーブル123に登録されているディスクアレイ装置14、ホストコンピュータ13の調査結果から、回収モードを決めて、ホストコンピュータ13の回収制御プログラム131を実行するプロセッサ13Pに対してディスク回収要求1270を発行し、物理ディスクの回収を実行させるための処理である。
まず、プロセッサ12Pは、回収管理テーブル122より、目標回収ディスク量Qcllct、最小回収ディスク量Qcllt−minを読み出す(ステップS1501)。次に、プロセッサ12Pは、ホスト管理テーブル123の回収対象無効領域の総和を求め(ステップS1502)、当該総和が目標回収ディスク量Qcllct以上であるかを評価する(ステップS1503)。
この結果、総和が目標回収ディスク量Qcllct以上の場合(ステップS1503:Yes)には、所定の条件を満たすホストコンピュータ及びファイルシステムから十分な物理領域を回収できることを意味するので、プロセッサ12Pは、回収モードを“通常”に設定し(ステップS1504)、回収対象無効領域が“0”よりも大きいホストコンピュータのうち、回収対象無効領域の値が大きいものから順に採番して、ホスト管理テーブル123の回収順序欄12304に採番した順序を登録する(ステップS1505)。
一方、総和が目標回収ディスク量Qcllct未満の場合(ステップS1503:No)には、プロセッサ12Pは、ホスト管理テーブル123に登録されている合計無効領域の総和を求め(ステップS1506)、合計無効領域の総和が最小回収ディスク量Qcllct−min以上であるかを評価する(ステップS1507)。この結果、合計無効領域の総和が最小回収ディスク量Qcllct−min以上の場合(ステップS1507:Yes)には、全てのホストコンピュータ及びファイルシステムによって最小回収ディスク量を満たす物理領域を回収できることを意味するので、プロセッサ12Pは、回収モードを“強制”に設定し(ステップS1508)、合計無効領域が“0”よりも大きいホストコンピュータのうち、合計無効領域の値が大きいものから順に採番し、ホスト管理テーブル123の回収順序欄12304に採番した順序を登録する(ステップS1509)。一方、合計無効領域の総和が最小回収ディスク量Qcllct−min未満の場合(ステップS1507:No)には、プロセッサ12Pは、最小回収ディスク量が確保できない旨を報告し(ステップS1511)、処理を終了する。
最後に、ステップS1504及び1505、又はステップS1508及び1509において決定した回収モード、回収順序に従い、ホストコンピュータ13に対して無効領域回収要求1270を発行し、戻り値データ12710を受信してホスト管理テーブル123に登録し(ステップS1510)、処理を終了する。
次に、ホストコンピュータ13が実行する各種処理について説明する。
(ホスト調査処理)
図16は、本発明の第1実施形態に係るホスト調査処理を示すフローチャートである。
このホスト調査処理は、プロセッサ13Pがホスト調査プログラム130を実行することに実現される処理であり、管理コンピュータ12の回収管理プログラム120を実行するプロセッサ12Pからホスト情報調査要求1260を受信し、ホストコンピュータ13内の各ファイルシステム134のI/O負荷、無効領域の量を集計し、回収管理プログラム120を実行するプロセッサ12Pに返送する処理である。
プロセッサ13Pは、管理コンピュータ12からホスト情報調査要求1260を受信すると、FS管理テーブル132を初期化する(ステップS1601)。この初期化においては、ホストコンピュータ13上に構成されているファイルシステム名、対応するVVOL名、サイズを、FS管理テーブル132の各欄13201、13202、13203に登録する。更に、プロセッサ13Pは、回収設定テーブルに格納されている最大I/O単位負荷(Rio−unit−max)1215にファイルシステムのサイズを乗算して最大I/O負荷(Lio−max)を算出し、その結果をFS管理テーブル132の最大I/O負荷欄13204に登録する。
次に、プロセッサ13Pは、ホスト情報調査要求1260の要求データ12600の内容を取り出し(ステップS1602)、自ノードのCPU使用率Rcpuを調査する(ステップS1603)。次に、プロセッサ13Pは、FS管理テーブル132のFSID=1として登録されているファイルシステムを対象として選択する(ステップS1604)。
次に、プロセッサ13Pは、対象ファイルシステムの無効領域カウンタ1371から無効領域の量を読み出してFS管理テーブル132に登録し(ステップS1605)、更に、書込みI/O負荷カウンタ1370からI/O負荷を読み出してFS管理テーブル132に登録する(ステップS1606)。
次に、プロセッサ13Pは、ファイルシステムの調査I/O負荷Lioが、その上限(最大I/O負荷)Lio−max以下か否かを評価する(ステップS1607)。この結果、I/O負荷Lioが上限Lio−max以下の場合には、該当するファイルシステムにおける物理領域の回収がI/O処理を妨げる可能性が低いと把握できるので、FS管理テーブル132の回収対象欄13207に回収対象であることを示す“1”を登録する(ステップS1608)一方、I/O負荷Lioが上限Lio−maxより大きい場合には、該当するファイルシステムにおける物理領域の回収がI/O処理を妨げる可能性が高いと把握できるので、FS管理テーブル132の回収対象欄13207に回収対象ではないことを示す“0”を登録する(ステップS1609)。
次いで、プロセッサ13Pは、これら一連のステップ(ステップS1605〜1609)を全てのファイルシステムに対して行ったか否かを判定し(ステップS1610)、全てのファイルシステムに対して行っていない場合には、FS管理テーブル132における次のファイルシステム、すなわち、次のFSIDのファイルシステムを対象ファイルシステムとして(ステップS1611)ステップS1605からの処理を行う。
そして、全てのファイルシステムに対して調査が終わった場合(ステップS1610:Yes)には、プロセッサ13Pは、無効領域サイズが大きいファイルシステムから順に回収順序を採番し、FS管理テーブル132の回収順序欄13208に登録する(ステップS1612)。最後に、プロセッサ13Pは、CPU使用率、合計FS数、合計無効領域、対象FS数、対象無効領域を、ホスト情報調査要求1260の戻り値データ12610に格納して、管理コンピュータ12に返送して(ステップS1613)、処理を終了する。
(回収制御処理)
図17は、本発明の第1実施形態に係る回収制御処理を示すフローチャートである。
回収制御処理は、プロセッサ13Pが回収制御プログラム131を実行することにより実現され、無効領域の分布を表すビットマップを作成し、ディスクアレイ装置14の回収実行プログラム145を実行するプロセッサ14Pに無効領域の回収要求を送信する処理である。
回収制御処理において、プロセッサ13Pは、管理コンピュータ12から受信した無効領域回収要求1270の要求データ12700の内容を取り出し(ステップS1701)、回収モードが“標準”か否かを評価する(ステップS1702)。この評価の結果、回収モードが”標準”である場合(ステップS1702:Yes)には、プロセッサ13Pは、FS管理テーブル132の回収対象欄13207が“1”のファイルシステムを回収対象として決定する(ステップS1703)。一方、回収モードが”標準”でない場合(ステップS1702:No)には、プロセッサ13Pは、FS管理テーブル132に登録されているすべてのファイルシステムを回収対象と決定する(ステップS1704)。
その後、プロセッサ13Pは、回収処理を行っていない回収対象の中で回収順序がもっとも小さいファイルシステムを次の処理対象ファイルシステムとして選択し(ステップS1705)、選択した対象ファイルシステムをフリーズさせる(ステップS1706)。ここで、フリーズとは、ファイルシステムがディスクアレイ装置14に反映させる前に一時的にホストコンピュータ13のメモリに記憶しているデータをディスクアレイ装置14に反映させ、I/Oを受け付けない状態にさせることをいう。
その後、プロセッサ13Pは、対象ファイルシステムのFSマップ1360とFS書込み済みマップ1361とを取得し(ステップS1707)、取得した2つのマップからファイルシステムの回収対象とする無効領域を示すビットマップ(回収対象ビットマップ:無効領域位置情報)を作成する(ステップS1708)。ここで、回収対象ビットマップは、FS書込み済みマップ1361と、FSマップ1360を反転させたもの(NOT(FSマップ1360))との論理積(アンド)をとることにより作成できる。
次に、プロセッサ13Pは、物理ディスク回収要求1310の要求データ13100(図11参照)を作成し、ディスクアレイ装置14に送信する(ステップS1709)。その後、プロセッサ13Pは、戻り値データ13110を受信し、その内容をFS管理テーブル132に登録し、更に、戻り値データ13110の回収受付マップ13115に基づいて、FS書込み済みマップ1361に回収した結果を反映させ(ステップS1710)、ファイルシステムをアンフリーズする(ステップS1711)。ここで、FS書込み済みマップ1361に回収した結果を反映させるものは、FS書込み済みマップ1361と、回収受付マップ13115を反転させたもの(NOT(回収受付マップ13115))との論理積(アンド)をとることにより得ることができる。
次に、プロセッサ13Pは、これまでの回収量の合計が要求回収量以上になったかを評価する(ステップS1712)。この結果、回収量合計が要求回収量以上であると評価した場合(ステップS1712:Yes)には、プロセッサ13Pは、無効領域回収要求1270の戻り値データ12710を作成し、管理コンピュータ12に送信し(ステップS1713)、処理を終了する。
一方、回収量合計が要求回収量未満であると評価した場合(ステップS1712:No)には、プロセッサ13Pは、全ての対象ファイルシステムからの物理領域の回収を行ったか否かを評価し(ステップS1714)、全ての対象ファイルシステムから回収を行った場合には、処理を終了する一方、全ての対象ファイルシステムから回収を行っていない場合には、次のファイルシステムに対して同様なステップ(ステップS1705〜1712)を実行する。
次に、上記回収制御処理において、ホストコンピュータ13がディスクアレイ装置14との間で用いる要求のフォーマットについて説明する。
(物理ディスク回収要求1310のフォーマット)
図11は、本発明の第1実施形態に係る物理ディスク回収要求のフォーマットの一例を示す図である。
物理ディスク回収要求1310の要求データ13100は、要求IDを格納する要求ID欄13101と、要求種別を格納する要求種別欄13102と、VVOL名を格納するVVOL名欄13103と、回収単位ブロックサイズを格納する回収単位ブロックサイズ欄13104と、回収開始ブロックを格納する回収開始ブロック欄13105と、回収対象ブロック数を格納する回収対象ブロック数欄13106と、回収対象ビットマップを格納する回収対象ビットマップ欄13107とを有する。回収単位ブロックサイズとは、回収するブロックのデータサイズであり、例えば、予め回収単位のブロックのデータサイズが規定されている場合には、回収単位ブロックサイズ欄13104に回収単位ブロックサイズを格納する必要がない。回収開始ブロックとは、対応する回収対象ビットマップの先頭のブロックのブロック番号のことをいう。回収対象ブロック数とは、対応する回収対象ビットマップに含まれている回収開始ブロックから続く回収対象となるブロックの数のことをいう。
なお、ブロックのデータサイズが一定であり、回収対象ビットマップがVVOLの先頭のブロックからのビットマップである場合には、回収単位ブロックサイズ欄13104と、回収開始ブロック欄13105と、回収対象ブロック数欄13106とを備えなくてもよく、また、備えていたとしても値を格納する必要がない。
戻り値データ13110は、要求IDを格納する要求ID欄13111と、結果コードを格納する結果コード欄13112と、回収したデータサイズを格納する回収サイズ欄13113と、回収を受け付けたブロックのビットマップ(回収受付マップ)のサイズを格納するビットマップサイズ欄13114と、回収受付マップを格納する回収受付マップ欄13115とを有する。
(FS I/O処理:ファイルのWrite/Create要求時処理)
図18は、本発明の第1実施形態に係るWrite/Create要求時処理を示すフローチャートである。
Write/Create要求時処理は、クライアントコンピュータ11からファイルシステムに対するWrite/Create要求を受信した際に実行される。Write/Create要求を受信すると、プロセッサ13Pは、FSマップ1360、FS書込み済みマップ1361の更新対象ブロックに該当するビットを参照し、更新対象ブロックの状態を調べる(ステップS1801)。
次に、プロセッサ13Pは、更新対象ブロックが無効ブロック(無効領域)であるかを否か評価する(ステップS1802)。この結果、更新対象ブロックが無効ブロックであると評価された場合(ステップS1802:Yes)には、無効ブロックに書込みが行われて、使用ブロックとなるので、プロセッサ13Pは、無効領域サイズカウンタ1371をデクリメントし(ステップS1803)、Write/Create処理を実行する(ステップS1804)。ここで、Write/Create処理とは、Write/Create要求に含まれているデータを、ファイルシステムにおいて割り当てたVVOLのブロックを指定して、ディスクアレイ装置14に格納させる処理をいう。
一方、更新対象ブロックが無効ブロックではないと評価された場合(ステップS1802:No)には、カウンタのデクリメントを飛ばして、Write/Create処理を実行する(ステップS1804)。その後、プロセッサ13Pは、FSマップ1360、FS書込み込み済みマップ1361の更新対象ブロックに対応するビットを”1”に更新するとともに、書込みI/Oカウンタ1370をインクリメントして、処理を終了する。
この処理により、書込みI/Oカウンタ1370には、Write/Create要求の回数が格納されることとなり、所定時間毎にこのカウンタを見ることにより、所定時間におけるWrite/CreateのI/O負荷を把握することができる。
図19は、本発明の第1実施形態に係るRemove要求時処理を示すフローチャートである。
Remove要求時処理は、クライアントコンピュータ11からファイルシステムに対するファイルのRemove要求を受信した際に実行される。Remove要求を受信すると、プロセッサ13Pは、まず、無効領域サイズカウンタ1371をRemove対象ファイルのサイズ分(ブロック数)だけインクリメントする。これは、Removeをすると、ブロックが無効領域となり、無効領域が増加するからである。その後、プロセッサ13Pは、Remove処理を行い(ステップ1902)、FSマップ1360のRemoveされたブロックに対応するビットを”0”に更新し(ステップS1903)、処理を終了する。
この処理により、無効領域サイズカウンタ1371には、無効領域サイズが適切にカウントされることとなる。
次に、ディスクアレイ装置14が実行する各種処理について説明する。
(プール調査処理)
図20は、本発明の第1実施形態に係るプール調査処理を示すフローチャートである。
プール調査処理は、プール調査プログラム144をプロセッサ14Pが実行することにより実現される。
ディスクアレイ装置14が管理コンピュータ12からディスクプール残量調査要求1250を受信すると、プロセッサ14Pは、ディスクプール残量調査要求1250の内容を取り出し(ステップS2001)、調査対象となるディスクプール143のディスク領域カウンタ1460と未割当て領域カウンタ1461の値を戻り値データ12510に格納し(ステップS2002)、戻り値データを管理コンピュータ12に返送し(ステップS2003)、処理を終了する。
この処理により、ディスクプール143のディスク領域量(総ディスク量)と未割り当て領域(ディスク残量)とを迅速に管理コンピュータ12に返送することができる。
(回収実行処理)
図21は、本発明の第1実施形態に係る回収実行処理を示すフローチャートである。
回収実行処理は、回収実行プログラム145をプロセッサ14Pが実行することにより実現される。
ディスクアレイ装置14がホストコンピュータ13から物理ディスク回収要求13100を受信すると、プロセッサ14Pは、物理ディスク回収要求13100の内容を取り出し(ステップS2101)、ディスク領域の回収を実行する。ここで、回収対象ブロックは、物理ディスク回収要求1310の要求データ13100に格納されている回収対象ビットマップによって特定することができる。すなわち、回収対象ビットマップの中で“1”が立っているビットに対応する全てのブロックが回収対象である。ここで、ディスクアレイ装置14においては、仮想ボリュームの各ブロックと、当該ブロックに割り当てられている物理ディスクの物理領域との対応関係を示すデータが管理されており、当該データ中において、回収対象ブロックと割り当てられた物理ディスクの物理領域との対応関係を削除することにより、物理ディスクの物理領域を回収することができる。すなわち、後に新たに割り当てに利用することが可能となる。
次いで、プロセッサ14Pは、回収が完了したブロックに関しては、回収対象ビットマップのブロックに対応するビットを”0”クリアするとともに、各ブロックに対応するビットを有する回収受付マップにおける対応するビットに”1”を立てる(ステップS2102)。次いで、プロセッサ14Pは、物理ディスク回収要求の戻り値データ13110に回収受付マップを格納してホストコンピュータ13に返送し、処理を終了する。
(VVOL I/O処理)
図22は、本発明の第1実施形態に係るVVOL I/O処理を示すフローチャートである。
同図は、回収実行処理が実行されている最中に、VVOL I/O処理のWrite処理が発生した場合におけるフローチャートである。
VVOL I/O処理は、VVOL I/O処理プログラム140をプロセッサ14Pが実行することにより実現される。
回収実行処理が実行されている際に、ディスクアレイ装置14が、VVOLへのWrite要求をホストコンピュータ13から受信すると、プロセッサ14Pは、回収対象ビットマップ中のWrite対象のブロックに該当するビットを参照し(ステップS2201)、該当ビットが“1”であるか否かを評価する(ステップS2202)。この結果、該当ビットが”1”であると評価した場合(ステップS2202:Yes)には、プロセッサ14Pは、回収対象ビットマップの該当ビットを“0”クリアしてから、Write処理を実行し(ステップS2204)、処理を終了する。
一方、該当ビットが“0”であると評価した場合(ステップS2202:No)には、プロセッサ14Pは、該当ビットの操作は行わずに、Write処理を実行し(ステップS2204)、処理を終了する。
この処理によって、回収対象であったブロックに対して書込みが行われる場合にあっては、回収対象ビットマップが”0”となるので、回収実行処理において回収されることがない。このため、回収処理と並行してWrite処理を実行することができ、処理効率の低下を防止することができる。
上記した実施形態に係るコンピュータシステムによると、ディスクアレイ装置14のディスクプールのディスク残量が閾値よりも少なくなったという、ディスクプールのディスク残量を増加させる必要が高いと考えられる場合に、迅速に無効領域の物理領域を回収することができる。
(第2実施形態)
次に、本発明の第2実施形態に係るコンピュータシステムについて説明する。
第2実施形態に係るコンピュータシステムは、前述の第1実施形態に係るコンピュータシステムにおいて、ディスクアレイ装置14にスナップショット機能を追加したものである。なお、第1実施形態との差異を中心に説明する。
(システムの全体構成)
図23は、本発明の第2実施形態に係るコンピュータシステムの全体構成を示すブロック図である。なお、同図においては、第1実施形態に係るコンピュータシステムと同様な要素には、同一の符号を付している。
第2実施形態に係るコンピュータシステムにおいては、ディスクアレイ装置14に、スナップショット機能を実現する構成を追加した点が第1実施形態に係るコンピュータシステムと異なっている。ディスクアレイ装置14以外の構成要素、例えば、クライアントコンピュータ10、管理コンピュータ12、ホストコンピュータ13、ネットワーク10、15は、構成及びその動作が第1実施形態と同様である。
なお、図23ではシン・プロビジョニング機能をディスクアレイ装置14が提供するようにしているが、シン・プロビジョニング機能をホストコンピュータ13が提供するようにしてもよい。この場合には、VVOL I/O処理プログラム148、VVOLマップ群142、プール調査プログラム144、回収実行プログラム151、プールカウンタ群146等の全て又は一部をホストコンピュータ13に格納し、実行させることにより実現することができる。
(ディスアレイ装置14)
第2実施形態に係るディスクアレイ装置14は、第1実施形態の構成要素のほかに、VVOLのスナップショットを提供する仮想ボリューム(SVOL)149と、VVOLに割り当てられている物理ディスク領域(実データブロック)の中でSVOLから参照されているブロック番号を示すための被参照ビットマップ(被参照マップ情報)150とを有する。また、VVOL
I/O処理プログラム148及び回収実行プログラム151は、第1実施形態のVVOL I/O処理プログラム140及び回収実行プログラム145に対して、SVOLを維持するための処理を更にプロセッサ14Pに実行させるようになっている。なお、プロセッサ14PがVVOL
I/O処理プログラム148及び回収実行プログラム151に従って実行する動作については後述する。
第2実施形態に係るディスクアレイ装置14は、スナップショット機能としては、代表的なスナップショット方式であるCOW(Copy On Write)方式、すなわち、旧データを別の専用ディスクボリュームに退避してから新データを書き込む方式を用いている。なお、ディスクアレイ装置14におけるスナップショット機能の方式としては、COW方式に限られず、例えば、旧データを退避させずに、新データを新たな領域に書き込む方式を適用することもできる。
図24、図25及び図26は、本発明の第2実施形態に係るスナップショット運用時の回収処理を説明する図である。なお、これら図においては、便宜上各ファイルが1つのブロックサイズに収まる例を挙げて説明しているが、ファイルが複数のブロックに格納される場合であっても同様に実現することができる。
図24は、スナップショット作成する前(時刻T0)及びスナップショット作成した際(時刻T1)におけるディスクアレイ装置14の状態を示し、図25は、運用ファイルシステムにおいてファイルに追記した際(時刻T2)におけるディスクアレイ装置14の状態を示し、図26は、運用ファイルシステムのファイルを一部削除した際(時刻T3)、及び不要領域に対して回収処理を行った際(時刻T4)におけるディスクアレイ装置14の状態を示している。
ディスクアレイ装置14には、図24に示すように、VVOL141a、SVOL149a、VVOLの実データを格納するための物理ディスク143a(HDD−A)、SVOLを維持するための旧データを退避させるための物理ディスク143b(HDD−B)が備えられている。物理ディスク143aには、実データブロック1431が格納される。また、ディスクアレイ装置14には、実データブロック群1431を参照するポインタを格納する仮想データブロック群1411、1491、及び被参照ビットマップ150も備えられている。
(時刻T0:スナップショット作成前)
ここで、時刻T0においては、ホストコンピュータ13のファイルシステム134により、管理されているファイルa、b、cがVVOL141aに存在しているものとする。この場合、ホストコンピュータ13のファイルシステム134が管理している各ファイルa、b、cのメタデータ2401、2402、2403は、それぞれVVOL141の仮想データブロック群1411における対応する仮想データブロック1412、1413、1414を参照している。各仮想データブロック1412、1413、1414は、それぞれ、物理ディスク143a(HDD−A)の実データブロック群1431の対応する実データブロック1432、1433、1434を参照している。なお、仮想データブロック群1411の仮想データブロック1415は、データが書き込まれていないため、実データブロックは割り当てられていない。実データブロック1432、1433、1434には、それぞれファイルの実データ(図では、‘A’、‘B’、‘C’と記載)が格納されている。この時点では、VVOLのスナップショットは作成されていないため、被参照ビットマップ150の各ビットはすべて‘0’となっている。
ここで、ファイルシステム134が管理しているファイルのメタデータ2401、2402、2403及び仮想データブロック群1411は、例えば、物理ディスク143a(HDD−A)又は別の物理ディスクに割り当てられた実データブロックに格納される。なお、ファイルのメタデータの格納位置は、ホストコンピュータ13のファイルシステム134の実装に依存するものであり、仮想データブロック群1411の格納位置はディスクアレイ装置14のVVOL I/O処理プログラム148の実装に依存するものであり、メタデータや仮想データブロック群は、実装に応じて任意の物理ディスクに格納することができる。
(時刻T1:スナップショット作成)
VVOL I/O処理プログラム148を実行するプロセッサ14Pは、スナップショット作成の指示が発生した場合には、図24に示すように、VVOL141aの仮想データブロック群1411をコピーし、SVOL149aを作成する。これにより、SVOL149aには、仮想データブロック群(スナップショット用参照データ)1491が存在する。ここで、SVOL149aにファイルシステム134をマウントし参照すると、VVOL141aと同一のファイルa、b、cが存在する。ファイルシステム134が管理している各ファイルa、b、cのメタデータ2404、2405、2406は、それぞれSVOL149aの仮想データブロック1492、1493、1494を参照している。各仮想データブロック1492、1493、1494は、VVOL141aの仮想データブロック1412、1413、1414と同一の実データブロック1432、1433、1434を参照している。
このように、VVOL141aの仮想データブロック1412、1413、1414の実データブロック1432、1433、1434は、SVOL149aの仮想データブロック1492、1493、1494に参照されるため、プロセッサ14Pは、被参照ビットマップ150の参照されている各ブロックに該当するビット1501、1502、1503に‘1’をセットする。なお、実データが書き込まれていない仮想データブロック1415に該当する被参照ビットマップ150のビット1504の値は、’0’のまま変更されない。
(時刻T2:新規データ書込み時)
VVOL I/O処理プログラム148を実行するプロセッサ14Pは、図25に示すように、VVOL141aのファイルcへの新規データ‘C´’の書き込み要求を受け付ける(時刻T2−1)と、旧データ‘C’を実データブロック1434から物理ディスク143b(HDD−B)に新たに割り当てられた実データブロック1436に退避する(時刻T2−2)。次に、プロセッサ14Pは、SVOL149aの仮想データブロック1494の参照先を、これまでの実データブロック1434からデータ‘C’の退避先の実データブロック1436に変更し(時刻T2−3)、被参照ビットマップ150の該当ビット1503の値を‘1’から‘0’に変更する。その後、プロセッサ14Pは、VVOL141aのデータブロック1414が参照しているデータブロック1434の内容を‘C´’に更新する。ここで、VVOL141aのデータブロック1414は、被参照ビットマップ150の該当ビットマップ1503が‘0’であり、SVOL149aの仮想ブロックデータにより参照されていないので、VVOL141a上で不要になった場合には、スナップショットに影響を与えることなく回収することができる。
(時刻T3:ファイル削除時)
ホストコンピュータ13のFSI/O処理プログラム134を実行するプロセッサ13Pがファイルa、cの削除を受け付けると、ファイルa、cのメタデータ2401、2403が削除される。この場合において、ファイルのデータを格納している仮想データブロック1412、1414と、それぞれの参照先である実データブロック1432、1434は残っている。これらの仮想データブロック1412、1414は、ホストコンピュータ13のファイルシステム134からみると不要領域(無効領域)となる。ここで、この仮想データブロック1412、1414に該当する被参照ビットマップ150のビットの値はそれぞれ‘1’、‘0’である。
(時刻T4:VVOL上の無効領域を回収)
ホストコンピュータ13においてプロセッサ13Pにより回収制御プログラム131が起動されて実行されると、ディスクアレイ装置14に対して、VVOL141a上の不要領域1412、1414の回収要求が送られる。回収実行プログラム151を実行するディスクアレイ装置14のプロセッサ14Pは、回収要求を受け取ると、回収対象ビットマップ欄13107の内容を回収対象ビットマップ1421(図26では図示せず)にコピーする。そして回収対象ビットマップの値と被参照ビットマップ150の値に基づいて、不要領域の回収を行う。本実施形態では、プロセッサ14Pは、不要領域1412については、被参照ビットマップの該当するビットの値が’1’であり、対応する実データブロック1432がSVOL149aの仮想データブロック1492から参照されていることを示しているために回収されない。一方、不要領域1414については、被参照ビットマップ150の該当するビットの値が’0’であり、参照している実データブロック2344がSVOLから参照されていないことを示しているため回収され、結果として、実データブロック1434が回収されることとなる。
このようにして、スナップショットを破壊せずに、運用ファイルシステムで使用していた不要領域を回収することができる。
次に、回収実行プログラム151とVVOL I/O処理プログラム148とをプロセッサ14Pが実行することにより実現される各種処理を説明する。
(回収実行処理)
図27は、本発明の第2実施形態に係る回収実行処理を示すフローチャートである。
回収実行処理は、回収実行プログラム151をプロセッサ14Pが実行することにより実現される。なお、図21の第1実施形態における回収実行処理と同様なステップについては、同一符号を付している。
ディスクアレイ装置14がホストコンピュータ13から物理ディスク回収要求13100を受信すると、プロセッサ14Pは、物理ディスク回収要求13100の内容を取り出す(ステップS2101)。次いで、プロセッサ14Pは、物理ディスク回収要求13100中の回収対象ビットマップ13107を次式に示すように被参照ビットマップ150を用いて更新する(ステップS2701)。すなわち、プロセッサ14Pは、回収対象ビットマップ13107と、被参照ビットマップ150を反転させたもの(NOT(被参照ビットマップ150))との論理積(アンド)をとったものに回収対象ビットマップを更新する。ここで、更新された回収対象ビットマップには、回収対象の実データブロックであって、SVOLから参照されていない実データブロックに対応するビットに’1’が立っている。
次いで、プロセッサ14Pは、回収対象ビットマップに基づいて、ディスク領域の回収を実行する。本実施形態では、回収対象ビットマップの中で“1”が立っているビットに対応する全てのブロックが回収されることとなる。ここで、仮想ボリュームの各ブロックと、当該ブロックに割り当てられている物理ディスクの物理領域との対応関係を示す仮想ブロックデータ群1411が管理されており、当該データ群において、回収対象ブロックに割り当てられた物理ディスクの物理領域への参照情報を削除することにより、物理ディスクの物理領域を回収することができる。これによって、SVOLから参照されている実データブロックを回収してしまうというSVOLを破壊する事態を適切に防止することができる。
次いで、プロセッサ14Pは、回収が完了したブロックに関しては、回収対象ビットマップのブロックに対応するビットを”0”クリアするとともに、各ブロックに対応するビットを有する回収受付マップにおける対応するビットに”1”を立てる(ステップS2102)。次いで、プロセッサ14Pは、物理ディスク回収要求の戻り値データ13110に回収受付マップを格納してホストコンピュータ13に返送し、処理を終了する。
(VVOL I/O処理)
図28は、本発明の第2実施形態に係るVVOL I/O処理を示すフローチャートである。同図は、回収実行処理が実行されている最中に、VVOL I/O処理のWrite処理が発生した場合におけるフローチャートである。なお、図22の第1実施形態におけるVVOL I/O処理と同様なステップについては、同一符号を付している。
VVOL I/O処理は、VVOL I/O処理プログラム148をプロセッサ14Pが実行することにより実現される。
回収実行処理が実行されている際に、ディスクアレイ装置14が、VVOLへのWrite要求をホストコンピュータ13から受信すると、プロセッサ14Pは、回収対象ビットマップ中のWrite対象のブロックに該当するビットを参照し(ステップS2201)、該当ビットが“1”であるか否かを評価する(ステップS2202)。この結果、該当ビットが”1”であると評価した場合(ステップS2202:Yes)には、プロセッサ14Pは、回収対象ビットマップの該当ビットを“0”クリアし(ステップS2203)、次のステップS2801に進む。一方、該当ビットが“0”であると評価した場合(ステップS2202:No)には、プロセッサ14Pは、該当ビットの操作は行わずに、ステップS2801に進む。
次に、プロセッサ14Pは、被参照ビットマップ150の該当ビットを参照し(ステップS2801)、当該ビットが”1”であるか否かを評価する(ステップS2802)。この結果、該当ビットが“1”であると評価した場合には、プロセッサ14Pは、該当ブロックに対応する実データブロックを別のディスクの物理領域に退避し、スナップショット(SVOL)の仮想データブロック1491のポインタを更新する(ステップS2803)。次いで、プロセッサ14Pは、被参照ビットマップ150の該当ビットを“0”にクリア(ステップS2804)し、該当するファイルの実データを物理領域に格納するWrite処理を実行し(ステップS2204)、処理を終了する。一方、該当ビットが“0”であると評価した場合(ステップS2802:No)には、ステップS2803、2804を行わずに、該当するファイルの実データを物理領域に格納するWrite処理を実行し(ステップS2204)、処理を終了する。
この処理によって、回収対象であったブロックに対して書込みが行われる場合にあっては、回収対象ビットマップが”0”となるので、回収実行処理において回収されることがない。このため、回収処理と並行してWrite処理を実行することができ、処理効率の低下を防止することができる。
また、上記した処理によると、SVOLの仮想ブロックデータにより参照されている実データブロックのデータに書き込みが発生した際に、適切に書き込み前の実データを退避でき、当該実データブロックに対するSVOLの仮想ブロックデータによる参照の状態を適切に被参照ビットマップのビットに反映させることができる。
上記した第2実施形態によると、スナップショットを破壊せずに、運用ファイルシステムで使用していた無効領域を適切に回収することができる。
(第3実施形態)
次に、本発明の第3実施形態に係るコンピュータシステムについて説明する。
図29は、本発明の第3実施形態に係るコンピュータシステムの全体構成を示すブロック図である。なお、同図においては、第1実施形態に係るコンピュータシステムと同様な要素には、同一の符号を付している。
第3実施形態に係るコンピュータシステムは、前述の第1実施形態に係るホストコンピュータ13の機能を、ホストコンピュータ13上で動作する仮想ホストコンピュータ(一般的には、仮想OS(Operating system)といい、以下、仮想ホストともいう。)13aにより実現し、ホストコンピュータ13においては、複数の仮想ホストコンピュータ13aが動作可能となっている。なお、第3実施形態においては、ホストコンピュータ13を物理ホストコンピュータ(物理コンピュータ)13として説明する。なお、ここでは、第1実施形態との差異を中心に説明する。
管理コンピュータ12のメモリ12Mは、プロセッサ12Pにより実行される物理ディスクの回収を管理するための回収管理プログラム152と、仮想ホストコンピュータ13aを他の物理ホストコンピュータ13に再配置するための仮想ホスト再配置プログラム153と、ディスク回収のシステム設定を格納する回収設定テーブル154と、物理ディスクの回収に必要なテンポラリの情報を格納する回収管理テーブル122と、物理ホストコンピュータ13のCPU使用率(第1使用率)、仮想ホスト数等を格納する物理ホスト管理テーブル155と、仮想ホストコンピュータ13aの負荷や無効領域の量を格納する仮想ホスト管理テーブル156とを格納する。
(回収設定テーブル154)
図30は、本発明の第3実施形態に係る回収設定テーブルの一例を示す図である。なお、図2に示す第1実施形態に係る回収設定テーブル121と同様な部分は、同一符号を付している。
回収設定テーブル154は、第1実施形態に係る回収設定テーブル121において、最大CPU使用率欄1214に格納する最大使用率について異なる目的のために用いるようにし、移動許可CPU使用率欄1541を新たに備えるようにしたものである。
最大CPU使用率欄1214は、仮想ホストコンピュータ13aが利用している物理領域を回収する際に、仮想ホストコンピュータを他の物理ホストコンピュータ13に再配置させる際の閾値としてCPU(プロセッサ)の使用率(最大CPU使用率)を格納する。物理ホストコンピュータ13のCPU使用率が最大CPU使用率以上である場合に、当該物理ホストコンピュータ13の仮想ホストコンピュータ13aが再配置されることとなる。
移動許可CPU使用率欄1541は、他の物理ホストコンピュータ13に再配置を許可する仮想ホストコンピュータ13aの閾値となるCPUの使用率(移動許可CPU使用率)を格納する。仮想ホストコンピュータ13aによるCPUの使用率が、移動許可CPU使用率以下である場合に、当該仮想ホストコンピュータ13aが再配置されることとなる。
(物理ホスト管理テーブル155)
図31は、本発明の第3実施形態に係る物理ホスト管理テーブルの一例を示す図である。
物理ホスト管理テーブル155は、ID欄1551と、ホスト名欄1552と、調査時仮想ホスト数欄1553と、調査時CPU使用率欄1554と、仮想ホスト数増減欄1555と、移動後仮想ホスト数欄1556と、移動後CPU使用率欄1557とを有する。
ID欄1551は、物理ホストコンピュータ13の識別番号(ID)を格納する。ホスト名欄1552は、物理ホストコンピュータ13の名称(ホスト名)を格納する。調査時仮想ホスト数欄1553は、調査時点における仮想ホストコンピュータ数を格納する。調査時CPU使用率欄1554は、調査時における物理ホストコンピュータ13のプロセッサの使用率(第1使用率)を格納する。仮想ホスト数増減欄1555は、仮想ホストコンピュータ数の増減を格納する。移動後仮想ホスト数欄1556は、移動後の仮想ホストコンピュータ数を格納する。移動後CPU使用率欄1557は、移動後の物理ホストコンピュータ13のプロセッサの使用率を格納する。
(仮想ホスト管理テーブル156)
図32は、本発明の第3実施形態に係る仮想ホスト管理テーブルの一例を示す図である。なお、図6に示す第1実施形態に係るホスト管理テーブル123と同様な部分は、同一符号を付している。
仮想ホスト管理テーブル156は、第1実施形態に係るホスト管理テーブル123において、ホストコンピュータ13に代えて仮想ホストコンピュータ13aに関するデータを格納するようにするととともに、新たに物理ホスト名欄15601と、移動先物理ホスト欄15602とを更に備えるようにしたものである。
ホストID欄12300は、仮想ホストコンピュータ13aのIDを格納する。ホスト名欄12301は、仮想ホストコンピュータ13aの名称を格納する。物理ホスト名欄15601は、物理ホストコンピュータ13のIDを格納する。移動先物理ホスト欄15602は、移動先とする物理ホストコンピュータ13の名称を格納する。
(物理ホストコンピュータ13)
図29の説明に戻り、ホストコンピュータ13は、各種プログラムや各種テーブル等を記憶するメモリ13Mと、メモリ13Mのプログラムに従って各種処理を実行するプロセッサ(CPU)13Pとを有する。
メモリ13Mは、物理ホスト調査プログラム157と、クラスタ管理プログラム158と、仮想ホストコンピュータ13aの動作に必要なプログラム等を格納する。なお、仮想ホストコンピュータ13aに必要なプログラム等は、第1実施形態におけるホストコンピュータ13に格納されていているプログラム等と同様である。本実施形態では、物理ホストコンピュータ13は、複数の仮想ホストコンピュータ13aを構築することができるようになっている。
物理ホスト調査プログラム157は、プロセッサ13Pにより実行されることにより、物理ホストコンピュータ13のプロセッサの使用率を調査する。例えば、Linux(登録商標)OSのsarコマンドを利用することで実現することができる。
クラスタ管理プログラム158は、プロセッサ13Pにより実行されて、物理ホストコンピュータ13上で稼動している仮想ホストコンピュータ13aを管理する処理を実現でき、例えば、仮想ホストコンピュータ13aを他の物理ホストコンピュータ13に移動させる処理(フェールオーバ)を実現できる。
次に、第3実施形態に係るコンピュータシステムによる処理について説明する。
(回収管理処理)
図33は、本発明の第3実施形態に係る回収管理処理を示すフローチャートである。なお、図12に示す第1実施形態に係る回収管理処理と同様な部分には、同一の符号を付している。
回収管理処理は、管理コンピュータ12において、プロセッサ12Pが回収管理プログラム152を実行することにより実行される。
プロセッサ12Pは、まず、回収管理に関わるテーブルを初期化するプログラム初期化処理を実行する(ステップS3301)。プログラム初期化処理では、回収設定テーブル154を読み出すとともに、回収管理テーブル122、物理ホスト管理テーブル155、及び仮想ホスト管理テーブル156を初期化する。
次いで、プロセッサ12Pは、ディスクプールのディスク領域の残量を監視するディスクプール残量監視処理を実行する(ステップS1202)。
そして、プロセッサ12Pは、ディスクプールの残量が回収開始ディスク残量1222よりも少なくなった場合に、次の物理ホスト情報収集処理(ステップS3302)に処理を移す。これにより、以降においてディスクプール143の物理ディスクの回収が開始されることとなる。
プロセッサ12Pは、物理ホストコンピュータ13のCPU使用率、仮想ホストコンピュータ数等の情報を収集する物理ホスト情報収集処理を実行する(ステップS3302)。物理ホスト情報収集処理では、プロセッサ12Pは、物理ホスト管理テーブル155に登録されている物理ホストコンピュータ13の物理ホスト調査プログラム157を実行するプロセッサ13Pに対して、物理ホスト情報調査要求を発行し、その戻り値であるCPU使用率、仮想ホスト数を物理ホスト管理テーブル155に登録する。プロセッサ12Pは、物理ホスト管理テーブル155に登録されている全物理ホストコンピュータ13に対して調査を終えると次の仮想ホスト情報収集処理(S3303)に処理を移す。
プロセッサ12Pは、仮想ホストコンピュータ13aの負荷情報や無効領域の量などの情報を収集する仮想ホスト情報収集処理を実行する(ステップS3303)。仮想ホスト情報収集処理では、プロセッサ12Pは、仮想ホスト管理テーブル156に登録されている仮想ホストコンピュータ13aのホスト調査プログラム130を実行するプロセッサ13Pに対して、ホスト情報調査要求1251を発行し、その戻り値であるCPU使用率(第2使用率)、合計のファイルシステム数、合計の無効領域量、回収対象のファイルシステム数、回収対象の無効領域量を仮想ホスト管理テーブル156に登録する。プロセッサ12Pは、仮想ホスト管理テーブル156に登録されている全仮想ホストコンピュータ13aに対して調査を終えると次のディスク領域回収処理(S3304)に処理を移す。
プロセッサ12Pは、ディスクアレイ装置14のディスク領域を回収するディスク領域回収制御処理を実行する(ステップS3304)。ディスク領域回収制御処理では、プロセッサ12Pは、仮想ホスト管理テーブル156に登録されている各仮想ホストコンピュータ13aの調査結果を比較し、各仮想ホストコンピュータ13aに要求するディスク回収量と回収順序とを決定する。その後、プロセッサ12Pは、決定した回収順序に従い、各仮想ホストコンピュータ13aの回収制御プログラム131を実行するプロセッサ13Pに対して、無効領域回収要求1270を発行し、物理領域を回収させる。プロセッサ12Pは、回収条件を満たした場合、又は、対象となる全仮想ホストコンピュータ13の無効領域を回収した場合には、ディスクプール残量監視処理(S1202)に処理を戻す。
(ディスク領域回収制御処理3000)
図34は、本発明の第3実施形態に係るディスク領域回収制御処理を示すフローチャートである。なお、第3実施形態に係るディスク領域回収制御処理においては、第1実施形態に係るディスク領域回収制御処理においてホスト管理テーブル123に代えて仮想ホスト管理テーブル156を用いて処理を行うようにした点と、新たにステップS3401を実行するようにした点が異なっている。なお、略同様なステップにおいては、第1実施形態と同じ符号を付している。
第3実施形態に係るディスク領域回収制御処理おいては、ステップS1505又はステップS1509において、仮想ホスト管理テーブル156の回収順序欄12304に採番した順序を登録した後において、プロセッサ12Pは、仮想ホスト再配置処理を実行する(ステップS3401)。
仮想ホスト再配置処理では、仮想ホスト再配置プログラム153を実行するプロセッサ12Pが回収順序の若い仮想ホストコンピュータ13aから順にCPU使用率と稼動元物理ホストコンピュータ13のCPU使用率を走査し、必要に応じて別の物理ホストコンピュータ13に再配置させる。
仮想ホスト再配置処理を実行した後、プロセッサ12Pは、ステップS1504及び1505、又はステップS1508及び1509において決定した回収モード、回収順序に従い、仮想ホストコンピュータ13aに対して無効領域回収要求1270を発行し、戻り値データ12710を受信して仮想ホスト管理テーブル156に登録し(ステップS1510)、処理を終了する。
(仮想ホスト再配置処理)
図35は、本発明の第3実施形態に係る仮想ホスト再配置処理を示すフローチャートである。
仮想ホスト再配置処理は、仮想ホスト再配置プログラム153をプロセッサ12Pが実行することにより実現される。
プロセッサ12Pは、物理ホスト管理テーブル155に登録されている物理ホストコンピュータ13の中から以降のステップを未実施であって最もIDの小さいものを移動元物理ホストコンピュータとして選択する(ステップS3501)。次いで、プロセッサ12Pは、移動元物理ホストコンピュータ13のCPU使用率を物理ホスト管理テーブル155から取得し(ステップS3502)、当該CPU使用率が回収設定テーブル154の最大CPU使用率以上か否かを評価し(ステップS3503)、最大CPU使用率未満であると評価した場合には、回収処理が当該物理ホストコンピュータ13における処理の効率を低下させる影響がほとんどないと考えられるので、ステップS3510に進む。
一方、CPU使用率が最大CPU使用率以上であると評価した場合には、プロセッサ12Pは、仮想ホスト管理テーブル156に登録されている仮想ホストコンピュータ13aの中から、移動元物理ホストコンピュータ13で稼働中であり、再配置未実施であり、回収順序が最も小さいものを対象仮想ホストコンピュータ13aとして選択する(ステップS3504)。
次いで、プロセッサ12Pは、仮想ホスト管理テーブル156から対象仮想ホストコンピュータ13aのCPU使用率を取得し(ステップS3505)、取得したCPU使用率が回収設定テーブル154の移動許可CPU使用率以下か否かを評価する(ステップS3506)。
CPU使用率が移動許可使用率以下であると評価した場合(ステップS3506:Yes)には、プロセッサ12Pは、物理ホスト管理テーブル155に登録されている物理ホストコンピュータ13の中から、最もCPU使用率が小さいものを移動先物理ホストコンピュータ13として選択する(ステップS3507)。次いで、プロセッサ12Pは、移動元物理ホストコンピュータ13のクラスタ管理プログラム158を実行するプロセッサ13Pに、対象仮想ホストコンピュータ13aの移動先物理ホストコンピュータ13への移動(再配置)を依頼する。これにより、移動元物理ホストコンピュータ13のプロセッサ13Pは、対象仮想ホストコンピュータ13aを、移動先物理ホストコンピュータ13に移動させる処理を行い、実行結果を管理コンピュータ12に返信する。管理コンピュータ12のプロセッサ12Pは、移動元物理ホストコンピュータ13のプロセッサ13Pから仮想ホストコンピュータ13aの移動処理の実行結果を受信(ステップS3508)した後、移動元物理ホストコンピュータ13のCPU使用率を調査し、物理ホスト管理テーブル155の該当欄を更新し(ステップS3509)、ステップS3510に進む。
一方、対象仮想ホストコンピュータ13aのCPU使用率が移動許可使用率より大きいと判定した場合(ステップS3506:No)には、当該対象仮想ホストコンピュータ13aの移動をせずにステップS3510に進む。
ステップS3510では、プロセッサ12Pは、移動元物理ホストコンピュータ13に稼働中の全仮想ホストコンピュータ13aを対象としたか否かを判定し、全仮想ホストコンピュータ13aを対象にしている場合には、次のステップS3511に進む一方、対象にしていない場合には、ステップS3502に進む。
ステップS3511では、プロセッサ12Pは、全物理ホストコンピュータ13を対象としたか否かを判定し、全物理ホストコンピュータ13を対象にしている場合には、処理を終了する一方、対象にしていない場合には、ステップS3501に進む。
上記処理によって、CPUの使用率が高い物理ホストコンピュータ13の仮想ホストコンピュータ13aをCPUの使用率の低い物理ホストコンピュータ13に適切に移動させることができ、物理領域の回収時における他の処理への影響を効果的に抑えることができる。
また、上記処理では、対象仮想ホストコンピュータ13aのCPU使用率が移動許可使用率以下のものを移動するようにし、それ以外について移動させないようにしている。これは、以下のような理由によるものである。
仮想ホストコンピュータ13aを他の物理ホストコンピュータ13へ移動させるには、(1)仮想ホストコンピュータ13aのサービスの停止(I/Oの停止)、(2)ダーティ・データの物理ディスクへの書き込み、(3)キャッシュデータの廃棄、(4)サービスの再開(I/Oの再開)等の処理を行う必要がある。
ここで、比較的高負荷な仮想ホストコンピュータ13aを移動させることを考慮すると、比較的高負荷な仮想ホストコンピュータ13aにおいては、物理ディスクに反映していないデータ(ダーティ・データ)がメモリ13M上に大量にキャッシュされるようになる。このため、移動させるさせる際には、このダーティデータをディスクアレイ装置14に反映するためにディスクアレイ装置14へ急峻なI/O増加が発生してしまう。また、ダーティ・データの書込み量が多いために、ダーティデータの書込み時間が増大し、結果としてサービス停止時間も増大する。さらに、大量のキャッシュが破棄されることとなり、仮想ホストコンピュータ13aの移動後においては、移動前より性能が低下してしまう。
このように、比較的高負荷な仮想ホストコンピュータ13aを移動する際にデメリットが発生する。そこで、本実施形態では、移動許可使用率以下の仮想ホストコンピュータ13aを移動するようにしてこのようなデメリットの発生を極力防止するようにしている。
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
例えば、上記実施形態において、管理コンピュータ12において、プロセッサ12Pが各ホストコンピュータ13からCPUの使用率を収集するようにし、当該CPUの使用率に基づいて回収順序を決定するようにしてもよい。この場合、例えば、CPUの使用率が所定以上のホストコンピュータ13を物理領域の回収対象から外すようにしてもよい。
また、管理コンピュータ12のプロセッサ12Pが、各ホストコンピュータ13のメインメモリの残量(空き容量)のデータを収集するようにし、メインメモリの残量のデータに基づいて回収順序を決定するようにしてもよい。この場合、例えば、メインメモリの残量が所定以下の場合に物理領域の回収対象から外すようにしてもよい。
また、上記実施形態において、回収対象から外すこととするホストコンピュータ13に対して、回収対象から外すことを指定する属性情報を記憶させるようにしておき、管理コンピュータ12は、当該属性情報に基づいて該当するホストコンピュータ13を回収対象から外すようにしてもよい。
また、ホストコンピュータ13において、物理領域の回収対象から外すことを指定する属性情報をファイルシステムと対応付けて記憶して管理できるようにしておき、ホストコンピュータ13は、当該属性情報に基づいて対応するファイルシステムを回収対象から外すようにしてもよい。
本発明の第1実施形態に係るコンピュータシステムの全体構成を示すブロック図である。 本発明の第1実施形態に係る回収設定テーブルの一例を示す図である。 本発明の第1実施形態に係る回収管理テーブルの一例を示す図である。 本発明の第1実施形態に係るビットマップ、カウンタ群の構成を示すブロック図である。 本発明の第1実施形態に係るFSマップ及びFS書き込み済みマップを説明する図である。 本発明の第1実施形態に係るホスト管理テーブルの一例を示す図である。 本発明の第1実施形態に係るFS管理テーブルの一例を示す図である。 本発明の第1実施形態に係るディスクプール残量調査要求のフォーマットの一例を示す図である。 本発明の第1実施形態に係るホスト情報調査要求のフォーマットの一例を示す図である。 本発明の第1実施形態に係る無効領域回収要求のフォーマットの一例を示す図である。 本発明の第1実施形態に係る物理ディスク回収要求のフォーマットの一例を示す図である。 本発明の第1実施形態に係る回収管理処理を示すフローチャートである。 本発明の第1実施形態に係るディスクプール残量監視処理を示すフローチャートである。 本発明の第1実施形態に係るホスト情報収集処理を示すフローチャートである。 本発明の第1実施形態に係るディスク領域回収制御処理を示すフローチャートである。 本発明の第1実施形態に係るホスト調査処理を示すフローチャートである。 本発明の第1実施形態に係る回収制御処理を示すフローチャートである。 本発明の第1実施形態に係るWrite/Create要求時処理を示すフローチャートである。 本発明の第1実施形態に係るRemove要求時処理を示すフローチャートである。 本発明の第1実施形態に係るプール調査処理を示すフローチャートである。 本発明の第1実施形態に係る回収実行処理を示すフローチャートである。 本発明の第1実施形態に係るVVOL I/O処理を示すフローチャートである。 本発明の第2実施形態に係るコンピュータシステムの全体構成を示すブロック図である。 本発明の第2実施形態に係るスナップショット運用時の回収処理を説明する第1の図である。 本発明の第2実施形態に係るスナップショット運用時の回収処理を説明する第2の図である。 本発明の第2実施形態に係るスナップショット運用時の回収処理を説明する第3の図である。 本発明の第2実施形態に係る回収実行処理を示すフローチャートである。 本発明の第2実施形態に係るVVOL I/O処理を示すフローチャートである。 本発明の第3実施形態に係るコンピュータシステムの全体構成を示すブロック図である。 本発明の第3実施形態に係る回収設定テーブルの一例を示す図である。 本発明の第3実施形態に係る物理ホスト管理テーブルの一例を示す図である。 本発明の第3実施形態に係る仮想ホスト管理テーブルの一例を示す図である。 本発明の第3実施形態に係る回収管理処理を示すフローチャートである。 本発明の第3実施形態に係るディスク領域回収制御処理を示すフローチャートである。 本発明の第3実施形態に係る仮想ホスト再配置処理を示すフローチャートである。
符号の説明
10,15 ネットワーク、11 クライアントコンピュータ、12 管理コンピュータ、12P プロセッサ、12M メモリ、13 ホストコンピュータ、13P プロセッサ、13M メモリ、14 ディスクアレイ装置、14P プロセッサ、14M メモリ、120 回収管理プログラム、121 回収設定テーブル、122 回収管理テーブル、123 ホスト管理テーブル、130 ホスト調査プログラム、131 回収制御プログラム、132 FS管理テーブル、133 ホストカウンタ群、134 ファイルシステム、135 FS I/O処理プログラム、136 FSマップ群、137 FSカウンタ群、140 VVOL I/O処理プログラム、141 VVOL、142 VVOLマップ群、143 ディスクプール、144 プール調査プログラム、145 回収実行プログラム、146 プールカウンタ群、147 負荷調査プログラム。

Claims (16)

  1. 1以上の物理ディスクの物理領域によって構成されるディスクプールを有するディスクプール提供装置と、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理領域を動的に割り当てる仮想ボリューム管理装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理する複数のファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記仮想ボリューム管理装置とを管理するための管理コンピュータとを備えるコンピュータシステムであって、
    前記管理コンピュータは、
    前記ディスクプールの物理領域残量との比較に用いる所定の閾値を記憶する閾値記憶部と、
    前記仮想ボリューム管理装置から前記ディスクプールにおける前記物理領域残量を取得する物理領域残量取得部と、
    前記複数のファイルシステムのうち物理領域を回収する対象となるファイルシステムの前記仮想ボリュームにおける前記物理領域が割り当てられているが前記ファイルが格納されていない領域である無効領域の量を、前記複数のホストコンピュータの夫々から取得する無効領域量取得部と、
    前記取得された無効領域の量の総和と予め定められた値とを比較し、前記取得された無効領域の量の総和が前記予め定められた値を超えている場合に、前記無効領域に割り当てられている前記物理領域の回収を指示する前記ホストコンピュータの順序を決定するホスト決定部と、
    前記ディスクプールの物理領域残量が前記閾値よりも少ないか否かを判定する物理領域残量判定部と、
    前記ディスクプールの物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信する回収要求部と、を備え、
    前記ホストコンピュータは、
    前記仮想ボリュームにおける前記無効領域の量を検出して、前記管理コンピュータに送信する無効領域量検出送信部と、
    前記管理コンピュータから前記回収要求を受信した場合に、前記仮想ボリュームにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記仮想ボリューム管理装置に送信する無効領域位置情報送信部と、を備え、
    前記仮想ボリューム管理装置は、
    前記管理コンピュータに前記ディスクプールの物理領域残量を送信する物理領域残量送信部と、
    前記無効領域位置情報を前記ホストコンピュータから受信し、前記無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収する回収部と、を備え、
    前記ホストコンピュータは更に、所定の条件に基づいて、前記複数のファイルシステムの中から前記対象となるファイルシステムを決定する対象ファイルシステム決定部を有し、
    前記無効領域位置情報送信部は、前記対象となるファイルシステムにおける前記無効領域位置情報を生成して送信する
    コンピュータシステム。
  2. 前記管理コンピュータは、
    前記仮想ボリューム管理装置から前記ディスクプールの容量を受信する容量受信部と、
    前記ディスクプールの容量に対する前記閾値の割合を記憶する割合記憶部と、
    前記ディスクプールの容量に前記割合を算することにより前記閾値を算出し、前記閾値記憶部に格納する閾値算出部と
    を有する請求項1に記載のコンピュータシステム。
  3. 前記ホストコンピュータは、
    前記仮想ボリュームにおける前記ファイルの書き込みが行われた記憶領域を示す書込み済みマップ情報を記憶する書込み済みマップ情報記憶部と、
    前記仮想ボリュームにおける前記ファイルが格納されている記憶領域を示すファイルシステムマップ情報を記憶するファイルシステムマップ情報記憶部と
    を更に有し、
    前記無効領域検出送信部は、前記書込み済みマップ情報及び前記ファイルシステムマップ情報に基づいて、前記無効領域を特定して前記無効領域の量を検出する
    請求項1又は請求項2に記載のコンピュータシステム。
  4. 前記ホストコンピュータは、
    前記無効領域の量を計数するカウンタを備え、
    前記無効領域検出送信部は、前記ファイルを前記仮想ボリュームの記憶領域から削除する際に、前記カウンタを前記仮想ボリュームから削除する記憶領域の数だけ加算し、前記カウンタの値により前記無効領域の量を検出する
    請求項1又は請求項2に記載のコンピュータシステム。
  5. 前記対象ファイルシステム決定部は、前記無効領域の量が多い前記ファイルシステムから回収対象として決定する
    請求項1乃至請求項4のいずれか一項に記載のコンピュータシステム。
  6. 前記対象ファイルシステム決定部は、I/O負荷が所定の値を超えるファイルシステムを回収対象から除外する
    請求項1乃至請求項4のいずれか一項に記載のコンピュータシステム。
  7. 前記ホストコンピュータは、
    回収対象から除外する前記ファイルシステムを特定する情報を記憶する除外情報記憶部を更に有し、
    前記対象ファイルシステム決定部は、前記除外情報記憶部に記憶された情報に対応するファイルシステムを回収対象から除外する
    請求項1乃至請求項6のいずれか一項に記載のコンピュータシステム。
  8. 前記管理コンピュータは、
    前記ホストコンピュータからプロセッサの使用率を取得する使用率取得部を更に備え、
    前記ホスト決定部は、前記プロセッサの使用率が所定以上のホストコンピュータを回収指示する対象から除外する
    請求項1乃至請求項7のいずれか一項に記載のコンピュータシステム。
  9. 前記管理コンピュータは、
    前記ホストコンピュータからメインメモリの残量を取得する残量取得部を更に備え、
    前記ホスト決定部は、前記メインメモリの残量が所定以下のホストコンピュータを回収指示する対象から除外する
    請求項1乃至請求項8のいずれか一項に記載のコンピュータシステム。
  10. 前記ホストコンピュータは、
    前記ホストコンピュータを回収対象から除外することを示すホスト除外情報を記憶するホスト除外情報記憶部を更に有し、
    前記管理コンピュータは、
    前記ホスト除外情報を取得するホスト除外情報受信部を更に備え、
    前記ホスト決定部は、前記ホスト除外情報に対応する前記ホストコンピュータを回収指示する対象から除外する
    請求項1乃至請求項9のいずれか一項に記載のコンピュータシステム。
  11. 前記仮想ボリューム管理装置は、
    前記ファイルシステムが管理するファイルの実データを格納する前記物理領域が当該ファイルのスナップショット用参照データにおいて参照されているか否かを示す被参照マップ情報を記憶する被参照マップ情報記憶部を更に備え、
    前記回収部は、前記被参照マップ情報に基づいて、前記スナップショット用参照データにおいて参照されている前記物理領域を回収対象から除外する
    請求項1乃至請求項10のいずれか一項に記載のコンピュータシステム。
  12. 前記仮想ボリューム管理装置は、
    所定の時点において、前記ファイルシステムが管理するファイルの実データを参照するスナップショット用参照データを作成するスナップショット処理部と、
    当該実データを格納する前記物理領域が前記スナップショット用参照データにより参照されていることを示す被参照マップ情報を作成して前記被参照マップ情報記憶部に格納する被参照マップ作成部と、
    前記ファイルの前記実データを新たな実データに更新する際に、更新前の前記実データを他の物理領域に格納すると共に、前記スナップショット用参照データの参照先を前記他の物理領域に更新する参照先更新部と、
    前記物理領域に前記ファイルの前記新たな実データを格納する実データ更新部と、
    前記新たな実データが格納された前記物理領域について、前記スナップショット用参照データにより参照されていないことを示す被参照マップ情報を作成して前記被参照マップ記憶部に格納する被参照マップ更新部とを有する
    請求項11に記載のコンピュータシステム。
  13. 前記ホストコンピュータは、物理コンピュータ上に配置される仮想ホストコンピュータであり、
    前記管理コンピュータは、
    前記物理コンピュータからプロセッサの第1使用率を取得する第1使用率取得部と、
    前記プロセッサの第1使用率が所定値以上の物理コンピュータ上に配置されている少なくとも1つの仮想ホストコンピュータを他の物理コンピュータに再配置させる再配置部とを更に備える
    請求項1乃至請求項12のいずれか一項に記載のコンピュータシステム。
  14. 前記管理コンピュータは、
    前記仮想ホストコンピュータによる前記物理コンピュータのプロセッサの第2使用率を取得する第2使用率取得部を更に有し、
    前記再配置部は、前記物理コンピュータ上に配置されている複数の仮想ホストコンピュータのうち、前記第2使用率が所定値以下の仮想ホストコンピュータを前記他の物理コンピュータに再配置させる
    請求項13に記載のコンピュータシステム。
  15. 1以上の物理ディスクの物理領域によって構成されるディスクプールを有するディスクプール提供装置と、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理領域を動的に割り当てる仮想ボリューム管理装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理する複数のファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記仮想ボリューム管理装置とを管理するための管理コンピュータとを備えるコンピュータシステムによる物理ディスク回収方法であって、
    前記管理コンピュータの物理領域残量取得部が、前記仮想ボリューム管理装置から前記ディスクプールにおける前記物理領域残量を取得する物理領域残量取得ステップと、
    前記管理コンピュータの物理領域残量判定部が、前記物理領域残量が閾値記憶部に格納されている前記ディスクプールの物理領域残量との比較に用いる所定の閾値よりも少ないか否かを判定する物理領域残量判定ステップと、
    前記ホストコンピュータの対象ファイルシステム決定部が、所定の条件に基づいて、前記複数のファイルシステムの中から物理領域を回収する対象となるファイルシステムを決定する対象ファイルシステム決定ステップと、
    前記管理コンピュータの無効領域量取得部が、前記対象となるファイルシステムの仮想ボリュームにおける前記物理領域が割り当てられているが前記ファイルが格納されていない領域である無効領域の量を前記複数のホストコンピュータの夫々から取得する無効領域量取得ステップと、
    前記管理コンピュータのホスト決定部が、前記取得された無効領域の量の総和と予め定められた値とを比較し、前記取得された無効領域の量の総和が前記予め定められた値を超えている場合に、前記無効領域に割り当てられている前記物理領域の回収を指示する前記ホストコンピュータの順序を決定する決定ステップと
    記管理コンピュータの回収要求部が、前記物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信する回収要求ステップと、
    前記ホストコンピュータの無効領域位置情報送信部が、前記回収要求を受信した場合に、前記対象となるファイルシステムにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記仮想ボリューム管理装置に送信する無効領域位置情報送信ステップと、
    前記仮想ボリューム管理装置の回収部が、前記無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収する回収ステップと、を備え
    物理ディスク回収方法。
  16. 1以上の物理ディスクの物理領域によって構成されるディスクプールを有し、仮想ボリュームの記憶領域に前記ディスクプールに属する前記物理記憶領域を動的に割り当てるディスクアレイ装置と、前記仮想ボリュームの記憶領域を用いてファイルを管理する複数のファイルシステムを有する複数のホストコンピュータと、前記ホストコンピュータと前記ディスクアレイ装置とを管理するための管理コンピュータとを備えるコンピュータシステムであって、
    前記管理コンピュータは、第1メモリと、第1プロセッサとを備え、
    前記第1メモリは、前記ディスクプールの物理領域残量との比較に用いる所定の閾値を記憶し、
    前記第1プロセッサは、前記ディスクアレイ装置から前記ディスクプールにおける前記物理領域残量を取得し、また、前記複数のファイルシステムのうち物理領域を回収する対象となるファイルシステムの前記仮想ボリュームにおける前記物理領域が割り当てられているがファイルが格納されていない領域である無効領域の量を複数の前記ホストコンピュータから取得し、また、前記取得された無効領域の量の総和と予め定められた値とを比較し、前記取得された無効領域の量の総和が前記予め定められた値を超えている場合に、前記無効領域に割り当てられている物理領域の回収を指示するホストコンピュータの順序を決定し、また、前記物理領域残量が前記閾値よりも少ないか否かを判定し、前記物理領域残量が前記閾値よりも少ないことを判定した以降において、前記決定した順序に従って前記ホストコンピュータに前記無効領域に割り当てられている前記物理領域の回収要求を送信し、
    前記ホストコンピュータは、第2メモリと、第2プロセッサとを備え、
    前記第2メモリは、前記仮想ボリュームの前記物理領域が割り当てられている記憶領域の位置を示す書込み済み領域位置情報と、前記仮想ボリュームの前記ファイルが格納されている記憶領域を示すファイル位置情報とを記憶し、
    前記第2プロセッサは、所定の条件に基づいて、前記複数のファイルシステムの中から前記対象となるファイルシステムを決定し、前記管理コンピュータに前記無効領域の量を通知し、また、前記管理コンピュータから前記無効領域に割り当てられた物理領域の回収要求を受信した場合に、前記書込み済み領域位置情報と前記ファイル位置情報とに基づいて、前記対象となるファイルシステムにおける前記無効領域の位置を示す無効領域位置情報を生成して、前記ディスクアレイ装置に送信し、
    前記ディスクアレイ装置は、第3プロセッサを備え、
    前記第3プロセッサは、前記管理コンピュータにディスクプールの物理領域残量を送信し、また、前記ホストコンピュータから受信した無効領域位置情報に基づいて、前記仮想ボリュームの前記記憶領域に割り当てられている前記物理ディスクの前記物理領域を回収す
    ンピュータシステム。
JP2008024531A 2008-02-04 2008-02-04 コンピュータシステム及び物理ディスク回収方法 Expired - Fee Related JP5221157B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008024531A JP5221157B2 (ja) 2008-02-04 2008-02-04 コンピュータシステム及び物理ディスク回収方法
US12/081,855 US7925846B2 (en) 2008-02-04 2008-04-22 Computer system and garbage collection method of disk space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008024531A JP5221157B2 (ja) 2008-02-04 2008-02-04 コンピュータシステム及び物理ディスク回収方法

Publications (3)

Publication Number Publication Date
JP2009187142A JP2009187142A (ja) 2009-08-20
JP2009187142A5 JP2009187142A5 (ja) 2010-09-09
JP5221157B2 true JP5221157B2 (ja) 2013-06-26

Family

ID=40932840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008024531A Expired - Fee Related JP5221157B2 (ja) 2008-02-04 2008-02-04 コンピュータシステム及び物理ディスク回収方法

Country Status (2)

Country Link
US (1) US7925846B2 (ja)
JP (1) JP5221157B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101644569B1 (ko) * 2009-10-01 2016-08-01 삼성전자 주식회사 가상 프로세서 관리 장치 및 방법
US9052825B2 (en) 2010-08-30 2015-06-09 Vmware, Inc. System software interfaces for space-optimized block devices
US9411517B2 (en) 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
US9158940B1 (en) * 2011-07-19 2015-10-13 Open Invention Network, Llc Dynamic virtual storage creation and provisioning of virtual machine resources
WO2013093994A1 (ja) * 2011-12-19 2013-06-27 富士通株式会社 ストレージシステム、データリバランシングプログラム及びデータリバランシング方法
US8606755B2 (en) * 2012-01-12 2013-12-10 International Business Machines Corporation Maintaining a mirrored file system for performing defragmentation
US9443591B2 (en) 2013-01-23 2016-09-13 Seagate Technology Llc Storage device out-of-space handling
US9218281B2 (en) 2012-05-04 2015-12-22 Seagate Technology Llc Maintaining ordering via a multi-level map of a solid-state media
US9569113B2 (en) * 2012-10-11 2017-02-14 SK Hynix Inc. Data storage device and operating method thereof
US9235352B2 (en) * 2012-11-21 2016-01-12 Dell Products L.P. Datastore for non-overwriting storage devices
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102053865B1 (ko) 2013-03-15 2019-12-09 삼성전자주식회사 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템
WO2015001620A1 (ja) * 2013-07-02 2015-01-08 株式会社日立製作所 ストレージシステム、記憶制御方法、及び計算機システム
JP2015022504A (ja) * 2013-07-18 2015-02-02 富士通株式会社 情報処理装置、方法、及びプログラム
JP5958440B2 (ja) * 2013-09-02 2016-08-02 日本電気株式会社 仮想テープ制御装置、仮想テープ装置、制御方法、プログラムおよび記録媒体
US9245558B1 (en) 2014-05-09 2016-01-26 Western Digital Technologies, Inc. Electronic system with data management mechanism and method of operation thereof
JP6344675B2 (ja) 2014-08-12 2018-06-20 華為技術有限公司Huawei Technologies Co.,Ltd. ファイル管理方法、分散記憶システムおよび管理ノード
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
JP6524039B2 (ja) * 2016-09-23 2019-06-05 東芝メモリ株式会社 メモリシステム及び制御方法
US10095550B2 (en) * 2016-10-19 2018-10-09 International Business Machines Corporation Performance-based reallocating of logical processing units to sockets of a computer system
US10331555B1 (en) * 2018-03-06 2019-06-25 Western Digital Technologies, Inc. Dynamic memory compaction
KR20200095103A (ko) * 2019-01-31 2020-08-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN110221868B (zh) * 2019-05-31 2022-11-08 新华三云计算技术有限公司 主机系统的部署方法、装置、电子设备及存储介质
JP7323801B2 (ja) * 2019-11-06 2023-08-09 富士通株式会社 情報処理装置および情報処理プログラム
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
US11262922B1 (en) * 2020-08-07 2022-03-01 EMC IP Holding Company LLC Dynamic shared journal
US11531478B1 (en) * 2021-06-07 2022-12-20 Dell Products L.P. Optimizing memory usage to enable larger-sized deployments and client servicing
CN113625967B (zh) * 2021-07-26 2024-05-03 深圳市汉云科技有限公司 数据存储方法、数据查询方法及服务器
JP7429214B2 (ja) * 2021-10-07 2024-02-07 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ複製方法
CN114415963B (zh) * 2021-12-03 2023-09-19 武汉深之度科技有限公司 一种硬盘数据清理方法、装置及计算设备
US20240211129A1 (en) * 2022-12-23 2024-06-27 Netapp, Inc. Automated application detection and storage savings based on intelligent workload characterization

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065275A1 (en) * 2001-01-11 2002-08-22 Yottayotta, Inc. Storage virtualization system and methods
JP4175788B2 (ja) * 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
JP4438457B2 (ja) 2003-05-28 2010-03-24 株式会社日立製作所 記憶領域割当方法、システム及び仮想化装置
JP2006072789A (ja) * 2004-09-03 2006-03-16 Hitachi Ltd ストレージシステム及びストレージシステムのデータ管理装置
US7603532B2 (en) * 2004-10-15 2009-10-13 Netapp, Inc. System and method for reclaiming unused space from a thinly provisioned data container
US7130960B1 (en) * 2005-04-21 2006-10-31 Hitachi, Ltd. System and method for managing disk space in a thin-provisioned storage subsystem
US7702873B2 (en) * 2005-04-25 2010-04-20 Network Appliance, Inc. Managing common storage by allowing delayed allocation of storage after reclaiming reclaimable space in a logical volume
JP4694350B2 (ja) * 2005-11-08 2011-06-08 株式会社日立製作所 ストレージ装置の起動可能なディスクグループ数の管理
JP4927412B2 (ja) * 2006-02-10 2012-05-09 株式会社日立製作所 記憶制御方法及びその制御方法

Also Published As

Publication number Publication date
US20090198946A1 (en) 2009-08-06
US7925846B2 (en) 2011-04-12
JP2009187142A (ja) 2009-08-20

Similar Documents

Publication Publication Date Title
JP5221157B2 (ja) コンピュータシステム及び物理ディスク回収方法
JP4943081B2 (ja) ファイル格納制御装置及び方法
US9747036B2 (en) Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data
US9432256B2 (en) Resource management method and resource management system
US7007147B2 (en) Method and apparatus for data relocation between storage subsystems
US8745344B2 (en) Storage system using thin provisioning pool and snapshotting, and controlling method of the same
JP5276185B2 (ja) 仮想マシンと連携したThin−Provisioning容量管理を行う計算機システム、計算機、及び方法
US8984221B2 (en) Method for assigning storage area and computer system using the same
US7953949B2 (en) Data reallocation among storage systems
US7370142B2 (en) Command control method in network storage system
US8225059B2 (en) Remote copy system and remote copy control method
US20100011368A1 (en) Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms
US20040225659A1 (en) Storage foundry
US20090077327A1 (en) Method and apparatus for enabling a NAS system to utilize thin provisioning
WO2012004837A1 (en) Storage apparatus and storage management method
WO2011104741A1 (en) Management system for storage system and method for managing storage system
WO2012160589A1 (en) Data storage system and controlling method thereof
GB2496807B (en) Computer system, management method of the computer system, and program
US20100082715A1 (en) Reduced-Resource Block Thin Provisioning
US20190212944A1 (en) Garbage collection in data storage systems
US20120278442A1 (en) Server apparatus and method of controlling information system
JP7253007B2 (ja) ストレージシステム
JP6807354B2 (ja) ストレージシステムおよび情報管理方法
WO2013093960A1 (en) Storage system and method for controlling storage system
JP7143268B2 (ja) ストレージシステムおよびデータ移行方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100723

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130307

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

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5221157

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees