JP5234342B2 - 計算機システム及びその制御方法 - Google Patents

計算機システム及びその制御方法 Download PDF

Info

Publication number
JP5234342B2
JP5234342B2 JP2008242347A JP2008242347A JP5234342B2 JP 5234342 B2 JP5234342 B2 JP 5234342B2 JP 2008242347 A JP2008242347 A JP 2008242347A JP 2008242347 A JP2008242347 A JP 2008242347A JP 5234342 B2 JP5234342 B2 JP 5234342B2
Authority
JP
Japan
Prior art keywords
logical volume
capacity
volume
virtual
pool
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
JP2008242347A
Other languages
English (en)
Other versions
JP2010073095A5 (ja
JP2010073095A (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 JP2008242347A priority Critical patent/JP5234342B2/ja
Priority to US12/269,425 priority patent/US8127093B2/en
Publication of JP2010073095A publication Critical patent/JP2010073095A/ja
Publication of JP2010073095A5 publication Critical patent/JP2010073095A5/ja
Priority to US13/357,240 priority patent/US8521984B2/en
Application granted granted Critical
Publication of JP5234342B2 publication Critical patent/JP5234342B2/ja
Priority to US13/955,358 priority patent/US8775765B2/en
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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation

Landscapes

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

Description

本願明細書に開示される技術は、計算機及び記憶装置システム(以下、ストレージともいう)を用いた計算機システムにおける、ストレージの記憶領域自動拡張ボリュームの記憶領域管理に関する。
計算機及び記憶装置システムを用いた計算機システムでは、一般にストレージが提供する記憶領域を計算機がデータ格納用に利用する。計算機が格納するデータの増加にともない、記憶領域(以下ボリュームともいう)の容量を拡張する必要が生じる。
ボリュームを拡張するための方法として、例えば、一旦計算機システムの稼動をとめてから、ボリュームを拡張して、再度計算機システムにボリュームを使わせるという方法があった。このようなボリュームの拡張方法には、業務が停止してしまうという欠点があった。上記の欠点への対策が、特許文献1に開示されている。特許文献1には、計算機に認識させるボリュームの容量を変えずに、実際のストレージにおいては、ボリュームへの書き込みにあわせて、不足したボリュームの容量を自動的に拡張する技術が開示されている。
計算機に認識させるボリュームの容量を変えずに管理可能なボリュームは、以下、仮想ボリュームとも記載される。ボリュームの書き込みにあわせて、不足したボリュームの容量を拡張する実際の物理領域を管理する領域は、以下、仮想プールとも記載される。仮想プールに登録されるボリュームは、以下、仮想プールボリュームとも記載される。仮想ボリュームへの書き込みに合わせて容量を拡張するために割り当てられる領域は、以下、割り当て領域とも記載される。
また、上記仮想ボリュームの割り当て領域を削除する技術が特許文献2に開示されている。この技術によれば、ファイルサーバとストレージとが前記割り当て領域の状態を共有し、ファイルサーバが使用していない割り当て領域を削除する。
特開2003−15915号公報 特開2007−257317号公報
かかる従来の技術には、次のような課題がある。
第1に、ファイルサーバとストレージとの間で前記仮想ボリュームの割り当て領域の状態を伝達するモードが必要であるため、汎用性が高くないという点が考慮されていない。
第2に、従来の技術では、仮想ボリュームの割当領域を、ファイルサーバのアクセスに応じて、ファイルサーバとストレージとの間で確認する必要がある。このため、仮想ボリュームの割当領域とファイルサーバの使用領域に差がある場合、確認に時間がかかり、効率的ではないという点が考慮されていない。
上記課題を解決するために、以下の手段を用いる。
ファイルサーバでは、ファイルをホストから透過的に移行する技術(以下、ファイル透過移行技術とも呼ぶ)がすでに提供されている。これは、複数のファイルシステムとサーバボリュームを単一のネームスペースとして管理するファイル仮想化機能などで実現される技術である。ファイルサーバによって使用されていない物理領域が多く割り当てられた仮想ボリュームが存在する場合、ファイルサーバは、そのような仮想ボリュームに格納された全ファイルを、ファイル透過移行技術を用いて別の仮想ボリュームに移行し、移行元の仮想ボリュームを削除する。これによって、ファイルサーバが使用している領域のみに物理領域が割り当てられた仮想ボリュームが作成される。
具体的には、本願で開示する代表的な発明は、第1ストレージ装置と、前記第1ストレージ装置に接続される第1サーバ計算機と、前記第1ストレージ装置及び前記第1サーバ計算機を管理する管理部と、を備える計算機システムにおいて、前記第1ストレージ装置は、複数の物理記憶領域を含む記憶媒体と、前記記憶媒体を用いて複数の論理ボリュームを定義し、前記記憶媒体へのデータの書き込み及び前記記憶領域からのデータの読み出しを制御するコントローラと、を備え、前記複数の論理ボリュームの少なくとも一つを前記第1サーバ計算機に認識させ、前記各論理ボリュームの記憶領域空間は、複数のアドレス範囲を含み、前記第1ストレージ装置は、前記アドレス範囲へのデータの書き込み要求を受信すると、前記複数の物理記憶領域のうち、まだいずれの前記アドレス範囲にも割り当てられていないものを、前記書き込みを要求されたアドレス範囲へ割り当て、前記割り当てられた物理記憶領域に前記書き込みを要求されたデータを格納し、前記複数の論理ボリュームは、第1論理ボリューム及び第2論理ボリュームを含み、前記第2論理ボリュームのいずれの前記アドレス範囲にも、前記物理記憶領域が割り当てられておらず、前記第1サーバ計算機は、前記ストレージ装置と通信する第1インターフェースと、前記第1インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1メモリと、を備え、前記第1論理ボリュームに格納されたデータを識別する情報を保持し、前記管理部は、前記第1論理ボリュームに格納された全てのデータを前記第2論理ボリュームに移行させる要求を前記第1サーバ計算機に送信し、前記データを移行させる要求を受信した前記第1サーバ計算機は、前記第1論理ボリュームの前記アドレス範囲に格納された全てのデータを読み出す要求、及び、前記読み出された全てのデータを前記第2論理ボリュームの前記アドレス範囲に書き込む要求を、前記第1ストレージ装置に送信し、前記管理部は、前記読み出された全てのデータの、前記第2論理ボリュームの前記アドレス範囲への書き込みが終了した後、前記第1論理ボリュームを削除する要求を前記第1ストレージ装置に送信し、前記第1ストレージ装置は、前記第1論理ボリュームを削除する要求を受信すると、前記第1論理ボリュームを削除することを特徴とする。
本発明の一実施形態によれば、仮想ボリュームの割り当て領域削減を、ホストに対しては透過的に、また、ファイルサーバとストレージ間の独自のモードを持つことなく、実現することができる。さらに、容量を削減する際には、移行するファイル容量のみを考慮すればよいため、仮想ボリュームの割当状態を意識することなく容量を削減することができる。
本発明を実施するための最良の形態を説明する。
以下、本発明の実施例について、図面を用いて詳細に説明する。
最初に、本発明の第一の実施形態について説明する。
図1、図2、図3、図4及び図5は、本発明の第一の実施形態の計算機システムの構成の一例を示す図である。
図1は、本発明の第一の実施形態の計算機システムを構成する各装置と各装置の接続関係を表すブロック図の一例である。
一つ以上のホスト1200とサーバ1100は第二ネットワーク1500によって接続される。サーバ1100は、ホスト1200からデータの入出力の要求を受け付ける。
サーバ1100とストレージ1000は第一ネットワーク1400によって接続される。ストレージ1000は、ホスト1200経由で要求されたデータ入出力の要求に応じて、サーバ1100からデータ入出力を受け付ける。
管理計算機1300とサーバ1100とストレージ1000は管理ネットワーク1600によって接続される。管理計算機1300は、管理ネットワークを介してサーバ1100及びストレージ1000の管理情報を取得する。あるいは、サーバ1100及びストレージ1000が管理ネットワーク1600を介して管理計算機1300に管理情報を送付することもある。
本計算機システムにおいて、サーバ1100とホスト1200間では第二ネットワーク1500を介してネットワークファイルシステムの環境を考慮する。例えば、ホスト1200には通常のOSで実現されるネットワークファイルシステムクライアント、サーバには通常のOSで実現されるネットワークファイルシステムサーバが搭載され、ファイルアクセスが実行される。
第二ネットワーク1500は、通常、TCP/IPのネットワークであってもよいが、ネットワークファイルシステム環境を実現できる限り、いかなる種類のネットワークであってもよい。
サーバ1100は、Network Attached Storage(NAS)のコントローラとして実現されてもよい。計算機システムがホスト1200を備えず、サーバ1100で業務プログラムが動作してもよい。
また、サーバ1100とストレージ1000とは、ブロックレベルのアクセスを考慮する。よって、第一ネットワーク1400は、通常、Fibre Channel(FC)のネットワークが考えられるが、ブロックレベルアクセスができる限り、いかなる種類のネットワークであってもよい。例えば、第一ネットワーク1400は、iSCSIプロトコルなどを通す、TCP/IPのネットワークであってもよい。あるいは、サーバ1100の中にストレージ1000が含まれてもよい。すなわち、第一ネットワーク1400がサーバ1100の内部バスとなり、サーバ1100がストレージ1000の機能を実現してもよい。
管理計算機1300とサーバ1100とストレージ1000とが接続する管理ネットワーク1600は、それを介して管理計算機1300が管理情報を取得できる限り、いかなる種類のネットワークであってもよい。また管理計算機1300とサーバ1100とに接続された管理ネットワークが、管理計算機1300とストレージ1000とに接続された管理ネットワークと異なるプロトコルで実現される場合、これらの管理ネットワークが別々に構成されてもよい。
例えば管理計算機1300とサーバ1100とに接続される管理ネットワークがTCP/IPネットワークであり、管理計算機1300とストレージ1000とに接続される管理ネットワークがFCネットワークであってもよい。また、上記のようにストレージ1000用の管理ネットワークとサーバ1100用の管理ネットワークとが独立に構成される場合、それらの各々が上記の2種類の管理ネットワーク(例えばTCP/IPネットワーク及びFCネットワーク)を含んでもよい。
図2は、本発明の第一の実施形態の計算機システムに含まれるストレージ1000の構成を示すブロック図の一例である。
ストレージ1000は、入出力I/F1010、管理I/F1011、コントローラ1020、キャッシュ1030、メモリ1040、一つ以上のハードディスク1070、一つ以上の実ボリューム1050、一つ以上の仮想ボリューム1051及び一つ以上の仮想プールボリューム1052を備えるストレージ装置である。
入出力I/F1010は、第一ネットワーク1400に接続され、サーバ1100の読み書きに関するデータI/Oを送受信する。
管理I/F1011は、管理ネットワーク1600に接続され、管理計算機1300からの操作要求に関する通信を実行する。
コントローラ1020は、ストレージ1000を操作する。コントローラ1020は、メモリ1040に格納されたプログラムを実行するプロセッサを含んでもよい。
キャッシュ1030は、ストレージ1000の性能向上のために利用される。例えば、キャッシュ1030は、ハードディスク1070に書き込まれるデータ及びハードディスク1070から読み出されたデータの少なくとも一方を一時的に格納する半導体記憶装置である。
実ボリューム1050は、サーバ1100に記憶領域として提供されてもよいし、新たに仮想プールボリューム1052として定義されてもよい。
仮想ボリューム1051は、サーバ1100に記憶領域として提供される。
仮想プールボリューム1052は、仮想ボリューム1051を提供するためにデータを格納する記憶領域である。
一つ以上の仮想プールボリューム1052が、一つの仮想プール1060を構成する。仮想プール1060は、ある仮想ボリューム1051に記憶領域を提供する仮想プールボリューム1052の範囲を定める。
メモリ1040は、例えば半導体記憶装置であり、ストレージ構成プログラム1041及びストレージ構成情報1042を格納する。ストレージ構成プログラム1041は、コントローラ1020によって実行されることによって実現される。ストレージ構成情報1042は、ストレージ構成プログラム1041で使用される情報であり、ストレージ1000の管理情報である。
ストレージ構成プログラム1041は、ストレージ1000の構成について管理するプログラムである。具体的には、ストレージ構成プログラム1041は、実ボリューム1050、仮想ボリューム1051、仮想プールボリューム1052及び仮想プール1060を作成する機能、仮想ボリュームに仮想プールボリュームの物理的な記憶領域を割り当てる機能、実ボリューム1050及び仮想ボリューム1051を入出力I/F1010経由でサーバ1100などの計算機に認識させるための機能、並びに、実ボリューム1050及び仮想ボリューム1051間でのデータ移行を行なう機能など、ストレージの機能を持つ。
実ボリューム1050及び仮想プールボリューム1052は、ハードディスク1070の記憶媒体そのものであってもよい。あるいは、実ボリューム1050及び仮想プールボリューム1052は、複数のハードディスク1070を含むRAIDによって実現される論理的なボリュームであってもよい。あるいは、外部接続されたストレージ(図示省略)のボリュームが適用されてもよい。ハードディスク1070の代わりにフラッシュメモリなどの記憶媒体が使用されてもよい。
図3は、本発明の第一の実施形態の計算機システムに含まれるサーバ1100の構成を示すブロック図の一例である。
サーバ1100は、入出力装置1110と、CPU1120と、メモリ1130と、サーバボリューム1140と、ホスト入出力I/F1150とストレージ入出力I/F1151と、管理I/F1152と、を備える計算機である。
ホスト入出力I/F1150は、第二ネットワーク1500と接続され、ホスト1200の読み書きに関するデータI/Oを送受信する。
ストレージ入出力I/F1151は、第一ネットワーク1400と接続され、ストレージ1000の読み書きに関するデータI/Oを送受信する。
管理I/F1152は、管理ネットワーク1600と接続され、管理計算機1300からの操作要求に関する通信を実行する。
CPU1120は、メモリ1130に格納されたプログラムを実行するプロセッサである。
メモリ1130には、管理計算機連携プログラム1131と、ファイル透過移行プログラム1132と、サーバボリューム容量監視プログラム1133と、サーバボリュームアクセスプログラム1134と、サーバボリューム情報1135と、が格納される。
管理計算機連携プログラム1131は、管理計算機1300及び管理ネットワーク1600を介して、管理計算機1300からの操作要求を受信し、さらに、要求結果を送信するプログラムである。
ファイル透過移行プログラム1132は、ホスト1200の構成変更を行なわずに、ファイルを別のファイルシステムに移行するプログラムである。ファイル透過移行の機能は、複数のファイルシステムとサーバボリューム1140とを単一のネームスペースとして管理可能とするファイル仮想化機能などによって実現される。
サーバボリューム容量監視プログラム1133は、サーバボリューム1140の容量、及び、実際にサーバ1100が使用している容量を監視するプログラムである。
サーバボリュームアクセスプログラム1134は、ホスト1200からの入出力、及び、ストレージ1000への入出力の操作をつかさどり、さらに、容量などを管理するプログラムである。サーバボリュームアクセスプログラム1134は、実際のファイルシステムの機能を持つ。
サーバボリューム情報1135は、サーバボリューム1140に関する構成情報である。本実施形態において、サーバボリューム情報1135は、ファイル透過移行プログラム1132及びサーバボリューム容量監視プログラム1133によって使用される。
サーバボリューム1140は、サーバ1100上で管理される論理ボリュームである。具体的には、ストレージ1000の実ボリューム1050又は仮想ボリューム1051をサーバボリューム1140としてサーバ1100が認識及び利用できるように設定されている。すなわち、サーバ1100がサーバボリューム1140に対して実行したデータI/Oは、実際には、そのサーバボリューム1140に対応付けられた仮想ボリューム1051又は実ボリューム1050に対して実行される。
サーバ1100がLVM(Logical Volume Manager)等でサーバボリューム1140を再度論理的なボリュームとして設定しなおしてもよい。
図4は、本発明の第一の実施形態の計算機システムに含まれるホスト1200の構成を示すブロック図の一例である。
ホスト1200は、入出力装置1210と、CPU1220と、メモリ1230と、ホストボリューム1240と、入出力I/F1250と、を備える計算機である。
入出力I/F1250は、サーバ1100への入出力に関する通信を実行する。
CPU1220は、メモリ1230に格納されたプログラムを実行するプロセッサである。
メモリ1230には、ホストで動作する業務プログラム1231と、サーバへのボリュームアクセスをつかさどるボリュームアクセスプログラム1232と、が格納される。ボリュームアクセスプログラムは、本実施形態ではネットワークファイルシステムによってサーバと通信可能な環境を考慮する。
ホストボリューム1240は、サーバ1100で管理するボリューム(すなわちサーバボリューム1140)をホスト1200が使用可能なように設定したボリュームである。サーバボリューム1140がそのままネットワークファイルシステムによってマウントされてもよいし、LVMによって別のサーバボリュームを設定しなおした論理ボリュームがマウントされてもよい。
図5は、本発明の第一の実施形態の計算機システムに含まれる管理計算機1300の構成を示すブロック図の一例である。
管理計算機1300は、入出力装置1310と、CPU1320と、メモリ1330と、管理I/F1360と、を備える計算機である。
管理I/F1360は、管理ネットワーク1600と接続され、ストレージ1000及びサーバ1100と通信する。
CPU1320は、メモリ1330に格納されたプログラムを実行するプロセッサである。
メモリ1330には、サーバ連携プログラム1331と、ストレージ連携プログラム1332と、仮想ボリューム設定プログラム1333と、仮想ボリューム容量管理プログラム1335と、格納されている。
サーバ連携プログラム1331、ストレージ連携プログラム1332、仮想ボリューム設定プログラム1333及び仮想ボリューム容量管理プログラム1335は、本発明の実施の形態の処理を実現するものである。
以下の説明において、サーバ連携プログラム1331、ストレージ連携プログラム1332、仮想ボリューム設定プログラム1333及び仮想ボリューム容量管理プログラム1335の各プログラムが主語となる場合は、実際にはそのプログラムを実行するCPU1320によって処理が実行される。
図6、図7、図8、図9及び図10は、ストレージ1000のストレージ構成情報1042に含まれる情報の一例である。
またこれ以降、特に断りがない限り容量の単位はバイト(B)である。例えば、テーブルの仮想容量に10Gと書かれていれば、この容量は10Gバイトであることを示している。
図6は、本発明の第一の実施形態のストレージ1000のストレージ構成情報1042に含まれる仮想ボリューム情報を管理するテーブルの一例を示す説明図である。
仮想ボリュームテーブル6000は、仮想ボリュームID6010と、仮想プールID6020と、仮想容量6030と、実割当容量6040と、によって構成される。
仮想ボリュームID6010は、仮想ボリューム1051の識別子(ID)である。仮想プールID6020は、仮想ボリューム1051の実際の(すなわち物理的な)記憶領域として用いられる仮想プール1060の識別子を示す。仮想容量6030は、仮想ボリューム1051がサーバ1100に認識させている容量を示す。実割当容量6040は、仮想ボリューム1051に実際に割り当てられた物理的な記憶領域の容量を示す。
仮想ボリューム1051に実際に割り当てられる容量は、上記のとおり、サーバ1100等の計算機からの書き込みに応じて増えていく。サーバ1100に仮想ボリューム1051を認識させるために、各仮想ボリューム1051に対して、LUN(論理ユニット番号)と、SCSIのポートIDといった情報を利用することがある。この場合、LUN及びポートIDを仮想ボリュームテーブル6000で管理してもよい。
図7は、本発明の第一の実施形態のストレージ1000のストレージ構成情報1042に含まれる仮想プール容量情報を管理するテーブルの一例を示す説明図である。
仮想プール容量テーブル7000は、仮想プールID7010と、全容量7020と、割当容量7030と、閾値7040と、によって構成される。
仮想プールID7010は、仮想プール1060の識別子である。全容量7020は、仮想プール1060の全容量を示す。割当容量7030は、仮想プール1060から仮想ボリューム1051に既に割り当てられた全容量を示す。閾値7040は、割当容量7030の閾値を示す。
閾値7040として、仮想容量6030に対する割当容量7030の割合の閾値(パーセント)が設定される。その割合が設定された閾値7040を超えると、仮想プールの容量を追加する必要があると判定されてもよい。また、その割合が閾値7040を超えれば、仮想ボリューム1051に容量を新たに割り当てない、という動作をストレージ1000がしてもよい。閾値7040は、ユーザが指定してもよいし、仮想プールの容量に応じてストレージ構成プログラム1041が自動的に作成してもよい。また、閾値7040は、容量で表現されてもよい。
図8は、本発明の第一の実施形態のストレージ1000のストレージ構成情報1042に含まれる実ボリューム情報を管理するテーブルの一例を示す説明図である。
実ボリュームテーブル8000は、実ボリュームID8010と、容量8020と、によって構成される。実ボリュームテーブル8000は、各実ボリューム1050の容量を確認するテーブルである。具体的には、実ボリュームID8010は、各実ボリューム1050の識別子である。容量8020は、各実ボリューム1050の容量である。
説明の簡単のため、本テーブルに登録された実ボリューム1050を仮想プールボリューム1052に変更することができる。すなわち実ボリュームを仮想プールに追加することで、仮想プールボリュームとして管理することができるとする。
図9は、本発明の第一の実施形態のストレージ1000のストレージ構成情報1042に含まれる仮想プール1060の割当状態を管理するテーブルの一例を示す説明図である。
仮想プールテーブル9000は、仮想プールID9010と、仮想プールボリュームID9020と、割当LBA9040と、チャンクID9030と、割当状態9050と、によって構成される。
仮想プールID9010は、各仮想プール1060の識別子を示す。仮想プールボリュームID9020は、各仮想プールID9010に属する仮想プールボリューム1052の識別子を示す。割当LBA9040には、各仮想プールボリューム1052が仮想プール1060に対して提供する記憶領域を割り当て済の論理ブロックアドレス(以下、Logical Block Address、LBAと呼ぶ)が登録される。チャンクID9030は、LBAに対応する割当済み記憶領域(以下、チャンクと呼ぶ)のうち、当該仮想プール1060に属するチャンクの識別子である。割当状態9050は、当該チャンクの割当状態を示す。
割当状態9050には、割当状態を示す値として、「割当」又は「未割当」のいずれかの値が登録される。この場合、「割当」は、チャンクが仮想ボリューム1051に割り当てられていることを、「未割当」は、チャンクがどの仮想ボリューム1051にも割り当てられていないことを示す。チャンクが割り当てられている場合、割り当てられている仮想ボリューム1051のIDも割当状態9050に登録される。
例えば、図9のテーブルの先頭のエントリによれば、チャンクIDが「C11」であるチャンクは、仮想プールIDが「P1」である仮想プール1060の、仮想プールボリュームIDが「V10」である仮想プールボリューム1052の先頭から0GB目のアドレスを基点とし、先頭から2GB目のアドレスを終点とする、合計2GBの物理的な記憶領域から構成され、仮想ボリューム「V1」(すなわち識別子「V1」によって識別される仮想ボリューム1051)に割当済みである。
なお、仮想プール容量テーブル7000の全容量7020は、各仮想プール1060にある全チャンクの容量を示し、割当容量7030は、各仮想プール1060から割り当てられたチャンクの全容量を示す。
図9に示す例では「P100」等の記載が省略されているが、それらの識別子によって識別される仮想プール1060も本テーブルによって同様に管理される。
図10は、本発明の第一の実施形態のストレージ1000のストレージ構成情報1042に含まれる仮想ボリューム1051の割当状態を管理するテーブルの一例を示す説明図である。
仮想ボリューム割当テーブル10000は、仮想ボリュームID10010と、仮想プールID10020と、割当LBA10400と、チャンクID10030と、によって構成される。
仮想ボリュームID10010は、各仮想ボリューム1051の識別子を示す。仮想プールID10020は、各仮想ボリューム1051がデータ格納のために用いる仮想プール1060の識別子を示す。割当LBA10400は、各仮想ボリューム1051がサーバ1100に対して提供する記憶領域空間のうち、実際に物理的な記憶領域(すなわちチャンク)を割当済みの記憶領域のLBAを示す。チャンクID10030は、割当LBA10400の値によって識別されるLBAに対応した(すなわちそのLBAが示す仮想ボリューム1051の記憶領域に割り当てられた)チャンクの識別子を示す。
例えば、図10の先頭エントリは、本仮想ボリュームIDが「V2」である仮想ボリューム1051のうち、先頭から2GB目のアドレスを基点とし、先頭から4GB目のアドレスを終点とする、合計2GBの記憶領域に、チャンク「C13」が割当済みであることを示す。
なお、図10に示す例では「V1000」、「V2000」、「V3000」の記載が省略されているが、それらの識別子によって識別される仮想ボリューム1051も本テーブルによって同様に管理される。
図11は、本発明の第一の実施形態のサーバ1100のサーバボリューム情報1135の一例を示す説明図である。
サーバボリュームテーブル11000は、サーバボリューム11010と、容量11020と、使用容量11030と、ファイル11040と、によって構成される。
サーバボリューム11010は、サーバ1100が利用している各サーバボリューム1140の識別子である。具体的には、サーバボリューム11010は、ストレージ1000の実ボリューム1050又は仮想ボリューム1051のIDと同じもの(例えば、仮想ボリュームID6010等)を示す。
容量11020は、各サーバボリューム1140の容量を示す。サーバボリューム1140が仮想ボリューム1051に対応する場合、容量11020は、その仮想ボリューム1051の仮想容量(例えば、仮想容量6030)を示す。
使用容量11030は、各サーバボリューム1140の容量のうち、ファイル格納のためにサーバ1100が使用している容量を示す。ファイル11040は、各サーバボリューム1140に格納されているファイルの識別子を示す
例えば、図11の先頭エントリは、サーバボリューム「V1000」が、ストレージ1000内の、識別子「V1000」によって識別される仮想ボリューム1051であり、容量11020が、その仮想ボリューム1051の仮想容量6030の値すなわち「2T」であることを示している。さらに、このエントリは、サーバボリューム「V1000」にはファイル「F1」、「F2」、「F3」及び「F4」が格納されており、これらのファイル格納のための使用容量11030が「200G」であることを示している。
以上、図5、図6、図7、図8、図9、図10及び図11の各テーブルにおいて、仮想ボリューム1051のID、仮想プール1060のID、仮想プールボリューム1052のID及び実ボリューム1050のIDについて説明した。以下に説明するように、管理計算機1300が上記各テーブルの情報を参照する場合がある。第一の実施形態は、説明の簡単のため、管理計算機1300が管理しているストレージ1000が一つだけである例を示す。
もし複数のストレージ1000を管理計算機1300が管理する場合、上記のIDは各ストレージ1000内では一意であるが、計算機システム内で一意であることは保証されない。この場合、管理計算機1300は、各ストレージ1000の識別子を取得し、その識別子を仮想ボリュームID又は仮想プールID等と組みあわせることで、複数のストレージ1000のボリューム又はプールを計算機システム内で一意に識別することができる。これによって、複数のストレージ1000を備える計算機システムの管理にも本発明を適用することができる。
さらに、第一の実施形態は、説明の簡単のため、計算機システムが備えるサーバ1100も一つだけである例を示す。しかし、計算機システムが複数のサーバ1100を備える場合でも、全部のサーバ1100が図11の情報を取得すれば、本発明を適用することができる。またサーバ1100と管理計算機1300との間の送受信が実行される場合、予めサーバ1100が使用しているボリュームを管理計算機1300に送信するようにしてもよい。その場合、管理計算機1300では、サーバボリュームテーブル11000のサーバボリューム11010の情報と、サーバ1100を識別する情報とをサーバ1100から取得し管理すればよい。またサーバボリュームテーブル11000の他の情報も管理計算機1300で管理しておいてもよい。
図12は、本発明の第一の実施形態において仮想ボリューム割当容量削減を行なうための条件を設定する画面の一例を示す説明図である。
図12に示す画面は、全仮想ボリューム1051に設定することを考慮し、ボリュームの指定などはない。ボリュームごとに指定する画面は後述する(図13参照)。ただし、後述するように、ボリュームごとに指定する画面から図12が呼ばれることもあり、その場合は指定されたボリュームに下記情報が適用されることになる。
仮想ボリューム割当容量削減条件設定画面A12000は、適用割当容量12100と、使用率差分12110と、の各欄を含む。
さらに、仮想ボリューム割当容量削減条件設定画面A12000は、条件を追加したい場合に操作されるボタンである追加12200と、条件が設定された後、実際に管理計算機1300に条件を適用するために操作されるボタンである設定12300と、この画面の設定をキャンセルするために操作されるボタンであるキャンセル12400と、を含む。
使用率差分12110の欄には、ストレージの割当容量とサーバの使用容量の差分(すなわち使用率差分)の閾値が設定される。各仮想ボリューム1051の使用率差分は、仮想ボリューム1051の割当容量(例えば、仮想ボリュームテーブル6000の仮想容量6030の情報)と、その仮想ボリューム1051に対応するサーバボリューム1140の使用容量(例えば、サーバボリュームテーブル11000の使用容量11030の情報)の差を算出し、その差を仮想ボリューム1051の割当容量で割ったものをパーセント表示したものである。
言い換えると、使用率差分は、割り当てられている容量に占める、使用されていない容量の割合に相当する。使用率差分の値が大きいほど、多くの不要な容量が仮想ボリューム1051に割り当てられているということができる。使用率差分12110は、このような使用率差分の閾値であり、仮想ボリューム1051の使用率差分が使用率差分12110の値を超えたとき、割当容量削減の処理(図15〜図18参照)が実行される。
適用割当容量12100の欄には、使用率差分12110の値が適用される仮想ボリュームの割当容量が設定される。
図12の例では、適用割当容量12100の値「1T以上」に対応する使用率差分12110として、「80%」が設定されている。これは、1Tバイト以上の容量が割り当てられた仮想ボリューム1051及びそれに対応するサーバボリューム1140について計算された使用率差分の値が80%以上である場合、割当容量削減の処理が実行されることを意味する。一方、適用割当容量12100の値「10G以上1T未満」に対応する使用率差分12110として、「90%」が設定されている。これは、10Gバイト以上1Tバイト未満の容量が割り当てられた仮想ボリューム1051及びそれに対応するサーバボリューム1140について計算された使用率差分の値が90%以上である場合、割当容量削減の処理が実行されることを意味する。
具体的には、図12の例のように、使用率差分12110として「80%」が設定されており、かつ、仮想ボリュームの割当容量が1Tである場合、サーバボリュームの使用容量が200Gとなったときに、割当容量削減の処理が実行される。割当容量削減の処理ステップについては後述する(図15〜図18参照)。
図13は、本発明の第一の実施形態において仮想ボリューム割当容量削減を行なうための条件を設定する画面の別の例を示す説明図である。
具体的には、図13は、仮想ボリューム1051ごとに条件を設定する画面の一例を示す。
仮想ボリューム割当容量削減条件設定画面B13000は、各仮想ボリューム1051の割当容量削減条件を表示、編集及び設定する画面であり、チェック13100と、仮想ボリューム13110と、仮想容量13120と、適用割当容量13130と、使用率差分13140と、の各欄を含む。
さらに、仮想ボリューム割当容量削減条件設定画面B13000は、チェックしたボリュームの条件を編集する場合に操作されるボタンである編集13200と、条件が設定された後、実際に管理計算機1300に条件を適用するために操作されるボタンである設定13300と、この画面の設定をキャンセルする場合に使用されるボタンであるキャンセル13400と、を含む。
チェック13100は、割当容量削減条件を編集する仮想ボリューム1051を指定するためのチェックフラグである。仮想ボリューム13110は、仮想ボリューム1051のIDを示す。仮想容量13120は、仮想ボリューム13110によって識別される仮想ボリューム1051の仮想容量を示す。
適用割当容量13130及び使用率差分13140は、それぞれ、図12の適用割当容量12100及び使用率差分12110と同様に使用される。図12の画面と図13の画面の両方が使用される場合には、図12で設定した値が、自動的に図13に反映されてもよい。例えば、仮想ボリューム「V1000」の仮想容量は2Tなので、図12で示した2つの条件、すなわち「1T以上」と「10G以上1T未満」の条件がそのまま図13の表示に適用されている。
ユーザが編集13200のボタンを操作すると、図12の画面が表示され、ユーザは、各条件、すなわち適用割当容量及び使用率差分を設定する。
あるいは、図12の画面が表示されなくてもよい。その場合は適用割当容量13130及び使用率差分13140の値がデフォルトで保持されてもよいし、それらが空白で表示され、その後、ユーザに編集をさせてもよい。
また、図13の画面は、仮想ボリューム設定のときに呼び出されてもよいし、仮想ボリューム設定終了後、適時呼び出されてもよい。仮想ボリューム設定の時には、設定するボリュームのみが表示されてもよい。
図14は、本発明の第一の実施形態において仮想ボリューム割当容量削減指示を行なうための画面の一例を示す説明図である。
仮想ボリューム割当容量削減指示画面14000は、チェック14100と、仮想ボリューム14110と、仮想容量14120と、仮想ボリューム割当容量14130と、サーバ使用容量14140と、の各欄を含む。
チェック14100は、割当容量削減指示を行なうボリュームを指定するチェックフラグである。仮想ボリューム14110は、仮想ボリューム1051のIDを示す。仮想容量14120は、仮想ボリューム14110の仮想容量を示す。仮想ボリューム割当容量14130は、仮想ボリューム1051の割当容量を示す。サーバ使用容量14140は、サーバ1100における仮想ボリューム1051の使用容量(言い換えると、仮想ボリューム1051に対応するサーバボリューム1140の使用容量)を示す。
さらに、仮想ボリューム割当容量削減指示画面14000は、チェックしたボリュームに実際の割り当て容量削減指示を行なうためのボタンである設定14200とこの画面の設定をキャンセルする場合のボタンであるキャンセル14300で構成される。
仮想ボリューム1051に関する仮想容量及び仮想ボリューム割当容量は、前記ストレージ1000の仮想ボリュームテーブル6000の情報から取得することができ、サーバ使用容量は、サーバ1100のサーバボリュームテーブル11000から取得することができることがわかる。よって、図14の画面を表示するにあたり、仮想ボリューム1051に関する情報は、後述する図15のステップ15030及びステップ15040のステップの処理を活用して取得される。
そして、チェック14100のいずれかがチェックされ、設定14200のボタンが操作されたら、仮想ボリューム割当容量削減の処理が実行される。この処理については後述する(図15〜図18参照)。
図14に示す画面を用いた操作は、図12及び図13を用いたものとは独立に行なわれる。よって、図12又は図13の設定に関係なく、また、図12又は図13の画面設定がなくてもよい。図12及び図13は閾値に基づく自動的な仮想ボリューム割当容量削減を行なうための設定であり、図14はユーザが手動で仮想ボリューム割当容量削減を行なうための設定である。
次に、本実施形態において実行される処理について説明する。
最初に、仮想ボリューム1051に対する書き込み(ライト)要求を受信したストレージ1000が実行する処理について説明する。
仮想ボリューム1051に対して書き込み要求がまだ一度も実行されていない場合、その仮想ボリューム1051には、仮想プール1060の物理的な記憶領域(チャンク)が全く割り当てられていない。ただし、何らかの理由によって、仮想ボリューム1051の一部のアドレス範囲に最初から記憶領域が割り当てられていてもよい。
コントローラ1020は、仮想ボリューム1051のアドレス範囲を指定した書き込み要求を受信する。コントローラ1020は、指定されたアドレス範囲に、仮想プール1060のチャンクが割り当てられているか否かを確認する。割り当てられている場合、コントローラ1020は、割り当てられたチャンクにデータを格納する。
一方、指定されたアドレス範囲にチャンクが割り当てられていない場合、コントローラ1020は、指定されたアドレス範囲に、まだ仮想ボリューム1051のいずれのアドレス範囲にも割り当てられていないチャンクを割り当て、そのチャンクにデータを格納する。さらに、コントローラ1020は、その新たな割り当てを管理情報(仮想プールテーブル9000等)に反映させる。
最初に、仮想ボリューム1051に対する読み出し(リード)要求を受信したストレージ1000が実行する処理について説明する。
コントローラ1020は、仮想ボリューム1051のアドレス範囲を指定した読み出し要求を受信する。コントローラ1020は、指定されたアドレス範囲に、仮想プール1060のチャンクが割り当てられているか否かを確認する。割り当てられている場合、コントローラ1020は、割り当てられたチャンクからデータを読み出し、サーバ1100に返す。
一方、指定されたアドレス範囲にチャンクが割り当てられていない場合、コントローラ1020は、指定されたアドレス範囲のデータ量に相当する、あらかじめ定められたデータ(例えば「0」)をサーバ1100に返す。
次に、本実施形態における仮想ボリューム割当容量削減の処理について説明する。
図15、図16、図17及び図18は、仮想ボリューム割当容量削減の処理を行なうフローチャートの一例である。
図15、図16、図17及び図18においては、管理計算機1300が、メモリ1330上の各プログラムを、CPU1320を用いて処理する。ただし、ストレージ1000及びサーバ1100との連携に従い、フローチャートの流れに従い、ストレージ1000及びサーバ1100が行なう動作についても説明する。
図15は、本発明の第一の実施形態において、仮想ボリューム1051の中から割当容量削減を行なう仮想ボリューム1051を選択する処理を示すフローチャートの一例である。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、仮想ボリューム割当削減設定をユーザから受け付ける(ステップ15000)。この設定は、例えば、管理計算機1300は、上記の図12、図13又は図14の画面を用いて仮想ボリューム割当削減設定を受け付ける。あるいは、上記の画面によらず、コマンドライン又はファイルなどの形式で設定されてもよい。
ステップ15000終了の後、処理はステップ15010に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、ステップ15000の設定が図12又は図13を用いて行われたか否かを判定する(ステップ15010)。ステップ15000の設定に図12又は図13の画面が用いられていれば、閾値に基づく自動的な仮想ボリューム割当容量削減が実行される。このため、処理はステップ15020に進む。一方、ステップ15000の設定に図12又は図13の画面が用いられていない場合(すなわち、図14の画面を用いて設定されている場合)、ユーザが手動で仮想ボリューム割当容量削減を行う。このため、処理はステップ15060に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、仮想ボリューム1051の容量監視を開始する(ステップ15020)。そして処理はステップ15030に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からストレージ連携プログラム1332を介して、図12又は図13の画面で指定された仮想ボリューム1051の割当容量をストレージ1000から取得する(ステップ15030)。すなわち、仮想ボリュームテーブル6000の情報がストレージ1000から取得される。
ステップ15030の処理終了後、処理はステップ15040に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からサーバ連携プログラム1331を介して、図12又は図13で指定された仮想ボリューム1051のサーバ1100における使用容量をサーバ1100から取得する(ステップ15040)。すなわち、サーバボリュームテーブル11000の情報がサーバ1100から取得される。
このとき、サーバ1100は、管理計算機連携プログラム1131によって、上記要求を受けて、サーバボリューム容量監視プログラム1133によって、サーバボリューム情報1135のサーバボリュームテーブル11000の情報を取得し、管理計算機連携プログラム1131によって、管理計算機1300にサーバボリュームテーブル11000の情報を送信する。この場合、サーバ1100は、図12又は図13の画面で指定されたボリュームに関連する情報のみを送信してもよいし、サーバ1100が管理している情報を全部管理計算機1300に送信してもよい。後者の場合、送信された情報から、指定されたボリュームに関連する情報を、管理計算機1300が選択する。
ステップ15040の処理終了後、処理はステップ15050に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、割当容量とサーバ使用容量とから算出された使用率差分が使用率差分12100(又は13140)以上である仮想ボリューム1051があるか否かを判定する(ステップ15050)。
ステップ15050の判定条件を満たす仮想ボリューム1051(すなわち、算出された使用率差分が使用率差分12110等以上である仮想ボリューム1051)がある場合、その判定条件を満たす仮想ボリューム1051は、割り当て済みであって、かつ、使用されていない容量を多く含んでいるため、仮想ボリューム割当容量削減処理の対象として扱われる。このため、処理はステップ15060に進む。一方、上記の判定条件を満たす仮想ボリューム1051がない場合、処理はステップ15030に戻る。
ステップ15030に戻る場合、所定の時間処理を中断して、その所定の時間経過後、再びステップ15030を開始してもよい。今回のステップ15050が実行されてから次回のステップ15050が実行されるまでの間隔が短ければ、その間に状況が変化しておらず、次回のステップ15050の結果再びステップ15030に戻る可能性が高いためである。
ステップ15030及びステップ15040において、管理計算機1300が所定のコマンド等を発行することによって情報を取得してもよいが、定期的に又は容量が変化したときに、ストレージ1000及びサーバ1100が管理計算機に情報を供給してもよい。
例えば、識別子「V1000」によって識別される仮想ボリューム(以下、仮想ボリューム「V1000」と記載する)が仮想ボリュームテーブル6000の例に記載されるように存在し、かつ、仮想ボリューム「V1000」が(それに対応するサーバボリューム「V1000」として)サーバボリュームテーブル11000の例に記載されるように存在している場合、仮想ボリューム「V1000」の仮想容量が2T、実割当容量が1T、サーバ使用容量が200Gであることがわかる。ここで、図12に示した設定例を考慮すると、1T以上の割当容量がある場合、使用率差分12110が80%であることがわかる。上記の仮想ボリューム「V1000」の情報から、使用率差分は80%と算出される。したがって、この場合、ステップ15050において、仮想ボリューム「V1000」は判定条件を満たす仮想ボリューム1051であると判定され、処理はステップ15060に進む。
同様に、仮想ボリューム「V2000」は、使用率差分が50%と算出されるため、処理はステップ15030に進む。
管理計算機1300は、仮想ボリューム容量管理プログラムによって、ステップ15050で条件を満たすと判定された仮想ボリューム1051をリストアップして、それらを割当容量削減対象とする(ステップ15060)。
なお、ステップ15010において、図14に示す画面を用いて設定されたと判定された場合、ステップ15060において、管理計算機1300は、ユーザが図14に示す画面を用いて選択した仮想ボリューム1051を割当容量削減対象とする。
ステップ15060の処理終了後、処理はステップ16000に進む(A)。ステップ16000及びそれに続くステップについては図16を参照して説明する。
図16は、本発明の第一の実施形態において、仮想ボリューム割当容量削減のために、仮想ボリューム1051の移行先ボリュームを作成する処理を示すフローチャートの一例である。
図16に示す処理は、図15に示す処理に続いて実行される。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、ステップ16010以降の処理が終わっていない割当容量削減対象の仮想ボリューム1051を、ステップ15060で取得したリストから選択する(ステップ16000)。
ステップ16000の処理終了後、処理はステップ16010に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からストレージ連携プログラム1332を介して、ステップ16000で選択した割当容量削減対象の仮想ボリューム1051が属する仮想プール1060に関する情報をストレージ1000から取得する(ステップ16010)。対象となる仮想プール1060の容量の情報は、すでに取得している仮想ボリュームテーブル6000及び仮想プール容量テーブル7000から取得することができる。
ステップ16010の処理終了後、処理はステップ16020に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、ステップ16010で取得した仮想プール1060が、割当容量削減対象である仮想ボリューム1051のサーバ使用容量以上の空き容量を持つか否かを判定する(ステップ16020)。ここで、仮想プール1060の空き容量とは、仮想プール1060の全容量のうち、まだいずれの仮想ボリューム1051にも割り当てられていない容量を意味する。
割当容量削減対象の仮想ボリューム1051のサーバ使用容量はすでに取得されているので、管理計算機1300は、そのサーバ使用容量分の空き容量が対象仮想プール1060にあるか否かを仮想プール容量テーブル7000に基づいて判定する。対象仮想プール1060がサーバ使用容量分の空き容量を持っていれば、割当容量削減対象の仮想ボリューム1051のデータを移行することは可能である。
ステップ16020の処理終了後、仮想ボリューム1051のデータを移行可能と判定された場合、処理はステップ16060に、可能でないと判定された場合、処理はステップ16030に進む。
例えば、仮想ボリューム「V1000」の場合、仮想ボリューム「V1000」に対応する仮想プール1060は、仮想ボリュームテーブル6000から、「P100」によって識別される仮想プール1060(以下、仮想プール「P100」と記載する)であることがわかる。そして仮想プール「P100」は、仮想プール容量テーブル7000から、全容量が500G、割当容量は100Gであることがわかる。すなわち空き容量が400Gであり、400Gのデータをこの仮想プールに割り当てることが可能であることがわかる。そして、サーバ使用容量は、サーバボリュームテーブル11000から200Gであることがわかる。よって空き容量400Gに200Gのサーバ使用容量を確保することは可能であるので、処理はステップ16060に進む。
一方、例えば、仮想ボリューム「V2000」の場合、上記と同じように値を取得すると、空き容量は100G、サーバ使用容量は150Gであることがわかる。よって、この場合には、空き容量にサーバ使用容量を確保できないので、処理はステップ16030に進む。
ステップ16020において、仮想プール1060の閾値に対して、後述するようにサーバ使用容量以上の空き容量があるか否かが判定されてもよい。例えば、仮想プール「P100」の割当容量が250Gであった場合、仮想ボリューム「V1000」のサーバ使用容量が200Gであるため、サーバ使用容量を後述するように仮想プール「P100」に書くことになると、仮想プール「P100」の割当容量は450Gとなる。このとき、割当容量が閾値7040以上の値になるので、警告を発生することになる。したがって、このような場合は空き容量がないと判定してステップ16030に進んでもよい。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からストレージ連携プログラム1332を介して、ストレージ1000の実ボリューム情報を取得する(ステップ16030)。すなわち、管理計算機1300は、実ボリュームテーブル8000の情報を取得する。
ステップ16030の処理終了後、処理はステップ16040に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、ステップ16010で取得した仮想プール1060に、割当容量削減対象の仮想ボリューム1051のサーバ使用容量分以上の仮想プールボリューム1052を追加できるか否かを判定する(ステップ16040)。対象の仮想プール1060に仮想プールボリューム1052として追加し得る実ボリューム1050の情報は、ステップ16030において取得されている。このため、実ボリュームテーブル8000に基づいて、一つ又は複数の実ボリューム1050を仮想プールボリューム1052に変更することで、仮想プール1060の空き容量が割当容量削減対象の仮想ボリューム1051のサーバ使用容量分以上になることが確認できれば、ステップ16040の処理は成功となる。
例えば、仮想ボリューム「V2000」の場合、ステップ16020において「No」と判定され、ステップ16030の処理が実行された後、ステップ16040が実行される。仮想ボリューム「V2000」は、仮想プール「P200」に対応する(仮想ボリュームテーブル6000参照)。仮想プール「P200」の空き容量は、100Gである。これは、仮想プール「P200」の全容量「400G」から割当容量「300G」を減算することによって算出される(仮想プール容量テーブル7000参照)。仮想ボリューム「V2000」のサーバ使用容量は、150Gである(サーバボリュームテーブル11000参照)。
この場合、50G分の容量を仮想プール「P200」に追加すれば、仮想プール「P200」の空き容量が仮想ボリューム「V2000」のサーバ使用容量以上となる。すなわち、実ボリュームテーブル8000に基づいて、V30又はV40を追加すればよいことがわかる。ただし、閾値設定を考慮した場合、V30を追加することで、閾値に関する警告を防ぐことができる。
ステップ16040において、処理成功であれば、ステップ16050に進む。処理失敗、すなわち、割当容量削減対象の仮想ボリューム1051のサーバ使用容量に相当する仮想プール1060の空き容量を、実ボリューム1050を仮想プールボリューム1052として追加することによって確保できない場合、処理はステップ18000に進む(C)。ステップ18000及びそれに続くステップについては図18で説明する。
管理計算機1300は、仮想ボリューム容量管理プログラム1335から仮想ボリューム設定プログラム1333を呼び出し、割当容量削減対象の仮想ボリューム1051のサーバ使用容量分以上の容量を有する実ボリューム1050を選択する(ステップ16050)。そして仮想ボリューム設定プログラムはストレージ連携プログラム1332を介して、ステップ16050で選択した実ボリューム1050を、ステップ16010で選択した仮想プール1060に追加し、仮想プールボリューム1052とする。
実際には、ストレージ1000は、上記の仮想プール1060追加の要求を受け取り、上記選択した実ボリューム1050を仮想プールボリューム1052として設定する。このとき、仮想プール容量テーブル7000において、仮想プールボリューム1052が追加された仮想プール1060の全容量の値を、追加された仮想プールボリューム1052の容量の分だけ加算させる。そして、ストレージ1000は、実ボリュームテーブル8000において、新たな仮想プールボリューム1052として設定されたものを削除する。
例えば、上記の例に従えば、仮想ボリューム「V2000」に関連する仮想プール「P200」に、実ボリューム「V30」が仮想プールボリューム1052として追加される。よって、仮想プール容量テーブル7000の仮想プール「P200」の全容量は600Gに変更され、実ボリュームテーブル8000の実ボリューム「V30」の情報は削除される。
ステップ16050の処理終了後、処理はステップ16060に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335から仮想ボリューム設定プログラム1333を呼び出し、ステップ16010で取得した仮想プール1060に、ステップ16000で選択した仮想ボリューム1051と同一の仮想容量を持つ仮想ボリューム1051を作成するように指示する(ステップ16060)。ここで作成された仮想ボリューム1051は、後述するファイル透過移行において移行先として使用される。
そして、仮想ボリューム設定プログラム1333は、ストレージ連携プログラム1332を介して、ステップ16010で選択した仮想プール1060に、ステップ16000で選択した仮想ボリューム1051と同一の仮想容量を持つ仮想ボリューム1051を新規に作成する。そして、仮想ボリューム設定プログラム1333は、新規に作成された仮想ボリューム1051をサーバ1100が認識できるように設定する。
実際にはストレージ1000が、上記要求を受け取り、仮想ボリューム1051を作成する。このとき仮想ボリュームテーブル6000に新規の仮想ボリューム1051の情報が追加される。新規の仮想ボリューム1051のIDは、ストレージ1000が自動的に設定しても、ユーザ又は管理計算機1300が設定してもよい。
例えば、上記の例に従えば、仮想ボリューム「V2000」を容量削減対象とするとき、仮想プール「P200」に仮想ボリューム1051が追加される。仮想ボリュームテーブル6000に登録される情報は、仮想ボリューム容量管理プログラム1335によって決定され、仮想ボリュームID情報は、ストレージ1000の中で空いている(すなわち使用されていない)番号を探すことで決定される。
図6から図10までにすべてのボリュームの情報が列挙されていると仮定するならば、例えば「V2001」は空き番号なので、新たに作成された仮想ボリューム1051のIDは「V2001」と決定される。仮想ボリューム「V2001」は仮想プール「P200」に追加されるので、仮想プールIDの情報として「P200」が登録される。仮想ボリューム「V2001」の仮想容量6030は、仮想ボリューム「V2000」と同じで足りるので、「800G」が登録される。この時点で仮想ボリューム「V2001」へのデータ書き込みは一度も実行されていないため、実割当容量6040として「0G」が登録される。
ステップ16060の処理終了後、処理はステップ17000に進む(B)。ステップ17000及びそれに続くステップは、ファイル移行による仮想ボリューム1051の割当容量削減のステップを示す。ステップ17000等については図17で説明する。
例えば、仮想ボリューム「V1000」を割当容量削減の対象としている場合、仮想プール「P100」に仮想容量2Tの仮想ボリューム1051が作成される。
上記ステップ16060では、ステップ16000で選択した仮想ボリューム1051(すなわち移行元の仮想ボリューム1051)と同一の仮想容量を有する仮想ボリューム1051が移行先として作成される。しかし、移行先の仮想ボリューム1051に移行元のサーバ使用容量と同等の仮想容量があれば、サーバ1100は後述するファイル透過移行を実行できる。このため、移行先の仮想ボリューム1051の仮想容量は、少なくともステップ16000で選択した仮想ボリューム1051のサーバ使用容量分あれば十分であり、移行元の仮想ボリューム1051の仮想容量と同じである必要はない。
また、既存の仮想ボリューム1051のうち、まだ利用されていない仮想ボリューム1051があれば、それを移行先として用いてもよい。
図16の処理によって、上記のように、ファイルの移行先となる仮想ボリューム1051を作成することができる。
図17は、本発明の第一の実施形態において、ファイル移行によって仮想ボリューム1051の割当容量削減を行なう処理を示すフローチャートの一例である。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からサーバ連携プログラム1331を介して、ファイル移行用仮想ボリューム、すなわちステップ16060で作成した仮想ボリューム1051をサーバ1100にマウントするように指示する(ステップ17000)。この指示は、ファイル移行用仮想ボリュームをサーバ1100で扱えるようにするための指示である。そしてサーバ1100は、サーバボリュームアクセスプログラム1134によって、マウントを実行する。これは従来のファイルシステムの機能によって達成される。
上記の例に従えば、ステップ16060で仮想ボリューム「V2001」がファイル移行用仮想ボリュームとして作成されているので、仮想ボリューム「V2001」がサーバ1100にマウントされる。そしてサーバ1100はサーバボリュームテーブル11000に上記新たにマウントした仮想ボリューム「V2001」を登録する。すなわちサーバボリューム11010には仮想ボリュームIDである「V2001」が、容量11020にはステップ16060の例に従い「800G」が、使用容量11030には、まだ仮想ボリューム「V2001」にファイルが書き込まれていないので「0G」が、ファイル11040には、まだ仮想ボリューム「V2001」にファイルが書き込まれていないので空白が登録される。
ステップ17000の処理終了後、処理はステップ17010に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からサーバ連携プログラム1331を介して、ステップ16000で選択した仮想ボリューム1051の全ファイルを、ステップ17000でサーバにマウントした仮想ボリューム1051にファイル透過移行することを指示する(ステップ17010)。
例えば、ステップ16000で仮想ボリューム「V1000」が選択された場合、サーバボリュームテーブル11000に基づいて、仮想ボリューム「V1000」にファイルF1、F2、F3及びF4が格納されていることがわかる。この場合、仮想ボリューム容量管理プログラム1335は、ファイルF1、F2、F3及びF4の全ファイルを、ステップ17000でサーバにマウントした仮想ボリューム1051、上記例に従えば仮想ボリューム「V2001」にファイル透過移行することを指示する。
ステップ16000において仮想ボリューム「V2000」が選択された場合、サーバ1100は仮想ボリューム「V2000」のファイルを仮想ボリューム「V2001」に透過的に移行する。すなわち、サーバ1100は、仮想ボリューム「V2000」に格納された全てのファイルを仮想ボリューム「V2000」から読み出し、読み出された全てのファイルを仮想ボリューム「V2001」に書き込む。
ストレージ1000は、サーバ1100からの要求に従って、仮想ボリューム「V2000」に格納された全てのファイルのデータを、仮想ボリューム「V2000」に対応付けられた仮想プール1060の物理記憶領域から読み出し、読み出されたデータを、仮想ボリューム「V2001」に対応付けられた仮想プール1060の物理記憶領域に書き込む。このとき、ストレージ1000は、仮想ボリューム「V2001」の記憶領域のうち、データが書き込まれるべき記憶領域のみに仮想プール1060の物理記憶領域を(チャンクとして)割り当てる。
この場合、仮想ボリューム「V2000」の情報として、サーバボリュームテーブル11000の使用容量11030には、ファイルが仮想ボリューム「V2001」に移行した(すなわち仮想ボリューム「V2000」にはファイルが残っていない)ので「0G」が、ファイル11040には、ファイルが移行したので空白が登録される。仮想ボリューム「V2001」の情報として、使用容量11030には、仮想ボリューム「V2000」のファイルが移行してきたので「150G」が、ファイル11040には、移行が実行される前の仮想ボリューム「V2000」に格納されていたファイルF5及びF6が登録される。
ステップ17010の処理終了後、処理はステップ17020に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からサーバ連携プログラム1331を介して、ステップ17010で指示したファイル透過移行が終わったか否かを確認する(ステップ17020)。この確認は、定期的なサーバ1100への問い合わせによって実現されてもよいし、サーバ1100から終了したことの通知を受けることによって実現されてもよい。そしてファイル透過移行が確認できたところで、ステップ17020の処理は終了する。
ステップ17020の処理終了後、処理はステップ17030に進む。
上記の処理によって、ステップ16000で選択した仮想ボリュームの全ファイルが、ステップ17000でサーバにマウントした仮想ボリュームにファイル透過移行される。すなわち、ステップ17020によって終了が確認された時点で、ステップ16000で選択した仮想ボリューム1051に格納されたファイルのうち、サーバ1100が使用していたファイルのみがステップ17000の仮想ボリュームに移行されている。その移行が終了した後、ステップ16000の仮想ボリューム1051は、サーバ1100によって使用されないため、削除することができる。
ステップ17010から17020の処理によって、ストレージ1000において、ステップ16060で作成した仮想ボリューム1051への書き込みが発生する。その書き込みの結果と整合するように、仮想ボリュームテーブル6000、仮想プール容量テーブル7000、仮想プールテーブル9000及び仮想ボリューム割当テーブル10000が更新される。
例えば、上記例に従えば、仮想ボリューム「V2000」が容量削減対象であり、仮想ボリューム「V2001」がファイル透過移行先として扱われる。その場合、仮想ボリューム「V2001」の実割当容量6040が更新される。具体的には、ファイル透過移行前の仮想ボリューム「V2000」のサーバ使用容量と同一の容量が、ファイル透過移行後の仮想ボリューム「V2001」の実割当容量6040として登録される。その結果、ステップ16060では「0G」だった仮想ボリューム「V2001」の実割当容量6040が、ステップ17020が終了した結果、「150G」に更新される。
さらに、仮想プール容量テーブル7000においても、仮想プール「P200」の割当容量7030「300G」から「450G」に更新される。また仮想プールテーブル9000においては、図9では省略されているが、仮想プール「P200」において、割当状態9050が更新される。上記の例の場合、150G分のチャンクが2Gごとに仮想ボリューム「V2001」に割り当てられる。それらのチャンクの割当状態9050として、割り当て先の仮想ボリューム1051の仮想ボリュームIDである「V2001」が登録される。同様に、仮想ボリューム「V2001」及び「V2001」に対応する仮想プールIDとして「P200」、割り当てられたチャンクのID、及び、割当LBA情報が、それぞれ、仮想プールID10020、チャンクID10030及び割り当てLBA10400に登録されるように、仮想ボリューム割当テーブル10000が更新される。
管理計算機1300は、仮想ボリューム容量管理プログラム1335から仮想ボリューム設定プログラム1333に、ステップ16000で選択した仮想ボリューム1051を削除すること指示する(ステップ17030)。そして仮想ボリューム設定プログラム1333はストレージ連携プログラムを1332介して、ステップ16000で選択した仮想ボリューム1051を削除する。ステップ16000で選択した仮想ボリューム1051の削除に際して、ホストへの仮想ボリューム1051の割当設定も削除する必要がある場合は、この設定も削除し、最終的に仮想ボリューム1051を削除できるような環境にした後で仮想ボリューム1051を削除する。
例えば、仮想ボリューム「V2000」が削除の対象である場合、仮想ボリューム「V2000」そのものが削除される。このときストレージ1000では、仮想ボリューム「V2000」を削除するが、その際、仮想ボリュームテーブル6000、仮想プール容量テーブル7000、仮想プールテーブル9000及び仮想ボリューム割当テーブル10000が更新される。
具体的には、仮想ボリュームテーブル6000においては、削除される仮想ボリューム1051に関する情報が削除される。上記例に従えば、仮想ボリューム「V2000」に関する情報が削除される。
仮想プール容量テーブル7000においては、仮想ボリューム1051が削除されたことと整合するように、割当容量が削除される。上記のように仮想ボリューム「V2000」が削除される例について説明すると、削除される前の仮想ボリューム「V2000」の割当容量は300Gであった。このため、仮想プール「P200」の割当容量7030の値は300G減算される。一方、新たに作成された仮想ボリューム「V2001」の割当容量は150Gであるため、仮想プール「P200」の割当容量7030の値は150G加算される。図7の例は、仮想ボリューム「V2000」が削除される前、かつ、仮想ボリューム「V2001」が作成される前の状態を示すため、上記の更新の結果、仮想プール「P200」の割当容量7030の値は150Gとなる。
さらに、仮想プールテーブル9000及び仮想ボリューム割当テーブル10000においても、削除された仮想ボリューム1051に関する情報が削除される。すなわち、上記の例では、仮想ボリューム「V2000」の割当に関係する情報が削除される。
ステップ17030によって、削除された仮想ボリューム1051の割当容量は仮想プール1060に返却される。返却された割当容量は、削除された仮想ボリューム1051と同じ仮想プール1060に属する他の仮想ボリューム1051に新たに割り当てることが可能な空き容量として扱われる。ステップ17010で作成された仮想ボリューム1051には、ステップ17020でファイル透過移行によって書き込まれた容量分が既に割り当てられている。このため、結果的には、ステップ16000の仮想ボリュームの割当容量から、ステップ16000のサーバ使用容量を引いた残りの容量が、ステップ17030によって開放される。すなわち、上記処理によって、仮想プール1060自体の割当容量削減(言い換えると、仮想プール1060の空き容量の増加)も達成される。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、割当容量削減が終わっていない仮想ボリューム1051があるか否かを判定する(ステップ17040)。すなわち、管理計算機1300は、まだ割当容量削減処理が行われていない仮想ボリューム1051をステップ15060のリストから見つけ出す。
ステップ17040の処理終了後、割当容量削減が終わっていない仮想ボリューム1051がある場合、処理はステップ16000に戻る(A)。その後、ステップ16000以降の処理が継続される。一方、割当容量削減が終わってない仮想ボリューム1051がない場合、すなわちステップ15060のリストに登録されたすべての仮想ボリューム1051を対象として割当容量削減が終了している場合、処理はステップ17050に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、仮想ボリューム1051の容量を監視する必要があるか否かを判定する(ステップ17050)。具体的には、図12又は図13の画面による設定に基づいて本処理が実行されている場合には、さらに容量監視を継続する必要があるため、処理はステップ15030に戻る(D)。一方、容量監視の結果に基づいて自動的に本処理が実行されていない場合、具体的には、例えば図14の画面による設定に基づいて本処理が実行されるように、手動で本処理が実行される場合には、本処理を終了する。
なお、容量監視の結果に基づいて自動的に本処理が実行されている場合であっても、ユーザが容量監視を中止してもよいと判定する可能性がある。このような場合に備えるため、ステップ17050において、管理計算機1300は、ユーザに容量監視を継続する必要があるか否かを判定させてもよい。その場合には、容量監視の継続の要否を選択させる画面又はコマンドラインを用意することが望ましい。
図18は、本発明の第一の実施形態において、別の仮想プール1060の仮想ボリューム1051へのファイル移行によって仮想ボリューム1051の割当容量削減を行なう処理を示すフローチャートの一例である。
既に説明したように、図17の処理によれば、仮想ボリューム1051に格納されたファイルを、その仮想ボリュームが属するものと同じ仮想プール1060に属する別の仮想ボリューム1051に移行することによって、割当容量が削減される。一方、図18は、仮想ボリューム1051に格納されたファイルを、その仮想ボリューム1051が属するものとは別の仮想プール1060に属する仮想ボリューム1051に移行することによって、割当容量を削減する処理を示す。以下の説明において、割当容量削減対象の仮想ボリューム1051が属する仮想プール1060とは別の仮想プール1060を、他の仮想プール1060と記載する。
ファイル移行先として他の仮想プール1060の仮想ボリューム1051が指定されるほかは、図16及び図17に示す処理と同様な処理が実行される。
なお、仮想ボリュームにファイルを格納するためには、仮想ボリュームの一部の記憶領域をメタデータ領域として確保する。メタデータ領域には、仮想ボリュームに格納したと表現されるファイルそれぞれに対応したメタデータ情報が格納される。なお、メタデータ情報は、対応するファイルの属性情報(例えば、読み書き属性、作成時刻、更新時刻)と、ファイルのデータとして書き込まれたデータを格納した仮想ボリューム内の位置情報と、を含む。
なお、ファイルに対する(ファイル名)の管理方法はファイルシステムによって異なるが、例えば、ファイル名(パス名を含む)と対応するメタデータ情報を示す識別子の組を格納する名前空間情報(Unixの場合はディレクトリファイルの集合がこれに該当する)(Unixは登録商標)が仮想ボリュームには格納されている。なお、過去に作成されたが、削除されたファイルに関するデータは仮想ボリュームに残っている場合もあり、また過去において対応していたメタデータ情報も残っている場合もある。ただし、名前空間情報には削除されたファイルは存在しない。
これによって、ファイルシステムプログラムを有するファイルサーバは、ファイル名で指定したファイルを読み込む場合は、名前空間情報を参照することで指定されたファイル名に対応するメタデータ情報を特定し、特定したメタデータ情報を参照することで指定されたファイルのデータが格納されている仮想ボリューム上の位置を特定し、当該位置にを指定したI/Oリクエストを発行することでファイルのデータを読み書きしている(読む場合は特に顕著である)。なお、ストレージ装置に対するI/Oリクエストは固定長ブロックを指定する形式で行う。
逆にファイルシステムプログラムを有するファイルサーバは、ファイル名で指定したファイルを新規に書き込む場合は、メタデータ情報を確保し、当該確保したメタデータ情報と新規ファイルに対応したファイル名の組を名前空間情報に格納し、書き込みが発生した場合は、仮想ボリューム上に書き込みデータを格納する記憶領域を格納すると共に、前述の属性と書き込みデータを書き込んだ位置をメタデータ情報に書き込む。
上記仮想ボリュームに格納した一つ以上のファイルを移動する場合は、ファイルサーバは名前空間で現在格納中のファイルのファイル名を特定することで、削除済みをファイルのデータを移行対象から外すことが出来る。その後ファイルサーバは前述の読み込みと書き込みの処理を併用(ただし、メタデータ情報に格納した属性をファイル作成時に指定またはコピー)することで、新たな仮想ボリュームにファイルの属性及び名前空間を作成しつつ、ファイルのデータを移行することができる。
図18に示す処理は、図16のステップ16040において、実ボリューム1050を仮想プールボリューム1052として追加することによって、割当容量削減対象の仮想ボリューム1051のサーバ使用容量に相当する仮想プール1060の空き容量を確保できないと判定された場合に実行される。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からストレージ連携プログラム1332を介して、ストレージ1000の全仮想プール情報をストレージ1000から取得する(ステップ18000)。具体的には、全仮想プール情報は、仮想プール容量テーブル7000から取得される。ステップ16010の仮想プール情報の取得によって全仮想プール情報が取得されてもよい。その場合、ステップ18000は実行されなくてもよい。
ステップ18000の処理終了後、処理はステップ18010に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、ステップ18000で取得した他の仮想プール1060が、割当容量削減対象の仮想ボリューム1051のサーバ使用容量以上の空き容量を持つか否かを判定する(ステップ18010)。管理計算機1300は、割当容量削減対象の仮想ボリューム1051のサーバ使用容量をすでに取得しているので、そのサーバ使用容量分の空き容量が他の仮想プール1060にあるか否かを、仮想プール容量テーブル7000に基づいて判定する。ステップ18000で取得した他の仮想プール1060がサーバ使用容量分の空き容量を持っていれば、当該他の仮想プール1060に割当容量削減対象の仮想ボリューム1051のデータを移行することは可能である。
ステップ18010において、仮想プール1060が割当容量削減対象の仮想ボリューム1051のサーバ使用容量以上の空き容量を持つと判定された場合、処理はステップ18040に進み、そうでない場合、処理はステップ18020に進む。
例えば、仮想ボリューム「V2000」が割当容量削減対象である場合において、実ボリュームテーブル8000に実ボリューム「V30」及び「V40」の容量がいずれも20G(すなわち50G未満)である場合、仮想プール「P200」にどの実ボリューム1050を追加しても、仮想プール「P200」の空き容量は120Gにしかならない(図7及び図8参照)。この空き容量は、仮想ボリューム「V2000」のサーバ使用容量より小さい。したがって、この場合、ステップ16040で「No」と判定され、ステップ18010が処理される。
この場合には、ステップ18010において、他の仮想プール1060の空き容量と仮想ボリューム「V2000」のサーバ使用容量について処理を行なう必要がある。ここでは、説明の簡単化のため、ステップ18000において複数の仮想プール1060が取得された場合、それらのうち割当容量の少ない仮想プール1060が他の仮想プール1060として選択される。
この場合、仮想ボリューム「V2000」のサーバ使用容量が150Gであるので、空き領域が150G以上あり、かつ、割当容量が少ない仮想プール1060が仮想プール容量テーブル7000から順に選択され、調べられる。この場合には仮想プール「P300」が該当する仮想プール1060である。図7の例では、仮想プール「P300」の空き容量は450Gである。この空き容量は、仮想ボリューム「V2000」のサーバ使用容量である150Gより大きいと判定される(ステップ18010)。よってこの場合、処理はステップ18040に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、ステップ18000で取得した仮想プール1060に、割当容量削減対象の仮想ボリューム1051のサーバ使用容量分以上の仮想プールボリューム1052を追加できるか否かを判定する(ステップ18020)。仮想プール1060に仮想プールボリューム1052として追加することができる実ボリューム1050の情報(すなわち実ボリューム情報8000)は、ステップ16030によって取得されている。実ボリューム情報に基づいて、一つ又は複数の実ボリューム1050を仮想プールボリューム1052に変更することで、仮想プール1060の容量が割当容量削減対象の仮想ボリュームのサーバ使用容量分以上になることが確認できれば、ステップ18020の処理は成功となる。
ステップ18020の処理が成功であれば、ステップ18030に進み、処理失敗、すなわち、実ボリューム1050を仮想プールボリューム1052として追加することによって仮想プール1060の容量を割当容量削減対象の仮想ボリューム1051のサーバ使用容量分確保できなければ、処理はステップ18100に進む。
例えば、仮想ボリューム「V2000」が割当容量削減対象である場合において、仮想プール容量テーブル7000に、(図7の例とは異なり、)仮想プール「P100」が登録されておらず、P300の割当容量7030として「360G」が登録されて(すなわち空き容量が140Gになって)おり、かつ、(図8の例とは異なり、)実ボリューム1050として実ボリューム「V50」のみが存在する場合、ステップ18100が処理される。
この場合には、ステップ16020において、他の仮想プール1060の空き容量と仮想ボリューム「V2000」のサーバ使用容量と、について処理を行なう必要がある。ここでは、説明の簡単化のため、仮想プール1060の選択は、割当容量の少ない仮想プール1060(上記の例では仮想プール「P300」)が他の仮想プール1060として選択される。また、閾値をこの場合は考えないこととする。
この場合、仮想ボリューム「V2000」のサーバ使用容量は150Gであるので、仮想プール「P300」に実ボリューム1050が追加される。例えば実ボリューム「V50」(20G)を仮想プールボリューム1052に変更して追加することで、仮想プール「P300」の空き容量が160Gとなる。この場合は空き容量分確保可能であるため、処理はステップ18030に進む。ただし、仮想プールの閾値を考慮する場合、又は、実ボリューム「V50の」サイズが5Gであった場合には、サーバ使用容量を仮想プール「P300」が確保できないので、処理はステップ18100に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335から仮想ボリューム設定プログラム1333を呼び出し、割当容量削減対象の仮想ボリューム1051のサーバ使用容量分以上の仮想プールボリューム1052となる実ボリューム1050を選択する(ステップ18030)。そして、仮想ボリューム設定プログラム1333は、ストレージ連携プログラム1332を介して、ステップ18020で選択した仮想プール1060に、上記選択した実ボリューム1050を、仮想プールボリューム1052に変更して追加する。すなわちステップ16050と同等の処理が実行される。
ステップ18030の処理終了後、処理はステップ18040に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335から仮想ボリューム設定プログラム1333を呼び出し、ステップ18010又はステップ18020で取得した仮想プール1060に、ステップ16000で選択した仮想ボリューム1051と同一の仮想容量を持つ仮想ボリューム1051を作成するように指示する(ステップ18040)。そして仮想ボリューム設定プログラム1333は、ストレージ連携プログラム1332を介して、ステップ18010又は18020で選択した仮想プール1060に、ステップ16000で選択した仮想ボリューム1051と同一の仮想容量を持つ仮想ボリューム1051を新規に作成する。すなわちステップ16060と同等の処理が実行される。
ステップ18040の処理終了後、処理はステップ18050に進む。
例えば、仮想ボリューム「V2000」が割当容量削減対象である場合、仮想ボリューム「V2000」の仮想容量である800Gの容量の仮想ボリューム1051が作成される。
なお、図16を参照して説明したように、移行先の仮想ボリューム1051に移行元のサーバ使用容量と同等の仮想容量があれば、サーバ1100は後述するファイル透過移行を実行できる。このため、移行先の仮想ボリューム1051の仮想容量は、少なくともステップ16000で選択した仮想ボリューム1051のサーバ使用容量分あれば十分であり、移行元の仮想ボリューム1051の仮想容量と同じである必要はない。
また、既存の仮想ボリューム1051のうち、まだ利用されていない仮想ボリューム1051があれば、それを移行先として用いてもよい。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からサーバ連携プログラム1331を介して、ファイル移行用仮想ボリューム、すなわちステップ18040で作成した仮想ボリューム1051をサーバ1100にマウントするように指示する(ステップ18050)。すなわち、管理計算機1300は、ファイル移行用仮想ボリュームをサーバ1100で扱えるように指示する。そしてサーバ1100は、サーバボリュームアクセスプログラムによって、指示された仮想ボリューム1051をマウントする。これは従来のファイルシステムの機能によって達成される。すなわち、ステップ17000と同等の処理が実行される。
ステップ18050の処理終了後、処理はステップ18060に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からサーバ連携プログラム1331を介して、ステップ16000で選択した仮想ボリューム1051の全ファイルを、ステップ18050でサーバ1100にマウントした仮想ボリューム1051にファイル透過移行することを指示する(ステップ18060)。すなわちステップ17010と同等の処理が実行される。
例えば、仮想ボリューム「V2000」がステップ16000で選択された場合、サーバボリュームテーブル11000を参照することによって、仮想ボリューム「V2000」がファイルF5及びF6を持っていることがわかる。ファイルF5及びF6の全てが、ステップ18050でサーバ1100にマウントされた仮想ボリューム1051にファイル透過移行される。
ステップ18060の処理終了後、処理はステップ18070に進む。
管理計算機1300は、仮想ボリューム容量管理プログラム1335からサーバ連携プログラム1331を介して、ステップ18060で指示したファイル透過移行が終わったか否かを確認する(ステップ18070)。すなわちステップ17020と同等の処理が実行される。本処理は定期的なサーバ1100への問い合わせによって実現されてもよいし、サーバ側から終了したことの通知を受けることによって実現されてもよい。そしてファイル透過移行の終了が確認できたところで、ステップ18070の処理は終了する。
ステップ18070の処理終了後、処理はステップ18080に進む。
上記の処理によって、ステップ16000で選択した仮想ボリュームの全ファイルが、ステップ18050でサーバにマウントした仮想ボリュームにファイル透過移行される。すなわち、ステップ18070によって終了が確認された時点で、ステップ16000で選択した仮想ボリューム1051に格納されたファイルのうち、サーバ1100が使用していたファイルのみがステップ18050の仮想ボリュームに移行されている。その移行が終了した後、ステップ16000の仮想ボリューム1051は、サーバ1100によって使用されないため、削除することができる。
管理計算機1300は、仮想ボリューム容量管理プログラム1335から仮想ボリューム設定プログラム1333に、ステップ16000で選択した仮想ボリューム1051を削除すること指示する(ステップ18080)。そして仮想ボリューム設定プログラム1333はストレージ連携プログラム1332を介して、ステップ16000で選択した仮想ボリューム1051を削除する。ステップ16000で選択した仮想ボリューム1051の削除に際して、ホストへの仮想ボリューム1051の割当設定も削除する必要がある場合は、この設定も削除し、最終的に仮想ボリューム1051を削除できるような環境にした後で仮想ボリューム1051を削除する。すなわちステップ17030と同等の処理が実行される。
ステップ18080によって、削除された仮想ボリューム1051の割当容量は仮想プール1060に返却される。返却された割当容量は、削除された仮想ボリューム1051と同じ仮想プール1060に属する他の仮想ボリューム1051に新たに割り当てることが可能な空き容量として扱われる。ステップ18040で作成された仮想ボリューム1051には、ステップ18060でファイル透過移行によって書き込まれた容量分が既に割り当てられている。このため、結果的には、ステップ16000の仮想ボリュームの割当容量から、ステップ16000のサーバ使用容量を引いた残りの容量が、ステップ18080によって開放される。すなわち、上記処理によって、仮想プール1060自体の割当容量削減も達成される。
管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、他の仮想プール1060に仮想ボリューム1051が移動したことを通知する(ステップ18090)。そして処理は図17のステップ17040に戻る(E)。
ステップ18020の処理が失敗であった場合、管理計算機1300は、仮想ボリューム容量管理プログラム1335によって、割当容量削減対象の仮想ボリューム1051の移行先となりうる仮想ボリューム1051を作成できないため、仮想ボリューム1051の割当容量削減が不可であることを通知する(ステップ18100)。その後、処理は図17のステップ17040に戻る(E)。
図18までの処理によって、他の仮想プール1060にファイル透過移行先の仮想ボリューム1051が作成され、これによって仮想ボリューム1051の割当容量削減が実現される。
ステップ18080によって、前述のとおり、ステップ16000で選択された仮想ボリューム1051(例えば仮想ボリューム「V2000」)に割り当てられていた容量が、その仮想ボリューム1051が属していた仮想プール1060(例えば仮想プール「P200」)に開放される。したがって、ステップ16000で選択された仮想ボリュームが属していた仮想プール(例えば仮想プール「P200」)に新たな仮想ボリューム1051を作成し、その作成された新たな仮想ボリューム1051に、他の仮想プール(例えば仮想プール「P300」)に移行した仮想ボリューム1051のデータをファイル透過移行によって移行することもできる。これによって、一旦他の仮想プール1060に移行したデータが、元の仮想プール1060に戻される。
上記の処理は、ステップ18040からステップ18080によって達成される。ただし、これらのステップにおいて、移行元は、他の仮想プール1060に作成した仮想ボリューム1051、移行先は、ステップ16000で選択された仮想ボリューム1051が属していた仮想プール1060に新たに作成された仮想ボリューム1051である。
また、本実施形態において、ファイルのライトが起こっていない仮想ボリューム1051があれば、その仮想ボリューム1051のサーバ使用容量と少なくとも同一の容量を有する実ボリューム1050へ、その仮想ボリューム1051のデータを移行してもよい。ファイルのライトが起こっているか否かは、例えば、ファイルのアクセスパターンを監視した結果に基づいて判定されてもよいし、ユーザの設定に基づいて判定されてもよい。
また本実施形態において、仮想プール1060の閾値7040の値を超えたら、関連する仮想プール1060の仮想ボリューム1051を対象に、図15以降の処理が実行されてもよい。
また、図16のステップ16020の処理、ステップ16040の処理、図18のステップ18010の処理、及びステップ18020の処理において、各々Yesとなれば、その時点で仮想ボリューム1051の割当容量削減の条件が満たされる。よって、この場合、管理計算機1300は、仮想ボリューム割当容量削減を実行できることを、管理計算機1300の入出力装置1310などを用いてユーザに向けて表示してもよい。また、ステップ16040及びステップ18020でYesと判定された場合は、仮想プールボリューム1052を仮想プール1060に設定する必要があるので、その旨も管理計算機1300の入出力装置1310などを用いて表示されてもよい。
また、図15のステップ15050において、容量の差が使用率差分を超えたと判定された場合、管理計算機1300は、容量の差が使用率差分を超えたこと、そのときの仮想ボリュームのID、仮想容量、仮想ボリューム割当容量及びサーバ使用容量を、ユーザに向けて、入出力装置1310などを用いて表示してもよい。仮想ボリュームのID、仮想容量、仮想ボリューム割当容量及びサーバ使用容量は、図14の仮想ボリューム14110、仮想容量14120、仮想ボリューム割当容量14130及びサーバ使用容量14140と同等の形式で表示されてもよい。使用率差分の情報も表示する場合には、上記と同様に各ボリュームに対して、使用率差分が表示されてもよい。
次に、本発明の第二の実施形態について説明する。
図19は、本発明の第二の実施形態の計算機システムの構成を示すブロック図である。
図19に示す第二の実施形態の計算機システムは、複数のストレージ1000がサーバ1100に接続されていることを除いて、図1に示す第1の実施形態の計算機システムと同じである。
図2から図18及びそれらの説明は、第二の実施形態の計算機システムにも適用される。
本実施形態において、前述したとおり、管理計算機1300及びサーバ1100が複数のストレージ1000を管理することができる。また、図18に示すように、移行先の仮想ボリューム1051が他の仮想プール1060に属する場合、当該他の仮想プール1060は、割当容量削減対象の仮想ボリューム1051が属するものとは別のストレージ1000の仮想プール1060から選択されてもよい。
上記によって、複数のストレージ1000管理することができる。
また、図12の設定画面においては、ストレージ1000の識別子を設定させて、ストレージ1000ごとに条件を設定させてもよい。
次に、本発明の第三の実施形態について説明する。
図20は、本発明の第三の実施形態の計算機システムの構成を示すブロック図である。
図20に示す第三の実施形態の計算機システムは、複数のサーバ1100が存在することを除いて、図19に示す第二の実施形態の計算機システムと同じである。
図2から図18及びそれらの説明は、第三の実施形態の計算機システムにも適用される。
Global Name Space等の技術によって、複数のサーバ1100間でも共通のネームスペースを利用したファイル仮想化が実現可能である。例えば、複数のサーバにわたるローカルファイルシステムがシステムロケーション情報を交換することで、共通のネームスペースを複数のサーバ間で共有し、ファイルを格納することができる。そして、共通のネームスペースを利用することで、サーバ間のファイル移行もホストには透過的に行なうこと、すなわちファイル透過移行を可能としている。よって、ファイル透過移行は、単一のサーバ1100内のファイル移行だけでなく、サーバ1100をまたがったファイル移行にも適用することができる。
上記によって、複数のサーバ1100を対象としても、本発明の操作は可能となる。
次に、本発明の第四の実施形態について説明する。
図21は、本発明の第四の実施形態の計算機システムの構成を示すブロック図である。
図21に示す第四の実施形態の計算機システムは、管理計算機1300が存在せず、第一の実施形態で示した管理計算機1300の処理をサーバ1100にて実現する点を除いて、図1に示した第一の実施形態の計算機システムと同じである。本実施形態のサーバ1100の構成は、第一の実施形態のサーバ1100とは異なっているため、図22にて説明する。
図2、図4から図18及びそれらの説明は、第四の実施形態の計算機システムにも適用される。
また第二及び第三の実施形態の構成においても、第四の実施形態と同様、管理計算機1300の処理をサーバ1100にて実現することができる。そのような実施形態は、第二及び第三の実施形態の管理計算機1300が保持する情報を、あるサーバ1100が管理することで実現される。
図22は、本発明の第四の実施形態のサーバ1100の構成を示すブロック図である。
図22に示す第四の実施形態のサーバ1100は、メモリ1130に格納されたプログラムを除いて、図3に示す第一の実施形態のサーバ1100と同じである。
具体的には、第一の実施形態の管理計算機1300で使用するプログラムである、ストレージ連携プログラム1332、仮想ボリューム設定プログラム1333及び仮想ボリューム容量管理プログラム1335がサーバ1100のメモリ1130に格納される。これによって、第一の実施形態の管理計算機1300で実行される処理が、サーバ1100によって実行される。
また、本実施形態の計算機システムは管理計算機1300を備えないため、管理計算機連携プログラム1131は不要となり、サーバ1100内のプログラムによってサーバ1100内で情報がやりとりされる。また図12、図13及び図14の画面においては、画面によらず、それらの図に示したものと同様の条件が、コマンドライン又はファイルなどの形式でサーバ1100から設定されてもよい。本実施形態によって、管理計算機1300が存在しない構成で、本発明の処理を実現することができる。
本発明の第一の実施形態の計算機システムを構成する各装置と各装置の接続関係を表すブロック図の一例である。 本発明の第一の実施形態の計算機システムに含まれるストレージの構成を示すブロック図の一例である。 本発明の第一の実施形態の計算機システムに含まれるサーバの構成を示すブロック図の一例である。 本発明の第一の実施形態の計算機システムに含まれるホストの構成を示すブロック図の一例である。 本発明の第一の実施形態の計算機システムに含まれる管理計算機の構成を示すブロック図の一例である。 本発明の第一の実施形態のストレージのストレージ構成情報に含まれる仮想ボリューム情報を管理するテーブルの一例を示す説明図である。 本発明の第一の実施形態のストレージのストレージ構成情報に含まれる仮想プール容量情報を管理するテーブルの一例を示す説明図である。 本発明の第一の実施形態のストレージのストレージ構成情報に含まれる実ボリューム情報を管理するテーブルの一例を示す説明図である。 本発明の第一の実施形態のストレージのストレージ構成情報に含まれる仮想プールの割当状態を管理するテーブルの一例を示す説明図である。 本発明の第一の実施形態のストレージのストレージ構成情報に含まれる仮想ボリュームの割当状態を管理するテーブルの一例を示す説明図である。 本発明の第一の実施形態のサーバのサーバボリューム情報の一例を示す説明図である。 本発明の第一の実施形態において仮想ボリューム割当容量削減を行なうための条件を設定する画面の一例を示す説明図である。 本発明の第一の実施形態において仮想ボリューム割当容量削減を行なうための条件を設定する画面の別の例を示す説明図である。 本発明の第一の実施形態において仮想ボリューム割当容量削減指示を行なうための画面の一例を示す説明図である。 本発明の第一の実施形態において、仮想ボリュームの中から割当容量削減を行なう仮想ボリュームを選択する処理を示すフローチャートの一例である。 本発明の第一の実施形態において、仮想ボリューム割当容量削減のために、仮想ボリュームの移行先ボリュームを作成する処理を示すフローチャートの一例である。 本発明の第一の実施形態において、ファイル移行によって仮想ボリューム1051の割当容量削減を行なう処理を示すフローチャートの一例である。 本発明の第一の実施形態において、別の仮想プールの仮想ボリュームへのファイル移行によって仮想ボリュームの割当容量削減を行なう処理を示すフローチャートの一例である。 本発明の第二の実施形態の計算機システムの構成を示すブロック図である。 本発明の第三の実施形態の計算機システムの構成を示すブロック図である。 本発明の第四の実施形態の計算機システムの構成を示すブロック図である。 本発明の第四の実施形態のサーバの構成を示すブロック図である。
符号の説明
1000 ストレージ
1100 サーバ
1200 ホスト
1300 管理計算機
1400 第一ネットワーク
1500 第二ネットワーク
1600 管理ネットワーク

Claims (16)

  1. 第1ストレージ装置と、前記第1ストレージ装置に接続される第1サーバ計算機と、前記第1ストレージ装置及び前記第1サーバ計算機を管理する管理部と、を備える計算機システムにおいて、
    前記第1ストレージ装置は、
    複数の物理記憶領域を含む記憶媒体と、前記記憶媒体を用いて複数の論理ボリュームを定義し、前記記憶媒体へのデータの書き込み及び前記記憶媒体からのデータの読み出しを制御するコントローラと、を備え、
    前記複数の論理ボリュームの少なくとも一つを前記第1サーバ計算機に認識させ、
    前記各論理ボリュームの記憶領域空間は、複数のアドレス範囲を含み、
    前記第1ストレージ装置は、前記アドレス範囲へのデータの書き込み要求を受信すると、前記複数の物理記憶領域のうち、まだいずれの前記アドレス範囲にも割り当てられていないものを、前記書き込みを要求されたアドレス範囲へ割り当て、前記割り当てられた物理記憶領域に前記書き込みを要求されたデータを格納し、
    前記複数の論理ボリュームは、第1論理ボリューム及び第2論理ボリュームを含み、
    前記第2論理ボリュームのいずれの前記アドレス範囲にも、前記物理記憶領域が割り当てられておらず、
    前記第1サーバ計算機は、
    前記第1ストレージ装置と通信する第1インターフェースと、前記第1インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1メモリと、を備え、
    前記第1論理ボリュームに格納されたデータを識別する情報を保持し、
    前記管理部は、前記第1論理ボリュームに格納された全てのデータを前記第2論理ボリュームに移行させる要求を前記第1サーバ計算機に送信し、
    前記データを移行させる要求を受信した前記第1サーバ計算機は、前記第1論理ボリュームの前記アドレス範囲に格納された全てのデータを読み出す要求、及び、前記読み出された全てのデータを前記第2論理ボリュームの前記アドレス範囲に書き込む要求を、前記第1ストレージ装置に送信し、
    前記管理部は、前記読み出された全てのデータの、前記第2論理ボリュームの前記アドレス範囲への書き込みが終了した後、前記第1論理ボリュームを削除する要求を前記第1ストレージ装置に送信し、
    前記第1ストレージ装置は、前記第1論理ボリュームを削除する要求を受信すると、前記第1論理ボリュームを削除することを特徴とする計算機システム。
  2. 前記計算機システムは、さらに、前記第1サーバ計算機に接続されるホスト計算機を備え、
    前記第1ストレージ装置は、前記第1論理ボリューム及び前記第2論理ボリュームを前記第1サーバ計算機に認識させ、
    前記第1サーバ計算機は、
    前記第1論理ボリュームを前記ホスト計算機に提供し、
    前記読み出された全てのデータの、前記第2論理ボリュームの前記アドレス範囲への書き込みが終了した後、前記第1論理ボリュームに代えて前記第2論理ボリュームを前記ホスト計算機に提供することを特徴とする請求項1に記載の計算機システム。
  3. 前記第1ストレージ装置は、前記複数の物理記憶領域のうち、いずれの前記アドレス範囲にもまだ割り当てられていないものの容量を示す情報を保持し、
    前記第1サーバ計算機は、さらに、前記第1論理ボリュームの容量のうち、データを格納するために使用されている容量を示す情報を保持し、
    前記管理部は、
    前記第1ストレージ装置から、いずれの前記アドレス範囲にもまだ割り当てられていない前記物理記憶領域の容量を示す情報を取得し、
    前記第1サーバ計算機から、前記第1論理ボリュームの前記使用されている容量を示す情報を取得し、
    いずれの前記アドレス範囲にもまだ割り当てられていない前記物理記憶領域の容量が、前記第1論理ボリュームの前記使用されている容量以上である場合、前記使用されている容量と同等以上の容量に相当する複数の前記アドレス範囲を含む前記第2論理ボリュームを作成する要求を前記第1ストレージ装置に送信し、
    前記第1ストレージ装置は、前記使用されている容量と同等以上の容量に相当する複数の前記アドレス範囲を含む前記第2論理ボリュームを作成することを特徴とする請求項1に記載の計算機システム。
  4. 前記複数の物理記憶領域の一部は、第1プールに属し、
    前記第1論理ボリュームの前記アドレス範囲には、前記第1プールに属する前記各物理記憶領域が割り当てられ、
    前記管理部は、前記第1プールに属する前記複数の物理記憶領域のうち、いずれの前記アドレス範囲にもまだ割り当てられていないものの容量が、前記第1論理ボリュームの前記使用されている容量より小さい場合、前記第1プールに属さない前記複数の物理記憶領域の少なくとも一つを前記第1プールに追加させる要求を、前記第1ストレージ装置に送信し、
    前記第1ストレージ装置は、
    受信した前記要求に従って、前記第1プールに属さない前記複数の物理記憶領域の少なくとも一つを前記第1プールに追加し、
    前記読み出された全てのデータを前記第2論理ボリュームの前記アドレス範囲に書き込む要求を受信すると、前記読み出された全てのデータを格納するために必要な前記第2論理ボリュームの前記アドレス範囲に、前記第1プールに属する前記物理記憶領域を割り当てることを特徴とする請求項3に記載の計算機システム。
  5. 前記複数の物理記憶領域の一部は、第1プールに属し、
    前記第1論理ボリュームの前記アドレス範囲には、前記第1プールに属する前記各物理記憶領域が割り当てられ、
    前記複数の物理記憶領域のうち、前記第1プールに属さないものの一部は、第2プールに属し、
    前記管理部は、
    前記第1プールに属する前記複数の物理記憶領域のうち、いずれの前記アドレス範囲にもまだ割り当てられていないものの容量が、前記第1論理ボリュームの前記使用されている容量より小さい場合、前記第2プールに属する前記複数の物理記憶領域のうち、いずれの前記アドレス範囲にもまだ割り当てられていないものの容量と、前記第1論理ボリュームの前記使用されている容量とを比較し、
    前記第2プールに属する前記複数の物理記憶領域のうち、いずれの前記アドレス範囲にもまだ割り当てられていないものの容量が、前記第1論理ボリュームの前記使用されている容量以上である場合、前記第2プールに対応する前記第2論理ボリュームを作成する要求を前記第1ストレージ装置に送信し、
    前記第1ストレージ装置は、前記使用されている容量と同等以上の容量に相当する複数の前記アドレス範囲を含む前記第2論理ボリュームを作成し、
    前記第2論理ボリュームの前記アドレス範囲へのデータの書き込み要求を受信すると、前記第2プールに属する複数の物理記憶領域のうち、まだいずれの前記アドレス範囲にも割り当てられていないものを、前記書き込みを要求されたアドレス範囲へ割り当てることを特徴とする請求項3に記載の計算機システム。
  6. 前記管理部は、前記第2プールに属する前記複数の物理記憶領域のうち、いずれの前記アドレス範囲にもまだ割り当てられていないものの容量が、前記第1論理ボリュームの前記使用されている容量より小さい場合、前記第1プール及び前記第2プールのいずれにも属さない前記複数の物理記憶領域の少なくとも一つを前記第2プールに追加させる要求を、前記第1ストレージ装置に送信し、
    前記第1ストレージ装置は、前記第1プール及び前記第2プールのいずれにも属さない前記複数の物理記憶領域の少なくとも一つを前記第2プールに追加することを特徴とする請求項5に記載の計算機システム。
  7. 前記管理部は、
    前記第1論理ボリュームが削除された後、前記第1プールに対応する第3論理ボリュームを作成する要求を前記第1ストレージ装置に送信し、
    前記第2論理ボリュームに格納された全てのデータを前記第3論理ボリュームに移行させる要求を前記第1サーバ計算機に送信し、
    前記第1サーバ計算機は、前記第2論理ボリュームの前記アドレス範囲に格納された全てのデータを読み出す要求、及び、前記読み出された全てのデータを前記第3論理ボリュームの前記アドレス範囲に書き込む要求を、前記第1ストレージ装置に送信し、
    前記第1ストレージ装置は、
    前記第3論理ボリュームを作成し、
    前記第2論理ボリュームの前記アドレス範囲に格納された全てのデータを読み出し、前記読み出された全てのデータを前記第3論理ボリュームの前記アドレス範囲に書き込み、
    前記データが書き込まれる前記アドレス範囲に、前記第1プールの前記物理記憶領域を割り当てることを特徴とする請求項5に記載の計算機システム。
  8. 前記計算機システムは、さらに、第2ストレージ装置を備え、
    前記第2ストレージ装置は、複数の物理記憶領域を含む記憶媒体と、前記記憶媒体へのデータの書き込み及び前記記憶媒体からのデータの読み出しを制御するコントローラと、を備え、
    前記第2プールには、前記第2ストレージ装置の前記複数の物理記憶領域が属することを特徴とする請求項5に記載の計算機システム。
  9. 前記第1ストレージ装置は、前記各論理ボリュームの前記アドレス範囲に割り当てられた前記物理記憶領域の容量を示す情報を保持し、
    前記第1サーバ計算機は、さらに、前記第1論理ボリュームの容量のうち、データを格納するために使用されている容量を示す情報を保持し、
    前記管理部は、
    前記第1ストレージ装置から、前記第1論理ボリュームの前記アドレス範囲に割り当てられた前記物理記憶領域の容量を示す情報を取得し、
    前記第1サーバ計算機から、前記第1論理ボリュームの前記使用されている容量を示す情報を取得し、
    前記第1論理ボリュームの前記アドレス範囲に割り当てられた前記物理記憶領域の容量と、前記第1論理ボリュームの前記使用されている容量との差分が所定の閾値を超えた場合、前記第1論理ボリュームに格納された全てのデータを前記第2論理ボリュームに移行させる要求を前記第1サーバ計算機に送信することを特徴とする請求項1に記載の計算機システム。
  10. 前記所定の閾値は、前記論理ボリュームごとに設定されることを特徴とする請求項9に記載の計算機システム。
  11. 前記第1ストレージ装置の前記複数の論理ボリュームについて、前記所定の閾値として同一の値が設定されることを特徴とする請求項9に記載の計算機システム。
  12. 前記第1論理ボリュームに格納されたデータを識別する情報は、前記第1論理ボリュームに格納されたファイルを識別する情報を含み、
    前記データを移行させる要求を受信した前記第1サーバ計算機は、前記第1論理ボリュームに格納されたファイルを識別する情報に基づいて、前記第1論理ボリュームの前記アドレス範囲に格納された全てのファイルのデータを読み出す要求、及び、前記読み出された全てのファイルのデータを前記第2論理ボリュームの前記アドレス範囲に書き込む要求を、前記第1ストレージ装置に送信することを特徴とする請求項1に記載の計算機システム。
  13. 前記計算機システムは、さらに、前記第1ストレージ装置に接続される第2サーバを備え、
    前記第1ストレージ装置は、前記第2論理ボリュームを前記第2サーバに認識させることを特徴とする請求項1に記載の計算機システム。
  14. 前記計算機システムは、さらに、前記第1ストレージ装置及び前記第1サーバ計算機に接続される管理計算機を備え、
    前記管理計算機は、前記第1ストレージ装置及び前記第1サーバ計算機と通信する第3インターフェースと、前記第3インターフェースに接続される第3プロセッサと、前記第3プロセッサに接続される第3メモリと、を備え、
    前記第3プロセッサは、前記第3メモリに格納された管理プログラムを実行し、
    前記管理部は、前記管理計算機であることを特徴とする請求項1に記載の計算機システム。
  15. 前記管理部は、前記第1メモリに格納された管理プログラムを実行する前記第1プロセッサであることを特徴とする請求項1に記載の計算機システム。
  16. 第1ストレージ装置と、前記第1ストレージ装置に接続される第1サーバ計算機と、前記第1ストレージ装置及び前記第1サーバ計算機を管理する管理部と、を備える計算機システムを制御する方法であって、
    前記第1ストレージ装置は、
    複数の物理記憶領域を含む記憶媒体と、前記記憶媒体を用いて複数の論理ボリュームを定義し、前記記憶媒体へのデータの書き込み及び前記記憶媒体からのデータの読み出しを制御するコントローラと、を備え、
    複数の論理ボリュームの少なくとも一つを前記第1サーバ計算機に認識させ、
    前記各論理ボリュームの記憶領域空間は、複数のアドレス範囲を含み、
    前記アドレス範囲へのデータの書き込み要求を受信すると、前記複数の物理記憶領域のうち、まだいずれの前記アドレス範囲にも割り当てられていないものを、前記書き込みを要求されたアドレス範囲へ割り当て、前記割り当てられた物理記憶領域に、前記書き込みを要求されたデータを格納し、
    前記複数の論理ボリュームは、第1論理ボリューム及び第2論理ボリュームを含み、
    前記第2論理ボリュームのいずれの前記アドレス範囲にも、前記物理記憶領域が割り当てられておらず、
    前記第1サーバ計算機は、
    前記第1ストレージ装置と通信する第1インターフェースと、前記第1インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1メモリと、を備え、
    前記第1論理ボリュームに格納されたデータを識別する情報を保持し、
    前記方法は、
    前記管理部が、前記第1論理ボリュームに格納された全てのデータを前記第2論理ボリュームに移行させる要求を前記第1サーバ計算機に送信する手順と、
    前記データを移行させる要求を受信した前記第1サーバ計算機が、前記第1論理ボリュームの前記アドレス範囲に格納された全てのデータを読み出す要求、及び、前記読み出された全てのデータを前記第2論理ボリュームの前記アドレス範囲に書き込む要求を、前記第1ストレージ装置に送信する手順と、
    前記管理部が、前記読み出された全てのデータの、前記第2論理ボリュームの前記アドレス範囲への書き込みが終了した後、前記第1論理ボリュームを削除する要求を前記第1ストレージ装置に送信する手順と、
    前記第1ストレージ装置が、前記第1論理ボリュームを削除する要求を受信すると、前記第1論理ボリュームを削除する手順と、を含むことを特徴とする方法。
JP2008242347A 2008-09-22 2008-09-22 計算機システム及びその制御方法 Expired - Fee Related JP5234342B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008242347A JP5234342B2 (ja) 2008-09-22 2008-09-22 計算機システム及びその制御方法
US12/269,425 US8127093B2 (en) 2008-09-22 2008-11-12 Computer system and control method therefor
US13/357,240 US8521984B2 (en) 2008-09-22 2012-01-24 Computer system and control method therefor
US13/955,358 US8775765B2 (en) 2008-09-22 2013-07-31 Computer system and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008242347A JP5234342B2 (ja) 2008-09-22 2008-09-22 計算機システム及びその制御方法

Publications (3)

Publication Number Publication Date
JP2010073095A JP2010073095A (ja) 2010-04-02
JP2010073095A5 JP2010073095A5 (ja) 2010-12-16
JP5234342B2 true JP5234342B2 (ja) 2013-07-10

Family

ID=42038786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008242347A Expired - Fee Related JP5234342B2 (ja) 2008-09-22 2008-09-22 計算機システム及びその制御方法

Country Status (2)

Country Link
US (3) US8127093B2 (ja)
JP (1) JP5234342B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190769B1 (en) 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8565118B2 (en) * 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US9251149B2 (en) * 2009-02-03 2016-02-02 Bmc Software, Inc. Data set size tracking and management
US8516215B2 (en) * 2009-04-23 2013-08-20 Hitachi, Ltd. Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same
US8429373B2 (en) * 2009-07-15 2013-04-23 International Business Machines Corporation Method for implementing on demand configuration changes
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8677080B2 (en) 2010-04-27 2014-03-18 Hitachi, Ltd. Method of controlling total capacity of virtual volumes associated with pool and storage apparatus
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US9003019B1 (en) * 2011-09-30 2015-04-07 Emc Corporation Methods and systems for utilization tracking and notification of cloud resources
US9152505B1 (en) * 2012-03-29 2015-10-06 Amazon Technologies, Inc. Verified hardware-based erasure of data on distributed systems
US11379354B1 (en) * 2012-05-07 2022-07-05 Amazon Technologies, Inc. Data volume placement techniques
CN104272281A (zh) * 2012-06-25 2015-01-07 株式会社日立制作所 计算机系统和应用程序运行环境转移方法
US10067547B2 (en) * 2012-06-28 2018-09-04 Intel Corporation Power management control of remote servers
CN104583971B (zh) * 2012-11-19 2017-07-14 株式会社日立制作所 管理系统和管理方法
US10715460B2 (en) 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US9830099B1 (en) 2015-09-17 2017-11-28 Amazon Technologies, Inc. Secure erase of storage devices
US10228856B2 (en) * 2016-01-28 2019-03-12 Hewlett Packard Enterprise Development Lp Storage space management in a thin provisioned virtual environment
US10685046B2 (en) 2016-03-28 2020-06-16 Hitachi, Ltd. Data processing system and data processing method
US10338845B1 (en) 2016-09-01 2019-07-02 Amazon Technologies, Inc. Self-erasing portable storage devices
US10628196B2 (en) * 2016-11-12 2020-04-21 Vmware, Inc. Distributed iSCSI target for distributed hyper-converged storage
US20180293013A1 (en) * 2017-04-06 2018-10-11 Dell Products, Lp System and Method for Dynamically Allocating Storage Drives in a Storage Array
US10324624B2 (en) * 2017-06-26 2019-06-18 Entit Software Llc Decommissioning of source storages
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
EP3857859B1 (en) 2018-11-16 2023-07-19 VMWare, Inc. Active-active architecture for distributed iscsi target in hyper-converged storage
US11200082B2 (en) * 2019-10-31 2021-12-14 EMC IP Holding Company LLC Data storage system employing dummy namespaces for discovery of NVMe namespace groups as protocol endpoints
US11500667B2 (en) 2020-01-22 2022-11-15 Vmware, Inc. Object-based approaches to support internet small computer system interface (ISCSI) services in distributed storage system
US11507409B2 (en) 2020-01-22 2022-11-22 Vmware, Inc. Object-based load balancing approaches in distributed storage system
US11611618B2 (en) 2020-12-31 2023-03-21 Nutanix, Inc. Orchestrating allocation of shared resources in a datacenter
US11734044B2 (en) * 2020-12-31 2023-08-22 Nutanix, Inc. Configuring virtualization system images for a computing cluster

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537585A (en) * 1994-02-25 1996-07-16 Avail Systems Corporation Data storage management for network interconnected processors
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
US8041735B1 (en) * 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
JP4226350B2 (ja) * 2003-02-17 2009-02-18 株式会社日立製作所 データ移行方法
JP2005092308A (ja) * 2003-09-12 2005-04-07 Hitachi Ltd ディスク管理方法およびコンピュータシステム
US7546431B2 (en) * 2005-03-21 2009-06-09 Emc Corporation Distributed open writable snapshot copy facility using file migration policies
US7506005B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US20070168567A1 (en) * 2005-08-31 2007-07-19 Boyd William T System and method for file based I/O directly between an application instance and an I/O adapter
JP4718285B2 (ja) * 2005-09-22 2011-07-06 株式会社日立製作所 ファイル管理機能を備えたコンピュータシステム、ストレージ装置およびファイル管理方法
JP4700459B2 (ja) * 2005-09-27 2011-06-15 株式会社日立製作所 データ処理システム及びデータ管理方法並びにストレージシステム
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
JP4684864B2 (ja) * 2005-11-16 2011-05-18 株式会社日立製作所 記憶装置システム及び記憶制御方法
JP4993928B2 (ja) 2006-03-23 2012-08-08 株式会社日立製作所 記憶システム及び記憶領域解放方法並びにストレージシステム
JP4940738B2 (ja) * 2006-04-12 2012-05-30 株式会社日立製作所 記憶領域動的割当方法
JP2008134712A (ja) * 2006-11-27 2008-06-12 Hitachi Ltd ファイル共有システム、ファイル共有装置及びファイル共有用ボリュームの移行方法
JP5069011B2 (ja) * 2007-01-29 2012-11-07 株式会社日立製作所 ストレージモジュール及び容量プール空き容量調整方法
JP5238235B2 (ja) 2007-12-07 2013-07-17 株式会社日立製作所 管理装置及び管理方法

Also Published As

Publication number Publication date
US8127093B2 (en) 2012-02-28
US8775765B2 (en) 2014-07-08
US20120124321A1 (en) 2012-05-17
US20130311743A1 (en) 2013-11-21
JP2010073095A (ja) 2010-04-02
US20100077158A1 (en) 2010-03-25
US8521984B2 (en) 2013-08-27

Similar Documents

Publication Publication Date Title
JP5234342B2 (ja) 計算機システム及びその制御方法
US9785381B2 (en) Computer system and control method for the same
JP5069011B2 (ja) ストレージモジュール及び容量プール空き容量調整方法
EP2239655B1 (en) Storage controller and storage control method
US7343465B2 (en) Storage system
US8224782B2 (en) System and method for chunk based tiered storage volume migration
JP4943081B2 (ja) ファイル格納制御装置及び方法
JP4890033B2 (ja) 記憶装置システム及び記憶制御方法
EP1148416B1 (en) Computer system and snapshot data management method
US8745344B2 (en) Storage system using thin provisioning pool and snapshotting, and controlling method of the same
JP4452064B2 (ja) 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
JP2007280319A (ja) 記憶領域動的割当方法
JP2013531283A (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
JP2007079774A (ja) ファイルシステムの構築方法
WO2012147119A1 (en) Management system and control method for provisioning storage space to writable snapshots satisfying performance requirements
US20130124674A1 (en) Computer system and data migration method
US20060221721A1 (en) Computer system, storage device and computer software and data migration method
JP5272185B2 (ja) 計算機システム及びストレージシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101028

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120927

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: 20130313

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5234342

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees