JP6018317B2 - ホスト側フラッシュストレージ容量を仮想マシンにサーフェシングする技術 - Google Patents

ホスト側フラッシュストレージ容量を仮想マシンにサーフェシングする技術 Download PDF

Info

Publication number
JP6018317B2
JP6018317B2 JP2015540714A JP2015540714A JP6018317B2 JP 6018317 B2 JP6018317 B2 JP 6018317B2 JP 2015540714 A JP2015540714 A JP 2015540714A JP 2015540714 A JP2015540714 A JP 2015540714A JP 6018317 B2 JP6018317 B2 JP 6018317B2
Authority
JP
Japan
Prior art keywords
flash storage
virtual machine
storage area
virtual
host system
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
JP2015540714A
Other languages
English (en)
Other versions
JP2016502180A (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.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of JP2016502180A publication Critical patent/JP2016502180A/ja
Application granted granted Critical
Publication of JP6018317B2 publication Critical patent/JP6018317B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/45583Memory management, e.g. access or allocation

Landscapes

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

Description

仮想化環境では、仮想マシン(VM)を動作させるホストシステムが1つ以上のローカル接続された(すなわち、「ホスト側」)フラッシュストレージデバイスを含むことがますます一般的となりつつある。例えば、ホスト側フラッシュストレージデバイスの1種が、ホストシステムの筐体内に据え付けられるソリッドステートディスク(SSD)またはPCIeフラッシュカードである。ホスト側フラッシュストレージデバイスの別の1種は、周辺インタフェースを介してホストシステムに直接接続される外付けフラッシュドライブまたは装置である。
一般に、ホスト側フラッシュストレージデバイスは、ホストシステムがネットワーク(例えば、ファイバチャネル、イーサネット、その他)上でアクセスするバックエンドストレージアレイよりもかなり低い読取/書込み遅延性とより高い帯域幅に対応できる。このようなパフォーマンスの改善には多くの理由がある。第一に、バックエンドストレージアレイは通常、複数のホストシステムからの読取/書込みリクエストに応えなければならないが、各バックエンドストレージアレイが有する待ち行列は有限であり、このことは、そのアレイが特定のホストシステムのために対応できる帯域幅/遅延時間の量に影響を与える。第二に、ストレージネットワークはスイッチやルータ等の能動素子を含んでいてもよく、それによってネットワークのエンドポイント(例えば、ホストシステムとバックエンドストレージデバイス)間の遅延時間が長くなる。それゆえ、ホスト側フラッシュストレージデバイスのほうが、ホストシステム上で動作するVMが頻繁に素早くアクセスする必要のあるデータをキャッシュに格納/保存するのに適している。残念ながら、既存の仮想化プラットフォームは、ホスト側フラッシュストレージデバイスの一部をVMに自動的に割り当て、サーフェシングして(surfacing)(すなわち、アクセス可能/可視的にして)、VMがそのデバイスの低遅延性を生かせるようにする機構を提供しない。さらに、既存の仮想化プラットフォームは、VM間でのサーフェシングされたフラッシュストレージ容量の割当をホストシステムの状況の変化に応答して最適化することができない。
ホスト側フラッシュストレージ容量をあるホストシステム上で動作する複数のVMにサーフェシングするための技術が提供される。1つの実施形態において、ホストシステムは、複数のVMの中の各VMのために、そのホストシステムにローカル接続されたフラッシュストレージデバイスの中にフラッシュストレージ領域割当分を作る。するとホストシステムは、このフラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとしてVMによって読取可能および書込み可能になるようにする。
以下の詳細な説明と添付の図面により、具体的な実施形態の性質と利点をよりよく理解できる。
1つの実施形態による、ホスト側フラッシュストレージ容量を仮想フラッシュメモリデバイスとしてVMにサーフェシングする機能をサポートするシステム環境のブロック図を示す。 1つの実施形態による、ホスト側フラッシュストレージ容量をあるVMに、そのVMのプロビジョニングおよび電源投入時にサーフェシングするための、図1のシステム環境内のフローを示す。 1つの実施形態による、あるVMのためのホスト側フラッシュストレージ領域割当分を、そのVMの一時停止またはスナップショット作成時に解放するための、図1のシステム環境内のフローを示す。 1つの実施形態による、あるVMのための新しいホスト側フラッシュストレージ領域割当分を、そのVMの動作再開時に割り当てるための、図1のシステム環境内のフローを示す。 1つの実施形態による、図2のフローに関するさらに詳細な点を提供するフローチャートを示す。 1つの実施形態による、図3のフローに関するさらに詳細な点を提供するフローチャートを示す。 1つの実施形態による、図4のフローに関するさらに詳細な点を提供するフローチャートを示す。 1つの実施形態による、あるVMのためのホスト側フラッシュストレージ領域割当分を、そのVMの電源切断時に解放するためのプロセスのフローチャートを示す。 1つの実施形態による、あるVMのためのホスト側フラッシュストレージ領域割当分を、そのVMが1つのホストシステムから他のホストシステムに移動された時に移行させるためのプロセスのフローチャートを示す。
以下の記述の中では、説明を目的として、様々な実施形態を理解できるように多数の例と詳細点が示されている。しかしながら、当業者にとっては、特定の実施形態はこれらの詳細点のいくつかがなくても実施でき、またはその改変または均等物を用いて実施することもできることが明白であろう。
具体的な実施形態は、ホスト側フラッシュストレージ容量を仮想フラッシュメモリ(VFM)デバイスとしてVMにサーフェシング(surfacing)するための技術を提供する。1つの実施形態において、特定のVMに電源投入すると、ホストシステムは自動的にホスト側ストレージデバイスの中でそのVMのための領域を割り当てることができる。このフラッシュストレージ領域割当分の大きさは、例えばVMのプロビジョニング時にユーザ/システム管理者が指定するパラメータに基づくものとすることができる。するとホストシステムは、そのフラッシュストレージ領域割当分をVFMデバイスとしてVMにサーフェシングする、すなわちアクセス可能にすることができ、それによってこのVMはVFMデバイスを介してフラッシュストレージ領域割当分からの読取とフラッシュストレージ領域割当分への書込みを行うことができる。そのVM上で実行されるアプリケーションはVFMデバイスを様々な方法で利用して、ホスト側フラッシュストレージデバイスの低遅延性を生かすことができる。
特定の実施形態において、ホストシステムは、VMに割り当て/サーフェシングするホスト側フラッシュストレージ領域を動的に管理して、非アクティブ状態の(例えば一時停止または電源切断された)VMがホスト側フラッシュストレージデバイスの領域をまったく消費しないようにすることができる。例えば、VMが一時停止または電源切断された時、ホストシステムは、そのVMに割り当てられたフラッシュストレージ領域を解放することができ、ホストシステムは、解放されたフラッシュストレージ領域を他のVMが使用するように割り当てなおすことができる。その後このVMの動作が再開されるか、電源投入された時に、ホストシステムはこのVMにホスト側フラッシュストレージデバイスの新しい部分をそのVMの要求に応じて割り当てることができる。このようにして、ホストシステムは、各VMがホスト側フラッシュストレージ容量を実際に必要な時(すなわち、そのVMが活発に動作している(actively running)時)だけ使用するのを確実にすることができ、それゆえ、複数のVM間でのこの容量の共有を最適化できる。
他の実施形態において、あるVMのためのホスト側フラッシュストレージ領域をVMの一時停止/動作再開時およびVMの電源切断/電源投入時に解放して再割当するプロセスの一環として、ホストシステムはそのVMのためのVFMデバイスを不揮発性メモリデバイスまたは揮発性メモリデバイスとして扱うことができる。前者の場合、ホストシステムはVMのフラッシュメモリストレージ割当分の中に保存されたデータをそのVMの一時停止または電源切断時にバックエンドストレージデバイス(例えばハードディスクベースのストレージアレイ)に保存できる。ホストシステムはその後、VMが動作再開または電源投入されると、保存されていたデータをVMの新しいフラッシュストレージ割当分に復元できる。このアプローチによれば、VMは、VFMデバイス内のデータが(他の何れの通常のストレージデバイスとも同様に)VMの一時停止状態中およびVMのパワーサイクル中の両方において持続されると錯覚する(illusion)。
後者の場合、ホストシステムはVMのフラッシュストレージ割当内のデータを、そのVMが一時停止され、動作再開された時にのみ、バックエンドストレージデバイスに保存し/バックエンドストレージデバイスから復元することができる。ホストシステムはこの保存/復元プロセスをVMの電源切断と投入時には行わず、これはVMのフラッシュストレージ割当分の中のデータがVMのパワーサイクル中に失われることを意味する。このアプローチによれば、VMは、VMFデバイスが揮発性メモリ(例えばRAM)の1つのティア(a tier)に対応すると錯覚する。VFMデバイスは(VMのライフサイクルから見た場合に)揮発性メモリデバイスとして機能できるため、VFMデバイスは仮想フラッシュ「メモリ」デバイス(仮想フラッシュ「ストレージ」デバイスではない)と呼ばれる。しかしながら、後でより詳しく説明するように、VMは標準的なブロックベースプロトコル(例えばSCSI)を介してVFMデバイスにアクセスできる。
図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)が動作できる仮想ハードウェア環境を提供する。
1つの実施形態において、仮想化ソフトウェア104はホストシステム102の物理ハードウェアプラットフォームと直接やり取りでき、介在するホストオペレーティングシステムはない。この実施形態において、仮想化ソフトウェア104はVMMによるホストシステム102の各種の物理ハードウェアデバイスへのアクセスを管理するカーネル(図示せず)をさらに含むことができる。代替的な実施形態においては、仮想化ソフトウェア104は、「ホストされた」構成の一部とすることができ、「ホストされた」構成において、仮想化ソフトウェア104がホストオペレーティングシステム(図示せず)上で動作する。この実施形態において、仮想化ソフトウェア104は、物理ハードウェアデバイスのリソース管理をホストオペレーティングシステムに依存できる。当業者であれば、仮想化ソフトウェア104の設計と構成のための様々な改変や代替案がわかるであろう。
システム環境100はまた、中央管理サーバ(central management server : CMS)110とバックエンドストレージコンポーネント112も含み、これらは1つ以上のネットワーク114を介してホストシステム102と通信する。CMS 110は、ホストシステム102に関して、VMライフサイクル管理、ハードウェアモニタリング、ロードバランシング(load balancing)、その他の各種の管理タスクを実行できる。図1には1つのホストシステムだけが示されているが、CMS 110は同時に多数のホストシステム(各々が複数のVMを含む)、例えばある仮想インフラストラクチャクラスタ内のホストシステムの全部を同時に管理できると理解するべきである。また、CMS 110は異なるデータセンタにわたって(おそらく、異なる地理的場所に)分散された多数のホストシステムを管理するように連合させることができるとも理解するべきである。
バックエンドストレージコンポーネント112は通常、ハードディスクベースのストレージアレイであり、仮想ディスクファイル(「virtual disk file : VMDK」として知られる)およびその他の永続的ファイルを保存でき、ホストシステム102および/またはCMS 110がそのランタイム動作中にそのコンポーネント112からの読取りまたはそのコンポーネント112への書込みを行う。
図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)内で実行されているアプリケーションがデバイスの低遅延読取/書込み能力を生かせるようにすることが望ましい。
この機能を有効にするために、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を見て、やり取りする(例えば、そこから読み出し、そこに書き込む)ことができる。
これに加えて、各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割当分に保存されていたデータが廃棄されるようにすることができる。
図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ファイル」)内に保存できる。
ステップ(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)の大きさを決定できる。
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内で利用可能にすることができる。
図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ファイル」)の変更を記録できる。
図3と4は、ある実施形態よる、VM 108(1)の一時停止/スナップショット作成およびその後のVM 108(1)の動作再開のために図2のフロー200の後に実行可能なフロー300と400をそれぞれ示す。フロー300のステップ(1)(参照番号302)で、CMS 110はVM 108(1)を一時停止し、またはそのスナップショットを作成するためのコマンドを仮想化ソフトウェア104に送信できる。各種の実施形態において、CMS 110はこのコマンドを、例えばシステム管理者または自動プロセス/エージェントからの入力に応答して送信できる。
一時停止/スナップショットコマンドを受け取ると、仮想化ソフトウェア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内のストレージ領域を一切使用しない。
ここで、図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割当分の大きさのパラメータを参照できる。
最後にフロー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)に保存されたデータのすべてが含まれる)にアクセスできる。
フロー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)を介してこのデータを利用できるのを確実にすることができる。
前述のように、特定の実施形態において、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のパワーサイクルを通じて持続されるからである。
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パワーサイクル中に失われるからである。
図5は、ある実施形態による、図2のVM電源投入フロー中のホストシステム102による処理をより詳しく説明するフローチャート500を示す。ブロック502で、仮想化ソフトウェア104は、CMS 110から、VM(例えば、VM 108(1))に電源投入するためのコマンドを受け取ることができる。これに応答して、仮想化ソフトウェア104は、VMM(例えばVMM 106(1))のインスタンスを作成し、VMMにVM 108(1)に関する電源投入プロセスを開始させることができる(ブロック504)。
ブロック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)。
ブロック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)を別のホストシステムに設置するよう試みてもよい。
これに対し、フラッシュストレージデバイス116に十分な空き領域がある場合、VFMモジュール118(1)は、フラッシュストレージデバイス116の中に、ブロック506で決定された大きさのVFM割当分(例えばVFM割当分120(1))を作ることができる(ブロック516)。具体的な実施形態において、作られたVFM割当分は仮想ディスクファイルに対応するものとすることができる。他の実施形態において、作られたVFM割当分は論理ボリュームマネージャ(logical volume manager)によって作成されたブロックデバイスとすることができる。
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)に対して示す情報を含むことができる。
図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)。
一時停止/スナップショット作成プロセスの一環として、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つに保存できる。
その後、VFMモジュール118(1)はVFM割当分120(1)を解放できる(ブロック608)。このステップは、VFM割当分120(1)に対応するファイルを削除すること、またはそれ以外にフラッシュストレージデバイス116の中のVFM割当分120(1)に関連するストレージ領域を回収して、その領域を再び使用できるようにすることを含むことができる。
ここで図7を参照すると、ブロック702で、仮想化ソフトウェア104は、CMS 110から、一時停止状態のVM 108(1)の動作を再開するためのコマンドを受け取ることができる。これに応答して、仮想化ソフトウェア104はVMM 106(1)にVM 108(1)のためのVM動作再開プロセスを開始するように要求できる(ブロック704)。
ブロック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)を十分なフラッシュストレージ領域を有する別のホストシステムに移行させることを試みてもよい。
フラッシュストレージデバイス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)を介してこのデータにアクセスできる。
図8は、ある実施形態による、VFM 108(1)のVFMデバイス122(1)が揮発性メモリデバイス(不揮発性メモリデバイスではない)として機能するように構成されている時にVM 108(1)を電源切断するためのフローチャート800を示している。前述のように、このシナリオでは図3と図6に示されるVM一時停止のフローとは異なる処理が必要となり、それはVFMデバイス122(1)に保存されたデータがVMパワーサイクルを通じて持続されないはずであるからである。
ブロック802で、仮想化ソフトウェア104は、CMS 110から、VM 108(1)を電源切断するためのコマンドを受け取ることができる。本明細書で使用されている限り、「VMを電源切断する」および「VM電源切断」という語句はVM内で実行中のゲストオペレーティングシステムをシャットダウンさせることを指す。
ブロック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)の揮発性メモリの動作が保持される。
いくつかの実施形態において、CMS110は、サーフェシングされたVFMデバイスを有するVMを1つのホストシステム(すなわち、「移行元」ホストシステム)から他のホストシステム(すなわち、「移行先」ホストシステム)へと移行または移動させることができる。このような実施形態において、移行元および移行先ホストシステムの両方の上に存在するVFMモジュールが相互運用されて、そのVFMデバイスに関連するデータが移行元ホスト側フラッシュストレージデバイスから移行先ホスト側フラッシュストレージデバイスへと正しく移行されるのを確実にすることができる。図9は、このような移行プロセスのフローチャート900を示す。
フロック902で、CMS 110は移行元ホストシステムから移行先ホストシステムへのVMの移行を開始できる。1つの実施形態において、CMS 110はこの移行プロセスをVMware社により開発されたvMotion等の技術を使って「ライブ(live)」プロセスとして(すなわち、VMが依然として動作している間に)開始できる。
ブロック904で、移行先ホストシステムにおけるVMのためのVFMモジュールは、移行先ホスト側フラッシュストレージデバイスの中で利用可能な領域の量を判定できる。すると、移行先VFMモジュールは、利用可能な領域の量が移行元ホスト側にあるVMのためのVFM割当分の内容全部を収容するのに十分であるか否かを判定できる(ブロック906)。空き領域が不十分であれば、移行先ホストシステム上の仮想ソフトウェアはVM移行プロセスを中止し、CMS 110に通知することができる(ブロック908と910)。
これに対して、移行先ホスト側フラッシュストレージデバイスに十分な空き領域がある場合、移行先VFMモジュールは移行先ホスト側フラッシュストレージデバイスの中に新しいVFM割当分を作り、この新しいVFM割当分を移行されたVMのVFMデバイスに関連付けることができる(ブロック912)。その後、CMS 110は移行元および移行先ホストシステムの両方のVFMモジュールと調整して、データを移行元側VFM割当分から新しく作られた移行先側VFM割当分にコピーできる(ブロック914)。このプロセスが終了すると、移行されたVMは、そのVFMデバイスを介して、移行前にそのVMがアクセス可能であったものと同じVFMデータにアクセスでき、このことは、移行先側VFM割当分が移行元側VFM割当分と同じデータを含むからである。特定の実施形態において、移行元側のVFMモジュールは、移行完了時に移行元側VFM割当分を解放でき、これによってその移行元側のフラッシュストレージ容量が再使用可能となる。
本明細書に記載された各種の実施形態は、コンピュータシステム内に保存されたデータに係る様々なコンピュータ実装動作を利用してもよい。例えば、これらの動作は物理的な数量の物理的な操作を必要とするかもしれず、通常、必ずではないが、これらの数量は電気または磁気信号の形態をとってもよく、その場合、これらまたはそれを表現したものは保存、転送、合成、比較またはそれ以外に操作できる。さらに、このような操作は生成、特定、判定または比較等の用語で呼ばれることが多い。本明細書に記載された、1つ以上の実施形態の一部を形成する動作は何れも、有益な機械動作であってよい。これに加えて、1つ以上の実施形態はまた、これらの動作を実行するデバイスまたは装置にも関している。この装置は要求された具体的な目的のために特に構成されてもよく、またはコンピュータ内に保存されたコンピュータブログラムによって選択的に作動または構成される汎用コンピュータであってもよい。特に、各種の汎用マシンは、本明細書の教示に従って書かれたコンピュータプログラムと共に使用されてもよく、または必要な動作を実行するための、より専門化された装置を構成するほうが好都合であるかもしれない。本明細書に記載された各種の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能の民生用電子機器、ミニコンピュータ、メインフレームコンピュータ、およびこれに類するもの等、他のコンピュータシステム構成で実現されてもよい。
1つ以上の実施形態は、1つ以上のコンピュータプログラムとして、または1つ以上の非一時的コンピュータ可読記憶媒体に具現化された1つ以上のコンピュータプログラムモジュールとして実装されてもよい。非一時的コンピュータ可読記憶媒体という用語は、後にコンピュータシステムに入力可能なデータを保存できるあらゆるデータストレージデバイスを指す。非一時的コンピュータ可読媒体は、コンピュータによりそれらが読み取られることを可能にする方法でコンピュータプログラムを具現化するための、既存の、または今後開発される何れの技術に基づいていてもよい。非一時的コンピュータ可読媒体の例としては、ハードドライブ、ネットワークアタッチストレージ(network attached storage(NAS))、リードオンリメモリ、ランダムアクセスメモリ(例えばフラッシュメモリデバイス)、CD(例えば、CD−ROM、CD−RまたはCD−RW)、DVD、磁気テープ、その他の光および光以外のデータストレージデバイスがある。非一時的コンピュータ可読媒体はまた、ネットワーク接続されたコンピュータシステム上に分散させることができ、それによってコンピュータ可読コードが分散されて保存、実行される。
これに加えて、記載された仮想化方法は一般に、仮想マシンが特定のハードウェアシステムに適合するインタフェースを提示することを前提としているが、当業者であれば、ここに記載された方法が何れの特定のハードウェアシステムに直接対応しない仮想化とも使用できることがわかるであろう。ホストされた実施形態、ホストされていない実施形態、または両者間の区別が曖昧となる傾向のある実施形態として実装される各種の実施形態による仮想化システムはすべてが想定される。さらに、各種の仮想化動作は全部または一部がハードウェアにおいて実装されてもよい。
多くの変更、改変、追加、改良が、仮想化の程度にかかわらず可能である。仮想化ソフトウェアはしたがって、仮想化機能を実行するホスト、コンソール、またはゲストオペレーティングシステムのコンポーネントを含むことができる。本明細書において1つの例として記載されたコンポーネント、動作または構造について、複数の例が提供されてもよい。最後に、各種のコンポーネント、動作、データストア間の境界は幾分任意であり、具体的な動作が特定の例示的構成に関連して示されている。機能のその他の割当も想定され、本発明の範囲内に含めてよい。一般に、例示的な構成において別々のコンポーネントとして示されている構造と機能は、合体された構造またはコンポーネントとして実装されてもよい。同様に、1つのコンポーネントとして提示されている構造と機能は、別々のコンポーネントとして実装されてもよい。
本明細書の記述の中および後述の特許請求の範囲全体を通じて使用されているかぎり、「〜の中」の意味は、文脈上他の解釈が必要な場合を除き、「〜の中」と「〜の上」を含むものとする。
上記の説明は、各種の実施形態を、具体的な実施形態の態様をどのように実装できるかの例と共に示している。上記の例と実施形態は排他的な実施形態とみなされるべきではなく、後述の特許請求の範囲により定義される特定の実施形態の柔軟性と利点を説明するために示されている。上記の開示と後述の特許請求の範囲に基づき、他の構成、実施形態、実装、均等物を、特許請求の範囲により定義されるその範囲から逸脱することなく用いてもよい。

Claims (18)

  1. ホストシステム上で動作するように構成された複数の仮想マシンに、該ホストシステムにローカル接続されたフラッシュストレージデバイスの容量を利用可能にする方法において、
    前記ホストシステムにより、前記複数の仮想マシンのうちの各仮想マシンに、前記ホストシステムにローカル接続されたフラッシュストレージデバイス内のフラッシュストレージ領域の一部分割り当てること、
    前記ホストシステムにより、前記フラッシュストレージ領域割当分が仮想フラッシュメモリデバイスとして前記仮想マシンによって読取可能および書込み可能となるようにすること、
    前記ホストシステムにより、前記仮想マシンが一時停止または電源切断された時に前記仮想マシンのためのフラッシュストレージ領域割当分を解放することを備え、
    前記仮想マシンによって読取可能および書込み可能となるようにすることは、
    前記ホストシステムにより、前記フラッシュストレージ領域割当分に対応する仮想スモール・コンピュータ・システム・インターフェース(SCSI)デバイスを作成すること、
    前記ホストシステムにより、前記仮想マシンの初期化において前記仮想マシンから、照会コマンドを受け取ること、
    前記ホストシステムにより、前記照会コマンドに応答して、前記仮想マシンに照会応答を送信することを含み、
    前記照会応答によって、前記仮想マシンによって読取可能および書込み可能なフラッシュストレージデバイスとして、前記仮想SCSIデバイス識別され
    前記照会応答は、前記仮想SCSIデバイスが不揮発性メモリデバイスとして挙動するように構成されるか、または揮発性メモリデバイスとして挙動するように構成されるかを示す情報を含む、方法。
  2. 前記仮想マシンが動作再開または再び電源投入された時に前記仮想マシンに、前記フラッシュストレージデバイス内のフラッシュストレージ領域の一部分を新たに割り当てることをさらに備える、請求項1に記載の方法。
  3. 前記仮想マシンが一時停止された時に前記仮想マシンのためのフラッシュストレージ領域の割当分を解放することは、
    前記フラッシュストレージ領域割当分に保存されていたデータを、前記ホストシステムとネットワークを介して通信するバックエンドストレージデバイスに保存すること、
    前記保存した後に前記フラッシュストレージ領域割当分を解放することを含む、請求項1に記載の方法。
  4. 前記データが、前記バックエンドストレージデバイス上に仮想マシンイメージファイルとして保存される、請求項3に記載の方法。
  5. 前記仮想マシンが動作再開された時に前記仮想マシンに、前記フラッシュストレージデバイス内のフラッシュストレージ領域の一部分新たに割り当てることは、
    バックエンドストレージデバイスに以前保存されたデータを前記フラッシュストレージ領域の新しい割当分にコピーすることを含む、請求項に記載の方法。
  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に記載のホストシステム。
JP2015540714A 2013-01-23 2013-10-25 ホスト側フラッシュストレージ容量を仮想マシンにサーフェシングする技術 Active JP6018317B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/748,247 US9195585B2 (en) 2013-01-23 2013-01-23 Techniques for allocating and surfacing host-side storage capacity to virtual machines
US13/748,247 2013-01-23
PCT/US2013/066776 WO2014116312A1 (en) 2013-01-23 2013-10-25 Techniques for surfacing host-side flash storage capacity to virtual machines

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016191255A Division JP6316895B2 (ja) 2013-01-23 2016-09-29 ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術

Publications (2)

Publication Number Publication Date
JP2016502180A JP2016502180A (ja) 2016-01-21
JP6018317B2 true JP6018317B2 (ja) 2016-11-02

Family

ID=49582803

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015540714A Active JP6018317B2 (ja) 2013-01-23 2013-10-25 ホスト側フラッシュストレージ容量を仮想マシンにサーフェシングする技術
JP2016191255A Active JP6316895B2 (ja) 2013-01-23 2016-09-29 ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016191255A Active JP6316895B2 (ja) 2013-01-23 2016-09-29 ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術

Country Status (5)

Country Link
US (2) US9195585B2 (ja)
EP (2) EP3139263A1 (ja)
JP (2) JP6018317B2 (ja)
AU (2) AU2013375232B2 (ja)
WO (1) WO2014116312A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195585B2 (en) 2013-01-23 2015-11-24 Vmware, Inc. Techniques for allocating and surfacing host-side storage capacity to virtual machines
US9208072B2 (en) * 2013-06-25 2015-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Firmware storage and maintenance
US9400741B1 (en) * 2014-06-30 2016-07-26 Emc Corporation Reclaiming space from file system hosting many primary storage objects and their snapshots
US10067688B2 (en) * 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
CN108139982B (zh) 2016-05-31 2022-04-08 安华高科技股份有限公司 多信道输入/输出虚拟化
DE102018104459A1 (de) 2018-02-27 2019-08-29 Tdk Electronics Ag Vielschichtbauelement mit externer Kontaktierung
US10585615B1 (en) * 2018-05-10 2020-03-10 Seagate Technology Llc Virtual flash system
US11620148B2 (en) 2020-02-25 2023-04-04 International Business Machines Corporation Collecting capacity data of virtual machines by leveraging agent data

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3186244B2 (ja) * 1992-09-18 2001-07-11 株式会社日立製作所 仮想計算機システム
JP2001265613A (ja) * 2001-02-26 2001-09-28 Hitachi Ltd 仮想計算機システム
US6968350B2 (en) * 2001-04-07 2005-11-22 Microsoft Corporation Method for establishing a virtual hard drive for an emulated computer system running on a host computer system
KR100724833B1 (ko) * 2001-09-04 2007-06-04 엘지전자 주식회사 배터리 잔여 용량에 따른 데이터 저장방법
DE102004016408B4 (de) * 2003-03-27 2008-08-07 Samsung Electronics Co., Ltd., Suwon Phasenwechselspeicherbaustein und zugehöriges Programmierverfahren
KR100546322B1 (ko) 2003-03-27 2006-01-26 삼성전자주식회사 비휘발성 메모리와 휘발성 메모리로 선택적으로 동작할 수있는 상 변화 메모리 장치 및 상 변화 메모리 장치의 동작방법
US7480761B2 (en) * 2005-01-10 2009-01-20 Microsoft Corporation System and methods for an overlay disk and cache using portable flash memory
US8402201B2 (en) * 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US20090031100A1 (en) * 2007-07-23 2009-01-29 David Hansen Memory reallocation in a computing environment
US8281303B2 (en) * 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
JP5012599B2 (ja) * 2008-03-18 2012-08-29 富士通株式会社 メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム
JP5166211B2 (ja) * 2008-10-30 2013-03-21 株式会社日立製作所 不揮発性メモリを主記憶に用いた装置
JP4705982B2 (ja) 2008-12-11 2011-06-22 株式会社日立製作所 情報処理システム、情報処理方法、及び管理装置
JP2010211526A (ja) * 2009-03-10 2010-09-24 Fujitsu Ltd プログラム、コンピュータ及び制御方法
JP2010211644A (ja) * 2009-03-11 2010-09-24 Nec Corp メモリ消費電力削減システム、方法及びプログラム
KR101562973B1 (ko) * 2009-05-22 2015-10-26 삼성전자 주식회사 메모리 장치 및 메모리 장치의 동작 방법
WO2011010344A1 (ja) * 2009-07-22 2011-01-27 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
WO2011096014A1 (ja) * 2010-02-05 2011-08-11 株式会社日立製作所 仮想マシンと連携したThin-Provisioning容量管理を行う計算機システム、計算機、及び方法
US9110806B2 (en) * 2010-03-10 2015-08-18 Microsoft Technology Licensing, Llc Opportunistic page caching for virtualized servers
US8434081B2 (en) 2010-07-02 2013-04-30 International Business Machines Corporation Storage manager for virtual machines with virtual storage
JP4865075B1 (ja) * 2010-09-30 2012-02-01 株式会社東芝 計算機および計算機システム
WO2012045021A2 (en) * 2010-09-30 2012-04-05 Commvault Systems, Inc. Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system
US20120102291A1 (en) 2010-10-26 2012-04-26 Dell Products, Lp System and Method for Storage Allocation in a Cloud Environment
JP5681465B2 (ja) * 2010-12-02 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
KR20120132820A (ko) * 2011-05-30 2012-12-10 삼성전자주식회사 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법
US8769174B2 (en) * 2011-08-29 2014-07-01 Vmware, Inc. Method of balancing workloads in object storage system
US8627036B2 (en) * 2011-09-12 2014-01-07 Microsoft Corporation Memory management techniques
US10359972B2 (en) * 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9830271B2 (en) * 2012-07-25 2017-11-28 Vmware, Inc. Transparent virtualization of cloud storage
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9195585B2 (en) 2013-01-23 2015-11-24 Vmware, Inc. Techniques for allocating and surfacing host-side storage capacity to virtual machines

Also Published As

Publication number Publication date
US20140208000A1 (en) 2014-07-24
EP2948838B1 (en) 2018-04-25
AU2016213817A1 (en) 2016-09-01
EP2948838A1 (en) 2015-12-02
JP2017037665A (ja) 2017-02-16
JP2016502180A (ja) 2016-01-21
AU2016213817B2 (en) 2018-03-15
US20160041771A1 (en) 2016-02-11
EP3139263A1 (en) 2017-03-08
JP6316895B2 (ja) 2018-04-25
WO2014116312A1 (en) 2014-07-31
AU2013375232A1 (en) 2015-06-04
US9195585B2 (en) 2015-11-24
US9778847B2 (en) 2017-10-03
AU2013375232B2 (en) 2016-05-12

Similar Documents

Publication Publication Date Title
JP6316895B2 (ja) ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術
US10437727B2 (en) Transparent host-side caching of virtual disks located on shared storage
US9448728B2 (en) Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers
US20220129299A1 (en) System and Method for Managing Size of Clusters in a Computing Environment
US10387042B2 (en) System software interfaces for space-optimized block devices
US9052825B2 (en) System software interfaces for space-optimized block devices
WO2016023390A1 (zh) 虚拟机存储资源部署方法和装置
US10289564B2 (en) Computer and memory region management method
US20120117320A1 (en) Latency reduction associated with a response to a request in a storage system
US10331476B1 (en) Storage device sharing among virtual machines

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20151027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160610

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160929

R150 Certificate of patent or registration of utility model

Ref document number: 6018317

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350