(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2016-502180(P2016-502180A)
(43)【公表日】2016年1月21日
(54)【発明の名称】ホスト側フラッシュストレージ容量を仮想マシンにサーフェシングする技術
(51)【国際特許分類】
G06F 3/06 20060101AFI20151218BHJP
G06F 13/10 20060101ALI20151218BHJP
G06F 3/08 20060101ALI20151218BHJP
【FI】
G06F3/06 301Z
G06F13/10 330C
G06F3/08 H
G06F13/10 340A
【審査請求】有
【予備審査請求】未請求
【全頁数】29
(21)【出願番号】特願2015-540714(P2015-540714)
(86)(22)【出願日】2013年10月25日
(85)【翻訳文提出日】2015年4月30日
(86)【国際出願番号】US2013066776
(87)【国際公開番号】WO2014116312
(87)【国際公開日】20140731
(31)【優先権主張番号】13/748,247
(32)【優先日】2013年1月23日
(33)【優先権主張国】US
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
(71)【出願人】
【識別番号】510149482
【氏名又は名称】ヴイエムウェア インコーポレイテッド
【氏名又は名称原語表記】VMware,Inc.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】フェラン、トーマス エイ.
(72)【発明者】
【氏名】ラワット、マヤンク
(72)【発明者】
【氏名】マドナニ、キラン
(72)【発明者】
【氏名】チャン、ウェイ
(72)【発明者】
【氏名】リュー、デン
(72)【発明者】
【氏名】バンダルーパリ、サンバシバ
(57)【要約】
ホストシステム上で動作する複数のVMにホスト側フラッシュストレージ容量をサーフェシングする技術が提供される。1つの実施形態において、ホストシステムは、複数のVMの中の各VMのために、ホストシステムにローカル接続されたフラッシュストレージデバイスの中にフラッシュストレージ領域割当分を作る。するとホストシステムは、そのフラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとしてVMにより読取可能および書込み可能となるようにする。
【特許請求の範囲】
【請求項1】
ホストシステム上で動作するように構成された複数の仮想マシンにホスト側フラッシュストレージ容量をサーフェシングする方法において、
前記ホストシステムにより、前記複数の仮想マシンのうちの各仮想マシンのために、前記ホストシステムにローカル接続されたフラッシュストレージデバイスにフラッシュストレージ領域割当分を作成すること、
前記ホストシステムにより、前記フラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとして前記仮想マシンによって読取可能および書込み可能となるようにすることを備える方法。
【請求項2】
前記仮想マシンが一時停止または電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することをさらに備える、請求項1に記載の方法。
【請求項3】
前記仮想マシンが動作再開または再び電源投入された時に前記仮想マシンのために前記フラッシュストレージデバイスに新しいフラッシュストレージ領域割当分を作成することをさらに備える、請求項2に記載の方法。
【請求項4】
前記仮想マシンが一時停止された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存すること、
前記保存した後に前記フラッシュストレージ領域割当分を解放することを含む、請求項2に記載の方法。
【請求項5】
前記データが前記バックエンドストレージデバイス上にある仮想マシンイメージファイルに保存される、請求項4に記載の方法。
【請求項6】
前記仮想マシンが動作再開された時に前記仮想マシンのために前記フラッシュストレージデバイスに前記新しいフラッシュストレージ領域割当分を作成することは、
バックエンドストレージデバイスに以前保存されたデータを前記新しいフラッシュストレージ領域割当分に復元することを含む、請求項3に記載の方法。
【請求項7】
前記仮想マシンが電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存せずに、前記フラッシュストレージ領域割当分を解放することを含む、請求項2に記載の方法。
【請求項8】
前記仮想マシンが他のホストシステムに移行された時に前記仮想マシンのための前記フラッシュストレージ領域割当分を解放することをさらに備える請求項1に記載の方法。
【請求項9】
前記解放する前に、
前記フラッシュストレージ領域割当分に保存されていたデータを、前記他のホストシステムにローカル接続されたフラッシュストレージデバイス上にある新しいフラッシュストレージ割当分にコピーすることをさらに備える請求項8に記載の方法。
【請求項10】
前記仮想マシンのための前記フラッシュストレージ領域割当分の大きさが、前記仮想マシンのプロビジョニング時にユーザによって決定される、請求項1に記載の方法。
【請求項11】
前記仮想マシンのための前記フラッシュストレージ領域割当分が、前記フラッシュストレージデバイス上にあるファイルに対応する、請求項1に記載の方法。
【請求項12】
プロセッサにより実行可能なコンピュータソフトウェアを保存する非一時的コンピュータ可読記憶媒体において、前記コンピュータソフトウェアが、ホストシステム上で動作するように構成された複数の仮想マシンにホスト側フラッシュストレージ容量をサーフェシングする方法を具現化し、前記方法が、
前記複数の仮想マシンのうちの各仮想マシンのために、前記ホストシステムにローカル接続されたフラッシュストレージデバイスにフラッシュストレージ領域割当分を作成すること、
前記フラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとして前記仮想マシンによって読取可能および書込み可能となるようにすることを備える非一時的コンピュータ可読記憶媒体。
【請求項13】
前記方法が、
前記仮想マシンが一時停止または電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することをさらに備える、請求項12に記載の非一時的コンピュータ可読記憶媒体。
【請求項14】
前記方法が、
前記仮想マシンが動作再開または再び電源投入された時に前記仮想マシンのために前記フラッシュストレージデバイスに新しいフラッシュストレージ領域割当分を作成することをさらに備える、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項15】
前記仮想マシンが一時停止された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存することを含み、
前記仮想マシンが動作再開された時に前記仮想マシンのために前記フラッシュストレージデバイスに前記新しいフラッシュストレージ領域割当分を作成することは、
前記バックエンドストレージデバイスに保存されていたデータを前記新しいフラッシュストレージ領域割当分に復元することを含む、請求項14に記載の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記仮想マシンが電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていた前記データを前記バックエンドストレージデバイスに保存せずに、前記フラッシュストレージ領域割当分を解放することを含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
ホストシステムであって、
ローカル接続されたフラッシュストレージデバイスと、
プロセッサであって、
複数の仮想マシンのうちの各仮想マシンのために、前記フラッシュストレージデバイスにフラッシュストレージ領域割当分を作成し、
前記フラッシュストレージ領域割当分を仮想フラッシュメモリデバイスとして前記仮想マシンにより読取可能および書込み可能にするように構成された前記プロセッサとを備えるホストシステム。
【請求項18】
前記プロセッサが、
前記仮想マシンが一時停止または電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放するようにさらに構成されている、請求項17に記載のホストシステム。
【請求項19】
前記プロセッサが、
前記仮想マシンが動作再開または再び電源投入された時に前記仮想マシンのために前記フラッシュストレージデバイスに新しいフラッシュストレージ領域割当分を作成するようにさらに構成されている、請求項18に記載のホストシステム。
【請求項20】
前記仮想マシンが一時停止された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存することを含み、
前記仮想マシンが動作再開された時に前記仮想マシンのために前記フラッシュストレージデバイスに前記新しいフラッシュストレージ領域割当分を作ることは、
前記バックエンドストレージデバイスに保存されていた前記データを前記新しいフラッシュストレージ領域割当分に復元することを含む、請求項19に記載のホストシステム。
【発明の詳細な説明】
【背景技術】
【0001】
仮想化環境では、仮想マシン(VM)を動作させるホストシステムが1つ以上のローカル接続された(すなわち、「ホスト側」)フラッシュストレージデバイスを含むことがますます一般的となりつつある。例えば、ホスト側フラッシュストレージデバイスの1種が、ホストシステムの筐体内に据え付けられるソリッドステートディスク(SSD)またはPCIeフラッシュカードである。ホスト側フラッシュストレージデバイスの別の1種は、周辺インタフェースを介してホストシステムに直接接続される外付けフラッシュドライブまたは装置である。
【0002】
一般に、ホスト側フラッシュストレージデバイスは、ホストシステムがネットワーク(例えば、ファイバチャネル、イーサネット、その他)上でアクセスするバックエンドストレージアレイよりもかなり低い読取/書込み遅延性とより高い帯域幅に対応できる。このようなパフォーマンスの改善には多くの理由がある。第一に、バックエンドストレージアレイは通常、複数のホストシステムからの読取/書込みリクエストに応えなければならないが、各バックエンドストレージアレイが有する待ち行列は有限であり、このことは、そのアレイが特定のホストシステムのために対応できる帯域幅/遅延時間の量に影響を与える。第二に、ストレージネットワークはスイッチやルータ等の能動素子を含んでいてもよく、それによってネットワークのエンドポイント(例えば、ホストシステムとバックエンドストレージデバイス)間の遅延時間が長くなる。それゆえ、ホスト側フラッシュストレージデバイスのほうが、ホストシステム上で動作するVMが頻繁に素早くアクセスする必要のあるデータをキャッシュに格納/保存するのに適している。残念ながら、既存の仮想化プラットフォームは、ホスト側フラッシュストレージデバイスの一部をVMに自動的に割り当て、サーフェシングして(surfacing)(すなわち、アクセス可能/可視的にして)、VMがそのデバイスの低遅延性を生かせるようにする機構を提供しない。さらに、既存の仮想化プラットフォームは、VM間でのサーフェシングされたフラッシュストレージ容量の割当をホストシステムの状況の変化に応答して最適化することができない。
【発明の概要】
【課題を解決するための手段】
【0003】
ホスト側フラッシュストレージ容量をあるホストシステム上で動作する複数のVMにサーフェシングするための技術が提供される。1つの実施形態において、ホストシステムは、複数のVMの中の各VMのために、そのホストシステムにローカル接続されたフラッシュストレージデバイスの中にフラッシュストレージ領域割当分を作る。するとホストシステムは、このフラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとしてVMによって読取可能および書込み可能になるようにする。
【0004】
以下の詳細な説明と添付の図面により、具体的な実施形態の性質と利点をよりよく理解できる。
【図面の簡単な説明】
【0005】
【
図1】1つの実施形態による、ホスト側フラッシュストレージ容量を仮想フラッシュメモリデバイスとしてVMにサーフェシングする機能をサポートするシステム環境のブロック図を示す。
【
図2】1つの実施形態による、ホスト側フラッシュストレージ容量をあるVMに、そのVMのプロビジョニングおよび電源投入時にサーフェシングするための、
図1のシステム環境内のフローを示す。
【
図3】1つの実施形態による、あるVMのためのホスト側フラッシュストレージ領域割当分を、そのVMの一時停止またはスナップショット作成時に解放するための、
図1のシステム環境内のフローを示す。
【
図4】1つの実施形態による、あるVMのための新しいホスト側フラッシュストレージ領域割当分を、そのVMの動作再開時に割り当てるための、
図1のシステム環境内のフローを示す。
【
図5】1つの実施形態による、
図2のフローに関するさらに詳細な点を提供するフローチャートを示す。
【
図6】1つの実施形態による、
図3のフローに関するさらに詳細な点を提供するフローチャートを示す。
【
図7】1つの実施形態による、
図4のフローに関するさらに詳細な点を提供するフローチャートを示す。
【
図8】1つの実施形態による、あるVMのためのホスト側フラッシュストレージ領域割当分を、そのVMの電源切断時に解放するためのプロセスのフローチャートを示す。
【
図9】1つの実施形態による、あるVMのためのホスト側フラッシュストレージ領域割当分を、そのVMが1つのホストシステムから他のホストシステムに移動された時に移行させるためのプロセスのフローチャートを示す。
【発明を実施するための形態】
【0006】
以下の記述の中では、説明を目的として、様々な実施形態を理解できるように多数の例と詳細点が示されている。しかしながら、当業者にとっては、特定の実施形態はこれらの詳細点のいくつかがなくても実施でき、またはその改変または均等物を用いて実施することもできることが明白であろう。
【0007】
具体的な実施形態は、ホスト側フラッシュストレージ容量を仮想フラッシュメモリ(VFM)デバイスとしてVMにサーフェシング(surfacing)するための技術を提供する。1つの実施形態において、特定のVMに電源投入すると、ホストシステムは自動的にホスト側ストレージデバイスの中でそのVMのための領域を割り当てることができる。このフラッシュストレージ領域割当分の大きさは、例えばVMのプロビジョニング時にユーザ/システム管理者が指定するパラメータに基づくものとすることができる。するとホストシステムは、そのフラッシュストレージ領域割当分をVFMデバイスとしてVMにサーフェシングする、すなわちアクセス可能にすることができ、それによってこのVMはVFMデバイスを介してフラッシュストレージ領域割当分からの読取とフラッシュストレージ領域割当分への書込みを行うことができる。そのVM上で実行されるアプリケーションはVFMデバイスを様々な方法で利用して、ホスト側フラッシュストレージデバイスの低遅延性を生かすことができる。
【0008】
特定の実施形態において、ホストシステムは、VMに割り当て/サーフェシングするホスト側フラッシュストレージ領域を動的に管理して、非アクティブ状態の(例えば一時停止または電源切断された)VMがホスト側フラッシュストレージデバイスの領域をまったく消費しないようにすることができる。例えば、VMが一時停止または電源切断された時、ホストシステムは、そのVMに割り当てられたフラッシュストレージ領域を解放することができ、ホストシステムは、解放されたフラッシュストレージ領域を他のVMが使用するように割り当てなおすことができる。その後このVMの動作が再開されるか、電源投入された時に、ホストシステムはこのVMにホスト側フラッシュストレージデバイスの新しい部分をそのVMの要求に応じて割り当てることができる。このようにして、ホストシステムは、各VMがホスト側フラッシュストレージ容量を実際に必要な時(すなわち、そのVMが活発に動作している(actively running)時)だけ使用するのを確実にすることができ、それゆえ、複数のVM間でのこの容量の共有を最適化できる。
【0009】
他の実施形態において、あるVMのためのホスト側フラッシュストレージ領域をVMの一時停止/動作再開時およびVMの電源切断/電源投入時に解放して再割当するプロセスの一環として、ホストシステムはそのVMのためのVFMデバイスを不揮発性メモリデバイスまたは揮発性メモリデバイスとして扱うことができる。前者の場合、ホストシステムはVMのフラッシュメモリストレージ割当分の中に保存されたデータをそのVMの一時停止または電源切断時にバックエンドストレージデバイス(例えばハードディスクベースのストレージアレイ)に保存できる。ホストシステムはその後、VMが動作再開または電源投入されると、保存されていたデータをVMの新しいフラッシュストレージ割当分に復元できる。このアプローチによれば、VMは、VFMデバイス内のデータが(他の何れの通常のストレージデバイスとも同様に)VMの一時停止状態中およびVMのパワーサイクル中の両方において持続されると錯覚する(illusion)。
【0010】
後者の場合、ホストシステムはVMのフラッシュストレージ割当内のデータを、そのVMが一時停止され、動作再開された時にのみ、バックエンドストレージデバイスに保存し/バックエンドストレージデバイスから復元することができる。ホストシステムはこの保存/復元プロセスをVMの電源切断と投入時には行わず、これはVMのフラッシュストレージ割当分の中のデータがVMのパワーサイクル中に失われることを意味する。このアプローチによれば、VMは、VMFデバイスが揮発性メモリ(例えばRAM)の1つのティア(a tier)に対応すると錯覚する。VFMデバイスは(VMのライフサイクルから見た場合に)揮発性メモリデバイスとして機能できるため、VFMデバイスは仮想フラッシュ「メモリ」デバイス(仮想フラッシュ「ストレージ」デバイスではない)と呼ばれる。しかしながら、後でより詳しく説明するように、VMは標準的なブロックベースプロトコル(例えばSCSI)を介してVFMデバイスにアクセスできる。
【0011】
図1は、ある実施形態による、ホスト側フラッシュストレージ容量をVFMデバイスとしてVMにサーフェシングする機能をサポートするシステム環境100を示している。図のように、システム環境100は仮想化ソフトウェア104を実行するホストシステム102を含む。仮想化ソフトウェア104(「ハイパーバイザ」としても知られる)は、多くの仮想マシンモニタ(virtual machine monitor : VMM)106(1)〜106(N)を含むソフトウェア層である。各VMM 106(1)〜106(N)は、対応するVM 108(1)〜108(N)が動作できる仮想ハードウェア環境を提供する。
【0012】
1つの実施形態において、仮想化ソフトウェア104はホストシステム102の物理ハードウェアプラットフォームと直接やり取りでき、介在するホストオペレーティングシステムはない。この実施形態において、仮想化ソフトウェア104はVMMによるホストシステム102の各種の物理ハードウェアデバイスへのアクセスを管理するカーネル(図示せず)をさらに含むことができる。代替的な実施形態においては、仮想化ソフトウェア104は、「ホストされた」構成の一部とすることができ、「ホストされた」構成において、仮想化ソフトウェア104がホストオペレーティングシステム(図示せず)上で動作する。この実施形態において、仮想化ソフトウェア104は、物理ハードウェアデバイスのリソース管理をホストオペレーティングシステムに依存できる。当業者であれば、仮想化ソフトウェア104の設計と構成のための様々な改変や代替案がわかるであろう。
【0013】
システム環境100はまた、中央管理サーバ(central management server : CMS)110とバックエンドストレージコンポーネント112も含み、これらは1つ以上のネットワーク114を介してホストシステム102と通信する。CMS 110は、ホストシステム102に関して、VMライフサイクル管理、ハードウェアモニタリング、ロードバランシング(load balancing)、その他の各種の管理タスクを実行できる。
図1には1つのホストシステムだけが示されているが、CMS 110は同時に多数のホストシステム(各々が複数のVMを含む)、例えばある仮想インフラストラクチャクラスタ内のホストシステムの全部を同時に管理できると理解するべきである。また、CMS 110は異なるデータセンタにわたって(おそらく、異なる地理的場所に)分散された多数のホストシステムを管理するように連合させることができるとも理解するべきである。
【0014】
バックエンドストレージコンポーネント112は通常、ハードディスクベースのストレージアレイであり、仮想ディスクファイル(「virtual disk file : VMDK」として知られる)およびその他の永続的ファイルを保存でき、ホストシステム102および/またはCMS 110がそのランタイム動作中にそのコンポーネント112からの読取りまたはそのコンポーネント112への書込みを行う。
【0015】
図1の実施形態において、ホストシステム102はフラッシュストレージデバイス116に接続される。1つの実施形態において、フラッシュストレージデバイス116はローカル接続された(すなわち、ホスト側)デバイス、例えばSSD、PCIeフラッシュカード、フラッシュドライブ/装置、またはこれに類するものとすることができる。他の実施形態において、フラッシュストレージデバイス116はネットワーク接続デバイス(例えばストレージファブリック/ネットワークを介する)とすることができる。また別の実施形態において、フラッシュストレージデバイス116は「ホスト共有」デバイスとして、複数のホストシステム間でフラッシュストレージデバイス116が共有されるようにすることができる。「背景技術」の項で述べたように、VM 108(1)〜108(N)がフラッシュストレージデバイス116にVM−awareでアクセスし(VM-aware access)、VM108(1)−108(N)内で実行されているアプリケーションがデバイスの低遅延読取/書込み能力を生かせるようにすることが望ましい。
【0016】
この機能を有効にするために、VMM 106(1)〜106(N)は各々、VFMモジュール118(1)〜118(N)を含むことができる。後でより詳しく述べるように、各VFMモジュール118(1)〜118(N)は、対応するVM 108(1)〜108(N)を最初に電源投入した時に、フラッシュストレージデバイス116の一部をそのVMに自動的に割り当てる(VFM割当分120(1)〜120(N)として示されている)。1つの実施形態において、フラッシュストレージデバイス116は、論理ボリュームマネージャ(logical volume manager)またはF2FS(flash friendly file system)でフォーマットすることができ、これによってVFMモジュールはVFM割当分をデバイス116上のファイルとして作ることができる。すると、VFMモジュールをそのVMMと相互運用して、割り当てられたその部分を仮想フラッシュメモリ(すなわちVFM)デバイスとしてVMにサーフェシングすることができる(VFMデバイス122(1)〜122(N)として示されている)。これによって、VM上で実行中のアプリケーションは、サーフェシングされたVFMデバイスを介してフラッシュストレージデバイス116を見て、やり取りする(例えば、そこから読み出し、そこに書き込む)ことができる。
【0017】
これに加えて、各VFMモジュール118(1)〜118(N)は、対応するVM 108(1)〜108(N)の一時停止、スナップショット作成、または電源切断時に、フラッシュストレージデバイス116の中のそのVMのVFM割当分を解放して、そのVMが非アクティブ状態である間にその解放されたVFM割当分を他の目的に使用できるようにすることが可能である。VMが動作再開または再び電源投入されると、VFMモジュールはフラッシュストレージデバイス116の中の新しい領域をそのVMにそのVMの要求に応じて割り当てなおすことができる。このことは、VMに対して、VMがそのVFMデバイスに(実際にはそうでなくても)持続的にアクセスできるというインプレッション(impression)を与える。1つの実施形態において、VFMモジュールはVMのVFMデバイス/VFM割当分を不揮発性メモリとして扱い、それゆえ、VMの一時停止またはVMの電源切断時にVFM割当分に保存されていたデータをバックエンドストレージ112にバックアップすることができる。代替的な実施形態において、VFMモジュールはVMのVFMデバイス/VFM割当分を揮発性メモリとして扱い、それゆえ、VMの電源切断時にVFM割当分に保存されていたデータが廃棄されるようにすることができる。
【0018】
図2は、ある実施形態による、あるVMに対して、そのVMのプロビジョニング(provisioning)および電源投入時にフラッシュストレージデバイス116の一部をサーフェシングするための、システム環境100内のフロー200を示している。フロー200のステップ(1)(参照番号202)で、CMS 110はホストシステム102上に配置するための新しいVM(例えばVM 108(1))のプロビジョニングを行うことができる。このステップの一環として、CMS 110は例えばシステム管理者から、VM 108(1)のための所望のVFM割当分の大きさを示すパラメータを受け取ることができる。1つの実施形態において、CMS 110はこのパラメータを他のVM構成情報と共に適当なVMメタデータファイル(例えば、「.VMXファイル」)内に保存できる。
【0019】
ステップ(2)(参照番号204)で、CMS 110はホストシステム102上で実行中の仮想化ソフトウェア104に、VM 108(1)に電源投入するためのコマンドを送信できる。これに応答して、仮想化ソフトウェア104はVMM 106(1)にVM 108(1)のための電源投入プロセスを開始させることができる。この電源投入プロセスの一環として、VMM 106(1)のVFMモジュール118(1)は、VM 108(1)のためにフラッシュストレージデバイス116の一部をVFM割当分120(1)の形態で割り当てることができる(ステップ(3)、参照番号206)。VFMモジュール118(1)は、例えばステップ(1)で受け取ったユーザの設定によるVFM割当分の大きさのパラメータに基づいてVFM割当分120(1)の大きさを決定できる。
【0020】
VFMモジュール118(1)がVFM割当分120(1)を作ると、VFMモジュール118(1)は(VMM 106(1)と共に)VFM割当分120(1)をVM 108(1)にVFMデバイス122(1)としてサーフェシングする、すなわちアクセス可能にすることができる(ステップ(4)、参照番号208)。換言すれば、VFMモジュール118(1)/VMM 106(1)はVFM割当分120(1)がVM 108(1)においてVFMデバイス122(1)として提示されるようにすることができ、それによってVM 108(1)内で実行中のアプリケーションはVFMデバイス122(1)を介してVFM割当分120(1)からの読取およびVFM割当分120(1)への書込みを行うことができる。その後、CMS 110とホストシステム102はフロー200のステップを繰り返して別のVM 108(2)〜108(N)のプロビジョニングと電源投入を行うことができ、その各々にフラッシュストレージデバイス116の中のVFM割当分120(2)〜120(N)に対応するVFMデバイス122(2)〜122(N)がサーフェシングされる。このようにして、ホストシステム102はフラッシュストレージデバイス116のストレージ領域をVM 108(1)〜108(N)間で自動的に共有し、その領域を各VM内で利用可能にすることができる。
【0021】
図2には示されていないが、CMS 110とホストシステム102は、VM 108(1)のプロビジョニングと電源投入がすでになされている時にVMF割当分102(1)を作り、VM 108(1)にサーフェシングするために、フロー200と同様のフローを実行できる(これは、「ホットプラグ(hot plug)」シナリオと呼ばれる)。ホットプラグシナリオにおいて、CMS 110は、VM 108(1)の動作中にVFM構成コマンドを仮想化ソフトウェア104に送信できる。VFM構成コマンドは、例えば新しいVFMデバイスをVM 108(1)に追加するリクエストを(ユーザの設定による割当分の大きさと共に)含むことができる。するとVFMモジュール118(1)はフロー200のステップ(3)と(4)に従って、ユーザの設定による大きさに基づいてVFM割当分120(1)を作り、VFM割当分120(1)をVFM 108(1)にサーフェシングすることができる。特定の実施形態において、VFM構成コマンドはまた、VM 108(1)のための既存のVFM割当分を除去するための「削除」コマンドを含むこともできる。新しいVM割当分を追加する場合と既存のVFM割当分を削除する場合の何れにおいても、CMS 110は、処理が成功裏に完了した時にVFM 108(1)のためのメタデータファイル(すなわち、前述の「.VMXファイル」)の変更を記録できる。
【0022】
図3と4は、ある実施形態よる、VM 108(1)の一時停止/スナップショット作成およびその後のVM 108(1)の動作再開のために
図2のフロー200の後に実行可能なフロー300と400をそれぞれ示す。フロー300のステップ(1)(参照番号302)で、CMS 110はVM 108(1)を一時停止し、またはそのスナップショットを作成するためのコマンドを仮想化ソフトウェア104に送信できる。各種の実施形態において、CMS 110はこのコマンドを、例えばシステム管理者または自動プロセス/エージェントからの入力に応答して送信できる。
【0023】
一時停止/スナップショットコマンドを受け取ると、仮想化ソフトウェア104はVMM 106(1)にVM 108(1)のための一時停止/スナップショット作成プロセスを開始させることができる。この一時停止/スナップショット作成プロセスの一環として、VFMモジュール118(1)はVFM割当分120(1)に保存されていたデータをバックエンドストレージ112に保存できる(ステップ(2)、参照番号304)。この保存プロセスは矢印308で示される。するとVFMモジュール118(1)はVFM割当分120(1)を解放でき、それによってVFM割当分120(1)に関連するフラッシュストレージ容量は他の目的に利用可能とされる(ステップ(3)、参照番号306)。その結果、VM 108(1)は、VM 108(1)が一時停止状態またはスナップショット作成状態である間はフラッシュストレージデバイス116内のストレージ領域を一切使用しない。
【0024】
ここで、
図4のフロー400を参照すると、後の時点で、CMS 110はVM 108(1)の動作を再開させるためのコマンドを仮想化ソフトウェア104に送信できる(フロー400のステップ(1)、参照番号402)。動作再開コマンドを受け取ると、仮想化ソフトウェア104はVMM 106(1)にVM 108(1)のための動作再開プロセスを開始させることができ、仮想化ソフトウェア104が今度はVFMモジュール118(1)にフラッシュストレージデバイス116の中にVM108(1)のための新しいVFM割当分408(1)を作らせる(ステップ(2)、参照番号404)。新しいVFM割当分408(1)の大きさを決定するために、VFMモジュール118(1)はフロー200のステップ(2)で述べたものと同じユーザの設定によるVFM割当分の大きさのパラメータを参照できる。
【0025】
最後にフロー400のステップ(3)(参照番号404)で、VFMモジュール118(1)は以前にバックエンドストレージ112に保存されたVFMデータを新しいVFM割当分408(1)に復元または転送し、それによって基本的にフラッシュストレージデバイス116の中に当初のVFM割当分120(1)の状態を作り直すことができる。このデータ転送は矢印408で示される。VM動作再開プロセスが完了すると、VM 108(1)はVFMデバイス122(1)を介して新しいVFM割当分408(1)(これには以前に当初のVFM割当分120(1)に保存されたデータのすべてが含まれる)にアクセスできる。
【0026】
フロー300と400に従ってVM 108(1)のためのVFM割当分を解放し、作り直すことによって、VFMモジュール118(1)はVM 108(1)が、このVMが活発に動作していない時(例えば、一時停止またはスナップショット作成時)にはフラッシュストレージデバイス116内のストレージ領域を不必要に拘束しないようにすることができる。それゆえ、このアプローチは、VM 108(1)〜108(N)間のフラッシュストレージデバイス116の利用を最適化できる。さらに、VFM割当分120(1)の中に保存されたデータをバックエンドストレージ112に保存し、バックエンドストレージ112から復元することにより、VFMモジュール118(1)は、VM 108(1)の動作再開時にもVM 108(1)がVFMデバイス122(1)を介してこのデータを利用できるのを確実にすることができる。
【0027】
前述のように、特定の実施形態において、VFMモジュール118(1)はVM 108(1)のVFMデバイス122(1)を不揮発性メモリデバイスまたは揮発性メモリデバイスの何れとしても扱うことができる。不揮発性メモリデバイスまたは揮発性メモリデバイスとしてのVFMデバイス122(1)の分類は、例えばシステム管理者がVM 108(1)のプロビジョニング時に設定するパラメータに依存できる。VFMモジュール118(1)がVFMデバイス122(1)を不揮発性メモリデバイスと考える実施形態では、VFMモジュール118(1)は、VM 108(1)がそれぞれ電源切断された時と電源投入された時に、一時停止/スナップショット作成フロー300と動作再開フロー400と実質的に同様のフローを実行できる。例えば、VM 108(1)が電源切断されると、VFMモジュール118(1)はVFM割当分120(1)に保存されたデータをバックエンドストレージ112に保存し、その後、VFM割当分120(1)を解放できる。VM 108(1)に再び電源投入されると、VFMモジュール118(1)はフラッシュストレージデバイス116の中にVM 108(1)のための新しいVFM割当分を作り、以前に保存されたデータをこの新しいVFM割当分に復元できる。これにより、VFMデバイス122(1)が物理的な不揮発性メモリデバイスであるという錯覚が生じ、これは、VM 108(1)から見ると、VFMデバイス122(1)内に保存されたデータがVMのパワーサイクルを通じて持続されるからである。
【0028】
VFMモジュール118(1)がVFMデバイス122(1)を揮発性メモリデバイスと考える実施形態において、VFMモジュール118(1)は単に、VMの電源切断時にVFM割当分120(1)を解放し、VM電源投入時にフラッシュストレージデバイス116の中にVM 108(1)のための新しいVFM割当分を作ることができ、VFM割当分120(1)内のデータをバックエンドストレージ112にバックアップしない。これにより、VFMデバイス122(1)が物理的な揮発性メモリデバイスであるという錯覚が生じ、このことは、VM 108(1)から見ると、VFMデバイス122(1)に保存されたデータがVMパワーサイクル中に失われるからである。
【0029】
図5は、ある実施形態による、
図2のVM電源投入フロー中のホストシステム102による処理をより詳しく説明するフローチャート500を示す。ブロック502で、仮想化ソフトウェア104は、CMS 110から、VM(例えば、VM 108(1))に電源投入するためのコマンドを受け取ることができる。これに応答して、仮想化ソフトウェア104は、VMM(例えばVMM 106(1))のインスタンスを作成し、VMMにVM 108(1)に関する電源投入プロセスを開始させることができる(ブロック504)。
【0030】
ブロック506で、VMM 106(1)に含まれるVFMモジュール(例えばVFMモジュール118(1))はVM 108(1)のためのVFM割当分の大きさを決定できる。例えば、VFMモジュール118(1)はこの情報を、(
図2に関して前述したように)CMS 110がVMのプロビジョニング時に作る「.VMXファイル」から決定できる。VFMモジュール118(1)はまた、フラッシュストレージデバイス116の中の利用可能なストレージ領域の量を決定できる(ブロック508)。
【0031】
ブロック510で、VFMモジュール118(1)は、フラッシュストレージデバイス116にブロック506で決定されたVFM割当分の大きさを賄うのに十分な空き領域があるか否かをチェックできる。フラッシュストレージデバイス116に十分な空き領域がない場合、VFMモジュール118(1)は仮想化ソフトウェア104に知らせることができ、VFMモジュール118(1)がVM電源投入プロセスを中止できる(ブロック512)。1つの実施形態において、この段階でのVM電源投入プロセス中止の決定は、VMのグラニュラリティ(VM granularity)に応じて管理されるポリシ決定とすることができる。仮想化ソフトウェア104はまた、CMS 110に対し、VM 108(1)に電源投入できないと通知することもできる(ブロック514)。すると、CMS 110は、VM 108(1)を別のホストシステムに設置するよう試みてもよい。
【0032】
これに対し、フラッシュストレージデバイス116に十分な空き領域がある場合、VFMモジュール118(1)は、フラッシュストレージデバイス116の中に、ブロック506で決定された大きさのVFM割当分(例えばVFM割当分120(1))を作ることができる(ブロック516)。具体的な実施形態において、作られたVFM割当分は仮想ディスクファイルに対応するものとすることができる。他の実施形態において、作られたVFM割当分は論理ボリュームマネージャ(logical volume manager)によって作成されたブロックデバイスとすることができる。
【0033】
VFMモジュール118(1)がVFM割当分120(1)を作ると、VFMモジュール118(1)/VMM 106(1)/仮想化ソフトウェア104は、VM 108(1)にVFM割当分120(1)をVFMデバイスとしてサーフェシングするためのステップを実行できる。特定の実施形態において、VFM割当分120(1)は、ブロックベースのデバイス(例えば仮想SCSIデバイス)としてサーフェシングできる。例えば、ブロック518で、VFMモジュール118(1)は、VFM割当分120(1)のためのハンドルを、VFM割当分120(1)に対応する仮想SCSIデバイス(例えばVFMデバイス122(1))を作ることができるVMM 106(1)に渡す。ブロック520で、仮想化ソフトウェア104は、VMの起動手順の一環として、SCSI照会コマンド(SCSI inquiry command)をVM 108(1)から受け取ることができる。最後に、ブロック522において、仮想化ソフトウェア104はVFMデバイス122(1)を特定するSCSI照会応答をVM 108(1)に送信できる。1つの実施形態において、SCSI照会応答は、VFMデバイス122(1)がフラッシュベースのデバイスであることをVM 108(1)に対して示す情報を含むことができる。別の実施形態において、SCSI照会応答は、(VMライフサイクルから見て)VFMデバイス122(1)が不揮発性メモリデバイスまたは揮発性メモリデバイスの何れかとして挙動するように構成されていることをVM 108(1)に対して示す情報を含むことができる。
【0034】
図6と
図7は、ある実施形態による、
図3と
図4のVM一時停止/スナップショット作成およびVM動作再開フローの中のホストシステム102による処理をより詳しく説明するフローチャート600と700をそれぞれ示す。ブロック602で、仮想化ソフトウェア104は、CMS 110から、VM 108(1)を一時停止するか、またはそのスナップショットを作成するためのコマンドを受け取ることができる。これに応答して、仮想化ソフトウェア104は、VMM 106(1)にVM 108(1)のためのVMの一時停止/スナップショット作成プロセスを開始するように要求できる(ブロック604)。
【0035】
一時停止/スナップショット作成プロセスの一環として、VMM 106(1)のVFMモジュール118(1)はVFM割当分120(1)に保存されていたデータをバックエンドストレージ112に保存できる。特定の実施形態において、VFMモジュール118(1)はこのデータを、バックエンドストレージ112上にあるVM 108(1)のためのVMイメージファイルに保存できる(ブロック606)。VMイメージファイルは、とりわけ、VM 108(1)のRAMの状態を含むことができる。他の実施形態において、VFMモジュール118(1)はこのデータを別の場所、例えばVM 108(1)の仮想ディスクのうちの1つに保存できる。
【0036】
その後、VFMモジュール118(1)はVFM割当分120(1)を解放できる(ブロック608)。このステップは、VFM割当分120(1)に対応するファイルを削除すること、またはそれ以外にフラッシュストレージデバイス116の中のVFM割当分120(1)に関連するストレージ領域を回収して、その領域を再び使用できるようにすることを含むことができる。
【0037】
ここで
図7を参照すると、ブロック702で、仮想化ソフトウェア104は、CMS 110から、一時停止状態のVM 108(1)の動作を再開するためのコマンドを受け取ることができる。これに応答して、仮想化ソフトウェア104はVMM 106(1)にVM 108(1)のためのVM動作再開プロセスを開始するように要求できる(ブロック704)。
【0038】
ブロック706〜710で、VMM 106(1)のVFMモジュール118(1)は、フラッシュストレージデバイス116にVM 108(1)のための新しいVFM割当分を賄うのに十分な空き領域があるか否かを判定するステップを実行できる。各種の実施形態において、ブロック706〜710は
図5のブロック506〜510と実質的に同様とすることができる。フラッシュストレージデバイス116に十分な空き領域がない場合、仮想化ソフトウェア104は動作再開プロセスを中止し、CMS 110にVM 108(1)の動作を再開できないと知らせることができる(ブロック712と714)。するとCMS 110は、VM 108(1)を十分なフラッシュストレージ領域を有する別のホストシステムに移行させることを試みてもよい。
【0039】
フラッシュストレージデバイス116に十分な空き領域がある場合、VFMモジュール118(1)は、フラッシュストレージデバイス116の中に当初のVFM割当分120(1)と実質的に同じ大きさの新しいVFM割当分(例えばVFM割当分408(1))を作ることができる(ブロック716)。このステップの一部として、VFMモジュール118(1)は、新しいVFM割当分408(1)を以前にサーフェシングされたVFMデバイス122(1)に関連付けることができる。VFMモジュール118(1)はその後、(
図6のブロック606に従って)バックエンドストレージ112に保存されていたデータを新しいVFM割当分408(1)に復元でき(ブロック718)、これによってVM 108(1)は動作再開プロセスの完了時にVFMデバイス122(1)を介してこのデータにアクセスできる。
【0040】
図8は、ある実施形態による、VFM 108(1)のVFMデバイス122(1)が揮発性メモリデバイス(不揮発性メモリデバイスではない)として機能するように構成されている時にVM 108(1)を電源切断するためのフローチャート800を示している。前述のように、このシナリオでは
図3と
図6に示されるVM一時停止のフローとは異なる処理が必要となり、それはVFMデバイス122(1)に保存されたデータがVMパワーサイクルを通じて持続されないはずであるからである。
【0041】
ブロック802で、仮想化ソフトウェア104は、CMS 110から、VM 108(1)を電源切断するためのコマンドを受け取ることができる。本明細書で使用されている限り、「VMを電源切断する」および「VM電源切断」という語句はVM内で実行中のゲストオペレーティングシステムをシャットダウンさせることを指す。
【0042】
ブロック804で、仮想化ソフトウェア104は、VMM 106(1)にVM 108(1)のためのVM電源切断プロセスを開始するように要求できる。この電源切断プロセスの一環として、VFMモジュール118(1)は
図6のブロック608と実質的に同様の方法でVFM割当分120(1)を解放できる(ブロック806)。しかしながら、
図6と異なり、ブロック806で、VFMモジュール118(1)は特に、VFM割当分120(1)を解放する前にVFM割当分120(1)に保存されていたデータをバックエンドストレージ112に保存しないようにする。これによって、VM 108(1)は、VM 108(1)が再び電源投入された時にこのデータを利用できず、それゆえVFMデバイス122(1)の揮発性メモリの動作が保持される。
【0043】
いくつかの実施形態において、CMS110は、サーフェシングされたVFMデバイスを有するVMを1つのホストシステム(すなわち、「移行元」ホストシステム)から他のホストシステム(すなわち、「移行先」ホストシステム)へと移行または移動させることができる。このような実施形態において、移行元および移行先ホストシステムの両方の上に存在するVFMモジュールが相互運用されて、そのVFMデバイスに関連するデータが移行元ホスト側フラッシュストレージデバイスから移行先ホスト側フラッシュストレージデバイスへと正しく移行されるのを確実にすることができる。
図9は、このような移行プロセスのフローチャート900を示す。
【0044】
フロック902で、CMS 110は移行元ホストシステムから移行先ホストシステムへのVMの移行を開始できる。1つの実施形態において、CMS 110はこの移行プロセスをVMware社により開発されたvMotion等の技術を使って「ライブ(live)」プロセスとして(すなわち、VMが依然として動作している間に)開始できる。
【0045】
ブロック904で、移行先ホストシステムにおけるVMのためのVFMモジュールは、移行先ホスト側フラッシュストレージデバイスの中で利用可能な領域の量を判定できる。すると、移行先VFMモジュールは、利用可能な領域の量が移行元ホスト側にあるVMのためのVFM割当分の内容全部を収容するのに十分であるか否かを判定できる(ブロック906)。空き領域が不十分であれば、移行先ホストシステム上の仮想ソフトウェアはVM移行プロセスを中止し、CMS 110に通知することができる(ブロック908と910)。
【0046】
これに対して、移行先ホスト側フラッシュストレージデバイスに十分な空き領域がある場合、移行先VFMモジュールは移行先ホスト側フラッシュストレージデバイスの中に新しいVFM割当分を作り、この新しいVFM割当分を移行されたVMのVFMデバイスに関連付けることができる(ブロック912)。その後、CMS 110は移行元および移行先ホストシステムの両方のVFMモジュールと調整して、データを移行元側VFM割当分から新しく作られた移行先側VFM割当分にコピーできる(ブロック914)。このプロセスが終了すると、移行されたVMは、そのVFMデバイスを介して、移行前にそのVMがアクセス可能であったものと同じVFMデータにアクセスでき、このことは、移行先側VFM割当分が移行元側VFM割当分と同じデータを含むからである。特定の実施形態において、移行元側のVFMモジュールは、移行完了時に移行元側VFM割当分を解放でき、これによってその移行元側のフラッシュストレージ容量が再使用可能となる。
【0047】
本明細書に記載された各種の実施形態は、コンピュータシステム内に保存されたデータに係る様々なコンピュータ実装動作を利用してもよい。例えば、これらの動作は物理的な数量の物理的な操作を必要とするかもしれず、通常、必ずではないが、これらの数量は電気または磁気信号の形態をとってもよく、その場合、これらまたはそれを表現したものは保存、転送、合成、比較またはそれ以外に操作できる。さらに、このような操作は生成、特定、判定または比較等の用語で呼ばれることが多い。本明細書に記載された、1つ以上の実施形態の一部を形成する動作は何れも、有益な機械動作であってよい。これに加えて、1つ以上の実施形態はまた、これらの動作を実行するデバイスまたは装置にも関している。この装置は要求された具体的な目的のために特に構成されてもよく、またはコンピュータ内に保存されたコンピュータブログラムによって選択的に作動または構成される汎用コンピュータであってもよい。特に、各種の汎用マシンは、本明細書の教示に従って書かれたコンピュータプログラムと共に使用されてもよく、または必要な動作を実行するための、より専門化された装置を構成するほうが好都合であるかもしれない。本明細書に記載された各種の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能の民生用電子機器、ミニコンピュータ、メインフレームコンピュータ、およびこれに類するもの等、他のコンピュータシステム構成で実現されてもよい。
【0048】
1つ以上の実施形態は、1つ以上のコンピュータプログラムとして、または1つ以上の非一時的コンピュータ可読記憶媒体に具現化された1つ以上のコンピュータプログラムモジュールとして実装されてもよい。非一時的コンピュータ可読記憶媒体という用語は、後にコンピュータシステムに入力可能なデータを保存できるあらゆるデータストレージデバイスを指す。非一時的コンピュータ可読媒体は、コンピュータによりそれらが読み取られることを可能にする方法でコンピュータプログラムを具現化するための、既存の、または今後開発される何れの技術に基づいていてもよい。非一時的コンピュータ可読媒体の例としては、ハードドライブ、ネットワークアタッチストレージ(network attached storage(NAS))、リードオンリメモリ、ランダムアクセスメモリ(例えばフラッシュメモリデバイス)、CD(例えば、CD−ROM、CD−RまたはCD−RW)、DVD、磁気テープ、その他の光および光以外のデータストレージデバイスがある。非一時的コンピュータ可読媒体はまた、ネットワーク接続されたコンピュータシステム上に分散させることができ、それによってコンピュータ可読コードが分散されて保存、実行される。
【0049】
これに加えて、記載された仮想化方法は一般に、仮想マシンが特定のハードウェアシステムに適合するインタフェースを提示することを前提としているが、当業者であれば、ここに記載された方法が何れの特定のハードウェアシステムに直接対応しない仮想化とも使用できることがわかるであろう。ホストされた実施形態、ホストされていない実施形態、または両者間の区別が曖昧となる傾向のある実施形態として実装される各種の実施形態による仮想化システムはすべてが想定される。さらに、各種の仮想化動作は全部または一部がハードウェアにおいて実装されてもよい。
【0050】
多くの変更、改変、追加、改良が、仮想化の程度にかかわらず可能である。仮想化ソフトウェアはしたがって、仮想化機能を実行するホスト、コンソール、またはゲストオペレーティングシステムのコンポーネントを含むことができる。本明細書において1つの例として記載されたコンポーネント、動作または構造について、複数の例が提供されてもよい。最後に、各種のコンポーネント、動作、データストア間の境界は幾分任意であり、具体的な動作が特定の例示的構成に関連して示されている。機能のその他の割当も想定され、本発明の範囲内に含めてよい。一般に、例示的な構成において別々のコンポーネントとして示されている構造と機能は、合体された構造またはコンポーネントとして実装されてもよい。同様に、1つのコンポーネントとして提示されている構造と機能は、別々のコンポーネントとして実装されてもよい。
【0051】
本明細書の記述の中および後述の特許請求の範囲全体を通じて使用されているかぎり、「〜の中」の意味は、文脈上他の解釈が必要な場合を除き、「〜の中」と「〜の上」を含むものとする。
【0052】
上記の説明は、各種の実施形態を、具体的な実施形態の態様をどのように実装できるかの例と共に示している。上記の例と実施形態は排他的な実施形態とみなされるべきではなく、後述の特許請求の範囲により定義される特定の実施形態の柔軟性と利点を説明するために示されている。上記の開示と後述の特許請求の範囲に基づき、他の構成、実施形態、実装、均等物を、特許請求の範囲により定義されるその範囲から逸脱することなく用いてもよい。
【手続補正書】
【提出日】2015年10月9日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ホストシステム上で動作するように構成された複数の仮想マシンにホスト側フラッシュストレージ容量をサーフェシングする方法において、
前記ホストシステムにより、前記複数の仮想マシンのうちの各仮想マシンのために、前記ホストシステムにローカル接続されたフラッシュストレージデバイスにフラッシュストレージ領域割当分を作成すること、
前記ホストシステムにより、前記フラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとして前記仮想マシンによって読取可能および書込み可能となるようにすること、
前記ホストシステムにより、前記仮想マシンが一時停止または電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することを備え、
前記仮想マシンによって読取可能および書込み可能となるようにすることは、
前記フラッシュストレージ領域割当分に対応する仮想スモール・コンピュータ・システム・インターフェース(SCSI)デバイスを作成すること、
初期化において前記仮想マシンから、照会コマンドを受け取ること、
前記照会コマンドに応答して、前記仮想マシンに照会応答を送信することを含み、
前記照会応答は、前記仮想マシンによって読取可能および書込み可能なフラッシュベースのデバイスとして、前記仮想SCSIデバイスを識別し、
前記照会応答は、前記仮想SCSIデバイスが不揮発性メモリデバイスまたは揮発性メモリデバイスとして挙動するように構成されるかを示す情報を含む、方法。
【請求項2】
前記仮想マシンが動作再開または再び電源投入された時に前記仮想マシンのために前記フラッシュストレージデバイスに新しいフラッシュストレージ領域割当分を作成することをさらに備える、請求項1に記載の方法。
【請求項3】
前記仮想マシンが一時停止された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存すること、
前記保存した後に前記フラッシュストレージ領域割当分を解放することを含む、請求項1に記載の方法。
【請求項4】
前記データが前記バックエンドストレージデバイス上にある仮想マシンイメージファイルに保存される、請求項3に記載の方法。
【請求項5】
前記仮想マシンが動作再開された時に前記仮想マシンのために前記フラッシュストレージデバイスに前記新しいフラッシュストレージ領域割当分を作成することは、
バックエンドストレージデバイスに以前保存されたデータを前記新しいフラッシュストレージ領域割当分に復元することを含む、請求項2に記載の方法。
【請求項6】
前記情報が、前記仮想SCSIデバイスが揮発性メモリデバイスとして挙動するように構成されることを示す場合、前記仮想マシンが電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存せずに、前記フラッシュストレージ領域割当分を解放することを含む、請求項1に記載の方法。
【請求項7】
前記仮想マシンが他のホストシステムに移行された時に前記仮想マシンのための前記フラッシュストレージ領域割当分を解放することをさらに備える請求項1に記載の方法。
【請求項8】
前記仮想マシンが他のホストシステムに移行された時に前記仮想マシンのための前記フラッシュストレージ領域割当分を解放する前に、
前記フラッシュストレージ領域割当分に保存されていたデータを、前記他のホストシステムにローカル接続されたフラッシュストレージデバイス上にある新しいフラッシュストレージ割当分にコピーすることをさらに備える請求項7に記載の方法。
【請求項9】
前記仮想マシンのための前記フラッシュストレージ領域割当分の大きさが、前記仮想マシンのプロビジョニング時にユーザによって決定される、請求項1に記載の方法。
【請求項10】
前記仮想マシンのための前記フラッシュストレージ領域割当分が、前記フラッシュストレージデバイス上にあるファイルに対応する、請求項1に記載の方法。
【請求項11】
プロセッサにより実行可能なコンピュータソフトウェアを保存する非一時的コンピュータ可読記憶媒体において、前記コンピュータソフトウェアが、ホストシステム上で動作するように構成された複数の仮想マシンにホスト側フラッシュストレージ容量をサーフェシングする方法を具現化し、前記方法が、
前記複数の仮想マシンのうちの各仮想マシンのために、前記ホストシステムにローカル接続されたフラッシュストレージデバイスにフラッシュストレージ領域割当分を作成すること、
前記フラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとして前記仮想マシンによって読取可能および書込み可能となるようにすること、
前記仮想マシンが一時停止または電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することを備え、
前記仮想マシンによって読取可能および書込み可能となるようにすることは、
前記フラッシュストレージ領域割当分に対応する仮想スモール・コンピュータ・システム・インターフェース(SCSI)デバイスを作成すること、
初期化において前記仮想マシンから、照会コマンドを受け取ること、
前記照会コマンドに応答して、前記仮想マシンに照会応答を送信することを含み、
前記照会応答は、前記仮想マシンによって読取可能および書込み可能なフラッシュベースのデバイスとして、前記仮想SCSIデバイスを識別し、
前記照会応答は、前記仮想SCSIデバイスが不揮発性メモリデバイスまたは揮発性メモリデバイスとして挙動するように構成されるかを示す情報を含む、非一時的コンピュータ可読記憶媒体。
【請求項12】
前記方法が、
前記仮想マシンが動作再開または再び電源投入された時に前記仮想マシンのために前記フラッシュストレージデバイスに新しいフラッシュストレージ領域割当分を作成することをさらに備える、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項13】
前記仮想マシンが一時停止された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存することを含み、
前記仮想マシンが動作再開された時に前記仮想マシンのために前記フラッシュストレージデバイスに前記新しいフラッシュストレージ領域割当分を作成することは、
前記バックエンドストレージデバイスに保存されていたデータを前記新しいフラッシュストレージ領域割当分に復元することを含む、請求項12に記載の非一時的コンピュータ可読記憶媒体。
【請求項14】
前記情報が、前記仮想SCSIデバイスが揮発性メモリデバイスとして挙動するように構成されることを示す場合、前記仮想マシンが電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていた前記データを前記バックエンドストレージデバイスに保存せずに、前記フラッシュストレージ領域割当分を解放することを含む、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項15】
ホストシステムであって、
ローカル接続されたフラッシュストレージデバイスと、
プロセッサであって、
複数の仮想マシンのうちの各仮想マシンのために、前記フラッシュストレージデバイスにフラッシュストレージ領域割当分を作成し、
前記フラッシュストレージ領域割当分を仮想フラッシュメモリデバイスとして前記仮想マシンにより読取可能および書込み可能にし、
前記仮想マシンが一時停止または電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放するように構成された前記プロセッサとを備え、
前記仮想マシンにより読取可能および書込み可能にすることは、
前記フラッシュストレージ領域割当分に対応する仮想スモール・コンピュータ・システム・インターフェース(SCSI)デバイスを作成すること、
初期化において前記仮想マシンから、照会コマンドを受け取ること、
前記照会コマンドに応答して、前記仮想マシンに照会応答を送信することを含み、
前記照会応答は、前記仮想マシンによって読取可能および書込み可能なフラッシュベースのデバイスとして、前記仮想SCSIデバイスを識別し、
前記照会応答は、前記仮想SCSIデバイスが不揮発性メモリデバイスまたは揮発性メモリデバイスとして挙動するように構成されるかを示す情報を含む、ホストシステム。
【請求項16】
前記プロセッサが、
前記仮想マシンが動作再開または再び電源投入された時に前記仮想マシンのために前記フラッシュストレージデバイスに新しいフラッシュストレージ領域割当分を作成するようにさらに構成されている、請求項15に記載のホストシステム。
【請求項17】
前記仮想マシンが一時停止された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていたデータをバックエンドストレージデバイスに保存することを含み、
前記仮想マシンが動作再開された時に前記仮想マシンのために前記フラッシュストレージデバイスに前記新しいフラッシュストレージ領域割当分を作ることは、
前記バックエンドストレージデバイスに保存されていた前記データを前記新しいフラッシュストレージ領域割当分に復元することを含む、請求項16に記載のホストシステム。
【請求項18】
前記情報が、前記仮想SCSIデバイスが揮発性メモリデバイスとして挙動するように構成されることを示す場合、前記仮想マシンが電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することは、
前記フラッシュストレージ領域割当分に保存されていた前記データを前記バックエンドストレージデバイスに保存せずに、前記フラッシュストレージ領域割当分を解放することを含む、請求項17に記載のホストシステム。
【国際調査報告】