JP6266657B2 - 仮想ストレージシステムのシン・プロビジョニング - Google Patents

仮想ストレージシステムのシン・プロビジョニング Download PDF

Info

Publication number
JP6266657B2
JP6266657B2 JP2015559224A JP2015559224A JP6266657B2 JP 6266657 B2 JP6266657 B2 JP 6266657B2 JP 2015559224 A JP2015559224 A JP 2015559224A JP 2015559224 A JP2015559224 A JP 2015559224A JP 6266657 B2 JP6266657 B2 JP 6266657B2
Authority
JP
Japan
Prior art keywords
virtual
storage system
storage
cache
capacity
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.)
Active
Application number
JP2015559224A
Other languages
English (en)
Other versions
JP2016515241A (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 JP2016515241A publication Critical patent/JP2016515241A/ja
Application granted granted Critical
Publication of JP6266657B2 publication Critical patent/JP6266657B2/ja
Active 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/061Improving I/O performance
    • 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
    • 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/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

Description

発明の背景
本発明は、概して、仮想ストレージシステム、とりわけ、仮想ストレージシステムのシン・プロビジョニングに関する。
仮想化技術は、物理的制約を避けるために広く使用されている。ストレージの分野では、シン・プロビジョニングなどの容量仮想化技術に加えて、ストレージシステム仮想化技術が出現している。現在、仮想ストレージシステム技術は、以下の特徴:(a)物理的ストレージシステムの制約を避けるため、仮想ストレージシステムが物理的ストレージシステムから構成され、(b)ボリュームが仮想ストレージシステムから作成され;ならびに(c)作成されたボリュームは、オペレーティングシステムまたはアプリケーションに割り当てられることからなる。現在の技術の問題の1つは、物理ストレージシステムにおいてオーバープロビジョニングができないということである。さらに、現在の解決策は、物理ストレージシステムの制約および接続性を考慮していない。したがって、ポートおよびキャッシュなどのリソースを効率的に使用することが困難である。
特許文献1において、第一ストレージコントローラは、LUNから接続されたLDEV(論理デバイス)およびより低位のLDEVに接続されたVDEV(仮想デバイス)によって構成される多層記憶階層を有する。VDEVの少なくとも1つは、外部ストレージコントローラに配置されたメモリリソースをマッピングすることによって構成される。ストライプ、RAIDなどの機能は、マッピングにおいて追加することができる。運用の自由度が上がるように仮想内部メモリリソースとして外部メモリリソースを使用することによって、通常の内部ボリュームに適用可能な様々な種類の機能(リモートコピー、可変ボリューム機能など)も、仮想内部ボリュームにおいて使用することができる。
特許文献2において、データストレージシステムは、データストレージ設備へのアクセスを提供するための複数のノードを含む。各ノードは、ノードのための汎用コンピューティングを提供するためのコンピュータ−メモリ複合体、それぞれのノードを介したデータ転送を制御するためのノードコントローラ、およびデータ転送のためにデータをバッファするためのクラスタメモリ、を有する。複数の通信経路がノードを相互接続し、データストレージシステムの各2つのノードに対して別個の通信経路が提供される。
特許文献3において、システムは、ホストコンピュータからのインプット/アウトプットコマンドを受け取って当該ホストコンピュータに対して第一ストレージボリュームを提供する、第一ストレージコントローラを含む第一ストレージシステムと、ホストコンピュータからのインプット/アウトプットコマンドを受け取ってホストコンピュータに対して第二ストレージボリュームを提供する、第二ストレージコントローラを含む第二ストレージシステムとを備える。第一ストレージボリュームのうちの1つにおける第一データ記憶領域は、第一ストレージコントローラによって第一プールから割り当てられる。第一ストレージボリュームのうちの別の1つにおける第二データ記憶領域は、第一ストレージコントローラによって第二プールから割り当てられる。第二ストレージボリュームのうちの1つにおける第三データ記憶領域は、第二ストレージコントローラによって第一プールから割り当てられる。第二ストレージボリュームのうちの別の1つにおける第四データ記憶領域は、第二ストレージコントローラによって第二プールから割り当てられる。
上記の3つの参考文献において、例えば、仮想ストレージシステムが構成される場合でさえの物理的ストレージシステムにおけるオーバープロビジョン、ならびに物理ストレージシステムの制約および接続性を考慮することによる、ポートおよびキャッシュなどのストレージリソースの効率的な使用などを含む、本発明の特徴は開示されていない。
米国特許第7,441,095号明細書 米国特許第6,658,478号明細書 米国特許第8,356,147号明細書
発明の簡単な概要
本発明の例示的な実施形態は、仮想ストレージシステムが構成される場合でさえの物理的ストレージシステムにおけるオーバープロビジョン、ならびに物理ストレージシステムの制約および接続性を考慮することによる、ポートおよびキャッシュなどのストレージリソースの効率的な使用を含む、ストレージリソースを効率的に利用する方法を提供する。仮想ストレージシステムの設計は厄介である。管理者が仮想ストレージシステムを作成するとき、彼らは、アレイグループおよびキャッシュ/物理ポートの接続性について意識した上で容量設計またはパフォーマンス設計を行わなければならない。
本発明の実施形態により、アレイグループなどのリソースは、仮想化されて管理される。リソースの追加の時点で容量のみが足りない場合、到達可能なアレイグループの容量が割り当てられる。リソースの追加の時点で、容量が足りないことに加えて、パフォーマンスも足りない場合、アレイグループに加えてポートおよびキャッシュも割り当てられる。キャッシュが割り当てられる場合、キャッシュパーティショニング構成も実行される。キャッシュに関しては、すべての容量が使い果たされ得るので、容量による管理が困難である。したがって、キャッシュは、ヒット率またはある種のメトリックスによって管理される。これは、物理構成を意識しない仮想ストレージシステムを実現する。この技術とパフォーマンスモニタリングソフトウェアによって管理される履歴データとを組み合わせることにより、仮想ストレージシステムのシン・プロビジョニングが実現される。その結果として、特にクラウド環境において、アプリケーションを実行するコストの低減が可能である。管理プログラムは、コストを低減する推奨プランを提供する。
本発明の態様に従って、第一コンピュータは、メモリ;および複数の第二コンピュータに提供される、1つまたは複数の物理ストレージシステムによって形成される仮想ストレージシステムを管理するように作動可能なプロセッサを含み、この場合、当該仮想ストレージシステムは、複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む。当該プロセッサは、複数の仮想ボリュームのパフォーマンスをモニターするように作動可能であり、ならびに、仮想ストレージシステムへの複数の第二コンピュータからのアクセスを伴う1つまたは複数の物理ストレージシステムの作動の際に、当該モニターされた複数の仮想ボリュームのパフォーマンスに基づいて仮想ストレージシステムに追加で割り当てられる複数の他のタイプの仮想要素の量を計算するように作動可能である。
いくつかの実施形態において、当該複数の他のタイプの仮想要素は、仮想ポート、仮想キャッシュ、または仮想ストレージ領域のうちの少なくとも1つを含む。仮想ポートの場合、プロセッサは、仮想ポートの帯域幅が事前設定された帯域幅の閾値を超える場合に、モニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる仮想ポートの量を計算するように作動可能である。仮想キャッシュの場合、プロセッサは、仮想ポートのキャッシュヒット率が事前設定されたキャッシュヒット率の閾値を超える場合に、モニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる仮想キャッシュの量を計算するように作動可能である。仮想ストレージ領域の場合、プロセッサは、仮想ストレージ領域の容量が事前設定された容量の閾値を超える場合に、モニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる仮想ストレージ領域の量を計算するように作動可能である。
特定の実施形態において、プロセッサは、各仮想ボリュームに対して、割り当てられる他のタイプの仮想要素の量、使用される他のタイプの仮想要素の量、ストレージプールのストレージプール識別番号、構成される物理ストレージリソース、ならびに、仮想ストレージシステムに当該他のタイプの仮想要素を提供するためにストレージプールにプロビジョニングされる物理ストレージリソース、を示す仮想ストレージテーブルを作成するように作動可能である。当該仮想ストレージテーブルは、仮想ストレージシステムに追加で割り当てられる複数の他のタイプの仮想要素の量を計算するために使用される。仮想ストレージシステムは、1つの物理ストレージシステムによって形成され、ならびに物理ストレージリソースは、当該1つの物理ストレージシステムに対応する1つのストレージプールからプロビジョニングされる。
いくつかの実施形態において、仮想ストレージシステムは、複数の物理ストレージシステムによって形成される。物理ストレージリソースは、当該複数の物理ストレージシステムに対応する複数のストレージプールからプロビジョニングされる。仮想ストレージテーブルは、所定の仮想ボリュームに対して、仮想ストレージシステムに追加で割り当てられる計算された量の複数の他のタイプの仮想要素を提供するためにストレージリソースがそこから使用される当該対応するストレージプールを識別するために使用される。
本発明の別の態様に従って、システムは、複数の第二コンピュータと;複数の物理ストレージシステムと;メモリならびに、当該複数の第二コンピュータに提供される、当該複数の物理ストレージシステムにおける1つまたは複数の物理ストレージシステムによって形成される仮想ストレージシステムを管理するように作動可能なプロセッサを含む第一コンピュータであって、当該仮想ストレージシステムが複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む、第一コンピュータと、を含む。当該プロセッサは、当該複数の仮想ボリュームのパフォーマンスをモニターするように作動可能であり、ならびに、当該仮想ストレージシステムへの複数の第二コンピュータからのアクセスを伴う1つまたは複数の物理ストレージシステムの作動の際に、当該モニターされた複数の仮想ボリュームのパフォーマンスに基づいて、仮想ストレージシステムに対して当該複数の他のタイプの仮想要素のシン・プロビジョニングを実行するように作動可能である。
いくつかの実施形態において、シン・プロビジョニングの実施は、仮想ストレージシステムに追加で割り当てられる複数の他のタイプの仮想要素の量の計算を含む。
本発明の他の態様は、複数のコンピュータに提供される、1つまたは複数の物理ストレージシステムによって形成される仮想ストレージシステムを管理するためにデータプロセッサを制御するための複数の命令を保存する非一時的コンピュータ可読性記憶メディアであって、当該仮想ストレージシステムが複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む、記憶メディアを対象とする。当該複数の命令は、以下の命令:データプロセッサに、当該複数の仮想ボリュームのパフォーマンスをモニターさせ、ならびに当該仮想ストレージシステムへの複数の第二コンピュータからのアクセスを伴う1つまたは複数の物理ストレージシステムの作動の際に、当該複数の仮想ボリュームにおけるモニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる他のタイプの仮想要素の量を計算させる命令、を含む。
本発明のこれらおよび他の特徴および利点は、以下の特定の実施形態の詳細な説明から、当業者に明らかとなるであろう。
本発明の方法および機器を適用することができるシステムのハードウェア構成の例を示す。 図1のシステムの論理構造を示す。 仮想ストレージシステムの例を示す。 物理ストレージシステムの例を示す。 図1のシステムにおける管理サーバの例を示す。 カタログテーブルの例を示す。 メディアテンプレートテーブルの例を示す。 アプリケーションテーブルの例を示す。 物理ストレージテーブルの例を示す。 第一実施形態による仮想ストレージテーブルの例を示す。 パフォーマンス履歴テーブルの例を示す。 セルフサービスポータルのプロビジョニングGUIの例を示す。 セルフサービスポータルの構成GUIの例を示す。 管理サーバの管理プログラムのプロセスを示すフローダイヤグラムの例を示す。 管理サーバの管理プログラムによって図14のステップ14060においてプランを作成するプロセスを示すフローダイヤグラムの例を示す。 第二実施形態による仮想ストレージテーブルの例を示す。
発明の詳細な説明
以下の本発明の詳細な説明において、本開示の一部を形成する添付の図面について言及するが、これには、本発明を実施し得るための例示的実施形態が、限定ではなく例示として示される。当該図面において、同じ番号は、複数の構図を通じて、実質的に同様の構成要素を記述している。さらに、当該詳細な説明は、下記において説明されおよび図面において例示されるような様々な例示的実施形態を提供する一方で、本発明は、本明細書において説明されおよび例示される実施形態に限定されないが、当業者に既知であるかまたは既知となるような他の実施形態にも拡大適用することができることに留意されたい。本明細書において、「一実施形態」、「この実施形態」、または「これらの実施形態」は、実施形態と関連して説明される特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれるが、本明細書の様々な所でのこれらの語句の出現が必ずしもすべて同じ実施形態を参照するわけではないということを意味する。さらに、以下の詳細な説明において、本発明の完全な理解を提供するために、多数の特定の詳細について説明される。しかしながら、これらの特定の詳細は、本発明を実施するために全てが必要というわけではないことは、当業者に明らかであろう。他の状況において、周知の構造、材料、回路、プロセス、およびインタフェースは、詳細には説明されておらず、および/または、これらは、本発明を不明瞭にしないように、ブロックダイヤグラム形態において例示され得る。
さらに、下記の詳細な説明のいくつかの部分は、コンピュータ内での動作のアルゴリズムおよび記号表現に関連して提示される。これらのアルゴリズム的記述および記号表現は、データ処理分野の当業者が当該分野の他の当業者に自分たちの革新のエッセンスを最も効果的に伝えるために、彼らによって使用される手法である。アルゴリズムは、所望の最終状態または結果を生じる一連の定義されたステップである。本発明において、実施されるステップは、具体的な成果を達成するために具体的な量の物理的操作を必要とする。通常、必ずではないが、これらの量は、保存、転送、結合、比較、およびそれ以外の操作を行うことが可能な電気的または磁気的な信号または命令の形態を取る。これらの信号を、ビット、値、要素、記号、文字、用語、数、命令などとして参照することは、主に共通使用の理由から、場合によって便利であることが判明している。しかしながら、これらおよび同様の用語の全ては、適切な物理的量に関連付けられているべきであり、ならびにこれらの量に適用される単に便利なラベルに過ぎないことは、留意されたい。特に明記されない限り、以下の説明から明らかなように、説明全体を通して、「処理」「コンピュータ計算」「計算」「決定」「表示」などの用語を使用する説明は、コンピュータシステムあるいは、コンピュータシステムのレジスタおよびメモリ内の物理的(電気的)量として表されるデータを操作してコンピュータシステムのメモリもしくはレジスタもしくは他の情報保存場所、トランスミッション、または表示装置内の物理的量として同様に表される他のデータへと変換する他の情報処理装置、のアクションおよび処理を含み得ることは認められたい。
本発明はさらに、本明細書おける操作を実施するための装置にも関する。この機器は、必要とされる目的のために特別に構成してもよく、あるいは、1つまたは複数のコンピュータブログラムによって選択的にアクティブ化もしくは再構成される1つまたは複数の汎用コンピュータを備えていてもよい。そのようなコンピュータブログラムは、非一時的メディアを含むコンピュータ読み込み可能記憶メディア、例えば、これらに限定されるわけではないが、光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、ソリッドステートデバイス、または電子情報を保存するのに好適な他のタイプのメディアなど、に保存することができる。本明細書において提示されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータもしくは他の機器に本質的に関連するものではない。本明細書の教示によるプログラムおよびモジュールは様々な汎用システムを使用することができ、または、所望の方法ステップを実施するためのより専門的な機器を構築するためにも好都合であることが判明し得る。さらに、本発明は、任意の特定のプログラム言語への参照で記述されているわけではない。本明細書において説明されるような本発明の教示を実践するために、様々なプログラム言語を使用することができるということは理解されるであろう。プログラム言語の命令は、1つまたは複数の処理装置、例えば、中央処理ユニット(CPU)、プロセッサ、または他の制御装置など、によって実行され得る。
本発明の例示的な実施形態は、下記においてより詳細に説明されるように、仮想ストレージシステムのシン・プロビジョニングのための機器、方法、およびコンピュータプログラムを提供する。
実施形態1
第一実施形態は、管理プログラムが仮想ストレージシステムのシン・プロビジョニングをどのように実現するかを開示する。当該管理プログラムは、インフラストラクチャをモニターし、ボリュームのリソース不足を発見した場合には、プランを作成して、それを管理者に提供する。
図1は、本発明の方法および機器を適用することができるシステムのハードウェア構成の例を示している。システム1000は、管理サーバ4000、サーバ1400、およびストレージシステム3000を含む。サーバ1400およびストレージシステム3000は、データネットワーク1070を介して接続されている。当該ネットワークは、通常は、WAN(広域ネットワーク)であるが、これに限定されるわけではない。管理サーバ4000、サーバ1400、およびストレージシステム3000は、管理ネットワーク1050を介して接続されている。当該ネットワークは、通常は、WANであるが、これに限定されるわけではない。図示されている実施形態において、管理ネットワークおよびデータネットワークは別々であるが、本発明はこれに限定されるわけではない。図示されている実施形態において、管理サーバ4000およびサーバ1400は別々であるが、本発明はこれらに限定されるわけではない。例えば、任意のサーバが管理サーバをホストすることができる。図示されている実施形態において、サーバ1400およびストレージシステム3000は別々であるが、本発明はこれらに限定されるわけではない。例えば、サーバおよびストレージシステムは、1つのシステムへと統合することができる。
図2は、図1のシステム1000の論理構造を示している。アプリケーション1110およびOS(オペレーティングシステム)1210は、サーバ1401上において実行される。アプリケーション1120、1130、およびOS1220、1230は、ハイパーバイザ1310上で実行される。ハイパーバイザ1310は、サーバ1402上で実行される。サーバ1401は、ボリューム10111を使用する。サーバ1402は、ボリューム10112および10113を使用する。ボリューム10111、10112、および10113は、仮想ストレージシステムA(2000)からプロビジョニングされる。ストレージシステム1(3000)は、物理ストレージシステムである。
図3は、仮想ストレージシステム2000の例を示している。ボリューム10111および10112は、ストレージプール10191からプロビジョニングされる。ボリューム10113は、ストレージプール10192からプロビジョニングされる。ストレージプール10191および10192は、仮想ストレージシステム2000上に作成される。仮想ストレージシステム2000は、ポートリソース10201、10202、10203、10204、10205、10206、10207、および10208、キャッシュリソース10221および10222、ならびに容量リソース10241、10242、10243、および10244を有する。これらは、他のタイプの仮想要素と呼ばれ、すなわち、あるタイプの仮想要素としての仮想ボリューム以外の仮想要素である。10202などの実線のリソースは使用中である。10201などの点線のリソースは非使用中である。
図4は物理ストレージシステム3000の例を示している。物理ストレージシステム3000は、ポートリソース9021、9022、9023、9024、9025、9026、9027、および9028、キャッシュリソース9041および9042、ならびに容量リソース9061、9062、9063、および9064を含む。容量リソースは、通常、アレイグループであるが、これに限定されるわけではない。
図5は、図1のシステム1000における管理サーバ4000の例を示している。管理インタフェース4010は、管理ネットワーク1050のインタフェースである。インプットおよびアウトプットデバイス4030は、モニター、キーボード、およびマウスなどのユーザインタフェースである。ローカルディスク4040には、管理プログラム4100、カタログテーブル6000、およびメディアテンプレートテーブル7000が保存されている。管理プログラム4100は、メモリ4050にロードされ、プロセッサ4020によって実行される。管理プログラム4100の手順は、図14および図15を使用して後ほど開示される。キャッシュテーブル6000(図6)およびメディアテンプレートテーブル7000(図7)は、メモリ4050にロードされ、管理プログラム4100によって使用される。メモリ4050には、アプリケーションテーブル8000(図8)、物理ストレージテーブル9000(図9)、仮想ストレージテーブル10000(図10)、およびパフォーマンス履歴テーブル11000(図11)が格納される。
図6は、カタログテーブル6000の例を示している。このカタログは、セルフサービスポータルを使用することによって管理者がITリソースをプロビジョニングするときに参照される。このテーブルは、ローカルディスク4040から管理サーバ4000のメモリ4050へロードされる。列6005は、カタログの識別番号を示している。列6010は、カタログの名前を示しいている。列6020および6030は、各カタログにとっての必要なVMリソースの仕様である。列6020は、仮想マシン(VM)のタイプを示している。列6030は、VMの数を示している。列6040から6110は、各カタログのためのストレージリソースの仕様である。列6040は、記憶メディアのタイプを示している。実際のメディアは、メディアテンプレートテーブル7000を検索することによって決定される。列6050、6060、および6070は、各カタログに対して最終的に割り当てられるリソースである。列6050は、各カタログのストレージポートの全帯域幅を示している。列6060は、各カタログのストレージキャッシュの全容量を示している。列6070は、各カタログのストレージボリュームの全容量を示している。列6080は、各カタログの最小キャッシュヒット率を示している。各アプリケーションは、このキャッシュヒット率を超えなければならない。列6090、6100、および6110は、各カタログのために開始時に割り当てられるリソースである。列6090は、各カタログのストレージポートの初期帯域幅を示している。列6100は、各カタログのストレージキャッシュの初期容量を示している。列6110は、各カタログのストレージボリュームの初期容量を示している。
各行(6210から6260まで)は、各カタログにとっての必要な仕様を示している。例えば、行6240は、ウェブアプリケーションのカタログを示している。このカタログは、3つのタイプのVM:通常のVM6242の2つのVM、1つの高メモリVM6244、および1つの高CPUVM6246、合計4つのVMを有する。例えば、「高メモリ」VM6244は、「中」ストレージを必要とする。このボリュームの完全な仕様は:ポート=32Gbps、キャッシュ=32GB、容量=50TB、および最小キャッシュヒット率は80%である。このボリュームに対する初期割り当ては:ポート=16Gbps、キャッシュ=8GB、容量=5TBである。
図7は、メディアテンプレートテーブル7000の例を示している。このテンプレートは、カタログテーブル6000における各メディアタイプ6040のリソース構成を説明している。このテーブルは、ローカルディスク4040から、管理サーバ4000のメモリ4050にロードされる。行7110は、メディアタイプ6040を示している。行7120は、メディアを示している。各列(7010から7040まで)は、各メディアタイプのリソース構成を示している。例えば、行7010は、「通常の」メディアの構成を示している。このタイプのメディアは、SATA HDDからなる。
図8は、アプリケーションテーブル8000の例を示している。このテーブルは、各アプリケーションのインスタンスを示している。このテーブルは、管理プログラム4100によってメモリ4050に作成される。列8010は、アプリケーション名を示している。列8020は、VM名を示している。列8030は、ストレージシステムの識別番号を示している。列8040は、当該ボリュームの識別番号を示している。各行(8110から8180まで)は、各アプリケーションのボリュームを示している。例えば、行8110は、ストレージシステム10001のボリューム01が仮想マシン「Mail−A−1」によって使用され、この仮想マシンがアプリケーション「Mail−A」の一部であることを示している。
図9は、物理ストレージテーブル9000の例を示している。このテーブルは、物理ストレージシステムのリソース構成を説明している。このテーブルは、管理プログラム4100によってメモリ4050に作成される。列9010は、ストレージシステムの識別番号を示している。列9020は、ストレージポートの識別番号を示している。列9030は、ストレージポートの帯域幅を示している。列9040は、ストレージキャッシュの識別番号を示している。列9050は、キャッシュの容量を示している。列9060は、アレイグループの識別番号を示している。列9070は、アレイグループのメディアタイプを示している。列9080は、アレイグループの容量を示している。各行(9110から9180まで)は、物理ストレージシステムのリソース構成を示している。例えば、行9110、行9120、行9130、および行9140は、4つのポート(A、B、C、およびD)および4つのアレイグループ(AG−001、AG−002、AG−003、およびAG−004)は、キャッシュ「C−01」を共有する。
図10は、第一実施形態による仮想ストレージテーブル10000の例を示している。このテーブルは、管理プログラム4100によってメモリ4050に作成される。行10110は、ボリュームの識別番号を示している。行10120は、メディアタイプを示している。行10130は、割り当てられた帯域幅を示している。このボリュームは、最大限でこの帯域幅を使用することができる。行10140は、使用されている帯域幅を示している。この値は、このボリュームの現在の帯域幅を示している。行10150は、割り当てられたキャッシュを示している。このボリュームは、最大限でこのキャッシュを使用することができる。行10160は、使用されているキャッシュを示している。この値は、このボリュームの、現在使用されているキャッシュを示している。行10170は、割り当てられた容量を示している。このボリュームは、最大限でこの容量を使用することができる。行10180は、使用されている容量を示している。この値は、このボリュームの現在の容量を示している。行10190は、ストレージプールの識別番号を示している。行10195は、仮想ストレージシステムの識別番号を示している。行10200は、ストレージプールに構成されたポートと当該構成されポートのそれぞれのための帯域幅を示している。例えば、8GbpsのポートA、B、E、およびFがプールP−01に構成されるが、これらのポートのすべてが、プロビジョニングされるわけではない。行10210は、プロビジョニングされたポートを示している。例えば、8GbpsのポートEおよびFがプロビジョニングされている。行10220は、ストレージプールに構成されたキャッシュを示している。例えば、160GBのC−01および128GBのC−02がプールP−01に構成されるが、キャッシュリソースのすべてがプロビジョニングされるわけではない。行10230は、プロビジョニングされたキャッシュを示している。例えば、128GBのC−02がプロビジョニングされている。行10240は、ストレージプールに構成された容量を示している。例えば、300TBのAG−002および300TBのAG−102がプールP−01に構成されるが、容量リソースのすべてがプロビジョニングされるわけではない。行10250は、プロビジョニングされた容量を示している。例えば、200TBのAG−102がプロビジョニングされている。行10260は、物理ストレージシステムの識別番号を示している。
各列(10010から10080まで)は、各ボリュームのリソース構成を示している。例えば、列10010は、ボリューム01のリソース構成を示している。ボリューム01のメディアタイプはSASである。ボリューム01における割り当てられた帯域幅は4Gbpsであり、使用されている帯域幅は2Gbpsである。ボリューム01における割り当てられたキャッシュは64GBであり、使用されているキャッシュは16GBである。ボリューム01における割り当てられた容量は80TBであり、使用されている容量は42TBである。ボリューム01は、ストレージプールP−01を使用する。
図11は、パフォーマンス履歴テーブル11000の例を示している。列11010は、ボリュームの識別番号を示している。列11020は、各エントリの識別番号(履歴)を示しているが、これに限定されるわけではない。例えば、これは、各記録のタイムスタンプであってもよい。列11030は、このボリュームにおける使用されている帯域幅を示している。列11040は、このボリュームのキャッシュヒット率を示している。列11050は、このボリュームにおける使用される容量を示している。各行(行群11100における行11110から11140まで)は、このボリュームの特定の期間でのリソース利用率を示している。例えば、行11120は、ボリューム01が1.8Gbpsの帯域幅および40TBの容量を使用し、キャッシュヒット率が期間「1」において88%であることを示している。管理プログラム4100が、フローダイヤグラム14000(図14)のステップ14030においてモニタリング結果を得るとき、新しい行が追加されるが、本発明はこれに限定されるわけではない。例えば、新しい行が追加されるとき、最も古いエントリを削除することによりメモリ空間を確保することができる。
図12は、セルフサービスポータルのプロビジョニングGUI(グラフィックユーザインタフェース)12000−Aの例を示している。このGUIは、ストレージリソースをプロビジョニングするために管理者によって使用される。管理者は、アプリケーションのタイプ12010、例えば、「Mail−500box」など、を選択する。カタログテーブル6000のカタログ名6010に基づいて、候補が表示される。次いで、管理者は、アプリケーション名12020、例えば、「Mail−A」など、を入力する。次いで、管理者は、アプリケーションのサイズ12030を選択する。例えば、メールアプリケーションの単位は500ボックスである。したがって、管理者は、500の倍数を選択することができる。「キャンセル」ボタン12120が押された場合、管理プログラム4100は、プロビジョニングプロセスを中止する。「確認」ボタン12110が押された場合、管理プログラム4100は、確認GUI12000−Bを表示する。
図13は、セルフサービスポータルの確認GUI12000−Bの例を示している。このGUIは、アプリケーション管理者がセルフサービスポータルのプロビジョニングGUI12000−Aの「確認」ボタン12110を押したときに表示される。フィールド13010は、アプリケーションのタイプである。フィールド13020はアプリケーション名である。フィールド13030は、アプリケーションのサイズである。フィールド13200は、プロビジョニングされるVMの情報である。列13250は、VMの名前である。この名前は、管理プログラム4100によってアプリケーション名13020から作成される。列13260は、CPUの数およびタイプである。列13270は、メモリの容量である。列13280は、メディアの容量およびタイプである。各行(13210から13240まで)は、各VMの構成を示している。例えば、行13210は、Mail−A−1の構成を示している。このVMは、16個の高CPU、8GBのメモリ、および80TBのSASメディアを使用する。「キャンセル」ボタン13120が押された場合、管理プログラム4100は、プロビジョニングプロセスを中止する。「戻る」ボタン13130が押されると、管理プログラム4100は、セルフサービスポータルのプロビジョニングGUI12000ーAを再び表示する。「OK」ボタン13110が押された場合、管理プログラム4100は、以下の手順を実行する。最初に、当該プログラムは、リクエストされたボリュームをホストすることができる仮想ストレージシステム上の任意のストレージプールが存在するか否かを仮想ストレージテーブル10000を使用してチェックする。管理サーバ4100 が、リクエストされたボリュームをプロビジョニングすることができない場合、管理プログラム4100は、エラーを管理者に通知する。管理サーバ4100 が、任意の仮想ストレージシステム上のリクエストされたボリュームをプロビジョニングすることができる場合、それは、選択された仮想ストレージシステム上のストレージリソースをプロビジョニングする。当該プログラムは、仮想ストレージテーブル10000に新しい行を追加する。
図14は、管理サーバ4000の管理プログラム4100のプロセスを示すフローダイヤグラムの例を示している。プログラムは、ステップ14010から開始する。初期化するためのステップ14020において、管理プログラム4100は、アプリケーションテーブル8000、物理ストレージテーブル9000、仮想ストレージテーブル10000、およびパフォーマンス履歴テーブル11000をメモリ4050に作成する。管理プログラム4100は、カタログテーブル6000およびメディアテンプレートテーブル7000をローカルディスク4040から管理サーバ4100のメモリ4050にロードする。次いで、当該プログラムは、閾値を設定する。例えば、当該閾値は、95%に設定されているが、当該値はこれに限定されるわけではない。例えば、帯域幅、容量、およびキャッシュに対して、異なる閾値を設定することができる。この値は、管理サーバ4000のメモリ4050に格納される。次いで、管理者によって仮想ストレージシステムが作成される。管理者は、仮想ストレージシステムのポート、キャッシュ、および容量ならびにそのプールを構成する。この結果は、仮想ストレージテーブル10000に反映される。
ステップ14030において、プログラムは、各ボリュームからモニタリング結果を得て、パフォーマンス履歴テーブル11000を更新する。新しい物理ストレージシステムが追加される場合、管理プログラム4100は、物理ストレージテーブル9000を更新する。セルフサービスポータルGUI12000によって新しいアプリケーションがデプロイされる場合、管理プログラム4100は、アプリケーションテーブル8000を更新する。ステップ14040において、当該プログラムは、モニターされた値が閾値を超えるか否かを判断する。アプリケーションがデプロイされる時に、モニターされる値が設定された閾値を超える場合、当該プログラムはステップ14060へと進み、そうでない場合は、ステップ14050に進む。
ポートおよび容量は、以下のように判断される。パフォーマンス履歴テーブル11000の最新のエントリのスループット11030および使用される容量11050は、仮想ストレージテーブル10000における使用される帯域幅10140および使用される容量10180に反映される。例えば、この結果は、仮想ストレージテーブル10000の一部となる。プールP−01の使用される容量の合計は192TBである。この値は、プロビジョニングされる容量200TBの95%を超える。したがって、当該プログラムはステップ14060へと進む。キャッシュに関しては、準備される全ての容量が消費される。したがって、パフォーマンス履歴テーブル11000におけるキャッシュヒット率11040が判断のために使用される。例えば、キャッシュヒット率11040の実際の値がキャッシュヒット率の目標値6080を下回る場合、当該プログラムはステップ14060へと進むが、本発明はこれに限定されるわけではない。ステップ14050において、当該プログラムはしばらく待機し、次いで、ステップ14030へと進む。
プランを作成するためのステップ14060において、リソース不足により、プログラムはリソース追加プランを作成しようと試みる。管理プログラム4100は、閾値を超えているリソースに注目する。リソースタイプは、ポート、キャッシュ、または容量のうちの1つである。割り当てられた全てのリソースが使用されている場合、管理プログラム4100はこれ以上リソースを割り当てることができないため、プログラムは、ステップ14070へと進む。例えば、ボリューム01のキャッシュリソースの場合、64GBのキャッシュが割り当てられている。64GBのキャッシュは既に使用されていると推測される。この場合、管理プログラム4100は、追加のキャッシュを案分することができない。すなわち、仮想ストレージシステムに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ14070へと進む。例えば、プールP−01のキャッシュリソースの場合、288GBのキャッシュが構成されている。288GBのキャッシュは既にプロビジョニングされていると推測される。この場合、管理プログラム4100は、追加のキャッシュをプロビジョニングすることができない。その一方で、リソースが別の方法で利用可能な場合、管理プログラム4100は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この説明において、当該ある特定の量は、キャッシュ、ポート、およびボリュームの容量のために割り当てられたリソースの10%であるが、別のパーセンテージを選択することもできる。例えば、ボリューム01における割り当てられたキャッシュは64GBであり、使用されているキャッシュは16GBである。キャッシュが不足する場合、6.4GBのキャッシュが追加されるが、本発明はこれに限定されるわけではない。有効なプランが作成された場合、プログラムはステップ14080へと進み;そうでなければ、ステップ14070へと進む。警告のためのステップ14070において、管理プログラム4100は有効なプランをもはや作成することができないため、管理者に対して警告を通知する。次いで、プログラムは、ステップ14120において終了する。
実行を確認するためのステップ14080において、プログラムは、作成されたプランを管理者に提供する。管理者は、直ちの実行か、または予定された実行かを選択することができる。管理者は、必ずしも当該プランを実行しなければならないわけではない。予定された実行が指定された場合、プログラムは、スケジューラに当該プランを登録する。アプリケーション管理者が、提供されたプランを実行したい場合、プログラムはステップ14090へと進み;そうでなければ14060へと進む。
ステップ14090において、プログラムは、作成されたプランを実行する。実行されるプランに基づいて、構成が変更されるであろう。したがって、仮想ストレージテーブル10000は、ステップ14100において更新される。ステップ14110において、プログラムは、ユーザによる終了命令が存在するか否かをチェックする。終了命令が存在する場合、プログラムはステップ14120において終了し;そうでなければ待機するためにステップ14050へと進む。
図15は、管理サーバ4000の管理プログラム4100によって図14のステップ14060においてプランを作成するためのプロセスを示すフローダイヤグラムの例を示している。プログラムは、ステップ15010から開始する。ステップ15020において、管理プログラム4100は、容量の閾値が超えられているか否かをチェックする。容量の閾値が超えられている場合、プログラムはステップ15030へと進み;そうでなければ、ステップ15040へと進む。ステップ15030において、管理プログラム4100は、ボリュームに容量リソースを追加しようと試みる。割り当てられた容量全てが使用されている場合、管理プログラム4100はこのボリュームにこれ以上容量を割り当てることができないため、プログラムは、ステップ14070へと進む。例えば、ボリューム01の容量リソースの場合、80TBの容量が割り当てられている。80TBの容量は既に使用されていると推測される。この場合、管理プログラム4100は、追加の容量を案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムは図14のステップ14070へと進む。例えば、プールP−01のアレイグループリソースの場合、300TBのAG−002および300TBのAG−102が構成されている。600TBの容量は既にプロビジョニングされていると推測される。この場合、管理プログラム4100は、追加のアレイグループをプロビジョニングすることができない。そうでなければ、管理プログラム4100は、ある特定の量のリソースをプロビジョニングし、それをボリュームに提供する。この量は、割り当てられたリソースの10%である。例えば、ボリューム01における割り当てられた容量は80TBであり、使用されている容量は16TB である。容量が不足する場合、8GBの容量が追加されるが、本発明はこれに限定されるわけではない。8TBのストレージ容量を、プールP−01から割り当てることができない場合、プログラムはステップ14070へと進む。
管理プログラム4100が容量リソースを割り当てることができる場合、プログラムはステップ15040へと進む。ステップ15040において、管理プログラム4100は、キャッシュヒット率の閾値が超えられているか否かをチェックする。キャッシュヒット率の閾値が超えられている場合、プログラムはステップ15050へと進み;そうでなければ、ステップ15060へと進む。
ステップ15050において、管理プログラム4100は、当該ボリュームにキャッシュリソースを追加しようと試みる。割り当てられたキャッシュ全てが使用されている場合、管理プログラム4100はこのボリュームにこれ以上キャッシュを割り当てることができないため、プログラムは、図14のステップ14070へと進む。例えば、ボリューム01のキャッシュリソースの場合、64GBのキャッシュが割り当てられている。64GBのキャッシュは既に使用されていると推測される。この場合、管理プログラム4100は、追加のキャッシュを案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムは図14のステップ14070へと進む。例えば、プールP−01のキャッシュリソースの場合、160GBのC−01および128GBのC−02が構成されている。288GBのキャッシュは既にプロビジョニングされていると推測される。この場合、管理プログラム4100は、追加のキャッシュをプロビジョニングすることができない。そうでなければ、管理プログラム4100は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの10%である。例えば、ボリューム01における割り当てられたキャッシュは64GBであり、使用されたキャッシュは16GBである。キャッシュが不足する場合、6.4GBのキャッシュが追加されるが、本発明はこれに限定されるわけではない。6.4GBのキャッシュをプールP−01から割り当てることができない場合、プログラムは、図14のステップ14070へと進む。管理プログラム4100がキャッシュリソースを割り当てることができる場合、プログラムはステップ15060へと進む。
ステップ15060において、管理プログラム4100は、ポート帯域幅の閾値が超えられているか否かをチェックする。ポート帯域幅の閾値が超えられている場合、プログラムはステップ15070へと進み;そうでなければ、ステップ15100へと進んで、プロセスは終了する。
ステップ15070において、管理プログラム4100は、当該ボリュームにポートリソースを追加しようと試みる。割り当てられたポート帯域幅全てが使用されている場合、管理プログラム4100はこのボリュームにこれ以上ポート帯域幅を割り当てることができないため、プログラムは、ステップ14070へと進む。例えば、ボリューム01のポート帯域幅リソースの場合、4Gbpsのポート帯域幅が割り当てられている。4Gbpsのポート帯域幅は既に使用されていると推測される。この場合、管理プログラム4100は、追加のポート帯域幅を案分することができない。そうでなければ、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ14070へと進む。例えば、プールP−01のポート帯域幅リソースの場合、8GbpsのポートA、8GbpsのポートB、8GbpsのポートC、および8GbpsのポートDが構成されている。32Gbpsのポート帯域幅は既にプロビジョニングされていると推測される。この場合、管理プログラム4100は、追加のポート帯域幅をプロビジョニングすることができない。そうでなければ、管理プログラム4100は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの10%である。例えば、ボリューム01における割り当てられたポート帯域幅は4Gbpsであり、使用されている帯域幅は2Gbpsである。ポート帯域幅が不足する場合、0.4Gbpsのポート帯域幅が追加されるが、本発明はこれに限定されるわけではない。0.4GBのポート帯域幅をプールP−01から割り当てることができない場合、プログラムは、ステップ14070へと進む。管理プログラム4100がポート帯域幅リソースを割り当てることができる場合、プログラムはステップ15100へと進む。
この実施形態において、管理プログラムは、各ボリュームのリソース使用量をモニターする。管理プログラムは、インフラストラクチャをモニターし、ボリュームのリソース不足を発見した場合には、プランを作成して、それを管理者に提供する。これにより、物理構成を意識しない仮想ストレージシステムが実現される。この技術とパフォーマンスモニタリングソフトウェアによって管理される履歴データとを組み合わせることにより、仮想ストレージシステムのシン・プロビジョニングが実現される。この実施形態の目的は、ブロックストレージシステムであるが、これに限定されるわけではない。例えば、目的のストレージシステムが、NFS/CIFSなどのファイルストレージである場合、本発明のアプローチを適用することが可能である。
実施形態2
実施形態1において、物理ストレージシステムと仮想ストレージシステムの比率は1:1であるが、本発明はこれに限定されるわけではない。例えば、物理ストレージシステムと仮想ストレージシステムの比率がN:Mである場合において、本発明を適用することは可能である。そのような場合、1つの仮想ストレージテーブルは、1つの物理ストレージシステムのアレイ群からなり得るが、本発明はこれに限定されるわけではない。
図16は、第二実施形態による仮想ストレージテーブル10005の例を示している。このテーブルは、図10において示された第一実施形態の仮想ストレージテーブル10000とほとんど同じである。相違点のみを説明する。図16において、当該システムは、3つの物理ストレージシステム11001、11002、11003および2つの仮想ストレージシステム10001、10002を有する(図10のそれぞれ1つの代わりに)。仮想ストレージシステム10001は、2つの物理ストレージシステム11001および11002からなる。この場合、2つの物理ストレージシステムからのリソースは、仮想ストレージシステム10001における1つのストレージプールP−01に統合される。したがって、1つの仮想ボリュームは、複数の物理ストレージシステムのリソースを利用することができる。仮想ストレージシステム10002は、1つの物理ストレージシステム11003からなる。
図15を参照し、第二実施形態による管理サーバ4000の管理プログラム4100によって図14のステップ14060においてプランを作成するためのプロセスを適用すると、手順は、第一実施形態の手順とほとんど同じである。しかしながら、第二実施形態では、ストレージプールP−01は、複数の物理ストレージシステム11001および11002から構成される。したがって、管理プログラム4100は、リソース間の接続性を考慮すべきである。第一実施形態との相違点のみを説明する。
ステップ15030において、管理プログラム4100は、ストレージプールに容量リソースを追加しようと試みる。割り当てられる容量全てが使用されている場合、管理プログラム4100はこのボリュームにこれ以上容量を割り当てることができないため、プログラムは、ステップ14070へと進む。例えば、ボリューム12の容量リソースの場合、150TBの容量が割り当てられている。150TBの容量は既に使用されていると推測される。この場合、管理プログラム4100は、追加の容量を案分することができない。すなわち、仮想ストレージシステムに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ14070へと進む。例えば、プールP−01アレイ群リソースの場合、ストレージシステム11001における300TBのAG−002、300TBのAG−102、ならびにストレージシステム11002における200TBのAG−001および50TBのAG−101が、図16に見られるように構成されている。しかしながら、ボリューム12が閾値を超える場合、ボリューム12が物理ストレージシステム11002のリソースを使用するので、すべてのアレイ群を使用できるわけではない。したがって、管理プログラム4100は、ストレージシステム11002のAG−001またはAG101からしかリソースを割り当てることができない。200TBのAG−001および50TBのAG−101は既にプロビジョニングされていると推測される。この場合、管理プログラム4100は、追加のアレイグループをプロビジョニングすることができない。そうでなければ、管理プログラム4100は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの10%である。例えば、ボリューム12における割り当てられた容量は150TBであり、使用されている容量は50TBである。容量が不足する場合、15TBの容量が追加されるが、本発明はこれに限定されるわけではない。15TBのストレージ容量を、プールP−01から割り当てることができない場合、プログラムはステップ14070へと進む。 管理プログラム4100が容量リソースを割り当てることができる場合、プログラムはステップ15040へと進む。
ステップ15040において、管理プログラム4100は、キャッシュヒット率の閾値が超えられているか否かをチェックする。容量 の閾値が超えられている場合、プログラムはステップ15050へと進み;そうでなければ、ステップ15060へと進む。
ステップ15050において、管理プログラム4100は、ストレージプールにキャッシュリソースを追加しようと試みる。割り当てられたキャッシュ全てが使用されている場合、管理プログラム4100はこのボリュームにこれ以上キャッシュを割り当てることができないため、プログラムは、ステップ14070へと進む。例えば、ボリューム12のキャッシュリソースの場合、128GBのキャッシュが割り当てられている。128GBのキャッシュは既に使用されていると推測される。この場合、管理プログラム4100は、追加のキャッシュを案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ14070へと進む。例えば、プールP−01のキャッシュリソースの場合、ストレージシステム11001の160GBのC−01および128GBのC−02ならびにストレージシステム11002の128GBのC−01が構成される。しかしながら、ボリューム12が閾値を超える場合、ボリューム12が物理ストレージシステム11002のリソースを使用するので、すべてのキャッシュを使用できるわけではない。したがって、管理プログラム4100は、ストレージシステム11002のC−01からしかリソースを割り当てることができない。128GBのC−01は既にプロビジョニングされていると推測される。この場合、管理プログラム4100は、追加のキャッシュをプロビジョニングすることができない。そうでなければ、管理プログラム4100は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの10%である。例えば、ボリューム12における割り当てられたキャッシュは128GBであり、使用されているキャッシュは96GBである。キャッシュが不足する場合、12.8GBのキャッシュが追加されるが、本発明はこれに限定されるわけではない。12.8GBのキャッシュをプールP−01から割り当てることができない場合、プログラムは、ステップ14070へと進む。管理プログラム4100がキャッシュリソースを割り当てることができる場合、プログラムはステップ15060へと進む。
ステップ15060において、管理プログラム4100は、ポート帯域幅の閾値が超えられているか否かをチェックする。ポート帯域幅の閾値が超えられている場合、プログラムはステップ15070へと進み;そうでなければ、ステップ15100へと進んで、プロセスは終了する。
ステップ15070において、管理プログラム4100は、ボリュームにポートリソースを追加しようと試みる。割り当てられるポート帯域幅全てが使用されている場合、管理プログラム4100はこのボリュームにこれ以上ポート帯域幅を割り当てることができないため、プログラムは、ステップ14070へと進む。例えば、ボリューム12のポート帯域幅リソースの場合、8Gbpsのポート帯域幅が割り当てられている。8Gbpsのポート帯域幅は既に使用されていると推測される。この場合、管理プログラム4100は、追加のポート帯域幅を案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ14070へと進む。例えば、仮想ストレージシステム10001のプールP−01のポート帯域幅リソースの場合、ストレージシステム11001の8GbpsのポートA、8GbpsのポートB、8GbpsのポートE、および8GbpsのポートF、ならびにストレージシステム11002の8GbpsのポートCおよび8GbpsのポートDが構成される。しかしながら、ボリューム12が閾値を超える場合、ボリューム12が物理ストレージシステム11002のリソースを使用するので、すべてのポート帯域幅を使用できるわけではない。したがって、管理プログラム4100は、ストレージシステム11002の8GbpsのポートCおよび8GbpsのポートDからしかリソースを割り当てることができない。ストレージシステム11002の8GbpsのポートCおよび8GbpsのポートDは既にプロビジョニングされていると推測される。この場合、管理プログラム4100は、追加のキャッシュをプロビジョニングすることができない。そうでなければ、管理プログラム4100は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの10%である。例えば、ボリューム12における割り当てられたポート帯域幅は8Gbpsであり、使用されているポート帯域幅は6Gbpsである。ポート帯域幅が不足する場合、0.8Gbpsのポート帯域幅が追加されるが、本発明はこれに限定されるわけではない。0.8GBのポート帯域幅をプールP−01から割り当てることができない場合、プログラムは、ステップ14070へと進む。管理プログラム4100がポート帯域幅を割り当てることができる場合、プログラムはステップ15100へと進み、プロセスは終了する。
第二実施形態は、物理ストレージシステムの接続性を考慮することにより、たとえストレージプールが複数の物理ストレージシステムから構成される場合でも、仮想ストレージシステムのシン・プロビジョニングを実現する。
当然のことながら、図1に示されるシステム構成は、純粋に、本発明を実践することができる情報システムの例示であり、本発明は、特定のハードウェア構成に限定されない。本発明を実践するコンピュータおよび保存システムは、上記において説明した本発明を実践するために使用されるモジュール、プログラム、およびデータ構造体を保存および読み出しすることができる、既存のI/O装置(例えば、CDおよびDVDドライブ、フロッピーディスクドライブ、ハードドライブなど)も有し得る。これらのモジュール、プログラム、およびデータ構造体は、そのようなコンピュータ読み込み可能メディアにおいてエンコードすることができる。例えば、本発明のデータ構造体は、本発明において使用されるプログラムが保存されている1つまたは複数のコンピュータ読み込み可能メディアから独立したコンピュータ読み込み可能メディアに保存することができる。当該システムの構成要素は、デジタルデータ通信の任意の形態もしくはメディア(例えば、通信ネットワークなど)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネットなど)、ワイヤレスネットワーク、ストレージエリアネットワークなどが挙げられる。
説明では、本発明の完全な理解を提供するために、説明目的において多数の詳細について述べられている。しかしながら、本発明を実践するためにこれらの特定の詳細のすべてが必要というわけではないことは、当業者には明らかであろう。本発明はプロセスとして説明され、これは、通常、フローチャート、構造図、またはブロックダイヤグラムとして表されることにも留意されたい。フローチャートは、逐次プロセスとして作動を説明し得るが、作動の多くは、平行してもしくは同時に実施することができる。さらに、作動の順序は、再配列してもよい。
当技術分野において既知であるように、上記において説明される作動は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアとによるいくつかの組み合わせによって実施することができる。本発明の実施形態の様々な態様は、回路および論理デバイス(ハードウェア)を使用して実践することができ、その一方で、他の態様は、機械読み込み可能メディアに保存された命令(ソフトウェア)を使用して実践することができ、プロセッサによって実行される場合、それらは、当該プロセッサに本発明の実施形態を実行するための方法を実施させるであろう。さらに、本発明のいくつかの実施形態は、ハードウェアにおいて単独で実行することができ、その一方で、他の実施形態は、ソフトウェアにおいて単独で実行することができる。その上、説明される様々な機能は、単一のユニットにおいて実施することができ、あるいは、様々な方法において多数の構成要素にわたって展開することもできる。当該方法は、ソフトウェアによって実施される場合、コンピュータ読み込み可能メディアに保存された命令に基づいて、汎用コンピュータなどのプロセッサによって実行することができる。所望であれば、当該命令は、圧縮および/または暗号化された形式において当該メディアに保存することができる。
上記から、本発明が、仮想ストレージシステムのシン・プロビジョニングのための、方法、機器、およびコンピュータ読み込み可能メディアに保存されたプログラムを提供することは明らかであろう。さらに、本明細書において特定の実施形態について例示し説明しているが、当業者は、当該開示された特定の実施形態を、同じ目的を達成すると思われる任意の構成で代替させることができることは理解されたい。本開示は、本発明のあらゆる適応例または変形例を包含するものであり、以下の特許請求項において使用される用語は、本明細書において開示される特定の実施形態に本発明を限定すると解釈されるべきではないことは理解されたい。むしろ、本発明の範囲は、そのような特許請求項の権利が認められる同等物の全範囲と共に、クレーム解釈の確立された原則に従って解釈されるべき、以下の特許請求項によって完全に決定されるものである。

Claims (3)

  1. メモリと;
    複数の第二コンピュータに提供される、複数の物理ストレージシステムによって形成され、複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む仮想ストレージシステムを管理するように作動可能なプロセッサと、
    を含み、
    前記プロセッサが、前記複数の仮想ボリュームのパフォーマンスをモニターするように作動可能であり、ならびに、前記仮想ストレージシステムへの前記複数の第二コンピュータからのアクセスを伴い前記複数の物理ストレージシステムが作動し、
    モニターされた前記複数の仮想ボリュームのパフォーマンスに基づいて前記仮想ストレージシステムに追加で割り当てられる前記複数の他のタイプの仮想要素の量を計算するように作動可能であり、
    前記複数の他のタイプの仮想要素は、前記複数の物理ストレージシステムが有する物理ストレージリソースから形成され、仮想ポート、仮想キャッシュ、または仮想容量リソースの少なくとも1つを含み、
    前記複数の他のタイプの仮想要素が前記仮想ポートを含み、前記モニターされたパフォーマンスに基づき、前記仮想ポートの帯域幅が事前設定された帯域幅の閾値を超える場合に、前記プロセッサが、前記仮想ストレージシステムに追加で割り当てられる前記仮想ポートの量を計算するように作動可能であり;
    前記複数の他のタイプの仮想要素が前記仮想キャッシュを含み、前記モニターされたパフォーマンスに基づき、前記仮想キャッシュのキャッシュヒット率が事前設定されたキャッシュヒット率の閾値を超える場合に、前記プロセッサが、前記仮想ストレージシステムに追加で割り当てられる前記仮想キャッシュの量を計算するように作動可能であり;ならびに、
    前記複数の他のタイプの仮想要素が前記仮想容量リソースを含み、前記モニターされたパフォーマンスに基づき、前記仮想容量リソースの容量が事前設定された容量の閾値を超える場合に、前記プロセッサが、前記仮想ストレージシステムに追加で割り当てられる前記仮想容量リソースの量を計算するように作動可能である、第一コンピュータ。
  2. 前記プロセッサが、各仮想ボリュームに対して、割り当てられる前記他のタイプの仮想要素の量、使用される前記他のタイプの仮想要素の量、ストレージプールのストレージプール識別番号、構成される前記物理ストレージリソース、ならびに、前記仮想ストレージシステムに前記他のタイプの仮想要素を提供するために前記ストレージプールにプロビジョニングされる前記物理ストレージリソース、を示す仮想ストレージテーブルを作成するように作動可能であり;ならびに、
    前記仮想ストレージテーブルが、前記仮想ストレージシステムに追加で割り当てられる前記複数の他のタイプの仮想要素の量を計算するために使用される、請求項1に記載の第一コンピュータ。
  3. 前記物理ストレージリソースが、前記複数の物理ストレージシステムに対応する複数の前記ストレージプールからプロビジョニングされる、請求項2に記載の第一コンピュータ。
JP2015559224A 2013-07-03 2013-07-03 仮想ストレージシステムのシン・プロビジョニング Active JP6266657B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/049211 WO2015002647A1 (en) 2013-07-03 2013-07-03 Thin provisioning of virtual storage system

Publications (2)

Publication Number Publication Date
JP2016515241A JP2016515241A (ja) 2016-05-26
JP6266657B2 true JP6266657B2 (ja) 2018-01-24

Family

ID=52144092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015559224A Active JP6266657B2 (ja) 2013-07-03 2013-07-03 仮想ストレージシステムのシン・プロビジョニング

Country Status (3)

Country Link
US (1) US20160004476A1 (ja)
JP (1) JP6266657B2 (ja)
WO (1) WO2015002647A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146465B1 (en) 2015-12-18 2018-12-04 EMC IP Holding Company LLC Automated provisioning and de-provisioning software defined storage systems
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US20200073554A1 (en) * 2018-09-05 2020-03-05 International Business Machines Corporation Applying Percentile Categories to Storage Volumes to Detect Behavioral Movement
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070079103A1 (en) * 2005-10-05 2007-04-05 Yasuyuki Mimatsu Method for resource management in a logically partitioned storage system
US8468299B2 (en) * 2007-05-22 2013-06-18 International Business Machines Corporation Virtualized storage performance controller
JP2010033261A (ja) * 2008-07-28 2010-02-12 Hitachi Ltd ストレージ装置及びその制御方法
US8122212B2 (en) * 2009-04-06 2012-02-21 Hitachi, Ltd. Method and apparatus for logical volume management for virtual machine environment
EP2425341B1 (en) * 2009-05-01 2018-07-11 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
JP5314772B2 (ja) * 2010-01-28 2013-10-16 株式会社日立製作所 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
US8407438B1 (en) * 2010-08-16 2013-03-26 Symantec Corporation Systems and methods for managing virtual storage disk data
US8667496B2 (en) * 2011-01-04 2014-03-04 Host Dynamics Ltd. Methods and systems of managing resources allocated to guest virtual machines
WO2012095891A1 (en) * 2011-01-13 2012-07-19 Hitachi, Ltd. Storage control apparatus to which thin provisioning is applied
US8478961B2 (en) * 2011-03-02 2013-07-02 International Business Machines Corporation Dynamic migration of virtual machines based on workload cache demand profiling
US20140130055A1 (en) * 2012-02-14 2014-05-08 Aloke Guha Systems and methods for provisioning of storage for virtualized applications
US9195409B2 (en) * 2012-05-01 2015-11-24 Enmotus, Inc. Storage system with load balancing mechanism and method of operation thereof

Also Published As

Publication number Publication date
JP2016515241A (ja) 2016-05-26
US20160004476A1 (en) 2016-01-07
WO2015002647A1 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
JP6266657B2 (ja) 仮想ストレージシステムのシン・プロビジョニング
US9424057B2 (en) Method and apparatus to improve efficiency in the use of resources in data center
US8595364B2 (en) System and method for automatic storage load balancing in virtual server environments
US10078473B2 (en) Resource allocation in networked storage systems
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
US20170346760A1 (en) QUALITY OF SERVICE (QoS) BASED DEVICE FOR ALLOCATING COMPUTE WORKLOADS TO HOSTS PROVIDING STORAGE AND NETWORK SERVICES IN SOFTWARE-BASED DATA CENTER
US8261018B2 (en) Managing data storage systems
US20130132768A1 (en) Use of a virtual drive as a hot spare for a raid group
US20120191929A1 (en) Method and apparatus of rapidly deploying virtual machine pooling volume
US10425352B2 (en) Policy driven storage hardware allocation
US20170199694A1 (en) Systems and methods for dynamic storage allocation among storage servers
US9996393B2 (en) Dynamic virtual processor manager
US10069906B2 (en) Method and apparatus to deploy applications in cloud environments
US20240007527A1 (en) Machine Learning Based Assignment of Service Levels in a Networked Storage System
US20160364268A1 (en) Computer system, management computer, and management method
US9671966B2 (en) Management computer and computer system
US20180052715A1 (en) Computer system including server storage system
WO2016151584A2 (en) Distributed large scale storage system
US20170206021A1 (en) Method and apparatus of subsidiary volume management
US20180300259A1 (en) Local disks erasing mechanism for pooled physical resources
US8631111B2 (en) Method and apparatus of selection interface by queue and workload for storage operation
US11003378B2 (en) Memory-fabric-based data-mover-enabled memory tiering system
US10768844B2 (en) Internal striping inside a single device
US20160246625A1 (en) Computer system and management computer controlling method
US9658803B1 (en) Managing accesses to storage

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170712

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

R150 Certificate of patent or registration of utility model

Ref document number: 6266657

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150