JP5276185B2 - 仮想マシンと連携したThin−Provisioning容量管理を行う計算機システム、計算機、及び方法 - Google Patents

仮想マシンと連携したThin−Provisioning容量管理を行う計算機システム、計算機、及び方法 Download PDF

Info

Publication number
JP5276185B2
JP5276185B2 JP2011552579A JP2011552579A JP5276185B2 JP 5276185 B2 JP5276185 B2 JP 5276185B2 JP 2011552579 A JP2011552579 A JP 2011552579A JP 2011552579 A JP2011552579 A JP 2011552579A JP 5276185 B2 JP5276185 B2 JP 5276185B2
Authority
JP
Japan
Prior art keywords
storage
level
server
area
virtual 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.)
Expired - Fee Related
Application number
JP2011552579A
Other languages
English (en)
Other versions
JPWO2011096014A1 (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
Publication of JPWO2011096014A1 publication Critical patent/JPWO2011096014A1/ja
Application granted granted Critical
Publication of JP5276185B2 publication Critical patent/JP5276185B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

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

Description

本発明は、ストレージシステムとサーバ計算機を含んだ計算機システムでの管理に関する。
「Thin−Provisioning技術」と呼ばれる、ストレージ容量の仮想化技術が知られている。Thin−Provisioning技術は、例えば、特許文献1に開示されている。
米国特許公報第7613896号
サーバ計算機がサーバ仮想化プログラムによって仮想マシンを提供する場合、仮想マシンはより柔軟に生成及び削除が可能である。しかしその一方で、ストレージシステムによるThin−Provisioning技術で仮想ボリュームを提供する場合、仮想マシンの生成及び削除に連携したThin−Provisioningの容量管理を容易に行うことができない。
そこで、本発明の目的は、仮想マシンの生成及び削除に応じてThin−Provisioningの容量管理を容易に行うことにある。
本発明の計算機システムでは、ストレージシステムがThin−Provisioning技術によるストレージレベル仮想ボリュームを仮想マシンが定義された物理サーバに提供する。そしてストレージシステムが管理するストレージレベル仮想ボリュームの変換情報に基いて、ストレージシステムは削除指定された仮想マシンがアクセスするストレージレベル仮想ボリュームに対応する論理ボリュームのエリアを開放する。
本発明によれば、仮想マシンの生成及び削除に応じたThin−Provisioningの容量管理が容易になる。
図1は、本発明の実施例1における計算機システムの構成を表す図である。 図2は、管理サーバ1000のメモリ4050cが記憶する情報とプログラムの詳細を示す図である。 図3は、ストレージ制御プログラム2500の構成を示す図である。 図4は、ストレージシステム2000で行われるThin−Provisioningを表す図である。 図5は、物理サーバ3000で行われるThin−Provisioningを表す図である。 図6は、ストレージレベルプール構成情報1400を示すブロック図である。 図7は、ストレージレベル仮想ボリューム構成情報1500を示すブロック図である。 図8は、ポート−LUN対応情報1600を示すブロック図である。 図9は、サーバレベルプール構成情報1700を示すブロック図である。 図10は、サーバレベル仮想ボリューム構成情報1800を示すブロック図である。 図11は、End−to−End容量レバレッジ率情報1900を示すブロック図である。 図12は、初期設定情報1910を示すブロック図である。 図13は、End−to−End容量レバレッジ率の表示画面を表す。 図14は、実施例1の管理プログラム1200の行う処理のフローである。 図15は、図14のステップS103の処理のフローである。 図16は、ストレージ構成変更処理のフローである。 図17は、コールバックインターフェースを用いた管理プログラムの行う処理を示すフローである。 図18は、管理プログラム1200がコールバックインターフェースを備えている場合のストレージ構成変更処理のフローである。 図19は、コールバック処理のフローである。 図20は、図17のステップS503の処理のフローである。 図21は、サーバレベルプール3210へのストレージレベル仮想ボリューム2230の設定、追加処理を表すフローである。 図22は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのリード要求を受け付けた場合に行われる処理のフローである。 図23は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのライト要求を受け付けた場合に行われる処理のフローである。 図24は、ストレージレベル仮想ボリュームからデータをリードする処理のフローである。 図25は、ストレージレベル仮想ボリューム2230へのデータのライト処理を表すフローの一部である。 図26は、ストレージレベルプール2220へのボリューム2210の追加する処理を表すフローである。 図27は、原因個所特定処理のフローである。 図28は、ストレージコントローラ210のメモリ4050aが記憶する情報及びプログラムの詳細を示す図である。 図29は、物理サーバ3000のメモリ4050bが記憶する情報とプログラムの詳細を示す図である。 図30は、ストレージレベルプール情報11000を示すブロック図である。 図31は、ストレージレベル仮想ボリューム情報12000を示すブロック図である。 図32は、ボリューム情報13000を示すブロック図である。 図33は、ストレージ内マッピング情報14000を示すブロック図である。 図34は、サーバレベルプール情報15000を示すブロック図である。 図35は、サーバレベル仮想ボリューム情報16000を示すブロック図である。 図36は、記憶領域の階層関係の一例を示す。 図37は、原因個所の表示画面の一例を示す。 図38は、End−to−End容量レバレッジ率と空き容量率とが並べて表示された画面の一例を示す。 図39は、ストレージレベル仮想ボリューム2230へのデータのライト処理を表すフローの残りである。 図40は、サーバレベル仮想ボリューム3220へのデータのライト処理を表すフローの残りである。 図41は、仮想マシンを削除する模式図の第1の図である。 図42は、仮想マシンを削除する模式図の第2の図である。 図43は、仮想マシンを削除する模式図の第3の図である。 図44は、仮想マシンの削除処理を示すフロー図である。 図45は、仮想マシンの削除と容量とを表示する表示画面の図である。
以下、添付図面を参照して、本発明の幾つかの実施例を説明する。なお、実施例の説明で用いる用語の定義は、以下の通りである。その他の用語については、一般的な定義に従うことができる。また、以下の説明において、コンピュータプログラムが行う処理は、実際には、そのコンピュータプログラムを実行するプロセッサによって行われる。
「レバレッジ率」は、物理記憶領域の容量に対する、その物理記憶領域に対応する仮想記憶領域の容量の比率である。本実施例では、複数種類のレバレッジ率がある。例えば、第1種のレバレッジ率は、ストレージレベルプールの容量に対する、そのストレージレベルプールに対応する一以上のサーバレベルプールの総容量の比率である。第2種のレバレッジ率は、ストレージレベルプールの容量に対する、そのストレージレベルプールに対応する一以上のサーバレベル仮想ボリュームの総容量の比率である。以下の説明では、特に、第2種のレバレッジ率のことを、「End−to−End容量レバレッジ率」と言う。
「ボリューム」とは、一以上の物理記憶デバイス(例えば、ハードディスクドライブ或いはフラッシュメモリ)を基に提供される論理記憶領域(論理ボリューム)である。ボリュームは、例えば、RAID(Redundant Array of Independent (or Inexpensive) Disks)グループの記憶空間を基に提供される。RAIDグループは、複数の物理記憶デバイスで構成されており、所定のRAIDレベルに従ってデータが格納される。
「ストレージレベル仮想ボリューム」とは、ストレージコントローラの提供する、仮想的なボリュームである。なお、必ずしも、ストレージレベル仮想ボリュームのエリア(記憶領域でもある。以後はこのエリアをストレージレベル仮想ボリュームアドレスエリア、またはローレベルアドレスエリア(LL−AA)と呼ぶことがある)の全てが、記憶デバイス又はボリュームの記憶領域(以後はこの記憶領域をローレベルストレージエリア(LLーSA)と呼ぶことがある)に割りあたっているとは限らない。具体的には、例えば、ストレージレベル仮想ボリュームの一部又は全部のエリア(LL−AA)は、初期的には、ストレージレベルプールに属する一以上のボリューム内のエリア(LL−SA)が割当てられていない。言い換えれば、初期的には、例えば、ストレージレベル仮想ボリュームの一部のエリア(LL−AA)には、ストレージレベルプールの一部のエリア(LL−SA_が割当てられていても良い。ここで、「初期」とは、例えば、ストレージレベル仮想ボリュームが定義された直後、或いは、ストレージレベル仮想ボリュームが定義されて物理サーバからアクセス可能になった直後である。ストレージシステムは、ストレージレベル仮想ボリュームの容量を表すストレージレベル仮想ボリューム情報に基づいて、物理サーバにストレージレベル仮想ボリュームの容量を送信する。なお、ストレージシステム内部で管理される、ストレージレベル仮想ボリュームの容量と、SCSIプロトコル等で物理サーバに送信される、ストレージレベル仮想ボリュームの容量との間では、データ構造などの表現形式が異なっても良いし、端数切捨てが行われる等により異なったりしてもよい。勿論、ストレージシステム内部で管理される、ストレージレベル仮想ボリュームの容量と、物理サーバに送信される、ストレージレベル仮想ボリュームの容量とが同じであっても良い。
「サーバ仮想化プログラム」とは、物理サーバの有する物理的なリソースを仮想化することにより、仮想サーバシステムを構築するプログラムである。サーバ仮想化プログラムは、例えば、ハイパバイザである。また、物理的なリソースは、例えば、プロセッサ(例えばマイクロプロセッサ)、記憶資源(例えばメモリ)、及び通信インターフェース装置(例えばHBA(Host Bus Adapter))である。
「仮想マシン」とは、サーバ仮想化プログラムにより提供される仮想的な計算機である。サーバ仮想化プログラムにより、一つの物理サーバ上で擬似的に複数の計算機が稼働しているようにシステムを構築できる。この擬似的な計算機の一つ一つが、仮想マシン(VMと呼ぶ場合がある)である。仮想マシンでは、例えば、仮想的に、OS(Operating System)などのコンピュータプログラムが実行される。
「サーバレベルプール」とは、サーバ仮想化プログラムがストレージシステムから割当てられた一つ以上のストレージレベル仮想ボリュームから構築される記憶領域である。サーバレベルプールは、仮想マシンから、サーバレベル仮想ボリュームを経由して使用される。具体的には、仮想マシンからサーバレベル仮想ボリュームに対してデータが書き込まれる場合、そのデータの書込み先として指定するサーバレベル仮想ボリュームのエリア(以後はサーバレベル仮想ボリュームエリア、またはハイレベルアドレスエリア(HL−AA)と呼ぶことがある)に、サーバレベルプール(より正確にはサーバレベルプールに含まれるストレージシステムが提供するボリュームまたは仮想ボリューム)の一部のエリア(以後は、ハイレベルストレージエリア(HL−SA)と呼ぶことがある)が割当てられる。なお、仮想ボリュームがサーバレベルプールに含まれる場合は、HL−SAはLL−AAと同じ実体を指し示す。しかし、後述のとおり管理単位が異なる。そして、割当てられた一部のエリア(HL−AA)に対応する、ストレージレベル仮想ボリューム内のエリア(HL−SA)を指定したライト要求が、物理サーバ(例えばその物理サーバで実行されるサーバ仮想化プログラム)から、そのストレージレベル仮想ボリュームを提供するストレージシステムに送信される。ストレージシステムのストレージコントローラは、そのライト要求に応答して、そのライト要求で指定されているエリア(ストレージレベル仮想ボリューム内のエリア(LL−AA))に、ストレージレベルプール内の一部のエリア(LL−SA)を割当て、割当てられたエリア(LL−AA)に、データを書き込む。なお、以後の説明で「LL−AAにデータを書き込む」と説明した場合は、実際には、LL−AAに対応するLL−SAに当該データを書き込むことを指している。さらに、以後の説明では「サーバレベルプールに含まれるストレージシステムが提供するボリュームまたは仮想ボリュームのエリア」という表現を省略して「サーバレベルプールのエリア」と表現することがある。
「サーバレベル仮想ボリューム」とは、サーバ仮想化プログラムによって構築される、仮想的なボリュームである。必ずしも、サーバレベル仮想ボリュームの記憶領域(HL−AA)の全てが物理的な記憶領域(HL−SA)に割りあたっているとは限らない。サーバレベル仮想ボリュームの記憶領域は、仮想マシンによりアクセスされる。
「ストレージレベルプール」とは、一以上のボリュームにより構築されるプールである。ストレージレベルプールの一部のエリア(LL−SA)が、ストレージレベル仮想ボリュームにおける、物理サーバからのライト先エリア(LL−AA)に割当てられる。ストレージレベルプールは、一以上のボリュームが属する複数のプールの集合(仮想的なプール)であっても良い。なお、以後の説明では「ストレージレベルプールに含まれるボリュームのエリア」という表現を省略して「ストレージレベルプールのエリア」と表現することがある。
図36は、記憶領域の階層関係の一例を示す。なお、この図では、仮想マシンが「VM」と表されており、ボリュームが「VOL」と表されており、ストレージレベルプールが、下位レベルのプールの略として「LLP」と表されており、ストレージレベル仮想ボリュームが、下位レベルの仮想ボリュームの略として、「LL−VVOL」と表されており、サーバレベルプールが、上位レベルのプールの略として「HLP」と略されており、サーバレベル仮想ボリュームが、上位レベルの仮想ボリュームの略として「HL−VVOL」と表されている。なお、このような表現方法は、他の図でも適宜採られている。
この例によれば、複数のストレージレベルプール(例えばストレージレベルプール1,2)があり、各ストレージレベルプールが基点となって、木構造のような記憶領域トポロジーが構成されている。記憶領域トポロジーの構成要素は、下位から順番に言えば、ストレージレベルプール、ストレージレベル仮想ボリューム、サーバレベルプール及びサーバレベル仮想ボリュームである。この例によれば、ストレージレベルプール1に、下記の記憶領域(A)〜(D):
(A)ストレージレベル仮想ボリューム1及び2;
(B)ストレージレベル仮想ボリューム1及び2にそれぞれ対応するサーバレベルプール1及び2;
(C)サーバレベルプール1に対応するサーバレベル仮想ボリューム1(サーバレベルプール1からエリアの一部が割当てられるサーバレベル仮想ボリューム1);及び、
(D)サーバレベルプール2に対応するサーバレベル仮想ボリューム2及び3、
が対応していることになる。すなわち、この例によれば、ストレージレベルプール1には、そのプール1を基点とする記憶領域トポロジーの構成要素であるサーバレベル仮想ボリューム1〜3が対応していることになる。
下記の実施例では、記憶領域トポロジー毎に、すなわち、ストレージレベルプール毎に、End−to−End容量レバレッジ率を算出することができる。なぜなら、ストレージレベルプール毎に、ストレージレベルプールを基点とした記憶領域トポロジーを特定すること、換言すれば、対応するサーバレベル仮想ボリュームを特定することができるからである。
図に示すように、サーバレベルプールが複数の物理サーバ、例えば物理サーバ3及び4に共有されても良い。このケースでは、例えば、破線で示すように、物理サーバ3内の仮想マシン3が物理サーバ4にマイグレーションされても、ストレージレベルプール2についてのEnd−to−End容量レバレッジ率は変わらない。なぜなら、仮想マシン3のマイグレーションにより、仮想マシン3にマウントされていたサーバレベル仮想ボリューム4も物理サーバ4にマイグレーションされることになるが、そのサーバレベル仮想ボリューム4の容量に変更が生じるわけではないからである。言い換えれば、ストレージレベルプール2に対応するサーバレベル仮想ボリューム4及び5の総容量を変更する構成変更(或いは、ストレージレベルプール2の容量を変更する構成変更)が行われた場合には、ストレージレベルプール2についてのEnd−to−End容量レバレッジ率が変わることになる。
サーバレベル仮想ボリュームは、複数のHL−AAを含むが、各HL−AAのサイズはサーバレベル仮想ボリュームに対応した共通のサイズ長であってもよい。サーバレベルプールは、複数のHL−SAを含むが、各HL−SAのサイズはサーバレベルプールに対応した共通のサイズ長であってもよく、異なるサイズ長であってもよい。ストレージレベル仮想ボリュームは、複数のLL−AAを含むが、各HL−AAのサイズはストレージレベル仮想ボリュームに対応した共通のサイズ長であってもよい。ストレージレベルプールは、複数のLL−SAを含むが、各LL−SAはストレージレベルプールに対応した共通のサイズ長であってもよい。この構成において、ページ同士の対応関係は、テーブル等で管理されても良いし、計算によって算出されても良い。
仮想マシンで実行するプログラムによって、サーバレベル仮想ボリューム内の或るHL−AAを表すライト要求が発行された場合、その或るHL−AAにHL−SAが未割当てであれば、そのサーバレベル仮想ボリュームに対応するサーバレベルプールから、未割当てのHL−SAが割当てられる。そして、物理サーバ3000から、割当てられたHL−SAに対応するLL−AAを表すライト要求がストレージシステム2000に送信される。ストレージシステム2000では、そのLL−AAにLL−SAが未割当てであれば、そのLL−AAに、そのLL−AAを有するストレージレベル仮想ボリュームに対応したストレージレベルプールから、未割当てのLL−SAが割当てられる。そして、そのLL−SAに、当該ライト要求に従うデータが書き込まれる。LL−SAが例えば複数のPDEVに基づいていれば、データは、例えば所定のRAIDレベルに従って、複数のPDEVに格納される。
実施例1では、管理サーバが、ストレージシステムの仮想ボリューム情報と物理サーバの仮想ボリューム情報とを収集し、ストレージシステムの仮想ボリューム情報と物理サーバの仮想ボリューム情報とを分析し、その分析結果を基に、End−to−End容量レバレッジ率を管理者(例えばストレージ管理者)に表示する。以下に詳細を説明する。
<1.計算機システムの構成>。
図1は、本発明の実施例1における計算機システムの構成を表す図である。
計算機システムは、ストレージシステム2000、物理サーバ3000及び管理サーバ1000を備える。なお、ストレージシステム2000、物理サーバ3000及び管理サーバ1000の少なくとも一つは、何台備わっていても良い。
ストレージシステム2000及び物理サーバ3000は、通信ネットワーク、例えば、SAN5000もしくはLAN5010を通じ、相互に接続される。管理サーバ1000は、通信ネットワーク、例えば、LAN5010もしくはSAN5000を通じ、ストレージシステム2000及び物理サーバ3000と接続される。
<1−1.ストレージシステムの構成>。
ストレージシステム2000は、複数のPDEV(物理記憶デバイス)2100a、及び複数のストレージコントローラ(CTL)2010を備える。PDEV2100a、及びストレージコントローラ2010は、例えば、内部ネットワーク又はバスによって相互に接続される。ストレージコントローラ2010は、PDEV2100aに基づく記憶領域にデータを格納する。
PDEV2100aは、例えば、ディスク型の記憶メディアのドライブ(例えばハードディスクドライブ)であり、物理サーバ3000からストレージシステム2000が受けたライト要求に従うデータを記憶する。PDEV2100aは、例えばフラッシュメモリドライブであっても良い。PDEV2100aは、一つでも良い。
ストレージコントローラ2010は、ストレージシステム1000の動作を制御する装置である。ストレージコントローラ2010は、内部ネットワークを有する。その内部ネットワークに、例えば、ストレージポート4020a、プロセッサ4010a(例えばCPU)及びメモリ4050aが接続されている。ストレージコントローラ2010同士は、内部ネットワークにて相互に接続される。また、ストレージコントローラ2010と各PDEV2100aは、複数のバックエンドネットワークにて相互接続される。ストレージコントローラ2010は一つでも良い。
ストレージポート4020aは、SAN5000等のネットワークを介して、ストレージシステム2000、管理サーバ7000に接続されるインターフェースである。
プロセッサ4010aは、メモリ4050aによって記憶されるプログラムを実行することによって、各種処理を行う。
メモリ4050aは、例えばRAM(Random Access Memory)等で構成され、プロセッサ4010aによって実行されるプログラムや、プロセッサ4010aによって必要とされる情報等を記憶する。具体的には、例えば、ストレージコントローラ2010のメモリ4050aには、ストレージ制御プログラム2500が記憶され、管理サーバ1000から受信した管理操作要求を基に、ストレージコントローラ2010を制御する。管理操作要求は、ストレージシステム2000の操作のための要求であり、例えば、ボリューム構築要求や、ストレージレベルプール構築要求等がある。なお、メモリ4050aは、PDEV2100aに入出力されるデータが一時的に格納されるキャッシュメモリとして用いられてもよい。
なお、物理サーバ3000及びストレージシステム2000の各々における内部ネットワークは、好ましくは、ストレージポート4020aの有する転送帯域より広帯域であり、また、バスやスイッチ型のネットワークによって全てまた一部が代替されてもよい。また、図1では、ストレージポート4020aは、ストレージコントローラ2010に一つ存在することになっているが、実際には、複数のストレージポート4020aがストレージコントローラ2010に存在してもよい。なお、ストレージコントローラ2010は、複数の部品にて構成されてもよい。同様に、メモリ4050aも、複数の部品にて構成されてもよい。
ストレージシステム2000は、例えば、後述するように、ストレージレベルプールに属する一以上のボリュームを構成する。ストレージレベルプールは、ストレージシステム2000が有しても良いし、ストレージシステム2000とは別のシステム(例えば、ストレージシステム2000と物理サーバ3000との間に介在するシステム(例えばスイッチ装置)が有しても良い。
ストレージシステムは、一つのストレージ装置であっても良いし、複数のストレージ装置の集合であっても良い。例えば、或るストレージ装置が管理するVOLは、別のストレージ装置が有するPDEVに基づくVOLであっても良い。
ストレージシステムが有する記憶デバイスのエリア(LL−SA)に、一以上のボリュームの全てのエリア(LL−AA)が割当てられていても良いし、一以上のボリュームの一部のエリア(LL−AA)が記憶デバイスのエリア(LL−SA)に割当てられていなくても良い。
<1−2.物理サーバの構成>。
物理サーバ3000は、サーバ計算機の一例であり、プロセッサ4010b、メモリ4050b及びHBA4020bを有する。プロセッサ4010b、メモリ4050b、及びHBA4020bは内部ネットワークによって相互に接続される。
プロセッサ4010bは、メモリ4050bによって記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ4010bは、ストレージシステム2000にI/O要求(ライト要求又はリード要求)を送信することによって、そのストレージシステム2000によって提供される一つ以上のストレージレベル仮想ボリューム2230に対してデータの入出力(ライト又はリード)を行うことができる。
メモリ4050bは、プロセッサ4010bによって実行されるプログラムやプロセッサ4010bによって必要とされる情報等を記憶する。メモリ4010bは、半導体メモリ又は記憶デバイス、あるいはこれらを組み合わせたもので良い。メモリ4050bは、サーバ仮想化プログラム3200を記憶する。
HBA4020bは、SAN5000やLAN5010等のネットワークを介してストレージシステム2000に接続されるインターフェースである。具体的には、例えば、HBA4020bは、プロセッサ4010bからストレージシステム2000へのI/O要求を出力する。
サーバ仮想化プログラム3200は、物理サーバ3000の有する物理リソースから仮想サーバ環境(仮想マシン)を構築する。
<1−3.管理サーバの構成>。
管理サーバ1000は、プロセッサ4010c、メモリ4050c、管理プログラム1200、及びNIC(Network Interface Card)4040cを備える計算機である。プロセッサ4010c、メモリ4050c、PDEV2100c及びNIC4040cは、内部ネットワークにより相互に接続される。
プロセッサ4010cは、メモリ4050cによって記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ4010cは、ストレージシステム2000に管理要求を送信することによって、そのストレージシステム2000によって実行されるストレージレベル仮想ボリューム2230の物理サーバ3000への割当て等を制御する。なお、管理要求は、遠隔転送要求、またはコピー制御要求等を含んでよい。
メモリ4050cは、プロセッサ4010cによって実行されるプログラムやプロセッサ4010cによって必要とされる情報等を記憶する。例えば、メモリ4050cには、管理プログラム1200が記憶される。なお、メモリ4050cは、半導体メモリ又は記憶デバイス、あるいはこれらを組み合わせたもので良い。
NIC4040cは、LAN5010等のネットワークを介して、ストレージシステム2000に接続されるインターフェースである。
なお、管理サーバ1000は、入出力装置4060を有してよい。管理サーバ1000内の入出力装置4060も、内部ネットワークに接続される。
入出力装置4060の例としては、ディスプレイとキーボードとポインタデバイスが考えられるが、これら以外の装置であっても良い。また、入出力装置4060の代替として、シリアルインターフェースやイーサネット(登録商標)インターフェースが入出力装置4060とされてよい。また、該当インターフェースに、ディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機が接続されて良い。表示用情報の表示用計算機での送信や、入力用情報を表示用計算機から受信することが行われても良い。これらにより、表示用計算機での表示が行われても良いし、入力を受け付けることで、入出力装置4060での入力及が行われても良い。
管理プログラム1200は、ストレージシステム2000を管理する。具体的には、例えば、管理プログラム1200は、ボリューム構成の管理、ストレージレベルプール構成の管理、ストレージレベル仮想ボリューム構成の管理、各種ボリューム割当ての指示等を行う。
なお、管理サーバ1000は、ストレージシステム2000を管理する装置と、物理サーバ3000を管理する装置とに分かれていても良い。具体的には、例えば、管理サーバ1000は、管理システムの一例である。管理システムは、一以上の計算機、例えば、管理計算機、又は、管理計算機と表示用計算機との組み合わせである。具体的には、例えば、管理計算機が表示用情報を表示する場合は、管理計算機が管理システムである。また、処理の高速化や高信頼化のために、複数の計算機で管理計算機と同等の機能が実現されてもよく、この場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んで良い)が、管理システムである。
<2.ストレージの詳細>。
図28は、ストレージコントローラ210のメモリ4050aが記憶する情報及びプログラムの詳細を示す図である。
メモリ4050aには、例えば、ストレージレベルプール情報11000、ストレージレベル仮想ボリューム情報12000、ボリューム情報13000、ストレージ内マッピング情報14000、ストレージ制御プログラム2500が記憶される。
ストレージレベルプール情報11000は、ストレージレベルプールに関する情報である。
ストレージレベル仮想ボリューム情報12000は、ストレージレベル仮想ボリュームに関する情報である。
ボリューム情報13000は、ボリュームに関する情報である。
ストレージ内マッピング情報14000は、ストレージシステム2000が管理する各種記憶領域(ボリューム、ストレージレベルプール、ストレージレベル仮想ボリューム)のマッピングを示す情報である。
ストレージ制御プログラム2500は、ストレージシステム2000の制御に関する処理が定義されたプログラムである。ストレージ制御プログラム2500は、例えば、ストレージ仮想化モジュール2501、ストレージ構成管理モジュール2502及びコマンド制御モジュール2503を有する。なお、ストレージ制御プログラム2500の有する各モジュールは、必ずしも一つのプログラムのモジュールである必要は無く、それぞれが別々のプログラムコードであってもよい。
<2−1.ストレージの有する情報の説明>。
<2−1−1. ストレージレベルプール情報の説明>。
図30は、ストレージレベルプール情報11000を示すブロック図である。
ストレージレベルプール情報11000は、例えば、ストレージレベルプール毎に、ストレージレベルプールに関する情報の他に、ストレージレベルプールに属するボリュームに関する情報と、ストレージレベルプールからエリアが割当てられるストレージレベル仮想ボリュームに関する情報とを含む。具体的には、例えば、ストレージレベルプール情報11000は、テーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子11001、ストレージベルプール容量11002、ストレージレベルプール空き容量11003、ボリューム識別子11004、ストレージレベル仮想ボリューム識別子11005、ストレージレベル仮想ボリューム総容量11006、LL−SAのサイズ長11007と、未割当LL−SAの識別子リスト11008と、を属性値とするレコードを有する。
ストレージレベルプール識別子11001は、ストレージ仮想化モジュール2501によってストレージレベルプール2220に割当てられた識別子である。
ストレージレベルプール容量11002は、ストレージレベルプールの容量である。
ストレージレベルプール割当済容量11003は、ストレージレベルプールの容量のうち、ストレージ制御プログラム2500により、ストレージレベル仮想ボリューム2230に割当てられたエリアの総容量である。
ボリューム識別子11004は、ストレージレベルプールに属するボリュームの識別子である。ストレージレベルプールに属するボリュームとは、ストレージ仮想化モジュール2501により、ストレージレベルプールに属するように、設定が行われたボリュームを指す。
ストレージレベル仮想ボリューム総容量11005は、ストレージレベルプールに対応する全てのストレージレベル仮想ボリューム0の容量を合算した値である。
LL−SAサイズ長11007は、ストレージレベルプールに含まれるボリュームのエリア(LL−SA)の管理単位長(より具体的には割当及び開放する単位長)を示す値である。
未割当LL−SAの識別子リスト11008は、ストレージレベルプールに関係付けられたストレージレベル仮想ボリュームに割当てられていないエリア(LL−SA)の識別子リストである。なお、図では識別子の例としてコロン「:」の前半にボリューム識別子11004に記憶されたリスト上のオフセット番号を示し、コロンの後半には、ボリューム識別子11004とオフセット番号が示すボリュームのエリア(LLーSA)の先頭からのオフセット番号を示している。なお、エリア(LL−SA)はボリュームを先頭からLL−SAサイズ長11007に区切って作成し、先頭のエリア(LL−SA)から0番、1番..といったオフセット番号が割り当たっている。ストレージレベルプール「STPOOL−1」の未割当LL−SAの識別子が「01:002」を例とすると、コロンの前半の「01」は先頭から一つ次のボリュームの識別子を指し示すため、ボリューム識別子は「STLDEV−2」に該当し、コロンの後半が「002」であるため、STLDEV−2の先頭から3番目のエリア(LL−SA)となる。ちなみにSTPOOL−1のLL−SAサイズ長は100MB(1Mは1024Kで、1Kは1024とする)であるから、この先頭から3番目のエリア(LL−SA)は仮に512バイトブロックを単位としてアドレッシングするとすれば、400kブロックから(600kー1)ブロックとなる。なお、以後も特に断らない限りブロックアドレスは512バイトブロックを単位とし、1Mは1024Kで、1Kは1024とする。
なお、ストレージレベルプール情報11000は、ストレージレベルプールに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベルプールに関する属性値を有しても良い。また、ストレージレベルプール情報11000は、ストレージレベルプール識別子を除いては上記属性値の一部を格納しなくてもよい。また、図31はバイトを単位とした値で例示しているが、他の単位(SCSIブロック長、その他エリアの管理単位長、等)に基く値であってもよい。本点は計算機システムが有する情報に共通の事項である。
また、図30から分かるように、ストレージレベルプール容量11002は、必ずしも、ストレージレベル仮想ボリューム総容量11005と同じにはならない。なぜなら、ストレージレベルプールは、そのストレージレベルプールに属する一以上のボリュームの一部のエリアで構成されることもあるからである。
<2−1−2. ストレージレベル仮想ボリューム情報>。
図31は、ストレージレベル仮想ボリューム情報12000を示すブロック図である。
ストレージレベル仮想ボリューム情報12000は、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリュームに関する情報の他に、ストレージレベル仮想ボリュームへのエリアの割当元となるストレージレベルプールに関する情報を含む。具体的には、例えば、ストレージレベル仮想ボリューム情報12000は、テーブルであり、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリューム識別子12001、ストレージレベル仮想ボリューム容量12002、ストレージレベル仮想ボリューム割当済容量12003、ストレージレベルプール識別子12004、ストレージレベルプール容量12005、ポート番号・LUN(Logical Unit Number)12006を属性値とするレコードを含む。さらに、ストレージレベル仮想ボリューム情報12000は、ストレージレベルエリア変換情報12007(図中ではLLーエリア変換情報と表記)を含む。
ストレージレベル仮想ボリューム識別子12001は、ストレージ仮想化モジュール2501によってストレージレベル仮想ボリュームに割当てられた識別子である。
ストレージレベル仮想ボリューム容量12002は、ストレージ仮想化モジュール2501により設定された、ストレージレベル仮想ボリュームの容量である。
ストレージレベル仮想ボリューム割当済容量12003は、ストレージレベル仮想ボリューム容量1502のうち、ストレージ制御プログラム2500によってストレージレベルプールからストレージレベル仮想ボリュームに割当てられたエリアの総容量である。
ストレージレベルプール識別子12004は、ストレージレベル仮想ボリュームへのエリアの割当元となるストレージレベルプール2220の識別子である。
ストレージレベルプール容量12005は、ストレージレベルプールの容量である。
ポート番号・LUN12006は、ストレージレベル仮想ボリュームに対応したポート番号及びLUNである。
ストレージレベルエリア変換情報12007は、ストレージレベル仮想ボリュームのエリア(LL−AA)毎に割当てられたストレージレベルプールのエリア(LL−SA)の識別子を含む情報である。なお、エリア(LL−SA)が「未割当」のエリア(LL−AA)は、対応するエリア(LL−AA)にエリア(LL−SA)が割当てられていないことを示す。なお、ストレージレベルエリア変換情報12007は、対応するストレージレベル仮想ボリューム定義直後は全て(または一部)のLL−AAについて「未割当」で生成され、後述の通り、エリア(LL−AA)の一部または全てを範囲とする最初のライト要求に応じてエリア(LL−SA)を割当てて、ライト要求のライトデータをエリア(LL−SA)に保存する。
図の例では、ストレージレベルエリア変換情報12007はリスト形式で表現されており、ストレージレベル仮想ボリュームの先頭のエリア(LL−AA)から降順に、エリア(LL−AA)に割当てられているエリア(LL−SA)(または未割当)を示す識別子が格納されている。
エリア(LL−AA)を指定したブロックアドレスが[Y]ブロックアドレスの場合は、対応するエリア(LL−SA)の512バイトブロックでのアドレスは以下の通りに求める。
[LL−SAオフセット]=[Y]を[対応するストレージレベルプールのLL−SAサイズ長11007]で割った値(端数は切り捨て)。
[LL−SAオフセット内アドレス]=[Y]を[対応するストレージレベルプールのLL−SAサイズ長11007]で割った余り。
[対応LL−SAが存在するボリューム]=リスト12007の[LL−SAオフセット]の識別子のコロン「:」の前半。なお、「リストのオフセットxの値」と表現する場合は、リストの先頭から(x+1)番目の値ということである。
[対応LL−SAの存在するボリューム内アドレス]=(リスト11008の[LL−SAオフセットの識別子]のコロン「:」の後半)×[対応するストレージレベルプールのLL−SAサイズ長11007]+[LL−SAオフセット内アドレス]。
従って、物理サーバ3000から、STVVOL−1のストレージレベル仮想化ボリュームの501Kブロックアドレスを指定したI/O要求を受信した場合は以下の計算となる。
LL−SAオフセット=2。
LL−SAオフセット内アドレス=101Kブロック。
対応LL−SAが存在するボリューム=02(図30のボリューム識別子11004を参照するとSTLDEVー8)。
対応LL−SAの存在するボリューム内アドレス=1701Kブロック。
なお、ストレージレベル仮想ボリューム情報12000は、ストレージレベル仮想ボリュームに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベル仮想ボリュームに関する属性値を有しても良い。また、ストレージレベル仮想ボリューム情報12000は、ストレージレベル仮想ボリューム識別子12001を除いては上記属性値の一部を格納しなくてもよい。
<2−1−3.ボリューム情報>。
図32は、ボリューム情報13000を示すブロック図である。
ボリューム情報13000は、ボリューム毎に、ボリュームに関する情報の他に、ボリュームが属するストレージレベルプールに関する情報を含む。具体的には、例えば、ボリューム情報13000は、例えば、テーブルであり、ボリューム毎に、ボリューム識別子13001、ボリューム容量13002、PDEV識別子13003、ストレージレベルプール識別子13004、を属性値とするレコードを含む。
ボリューム識別子13001は、ストレージ仮想化モジュール2501によってボリュームに割当てられた識別子である。
ボリューム容量13002は、ボリュームの容量である。ボリュームは、例えば、ストレージ仮想化モジュール2501によって一以上のPDEV2100aの記憶領域をグループ化することにより構築される。ボリュームの記憶領域は、ストレージコントローラ4050の行う制御により、一以上のPDEV2100aの記憶領域に分散してマッピングされる。
PDEV識別子13003は、ストレージ仮想化モジュール2501によってボリュームに基づくPDEV2100aに割当てられた識別子である。つまり、ボリュームの基になっているPDEV2100aの識別子である。
ストレージレベルプール識別子13004は、ボリュームが属するストレージレベルプール0の識別子である。
なお、ボリューム情報13000は、ボリュームに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のボリュームに関する属性値を有しても良い。また、ボリューム情報13000は、ボリューム識別子13001を除いては上記属性値の一部を格納しなくてもよい。
<2−1−4.ストレージ内マッピング情報>。
図33は、ストレージ内マッピング情報14000を示すブロック図である。
ストレージ内マッピング情報14000は、例えば、テーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子14001、ストレージレベル仮想ボリューム識別子14002、ボリューム割当済容量14003、PDEV識別子14004、を属性値とするレコードを含む。
ストレージレベルプール識別子14001は、ストレージレベルプールの識別子である。
ストレージレベル仮想ボリューム識別子14002は、ストレージレベルプールからエリアの一部が割当てられるストレージレベル仮想ボリュームの識別子である。
ボリューム識別子は14003、ストレージレベルプールに属するボリュームの識別子である。
PDEV識別子14004は、ストレージレベルプールに属するボリュームの基になっているPDEV2100aの識別子である。
なお、ストレージ内マッピング情報14000は、ストレージシステム2000の有するデバイスのマッピングに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のマッピング情報の属性値を有しても良い。また、ストレージ内マッピング情報14000は、ストレージレベルプール識別子14001を除いては上記属性値の一部を格納しなくてもよい。
<2−2.ストレージが有するプログラムの説明>。
図3は、ストレージ制御プログラム2500の構成を示す図である。
ストレージ制御プログラム2500は、図28にも示したように、ストレージ仮想化モジュール2501、ストレージ構成管理モジュール2502及びコマンド制御モジュール2503を有する。ストレージ制御プログラム2500は、ストレージシステム2000を制御するための処理が書かれており、ストレージコントローラ2010のメモリに記憶され、実行される。
ストレージ構成管理モジュール2502は、ストレージシステム2000の有する各種記憶領域の構成を管理する。記憶領域の構成の管理とは、具体的には、例えば、ストレージレベルプールを構成しているボリュームの管理、ボリュームを構成しているPDEV2100aの管理等である。
コマンド制御モジュール2503は、物理サーバ3000又は管理サーバ1000からのコマンド(例えばI/O要求)を解釈し、そのコマンドに規定された処理を実行する。
ストレージ仮想化モジュール2501は、PDEV2100aを基にボリュームを構築する。ストレージ仮想化モジュール2501は、ストレージレベル仮想ボリュームも構築する。ストレージ仮想化モジュール2501は、ストレージレベルプールに、一以上のボリュームと一以上のストレージレベル仮想ボリュームをマッピングする。
<3.物理サーバの詳細>。
図29は、物理サーバ3000のメモリ4050bが記憶する情報とプログラムの詳細を示す図である。
メモリ4050bには、サーバレベルプール情報15000、サーバレベル仮想ボリューム情報16000、及びサーバ仮想化プログラム3200が記憶される。
サーバレベルプール情報15000は、サーバレベルプールに関する情報である。
サーバレベル仮想ボリューム情報16000は、サーバレベル仮想ボリュームに関する情報である。
サーバ仮想化プログラム3200は、物理サーバ3000の有するリソースを用い、仮想マシン3201、サーバレベルプール3210、サーバレベル仮想ボリューム3220等を構築する。
<3−1.物理サーバの有する情報の説明>。
<3−1−1.サーバレベルプール情報>。
図34は、サーバレベルプール情報15000を示すブロック図である。
サーバレベルプール情報15000は、例えば、サーバレベルプール毎に、サーバレベルプールに関する情報の他に、サーバレベルプールに属するストレージレベル仮想ボリュームに関する情報と、サーバレベルプールからエリアが割当てられるサーバレベル仮想ボリュームに関する情報とを含む。具体的には、例えば、サーバレベルプール情報15000は、テーブルであり、サーバレベルプール毎に、サーバレベルプール識別子15001、サーバレベルプール容量15002、サーバレベルプール空容量15003、サーバレベル仮想ボリューム識別子15004、サーバレベル仮想ボリューム総容量15005、構成ストレージポート番号・LUN(Logical Unit Number)15006、HA−SAサイズ長15007、未割当HL−SAの識別子リスト15008と、を属性値とするレコードを含む。
サーバレベルプール識別子15001は、サーバ仮想化プログラム3200によってサーバレベルプール3210に割当てられた識別子である。
サーバレベルプール容量15002は、サーバレベルプール3210の容量である。
サーバレベルプール割当済容量15003は、サーバレベルプール容量15002のうち、サーバレベル仮想ボリューム3220に割当てられたエリアの総容量である。
サーバレベル仮想ボリューム識別子15004は、サーバレベルプールからエリアの一部が割当てられるサーバレベル仮想ボリュームの識別子である。
サーバレベル仮想ボリューム総容量15005は、サーバレベルプールからエリアが割当てられる全てのサーバレベル仮想ボリュームの容量の合計である。
構成ストレージポート番号・LUN15006は、サーバレベルプールに属するストレージレベル仮想ボリュームを特定するためのLUNとポート番号(ストレージレベル仮想ボリュームを表すパラメータとしてI/O要求で使用されるLUNとポート番号)である。なお、ポート番号とLUNはストレージシステム2000が提供するストレージレベル仮想ボリュームを指定できるのであれば他の識別子でもよい。
HL−SAサイズ長15007は、サーバレベルプールに含まれるボリュームのエリア(HL−SA)の管理単位長(より具体的には割当及び開放する単位長)を示す値である。
未割当LL−SAの識別子リスト15008は、サーバレベルプールに関係付けられたサーバレベル仮想ボリュームに割当てられていないエリア(HL−SA)の識別子リストである。
なお、図では識別子の例としてコロン「:」の前半に構成ストレージポート番号・LUN15006に記憶されたリスト上のオフセット番号を示し、コロンの後半には、構成ストレージポート番号・LUN15006とオフセット番号が示すストレージレベル仮想ボリュームのエリア(HLーSA)の先頭からのオフセット番号を示している。なお、エリア(HL−SA)はボリュームを先頭からHL−SAサイズ長15007に区切って作成し、先頭のエリア(HL−SA)から0番、1番..といったオフセット番号が割り当たっている。サーバレベルプール「SVPOOL−1」の未割当HL−SAの識別子が「00:002」を例とすると、コロンの前半の「00」は先頭のストレージレベル仮想ボリュームの識別子を指し示すため、ボリューム識別子は「PORT番号XXX.XXXのLUNが0」のストレージレベル仮想ボリュームに該当し、コロンの後半が「002」であるため、該当するストレージレベル仮想ボリュームの先頭から3番目のエリア(HL−SA)となる。ちなみにSVPOOL−1のHL−SAサイズ長は50MBであるから、この先頭から3番目のエリア(HL−SA)は、200kブロックから(300kー1)ブロックとなる。
なお、サーバレベルプール情報15000は、サーバレベルプールに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベルプール構成の属性値を有しても良い。また、サーバレベルプール情報15000は、サーバレベルプール識別子15001を除いては上記属性値の一部を格納しなくてもよい。
<3−1−2.サーバレベル仮想ボリューム情報>。
図35は、サーバレベル仮想ボリューム情報16000を示すブロック図である。
サーバレベル仮想ボリューム情報16000は、例えば、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリュームに関する情報の他に、サーバレベル仮想ボリュームへのエリアの割当元となるサーバレベルプールに関する情報と、サーバレベル仮想ボリュームを使用する仮想マシンに関する情報とを含む。具体的には、例えば、サーバレベル仮想ボリューム情報16000は、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリューム識別子16001、サーバレベル仮想ボリューム容量16002、サーバレベル仮想ボリューム割当済容量16003、サーバレベルプール識別子16004、サーバレベルプール容量16005、対応仮想マシン識別子16006、仮想マシン認識デバイス識別子16007、サーバレベルエリア変換情報16008(図中ではHLーエリア変換情報と表記)を属性値とするレコードを含む。
サーバレベル仮想ボリューム識別子16001は、サーバ仮想化プログラム3200によってサーバレベル仮想ボリュームに割当てられた識別子である。
サーバレベル仮想ボリューム容量16002は、サーバレベル仮想ボリュームの容量である。
サーバレベル仮想ボリューム割当済容量16003は、サーバレベル仮想ボリューム容量のうち、サーバレベルプールからエリアが割当てられているエリア(仮想エリア)の総容量である。
サーバレベルプール識別子16004は、サーバレベル仮想ボリュームへのエリアの割当元となるサーバレベルプールの識別子である。
サーバレベルプール容量16005は、サーバレベル仮想ボリュームへのエリアの割当元となるサーバレベルプールの容量である。
対応仮想マシン識別子16006は、サーバレベル仮想ボリュームを使用する仮想マシンの識別子である。
仮想マシン認識デバイス識別子16007は、仮想マシン3201がサーバレベル仮想ボリュームを認識する際の識別子(サーバレベル仮想ボリュームを表すデバイスの識別子)である。
サーバレベルエリア変換情報16008は、サーバレベル仮想ボリュームのエリア(HL−AA)毎に割当てられたサーバレベルプールのエリア(HL−SA)の識別子を含む情報である。なお、エリア(HL−SA)が「未割当」のエリア(HL−AA)は、対応するエリア(HL−AA)にエリア(HL−SA)が割当てられていないことを示す。なお、サーバレベルエリア変換情報16008は、対応するサーバレベル仮想ボリューム定義直後は全て(または一部)のHL−AAについて「未割当」で生成され、後述の通り、エリア(HL−AA)の一部または全てを範囲とする最初のライト要求に応じてエリア(HL−SA)を割当てて、ライト要求のライトデータをエリア(HL−SA)に保存する。
図の例では、ストレージレベルエリア変換情報16008はリスト形式で表現されており、サーバレベル仮想ボリュームの先頭のエリア(HL−AA)から降順に、エリア(HL−AA)に割当てられているエリア(HL−SA)(または未割当)を示す識別子が格納されている。
エリア(HL−AA)を指定したブロックアドレスが[Z]ブロックアドレスの場合は、対応するエリア(HL−SA)の512バイトブロックでのアドレスは以下の通りに求める。
[HL−SAオフセット]=[Z]を[対応するサーバレベルプールのHL−SAサイズ長15007]で割った値(端数は切り捨て)。
[HL−SAオフセット内アドレス]=[Z]を[対応するサーバレベルプールのHL−SAサイズ長15007]で割った余り。
[対応HL−SAが存在するストレージレベル仮想ボリューム]=リスト16008の[HL−SAオフセット]の識別子のコロン「:」の前半。
[対応LL−SAの存在するボリューム内アドレス]=(リスト16008の[HL−SAオフセット]の識別子のコロン「:」の後半)×[対応するストレージレベルプールのHL−SAサイズ長15007]+[HL−SAオフセット内アドレス]。
従って、仮想マシン1から、HDD−1(すなわちSVVVOL−1)の151Kブロックアドレスを指定したI/O要求を受信した場合は以下の計算となる。
HL−SAオフセット=1。
HL−SAオフセット内アドレス=51Kブロック。
対応HL−SAが存在するボリューム=01(図34の構成ストレージポート番号・LUN15006を参照するとPORT番号ZZZ.KKKでLUNが2)。
対応HL−SAの存在するボリューム内アドレス=851Kブロック。
なお、サーバレベル仮想ボリューム情報16000は、サーバレベル仮想ボリューム3220に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベル仮想ボリューム3220に関する属性値を有しても良い。また、サーバレベルプール情報16000は、サーバレベル仮想ボリューム識別子16001を除いては上記属性値の一部を格納しなくてもよい。
<3−2.物理サーバの有するプログラムの説明>。
サーバ仮想化プログラム3200について説明する。
サーバ仮想化プログラム3200は、物理サーバ3000の有するリソースを用い、仮想マシン3201、サーバレベルプール3210、サーバレベル仮想ボリューム3220等を構築する。サーバ仮想化プログラム3200の実行する処理のより詳細な説明は、以降の<5−1.サーバでのThin−Provisioning>で説明する。
<4.管理サーバの詳細>。
図2は、管理サーバ1000のメモリ4050cが記憶する情報とプログラムの詳細を示す図である。
メモリ4050cには、ストレージレベルプール構成情報1400、ストレージレベル仮想ボリューム構成情報1500、ポート−LUN対応情報1600、サーバレベルプール構成情報1700、サーバレベル仮想ボリューム構成情報1800、End−to−End容量レバレッジ率情報1900、初期設定情報1910、及び管理プログラム1200が記憶される。
ストレージレベルプール構成情報1400は、ストレージレベルプールの構成に関する情報である。なお、ストレージレベルプール構成情報1400については、<4−1.ストレージ情報>で詳細を説明する。
ストレージレベル仮想ボリューム構成情報1500は、ストレージレベル仮想ボリュームの構成に関する情報である。なお、ストレージレベル仮想ボリューム構成情報1500については、<4−1.ストレージ情報>で詳細を説明する。
ポート−LUN対応情報1600は、ストレージシステム2000が物理サーバ3000に提供するストレージレベル仮想ボリュームに対応するポート番号とLUNに関する情報である。なお、ポート−LUN対応情報1600については、<4−1−3.管理サーバ設定情報>で詳細を説明する。
サーバレベルプール構成情報1700は、サーバレベルプール3210の構成に関する情報である。なお、サーバレベルプール構成情報1700については、<4−1−2.物理サーバ情報>で詳細を説明する。
サーバレベル仮想ボリューム構成情報1800は、サーバレベル仮想ボリュームの構成に関する情報である。なお、サーバレベル仮想ボリューム構成情報1800については、<4−1−1.サーバ情報>で詳細を説明する。
End−to−End容量レバレッジ率情報1900は、ストレージレベルプールについてのEnd−to−End容量レバレッジ率に関する情報である。なお、End−to−End容量レバレッジ率情報1900については、<4−1−3.管理サーバ管理情報>で詳細を説明する。
初期設定情報1910は、ストレージ管理者の入力する初期設定に関する情報である。なお、初期設定情報1910については、<4−1−3.管理サーバ管理情報>で説明する。
管理プログラム1200は、ストレージシステム2000及び物理サーバ3000を管理するプログラムである。管理プログラム1200は、ストレージ管理モジュール1201、サーバ管理モジュール1202及びレバレッジ管理モジュール1203を有する。
ストレージ管理モジュール1201は、ストレージレベルプール構成情報1400、ストレージレベル仮想ボリューム構成情報1500を用いて、ストレージシステム2000を管理するモジュールである。
サーバ管理モジュール1202は、サーバレベルプール構成情報1700及びサーバレベル仮想ボリューム構成情報1800を用いて、物理サーバ3000を管理するモジュールである。
レバレッジ管理モジュール1203は、ポート−LUN対応情報1600、End−to−End容量レバレッジ率情報及び初期設定情報1910を用いて、End−to−End容量レバレッジ率を管理するモジュールである。
なお、管理プログラム1200の有する各モジュールは、必ずしも一つのプログラムのモジュールである必要は無く、それぞれが別々のプログラムコードであってもよい。
<4−1.管理サーバで管理する情報>。
<4−1−1.ストレージ情報>。
<4−1−1a.ストレージレベルプール構成情報>。
図6は、ストレージレベルプール構成情報1400を示すブロック図である。
ストレージレベルプール構成情報1400は、ストレージレベルプール毎に、ストレージレベルプールに関する情報の他に、そのストレージレベルプールに対応するストレージレベル仮想ボリュームに関する情報を含む。具体的には、例えば、ストレージレベルプール構成情報1400は、テーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子1401、ストレージレベルプール容量1402、ストレージレベルプール割当済容量1403、対応ストレージ仮想ボリューム識別子1404、対応ストレージレベル仮想ボリューム総容量1405、プール構成ボリューム識別子1406、ストレージ装置識別子1 407を属性値とするレコードを含む。
ストレージレベルプール識別子1401は、ストレージレベルプールの識別子である。
ストレージレベルプール容量1402は、ストレージレベルプールの容量である。
ストレージレベルプール割当済容量1403は、ストレージレベルプール容量のうち、ストレージレベル仮想ボリュームに割当てられたエリアの総容量である。
対応ストレージレベル仮想ボリューム識別子1404は、ストレージレベルプールに対応するストレージレベル仮想ボリュームの識別子である。
対応ストレージレベル仮想ボリューム総容量1405は、ストレージレベルプールに対応する全てのストレージレベル仮想ボリュームの容量を合算した値である。
プール構成ボリューム識別子1406は、ストレージレベルプールに属するボリュームの識別子である。
ストレージ装置識別子1407は、ストレージレベルプールに属するボリュームを有するストレージ装置の識別子である。
なお、ストレージレベルプール構成情報1400は、ストレージレベルプール2220構成に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベルプール2220の構成の属性値を有しても良い。また、ストレージレベルプール構成情報1400は、ストレージレベルプール識別子1401を除いては上記属性値の一部を格納しなくてもよい。
前述した情報要素1401〜1406は、例えば、ストレージシステムを構成するストレージ装置から管理サーバ1000に収集されたストレージレベルプール情報11000(図30参照)における情報要素11001〜11006から得られる。また、情報要素1407は、ストレージレベルプール情報11000がどのストレージ装置から収集されたかを表す情報要素である。
<4−1−1b.ストレージレベル仮想ボリューム構成情報>。
図7は、ストレージレベル仮想ボリューム構成情報1500を示すブロック図である。
ストレージレベル仮想ボリューム構成情報1500は、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリュームに関する情報の他に、そのストレージレベル仮想ボリュームに対応するストレージレベルプールに関する情報を含む。具体的には、例えば、ストレージレベル仮想ボリューム構成情報1500は、テーブルであり、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリューム識別子1501、ストレージレベル仮想ボリューム容量1502、ストレージレベル仮想ボリューム割当済容量1503、対応ストレージレベルプール識別子1504を属性値とするレコードを含む。
ストレージレベル仮想ボリューム識別子1501は、ストレージレベル仮想ボリュームの識別子である。
ストレージレベル仮想ボリューム容量1502は、ストレージレベル仮想ボリュームの容量である。
ストレージレベル仮想ボリューム割当済容量1503は、ストレージレベル仮想ボリューム容量のうち、ストレージレベルプールからストレージレベル仮想ボリュームに割当てられたエリアの総容量である。
対応ストレージレベルプール識別子1504は、ストレージレベル仮想ボリュームに対応するストレージレベルプールの識別子である。
なお、ストレージレベル仮想ボリューム構成情報1500は、ストレージレベル仮想ボリューム2230に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベル仮想ボリューム2230の属性値を有しても良い。また、ストレージレベル仮想ボリューム2230情報は、ストレージレベル仮想ボリューム識別子1501を除いては上記属性値の一部を格納しなくてもよい。
前述した情報要素1501〜1504は、例えば、例えば、ストレージシステムを構成するストレージ装置から管理サーバ1000に収集されたストレージレベルプール情報11000(図31参照)における情報要素12001〜12004から得られる。
<4−1−2.物理サーバ情報>。
<4−1−2a.サーバレベルプール構成情報>。
図9は、サーバレベルプール構成情報1700を示すブロック図である。
サーバレベルプール構成情報1700は、サーバレベルプール毎に、サーバレベルプールに関する情報の他に、そのサーバレベルプールに対応するサーバレベル仮想ボリュームに関する情報を含む。具体的には、例えば、サーバレベルプール構成情報1700は、テーブルであり、サーバレベルプール毎に、サーバレベルプール識別子1701、サーバレベルプール容量1702、サーバレベルプール割当済容量1703、対応サーバレベル仮想ボリューム3220、対応サーバレベル仮想ボリューム総容量1705、ボリューム提供元ストレージ装置、構成ストレージポート番号・LUN1707を属性値とするレコードを含む。
サーバレベルプール識別子1701は、サーバレベルプールの識別子である。
サーバレベルプール容量1702は、サーバレベルプールの容量である。
サーバレベルプール割当済容量1703は、サーバレベルプール容量のうち、サーバレベル仮想ボリュームに割当てられたエリアの総容量である。
対応サーバレベル仮想ボリューム識別子1704は、サーバレベルプールに対応するサーバレベル仮想ボリュームの識別子である。
対応サーバレベル仮想ボリューム総容量1705は、サーバレベルプールに対応する全てのサーバレベル仮想ボリュームの容量を合算した値である。
ボリューム提供元ストレージ装置識別子1407は、サーバレベルプールに対応したストレージレベル仮想ボリュームを物理サーバ3000に提供しているストレージ装置の識別子である。
構成ストレージボリュームポート番号・LUN1707は、サーバレベルプールに対応したストレージレベル仮想ボリュームに物理サーバ3000がアクセスするためのポート番号と、物理サーバ3000がSCSIによりストレージレベル仮想ボリュームを認識するためのLUNである。
なお、サーバレベルプール構成情報1700は、サーバレベルプール3210に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベルプール3210の属性値を有しても良い。また、サーバレベルプール構成情報1700は、サーバレベルプール識別子1701を除いては、上記属性値の一部を格納しなくてもよい。
前述した情報要素1701〜1706は、例えば、物理サーバから管理サーバ1000に収集されたサーバレベルプール情報15000(図34参照)における情報要素15001〜15006から得られる。また、情報要素1507は、サーバレベルプール情報15000がどの物理サーバから収集されたかを表す情報要素である。
<4−1−2b.サーバレベル仮想ボリューム構成情報>。
図10は、サーバレベル仮想ボリューム構成情報1800を示すブロック図である。
サーバレベル仮想ボリューム構成情報1800は、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリュームに関する情報の他に、そのサーバレベル仮想ボリュームに対応するサーバレベルプールに関する情報と、仮想マシンに関する情報とを含む。具体的には、例えば、サーバレベル仮想ボリューム構成情報1800は、テーブルであり、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリューム識別子1801、サーバレベル仮想ボリューム容量1802、サーバレベル仮想ボリューム割当済容量1803、サーバレベル仮想ボリューム未割当容量1804、サーバレベル仮想ボリューム使用容量1805、対応サーバレベルプール識別子1806、対応仮想マシン識別子1807、仮想マシン認識デバイス識別子1808を属性値とするレコードを含む。
サーバレベル仮想ボリューム識別子1801は、サーバレベル仮想ボリュームの識別子である。
サーバレベル仮想ボリューム容量1802は、サーバレベル仮想ボリュームの容量である。
サーバレベル仮想ボリューム割当済容量1803は、サーバレベル仮想ボリューム容量のうち、サーバレベルプールからサーバレベル仮想ボリュームに割当てられたエリアの総容量である。
サーバレベル仮想ボリューム未割当容量1804は、サーバレベル仮想ボリューム容量のうち、サーバレベルプールからエリアが割当てられていないエリア(仮想エリア)の総容量である。
サーバレベル仮想ボリューム使用容量1805は、サーバレベル仮想ボリューム容量のうち、仮想マシンによりデータ書き込みが行われた容量である。
対応サーバレベルプール識別子1806は、サーバレベル仮想ボリュームに対応するサーバレベルプールの識別子である。
対応仮想マシン識別子1807は、サーバレベル仮想ボリュームの割当先である仮想マシンの識別子である。
仮想マシン認識デバイス識別子1808は、仮想マシンがサーバレベル仮想ボリュームをデバイス(例えばハードディスクドライブ)として認識する際の識別子である。
なお、サーバレベル仮想ボリューム構成情報1800は、サーバレベル仮想ボリューム3220に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベル仮想ボリューム3220の属性値を有しても良い。また、サーバレベル仮想ボリューム3220情報は、サーバレベル仮想ボリューム識別子1801を除いては上記属性値の一部を格納しなくてもよい。
前述した情報要素1801〜1804及び1806〜1808は、例えば、物理サーバから管理サーバ1000に収集されたサーバレベル仮想ボリューム情報16000(図35参照)における情報要素16001〜16001から得られる。また、情報要素1805は、仮想マシンによって、サーバレベル仮想ボリュームに書き込まれたデータ量を計算することによって求まる情報要素である。
<4−1−3.管理サーバ管理情報>。
<4−1−3a.ポート−LUN対応情報>。
図8は、ポート−LUN対応情報1600を示すブロック図である。
ポート−LUN対応情報1600は、例えば、テーブルであり、ストレージレベル仮想ボリューム毎に、port#(ポート番号)1602、LUN1603、及び内部ボリュームID1601を属性値とするレコードを含む。
port#1602は、ストレージシステム2000が物理サーバ3000にストレージレベル仮想ボリューム2230を提供している際、物理サーバ3000が提供されたストレージレベル仮想ボリューム2230にアクセスするために使用するポート番号である。
LUN1603は、物理サーバ3000がストレージシステム2000から提供されたストレージレベル仮想ボリューム2230をSCSIで認識するための識別番号である。
内部ボリュームID1601は、ストレージシステム2000が物理サーバ3000に提供するストレージレベル仮想ボリューム2230を識別する際の識別子である。
なお、ポート−LUN対応情報1600は、ポート番号1602、LUN1603、内部ボリュームID1601の対応に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のポート番号1602、LUN1603、内部ボリュームID1601の対応の属性値を有しても良い。また、ポート−LUN対応情報1600は、内部ボリュームID1601を除いては上記属性値の一部を格納しなくてもよい。
前述した情報要素1601〜1603は、例えば、以下のようにして構築することができる。管理サーバが、ストレージ装置から収集されたストレージレベル仮想ボリューム情報12000(図31参照)におけるストレージレベル仮想ボリューム識別子、ポート番号及びLUNを用いて、図8に示した対応情報1600が構築される。
<4−1−3b.End−to−End容量レバレッジ率情報>。
図11は、End−to−End容量レバレッジ率情報1900を示すブロック図である。
End−to−End容量レバレッジ率情報1900は、例えばテーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子1901とEnd−to−End容量レバレッジ率1902とを含む。
ストレージレベルプール識別子1901は、ストレージレベルプールの識別子である。
End−to−End容量レバレッジ率1902は、ストレージレベルプールに対応したEnd−to−End容量レバレッジ率(100×(ストレージレベルプールに対応した全てのサーバレベル仮想ボリュームの総容量)/(ストレージレベルプールの容量))(%)である。
なお、End−to−End容量レバレッジ率情報1900は、プール単位の容量レバレッジ率に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のプール単位の容量レバレッジ率の属性値を有しても良い。また、End−to−End容量レバレッジ率情報1900は、ストレージレベルプール識別子1901を除いては上記属性値の一部を格納しなくてもよい。
<4−1−3c.初期設定情報>。
図12は、初期設定情報1910を示すブロック図である。
初期設定情報1910は、例えば、End−to−End容量レバレッジ率閾値1911、情報収集間隔1912を属性値とする一つ以上のレコードを含むテーブルである。
End−to−End容量レバレッジ率閾値1911は、ストレージ管理者が、管理プログラム1200の設定画面にて入力する、ストレージレベルプール2220に対する容量レバレッジ率の許容上限値を表す閾値である。
情報収集間隔1912は、ストレージ管理者が管理プログラム1200の設定画面にて入力する、End−to−End容量レバレッジ率1902を算出するタイミングの間隔である。
なお、初期設定情報1910は、ストレージ管理者の入力する初期設定に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外の初期設定の属性値を有しても良い。また、初期設定情報1910は、情報収集間隔1912を除いては上記属性値の一部を格納しなくてもよい。
図13は、End−to−End容量レバレッジ率の表示画面を表す。
レバレッジ率表示画面1403は、管理プログラム1200によって表示される画面である。例えば、ストレージレベルプール「STPOOL−1」のEnd−to−End容量レバレッジ率が500%となっている理由は、下記の通りである。
図6の情報1400から、識別子「STPOOL−1」に対応したストレージレベルプールの容量「10000MB」が特定される。また、識別子「STPOOL−1」に対応した対応ストレージレベル仮想ボリューム識別子「STVVOL−1」及び「STVVOL−2」が特定される。
図8の情報1600から、識別子「STVVOL−1」及び「STVVOL−2」に対応するポート番号及びLUNが特定される。
そのポート番号及びLUNを用いて、図9の情報から、サーバレベルプールの識別子「SVPOOL−1」が特定される。
その識別子「SVPOOL−1」を用いて、図10の情報1800から、サーバレベル仮想ボリューム容量「30000MB」及び「20000MB」、つまり総容量「50000MB」が特定される。
以上の結果、ストレージレベルプール「STPOOL−1」の容量「10000MB」に対して、そのストレージレベルプールに対応したサーバレベル仮想ボリュームの総容量「50000MB」が特定され、その結果、100×50000/10000=500%というEnd−to−End容量レバレッジ率が算出される。
図13の表示形式や表示情報は一例であり、End−to−End容量レバレッジ率に関わる情報であれば、図中に表示されている以外の情報が表示されても良い。また、GUIも別の形式が採用されても良い。
<5.Thin−Provisioning>。
<5−1.ストレージでのThin−Provisioning>。
図4は、ストレージシステム2000で行われるThin−Provisioningを表す図である。
ストレージシステム2000では、ストレージ制御プログラム2500のストレージ仮想化モジュール2501により、ボリューム2210、ストレージレベルプール2220、ストレージレベル仮想ボリューム2230が構築される。
ボリューム2210は、ストレージ仮想化モジュール2501により、一つ以上のPDEV2100aの記憶領域をグループ化することにより構築される。ボリューム2210の記憶領域は、ストレージコントローラ4050の行う制御により、ボリューム2210を構成する一つ以上のPDEV2100aの記憶領域に分散してマッピングされる。
ストレージレベルプール2220は、ストレージ仮想化モジュール2501により構築される。ストレージレベルプール2220の記憶領域は、ストレージコントローラ4050の行う制御により、ストレージレベルプール2220に対応した、一つ以上のボリューム2210の記憶領域に分散してマッピングされる。
ストレージレベル仮想ボリューム2230は、ストレージ仮想化モジュール2501により構築される。ストレージレベル仮想ボリューム2230は、仮想的なエリア(LL−AA)を持つ。ボリューム2210のエリア(LL−SA)とは異なり、ストレージレベル仮想ボリューム2230定義直後は、ストレージレベル仮想ボリューム2230のエリア(LL−AA)は、PDEV2100aの有する物理記憶領域に対応していない。
ストレージレベル仮想ボリューム2230の仮想エリア(LL−AA)に対するライト要求が発行された場合、そのエリア(LL−AA)にプール2220内の一部エリア(LL−SA)が割当てられていなければ、ストレージコントローラ4050aの行う制御により、ストレージレベルプール2220の未割当エリア(LL−SA)が動的にマッピングされる。
ストレージレベル仮想ボリューム2230の仮想記憶領域は、全てがPDEV2100aの持つ記憶領域のような、物理記憶領域に対応していなくて良いため、ストレージシステム2000の有する物理記憶領域(例えばプール2220の容量)よりも大きな値を、ストレージレベル仮想ボリューム2230の仮想記憶領域(容量)として設定することができる。また、ストレージレベル仮想ボリュームへのアクセス開始後に未割当エリア(LL−SA)が不足した場合にもストレージレベル仮想ボリュームにアクセスする計算機の設定変更を行わずに、新たなボリュームをプール2220に含めることで未割当エリア(LL−SA)の不足に伴うライト要求の失敗を回避することができる。
ストレージシステム2000は、物理サーバ3000に、ストレージレベル仮想ボリューム2230を提供する。PDEV4050aの持つ物理記憶領域は、ストレージレベル仮想ボリューム2230、ストレージレベルプール2220を構成しているボリューム2210を経由し、物理サーバ3000によりアクセスされる。
<5−1−1.ストレージレベルプールへのボリュームの追加>。
図26は、ストレージレベルプール2220へのボリューム2210の追加する処理を表すフローである。
ストレージレベルプール2220の設定は、ストレージ仮想化モジュール2501によって実行される。
(ステップS1101)まず、ストレージ管理者は、管理プログラム1200に、ストレージレベルプール2220に設定するボリューム2210の情報を入力する。ストレージレベルプール2220の識別子、閾値、ボリューム2210の数、及び、ボリューム識別子が設定される。
(ステップS1102)ストレージ管理モジュール1201は、入力された情報を含むストレージレベルプール2220設定の指示コマンドを生成し、NICを介して、その指示コマンドをストレージシステム2000に送信する。
(ステップS1103)ストレージシステム2000において、管理サーバ1000から送信された指示コマンドは、NICを介して、コマンド制御モジュール2503が受信する。
コマンド制御モジュール2503は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合、モジュール2503は、コマンドを拒否する(例えばエラーを応答する)。
(ステップS1104)コマンド制御モジュール2503は、指示コマンドがストレージレベルプール2220の設定である場合は、ストレージ仮想化モジュール2501に受信した指示コマンドを渡す。ストレージ仮想化モジュール2501は、指示コマンドを受け取って、ストレージレベルプール設定処理を開始する。
(ステップS1105)ストレージ仮想化モジュール2501は、まず、ストレージレベルプール情報11000を調べ、指示コマンドに係るストレージレベルプール識別子11001が有効であるかを確認する。また、ストレージ仮想化モジュール2501は、そのストレージレベルプール識別子11001は未だ未定義であるかを確認する。
(ステップS1106)次に、ストレージ仮想化モジュール2501は、指示コマンドに係るボリューム2210が使用可能であるか否かを確認する。具体的には、例えば、指示コマンドに係るボリューム2210がフォーマット中等である場合は、当該ボリューム2210は使用不可であるため、ストレージ仮想化モジュール2501は、コマンドを拒否する(例えばエラーを応答する)。また、指示コマンドに係るボリューム2210が既に使用中である場合(例えば、ボリューム2210がパス定義済みである場合、コピー機能等によって使用中である場合又はコピー先として予約中に設定されている場合)は、ストレージ仮想化モジュール2501は、当該ボリューム2210は使用不可であるため、コマンドを拒否する。
(ステップS1107)次に、ストレージ仮想化モジュール2501は、ストレージレベルプール情報11000に、ストレージレベルプール容量11002、ボリューム識別子11004、を設定する。このストレージ仮想化モジュール2501の処理によって、ボリューム2210が、ストレージレベルプール2220に追加される。そして、ストレージ仮想化モジュール2501は、未割当LL−SAの識別子リスト11008に、登録したボリュームの全てまたは一部のエリアをLL−SAとしてリストに追加する。
(ステップS1108)次に、ストレージ制御プログラム2500は、管理サーバ1000に、コマンドが成功した旨の応答を送信する。
管理サーバ1000のストレージ構成管理モジュール2502は、ストレージシステム2000からの応答を受信すると、処理を終了する。
以上の処理によって、ボリューム2210が、ストレージレベルプール2220に追加される。
<5−1−2.ストレージレベル仮想ボリュームからのリード>。
図24は、ストレージレベル仮想ボリュームからデータをリードする処理のフローである。
物理サーバは、ストレージレベル仮想ボリュームのLUNと、当該ボリューム内のブロックアドレスを指定して、I/O要求を送信する。このI/O要求は、データのリード要求である。
(ステップS901)ストレージシステム2000では、コマンド制御モジュール2503が、物理サーバ3000からのI/O要求を受信する。受信したI/O要求の内容が無効である場合は、その要求が拒否される(例えばエラーが応答される)。受信したI/O要求の内容が有効である場合は、コマンド制御モジュール2503が、そのI/O要求の内容を解析する。解析の結果、コマンド制御モジュール2503は、I/O要求がデータのリード要求であることを知る。
(ステップS902)次に、コマンド制御モジュール2503は、受信した要求に係るリード対象のストレージレベル仮想ボリューム2230のブロックアドレスを取得する。
(ステップS903)次に、コマンド制御モジュール2503は、リード対象のストレージレベル仮想ボリューム2230に対応するストレージレベルプール2220から、リード要求の該当領域のアドレスを含むエリア(LL−AA)にマッピングされているボリュームのエリア(LL−SA)のブロックアドレスを取得する。このとき、ストレージレベル仮想ボリューム2230のリード要求の該当領域のアドレスは、複数のボリューム2210のアドレスに分散してマッピングされている場合がある。なお、当該処理はストレージレベルプール情報11000とストレージレベル仮想ボリューム情報12000を参照することで行うが、詳細な処理はこれら情報を説明する段階で既に説明済みである。
(ステップS904)次に、コマンド制御モジュール2503は、ボリューム情報14000を参照し、該当ボリューム2210の領域のアドレスに対応したPDEV2100aを特定し、該当PDEV2100aのアドレスを取得する。
(ステップS905)次に、コマンド制御モジュール2503は、PDEV2100aの該当アドレスから要求に係るデータを読み出し、物理サーバ3000に送信する。
(ステップS906)そして、コマンド制御モジュール2503は、物理サーバ3000にリード要求の完了報告を送信して、処理を終了する。
なお、ステップS903でリード要求の該当領域のアドレスを含むエリア(LL−AA)に割当てられているボリュームのエリア(LL−SA)が無い場合は、クリア値(例えば0の羅列)を物理サーバ3000に送信してもよい。
<5−1−3.ストレージレベル仮想ボリュームへのライト>。
図25は、ストレージレベル仮想ボリューム2230へのデータのライト処理を表すフローの一部であり、図39は、そのフローの残りである。
物理サーバ3000は、ストレージレベル仮想ボリューム2230のLUNと当該ボリューム内のブロックアドレスを指定して、I/O要求を送信する。このI/O要求は、データのライト要求である。
(ステップS1001)ストレージシステム2000において、コマンド制御モジュール2503が、物理サーバ3000からのI/O要求を受信する。受信したI/O要求が無効である場合は、その要求が拒否される(例えばエラーが応答される)。そして、コマンド制御モジュール2503が、そのI/O要求の内容を解析する。解析の結果、コマンド制御モジュール2503は、I/O要求がデータのライト要求であることを知る。
(ステップS1002)次に、コマンド制御モジュール2503は、受信したライト要求に係るストレージレベル仮想ボリューム2230のブロックアドレスを取得する。
(ステップS1003)次に、コマンド制御モジュール2503は、ストレージレベル仮想ボリューム情報12000を参照し、ストレージレベル仮想ボリューム2230に対応するストレージレベルプール2220を特定し、その状態を取得する。
(ステップS1004)コマンド制御モジュール2503は、ストレージレベルプール情報11000を参照し、そのストレージレベルプール2220に対応するボリューム2210を特定し、該当ボリューム2210が使用可能であるか否かを判定する。
(ステップS1005)ボリューム2210が使用可能でない場合は、該当ボリューム2210にはアクセス出来ないので、コマンド制御モジュール2503は、I/Oエラーを物理サーバ3000に送信する。
(ステップS1006)ボリューム2210が使用可能であると判断した場合、コマンド制御モジュール2503は、要求送信元の物理サーバ3000に、ライトデータの転送が可能である旨を送信する。物理サーバ3000は、これを受けて、ライトデータをストレージシステム2000に送信する。
(ステップS1007)コマンド制御モジュール2503は、物理サーバ3000が送信したライトデータを受信する。
(ステップS1010)ストレージ仮想化モジュール2501は、まず、ストレージレベル仮想ボリューム情報12000及びストレージレベルプール情報11000を参照し、ライト要求のブロックアドレスを含むエリア(LL−AA)に、ストレージレベルプール2220のエリア(LL−SA)が割当てられているかを確認する。
(ステップS1011)ステップS1010で割当済みと判定した場合は、ストレージ仮想化モジュール2501は、ストレージレベル仮想ボリューム情報12000及びストレージレベルプール情報11000を参照し、指定されたブロックアドレスを含むエリア(LL−AA)に割当てられたボリューム及び当該ボリュームのエリア(LL−SA)のブロックアドレスを取得する。
(ステップS1012)次に、ストレージ仮想化モジュール2501は、ボリューム情報13000を参照し、ステップS1011で取得したボリューム及びブロックアドレスに対応するPDEV2100aを特定し、該当PDEV2100aの領域のアドレスを取得し、ライトデータ(ライト要求に付随するデータ)を書き込む。
(ステップS1013)ストレージ仮想化モジュール2501は、ライトデータの書き込みが完了すると、コマンド制御モジュール2503にライト完了を報告する。コマンド制御モジュール2503は、この報告を受けて、物理サーバ3000に、ライト要求の完了報告を送信して、処理を終了する。
(ステップS1014)一方、ステップS1010で未割当と判定した場合、ストレージ仮想化モジュール2501は、ストレージレベルプール情報11000を参照して、対応するストレージレベルプール2220に、未割当のエリア(LL−SA)があるか確認する。なお本ステップは未割当LL−SAの識別子リスト11008を参照することで実現できる。
(ステップS1015)ステップS1014で未割当のエリア(LL−SA)があると判定した場合は、ストレージ仮想化モジュール2501は、ストレージレベルプール2220の未割当エリア(LL−SA)を選択し、選択したエリア(LL−SA)のボリューム及びブロックアドレスを取得し、ステップS1010にて未割当と判定されたエリア(LL−AA)に割当てる。なお、本ステップの選択したエリア(LL−SA)の選択は、例えば未割当LL−SAの識別子リスト11008の先頭から未割当エリア(LL−SA)を抜くことで可能である。また、図30及び図31で説明した方法で、選択したエリア(LL−SA)のボリュームの識別子とブロックアドレスを特定できる。
(ステップS1016)そして、モジュール2501は、ストレージレベルプール情報11000及びストレージレベル仮想ボリューム情報12000を更新する。具体的には、ストレージレベルプールの割当済み容量11003とストレージレベル仮想ボリュームの割当済み容量12003を、選択エリア(LL−SA)の容量分増やす。また、ストレージレベルエリア変換情報12007のS1010のエリア(LL−AA)に対応した値を未割当から、先ほど取得したボリュームとブロックアドレスに更新する。
(ステップS1017)一方で、ステップS1014で未割当のエリア(LL−SA)が無い(または不足)と判断した場合は、ストレージ仮想化モジュール2501は、ストレージレベルプール2220管理情報の状態を「プール容量不足」に変更する。
(ステップS1018)そして、モジュール2501は、I/O要求元の物理サーバ3000及びストレージシステム2000に、プール容量不足を通知して処理を終了する。
以上の処理によって、物理サーバ3000のデータのライト要求の処理が完了する。
<5−1.サーバでのThin−Provisioning>。
図5は、物理サーバ3000で行われるThin−Provisioningを表す図である。
物理サーバ3000では、サーバ仮想化プログラム3200により、サーバレベルプール3210、サーバレベル仮想ボリューム3220、仮想マシン3201が構築される。
サーバレベルプール3210は、ストレージシステム2000から提供される複数のストレージレベル仮想ボリューム2230の複数のエリア(LL−AA)を含む記憶領域をエリア(HL−SA)として使用するためのプールである。サーバレベルプール3210は、サーバ仮想化プログラム3200により、ストレージシステム2000から割当てられた、一つ以上のストレージレベル仮想ボリューム2230から構築される。サーバレベルプール3210は、主にファイルシステムの形式をとり、仮想マシン3201のイメージファイル、サーバレベル仮想ボリューム3220のイメージファイルなどが格納される。また、仮想マシンを一時的に停止する際の仮想マシン上のメモリ上に仮想的に格納されているデータもイメージファイルとして格納される。即ち、物理サーバの視点からはストレージレベル仮想ボリュームに仮想マシンについての、イメージファイル及びメモリイメージ及びサーバレベル仮想ボリューム3220に格納したとされる各種データ、が格納されているように見える。サーバレベル仮想ボリューム3220の管理領域もサーバレベルプール3210内に確保される。この管理領域には、サーバレベル仮想ボリューム3220の仮想記憶領域のアドレス情報や、ストレージシステム2000から提供されたストレージレベル仮想ボリューム2230へのマッピング情報などが格納される。
サーバレベル仮想ボリューム3220は、サーバ仮想化プログラム3200により構築される。サーバレベル仮想ボリューム3220は仮想記憶領域を持つ。サーバレベル仮想ボリューム3220の仮想記憶領域は、サーバ仮想化プログラム3200により、仮想マシン3201からのライト要求に応じて、必要な容量分の領域が、サーバレベルプール3210の記憶領域に、動的にマッピングされる。
仮想マシン3201は、サーバ仮想化プログラム3200によって構築される仮想的な計算機である。仮想サーバ環境では、複数の仮想マシン3201が物理サーバの物理リソースを共有して稼働する。仮想マシン3201には物理的な計算機と同様に、OS3230をインストールすることができ、独立したサーバマシンとして使用することが出来る。仮想マシン3201は、サーバレベル仮想ボリューム3220を経由してサーバレベルプール3210の記憶領域(実際にはストレージレベル仮想ボリューム)にアクセスする。
仮想マシン3201からのサーバレベル仮想ボリューム3220へのアクセスは、サーバ仮想化プログラム3200により制御される。これにより、仮想マシン3201上のOS3230には、サーバレベル仮想ボリューム3220が、物理記憶領域を持つ記憶デバイスと同様に認識される。サーバ仮想化プログラム3200による制御としては、後述するサーバレベル仮想ボリューム3220に対するリード、ライト、容量問い合わせの処理がある。なお、仮想マシン3201上のOS3230から発行される容量問い合わせ要求は、OS3230がサーバレベル仮想ボリューム3220を利用する際に必要となる当該ボリュームの容量を取得するための要求である。
なお、以下の説明では仮想マシン3201で実行するOS3230がサーバレベル仮想ボリューム3220に対して発行するI/OプロトコルはSCSIを例としている。しかし、SCSIプロトコルの変わりとして、例えばIDEやSASといったほかのブロックアクセス型のプロトコルを採用してもよい。
<5−1−1.サーバレベルプールの設定>。
図21は、サーバレベルプール3210へのストレージレベル仮想ボリューム2230の設定、追加処理を表すフローである。
(ステップS1201)まず、サーバ管理者は、サーバ仮想化プログラム3200に、サーバレベルプール3210に設定するボリュームの情報を入力する。サーバレベルプール3210に設定するボリュームは、ストレージシステム2000から提供されるストレージレベル仮想ボリュームを用いる。サーバレベルプール3210の識別子、閾値、ストレージレベル仮想ボリューム2230の数、及びLUN1603が設定される。
(ステップS1202)サーバ仮想化プログラム3200は、入力された情報を含むサーバレベルプール3210設定の指示コマンドが有効であるかどうかを確認する。無効である場合は、プログラム3200は、そのコマンドを拒否する(例えばエラーを応答する)。
(ステップS1203)サーバ仮想化プログラム3200は、まず、サーバレベルプール情報15000を参照し、指示コマンドに係るサーバレベルプール識別子1801が有効であるかを確認する。
(ステップS1204)次に、サーバ仮想化プログラム3200は、指示コマンドに係るストレージレベル仮想ボリューム2230が使用可能であるか否かを確認する。具体的には、例えば、指示コマンドに係るストレージレベル仮想ボリューム2230がフォーマット中等である場合は、該当ストレージレベル仮想ボリューム2230は使用不可であるため、プログラム3200は、コマンドを拒否する(例えばエラーを応答する)。また、例えば、指示コマンドに係るストレージレベル仮想ボリューム2230がすでに使用中である場合(例えば、ストレージレベル仮想ボリューム2230がパス定義済みである場合)は、プログラム3200は、該当ストレージレベル仮想ボリューム2230は使用不可であるため、コマンドを拒否する。
(ステップS1205)次に、サーバ仮想化プログラム3200は、サーバレベルプール情報15000に、サーバレベルプール容量15002、構成ストレージポート番号・LUN15006を設定する。このサーバ仮想化プログラム3200の処理によってストレージレベル仮想ボリューム2230がサーバレベルプール3210に設定される。そして、サーバ仮想化プログラム3200は、未割当HL−SAの識別子リスト15008に、登録したストレージレベル仮想ボリュームの全てまたは一部のエリアをHL−SAとしてリストに追加する。
<5−1−2.サーバレベル仮想ボリュームへのI/O>。
<5−1−2a.サーバレベル仮想ボリュームに対する容量問い合わせ要求の処理>。
本処理は、仮想マシン3201上のOS3230が容量問い合わせ要求を行った場合の処理について説明する。なお、通常はその後、OS3230はライト要求やリード要求を発酵したり、サーバレベル仮想ボリューム3220のファイルシステムフォーマット処理を実行する。
仮想マシン3201上のOS3230は、仮想マシン認識デバイス識別子1808を指定して、容量問い合わせ要求を発行する。サーバ仮想化プログラム3200は、この要求に対して、以下の処理を行うことにより、仮想マシン3201上のOS3230にサーバレベル仮想ボリューム3220の容量を返す。これにより、仮想マシン3201上のOS3230は、サーバレベル仮想ボリューム3220の容量が把握できる。
(ステップA)サーバ仮想化プログラム3200は、仮想マシン3201上のOSが送信した容量問い合わせ要求を受信する。
(ステップB)サーバ仮想化プログラム3200は、要求の内容を解析する。そして、サーバレベル仮想ボリューム情報16000を参照し、問い合わせ先の仮想マシン認識デバイス識別子16007に対応するサーバレベル仮想ボリューム識別子16001を特定する。
(ステップC)サーバ仮想化プログラム3200は、サーバレベル仮想ボリューム情報16000からステップBで特定した識別子のサーバレベル仮想ボリューム容量16002を取得する。
(ステップD)サーバ仮想化プログラム3200は、仮想マシン3201上のOS3230が認識する記憶デバイスのディスクサイズとしてステップCで取得した容量を仮想マシン3201上のOS3230に通知して、処理を終了する。
以上の処理によって、仮想マシン3201上のOS3230は、サーバレベル仮想ボリューム3220の容量を把握することができる。
<5−1−2b.サーバレベル仮想ボリュームに対するリード要求の処理>。
図22は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのリード要求を受け付けた場合に行われる処理のフローである。
本処理は、仮想マシン3201上のOS3230によるリード対象であるサーバレベル仮想ボリューム3220の仮想マシン認識デバイス識別子と、ブロックアドレスと、ブロック長を指定したリード要求の発行を、サーバ仮想化プログラム3200が検知して開始される。
(ステップS1301)サーバ仮想化プログラム3200が、仮想マシン3201からI/O要求を受信する。受信したI/O要求の内容が無効である場合は、プログラム3200は、その要求を拒否する(例えばエラーを応答する)。受信したI/O要求の内容が有効である場合は、プログラム3200は、そのI/O要求の内容を解析する。解析の結果、サーバ仮想化プログラム3200は、I/O要求がデータのリード要求であることを知る。
(ステップS1302)次に、サーバ仮想化プログラム3200は、受信した要求に係るリード対象のサーバレベル仮想ボリューム3220と、対象サーバレベル仮想ボリューム内のブロックアドレスを取得する。
(ステップS1303)次に、サーバ仮想化プログラム3200は、サーバレベル仮想ボリューム情報16000を参照し、リード対象のサーバレベル仮想ボリューム3220に対応するサーバレベルプール3210から、リード要求の該当領域のアドレスを含むエリア(HL−AA)にマッピングされているストレージレベル仮想ボリューム2230の識別子とストレージレベル仮想ボリュームのエリア(HL−SA)のアドレスを取得する。このとき、サーバレベル仮想ボリューム3220のリード要求の該当領域のアドレスは、複数のストレージレベル仮想ボリューム2230のアドレスに分散してマッピングされている場合がある。なお、当該処理は、サーバレベルプール情報15000とサーバレベル仮想ボリューム情報16000を参照することで行うが、詳細な処理はこれら情報を説明する段階で既に説明済みである。
(ステップS1304)次に、サーバ仮想化プログラム3200は、ステップS1303で取得したストレージレベル仮想ボリューム2230の識別子と、エリア(HL−SA)ストレージレベル仮想ボリューム2230の対応エリア(HL−SA)のアドレスを指定したリード要求をストレージシステム2000へ送信する。そしてサーバ仮想化プログラム3200からリード要求に係るデータを受信し、当該データを仮想マシン3201に送信する。
(ステップS1305)そして、仮想マシン3201にリード要求の完了報告を通知して、処理を終了する。
なお、ステップS1303でリード要求の該当領域のアドレスを含むエリア(HL−AA)に割当てられているボリュームのエリア(HL−SA)が無い場合は、クリア値(例えば0の羅列)を仮想マシン3201に送信してもよい。
<5−1−2c.サーバレベル仮想ボリュームに対するライト要求の処理>。
図23及び図40は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのライト要求を受け付けた場合に行われる処理のフローである。
本処理は、仮想マシン3201上のOS3230がライト対象であるサーバレベル仮想ボリューム3220の仮想マシン認識デバイス識別子と、ブロックアドレスと、ブロック長さを指定したライト要求発行をサーバ仮想化プログラム3200が検知して開始される。
(ステップS1401)物理サーバ3000において、サーバ仮想化プログラム3200が、仮想マシン3201からのI/O要求を受信する。受信したI/O要求が無効である場合、プログラム3200は、そのI/O要求を拒否する。受信したI/O要求が有効である場合は、プログラム3200は、そのI/O要求の内容を解析する。解析の結果、サーバ仮想化プログラム3200は、I/O要求がデータのライト要求であることを知る。
(ステップS1402)次に、サーバ仮想化プログラム3200は、受信したライト要求に係るサーバレベル仮想ボリューム3220の識別子と当該サーバレベル仮想ボリューム内のブロックアドレスを取得する。
(ステップS1403)次に、サーバ仮想化プログラム3200は、サーバレベル仮想ボリューム情報16000を参照し、サーバレベル仮想ボリューム2230に対応するサーバレベルプール3210を特定し、その状態を取得する。
(ステップS1404)サーバ仮想化プログラム3200は、サーバレベルプール情報15000を参照し、そのサーバレベルプール3210に対応するストレージレベル仮想ボリューム2230を特定し、該当ストレージレベル仮想ボリューム2230が使用可能であるか否かを判定する。
(ステップS1405)ストレージレベル仮想ボリューム2230が使用可能でない場合は、該当ストレージレベル仮想ボリューム2230にはアクセス出来ないので、サーバ仮想化プログラム3200は、I/Oエラーを要求送信元の仮想マシンに送信する。
(ステップS1406)ストレージレベル仮想ボリューム2230が使用可能であると判断した場合、サーバ仮想化プログラム3200は、要求送信元の仮想マシンに、ライトデータの転送が可能である旨を送信する。当該仮想マシンは、これを受けて、ライトデータをサーバ仮想化プログラム3200に送信する。
(ステップS1407)サーバ仮想化プログラム3200は、物理サーバ3000が送信したライトデータを受信する。
(ステップS1410)サーバ仮想化プログラム3200は、まず、サーバレベル仮想ボリューム情報16000及びストレージレベルプール情報15000を参照し、ライト要求のブロックアドレスを含むエリア(HL−AA)に、サーバレベルプール3210のエリア(HL−SA)が割当てられているかを確認する。
(ステップS1411)ステップS1410で割当済みと判定した場合は、サーバ仮想化プログラム3200は、サーバレベル仮想ボリューム情報16000及びサーバレベルプール情報15000を参照し、指定されたブロックアドレスを含むエリア(HL−AA)に割当てられたストレージレベル仮想ボリュームの識別子(例えばポート番号及びLUN)及び当該ボリュームのエリア(HL−SA)のブロックアドレスを取得する。
(ステップS1412)次に、サーバ仮想化プログラム3200は、ステップS1411で取得したストレージレベル仮想ボリュームの識別子と、当該ストレージレベル仮想ボリュームのブロックアドレスを指定したライト要求と、ライトデータを送信する。
(ステップS1413)サーバ仮想化プログラム3200は、ストレージシステム2000からのライトデータの書き込みが完了報告を受信すると、要求元の仮想マシンに、ライト要求の完了報告を送信して、処理を終了する。
(ステップS1414)一方、ステップS1410で未割当と判定した場合、サーバ仮想化プログラム3200は、サーバレベルプール情報15000を参照して、対応するサーバレベルプール3210に、未割当のエリア(HL−SA)があるか確認する。なお、本ステップは、未割当HL−SAの識別子リスト15008を参照することで実現できる。
(ステップS1415)ステップS1414で未割当のエリア(HL−SA)があると判定した場合は、サーバ仮想化プログラム3200は、ストレージレベルプール2220の未割当エリア(HL−SA)を選択し、選択したエリア(HL−SA)のボリューム及びブロックアドレスを取得し、ステップS1410にて未割当と判定されたエリア(HL−AA)に割当てる。なお、本ステップの選択したエリア(HL−SA)の選択は、例えば未割当HL−SAの識別子リスト15008の先頭から未割当エリア(HL−SA)を抜くことで可能である。また、図34及び図35で説明した方法で、選択したエリア(HL−SA)のボリュームの識別子とブロックアドレスを特定できる。
(ステップS1416)そして、サーバ仮想化プログラム3200は、サーバレベルプール情報15000及びサーバレベル仮想ボリューム情報16000を更新する。具体的には、サーバレベルプールの割当済み容量15003とサーバレベル仮想ボリュームの割当済み容量16003を、選択エリア(HL−SA)の容量分増やす。また、サーバレベルエリア変換情報16007のS1410のエリア(HL−AA)に対応した値を未割当から、先ほど取得したボリュームとブロックアドレスに更新する。
(ステップS1417)一方で、ステップS1414で未割当のエリア(HL−SA)が無い(または不足)と判断した場合は、サーバ仮想化プログラム3200は、サーバレベルプール3210の管理情報の状態を「プール容量不足」に変更する。
(ステップS1418)そして、サーバ仮想化プログラム3200は、I/O要求元の仮想マシン及び物理サーバ3000に、プール容量不足を通知して処理を終了する。
以上の処理によって、物理サーバ3000のデータのライト要求の処理が完了する。
なお、ステップS1412でストレージシステム2000からライト要求の失敗を通知された場合は、I/O要求元の仮想マシンにライト失敗の報告を返す。
<6.実施例1の処理ステップ>。
限られた物理ストレージ容量(例えばストレージレベルプールの容量)に対して、大きすぎる仮想ボリューム容量が設定されると、物理ストレージ容量の消費速度の予測がたて難くなり、物理ストレージ容量が枯渇する可能性が上がる。そのため、物理ストレージ容量に対する仮想ボリューム容量の比率(レバレッジ率)を一定以下に保つ必要がある。
実施例1の処理では、ストレージ管理者が、End−to−End容量レバレッジ率の閾値を管理サーバ1000に設定する。管理サーバ1000は、End−to−End容量レバレッジ率が閾値を超えた場合に、それを検出し、End−to−End容量レバレッジ率が閾値を超えていることを表示する。それにより、ストレージ管理者が、End−to−End容量レバレッジ率の高騰を把握することができる。
図14及び図15を参照して、実施例1で管理プログラムが行う処理について説明する。
<6−1.管理プログラムの行うEnd−to−End容量レバレッジ率算出表示処理>。
図14は、管理プログラム1200の行う処理のフローである。以下に個々のステップの詳細を示す。
(ステップS101)管理プログラム1200は、ストレージ管理者が管理プログラム1200の設定画面を用いて入力した初期設定情報1910を受信する。初期設定情報1910には、容量レバレッジ率の閾値と、容量情報を収集する間隔がある。なお、容量レバレッジ率の閾値は、物理ストレージ容量に対して、対応する仮想ボリューム容量の許容上限を表す値であり、ストレージ管理者が容量計画に基づき設定する。また、容量情報を収集する間隔は、管理プログラム1200が以降の処理を行う時間の間隔である。また、ストレージ管理モジュール1201は、ストレージ管理者からのストレージレベルプール2220を特定する情報を受信し、その情報に基づいて、End−to−End容量レバレッジ率の算出を行うストレージレベルプール識別子1401を決定する。そして、管理プログラム1200は、入力された容量レバレッジ率の閾値を、初期設定情報1910のEnd−to−End容量レバレッジ率閾値1911に、容量情報を収集する間隔を、情報収集間隔1912に格納する。また、ストレージ管理モジュール1201は、End−to−End容量レバレッジ率の算出対象に決定したストレージレベルプールの識別子を、End−to−End容量レバレッジ率情報1900のストレージレベルプール識別子1901に格納する。
(ステップS102)管理プログラム1200は、ストレージ管理者の設定した情報収集間隔1912が経過後、すなわち、容量情報を収集するタイミングが訪れたら、ストレージシステム2000の容量情報と、物理サーバ3000の容量情報を収集する。具体的には、例えば、管理プログラム1200のストレージ管理モジュール1201が、ストレージシステム2000の容量情報をストレージシステム2000から取得し、管理プログラム1200のサーバ管理モジュール1202が、物理サーバ3000の容量情報を収集する。なお、容量情報収集の具体的な方法は後に説明する。
(ステップS103)管理プログラム1200のレバレッジ管理モジュール1203が、取得した物理サーバ3000の容量情報と、ストレージ管理者が指定したストレージレベルプール2220の容量情報とに基づいて、End−to−End容量レバレッジ率算出処理を行う。なお、End−to−End容量レバレッジ率処理の詳細は、後ほど図20を用いて説明する。
(ステップS104)レバレッジ管理モジュール1203は、End−to−End容量レバレッジ率情報1900のEnd−to−End容量レバレッジ率の値1902が、初期設定情報1910のEnd−to−End容量レバレッジ率閾値1911より高いか判断する。判断の結果、高い場合は、ステップS105が実行され、高くない場合は、ステップS102が実行される。
(ステップS105)レバレッジ管理モジュール1203は、End−to−End容量レバレッジ率1902が高騰しており物理ストレージ容量枯渇の可能性が上がっていることを伝えるアラートを表示する。更に、レバレッジ管理モジュール1203は、管理プログラム1200の容量レバレッジ率表示画面1403にて、End−to−End容量レバレッジ率1902の値、ストレージレベルプール容量1402、ストレージレベル仮想ボリューム識別子1501、ストレージレベル仮想ボリューム容量1502、の一覧を表示する。なお、管理プログラム1200の画面表示で通知する情報は、ストレージレベルプール2220の物理容量枯渇の可能性が上がっていることを、ストレージ管理者に伝えることが出来る情報であれば、上記以外の情報を通知しても良い。
(ステップS106)一方、比較した結果、End−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911を超えていなかった場合、情報収集間隔1912が経過した後、ステップS102に戻る。
なお、上記の例では、End−to−End容量レバレッジ率1902を算出するにあたり、ストレージレベルプール容量1402と、サーバレベル仮想ボリューム容量1802を用いたが、それぞれのカラムの属するテーブルの、別の値が用いられても良い。
<6−1−1.容量情報収集処理>。
以下に、図14のステップS102で概要を述べた容量情報収集処理の詳細について示す。
(ステップA)ストレージ管理モジュール1201は、指定されたストレージレベルプール識別子1401に対応する、ストレージレベル仮想ボリュームの識別子をストレージシステム2000の有するストレージレベルプール情報11000から収集し、ストレージレベルプール構成情報1400の、対応ストレージレベル仮想ボリューム識別子1404に格納する。
(ステップB)ストレージ管理モジュール1201は、ポート−LUN対応情報1600を参照し、ステップAで収集した対応ストレージレベル仮想ボリューム識別子1404に割当てられた、ポート番号1601とLUN1602を取得する。
(ステップC)サーバ管理モジュール1202は、ストレージ管理モジュール1201がステップBにて取得したポート番号1601及びLUN1602が割当てられたストレージレベル仮想ボリューム2230に対応した、サーバレベルプール3210の識別子を物理サーバ3000のサーバレベルプール情報15000から収集し、サーバレベルプール構成情報1700のサーバレベルプール識別子1701に格納する。なお、ストレージレベル仮想ボリューム2230に対応したサーバレベルプール3210とは、前述のストレージレベル仮想ボリューム2230が属するように設定が行われたサーバレベルプール3210である事を指す。
(ステップD)サーバ管理モジュール1202は、収集したサーバレベルプール識別子1701に対応する全てのサーバレベル仮想ボリューム3220の識別子と容量を、物理サーバ3000のサーバレベルプール情報15000から収集する。サーバ管理モジュール1202は、サーバレベル仮想ボリューム3220の識別子を、サーバレベルプール構成情報1700の対応サーバレベル仮想ボリューム識別子1704と、サーバレベル仮想ボリューム構成情報1800のサーバレベル仮想ボリューム識別子1801に格納する。また、それぞれのサーバレベル仮想ボリューム容量をサーバレベル仮想ボリューム構成情報1800のサーバレベル仮想ボリューム容量1802に格納する。
<6−1−2.End−to−End容量レバレッジ率算出処理の詳細>。
図15は、図14のステップS103の処理のフローである。以下、フローに従って説明する。
(ステップS201)レバレッジ管理モジュール1203は、<6−1−1.容量情報収集処理>のステップS102の(ステップA)で指定したストレージレベルプール識別子1401に対応するストレージレベルプールの容量を、ストレージシステム2000に問い合わせる。ストレージシステム2000は、ストレージレベルプール情報11000のストレージレベルプール容量11002から、該当データを管理サーバに返す。レバレッジ管理モジュールは、受け取ったストレージレベルプール容量11002をストレージレベルプール構成情報1400のストレージレベルプール容量1402に格納する。
(ステップS202)レバレッジ管理モジュール1203は、ステップS102のステップDでサーバ管理モジュール1202が収集した、サーバレベル仮想ボリューム容量1802を合算し、その結果をサーバレベルプール構成情報1700の、対応サーバレベル仮想ボリューム総容量1705に格納する。
(ステップS203)レバレッジ管理モジュール1203は、ステップS202で算出した対応サーバレベル仮想ボリューム総容量1705の値に対する、ステップS201で取得したストレージレベルプール容量1402の比率を算出し、その結果をEnd−to−End容量レバレッジ率情報1900のEnd−to−End容量レバレッジ率1902に格納する。
なお、以上の処理では管理者が指定したストレージレベルプールに対して容量収集及びレバレッジ率の表示を行う前提であったが、管理サーバが管理する複数のストレージレベルプールについてレバレッジ率の表示を行っても良い。この場合の処理としては、管理サーバ1000が順に複数のストレージレベルプール2220の個々を「指定されたストレージレベルプール識別子1401」として指定し、図15及び図16で示した処理を繰り返せばよい。
<7.実施例2の概要>。
本発明の実施例2に係る計算機システムは、実施例1の計算機システムに加えて、End−to−End容量レバレッジ率1902が、ストレージ管理者の設定したEnd−to−End容量レバレッジ率閾値1911を超えており、物理ストレージ容量枯渇の危険性が上がっていると判断された場合に、End−to−End容量レバレッジ率1902が高騰する原因となっている個所を特定し、特定した個所の情報をストレージ管理者に管理プログラムの管理画面によって表示する。
また、物理ストレージ容量枯渇を防ぐため、管理プログラム1200が自動的にストレージシステム2000の構成を変更する処理を行うことによりEnd−to−End容量レバレッジ率閾値1911を超えない正常な値に収める。
また、コールバックオブジェクトを有するサーバ仮想化プログラム3200にて、設定操作を受け付けた場合に、その操作が中断される(以下に説明するようなコールバックオブジェクトは、サーバ仮想化プログラム3200に代えて又は加えて、ストレージ制御プログラム2500が有しても良い)。そして、受け付けた操作を実行した後のEnd−to−End容量レバレッジ率1902がシミュレートされ、End−to−End容量レバレッジ率1902がストレージ管理者の設定したEnd−to−End容量レバレッジ率閾値1911を超えると判断された場合、管理プログラム1200が自動的にストレージシステム2000の構成変更処理を行う。これにより、サーバ仮想化プログラム3200での設定操作実行後も、End−to−End容量レバレッジ率1902をストレージ管理者の設定したEnd−to−End容量レバレッジ率閾値1911を超えないような構成とすることができる。管理プログラム1200による上記の処理が成功した後に、サーバ仮想化プログラム3200に成功が通知され、サーバ仮想化プログラム3200は、その通知を受けて、受け付けた設定操作を再開する。一方、管理プログラム1200による、ストレージシステム2000の構成変更処理が実施された後も、End−to−End容量レバレッジ率1902がEnd−to−End容量レバレッジ率閾値1911以下に収まらないと判断された場合は、仮想管理プログラム1200に、設定操作による物理ストレージ容量枯渇の危険性が高いことが通知され、設定操作の中止推奨が通知される。
<7−1.原因個所特定処理>。
図27は、原因個所特定処理のフローである。
実施例1の<6−1.End−to−End容量レバレッジ率1902算出処理>のステップS105で算出したEnd−to−End容量レバレッジ率1902が、ストレージ管理者の設定したEnd−to−End容量レバレッジ率閾値1911を超えており、物理ストレージ容量枯渇の可能性が高いと判断された場合に、End−to−End容量レバレッジ率1902高騰の原因となっている個所を表す情報が、ストレージ管理者に画面表示により通知される。
(ステップS401)管理プログラム1200は、End−to−End容量レバレッジ率が高騰しているストレージレベルプール2220に対応しているストレージレベル仮想ボリュームの識別子をストレージシステム2000に問い合わせる。ストレージシステム2000は、その問合せを受けて、ストレージレベルプール情報11000のストレージレベル仮想ボリューム識別子11005を返す。管理プログラム1200は、受信したストレージレベル仮想ボリューム2230の識別子一覧を、対応ストレージレベル仮想ボリューム識別子1404に格納する。
(ステップS402)管理プログラム1200は、取得したストレージレベル仮想ボリューム識別子1404を持つ各ストレージレベル仮想ボリューム2230に対応しているサーバレベルプール識別子1701を取得する。具体的には、例えば、管理プログラム1200は、ポート−LUN対応情報1600を参照し、内部ボリュームIDとして登録してあるストレージレベル仮想ボリューム2230の識別子に対応するLUN1603を特定する。そして、管理プログラム1200は、物理サーバ3000にLUN1603に対応するサーバレベルプール3210の識別子を問い合わせる。物理サーバ3000のサーバ仮想化プログラム3200は、これを受けて、サーバレベルプール情報15000から、問い合わせがあったLUN1603を構成ストレージポート番号・LUN1707から特定し、対応するサーバレベルプール識別子15001を管理サーバ1000に返す。管理サーバ1000の管理プログラム1200は、受信したサーバレベルプール識別子15001をサーバレベルプール構成情報1700のサーバレベルプール識別子1701に格納する。
(ステップS403)管理プログラム1200は、ステップS402で取得したサーバレベルプール識別子1701に対応するサーバレベル仮想ボリューム3210の識別子を、物理サーバ3000に問い合わせる。物理サーバ3000のサーバ仮想化プログラム3200は、これを受けて、サーバレベルプール情報15000の該当サーバレベルプール識別子1701に対応するサーバレベル仮想ボリューム識別子15004を管理サーバ1000に返す。管理サーバ1000の管理プログラム1200は、受信したサーバレベル仮想ボリューム識別子15004を、サーバレベルプール構成情報1700の、対応サーバレベル仮想ボリューム識別子1704に格納する。
(ステップS404)管理プログラム1200は、ステップS403で取得した各対応サーバレベル仮想ボリューム識別子1704を持つサーバレベル仮想ボリューム3220について、サーバレベル仮想ボリューム容量1802のうち、サーバレベルプール3210の記憶領域にマッピングされている容量を物理サーバ3000に問い合わせる。物理サーバ3000のサーバ仮想化プログラム3200は、これを受けて、サーバレベル仮想ボリューム情報16000を参照し、該当サーバレベル仮想ボリューム識別子1704に対応するサーバレベル仮想ボリューム割当済容量16003を管理サーバ1000に返す。管理サーバ1000の管理プログラム1200は、受信したサーバレベル仮想ボリューム割当済容量16003を、サーバレベル仮想ボリューム構成情報1800のサーバレベル仮想ボリューム割当済容量1803に格納する。更に、管理プログラム1200は、サーバレベル仮想ボリューム容量1802の値からサーバレベル仮想ボリューム割当済容量1803の値を引き、その結果をサーバレベル仮想ボリューム未割当容量1804に格納する。
(ステップS405)管理プログラム1200は、ステップS404で算出した、各サーバレベル仮想ボリューム識別子1801に対応する各サーバレベル仮想ボリューム未割当容量1804を比較し、そのなかで最もサーバレベル仮想ボリューム未割当容量1804の値が高いサーバレベル仮想ボリューム3220を、End−to−End容量レバレッジ率1902高騰の原因個所として、該当サーバレベル仮想ボリューム3220の識別子、容量、未割当容量等の情報を表す画面が表示される。その画面の一例を、図37に示す。図37の例によれば、仮想マシン(VM4)にマウントされているサーバレベル仮想ボリュームが原因個所であることの強調表示(例えば、太枠楕円で囲んだ表示)が行われる。なお、原因個所の表示の仕方は、図37の例に限られず、他の方法で表示されても良い。
<7−2.通常のストレージ構成変更処理>。
図16は、ストレージ構成変更処理のフローである。本処理は、原因個所特定処理を実行した後に実行される。以下に各ステップの説明を記す。
(ステップS301)管理プログラム1200は、ストレージレベルプール構成情報1400のプール構成ボリューム識別子1406に登録されていないボリューム2210、つまりストレージレベルプール2220に属していない余剰なボリューム2210がストレージシステム2000内に存在するかチェックする。
(ステップS302)管理プログラム1200は、ストレージシステム2000内に、ストレージレベルプール2220に属していない余剰なボリューム2210が存在した場合、自動的に、実施例1の<6−1−1.容量情報収集処理>のステップS102の(ステップA)で指定したストレージレベルプール識別子1401を持つストレージレベルプール2220に、余剰なボリューム2210を新たに属するように設定することによって、ストレージレベルプール2220に容量を追加する。ストレージレベルプール2220に追加する容量は、End−to−End容量レバレッジ率1902がEnd−to−End容量レバレッジ率閾値1911以下に収まるような値に管理プログラム1200が決定する。なお、ストレージレベルプール2220に追加する容量は、ストレージ管理者が物理サーバ3000の管理画面にて設定してもよい。
(ステップS303)ステップS302を実行した結果、End−to−End容量レバレッジ率1902が、ストレージ管理者の設定したEnd−to−End容量レバレッジ率閾値1911以下に収まった場合は、ステップS308に進む。一方で、End−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まらなかった場合は、ステップS304に進む。
(ステップS304)ステップS303でEnd−to−End容量レバレッジ率1902がEnd−to−End容量レバレッジ率閾値1911以下に収まらなかった場合、管理プログラム1200は、ストレージシステム2000内に該当ストレージレベルプール2220以外のストレージレベルプール2220が存在するかをストレージシステム2000に問い合わせる。存在する場合は、管理プログラム1200は、問い合わせた該当ストレージレベルプール2220以外のストレージレベルプール2220の識別子を、ストレージシステム2000に問い合わせる。ストレージシステム2000のコマンド制御モジュール2503は、ストレージレベルプール情報11000を参照し、該当ストレージレベルプール2220の識別子以外のストレージレベルプール識別子11001を管理サーバ1000に返す。管理サーバ1000の管理プログラム1200は受信したストレージレベルプール識別子11001をストレージレベルプール構成情報1400のストレージレベルプール識別子1401に格納し、ステップS305に進む。存在しない場合は、ステップS308に進む。
(ステップS305)管理プログラム1200は、End−to−End容量レバレッジ率情報1900を参照し、End−to−End容量レバレッジ率1902の低い(例えば最も低い)ストレージレベルプール識別子1401を指定する。そして、該当ストレージレベルプール2220のEnd−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まるように、該当ストレージレベルプール2220とステップS305で選択した、ストレージレベルプール2220との間で、サーバレベル仮想ボリューム3220のイメージファイルをマイグレーションする。なお、このときマイグレーションするサーバレベル仮想ボリューム3220は、<7−1.原因個所特定処理>のステップS405でEnd−to−End容量レバレッジ率高騰の原因個所として特定したサーバレベル仮想ボリューム3220が指定される。その原因箇所が、自動で、マイグレーション対象として指定されても良い。原因箇所としてのサーバレベル仮想ボリューム3220が、別のストレージレベルプールに対応するサーバレベル仮想ボリュームにマイグレーションされれば、マイグレーション元のストレージレベルプールに対応したサーバレベル仮想ボリュームの総容量が減るので、End−to−End容量レバレッジ率が下がる。この場合、上記別のストレージレベルプールは、マイグレーション対象のサーバレベル仮想ボリューム3220がマイグレーションされても、その別のストレージレベルプールについてのEnd−to−End容量レバレッジ率が閾値を超えないことが望ましい。具体的には、例えば、別のストレージレベルプールに対応したサーバレベル仮想ボリュームの総容量に、マイグレーション対象のサーバレベル仮想ボリュームの容量が加算されても、別のストレージレベルプールについてのEnd−to−End容量レバレッジ率が閾値を超えないかどうか判定され、超えないと判定された場合に、その別のストレージレベルプールがマイグレーション先に決定されて良い。
(ステップS306)ステップS305を実行した結果、該当ストレージレベルプール2220のEnd−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まったら、ステップS308に進む。一方、該当ストレージレベルプール2220のEnd−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まらなかったら、ステップS307に進む。
(ステップS307)ステップS302、ステップS305を実行してもEnd−to−End容量レバレッジ率1902がストレージ管理者の設定したEnd−to−End容量レバレッジ率閾値1911以下に収まらなかった旨が通知される。
(ステップS308)ステップS302もしくはステップS305にて、End−to−End容量レバレッジ率1902がEnd−to−End容量レバレッジ率閾値1911以下に収まった場合、ストレージ管理者にその旨が通知される。
<7−3.コールバックインターフェースを用いた管理プログラムの行う処理>。
図17は、コールバックインターフェースを用いた管理プログラムの行う処理を示すフローである。
(ステップS501)管理プログラム1200は、ストレージ管理者が管理プログラム1200の設定画面を用いて入力した初期設定情報1910を受信する。初期設定情報1910には、End−to−End容量レバレッジ率の閾値が入力される。そして、管理プログラム1200は、入力された閾値を、初期設定情報1910のEnd−to−End容量レバレッジ率閾値1911に格納する。
(ステップS502)次に、コールバック処理が行われる。図19を参照して、コールバック処理の詳細を説明する。
図19は、コールバック処理のフローである。
(ステップS601)サーバ仮想化プログラム3200は、管理プログラム1200のアドレスを登録する。
(ステップS602)サーバ仮想化プログラム3200は、設定操作イベント受付時に、管理プログラム1200にコールバックオブジェクトを送信する。コールバックオブジェクトには、設定操作実行前のサーバレベル仮想ボリューム3220の総容量と、設定操作内容が含まれている。
(ステップS603)管理プログラム1200は、サーバ仮想化プログラム3200からコールバックオブジェクトが送られてくるのを待ち、サーバ仮想化プログラム3200からコールバックオブジェクトが送られて来たら、これを受信する。
(ステップS604)管理プログラム1200は、受信したコールバックオブジェクトの持つ情報を基に、シミュレーションにより、サーバ仮想化プログラム3200にて受け付けた操作を実行した後の、サーバレベル仮想ボリューム3220の総容量を算出する。
(ステップS605)管理プログラム1200は、設定操作に係るサーバレベル仮想ボリューム3220に対応する、ストレージレベルプール2220を特定する。具体的なステップは以下の通りである。
(ステップA)サーバ管理モジュール1202が、設定操作に係るサーバレベル仮想ボリュームの識別子1801に対応する、サーバレベルプール3210の識別子を物理サーバ3000に問い合わせる。物理サーバ3000のサーバ仮想化プログラム3200は、これを受けて、サーバレベル仮想ボリューム情報16000を参照し、サーバレベルプール識別子16004を返す。管理プログラム1200は、受信したサーバレベルプール識別子16004を、サーバレベル仮想ボリューム構成情報1800の対応サーバレベル仮想ボリューム識別子1806に格納する。
(ステップB)次に、管理プログラム1200は、サーバレベルプール構成情報1700を参照し、ステップAでの対応サーバレベルプール識別子1806と同じ識別子を持つ、サーバレベルプール識別子1701を特定する。そして、管理プログラム1200は、特定したサーバレベルプール3210に対応する構成ストレージポート番号・LUN1707を物理サーバ3000に問い合わせる。物理サーバ3000のサーバ仮想化プログラム3200は、これを受けて、サーバレベルプール情報15000を参照し、構成ストレージポート番号・LUN15006を管理サーバ1000に返す。管理サーバ1000の管理プログラム1200は、受信した、構成ストレージポート番号・LUN15006をサーバレベルプール構成情報1700の構成ストレージポート・LUN1707に格納する。
(ステップC)次に、管理プログラム1200は、ポート−LUN対応情報1600を参照し、ステップBで取得した構成ストレージポート番号・LUN1707に対応する内部ボリュームID1601を取得する。
(ステップD)次に、管理プログラム1200は、ストレージレベル仮想ボリューム構成情報1500を参照し、内部ボリュームID1601と同じ識別子を持つ、ストレージレベル仮想ボリューム2230を特定する。そして、管理プログラム1200は、特定したストレージレベル仮想ボリューム2230に対応する、対応ストレージレベルプール識別子1504を取得する。
さて、図17の説明に戻る。
(ステップS503)管理プログラム1200のレバレッジ管理モジュール1203が、コールバック処理によって得たサーバレベル仮想ボリューム3220の総容量と、特定したストレージレベルプール2220の容量情報を用い、End−to−End容量レバレッジ率算出処理を行う。なお、End−to−End容量レバレッジ率算出処理の詳細は後ほど図20を用いて説明する。
(ステップS504)レバレッジ管理モジュール1203は、End−to−End容量レバレッジ率情報1900のEnd−to−End容量レバレッジ率1902の値が、初期設定情報1910のEnd−to−End容量レバレッジ率閾値1911より高いか判断する。判断の結果、高い場合は、ステップS505を実行し、高くない場合はステップS502を実行する。
(ステップS505)レバレッジ管理モジュール1203は、End−to−End容量レバレッジ率1902が高騰しており物理ストレージ容量枯渇の可能性が上がっていることを伝えるアラートを表示する。更に、レバレッジ管理モジュール1203は、管理プログラム1200の容量レバレッジ率表示画面1403にて、End−to−End容量レバレッジ率1902の値、ストレージレベルプール容量1402、ストレージレベル仮想ボリューム識別子1501、ストレージレベル仮想ボリューム容量1502、の一覧をストレージ管理者に表示する。なお、管理プログラム1200の画面表示で通知する情報は、ストレージレベルプール2220の物理容量枯渇の可能性が上がっていることを、ストレージ管理者に伝えることが出来る情報であれば、上記以外の情報を通知しても良い。
なお、上記の例では、End−to−End容量レバレッジ率1902を算出するにあたり、ストレージレベルプール容量1402と、サーバレベル仮想ボリューム容量1802を用いたが、それぞれのカラムの属するテーブルの、別の値を用いても良い。
<7−3−1.コールバック処理でのEnd−to−End容量レバレッジ率算出処理の詳細>。
図20は、図17のステップS503の処理のフローである。
(ステップS801)レバレッジ管理モジュール1203は、ストレージレベルプール構成情報1400を参照し、ステップS605で特定したストレージレベルプール識別子1401に対応するストレージレベルプール容量1402を取得する。
(ステップ802)レバレッジ管理モジュール1203は、ステップS604で算出したサーバレベル仮想ボリューム3220の総容量に対する、<7−3.コールバックインターフェースを用いた管理プログラムの行う処理>のステップS201で取得したストレージレベルプール容量1402の比率を算出し、その結果をEnd−to−End容量レバレッジ率情報1900のEnd−to−End容量レバレッジ率1902に格納する。
なお、以上の処理では、ストレージ管理者が指定したストレージレベルプール2220に対して容量収集及びEnd−to−Endレバレッジ率の表示を行う前提であったが、管理サーバ1000が管理する複数のストレージレベルプール2220についてレバレッジ率の表示を行っても良い。この場合の処理としては、管理サーバ1000が順に複数のストレージレベルプール2220の個々を「指定されたストレージレベルプール識別子1401」として指定し、図19及び図20で示した処理を繰り返せばよい。
<7−4.コールバック処理でのストレージ構成変更処理>。
図18は、管理プログラム1200がコールバックインターフェースを備えている場合のストレージ構成変更処理のフローである。本フローは、図14のステップから実行される。
(ステップS701)管理プログラム1200は、ストレージレベルプール構成情報1400のプール構成ボリューム識別子1406に登録されていないボリューム2210、つまりストレージレベルプール2220に属していない余剰ボリューム2210がストレージシステム2000内に存在するかチェックする。
(ステップS702)管理プログラム1200は、ストレージシステム2000内に、ストレージレベルプール2220に属していない余剰ボリューム2210が存在した場合、自動的に、<7−3.コールバックインターフェースを用いた管理プログラムの行う処理>のステップS201で取得したストレージレベルプール識別子1401を持つストレージレベルプール2220に余剰ボリューム2210を新たに属するように設定することによって、ストレージレベルプール2220に容量を追加する。ストレージレベルプール2220に追加する容量は、End−to−End容量レバレッジ率1902がEnd−to−End容量レバレッジ率閾値1911以下に収まるような値に管理プログラム1200が決定する。なお、ストレージレベルプール2220に追加する容量は、ストレージ管理者が物理サーバ3000の管理画面にて設定してもよい。
(ステップS703)ステップS302を実行した結果、End−to−End容量レバレッジ率1902が、ストレージ管理者の設定したEnd−to−End容量レバレッジ率閾値1911以下に収まった場合はステップS308に進む。一方で、End−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まらなかった場合は、ステップS304に進む。
(ステップS704)ステップS703でEnd−to−End容量レバレッジ率1902がEnd−to−End容量レバレッジ率閾値1911以下に収まらなかった場合、管理プログラム1200は、ストレージレベルプール構成情報1400を参照し、ストレージシステム2000内に該当ストレージレベルプール2220以外のストレージレベルプール2220が存在するかをチェックする。存在する場合は、ステップS705に進む。存在しない場合は、ステップS708に進む。
(ステップS705)管理プログラム1200は、End−to−End容量レバレッジ率情報1900を参照し、End−to−End容量レバレッジ率1902の低い(例えば最も低い)ストレージレベルプール識別子1401を指定する。そして、該当ストレージレベルプール2220のEnd−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まるように、該当ストレージレベルプール2220とステップS705で選択した、ストレージレベルプール2220との間で、サーバレベル仮想ボリューム3220のイメージファイルをマイグレーションする。なお、このときマイグレーションするサーバレベル仮想ボリューム3220は、管理プログラム1200が、サーバレベル仮想ボリューム構成情報1800を参照し、サーバレベル仮想ボリューム未割当容量1804の値が大きいものを指定する。
(ステップS706)ステップS305を実行した結果、該当ストレージレベルプール2220のEnd−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まったら、ステップS708に進む。一方、該当ストレージレベルプール2220のEnd−to−End容量レバレッジ率1902が、End−to−End容量レバレッジ率閾値1911以下に収まらなかったら、ステップS707に進む。
(ステップS707)管理プログラム1200は、サーバ仮想化プログラム3200に、行われようとしている設定操作を実行することによって、ストレージ容量枯渇の危険性が高まるため、設定操作の中止を推奨する旨を通知。サーバ仮想化プログラム3200は、これを受けて、設定操作を実行するか否かをサーバ管理者に再確認する。
(ステップS708)管理プログラム1200は、サーバ仮想化プログラム3200に、行われようとしている設定操作は安全であることを通知。サーバ仮想化プログラム3200は、これを受けて中断していた設定操作を再開する。
(ステップS709)管理プログラム1200は、ストレージ管理者に、ストレージ容量枯渇の可能性が高いことを通知する。
(ステップS710)管理プログラム1200は、ストレージ管理者に、高騰したストレージ容量枯渇の可能性が低減されたことを通知し、構成変更を行ったストレージレベルプール2220等の容量情報を表示する。
以上、本発明の幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、管理サーバ1000は、End−to−End容量レバレッジ率を表示することなく(及び/又は、他種の管理情報を表示すること無く)、End−to−End容量レバレッジ率が閾値以下になるような処理(例えば、ストレージレベルプールの容量の追加、或いは、サーバレベル仮想ボリュームのマイグレーション)を行っても良い。
また、例えば、管理サーバ1000は、図38に示すように、ストレージレベルプールのEnd−to−End容量レバレッジ率と、そのストレージレベルプールの空き容量率とを並べて表示した画面を表示してもよい。なお、空き容量率は、例えば、ストレージレベルプールの容量に対する、ストレージレベルプールの未割当て容量(ストレージレベルプールの容量とストレージレベルプール割当済容量との差分)の比率である。
さらに、例えば、図示しないが、管理サーバ1000は、ストレージレベルプールの空き容量率の変化(各時点での空き容量率)を管理し、その変化を表す情報を表示したり、その変化に基づいて、そのストレージレベルプールについての推奨のEnd−to−End容量レバレッジ率閾値を計算して表示したりしてもよい。
また、End−to−End容量レバレッジ率閾値は、ストレージレベルプール毎に異なっていてもよい。具体的には、例えば、ストレージレベルプール毎に、ストレージレベルプールの空き容量率の変化(空き容量率が減るスピード)に基づいて設定されたEnd−to−End容量レバレッジ率閾値が用意されてもよい。また、閾値は、レバレッジ率の種類別に用意されてもよい。
<8.実施例3の概要>。
本発明の実施例3に係る計算機システムは、仮想マシンの削除に伴うストレージシステムの容量管理、特に不要となったボリュームのエリア(LL−SA)を開放する事に関する。なお、仮想マシンの削除は以下に示すように実施例1及び2のEnd−to−End容量レバレッジ率に関連した理由で行われるほか、End−to−End容量レバレッジ率とは関係ない理由でも行われる。なお、以下は必ず全てが成立する必要は無い。
End−to−End容量レバレッジ率と関連した仮想マシンの削除理由:
(理由1)高くなりすぎたEnd−to−End容量レバレッジ率を低下させるため方策として、過去に定義した仮想マシンを削除する。
End−to−End容量レバレッジ率と関連しない仮想マシンの削除理由:
(理由2)ストレージレベルプール及びサーバレベルプールの未割当エリアを増加させるために、不要と判断した仮想マシンを削除する。
(理由3)仮想マシン上で行っていたアプリケーション処理を、信頼性、処理性能向上等の理由で物理サーバにて行わせることになり、それに伴って仮想マシンは不要となった。
(理由4)仮想マシンを使用していた利用者の転勤または退職、または仮想マシンの利用契約満了、等の理由で仮想マシンを使用しなくなった。
なお、当然ながら仮想マシンを削除する理由は他にもある。
図41は、仮想マシン3201、サーバレベル仮想ボリューム(HL−VVOL)3220、サーバレベルプール(HLP)3210、ストレージレベル仮想ボリューム(LL−VVOL)2230、ストレージレベルプール(LLP)2220、とボリューム(VOL)2210の対応例を示した概要図である。なお、サーバ認識LU3211はストレージレベル仮想ボリューム2230に相当するが、サーバ管理プログラム3200側のHL−SAサイズ長15007(サーバレベルプール情報15000の情報)と、ストレージシステム側のLL−SAサイズ長11007(ストレージレベルプール情報11000の情報)が異なることを示すために記した。
なお、図41の例は以下を例示している。
* ボリューム(VOL1)2210はLL−SAサイズ長11007と同じ容量のボリュームで1つ分のエリア(LL−SA)を含み、ボリューム(VOL2)2210はLL−SAサイズ長11007の2倍の容量を持つボリュームで、2つ分のエリア(LL−SA)を含む。
* ボリューム(VOL1)2210とボリューム(VOL2)2210はストレージレベルプール2220に含まれ、当該ストレージレベルプールを用いてストレージレベル仮想化ボリューム2230であるLL−VVOL1乃至3が定義されている。
* ストレージレベル仮想化ボリューム(LL−VVOL1)2230はLL−SAサイズ長11007の2倍の容量を持つ仮想ボリュームとして物理サーバに提供される(つまり2つのエリア(LL−AA)を含む)。
* ある時点では、ストレージレベル仮想化ボリューム(LL−VVOL1)2230の1つめのエリア(LL−AA)は、ボリューム(VOL1)2210のエリア(LL−SA)が割当てられ、2つめのエリア(LL−AA)はボリューム(VOL2)2210のあるエリア(LL−SA)が割当てられている。
* サーバ仮想化プログラム3200は、図中の3211が示すとおり、ストレージレベル仮想化ボリューム(LL−VVOL1)をサーバレベルプール3210に含め、さらにストレージレベル仮想化ボリューム(LL−VVOL1)をHL−SAサイズ長15007単位で分割して管理している。なお、HL−SAサイズ長を4倍した容量がストレージレベル仮想化ボリューム(LL−VVOL1)2230の容量である。
* サーバレベル仮想化ボリューム(HL−VVOL1)3220はHL−SAサイズ長15007の3倍の容量を持つ仮想ボリュームとして仮想マシン(VM1)3201に提供される(つまり3つのエリア(HL−AA)を含む)。
* サーバレベル仮想化ボリューム(HL−VVOL2)3220はHL−SAサイズ長15007の3倍の容量を持つ仮想ボリュームとして仮想マシン(VM2)3201に提供される(つまり3つのエリア(HL−AA)を含む)。
* ある時点では、サーバレベル仮想化ボリューム(HL−VVOL1)3220の全てのエリア(HL−AA)がストレージレベル仮想化ボリュームのエリア(HL−SA)を割当てられている。
* ある時点では、サーバレベル仮想化ボリューム(HL−VVOL2)3220の1つのエリア(HL−AA)がストレージレベル仮想化ボリュームのエリア(HL−SA)を割当てられている。
図42は、サーバ仮想化プログラム3200が仮想サーバ(VM1)3201を指定したVM削除要求を受信した後の計算機システムの概要を示した図である。
サーバ仮想化プログラム3200は、VM削除要求に応じて、仮想マシン(VM1)3201を構成する情報(例えば定義ファイル、メモリイメージ等)を消去し、さらにサーバレベル仮想ボリューム(HL−VVOL1)に割当てられたエリア(HL−SA)を開放する。なお、サーバ仮想化プログラム3200によるエリア(HL−SA)の開放とは、サーバレベルプール情報15000の未割当HL−SAの識別子リストに当該エリア(HL−SA)の識別子を追加することであり、これはその後他の仮想マシンによってこれらのエリア(HL−SA)が再割当可能となることを指す。
ストレージシステム2000のストレージ制御プログラム2050は、開放されたエリア(HL−SA)に対応するストレージレベル仮想ボリューム2230(LL−VVOL1)のエリア(LL−AA)を特定し、特定したエリア(LL−AA)に割当てられたエリア(LL−SA)を開放する。なお、ストレージ制御プログラム2050によるエリア(LL−SA)の開放とは、ストレージレベルプール情報11000の未割当LL−SAの識別子リストに当該エリア(LL−SA)の識別子を追加することであり、これはその後他の仮想マシンによってこれらのエリア(LL−SA)が再割当可能となることを指す。
しかし、サーバ仮想化プログラム3200のHL−SAエリア長と、ストレージ制御プログラム2050のLL−SAエリア長が一致しない場合は、図43に示すように、サーバ仮想化プログラム3200が開放したエリア(HL−SA)容量だけボリューム2210のエリア(LL−SA)が開放されるとは限らない。なお、サーバ仮想化プログラム3200のHL−SAエリア長と、ストレージ制御プログラム2050のLL−SAエリア長が一致しない理由の一例を以下に示す。
* 一台の物理サーバが提供するサーバレベル仮想ボリューム3220の容量よりも大容量のストレージレベル仮想ボリューム2230を提供することが多く、またストレージシステムにアクセスする物理サーバの数も多い。したがって、LL−SAエリア長は結果的にHL−SAエリア長より大きな値とすることでストレージレベルプール情報11000(特に未割当LL−SAの識別子リスト11008)やストレージレベル仮想ボリューム情報12000(特にLL−エリア変換情報12007)の情報量を軽減している。
図43は、サーバ仮想化プログラム3200が仮想マシンの削除で開放したエリア(HL−SA)と、ストレージ制御プログラム2050が開放したエリア(LL−SA)との差異について示した図である。つまり、ボリューム2210のエリア(LL−SA)の開放は当該エリア(LL−SA)を用いている全てのエリア(HLーSA)がサーバ仮想化プログラム3200で開放された後である必要があるということである。なお、その前に図示のボリューム(VOL2)のエリア(LL−SA)を開放すると、未開放のストレージレベル仮想ボリューム(HL−VVOL2)に割当てられたエリア(HL−SA)も開放されてしまう。
<8−1. 仮想マシン削除処理>。
次に、図44を用いて、本発明の実施例3の仮想マシン削除に伴うエリア(LL−SA)の開放処理について以下に説明する。
<8−1a. 削除要求に応じた処理>
(ステップS44001)サーバ仮想化プログラム3200は、管理サーバ1000又は他の計算機からVM削除要求を受信する。なお、VM削除要求は削除対象となる仮想マシンの識別子を一つ以上含む。
(ステップS44002)サーバ仮想化プログラム3200は、サーバレベルプール情報15000を参照して、削除対象の仮想マシンに対応するサーバレベル仮想ボリュームを特定する。さらに、当該プログラムは、サーバレベル仮想ボリューム情報16000を参照して、特定したサーバレベル仮想ボリュームに割当てられたエリア(HL−SA)を特定する。なお、削除対象の仮想マシンの設定情報やメモリイメージを含むエリア(HL−SA)を特定したエリア(HL−SA)と扱ってもよい。また、他の仮想マシンと共有しているエリア(HL−SA)は特定したエリア(HL−SA)としなくてもよい。
(ステップS44003)サーバ仮想化プログラム3200は、ステップS44002で特定したエリア(HL−SA)を未割当とし、ステップS44002で特定したサーバレベル仮想ボリュームを削除する。具体的な情報操作は以下の通りである。
* 特定したエリア(HL−SA)をサーバレベルプール情報15000の未割当HL−SAの識別子リスト15008に追加し、追加したエリア(HL−SA)の容量分、サーバレベルプール割当済容量15003を減算する。
* 特定したサーバレベル仮想ボリュームの容量分、サーバレベルプール情報15000のサーバレベル仮想ボリューム総容量を減算する(この計算でEnd−to−Endレバレッジ率が変化することはいうまでも無い)。
* 特定したサーバレベル仮想ボリュームの情報をサーバレベル仮想ボリューム情報16000から削除する。
なお、これら処理以外にも一般的な仮想マシンの削除処理を行っても良い。
(ステップS44004)サーバ仮想化プログラム3200は、ステップS44002で特定したエリア(HL−SA)のSCSIアドレス(LUN及びブロックアドレス及びブロック長)を特定し、特定したSCSIアドレスを指定した領域開放指示をストレージシステム2000に送信する。なお、領域開放指示方法としては以下の形態が考えられる。第一に、サーバ仮想化プログラム3200の指示を管理サーバ1000が仲介してストレージシステム2000に発行する形態である。具体的には、サーバ仮想化プログラム3200が、特定したエリア(HL−SA)のSCSIアドレスを含むAPI(Application Programming Interface)をLAN5010を介して管理サーバ1000に発行する。次に、管理サーバ1000は、受領したSCSIアドレスを含むAPIをLAN5010を介してストレージシステム2000に発行する。第二に、サーバ仮想化プログラム3200が、特定したエリア(HL−SA)のSCSIアドレスを含むAPIをLAN5010を介してストレージシステム2000に直接発行する形態である。第三に、サーバ仮想化プログラム3200が、特定したエリア(HL−SA)のSCSIアドレスを含むAPIをSAN5000を介してストレージシステム2000に直接発行する形態である。APIの発行先は、APIを受領するための特別なLL−VOLであってもよいし、領域開放対象のLL−VOLであってもよい。また、APIは、連続したデータを繰り返し書き込むSCSIコマンドであるWRITE SAMEコマンドであってもよいし、不要領域を通知するSCSIコマンドであるUNMAPコマンドであってもよい。
(ステップS44101)ストレージ制御プログラム2050は、領域開放指示を受信する。
(ステップS44102)ストレージ制御プログラム2050は、領域開放指示が特定したSCSIアドレスに対応するストレージレベル仮想ボリューム上のブロックアドレス範囲を特定する。そして、当該プログラムは特定したブロックアドレス範囲のデータをクリア値(例えばゼロ)に変更する。なお、クリア値の変更処理は特定したブロックアドレス範囲に対するストレージデータライト処理と同様である。
(ステップS44103)ストレージ制御プログラム2050は、ステップS44102で特定したストレージレベル仮想ボリューム上のブロックアドレス範囲に完全包含されるエリア(LL−AA)について、割当てられたボリュームのエリア(LL−SA)を特定する。なお、特定にあたってはストレージレベル仮想ボリューム情報12000及びストレージレベルプール情報を参照する。
(ステップS44104)ストレージ制御プログラム2050は、ステップS44103で特定したボリュームのエリア(LL−SA)を開放する。具体的な情報操作は以下の通りである。
* 特定したエリア(LL−SA)をストレージレベルプール情報11000の未割当LL−SAの識別子リスト11008に追加し、追加したエリア(LL−SA)の容量分、ストレージレベルプール割当済容量11003を減算する。
* 特定したエリア(LL−SA)が割当てられていたエリア(LL−AA)についてストレージレベル仮想ボリューム情報12000のLL−エリア変換情報12007のリスト中の値を「未割当」に更新する。
ストレージ制御プログラム2050は、以上の処理の終了を待って、物理サーバ3000に領域開放指示の完了報告を送信する。そして、サーバ仮想化プログラムは領域開放指示の完了報告を受信し、仮想マシンの削除処理を終える。なお、領域開放指示で指定したアドレスはSCSIアドレス以外でもよく、また、ステップS44103の完全包含されたエリア(LL−AA)についてのクリア値での更新を省略してもよい。
<8−1b. 繰り返し実行する処理>。
ストレージ制御プログラム2050は、以下のステップS44201を繰り返し実行することで、ステップS44102で特定したブロックアドレス範囲に含まれるが、ステップS44103で特定したエリア(LL−AA)に含まれないブロックアドレス範囲を含むエリア(LL−AA)の割当開放を試みる。
(ステップS44201)ストレージ制御プログラム2050は、ストレージレベル仮想ボリュームのエリア(LL−AA)に割当てられたエリア(LL−SA)で、データが全てクリア値であるエリア(LL−SA)を検索し、検索できた場合は見つけたエリア(LL−SA)を割当てられたエリア(LL−AA)から開放する。なお、開放に当たっての情報操作はステップS44104と同様である。
ところで、エリア(LL−SA)のサイズ長が大きい場合、個々のエリア(LL−SA)が全てクリア値であることを確認する処理は相応の時間を必要とし、確認中にエリア(LL−SA)のデータが更新されることもある。その対策として、以下を行っても良い。
(対策1):LL−エリア変換情報12007のリスト中の値に「クリア値確認中」を意味する追加フラグを設定できるようにする。
(対策2):ステップS44201のクリア値の確認前に、確認中エリア(LL−SA)が割りあたったエリア(LL−AA)についてのLL−エリア変換情報のリスト中の対応箇所の「クリア値確認中」のフラグを立てる。
(対策3):ステップS44201で全てクリア値であるエリア(LL−SA)を見つけた場合は、見つけたエリア(LL−SA)が割りあたったエリア(LL−AA)の「クリア値確認中」フラグが立っている場合に限り、開放を行い、当該フラグを下げる。
(対策4):ストレージデータライト処理で「クリア値確認中」フラグが立ったエリア(LL−AA)にデータを書き込む場合は、当該フラグを下げる。
なお、ステップS44201の処理は、ステップ44104で開放対象とならなかったステップS44102のブロックアドレス範囲を含むエリア(LL−AA)に割りあたったエリア(LL−SA)を対象に、ステップ44104と連携しておこなってもよい。
以上が仮想マシン削除処理である。なお、図24で説明したが、開放したエリア(LL−SA)が割りあたっていたエリア(LL−AA)に対するリードを行ってもクリア値で返されるため、その後サーバ仮想化プログラム3200が当該エリアを再利用する場合も問題なく利用することができる。また、複数の仮想マシンを削除する場合、エリア(LL−SA)開放の視点からは複数の仮想マシンをまとめて削除要求で指定したほうが開放効率が良い。なぜならば別々で指定した場合はステップS44104に該当せずにステップS44201で開放を試みることになる一方で、まとめて指定すれば完全包含の可能性が高くなり、ステップS44104が適用されるエリア(LL−SA)が増えるからである。
<8−2. 管理サーバの表示>。
図45は仮想マシン削除に関連する管理サーバ1000の画面表示である。当該画面では以下の情報が表示される。
* 仮想マシンを削除した日時45001。
* 削除した一つ以上の仮想マシンの識別子45002。
* 削除した仮想マシンが用いていたサーバレベル仮想ボリュームの総容量45003。
* 削除要求によって変化したサーバレベルプールの割当済容量の差分45004。なお、削除要求によって常に割当済容量は減るので値はマイナスである。
* 削除要求によって変化したストレージレベルプールの割当済容量の差分45005。なお、削除要求によって常に割当済容量は減るので値はマイナスである。
なお、項目45001及び項目45002は、VM削除要求を管理サーバ1000が送信している場合は容易に把握可能である。一方で、VM削除要求を管理サーバ1000以外の計算機が送信している場合は、物理サーバ3000からVM削除要求で指定された仮想マシンの識別子と受信日時を取得すればよい。項目45003乃至45005は、VM削除要求前とVM削除要求後で管理サーバ1000が有するストレージレベルプール構成情報1400、サーバレベルプール構成情報1700、サーバレベル仮想ボリューム構成情報を比較することで取得できる。しかし、各項目はこれら以外の方法で取得してもよい。
なお、以上の説明では管理サーバ1000はストレージシステム2000や物理サーバ3000に対して適用済みの設定を、管理サーバ1000は、ストレージシステム2000や物理サーバ3000から情報を収集して設定情報(例えば、ストレージレベルプール構成情報1400、ストレージレベル仮想ボリューム構成情報1500、ポート−LUN対応情報1600、サーバレベルプール構成情報1700、サーバレベル仮想ボリューム構成情報1800)を作成し、End−to−End容量レバレッジ率を計算し、表示することを示してきた。しかし、管理サーバ1000が、管理者或いはデータソース装置(例えば可搬型の記憶メディア)から入出力装置4060を介して受信した設定値に基いて、ストレージシステム2000及び物理サーバ3000の設定を行う場合は、前述の設定情報の一部または全てをストレージシステム2000や物理サーバ3000からの取得を省略し、設定値に基いて前述の設定情報を作成または更新し、End−to−End容量レバレッジ率を計算し、表示してもよい。なお、後者の場合は、設定値に基く設定をストレージシステム2000や物理サーバ3000に対して適用する以前にEnd−to−End容量レバレッジ率を表示することで、管理者による設定を支援してもよい。
なお、仮想マシンからのI/O要求、物理サーバ3000からストレージシステム2000へ送信されるI/O要求以外でブロックアドレスを用いて説明した部分は他の単位でのアドレッシングや所定の変換を行った別なアドレスを採用してもよい。
2000・・・ストレージシステム

Claims (15)

  1. 記憶デバイスを含み、ストレージレベル仮想ボリュームを提供するストレージシステムと、
    前記ストレージシステムに接続し、仮想計算機を提供するサーバ計算機と、
    を有する計算機システムであって、
    前記ストレージシステムは、前記記憶デバイスの記憶エリアを第一の管理単位で分割して複数の低レベルストレージエリアとして管理し、前記ストレージレベル仮想ボリュームのブロックアドレス空間を、前記第一の管理単位と関連したサイズの第二の管理単位で分割して、複数の低レベルアドレスエリアとして管理し、前記低レベルアドレスエリアに割り当てられた前記低レベルストレージエリアを示す低レベルエリア変換情報を格納し、
    前記サーバ計算機は、前記仮想計算機にサーバレベル仮想ボリュームを提供し、前記ストレージレベル仮想ボリュームを第三の管理単位で分割して複数の高レベルストレージエリアとして管理し、前記サーバレベル仮想ボリュームのブロックアドレス空間を、前記第三の管理単位と関連した第四の管理単位で分割して、複数の高レベルアドレスエリアとして管理し、前記高レベルアドレスエリアに割り当てられた前記高レベルストレージエリアを示す高レベルエリア変換情報を格納し、
    前記サーバ計算機は、前記仮想計算機を指定したVM削除要求を受信し、前記指定された仮想計算機に提供されているサーバレベル仮想ボリュームに含まれる前記高レベルアドレスエリアに割当てられた所定の高レベルストレージエリアを特定し、前記所定の高レベルストレージエリアのブロックアドレス範囲を指定したクリア要求を前記ストレージシステムへ送信し、
    前記ストレージシステムは、前記クリア要求で指定されたブロックアドレス範囲に含まれる所定の低レベルアドレスエリアを特定し、前記所定の低レベルアドレスエリアに割当てられた所定の低レベルアドレスエリアを開放する、
    ことを特徴とした計算機システム。
  2. 請求項1記載の計算機システムであって、
    前記第二の管理単位は、前記第一の管理単位と同一サイズ、または前記第一の管理単位のサイズから、前記低レベルアドレスエリアに含まれる制御情報のサイズを引いたサイズであり、
    前記第四の管理単位は、前記第三の管理単位と同一サイズ、または前記第三の管理単位のサイズから、前記低レベルアドレスエリアに含まれる制御情報のサイズを引いたサイズである、
    ことを特徴とした計算機システム。
  3. 請求項2記載の計算機システムであって、
    前記第二の管理単位のサイズは、前記第三の管理単位のサイズとは異なり、
    前記所定の低レベルアドレスエリアは、前記クリア要求で指定されたブロックアドレス範囲に完全包含されたエリアである、
    ことを特徴とした計算機システム。
  4. 請求項3記載の計算機システムであって、
    前記ストレージシステムは、前記低レベルアドレスエリアを除く前記クリア要求で指定されたブロックアドレス範囲を、所定のクリア値でデータをクリアする、
    ことを特徴とした計算機システム。
  5. 請求項4記載の計算機システムであって、
    前記ストレージシステムは、値が全て前記所定のクリア値である前記低レベルアドレスエリアを特定し、当該低レベルアドレスエリアに割当てられた前記低レベルストレージエリアを開放し、
    前記ストレージシステムは、開放された前記所定の低レベルアドレスエリア内のアドレス範囲を指定したリード要求に応じて、前記所定のクリア値を前記サーバ計算機に送信する、
    ことを特徴とした計算機システム。
  6. 請求項5記載の計算機システムであって、
    前記VM削除要求で指定される前記仮想計算機は複数である、
    ことを特徴とした計算機システム。
  7. 請求項6記載の計算機システムであって、
    前記計算機システムは前記サーバ計算機に接続した管理サーバをさらに有し、前記管理サーバは削除した仮想計算機の識別子と、前記仮想計算機の削除によって開放した低レベルストレージエリアの容量と、を表示する、
    ことを特徴とした計算機システム。
  8. 記憶デバイスと、
    前記記憶デバイス及び仮想計算機を提供するサーバ計算機と接続し、ストレージレベル仮想ボリュームを提供するストレージコントローラと、
    を有するストレージシステムであって、
    前記ストレージコントローラは、前記記憶デバイスの記憶エリアを第一の管理単位で分割して複数の低レベルストレージエリアとして管理し、前記ストレージレベル仮想ボリュームのブロックアドレス空間を、前記第一の管理単位と関連したサイズの第二の管理単位で分割して、複数の低レベルアドレスエリアとして管理し、前記低レベルアドレスエリアに割り当てられた前記低レベルストレージエリアを示す低レベルエリア変換情報を格納し、
    前記サーバ計算機は、前記仮想計算機にサーバレベル仮想ボリュームを提供し、前記ストレージレベル仮想ボリュームを第三の管理単位で分割して複数の高レベルストレージエリアとして管理し、前記サーバレベル仮想ボリュームのブロックアドレス空間を、前記第三の管理単位と関連した第四の管理単位で分割して、複数の高レベルアドレスエリアとして管理し、前記高レベルアドレスエリアに割り当てられた前記高レベルストレージエリアを示す高レベルエリア変換情報を格納し、
    前記ストレージシステムは、ブロックアドレス範囲を指定したクリア要求を受信し、前記指定されたブロックアドレス範囲に含まれる所定の低レベルアドレスエリアを特定し、前記所定の低レベルアドレスエリアに割当てられた所定の低レベルアドレスエリアを開放し、
    前記クリア要求は、前記サーバ計算機より送信され、
    前記クリア要求で指定された前記ブロックアドレス範囲は、前記サーバ計算機によって前記仮想計算機を指定したVM削除要求を受信し、前記指定された仮想計算機に提供されているサーバレベル仮想ボリュームに含まれる前記高レベルアドレスエリアに割当てられた所定の高レベルストレージエリアのブロックアドレス範囲である、
    ことを特徴としたストレージシステム。
  9. 請求項8記載のストレージシステムであって、
    前記第二の管理単位は、前記第一の管理単位と同一サイズ、または前記第一の管理単位のサイズから、前記低レベルアドレスエリアに含まれる制御情報のサイズを引いたサイズであり、
    前記第四の管理単位は、前記第三の管理単位と同一サイズ、または前記第三の管理単位のサイズから、前記低レベルアドレスエリアに含まれる制御情報のサイズを引いたサイズである、
    ことを特徴としたストレージシステム。
  10. 請求項9記載のストレージシステムであって、
    前記第二の管理単位のサイズは、前記第三の管理単位のサイズとは異なり、
    前記所定の低レベルアドレスエリアは、前記クリア要求で指定されたブロックアドレス範囲に完全包含されたエリアである、
    ことを特徴としたストレージシステム。
  11. 請求項10記載のストレージシステムであって、
    前記ストレージシステムは、前記低レベルアドレスエリアを除く前記クリア要求で指定されたブロックアドレス範囲を、所定のクリア値でデータをクリアする、
    ことを特徴としたストレージシステム。
  12. 請求項11記載のストレージシステムであって、
    前記ストレージシステムは、値が全て前記所定のクリア値である前記低レベルアドレスエリアを特定し、当該低レベルアドレスエリアに割当てられた前記低レベルストレージエリアを開放し、
    前記ストレージシステムは、開放された前記所定の低レベルアドレスエリア内のアドレス範囲を指定したリード要求に応じて、前記所定のクリア値を前記サーバ計算機に送信する、
    ことを特徴としたストレージシステム。
  13. 請求項12記載のストレージシステムであって、
    前記VM削除要求で指定される前記仮想計算機は複数であり、
    前記クリア要求で指定されたブロックアドレス範囲は、複数の前記仮想計算機に関連する、
    ことを特徴としたストレージシステム。
  14. 記憶デバイスを含み、ストレージレベル仮想ボリュームを提供するストレージシステムと、
    前記ストレージシステムに接続し、仮想計算機を提供するサーバ計算機と、
    を有する計算機システムの管理方法であって、
    前記ストレージシステムは、前記記憶デバイスの記憶エリアを第一の管理単位で分割して複数の低レベルストレージエリアとして管理し、前記ストレージレベル仮想ボリュームのブロックアドレス空間を、前記第一の管理単位と関連したサイズの第二の管理単位で分割して、複数の低レベルアドレスエリアとして管理し、前記低レベルアドレスエリアに割り当てられた前記低レベルストレージエリアを示す低レベルエリア変換情報を格納し、
    前記サーバ計算機は、前記仮想計算機にサーバレベル仮想ボリュームを提供し、前記ストレージレベル仮想ボリュームを第三の管理単位で分割して複数の高レベルストレージエリアとして管理し、前記サーバレベル仮想ボリュームのブロックアドレス空間を、前記第三の管理単位と関連した第四の管理単位で分割して、複数の高レベルアドレスエリアとして管理し、前記高レベルアドレスエリアに割り当てられた前記高レベルストレージエリアを示す高レベルエリア変換情報を格納し、
    前記サーバ計算機は、前記仮想計算機を指定したVM削除要求を受信し、前記指定された仮想計算機に提供されているサーバレベル仮想ボリュームに含まれる前記高レベルアドレスエリアに割当てられた所定の高レベルストレージエリアを特定し、前記所定の高レベルストレージエリアのブロックアドレス範囲を指定したクリア要求を前記ストレージシステムへ送信し、
    前記ストレージシステムは、前記クリア要求で指定されたブロックアドレス範囲に含まれる所定の低レベルアドレスエリアを特定し、前記所定の低レベルアドレスエリアに割当てられた所定の低レベルアドレスエリアを開放する、
    ことを特徴とした管理方法。
  15. 請求項14記載の管理方法であって、
    前記第二の管理単位のサイズは、前記第三の管理単位のサイズとは異なり、
    前記所定の低レベルアドレスエリアは、前記クリア要求で指定されたブロックアドレス範囲に完全包含されたエリアである、
    ことを特徴とした管理方法。
JP2011552579A 2010-02-05 2010-02-05 仮想マシンと連携したThin−Provisioning容量管理を行う計算機システム、計算機、及び方法 Expired - Fee Related JP5276185B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/000705 WO2011096014A1 (ja) 2010-02-05 2010-02-05 仮想マシンと連携したThin-Provisioning容量管理を行う計算機システム、計算機、及び方法

Publications (2)

Publication Number Publication Date
JPWO2011096014A1 JPWO2011096014A1 (ja) 2013-06-06
JP5276185B2 true JP5276185B2 (ja) 2013-08-28

Family

ID=44355044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011552579A Expired - Fee Related JP5276185B2 (ja) 2010-02-05 2010-02-05 仮想マシンと連携したThin−Provisioning容量管理を行う計算機システム、計算機、及び方法

Country Status (3)

Country Link
US (3) US8656136B2 (ja)
JP (1) JP5276185B2 (ja)
WO (1) WO2011096014A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467408B (zh) 2010-11-12 2014-03-19 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
US9436515B2 (en) * 2010-12-29 2016-09-06 Sap Se Tenant virtualization controller for exporting tenant without shifting location of tenant data in a multi-tenancy environment
US8924966B1 (en) 2011-03-31 2014-12-30 Emc Corporation Capture/revert module for complex assets of distributed information technology infrastructure
US8775774B2 (en) * 2011-08-26 2014-07-08 Vmware, Inc. Management system and methods for object storage system
US8595460B2 (en) * 2011-08-26 2013-11-26 Vmware, Inc. Configuring object storage system for input/output operations
US8856440B2 (en) * 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set
US10175968B2 (en) 2012-01-04 2019-01-08 International Business Machines Corporation Software catalog information management
TW201336264A (zh) * 2012-02-16 2013-09-01 Hon Hai Prec Ind Co Ltd 自動擴充虛擬機的方法
JP5849794B2 (ja) 2012-03-16 2016-02-03 富士通株式会社 ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
WO2013157094A1 (ja) 2012-04-18 2013-10-24 株式会社日立製作所 管理システム及び管理方法
US11379354B1 (en) * 2012-05-07 2022-07-05 Amazon Technologies, Inc. Data volume placement techniques
US9348724B2 (en) * 2012-05-21 2016-05-24 Hitachi, Ltd. Method and apparatus for maintaining a workload service level on a converged platform
US20140032738A1 (en) * 2012-07-24 2014-01-30 Sudip S. Chahal Method, apparatus and system for estimating subscription headroom for a storage pool
EP2884394A4 (en) * 2012-11-19 2016-04-27 Hitachi Ltd ADMINISTRATION SYSTEM AND DELIVERY METHOD
US9195585B2 (en) * 2013-01-23 2015-11-24 Vmware, Inc. Techniques for allocating and surfacing host-side storage capacity to virtual machines
US9514039B2 (en) 2013-02-14 2016-12-06 International Business Machines Corporation Determining a metric considering unallocated virtual storage space and remaining physical storage space to use to determine whether to generate a low space alert
US9888055B2 (en) 2013-03-15 2018-02-06 Profitbricks Gmbh Firewall for a virtual network and related techniques
WO2014209387A1 (en) * 2013-06-28 2014-12-31 Hewlett-Packard Development Company, L.P. Quality distributions for automated document composition
KR102088403B1 (ko) 2013-08-08 2020-03-13 삼성전자 주식회사 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
US9454314B2 (en) 2014-03-07 2016-09-27 ProfitBricks, Inc. Systems and methods for creating an image of a virtual storage device
US9361171B2 (en) * 2014-03-07 2016-06-07 ProfitBricks, Inc. Systems and methods for storage of data in a virtual storage device
US10228856B2 (en) * 2016-01-28 2019-03-12 Hewlett Packard Enterprise Development Lp Storage space management in a thin provisioned virtual environment
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
JP6851350B2 (ja) * 2018-08-30 2021-03-31 株式会社日立製作所 ストレージシステム及び記憶制御方法
US10768837B2 (en) * 2018-10-31 2020-09-08 EMC IP Holding Company LLC Non-disruptive migration of a virtual volume in a clustered data storage system
JP7332488B2 (ja) * 2020-01-16 2023-08-23 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230742A (ja) * 2008-03-21 2009-10-08 Hitachi Ltd 高可用性、低容量のシン・プロビジョニング
JP2010020431A (ja) * 2008-07-09 2010-01-28 Hitachi Ltd 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4646526B2 (ja) 2004-02-18 2011-03-09 株式会社日立製作所 記憶制御システム及び同システムの制御方法
US7694082B2 (en) * 2005-07-29 2010-04-06 International Business Machines Corporation Computer program and method for managing resources in a distributed storage system
JP4993928B2 (ja) 2006-03-23 2012-08-08 株式会社日立製作所 記憶システム及び記憶領域解放方法並びにストレージシステム
JP4940738B2 (ja) 2006-04-12 2012-05-30 株式会社日立製作所 記憶領域動的割当方法
US7822594B2 (en) * 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
JP2008146574A (ja) 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法
US7801993B2 (en) * 2007-07-19 2010-09-21 Hitachi, Ltd. Method and apparatus for storage-service-provider-aware storage system
US8127096B1 (en) * 2007-07-19 2012-02-28 American Megatrends, Inc. High capacity thin provisioned storage server with advanced snapshot mechanism
US9164941B2 (en) * 2007-10-24 2015-10-20 Hitachi, Ltd. Storage system group
US8131927B2 (en) * 2007-11-30 2012-03-06 Hitachi, Ltd. Fast accessible compressed thin provisioning volume
JP4815518B2 (ja) * 2009-09-11 2011-11-16 株式会社日立製作所 ストレージシステムとサーバ計算機の両方でThin−Provisioning技術に従う容量仮想化が行われる計算機システム
US8793290B1 (en) * 2010-02-24 2014-07-29 Toshiba Corporation Metadata management for pools of storage disks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230742A (ja) * 2008-03-21 2009-10-08 Hitachi Ltd 高可用性、低容量のシン・プロビジョニング
JP2010020431A (ja) * 2008-07-09 2010-01-28 Hitachi Ltd 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法

Also Published As

Publication number Publication date
US20120030404A1 (en) 2012-02-02
US9058125B2 (en) 2015-06-16
WO2011096014A1 (ja) 2011-08-11
US20150242329A1 (en) 2015-08-27
US9411746B2 (en) 2016-08-09
US8656136B2 (en) 2014-02-18
US20140136780A1 (en) 2014-05-15
JPWO2011096014A1 (ja) 2013-06-06

Similar Documents

Publication Publication Date Title
JP5276185B2 (ja) 仮想マシンと連携したThin−Provisioning容量管理を行う計算機システム、計算機、及び方法
JP4815518B2 (ja) ストレージシステムとサーバ計算機の両方でThin−Provisioning技術に従う容量仮想化が行われる計算機システム
JP5079841B2 (ja) ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
JP4690765B2 (ja) ストレージ管理システム、ストレージ管理サーバ、データ再配置制御方法およびデータ再配置制御プログラム
CN102209952B (zh) 存储系统和用于操作存储系统的方法
JP4940738B2 (ja) 記憶領域動的割当方法
JP5986319B2 (ja) ストレージ管理システム
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
US8543786B2 (en) Computer system and computer system management method for adding an unused real volume to a pool
EP1953636A2 (en) Storage module and capacity pool free capacity adjustment method
US20120011329A1 (en) Storage apparatus and storage management method
JP2014013592A (ja) 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース
JP2006302258A (ja) シン・プロビジョン型ストレージサブシステムのディスクスペースを管理するシステムと方法
US9354819B2 (en) Storage system including multiple storage apparatuses and pool virtualization method
WO2013098960A1 (ja) 計算機システム、ファイル管理方法及び記憶媒体
JP2011070345A (ja) 計算機システム、計算機システムの管理装置、計算機システムの管理方法
JP2020052919A (ja) ストレージ装置、管理方法及びプログラム
US8527732B2 (en) Storage system and method of controlling storage system
US9329788B2 (en) Computer system and method for allocating and recovering virtual volumes
US20120023301A1 (en) Computer system and its control method
JP5597266B2 (ja) ストレージシステム
JP6636159B2 (ja) ストレージ装置
EP2302499A2 (en) Computer system performing capacity vitualization based on thin provisioning technology in both storage system and server computer
US20230089939A1 (en) Backend deduplication awareness

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130516

R150 Certificate of patent or registration of utility model

Ref document number: 5276185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees