JP2014119898A - ストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラム - Google Patents

ストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラム Download PDF

Info

Publication number
JP2014119898A
JP2014119898A JP2012273776A JP2012273776A JP2014119898A JP 2014119898 A JP2014119898 A JP 2014119898A JP 2012273776 A JP2012273776 A JP 2012273776A JP 2012273776 A JP2012273776 A JP 2012273776A JP 2014119898 A JP2014119898 A JP 2014119898A
Authority
JP
Japan
Prior art keywords
capacity
area
virtual
free capacity
volume
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.)
Pending
Application number
JP2012273776A
Other languages
English (en)
Inventor
Yosuke Mineshita
陽介 峯下
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2012273776A priority Critical patent/JP2014119898A/ja
Publication of JP2014119898A publication Critical patent/JP2014119898A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 Thin Provisioningを利用した仮想ボリュームに対する、割り当てが可能な最大容量を超える容量の書き込みを防ぐストレージ管理装置を提供する。
【解決手段】 本発明のストレージ管理装置は、仮想ボリュームの使用中の区画に実ボリュームの領域を割り当て、サーバから前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリュームの空き容量である第2の空き容量を取得する取得手段と、前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバに送信する設定手段とを含む。
【選択図】 図9

Description

本発明はストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラムに関し、特に、仮想ボリュームを利用するシステムにおけるストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラムに関する。
近年情報量が爆発的に増加しているために、ストレージに保存されるデータ量の将来の飛躍的な増大を見込んだストレージへの投資が行われることがある。その場合、将来のデータ量の予測に基づくストレージの容量と、現在のデータ量の乖離により、ストレージの利用効率の低下が起こる。ストレージの利用効率の低下を軽減する方法に、Thin Provisioningと呼ばれる方法がある。Thin Provisioningでは、例えば将来的に必要な容量の、サーバがストレージとして認識する仮想ボリュームが、サーバに割り当てられる。仮想ボリュームには、仮想ボリュームの容量以下の物理容量のストレージが割り当てられる。サーバが仮想ボリュームに格納したデータは、仮想ボリュームに割り当てられているストレージに格納される。仮想ボリュームに対するストレージの割り当ては、適宜追加される。
このように、Thin Provisioningを利用している場合、サーバが実際にデータを格納できる、仮想ボリュームに割り当てられいるストレージの物理容量は、サーバが仮想ボリュームの容量として認識する容量以下である。
特許文献1には、シン・プロビジョニング・ボリュームへのディスク割当量やシン・プロビジョニング・ボリュームのホスト使用量を監視する容量監視サーバが記載されている。そして、容量監視サーバは、同容量の論理ボリュームを静的に割り当てる場合と比べて、シン・プロビジョニング・ボリュームによって節約される物理ディスクの容量を算出する。また、容量監視サーバは、シン・プロビジョニング・ボリュームに割り当てられた物理ディスクのうち、使用されていない容量を算出する。容量監視サーバは、算出したこれらの容量を表示する。
特許文献2には、業務サーバと、ストレージ装置と、管理サーバを含む計算機システムが記載されている。ストレージ装置は、一つ以上の論理ユニットの記憶領域をストレージプールとして管理する。ストレージ装置は、シン・プロビジョニングによって実現されたボリュームを業務サーバ上のアプリケーションプログラムに提供する。ストレージ装置は、シン・プロビジョニング・ボリュームへの書き込み要求を受けると、ストレージプールの未使用領域を、書き込み要求を受けたシン・プロビジョニング・ボリュームに割り当てる。ストレージプールの未使用領域は、どのシン・プロビジョニング・ボリュームにも割り当てられていない領域である。管理サーバは、ストレージプールの未使用領域の容量である未使用容量を監視する。管理サーバは、ストレージプールの使用容量の増加速度と未使用領域の容量から、業務サーバが所定の期間稼働するために必要な記憶容量がストレージプールに存在するか否かを判定する。存在しないと判定された場合、管理サーバは、優先度の低いアプリケーションの書き込みの制限や稼働停止の指示を行う。あるいは、管理サーバは、優先度の低いアプリケーションから書き込み要求が行われたボリュームへの記憶領域の割り当ての禁止や、優先度の高いアプリケーションから書き込み要求が行われたボリュームへの記憶領域の優先的な割り当てを行う。
特開2007−316725号公報 特開2008−097502号公報
Thin Provisioningには、容量の利用効率の向上と導入時のHDD(Hard disk drive)数を抑えてスモールスタートを可能とする利点がある。しかし、Thin Provisioningには、以下のような大きな課題もある。
前述のようにThin Provisioningを利用した仮想ボリュームには、その仮想ボリュームの容量以下の容量の記憶領域が割り当てられる。仮想ボリュームに書き込みを行うサーバが、仮想ボリュームの容量として認識する容量は、仮想ボリュームに割り当てられている記憶領域の容量以上の容量である。
サーバが、仮想ボリュームに割り当てられている記憶領域に書き込み可能な容量を超えるサイズの書き込みを、仮想ボリュームに対して行うと、一般に、仮想ボリュームに割り当てられている記憶領域が増やされる。しかし、サーバが、仮想ボリュームに対して、仮想ボリュームに割り当て可能な記憶領域の容量を超えるサイズの書き込みを行うことも考えられる。そのような場合、仮想ボリュームに書き込みを行ったアプリケーションのクラッシュや、仮想ボリュームのファイルシステムの破壊などの、重大な不具合が発生することがある。
例えば、仮想ボリュームがSAN(Storage Area Network)によってサーバに提供されている場合、サーバは、未割り当ての記憶領域の容量を含む、仮想ボリュームに割り当てられる記憶領域の最大容量を必ずしも認識できない。仮想ボリュームの容量として設定されている容量が、仮想ボリュームに割り当てられる記憶領域の最大容量より大きくても、サーバは、設定されている容量を、仮想ボリュームの容量として認識する。サーバが、そのような仮想ボリュームに、仮想ボリュームに割り当てられる最大容量を超える書き込みを行った場合、仮想ボリュームを提供するストレージシステムは、書き込みを行える空き容量がないので、サーバにエラーを返す。一方、サーバは、設定されている仮想ボリュームの容量まで、仮想ボリュームへの書き込みが可能であると認識している。仮想ボリュームの容量を超えない書き込みに対してエラーが返されると、サーバは、仮想ボリュームのファイルシステムの管理情報と、仮想ボリュームの実際の状態に、不整合が生じたと認識する。そのため、仮想ボリュームに書き込みを行ったアプリケーションのクラッシュが発生する場合がある。また、仮想ボリュームのファイルシステムの破壊や、ファイルシステムの破壊に伴うデータの損失が発生するおそれもある。
また、ストレージシステムでは、仮想ボリュームに割り当てるための記憶領域である仮想プールが、RAID(Redundant Array of Independent Disks)により構成されることも多い。また、サーバが、複数の仮想ボリュームに対して、一つの仮想プールから記憶領域の割り当てを行うことがある。すなわち、複数の仮想ボリュームが一つの仮想プールを共有することがある。この場合、いずれかの仮想ボリュームに、仮想プール未割り当ての記憶領域の容量を超える記憶領域の追加が必要な書き込みが発生すると、その仮想ボリュームにファイルシステムの破壊などの重大な不具合が発生する。また、その仮想ボリュームに仮想プールの未割り当ての記憶領域が全て割り当てられるので、その仮想プールには、仮想ボリュームに割り当てることが可能な、未割り当ての記憶領域が無くなる。以降、その仮想プールを共有する仮想ボリュームに、記憶領域の割り当ての追加が必要な書き込みが発生すると、その仮想ボリュームには、重大な不具合が発生する。すなわち、未割り当ての記憶領域が無くなった仮想プールを共有する仮想ボリュームの全てに、連鎖的に、ファイルシステムの破壊などの重大な不具合が発生する可能性がある。
特許文献1及び特許文献2の技術では、Thin Provisioningを利用した仮想ボリュームに対する、書き込みが可能な最大容量を超える容量の書き込みを防ぐことはできない。
本発明の目的は、Thin Provisioningを利用した仮想ボリュームに対する、割り当てが可能な最大容量を超える容量の書き込みを防ぐストレージ管理装置を提供することにある。
本発明のストレージ管理装置は、仮想ボリュームの使用中の区画に実ボリュームの領域を割り当て、サーバから前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリュームの空き容量である第2の空き容量を取得する取得手段と、前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバに送信する設定手段とを含む。
本発明のストレージ管理方法は、仮想ボリュームの使用中の区画に実ボリュームの領域を割り当て、サーバから前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリュームの空き容量である第2の空き容量を取得する取得手段と、前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバに送信する設定手段とを含む。
本発明のストレージ管理プログラムは、コンピュータを、仮想ボリュームの使用中の区画に実ボリュームの領域を割り当て、サーバから前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリュームの空き容量である第2の空き容量を取得する取得手段と、前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバに送信する設定手段として動作させる。
本発明には、Thin Provisioningを利用した仮想ボリュームに対する、割り当てが可能な最大容量を超える容量の書き込みを防ぐことができるという効果がある。
図1は、第1の実施形態の情報処理システム100の構成を表すブロック図である。 図2は、仮想ボリュームと仮想プール30の例を表す図である。 図3は、仮想ボリュームの構成の推移の例を表す図である。 図4は、第1の実施形態のストレージ管理装置1の動作を表すフローチャートである。 図5は、第1の実施形態の割り当て記憶部11に記憶されている、未割り当て容量と空き容量の組を含む値の例を表す図である。 図6は、第2の実施形態のストレージ管理装置1の動作を表すフローチャートである。 図7は、第2の実施形態の割り当て記憶部11に記憶されている、未割り当て容量と空き容量の組を含む値の例を表す図である。 図8は、第1の実施形態の構成例の情報処理装置100Aの構成を表すブロック図である。
図9は、第3の実施形態のストレージ管理装置1Bの構成を表すブロック図である。
(第1の実施形態)
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は、本実施形態の情報処理システム100の構成を表すブロック図である。
図1を参照すると、情報処理システム100は、ストレージ管理装置1と、サーバ2と、ストレージシステム3を含む。ストレージ管理装置1は、サーバ2と、ストレージシステム3にそれぞれ接続されている。サーバ2と、ストレージシステム3は、ネットワーク4を介して接続されている。ストレージ管理装置1は、サーバ2に含まれていてもよい。ストレージシステム3は、サーバ2に含まれていても構わない。ネットワーク4は、例えば、ファイバーチャネルによって実現される。
また、情報処理システム100は、複数のサーバ2を含んでいてもよい。その場合、ストレージ管理装置1は、それぞれのサーバ2に対して、以下で説明する動作を行えばよい。情報処理システム100は、複数のストレージシステム3を含んでいてもよい。その場合、ストレージ管理装置1は、ストレージシステム3毎に、以下で説明する動作を行えばよい。
ストレージ管理装置1は、取得部10と、割り当て記憶部11と、設定部12を含む。
サーバ2は、ファイル管理部20を含む。
ストレージシステム3は、記憶領域である仮想プール30と、ストレージ制御部31を含む。
仮想プール30は、ストレージシステム3が一つの記憶装置として扱える、論理的な記憶装置である。仮想プール30は、HDDやその他の記憶装置、すなわち記憶デバイスを、1個以上使用して構成される。仮想プール30は、例えばRAIDにより構成された論理記憶装置である。仮想プール30は、例えばRAIDにより構成された論理記憶装置を、複数使用して構成されていてもよい。仮想プール30は、ストレージプールとも、実ボリュームとも呼ばれる。
ストレージ制御部31は、Thin Provisioningを利用して構成された仮想的な記憶装置である仮想ボリュームを、サーバ2に提供する。サーバ2は仮想ボリュームを記憶装置として認識する。ストレージ制御部31は、仮想ボリュームの、サーバ2がデータを格納した領域に、仮想プール30内の領域を割り当てる。ストレージ制御部31は、仮想ボリュームを、複数の区画に分割し、区画毎に仮想プール30内の領域を割り当てればよい。ストレージ制御部31は、サーバ2により仮想ボリュームに書き込まれたデータを、仮想ボリュームに割り当てられた仮想プール30内の領域に格納する。
ストレージ制御部31は、仮想ボリューム内の、データが格納されていない区画には、仮想プール30内の領域を必ずしも割り当てない。ストレージ制御部31が仮想ボリュームに仮想プール30内の領域を割り当てる方法は、Thin Provisioningを利用した既存の任意の方法でよい。例えば、ストレージ制御部31は、仮想ボリューム内のデータが格納されている区画にだけ、仮想プール30内の領域を割り当てる。そして、ストレージ制御部31は、仮想ボリュームに対するデータの書き込みが発生した場合に、データの書き込み先に仮想プール30内の領域を割り当てる。あるいは、ストレージ制御部31は、仮想ボリューム内の、データが格納されていない区画の一部と、データが格納されている区画に、仮想プール30内の領域を割り当てる。ストレージ制御部31は、仮想ボリューム内の、仮想プール30内の領域が割り当てられている領域の、データが格納されていない領域が所定容量未満になった場合に、所定容量の仮想プール30内の領域を仮想ボリュームに割り当てる。仮想プール30の領域が割り当てられていない、仮想ボリューム内の領域は、空き領域とも呼ばれる。仮想プール30の領域が割り当てられていない、仮想ボリューム内の領域の容量は、空き容量とも呼ばれる。仮想プール30の領域が割り当てられている、仮想ボリューム内の領域あるいは区画は、使用中の領域あるいは使用中の区画とも呼ばれる。
ストレージ制御部31は、1台以上のサーバ2のそれぞれに、1台以上の仮想ボリュームを提供していてもよい。1つの仮想ボリュームは、1台のサーバ2に提供される。ストレージ制御部31は、複数の仮想ボリュームに、1つの仮想プールから領域を割り当ててもよい。
図2は、仮想ボリュームと仮想プール30の例を表す図である。
図2の例では、ストレージシステム3は、少なくとも一部の領域に、仮想プール30の領域が割り当てられた、仮想ボリューム200をサーバ2に提供する。仮想ボリューム200の、仮想プール30のサーバ2用の領域302が割り当てられている領域が、割り当て済み領域202である。仮想プール30のの領域が割り当てられていない領域が、未割り当て領域201である。
図2の例では、ストレージシステム3は、他のサーバ2に対しても、少なくとも一部の領域に、仮想プール30の領域が割り当てられた、仮想ボリューム200とは別の仮想ボリューム200Aを提供する。仮想ボリューム200Aの、仮想プール30の他のサーバ2用の領域302Aが割り当てられている領域が、割り当て済み領域202Aである。仮想プール30のの領域が割り当てられていない領域が、未割り当て領域201Aである。
仮想プール30の、どの仮想ボリュームにも割り当てられていない領域が、空き領域301である。
割り当て済み領域202にデータを格納するための余地が無くなった場合、ストレージシステム3は、空き領域301から仮想ボリューム200に、領域を新しく割り当てる。図2の例では、ストレージシステム3は、空き領域301内の領域303を、仮想ボリューム200の未割り当て領域201内の領域203に割り当てる。
さらに、ストレージ制御部31は、仮想プール30内の、いずれの仮想ボリュームにも割り当てられていない領域である、空き領域の容量を、ストレージ管理装置1に送信する。また、ストレージ制御部31は、仮想ボリューム内の、仮想プール30内の領域が割り当てられていない領域である、未割り当て領域の容量を、ストレージ管理装置1に送信する。仮想プール30が複数存在する場合、ストレージ制御部31は、さらに、仮想プール30の識別子を、ストレージ管理装置1に送信する。サーバ2が使用する仮想ボリュームが複数存在する場合、さらに、仮想ボリュームの識別子を、ストレージ管理装置1に送信する。サーバ2が複数存在する場合、ストレージ制御部31は、さらに、仮想ボリュームを使用するサーバ2の識別子を、ストレージ管理装置1に送信する。
ファイル管理部20は、サーバ2の図示されないプロセッサから、仮想ボリュームへのデータの入出力の指示を受信し、指示に従って仮想ボリュームへのデータの入出力を行う。ファイル管理部20は、ファイルシステムを利用して、仮想ボリュームに対して、書き込みや読み出しや削除等のデータの操作を行う。ファイル管理部20は、データを、ファイルとして、仮想ボリュームに格納する。仮想ボリュームにファイルとして格納されたデータの管理情報は、仮想ボリュームのファイル管理領域に格納される。
また、ファイル管理部20は、プロテクト領域を作成する指示を、設定部12から受信する。プロテクト領域を作成する指示は、サーバ2が書き込みを行えない領域であるプロテクト領域の容量の情報を含む。プロテクト領域を作成する指示を受信したファイル管理部20は、受信した容量のプロテクト領域を、仮想ボリュームの未割り当て領域内に設定する。ファイル管理部20は、仮想ボリューム内の未割り当て領域の範囲を、例えばストレージシステム3から取得してもよい。そして、ファイル管理部20は、仮想ボリューム内の未割り当て領域内に、プロテクト領域を設定すればよい。仮想ボリュームで、仮想プール30の領域が割り当てられる順序が、例えば仮想ボリュームの先頭あるいは末尾から順次割り当てるように、予め定まっている場合、ファイル管理部20は、仮想ボリューム内の未割り当て領域の範囲を取得しなくて良い。ファイル管理部20は、仮想ボリューム内の、仮想プールの領域が割り当てられる順番が最も遅い方から、受信したプロテクト領域の容量分の領域を選択し、選択された領域をプロテクト領域に設定すればよい。
ファイル管理部20によるプロテクト領域の設定方法は、プロテクト領域として設定された仮想ボリューム内の領域に、サーバ2が書き込めないようにする方法であれば、任意でよい。ファイル管理部20は、仮想ボリュームのファイル管理領域の管理情報を変更して、受信した容量のアクセスできない領域を、仮想ボリュームの空き領域内に生成すればよい。例えば、ファイル管理部20は、仮想ボリュームのファイル管理領域に格納されている管理情報に、プロテクト領域全体を占め、書き込みを行えないファイルの、エントリだけを生成する。ただし、ファイル管理部20は、プロテクト領域には書き込みなどのアクセスを行わない。ストレージシステム3は、プロテクト領域に、仮想プールの領域を割り当てない。
また、ファイル管理部20は、プロテクト領域の容量を含む、プロテクト領域の容量を変更する指示を、ストレージ管理装置1の設定部12から受信する。プロテクト領域の容量を変更する指示を受信したファイル管理部20は、プロテクト領域の容量を、受信した容量に変更する。また、ファイル管理部20は、プロテクト領域を削除する指示を受信する。プロテクト領域を削除する指示を受信したファイル管理部20は、プロテクト領域を削除する。
なお、プロテクト領域を生成する指示、プロテクト領域の容量を変更する指示、及びプロテクト領域を削除する指示は、いずれも、プロテクト領域の容量そのものであってもよい。プロテクト領域の容量を受信した場合、ファイル管理部20は、プロテクト領域が無ければ、受信した容量のプロテクト領域を生成する。ファイル管理部20は、受信した容量と仮想ボリュームに存在するプロテクト領域の容量が異なっていれば、プロテクト領域の容量を受信した容量に変更する。ファイル管理部20は、受信したプロテクト領域の容量が0であり、仮想ボリュームにプロテクト領域が存在している場合、プロテクト領域を削除する。受信したプロテクト領域の容量と、仮想ボリュームに存在するプロテクト領域の容量が等しければ、ファイル管理部20は何もしない。
ファイル管理部20は、例えば取得部10からの要求に応じて、仮想ボリューム内に存在するプロテクト領域の容量を、取得部10に送信してもよい。
図3は、仮想ボリュームの構成の推移の例を表す図である。
図3の例では、仮想ボリュームは1から15までの区画に分割されている。(a)の状態では、1から4の区画に仮想プール30の領域が割り当てられている。これらの区画が、図2の割り当て済み領域202である。6から15までの区画には、仮想プール30の領域は割り当てられていない。これらの区画が、図2の未割り当て領域201である。
(a)の状態と(b)の状態の間で、仮想ボリュームの区画に新しく仮想プール30の領域が割り当てられている。
(b)の状態では、区画5にも仮想プールの領域が割り当てられている。区画5が、図2の領域203に相当する。6から15までの区画が、未割り当て領域201である。また、区画2は、格納されていたデータが削除された区画である。仮想ボリューム内の一旦仮想プール30の領域が割り当てられると、その領域に格納されていたデータが削除されても、仮想プール30の領域の割り当ては解除されない。
(b)の状態と(c)の状態の間で、ファイル管理部20はストレージ管理装置1の設定部12から、プロテクト領域を設定する指示を受信する。
(c)の状態では、13から15までの領域が、プロテクト領域である。プロテクト領域は、未割り当て領域201内に設定されている。
取得部10は、ストレージ制御部31から、仮想プール30内の、いずれの仮想ボリュームにも割り当てられていない、空き領域の容量を取得する。空き領域の容量は、空き容量とも表記される。また、取得部10は、ストレージ制御部31から、仮想プール30から領域が割り当てられる仮想ボリューム内の、仮想プール30内の領域が割り当てられていない、未割り当て領域の容量を取得する。未割り当て領域の容量は、未割り当て容量とも表記される。取得部10は、取得された空き領域の容量及び未割り当て領域の容量の組を、割り当て記憶部11に格納する。
割り当て記憶部11は、空き領域の容量及び未割り当て領域の容量の組をを記憶する。
設定部12は、未割り当て領域の容量より空き領域の容量が小さい場合、未割り当て領域から空き領域を引いた容量のプロテクト領域を生成する指示を、サーバ2に送信する。
次に、本実施形態のストレージ管理装置1の動作について、図面を参照して詳細に説明する。
図4は、本実施形態のストレージ管理装置1の動作を表すフローチャートである。
ストレージ管理装置1は、例えば所定の時間毎に、図4の動作を行う。一つの仮想プールから、複数の仮想ボリュームに領域が割り当てられている場合、全ての仮想ボリュームに対して、図4の動作を行えばよい。さらに、複数の仮想プールが存在する場合は、仮想プール毎に、図4の動作を行えばよい。
まず、取得部10が、ストレージシステム3のストレージ管理部31から、仮想ボリュームの未割り当て領域の容量と、仮想プール30の空き領域の容量を取得する(ステップS101)。仮想プール30の空き領域の容量である空き容量は、仮想ボリュームに新たに割り当てることが可能な領域の容量である割り当て可能容量である。取得部10は、取得された、未割り当て容量と空き容量の組を、割り当て記憶部11に格納する。同じ仮想ボリュームと仮想プールの組み合わせの、未割り当て容量と空き容量の組が、割り当て記憶部11に格納されている場合、取得部10は、値を上書きすればよい。
ストレージシステム3が複数の仮想ボリュームを提供する場合、取得部10は、さらに、仮想ボリュームの識別子(ID、Identifier)を取得する。複数のサーバ2が存在する場合、取得部10は、さらに、サーバ2の識別子を取得する。取得部10は、さらに、仮想ボリュームの容量を取得してもよい。それぞれ別の仮想プール30を含む複数のストレージシステム3が存在していたり、1台のストレージシステム3が複数の仮想プール30を含んでいる場合、取得部10は、さらに、仮想プールの識別子を取得する。これらの場合、取得部10は、さらに、取得された上述の、仮想ボリュームの識別子や、サーバ2の識別子や、仮想ボリュームの容量や仮想プールの識別子を、前述の未割り当て容量と空き容量の組に対応付けて、割り当て記憶部11に格納する。
取得部10は、さらに、サーバ2から、仮想ボリュームの識別子と、例えばサーバ2で動作するアプリケーションプログラムが、その仮想ボリュームを識別するためのディスクの識別子を取得してもよい。また、取得部10は、サーバ2から、サーバ2がまだデータを格納していない、仮想ボリュームの領域の容量である、仮想ボリュームの空き容量を取得してもよい。ディスクの識別子は、例えば、ディスクのドライブ番号や取得部10は、設定されているプロテクト領域の容量を取得してもよい。この場合、取得部10は、さらに、取得されたディスクの識別子や、仮想ボリュームの空き容量や、プロテクト領域の容量を、前述の組に対応付けて、割り当て記憶部11に格納してもよい。
図5は、割り当て記憶部11に記憶されている、未割り当て容量と空き容量の組を含む値の例を表す図である。以下では、図5の例で表される情報は、統合マップとも表記される。
図5の「仮想プール番号」が、仮想プール30の識別子である。「仮想プール未割り当て物理容量」が、仮想プール30の空き容量である。「仮想ボリューム未割り当て容量」が、仮想ボリュームの未割り当て容量である。「サーバ割り当てディスク情報」が、ディスクの識別子である。「ファイルシステム空き容量」が、仮想ボリュームの、データが格納されていない領域の容量である。「プロテクト領域」が、プロテクト領域の容量である。
次に、未割り当て領域の容量が、空き領域(割り当て可能領域)の容量より小さい場合(ステップS102、Y)、ストレージ管理装置1は、処理を終了する。
未割り当て領域の容量が、空き領域(割り当て可能領域)の容量より大きい場合(ステップS102、N)、設定部12は、未割り当て領域の容量から空き領域の容量を引いた容量を算出する(ステップS103)。
設定部12は、算出された容量のプロテクト領域を、仮想ボリュームの未割り当て領域内に設定する指示を、サーバ2のファイル管理部20に送信する(ステップS104)。前述のようにプロテクト領域を設定する指示は、算出された容量(設定される仮想ボリュームの容量)そのものであってもよい。
指示を受信したファイル管理部20は、前述のように、仮想ボリュームのみ割り当て領域内に、受信した容量のプロテクト領域を設定する。
以上で説明した本実施形態には、Thin Provisioningを利用した仮想ボリュームに対する、割り当てが可能な最大容量を超える容量の書き込みを防ぐことができるという第1の効果がある。
その理由は、設定部12が、仮想ボリュームの未割り当て領域内に、サーバ2が書き込めないプロテクト領域を設定する指示を、サーバ2に対して送信するからである。設定部12は、プロテクト領域の容量を、仮想ボリュームの未割り当て領域の容量から仮想プールの空き領域の容量を引いた容量に設定する。仮想プールの空き領域の容量は、ストレージが仮想ボリュームに新たに割り当てることができる仮想プールの領域の容量である。仮想ボリュームの未割り当て領域内に上述の容量のプロテクト領域を設定することで、サーバ2は、仮想ボリュームに仮想プールの空き容量を全て割り当てた場合の仮想ボリュームのデータの書き込みが可能な容量が、仮想ボリュームの残り容量であると認識する。そのため、サーバ2は、仮想ボリュームに対して、書き込みが可能な最大容量を超える容量のデータを書き込むことが無くなる。
さらに、本実施形態には、仮想ボリュームに、割り当てが可能な最大容量を超える容量のデータが書き込まれることによって生じる、データの損失を防ぐことができるという第2の効果がある。
その理由は、第1の効果の理由と同じである。
仮想ボリュームに対して実際に書き込みが可能な範囲は、仮想プールから領域を割り当てることが可能な範囲に限られる。従って、サーバ2が、仮想ボリュームに対して、仮想プールから仮想ボリュームに領域を割り当てることが可能な容量を超える容量の書き込みを行った場合、仮想プールから領域が割り当てられていない領域にデータが書き込まれる、エラーが発生する。一方、サーバ2は、仮想ボリューム全体に書き込みが可能であると認識している。全体が書き込み可能であると認識されている仮想ボリュームへの書き込みによりエラーが発生した場合、サーバ2は、仮想ボリュームの状態と、仮想ボリュームのファイルシステムの管理情報に、不整合があると認識する。その場合、例えばサーバ2が自動的に仮想ボリュームのファイルシステムの修復を行おうとすることにより、ファイルシステムの管理情報が破壊され、仮想ボリュームに格納されているデータが失われることがある。設定部12が、前述のような容量のプロテクト領域を仮想ボリュームの未割り当て領域に設定することにより、仮想プールから仮想ボリュームに領域を割り当てることが可能な容量を超える容量の書き込みが、仮想ボリュームに対して行われなくなる。従って、データの損失を防ぐことができる。
また、本実施形態には、同一の仮想プールから複数の仮想ボリュームに領域が割り当てられる場合でも、上述の各効果がある。
その理由は、取得部10が、仮想ボリュームの未割り当て領域の容量と、仮想プールの空き領域の容量を、ストレージシステム3から取得するからである。従って、他の仮想ボリュームに仮想プールから領域が割り当てられ、仮想プールの空き領域の容量が変化しても、設定部12は、仮想プールの空き容量に応じた容量のプロテクト領域を設定することができる。
また、本実施形態には、同一の仮想プールから複数の仮想ボリュームに領域が割り当てられる場合に、各仮想ボリュームにおける連鎖的なエラーの発生やデータの損失を防ぐことができるという効果もある。いずれかの仮想ボリュームに対して、例えば仮想プールの空き領域が全て割り当てられる量のデータの書き込みが発生すると、他の仮想ボリュームに新たに割り当てることができる仮想プールの領域がなくなる。この場合、いずれかの仮想ボリュームに、さらに、新たに仮想プールの領域の割り当てが必要な量の書き込みが発生すると、前述のようにエラーが発生する。そして、その仮想ボリュームで、データの損失が発生するおそれがある。したがって、いずれかの仮想ボリュームで、仮想プールの空き領域が全て割り当てられる量のデータの書き込みが発生すると、他の仮想ボリュームでも、連鎖的にエラーが発生し、さらに、データの損失が発生するおそれがある。
本実施形態のストレージ管理装置1は、各仮想ボリュームに対して前述のプロテクト領域を設定することにより、いずれの仮想ボリュームでもエラーの発生やデータの損失を防ぐことができる。すなわち、本実施形態のストレージ管理装置1は、同一の仮想プールから複数の仮想ボリュームに領域が割り当てられる場合に、各仮想ボリュームにおける連鎖的なエラーの発生やデータの損失を防ぐことができる。
(第2の実施形態)
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
本実施形態の情報処理システム100の構成は、図1の、第1の実施形態の情報処理システム100の構成と同じである。
本実施形態では、ストレージシステム3は、複数の仮想ボリュームを、1台以上のサーバ2に提供する。各サーバ2に提供される仮想ボリュームは、1つであっても、複数であってもよい。また、各仮想ボリュームには優先順位が設定されている。複数の仮想ボリュームの優先順位が同じであってもよい。
取得部10は、仮想ボリュームの未割り当て容量と、その仮想ボリュームに領域が割り当てられる仮想プール30の空き容量の組と、仮想ボリュームの識別子と、その仮想ボリュームの優先順位を、ストレージシステム3から取得する。取得部10は、取得された組と優先順位とを対応付けて、割り当て記憶部11に格納する。取得部10は、さらに、複数のサーバ2の存在する場合はサーバ2の識別子を、複数の仮想プール30が存在する場合は仮想プール30の識別子を、ストレージシステム3から取得してもよい。その場合、取得部10は、取得されたサーバ2の識別子や仮想プール30の識別子を、未割り当て容量と空き容量の組に対応付けて、割り当て記憶部11に格納する。
設定部12は、各仮想ボリュームに対して、その仮想ボリュームの優先順位より優先順位が高い仮想ボリュームの未割り当て領域の容量の和を算出する。そして、空き領域の容量から、算出された容量の和を引いた容量を、その仮想ボリュームに対するプロテクト領域の容量にする。そして、その仮想ボリュームの提供先のサーバ2に対して、算出された容量のプロテクト領域を、仮想ボリュームの未割り当て領域内に設定する指示を送信する。
次に、本実施形態のストレージ制御装置1の動作について、図面を参照して詳細に説明する。
図6は、本実施形態のストレージ制御装置1の動作を表すフローチャートである。
ストレージ制御装置1は、例えば所定の時間毎に、スケジュールに従って、図6の動作を行う。仮想プールが複数存在する場合、ストレージ制御装置1は、各仮想プールに対して、図6の動作を行えばよい。
まず、取得部10は、仮想プールの空き容量(割り当て可能容量)と、その仮想プールから領域が割り当てられる各仮想ボリュームの、未割り当て領域の容量を、ストレージシステム3のストレージ制御部31から取得する(ステップS201)。本実施形態では、前述のように、取得部10は、さらに、各仮想ボリュームの識別子と優先順位を取得する。取得部10は、仮想ボリュームの識別子と、仮想ボリュームの未割り当て領域と、仮想ボリュームに領域が割り当てられる仮想プールの空き容量と、仮想ボリュームの優先順位を対応付けて、割り当て記憶部11に格納する。
複数の仮想プールが存在する場合、取得部10は、さらに、仮想プールの識別子を取得する。取得部10は、仮想ボリュームの容量や、仮想ボリュームのデータが格納されていない領域の容量や、設定されているプロテクト領域の容量や、仮想ボリュームのディスク番号を取得してもよい。この場合、取得部10は、ストレージ管理部31から取得した値を、仮想ボリューム毎に対応付けて、割り当て記憶部11に格納する。
図7は本実施形態の割り当て記憶部11に記憶されている、未割り当て容量と空き容量の組を含む値の例を表す図である。図7の例では、割り当て記憶部11は、図5の例に加えて、仮想ボリュームの優先順位を記憶している。
未選択の仮想ボリュームがある場合(ステップS202、Y)、設定部12は、未選択の仮想ボリュームから一つの仮想ボリュームを選択する(ステップS203)。設定部12は、例えば、優先順位が高い方から仮想ボリュームを選択することができる。
次に、設定部12は、選択された仮想ボリュームより優先順位が高い仮想ボリュームの、未割り当て領域の容量の和を算出する(ステップS204)。
設定部12は、仮想プールの空き容量から、算出された和を除外した除外後の空き容量を算出する(ステップS205)。ステップS205では、仮想プールの空き容量より算出された和が小さい場合、設定部12は、仮想プールの空き容量から算出された和を引くことで、除外後の空き容量を算出する。仮想プールの空き容量が算出された和以下である場合、設定部12は、仮想プールの空き容量から、空き容量を全て除外する。すなわち、この場合の除外後の空き容量は0である。この除外後の空き容量は、選択された仮想ボリュームより優先順位が高い仮想ボリュームの全ての未割り当て領域に、仮想プールから領域を割り当てた場合の、仮想プールの空き領域の容量である。ステップS205の動作は、優先順位が高い仮想ボリュームから順に、仮想ボリュームに仮想プール30の領域が割り当てられるようにするための動作である。
選択された仮想ボリュームの未割り当て容量が、除外後の空き容量以下である場合(ステップS206、N)、動作はステップS202に戻る。
選択された仮想ボリュームの未割り当て容量より、除外後の空き容量が小さい場合(ステップS206、Y)、設定部12は、選択された仮想ボリュームの未割り当て容量から除外後の空き容量を引いた容量を算出する(ステップS207)。
設定部12は、ステップS207で算出された容量のプロテクト領域を、選択された仮想ボリュームの未割り当て領域内に設定する指示を、選択された仮想ボリュームを利用するサーバ2のファイル管理部20に送信する(ステップS208)。前述のように、設定部12がサーバ2に送信するプロテクト領域を設定する指示は、設定されるプロテクト領域の容量を含む。設定部12がサーバ2に送信するプロテクト領域を設定する指示は、プロテクト領域の容量そのものであってもよい。サーバ2が複数の仮想ボリュームを利用している場合、設定部12は、加えて、仮想ボリュームの識別子を、サーバ2のファイル管理部20に送信すればよい。
指示を受信したサーバ2のファイル管理部20は、受信した容量のプロテクト領域を、仮想ボリュームの未割り当て領域内に設定する。
ステップS208の後、動作はステップS202に戻る。
設定部12が全ての仮想ボリュームを選択し終え、未選択の仮想ボリュームが存在しない場合(ステップS202、N)、ストレージ管理装置1は動作を終了する。
以上で説明した本実施形態には、第1の実施形態の各効果に加えて、優先順位の高い仮想ボリュームにおける、容量超過による書き込みの失敗を減少させることができるという効果がある。
その理由は、設定部12が、各仮想ボリュームに対して、仮想ボリュームの優先順位に応じて、上述ように算出された容量のプロテクト領域を設定するからである。上述のように、設定部12は、プロテクト領域を設定する対象の仮想ボリュームより優先順位が高い仮想ボリュームの、未割り当て領域の容量の和を算出する。そして、設定部12は、仮想プールの空き容量から、算出された和を除外した除外後の空き容量を算出する。前述のように、この除外後の空き容量は、プロテクト領域を設定する対象の仮想ボリュームより優先順位が高い仮想ボリュームの全ての未割り当て領域に、仮想プールから領域を割り当てた場合の、仮想プールの空き領域の容量である。プロテクト領域を設定する対象の仮想ボリュームの未割り当て容量より、除外後の空き容量が小さい場合、設定部12は、その仮想ボリュームの未割り当て容量から除外後の空き容量を引いた容量を、プロテクト領域の容量として算出する。設定部12は、算出された容量のプロテクト領域を、プロテクト領域を設定する対象の仮想ボリュームの未割り当て領域に設定する。
以上のように、仮想ボリュームのそれぞれに対して、その仮想ボリュームより優先順位が高い全ての仮想ボリュームの未割り当て領域に仮想プールから領域を割り当てられた状態における、プロテクト領域の容量が算出される。従って、優先順位が高い仮想ボリュームほど、プロテクト領域が設定されることによる書き込み可能な容量の減少が起きにくい。よって、優先順位が高い仮想ボリュームほど、プロテクト領域の設定によって生じる書き込み可能な容量の減少に起因する、容量超過による書き込みの失敗が減少する。
(第3の実施形態)
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。
図9は、本実施形態のストレージ管理装置1Bの構成を表すブロック図である。
図9を参照すると、本実施形態のストレージ管理装置1Bは、仮想ボリュームの使用中の区画に実ボリューム30の領域を割り当て、サーバ2から前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部31から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリューム30の空き容量である第2の空き容量を取得する取得部10と、前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバ2に送信する設定部12とを含む。
以上で説明した本実施形態には、第1の実施形態の第1の効果と同じ効果がある。
その理由は、第1の実施形態の第1の効果の理由と同じである。
(第1の実施形態の構成例)
次に、第1の実施形態の構成例について、図面を参照して詳細に説明する。
図8は、本構成例の情報処理装置100Aの構成を表すブロック図である。
図8を参照すると、情報処理装置100Aは、サーバ2Aと、ストレージシステム3を含む。サーバ2Aとストレージシステム3は接続されている。本構成例では、第1の実施形態のストレージ管理装置1として動作する連携モジュール1Aはサーバ2Aに含まれる。本構成例では、サーバ2Aに含まれるプロセッサと、そのプロセッサを第1の実施形態のストレージ管理装置1として動作させるプログラムにより、連携モジュール1Aが実現される。
提携モジュール1Aは、例えば図5の例のような統合マップである統合マップ101を記憶する割り当て記憶部11と、統合モジュール102と、ST(Storage)モジュール103と、SV(Server)モジュール104を含む。
STモジュール103は、ストレージシステム3から仮想ボリュームの物理容量等の情報入手を行う。SVモジュール104は、サーバ2A上のディスク情報やファイルシステム情報の入手を行い、ファイルシステム上にプロテクト領域を確保する指示を情報処理部210に送信する。統合モジュール102は、各モジュールへの指示を行い、ストレージシステム3の情報とサーバ2Aの情報を統合し統合マップ101として管理する。
統合モジュール102と、STモジュール103と、SVモジュール104が、第1の実施形態の取得部10として動作する。また、統合モジュール102と、SVモジュール104が、第1の実施形態の設定部12として動作する。
サーバ2Aは、第1の実施形態のファイル管理部20として動作する、情報処理部210を含む。本構成例では、サーバ2Aに含まれるプロセッサと、プロセッサが実行するOSと、プロセッサをファイル管理モジュール212として動作させるプログラムにより、情報処理部210が実現される。
ストレージシステム3は、ストレージアクセスモジュール311とメインコントローラ312を含むストレージ制御部31と、仮想プール30を含む。
まず、本変形例の概要を説明する。
連携モジュール1A内の統合モジュール102は、STモジュール103に、ストレージシステム3へのアクセスを、定期的に指示する。指示を受けたSTモジュール103は、仮想ボリュームでまだ割当てられていない物理容量、仮想プールでまだ仮想ボリュームに割当てられていない書き込み利用可能な物理容量を、ストレージシステム3から取得する。また、STモジュール103は、さらに、サーバ2Aに割当てられている仮想ボリューム番号、仮想ボリュームの仮想容量、仮想ボリュームを作成した仮想プール番号の情報等を、ストレージシステム3から取得する。
なお、本変形例の説明において、仮想ボリュームでまだ割当てられていない物理容量、仮想ボリュームでまだ割当てが発生していない未割当て仮想容量等は、上述の各実施形態の説明における、仮想ボリュームの未割り当て領域の容量である。また、仮想ボリュームに割り当てられている物理容量、仮想ボリュームの割り当て済み物理容量等は、上述の各実施形態の説明における、仮想ボリュームの割り当て済み領域の容量である。さらに、仮想プールの利用できる物理容量、仮想プールの利用可能な物理容量、仮想プールの割り当て可能な物理容量等は、上述の各実施形態の説明における、仮想プールの空き領域の容量である。
また同様に統合モジュール102は、SVモジュール104に、サーバ2AのOS211及びファイル管理モジュール212を含む情報処理部210へのアクセスを、定期的に指示する。指示を受けたSVモジュール104は、ストレージから割当てられたディスクの情報、ファイルシステムの空き容量の情報等を取得する。STモジュール103とSVモジュール104は、取得した情報を、統合モジュール102に渡す。統合モジュール102は、STモジュール103及びSVモジュール104から渡された情報を統合する。すなわち、統合モジュール102は、どの仮想ボリュームがOS上のどのディスクに割当てられているか、そのディスクの使用量がどの程度か、仮想ボリュームに割り当てられているかを、統合マップ101に入力する。
次に統合モジュール102は統合マップ101を確認し、仮想ボリュームでまだ割当てが発生していない未割当て仮想容量と、仮想プールの利用できる物理容量を比較する。このとき未割当て仮想容量が利用可能な物理容量より少ない場合は、連携モジュール1Aは、次の情報確認処理まで処理を停止する。未割当て仮想容量が物理容量より多い場合は、統合モジュール102は、仮想ボリュームの未割当て仮想容量と利用可能な物理容量の差を算出する。そして、統合モジュール102は、算出された差と等しいサイズのプロテクト領域を、仮想ボリューム上のファイル管理モジュール212と連携して確保するよう、SVモジュール104に指示する。
指示を受けたSVモジュール104は、ファイル管理モジュール212に働きかけて、プロテクト領域を確保させる。このときファイル管理モジュール212は、ファイルシステム上でまだ書き込みが発生しておらず、仮想プールから領域が割り当てられていない領域に、プロテクト領域を確保する。その理由は、仮想ボリュームに割り当てられている物理容量の情報と、ファイル管理モジュール212が認識している使用容量が異なることがあるためである。この現象は、Thin Provisioningを利用する場合、一度仮想プールから割当てられた物理容量は、仮想ボリュームから開放されないために生じる。ファイルシステム上では、ファイルなどが削除されてそのファイルの領域が開放されても、ストレージシステム3上では、仮想プールから仮想ボリュームに割り当てられた領域は、開放さない。そのため、仮想ボリュームの、ファイルシステム上では空き領域となっており、仮想プールの領域が既に割り当てられている領域に、サーバ2が書き込みを行っても、障害が発生することはない。しかし、ファイルシステム上では空き領域となっており、仮想プールの領域が既に割り当てられている、仮想ボリュームの領域に、プロテクト領域が確保された場合、サーバ2Aがその領域を利用できなくなる。さらに、仮想ボリュームの未割当て仮想容量と、仮想プールの利用可能な物理容量の差と等しいサイズのプロテクト領域が確保されていても、仮想ボリュームに仮想プールの領域が割り当てられない領域が生じる。そのため、ファイルシステム上利用できる容量の全てをサーバ2Aが利用しようとすると、障害が発生するおそれがある。そのため、ファイル管理モジュール212は、一度でもファイルシステムで割当てた領域が除外された空き領域に、プロテクト領域を確保する。
このプロテクト領域は、ファイルシステム上の容量の枠を確保するだけのための、実データがない領域である。ファイル管理モジュール212は、プロテクト領域のサイズ分の論理容量及び物理容量を、仮想ボリュームに実際に割当てない。しかし、プロテクト領域が確保されると、ファイルシステム上、確保した容量と同じだけ、仮想ボリュームの空き領域が使用されたように見える。そのため、プロテクト領域を確保することにより、書き込みできる容量を、仮想ボリュームに割り当て可能な物理容量に制限することができる。これにより、サーバ2Aからは、仮想ボリュームに割り当て可能な物理容量より大きい空き容量が、仮想ボリュームに存在しないように見える。そのため、サーバ2Aは、仮想ボリュームで実際に利用可能な物理容量以上の書き込みを、仮想ボリュームに行えない。その際、例えばサーバ2Aで動作するプログラムにより、サーバ2Aが、仮想ボリュームで実際に利用可能な物理容量以上の書き込みを行おうとした場合、ファイル管理モジュール212が、データが書き込まれることを防ぐ。そのため、容量超過になる書き込み自体は失敗するが、ファイルシステム自体が不整合を起こすことはない。そして、ファイルシステム上のデータが破壊されることはなくなる。そして、失敗した書き込み以外のデータを保護することが出来る。
また、提携モジュール1Aは、仮想ボリュームでまだ割当てられていない物理容量や、仮想プールでまだ仮想ボリュームに割当てられていない書き込み利用可能な物理容量の取得からプロテクト領域の確保までの処理を、定期的に繰り返す。これにより統合マップ101の情報は更新さる。そして、仮想ボリュームの空き容量と利用可能な物理容量との差が、確保されているプロテクト領域の容量と異なる場合、プロテクト領域の容量は変更される。これにより、同じ仮想プールから領域が割り当てられる他の仮想ボリュームを利用しているほかのサーバからの書き込みによる、仮想プールの利用可能な物理容量の変化にも対応することができる。前述のように、通常、サーバによるボリュームの管理はサーバ内で閉じているため、サーバは別のサーバの書き込み量に関しては感知できない。しかし、本発明の各実施形態では、別サーバの書き込みについても柔軟に対応することができる。これにより、物理容量を超える書き込みが発生した場合、ファイルシステム上、利用可能な物理容量より大きい空き容量は無いので、発生するエラーは、一般的な書き込み失敗と同様に、書き込み中のファイルの書き込み失敗だけである。サーバ2Aは、ファイルシステムが破壊されることを防ぐことができる。そして、サーバ2Aは、データ損失を最小限に抑えることができる。また一般的に困難とされている複数サーバ間での物理容量の使用率に合わせたデータ保護も実現される。
次に、本変形例について詳細に説明する。
割り当て記憶部11は、ストレージシステム3上の情報とサーバ2A上の情報が紐付けされている統合マップ101を記憶する。前述のように、図5は統合マップ101の一例を表す。統合マップ101は、プロテクト領域を確保するための情報を含む。統合マップ101は、例えば、、仮想プール番号、仮想プール未割当て容量、仮想ボリューム番号、仮想ボリュームサイズ、仮想ボリューム未割当て物理容量、サーバ割当てディスク番号、ファイルシステム空き容量を含む。仮想プール番号は、ストレージシステム3内で仮想プールを判別するための、一意に割り当てられた番号である。仮想プール番号により、ストレージシステム3内において対象の仮想プールがどの仮想プールであるか、判別することが可能である。仮想プール未割当て容量は、仮想プール内で、まだ仮想ボリュームに割当てられていない物理容量である。仮想プール未割当て容量により、あとどの位仮想ボリュームに領域を割当てられるか判断することが可能である。仮想ボリューム番号は、ストレージシステム3内で仮想ボリュームを判別するための、一意に割り当てられた番号である。仮想ボリューム番号により、対象の仮想ボリュームがどの仮想ボリュームであるか、ストレージシステム3内で判別することができる。仮想ボリュームサイズは、仮想ボリュームに設定されているボリュームサイズである。仮想ボリュームサイズにより、対象の仮想ボリュームが利用できる容量を判別することができる。仮想ボリューム未割当て物理容量は、仮想ボリュームでまだ割当てられない物理容量である。仮想ボリューム未割当て物理容量により、仮想ボリュームに設定されているサイズの内、まだ物理容量が割当てられていない容量が分かる。サーバ割当てディスク情報は、サーバ2A上で仮想ボリュームが割当てられているディスク情報である。サーバ割当てディスク情報により、SVモジュール104が連携するファイル管理モジュール212は、対象の仮想ボリュームがサーバ2A上のどのディスクとして割当てられているか判別できる。ファイルシステム空き容量は、対象の仮想ボリューム上に作成されたファイルシステム領域の空き容量である。ファイルシステム空き容量により、ファイルシステム内とストレージシステム3内の情報の差異の確認かできる。差異がある場合、プロテクト領域を確保する時、ファイルシステム上で書き込みが発生していない領域に、プロテクト領域を確保するように働きかけることができる。図5のプロテクト領域は、既に作成したプロテクト領域の容量である。まだプロテクト領域が確保されていない場合、プロテクト領域の容量は含まれない。プロテクト領域の容量により、物理容量が足りないボリュームに対して保護が働いているか確認することができる。また、次回の処理で実際の空き容量に変化があった場合、既に確保されている容量と算出された容量を比較することで、プロテクト領域のサイズ変更を行うことができる。そして、データを保護することができる。
統合モジュール102は、STモジュール103とSVモジュール104に、それぞれストレージシステム3の情報とサーバ2Aの情報を入手するように指示する第一の機能を有する。統合モジュール102は、STモジュール103とSVモジュール104が取得した情報を統合し、統合された情報を統合マップ101に入力する第二の機能を有する。統合モジュール102は、統合マップ101の情報を確認し、SVモジュール104へプロテクト領域を必要なサイズ確保する指示を出す第三の機能を有する。統合モジュール102は、確保、変更、または削除する指示が行われたプロテクト領域の容量情報を、統合マップ101に入力する第四の機能を有する。統合モジュール102は、STモジュール103及びSVモジュール104が情報を取得する間隔のタイムテーブルを管理し、定期的に各モジュールに情報を取得するように指示する第五の機能を有する。統合モジュール102は、既にプロテクト領域が確保されている場合、最新の統合マップ101の情報によって、確保されているプロテクト領域のサイズ変更が必要か判断し、サイズ変更が必要な場合サイズ変更をSVモジュール104に指示する第六の機能を有する。統合モジュール102は、プロテクト領域が確保されているボリュームの未割当て物理容量が、仮想ボリュームの未割当て容量を超えた場合、プロテクト領域を削除するように、SVモジュール104に指示する第七の機能を有する。
STモジュール103は、ストレージシステム3のストレージアクセスモジュール311にアクセスし、ストレージシステム3内の仮想プール及び仮想ボリュームについての情報を取得する第一の機能を有する。STモジュール103は、ストレージシステム3から取得した情報を統合モジュール102に渡す第二の機能を有する。
SVモジュール104は、サーバ2A上のOS211、ファイル管理モジュール212にアクセスて、OS及びファイルシステムについての情報を取得する第一の機能を有する。SVモジュール104は、入手した情報を統合モジュール102に渡す第二の機能を有する。SVモジュール104は、統合モジュール102からプロテクト領域の確保を指示された場合、ファイル管理モジュール212と連携して、ファイル管理モジュール212に、ファイルシステム上にプロテクト領域を確保させる第三の機能を有する。SVモジュール104は、ファイル管理モジュール212と連携して、ファイル管理モジュール212に、確保されているプロテクト領域の容量を変更させる第四の機能を有する。SVモジュール104は、ファイル管理モジュール212と連携して、ファイル管理モジュール212に、確保されているプロテクト領域を削除させる第五の機能を有する。
SVモジュール104の第三の機能の動作について、図4を用いて説明する。ファイル管理モジュール212は、例えばサーバ2Aで動作するプログラムやOS211からの指示に基づき、仮想ボリュームの割り当て済み領域202にデータを書き込む(図4(a))。ファイル管理モジュール212は、データを削除する指示を受信すると、ファイルシステムでデータが格納されていた領域(図4の例では、(b)の区画2)を開放することにより、データを論理的に削除する。但し、ファイル管理モジュール212は、ストレージシステム3と連携して物理領域を開放するわけではない。したがって、ストレージシステム3が仮想ボリュームに割り当てた割当て容量が、データの削除により変化することはない。SVモジュール104が、プロテクト領域を作成する指示を統合モジュール102から受信した場合、SVモジュール104は、プロテクト領域を確保する指示をファイル管理モジュール212に送信する。その際、SVモジュール104は、ファイル管理モジュール212に、データの書き込みが一度も行われておらず、仮想プールから領域(物理容量)が割り当てられていない領域に、プロテクト領域を確保させる。これにより、サーバ2A上とストレージシステム3上の割当て情報の差異に起因する物理領域不足が防止される。SVモジュール104の第四の機能でプロテクト領域の容量を増加させる場合、SVモジュール104は、仮想プールから領域(物理容量)が割り当てられていない領域を、プロテクト領域に追加する。
OS211は、第一の機能として、サーバ2AのOSとしてHW(Hardware)やアプリケーションを制御する一般的なOS機能を有する。OS211は、SVモジュール104からの指示を受け、OS上のディスク情報をSVモジュール104に渡す第二の機能を有する。
ファイル管理モジュール212は、第一の機能として、サーバ2Aの、仮想ボリュームを含むディスク領域に対して、ファイルシステムを作成し管理する一般的なファイル管理機能を有する。ファイル管理モジュール212は、SVモジュール104からの指示に基づき、ファイルシステム上の情報をSVモジュール104に渡す第二の機能を有する。ファイル管理モジュール212は、プロテクト領域を確保する指示をSVモジュール104から受信した場合、一度も書き込みが行われていない、物理容量が割り当てられてない領域に、指定された容量のプロテクト領域を確保する第三の機能を有する。ファイル管理モジュール212は、プロテクト領域の容量を変更する指示をSVモジュール104から受信した場合、プロテクト領域の容量を、指示された容量に変更する第四の機能を有する。ファイル管理モジュール212は、プロテクト領域の容量を増加させる場合、プロテクト領域の作成時と同様、物理容量が割り当てられてない領域をプロテクト領域に割り当てる。ファイル管理モジュール212は、プロテクト領域を削除する指示をSVモジュール104から受信した場合、プロテクト領域を削除する第五の機能を有する。
ストレージアクセスモジュール311は、STモジュール103から受信した指示に基づき、指示された情報を収集する指示を、ストレージシステム3のメインコントローラ312に送信する第一の機能を有する。ストレージアクセスモジュール311は、収集された情報をメインコントローラ312から取得し、STモジュール103に渡す第二の機能を有する。
メインコントローラ312は、ストレージシステム3のメインコントローラとしてメモリ情報の管理やHDDの管理等一般的なストレージシステム3の管理を行う第一の機能を有する。メインコントローラ312は、ストレージアクセスモジュール311から受信した指示によって指定された情報を、収集してストレージアクセスモジュール311に渡す第二の機能を有する。
次に、本変形例の動作について図面を参照して説明する。
以下では、連携モジュール1Aによるプロテクト領域の確保までの動作について説明する。
まず、統合モジュール102は、統合モジュール102内にあるタイムテーブルに従って処理を開始する。次に、統合モジュール102は、STモジュール103にストレージシステム3の情報を取得する指示を送信し、SVモジュール104にサーバ2Aの情報を取得する指示を送信する。STモジュール103は、まず、ストレージアクセスモジュール311に、ストレージシステム3の情報の取得を指示する。
指示を受信したストレージアクセスモジュール311、ストレージシステム3を管理しているメインコントローラ312に、ストレージシステム3の情報の取得を指示する。メインコントローラ312は、ストレージアクセスモジュール311に情報を送信する。情報を取得したストレージアクセスモジュール311は、STモジュール103にストレージシステム3の情報を送信する。
SVモジュール104は、OS211とファイル管理モジュール212に、情報の取得を指示する。指示を受信したOS211とファイル管理モジュール212は、それぞれOS211とファイルシステムの情報を、SVモジュール104へ送信する。
情報を取得したSTモジュール103とSVモジュール104は、それぞれ、統合モジュール102に取得した情報を送信する。2つのモジュールから情報を取得した統合モジュール102は、取得した情報を統合マップ101に入力する。その際、統合マップ101が存在しなければ、統合モジュール102は統合マップ101を生成する。
その後、統合モジュール102は統合マップ101の情報を確認する。情報を確認した統合モジュール102は、仮想プールの未割当て容量が仮想プールの未割当て物理容量を超えているかを確認する。
仮想プールの未割当て物理容量より仮想ボリュームの未割当て容量のほうが大きい場合、統合モジュール102は、プロテクト領域が存在するか確認する。
プロテクト領域が存在しない場合、統合モジュール102は、割当てが出来ない物理容量分のプロテクト領域を作成する指示をSVモジュール104に送信する。このとき、統合モジュール102は、プロテクト領域の情報を統合マップ101に入力する。指示を受信したSVモジュール104は、仮想プールから領域が割り当てられていない、仮想ボリュームの未割当て領域に、指定したサイズのプロテクト領域を作成する指示を、ファイル管理モジュール212に送信する。ファイル管理モジュール212は、仮想ボリュームの未割当て領域にプロテクト領域を確保する。プロテクト領域の確保の完了後、統合モジュール102は、統合マップ101に、プロテクト領域の情報を入力する。そして、連携モジュール1Aは、統合モジュール102内のタイムテーブルによって処理が再開されるまで、処理を停止する。
プロテクト領域が存在する場合、統合モジュール102は、統合マップ101を確認して、既存のプロテクト領域の容量と、算出されたプロテクト領域の容量を比較する。双方の容量が異なる場合、統合モジュール102は、算出された容量のプロテクト領域が確保されるように、プロテクト領域の容量を変更する指示をSVモジュール104に送信する。指示を受信したSVモジュール104は、ファイル管理モジュール212に、プロテクト領域の容量を変更する指示を送信する。ファイル管理モジュール212は、指示された容量のプロテクト領域を確保する。このとき、プロテクト領域の容量が増加する場合、ファイル管理モジュール212に、増加部分を含めたプロテクト領域全体を、未割当て領域内に確保する。処理の完了後、統合モジュール102は、統合マップ101にプロテクト領域の情報を入力する。そして、連携モジュール1Aは、統合モジュール102内のタイムテーブルによって処理が再開されるまで、処理を停止する。
仮想ボリュームの未割当て容量が仮想プールの未割当て物理容量を超えていない場合、統合モジュール102は、プロテクト領域が存在するか確認する。プロテクト領域が存在しない場合、連携モジュール1Aは、一旦処理を停止する。そして、連携モジュール1Aは、統合モジュール102内のタイムテーブルに沿って処理を再開する。プロテクト領域が存在する場合、統合モジュール102は、SVモジュール104にプロテクト領域を削除する指示を送信する。SVモジュール104は、プロテクト領域を削除する指示をファイル管理モジュール212に送信する。ファイル管理モジュール212は、プロテクト領域を削除する。プロテクト領域が削除されると、ス統合モジュール102は、統合マップ101にプロテクト領域の情報を入力する。そして、連携モジュール1Aは、統合モジュール102内のタイムテーブルによって処理が再開されるまで、処理を停止する。
ストレージ管理装置1、サーバ2、ストレージシステム3は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
取得部10、設定部12、ファイル管理部20、ストレージ制御部31は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。また、割り当て記憶部11、仮想プール30は、コンピュータが含むメモリやハードディスク装置により実現することができる。あるいは、取得部10、割り当て記憶部11、設定部12、ファイル管理部20、仮想プール30、ストレージ制御部31の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1、1B ストレージ管理装置
1A 連携モジュール
2、2A サーバ
3 ストレージシステム
4 ネットワーク
10 取得部
11 割り当て記憶部
12 設定部
20 ファイル管理部
30 仮想プール(記憶デバイス)、実ボリューム
31 ストレージ制御部
101 統合マップ
102 統合モジュール
103 STモジュール
104 SVモジュール
200、200A 仮想ボリューム
201、201A 未割り当て領域
202、202A 割り当て済み領域
203 領域
210 情報処理部
211 OS
212 ファイル管理モジュール
301 空き領域
302 サーバ2用の領域
302A 他のサーバ2用の領域
311 ストレージアクセスモジュール
312 メインコントローラ

Claims (10)

  1. 仮想ボリュームの使用中の区画に実ボリュームの領域を割り当て、サーバから前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリュームの空き容量である第2の空き容量を取得する取得手段と、
    前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバに送信する設定手段と
    を含むストレージ管理装置。
  2. 前記ストレージ制御部は、優先順位が設定された複数の前記仮想ボリュームの、使用中の前記区画に、前記実ボリュームの領域を割り当て、
    前記取得手段は、前記第2の空き容量と、前記仮想ボリュームの各々の、前記優先順位と前記第1の空き容量を取得し、
    前記設定手段は、前記仮想ボリュームの各々に対して、当該仮想ボリュームである対象ボリュームの前記優先順位より高い前記優先順位の、前記仮想ボリュームの前記第1の空き容量の和を、取得された前記第2の空き容量から除外し、当該除外後の前記第2の空き容量が前記対象ボリュームの前記第1の空き容量より小さい場合、前記第1の空き容量と前記除外後の前記第2の空き容量の差分を、前記対象ボリュームにアクセス要求を行う前記サーバに送信する
    請求項1に記載のストレージ管理装置。
  3. 前記設定手段は、前記第2の空き容量が前記対象ボリュームの前記第1の空き容量以上である場合、前記差分として0を前記サーバに送信する
    請求項1又は2に記載のストレージ管理装置。
  4. 前記実ボリュームと、前記ストレージ制御部と、前記サーバと、請求項1乃至3のいずれかに記載のストレージ管理装置を含む情報処理システム。
  5. 仮想ボリュームの使用中の区画に実ボリュームの領域を割り当て、サーバから前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリュームの空き容量である第2の空き容量を取得し、
    前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバに送信する
    ストレージ管理方法。
  6. 優先順位が設定された複数の前記仮想ボリュームの、使用中の前記区画に、前記実ボリュームの領域を割り当てる前記ストレージ制御部から、前記第2の空き容量と、前記仮想ボリュームの各々の、前記優先順位と前記第1の空き容量を取得し、
    前記仮想ボリュームの各々に対して、当該仮想ボリュームである対象ボリュームの前記優先順位より高い前記優先順位の、前記仮想ボリュームの前記第1の空き容量の和を、取得された前記第2の空き容量から除外し、当該除外後の前記第2の空き容量が前記対象ボリュームの前記第1の空き容量より小さい場合、前記第1の空き容量と前記除外後の前記第2の空き容量の差分を、前記対象ボリュームにアクセス要求を行う前記サーバに送信する
    請求項5に記載のストレージ管理方法。
  7. 前記第2の空き容量が前記対象ボリュームの前記第1の空き容量以上である場合、前記差分として0を前記サーバに送信する
    請求項5又は6に記載のストレージ管理方法。
  8. コンピュータを、
    仮想ボリュームの使用中の区画に実ボリュームの領域を割り当て、サーバから前記区画へのアクセス要求を取得して、前記区画に割り当てられた前記領域へのアクセスを行うストレージ制御部から、前記仮想ボリュームの空き容量である第1の空き容量と、前記実ボリュームの空き容量である第2の空き容量を取得する取得手段と、
    前記第2の空き容量が前記第1の空き容量より小さい場合に両者の差分を、前記仮想ボリュームの全容量のうち前記差分を差し引いて使用する前記サーバに送信する設定手段と
    して動作させるストレージ管理プログラム。
  9. コンピュータを、
    優先順位が設定された複数の前記仮想ボリュームの、使用中の前記区画に、前記実ボリュームの領域を割り当てる前記ストレージ制御部から、前記第2の空き容量と、前記仮想ボリュームの各々の、前記優先順位と前記第1の空き容量を取得する前記取得手段と、
    前記仮想ボリュームの各々に対して、当該仮想ボリュームである対象ボリュームの前記優先順位より高い前記優先順位の、前記仮想ボリュームの前記第1の空き容量の和を、取得された前記第2の空き容量から除外し、当該除外後の前記第2の空き容量が前記対象ボリュームの前記第1の空き容量より小さい場合、前記第1の空き容量と前記除外後の前記第2の空き容量の差分を、前記対象ボリュームにアクセス要求を行う前記サーバに送信する前記設定手段と
    して動作させる請求項8に記載のストレージ管理プログラム。
  10. 前記第2の空き容量が前記対象ボリュームの前記第1の空き容量以上である場合、前記差分として0を前記サーバに送信する前記設定手段と
    して動作させる請求項8又は9に記載のストレージ管理プログラム。
JP2012273776A 2012-12-14 2012-12-14 ストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラム Pending JP2014119898A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012273776A JP2014119898A (ja) 2012-12-14 2012-12-14 ストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012273776A JP2014119898A (ja) 2012-12-14 2012-12-14 ストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラム

Publications (1)

Publication Number Publication Date
JP2014119898A true JP2014119898A (ja) 2014-06-30

Family

ID=51174695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012273776A Pending JP2014119898A (ja) 2012-12-14 2012-12-14 ストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラム

Country Status (1)

Country Link
JP (1) JP2014119898A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020060983A (ja) * 2018-10-10 2020-04-16 株式会社日立製作所 ストレージシステム及びストレージ制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020060983A (ja) * 2018-10-10 2020-04-16 株式会社日立製作所 ストレージシステム及びストレージ制御方法

Similar Documents

Publication Publication Date Title
US11137940B2 (en) Storage system and control method thereof
US8972778B2 (en) Use of a virtual drive as a hot spare for a raid group
US9323764B2 (en) Copying volumes between storage pools
US8892847B2 (en) Volume management and page allocation method
JPWO2017022002A1 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
US8250284B2 (en) Adaptive memory allocation of a second data storage volume based on an updated history of capacity of a first data volume
US8868864B2 (en) Storage apparatus and storage apparatus control method
EP1605356B1 (en) Storage system and method for acquisition and utilisation of snapshots
JP7140898B2 (ja) ストレージシステム及びストレージシステムにおけるデータ配置方法
US20120185433A1 (en) Priority-based asynchronous data replication
KR20210022121A (ko) 구성 가능한 인프라스트럭처에서 스토리지 디바이스 고장 허용을 유지하기 위한 방법 및 시스템
JP2016162397A (ja) ストレージ制御装置、制御システム及び制御プログラム
US20090037655A1 (en) System and Method for Data Storage and Backup
US20160004460A1 (en) Computer system and control method
US9851907B2 (en) Control device, storage system, and method of controlling a plurality of storage devices
JP4693589B2 (ja) 計算機システム、記憶領域割当方法及び管理計算機
US10203879B2 (en) Control device and control method
US20160364268A1 (en) Computer system, management computer, and management method
CN110569200A (zh) 计算机平台资源共享控制器和关联的资源共享方法
US8938596B2 (en) Storage apparatus, control apparatus, and storage apparatus control method
EP2703993A2 (en) Information processing apparatus, computer program, and copy control method
JP2014119898A (ja) ストレージ管理装置、ストレージ管理方法、及びストレージ管理プログラム
JP2005092308A (ja) ディスク管理方法およびコンピュータシステム
US20210243082A1 (en) Distributed computing system and resource allocation method
JP5821392B2 (ja) ストレージ装置、およびストレージ管理方法