JP2014029700A - 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース - Google Patents

空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース Download PDF

Info

Publication number
JP2014029700A
JP2014029700A JP2013177455A JP2013177455A JP2014029700A JP 2014029700 A JP2014029700 A JP 2014029700A JP 2013177455 A JP2013177455 A JP 2013177455A JP 2013177455 A JP2013177455 A JP 2013177455A JP 2014029700 A JP2014029700 A JP 2014029700A
Authority
JP
Japan
Prior art keywords
lun
hypervisor
storage
virtual
virtual disk
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.)
Granted
Application number
JP2013177455A
Other languages
English (en)
Other versions
JP5960103B2 (ja
Inventor
Satyam B Vaghani
ビー. ヴァガニ,サトィヤム
Aswathanarayana Tejasvi
アスワタナラヤナ,テジャスヴィ
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 JP2014029700A publication Critical patent/JP2014029700A/ja
Application granted granted Critical
Publication of JP5960103B2 publication Critical patent/JP5960103B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

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)

Abstract

【課題】シン・プロビジョニングのような、ストレージ空間最適化法を使用するストレージデバイスに対するインタフェースが、支持されるべきこの種の技術から利益を得られることを可能にする。
【解決手段】インタフェースは、ハイパーバイザが、LUNが薄く供給されるか否かの、論理装置番号(LUN)の機能を発見することを可能にするために、ハイパーバイザ内に、更に、仮想マシン(VM)が、仮想ディスクが薄く供給されるか否かの、仮想ディスクの機能を発見することを可能にするためにVM内に設けられる。これらの機能の発見は、ストレージデバイスがその中で実現されたストレージ空間最適化法から利益を得続けることができるように、ハイパーバイザ又はVMが、論理ブロックデバイスに以前に割り当てられたブロックの割当てを解除する動作のような特定の動作を実施するように下位ストレージデバイスに指示することを可能にする。
【選択図】図3

Description

関連出願の相互参照
[0001]本出願は、2010年8月30日出願の米国特許仮出願第61/378,076号の利益を主張し、その内容全体を本願明細書に引用したものとする。
本発明は、空間最適化ブロックデバイスのためのシステムソフトウェアインタフェースに関する。
[0002]コンピュータ仮想化は、物理的コンピュータプラットホームを、ハードウェアコンピュータプラットホーム即ち「ホスト」上で動作する仮想化ソフトウェアの制御の下で実行される仮想マシンにカプセル化することを含む技法である。仮想マシンは、仮想システムハードウェア及びゲストオペレーティングシステムソフトウェアの両方を有する。仮想システムハードウェアは典型的に、ゲストオペレーティングシステムに対する典型的ストレージドライブとして見える少なくとも1台の「仮想ディスク」、単一ファイル又は一組のファイルを含む。仮想ディスクは、ホストプラットホーム上に又はリモートストレージデバイス上に格納されてもよい。典型的に、ゲストオペレーティングシステム、アプリケーションプログラム及びアプリケーションデータを格納するために、物理ストレージドライブが用いられるのと同じ方法で、仮想マシン(VM)は仮想ディスクを用いる。
[0003]仮想化ソフトウェアは、また、ハイパーバイザと称され、仮想ディスクに対するゲストオペレーティングシステムのアクセスを管理し、かつ、仮想ディスクを、ホストプラットホーム上に、又はストレージエリアネットワーク(SAN)若しくはネットワーク接続ストレージ(NAS)のような、リモートストレージデバイス内に存在する下位物理ストレージ資源にマップする。複数仮想マシンが単一ホスト上にインスタンス化可能であるので、物理ストレージ空間を組織のデータセンター内のすべてのインスタンス化された仮想マシンに対応する仮想ディスクに割り当てることは、データセンターの物理ストレージ空間容量に圧迫を加える可能性がある。例えば、仮想マシンに仮想ディスクを供給するときには、仮想ディスクが最初に作り出された時点で仮想化ソフトウェアが全ての物理ディスク空間を仮想ディスクに割り当て、時にはゼロだけを含有する多数の空のデータブロック(「0ブロック」)を作り出す場合がある。しかしながら、仮想ディスクに割り当てられた物理ストレージ空間が仮想マシンによって折よく用いられない(又は決して用いられない)かもしれないので、この種の割当てはストレージ非効率性に結びつくかもしれない。「シン・プロビジョニング(thin provisioning)」として知られる、1つの解決策において、仮想化ソフトウェアは、この種の物理ストレージ空間が仮想マシンによって実際に必要な時だけ、仮想ディスクに物理ストレージ空間を動的に割り当て、必ずしも仮想ディスクが最初に作り出された時に割り当てない。
[0004]これと同様の方法で、シン・プロビジョニングは下位ストレージハードウェア、例えば、物理ストレージ媒体として回転ディスク又は固体ディスクのアレイを含んでもよい、ストレージアレイのストレージ空間最適化法として実現されてもよい。そのような場合、物理ストレージ媒体を管理し、かつ、論理装置番号(LUN)と称される、論理データストレージユニットとしてそれらをホストに公開するストレージシステムコントローラが、LUNを薄く供給する。即ち、ストレージシステムコントローラがこの種の物理ストレージ空間がLUNによって実際に必要な時だけ、LUNに物理ストレージ空間を動的に割り当て、必ずしもLUNが最初に作り出された時に割り当てるのではない。その結果、LUNが最初に作り出された時には、LUNの各々の論理サイズは典型的にその物理サイズより非常に大きい。
米国特許第7,849,098号、名称「ファイルシステムに対する複数並列アクセス」、2004年2月4日出願、2010年12月7日発行 米国特許出願第12/050805号、名称「ファイルデータブロックの効率的なゼロ合わせ」(弁護士内容摘要録番号A123)、2008年3月18日出願
[0005]しかしながら、薄く供給された仮想ディスク及び薄く供給されたLUNの使用によってさえ、ストレージ非効率性が「淀んだ(stale)」データの累積、即ち、以前に用いられて現在使っていないが、割り当てられたまま残るディスクブロック、によって生じるおそれがある。例えば、ゲストオペレーティングシステムによって仮想ディスク内の、ドキュメントの編集中にバックアップとして作り出された一時ファイルのようなファイルの削除は、一般に、一時ファイルに対応する実際のデータブロックの解放に結びつかない。ゲストオペレーティングシステムが(例えば、ゲストファイルシステムのビットマップ内のビットをクリアすることによって)それ自体のゲストファイルシステム内の削除された一時ファイルに関する解放されたデータブロックをそれ自体で追跡することができるとはいえ、ゲストオペレーティングシステムは、それが一時データファイルを削除したディスクが実際にはそれ自体でファイルである「仮想ディスク」であることを知らない。従って、仮想ディスクの一部分(即ち解放されたデータブロックのゲストファイルシステムのビットマップを格納する仮想ディスクの部分)がゲストオペレーティングシステムによって一時ファイルの削除の際に変更されてもよいとはいえ、削除された一時ファイルの実際のデータブロックに対応する仮想ディスクの部分は、仮想化ソフトウェアによって仮想ディスクからLUNへ実際には解放されない。仮想ディスクのこの種の「淀んだ」部分は対応するゲストオペレーティングシステムによって利用されず、かつまた、代替用途(例えば、異なる仮想マシン、その他用の異なる仮想ディスクの一部として再割当される)のための仮想化ソフトウェアに利用可能でないので、この振る舞いはストレージ非効率性に結びつく可能性がある。
[0006](1台以上の仮想ディスク及び他のVM構成ファイルを含む)仮想マシンディスクファイルのソースLUNから宛先LUNへのライブの移行を含むStorage vMotion(商標)として知られるプロセスは、薄く供給されたLUN内に累積された「淀んだ」データの別の例を提供する。Storage vMotion(商標)中に、仮想マシンディスクファイルに対応する実際のデータブロックが、ソースLUNから宛先LUNにコピーされ、及び、コピーの終わりで、このVMをサポートするLUNがソースLUNから宛先LUNに原子的に切替えられる。原子的切替えの後、ソースLUN内の仮想マシンディスクファイルに対応する実際のデータブロックは、もはや必要でない。仮想化ソフトウェアがそれ自体でこれらのデータブロックを追跡し、かつ、例えばソースLUNから仮想マシンディスクファイルを実際に削除することによって、「空き(free)」としてそれらをマークすることができるとはいえ、仮想マシンディスクファイルのこれらの空きデータブロックに対応するソースLUNの部分は、LUNからストレージアレイへ実際には解放されない。仮想化ソフトウェアが(例えば、新規な仮想マシンディスクファイルを別の仮想マシン、その他に割り当てることによって)代替用途のためのソースLUN内に、解放されたデータブロックをすばやく再割当するならば、これは受け入れられるかもしれない。しかしながら、解放されたデータブロックが未割り当てのままである場合において、LUNのこの種の「淀んだ」部分は(例えば、この種の淀んだ部分が、ストレージアレイマネージャによって、ストレージ圧力を経験しているかもしれない、異なる薄く供給されたLUNに再割当される可能性があるので)シン・プロビジョニングから得られるストレージ空間効率を小さくする。
[0007]本発明の1つ以上の実施態様が、支持されるべきこの種の技術から利益が得られることを可能にするために、シン・プロビジョニングのような、ストレージ空間最適化法を使用するストレージデバイスに対する、システムソフトウェアインタフェースを提供する。この種のインタフェースは、ハイパーバイザが、LUNが薄く供給されたかどうかのような、LUNの機能を発見することを可能にするために仮想化コンピュータシステムのハイパーバイザ内に、及び、更に、VMが、仮想ディスクが薄く供給されたかどうかのような、仮想ディスクの機能を発見することを可能にするために、仮想化コンピュータシステムのVM内に設けられてもよい。これらの機能の発見は、論理ブロックデバイス、即ちLUN又は仮想ディスクに以前に割り当てられたブロックの割当てを解除する動作のような特定の動作を実行するように、ハイパーバイザ又はVMが下位ストレージデバイスに指示することを可能にし、下位ストレージデバイスがその中で実現されるストレージ空間最適化法から利益を得続けることができるようにする。
[0008]本発明の一実施態様に従う一コンピュータシステムは、プロセッサ、メモリ及び論理ブロックデバイスを含むハードウェア資源、及び1台以上の仮想マシンの実行をサポートしてかつエミュレートされた論理ブロックデバイスを含む仮想マシンのためのハードウェア資源をエミュレートするハイパーバイザを含む。ハイパーバイザは、論理ブロックデバイスからストレージブロックの割当てを解除するために論理ブロックデバイスにコマンドを発行するためのコンポーネントを含み、及び仮想マシンの各々は、エミュレートされた論理ブロックデバイスからストレージブロックの割当てを解除するためにエミュレートされた論理ブロックデバイスにコマンドを発行するためのコンポーネントを含む。
[0012]1つ以上の実施態様に従う仮想化コンピュータアーキテクチャを示すブロック図である。 [0013]1つ以上の実施態様に従う、図1の仮想化コンピュータアーキテクチャにおけるサーバを代表するブロック図を記載する。 [0014]1つ以上の実施態様に従う、図1の仮想化コンピュータアーキテクチャにおけるストレージアレイを代表するブロック図を記載する。 [0015]図2Aのサーバ内で動作するハイパーバイザの論理ブロックデバイスとして動作するLUNの構成特性を集める一方法を例示する流れ図である。 [0016]図2Aのサーバ内で動作する仮想マシンのゲストオペレーティングシステムの論理ブロックデバイスとして動作する仮想ディスクの構成特性を集める一方法を例示する流れ図である。 [0017]仮想ディスクからのストレージ空間再利用の一方法を例示する流れ図である。 [0018]VMからのコマンドに応答してハイパーバイザによって開始されるLUNからのストレージ空間再利用の一方法を例示する流れ図である。 [0019]管理サーバからのコマンドに応答してハイパーバイザによって開始されるLUNからのストレージ空間再利用の一方法を例示する流れ図である。 [0020]VMをライブで移行するプロセスを開始する前に互換性チェックを実行する一方法を例示する流れ図である。 [0021]LUNが用いられた容量内の特定の閾値に到達したと仮想化コンピュータシステムの管理サーバに通知する一方法を例示する流れ図である。 [0022]図9で通知を受け取る際に管理サーバによって善後策を実行する一方法を例示する流れ図である。 [0023]書込み動作を実行する間にLUNの、空間が尽きる時に、生じるエラーを検出してかつ処理する一方法を例示する流れ図である。 [0024]LUNからストレージ空間を遡及して再利用する一方法を例示する流れ図である。
[0025]図1は、1つ以上の実施態様に従う仮想化コンピュータアーキテクチャ100を示すブロック図である。仮想化コンピュータアーキテクチャ100は、1台以上のストレージアレイ130を含む共有ストレージシステムにネットワーク120経由で接続される複数のサーバ110を含む。サーバ110はいくつあってもよく、それぞれが、任意の数のストレージアレイ130上に格納されるデータにアクセスする1台以上の仮想マシンを有する汎用コンピュータシステムを備えていてもよい。ネットワーク120は、広域ネットワーク、ローカルエリアネットワーク又は、Fibre Channel、iSCSI、その他のような、ストレージアレイ130に特に適しているプロトコルをホストするネットワークであってもよく、かつ1個以上のスイッチを備えていてもよい。ストレージアレイ130は、ネットワーク接続ストレージ(NAS)ファイラ又はストレージエリアネットワーク(SAN)を介したブロックベースデバイスのような任意のタイプであってもよい。ストレージアレイ130が典型的に複数のディスクから構成されるとはいえ、固体不揮発性ストレージデバイスの価格が下落するにつれて、それらがますます回転ディスクストレージ媒体に取って代わると認識されなければならない。従って、用語「ディスク」の使用は、本願明細書において、回転ディスクストレージ媒体だけに限定されると解釈されるべきでなく、また、固体ディスク又は「SSD」として知られるようになっているものも含まれる。
[0026]仮想化コンピュータアーキテクチャ100は、管理サーバ148によって管理され、それは、中央サーバ内に又は代わりとしてサーバ110の1つの内に存在して実行するコンピュータプログラムである。管理サーバ148は、サーバ110の各々と通信し、かつ、サーバ110間の負荷平衡及びストレージアレイ130間の作業負荷平衡のような仮想化コンピュータアーキテクチャ100の管理業務を実施する。
[0027]図2A及び2Bは、1つ以上の実施態様による、サーバ110のいずれかの代表であるサーバ200及び、ストレージアレイ130のいずれかの代表であるストレージアレイ250のブロック図をそれぞれ記載する。サーバ200は、従来の、典型的にサーバ−クラスの、ハードウェアプラットホーム202上で構成されていてもよい。図2Aに示すように、サーバ200はストレージアレイ250にサーバ200を接続することを可能にするHBA204及びNIC201を含む。図2Aに更に示すように、ハイパーバイザ208がハードウェアプラットホーム202上にインストールされ、及びそれが、複数の仮想マシン(VM)212−212がその中で並行してインスタンス化されて実行されることができる仮想マシン実行空間210をサポートする。この種の各仮想マシン212−212は、アプリケーション218を実行可能なゲストオペレーティングシステム(OS)216のインストールをサポートする仮想ハードウェアプラットホーム214を実現する。ゲストOS 216の例はMicrosoft Windows(登録商標)、Linux(登録商標)等のような、周知のコモディティーオペレーティングシステムのいずれをも含む。それぞれの例において、ゲストOS 216はネイティブのファイルシステムレイヤ(図2A内に図示せず)、例えばNTFS又はext3FSタイプファイルシステムレイヤのいずれかを含む。これらのファイルシステムレイヤは、ゲストオペレーティングシステム216の観点から、データストレージHBAにアクセスするために仮想ハードウェアプラットホーム214とインタフェースするが、それは、実際はディスクストレージサポートの外観を提供する仮想ハードウェアプラットホーム214によって実現される仮想HBA220であり(実際は、複数の仮想ディスク即ち仮想ディスク222−222)、システムハードウェアの仮想化に透過的なゲストOS216の実行を可能にする。特定の実施態様において、仮想ディスク222−222は薄く供給されることができ、かつ、ゲストOS216の観点から、仮想マシンに接続するためのSCSI規格、又はIDE、ATA及びATAPIを含む、当業者に公知のその他の適切なハードウェア接続インタフェース規格をサポートするように見える。
[0028]ゲストオペレーティングシステム216の観点から、ファイルシステム関連のデータ転送及び制御動作を実現するためにこの種のゲストオペレーティングシステム216によって開始されるファイルシステム呼出しは、最終的な実行のために仮想ディスク222−222に経路を定められるように見えるとはいえ、実際は、この種の呼出しはハイパーバイザ208による動作を調整するために必要な仮想システムサポートを実現する補助仮想マシンモニタ(VMM)レイヤ224−224に仮想HBA220を通して処理されて通される。特に、HBAエミュレータ226は、ストレージアレイ250に接続する本当のHBA204又はNIC201に、その種々のレイヤを通して最終的にこの種の動作を通すハイパーバイザ208によって、データ転送及び制御動作が正しく処理されることを機能的に可能にする。SCSIサポートされた仮想デバイス実現を想定して、(当業者が他のハードウェアインタフェース規格を用いるオプションを認識するとはいえ)、ハイパーバイザ208のSCSI仮想化レイヤ228が、VMMレイヤ224−224からデータ転送及び制御動作を(例えば、SCSI準拠仮想ディスクを意図されるSCSIコマンドの形で)受け取り、かつSCSI準拠仮想ディスクを代表するVMFS230の管理下で、ストレージアレイ250内のLUNの1つの内に格納されているファイルにアクセスするために、仮想マシンファイルシステム(VMFS)230によって理解されるファイルシステム動作に、それらを変換する。一実施態様において、代替仮想ディスクファイルフォーマットが他の実施態様で用いられてもよいことが認識されるべきであるとはいえ、仮想ディスクを代表するファイルが仮想ディスクのためのVMware社によって広められるVMware仮想ディスク(VMDK)ファイルフォーマットに適合する。
[0029]次に、SCSI仮想化レイヤ228は、VMFS230に、これらのファイルシステム動作を発行する。VMFS230は、一般に、ストレージアレイ250によって公開されるLUN上に格納される(例えば、仮想ディスクを代表する.vmdkファイルのような)ファイルの作成、使用及び削除を管理する。一実施態様においてVMFS230として機能することができるクラスタ化されたファイルシステムの一例が、特許文献1内に記載されており、その内容全体を、本願明細書に引用したものとする。VMFS230は、SCSI仮想化レイヤ228から受け取られるファイルシステム動作をボリューム(例えばLUN)ブロック動作に変換し、かつボリュームブロック動作を論理ボリュームマネージャ232に与える。論理ボリュームマネージャ(LVM)232は、典型的にドライバとファイルシステムレイヤとの間の中間層として実現され、かつボリューム指向仮想化並びにHBA204及びNIC201を通してアクセス可能なLUNの管理をサポートする。LVM232は、LUNブロック動作に基づいてデバイスアクセスレイヤ234に生のSCSI動作を発行する。データアクセスレイヤ240は、ストレージアレイ250を発見しかつコマンド待ち行列及びスケジューリングポリシーを生のSCSI動作に適用するデバイスアクセスレイヤ234と、ストレージアレイ250とインタフェースするHBA204及びNIC201の入出力インタフェースを理解し、かつデバイスアクセスレイヤ234から、ストレージアレイ250に送り届けられるべきHBA204又はNIC201に生のSCSI動作を送るデバイスドライバ236と、を含む。
[0030]図2A内の仮想化コンポーネントを記述するために用いられる種々の用語、レイヤ及びカテゴリ化は、本発明のそれらの機能又は趣旨若しくは有効範囲から逸脱することなく、異なって参照されてもよいと認識されるべきである。例えば、各インスタンス化されたVMに対して別々のVMMが存在するので、VMM224はVM212とハイパーバイザ208との間の別々の仮想化コンポーネントと考えてもよい(この種の概念において、それはそれ自体で仮想化「カーネル」コンポーネントと考えてもよい)。代わりに、この種のVMMが仮想マシンに対するハードウェアエミュレーションコンポーネントを含むので、各VMMはその対応する仮想マシンのコンポーネントと考えてもよい。この種の代替概念において、例えば、仮想ホストバスアダプタ220が図2Aから除去されるように(即ち、その機能がホストバスアダプタエミュレータ226によって達成されるので)、仮想ハードウェアプラットホーム214として記述される概念上のレイヤがVMM224に結合されていてもよい。
[0031]図2Bで図示するように、ストレージアレイ250のストレージアレイマネージャ251は、そのLUNの1つに対応する生のSCSI動作を受け取り、かつその際に動作されるストレージアレイ250のスピンドル内でそれらを適切なエクステントに分割する。1台以上のプログラムされたストレージプロセッサを代表するストレージアレイマネージャ251は、一般にストレージアレイ250の(外部に対する)通信エージェントとして機能し、かつ、ストレージアレイ250内に存在する、図2B内ではスピンドル252−252と称される、物理的な、典型的にはディスクドライブベースのストレージユニットの仮想化を実現する。論理的観点から、これらのスピンドルの各々は、固定したサイズのエクステント254のシーケンシャルなアレイと考えることができる。本願明細書において先にLUN256−256(「論理装置番号」)と称された一組の仮想SCSIブロックデバイスに分割されてもよい連続した論理ストレージ空間としてディスクドライブによって与えられる集積された物理ストレージ空間を見る能力をサーバ200に公開することによって、ストレージアレイマネージャ251は、ディスクドライブの実際のスピンドル及びエクステントのアドレスに読出し及び書込み動作を向ける複雑さを取り去る。LUN256−256のこの種の連続した論理ストレージ空間へのスピンドル252−252の仮想化は、論理ボリュームのアドレス空間によって代表される集積された物理ストレージ空間のより効率的な利用を提供することができる。ストレージアレイマネージャ251は、エクステントの順序リストへのLUN256−256の各々に対するマッピング(以下に、また、エクステント−マッピングと称する)を含むメタデータ255を維持し、この種の各エクステントはスピンドル−エクステント対<spindle#、extent#>として識別可能であり、従って、種々のスピンドル252−252のいずれかの内に置かれていてもよい。
[0032]特定の実施態様において、LUNを割り当てる時、ストレージアレイ250は「シン・プロビジョニング(thin provisioning)」と呼ばれるストレージ空間最適化法を使用することができる。LUNが「薄く(thinly)」供給される時、ストレージアレイ250によって報告されるLUNの論理サイズは、そのLUNを最初に支持する物理空間の合計より大きくてもよい。LUNの全てのコンシューマは、LUNの論理サイズを見るだけである。書込み動作が薄く供給されたLUNの以前に未割り当てのブロックに発行されるにつれて、消費された実際の物理空間の合計は増大し、ある時点で、LUNは物理空間が尽きるかもしれない。同様に、図2A内に記載されるような仮想化環境において、ストレージアレイ250のLUN上に格納される仮想ディスク222は、例えばハイパーバイザ208によって(又は特定の実施態様では管理サーバ148によって)、「薄く供給される」ように構成されていてもよい。ゲストOS216の観点から、この種の薄く供給された仮想ディスク222は固定論理サイズを有するとして認められるが、実際は、VMFS230がLUNストレージ空間を仮想ディスク222(例えば、.vmdkファイル)に動的に割り当て、そうすると、任意の所定の時間で、仮想ディスク222を支持するLUN内の実際のストレージ空間は論理サイズ未満かもしれない。
[0033]図3は、ハイパーバイザ208の論理ブロックデバイスとして動作する、LUNの構成特性を集めるためにハイパーバイザ208によって実施される一方法を例示する流れ図である。LUNのこれらの構成特性は、LUNに「UPMAP」コマンドを発行することによって、LUNから(ストレージアレイ250のようなLUNをサポートするストレージシステムへ戻る)ストレージ空間を「再利用する(reclaim)」ために以下に記載する技法で用いられてもよい。図3で図示するように、ステップ302で、ハイパーバイザ208はLUNにSCSI読取り容量コマンド(例えば16ビット版のコマンド)を発行する。ステップ304で受け取られるLUNの応答は、ビットの設定によって示されるように、LUNがシン・プロビジョニングをサポートするか否かの表示を含む(それは、一実施態様において、シン・プロビジョニング対応(thin provisioning enabling)(TPE)ビットとして既知である)。ステップ306で、ハイパーバイザ208が、LUNがシン・プロビジョニングをサポートする(例えば、TPEビットが設定される)と判定するならば、この方法はステップ308に続く。ステップ306で、ハイパーバイザ208が、LUNがシン・プロビジョニングをサポートしない(例えば、TPEビットが設定されない)と判定するならば、この方法は終了する。
[0034]ステップ308で、ハイパーバイザ208はシン・プロビジョニングに対するLUNのサポートを記録し、かつLUNに(例えば、一実施態様において問合せのタイプとして0xB0「Vital Product Data」コードを利用して)SCSI Inquiryコマンドを発行する。ステップ310で受け取られてかつステップ312で記録されたLUNの応答は、LUNが「UNMAP」コマンド(実施態様によってはUNMAP「ビット(bit)」によって示される)をサポートするか否かに関する指示を含み、及びサポートがあるならば、応答はさらにマップ解除コマンドと共に用いられるべきいくつかのパラメータのレポートを含む。その最も単純な形において、一実施態様において、UNMAPコマンドはLUNによってマップ解除されるべき、かつLUNをサポートする下位ストレージシステムに解放されるべきブロックのリストを特定する。そのような実施態様において報告されるパラメータは、D(LUNがデータを管理する粒度)、Doffset(LUNがマップ解除コマンドを受け取るのを好むオフセットで表現される整合パラメータ)、及びNMAX_D(単一のUNMAPコマンドで特定可能な<offset,length>対の最大数)、を含む。例えば、Doffsetが4KBの値を有するならば、その時、LUNは、4KBのアドレスの倍数(例えば、0KB、4KB、8KB、12KB、その他のアドレス)で始まる、UNMAPコマンドのような、SCSI動作を受け入れる。Dがその時512KBの値を有するならば、LUNは512KBの倍数であるブロックサイズを特定するSCSI動作を受け入れる。この種の例において、LUNはLUNの始まりから12KBのオフセットに対応するアドレスから始まる1024KBの連続ブロックをマップ解除するためにUNMAPコマンドを受け入れるが、LUNの始まりから1KB、2KB、3KB、その他のオフセットに対応するアドレスから始まる任意の連続ブロック、又は連続したブロックサイズが512KB未満であるところをマップ解除するためにUNMAPコマンドを受け入れない。値D、Doffset及びNMAX_Dが、LUNをサポートする下位ストレージシステムのストレージベンダーによって設定されるか又は規定されると認識されるべきである。
[0035]図4は、仮想マシン212のゲストOS216の論理ブロックデバイスとして動作する、仮想ディスク222の構成特性を集めるためにゲストOS216によって実施される一方法を例示する流れ図である。認識されるはずであるように、ハイパーバイザが、図3に記載のその構成特性に対してストレージアレイ内のLUNを問い合わせるよりむしろ、図4において、仮想マシン212内のプロセス(例えばゲストOS216、又はゲストOS216その他内へロードされたSCSIデバイスドライバ内の設定ルーチン内の、空きブロックを追跡するために開発されたユーザレベルプロセス)が、その構成特性に対して仮想ディスク222(例えばそのデータがLUN内にファイルとして実際に格納されたエミュレートされたSCSIデバイス)を問い合わせるという点を除けば、図4は図3と同じステップを繰り返す。仮想ディスクがハイパーバイザ208によってエミュレートされているので、ハイパーバイザ208は仮想マシン212内の問合せプロセスに応答して(仮想ディスクの代理として)仮想ディスクの構成特性を提供する。仮想ディスクのこれらの構成特性は、仮想ディスクに「UNMAP」コマンドを発行することによって仮想ディスクがファイルとして格納されるLUNへ、仮想ディスクからストレージ空間を「再利用する」ために以下に記載する技法で用いられてもよい。図4で図示するように、ステップ402で、ゲストOS216は仮想ディスクにSCSI読取り容量コマンド(例えば16ビット版のコマンド)を発行する。ステップ404で受け取られる仮想ディスクの応答は、ビットの設定(それは、一実施態様において、「シン・プロビジョニング対応(TPE)ビットとして既知である)によって示されるように、仮想ディスクがシン・プロビジョニングをサポートするか否か、の指示を含む。ステップ406で、ゲストOS216が、仮想ディスクがシン・プロビジョニングをサポートする(例えば、TPEビットが設定される)と判定するならば、この方法はステップ408に続く。ステップ406で、ゲストOS 216が、仮想ディスクがシン・プロビジョニングをサポートしない(例えば、TPEビットは設定されない)と判定するならば、この方法は終了する。
[0036]ステップ408で、ゲストOS216はシン・プロビジョニングに対する仮想ディスクのサポートを記録し、かつ仮想ディスクに(例えば、一実施態様において問合せのタイプとして0xB0「Vital Product Data」コードを利用して)SCSI Inquiryコマンドを発行する。ステップ410で受け取られてかつステップ412で記録された仮想ディスクの応答は、仮想ディスクが「UNMAP」コマンド(実施態様によってはUNMAP「ビット」によって示される)をサポートするか否かに関する指示を含み、及びサポートがあるならば、応答はさらにUNMAPコマンドと共に用いられるべきいくつかのパラメータのレポートを含む。その最も単純な形において、一実施態様において、UNMAPコマンドは仮想ディスクによってマップ解除され、かつ仮想ディスクが格納されているLUNに解放されるべきブロックのリストを特定する。そのような実施態様において報告されるパラメータは、V(そこでハイパーバイザ208がデータを管理する粒度)、Voffset(ハイパーバイザ208がUNMAPコマンドを受け取るのを好むオフセットとして表現される整合パラメータ)、及びNMAX_V(単一マップ解除コマンドで特定可能な<offset,length>対の最大数)、を含む。仮想ディスクに対するV及びVoffsetは、LUNに対するD及びDoffsetに類似しており、従って、前述のようにD及びDoffsetに同様に用いられる。
[0037]図5は、例えば、VMがその仮想ディスク内に格納されるファイルを削除する時の、VMによって開始されるストレージ空間再利用の一方法を例示する流れ図である。認識されるべきことは、ファイルが、連続していてもしていなくてもよい一連のファイルブロックとして、仮想ディスク(例えば、それはそれ自体でLUN内に格納されたファイルである)内に表されること、及び、図5の方法が、「ファイルセグメント」として本願明細書では呼ばれる、連続したファイルブロックの各組に対して実行されること、である。一実施態様において、図5のステップが、ゲストOS216内の削除されたファイルに関する空きファイルシステムブロックを監視してかつ識別するために開発されたユーザレベルプロセスによって実行される。例えば、この種の監視プロセスは、最近削除されたファイルに関する空きブロックを認識する際に定期的な間隔で図5の方法を実行してもよく、又は仮想ディスクからファイルの削除の際にゲストOS216によって通知されてもよい。ステップ508で、仮想ディスクによって公開された、図4のステップ410で受け取られたUNMAPビットが調べられる。このビットが設定されないならば、この方法はこの種の判定の後で終わる。ステップ508で、仮想ディスクによって公開されたUNMAPビットが設定されるならば、この方法はステップ510へ続き、そこで仮想ディスクによって公開されたオフセットに準拠する(例えば、その倍数である)オフセットで始まる削除されたファイルのファイルセグメントの長さ(又は、代わりとして、ゲストOS216によって示された多数の連続した空きファイルシステムブロックの長さ)、Voffset(この後「L1」と称するこの種のファイルセグメントの長さ)が、決定される。従って、Voffsetと自然に整合されないファイルセグメントは、このステップを実施することによってVoffsetと整合するようにされる。L1がステップ510で決定された後で、ステップ514で、L1は仮想ディスクによって公開された粒度、Vと比較される。L1<Vならば、次にステップ516で、ファイルセグメントが仮想ディスクに対するマップ解除コマンドをサポートするために十分な連続したファイルブロックを含まないと判定され、及びそのようなものとして、監視プロセスによってその後識別されることができるこの種のファイルブロックに隣接する他の空きブロックとの、可能な合体のためにファイルセグメントのファイルブロックが、記憶される(例えば、特別なデータ構造内のファイルブロックを識別する)。記憶されたファイルブロックは、そのL1がまたV未満である他のファイルセグメントから、ファイルブロックに隣接していてもよいので、ステップ516が実施される。その場合は、ファイルブロックは、仮想ディスクによって公開された粒度に固着する単一UNMAPコマンド内の可能な内包に対して合体される。しかしながら、記憶されたファイルブロックは、また、(例えば、監視プロセスによって)書込みに対して監視され、かつ、(この種のファイルブロックはUNMAPコマンドに対してもはや空いてないので)書込みがそれに対して発行されるならば、もはや記憶されない(例えば、特別なデータ構造から除去される)。ステップ510への破線の矢印によって示されるように、合体されたファイルブロックの長さ、L1はステップ510で決定される。ステップ514で、それらが条件、L1<Vを満たすかどうか見るために、L1がもう一度確認される。
[0038]L1がV以上であるならば、UNMAPコマンドと共に用いられる<offset,length>ディスクリプタがステップ518で生成される。次いで、ステップ520で、処理すべきより多くのファイルセグメントがあるかどうかが、判定される。もしあれば、流れは、ステップ510に戻る。これ以上ないならば、1つ以上の<offset,length>ディスクリプタの列を備えたUNMAPコマンドが生成されてステップ522で仮想ディスクに送られる。ステップ518で生成されたディスクリプタの数が仮想ディスクによって公開された最大数、NMAX_Vより大きいならば、UNMAPコマンドは複数のUNMAPコマンドに分割されて別々に仮想ディスクに送られる。この方法は、ステップ522の後で終わる。
[0039]例えば、V=1MB及びVoffset=4KBであり、ステップ510で分析されたファイルセグメントが仮想ディスクの始まりから5KBに対応するアドレスから始まって1.5MBの長さ、L1を有したならば、その時、ディスクリプタが仮想ディスクによって公開された粒度及び整合パラメータに準拠するように、UNMAPコマンドのために生成されたこのファイルセグメントに対する対応するディスクリプタは<8KB、1MB>である。即ち、ファイルセグメントのその部分がVoffset(即ち4KB)の倍数であるアドレスから始まらないので、仮想ディスクは5KBから8KBまでのファイルセグメントの初めの3KBの部分をマップ解除することができない。同様に、テール部分がファイルセグメントの第2の1MBの部分内に納まるので、仮想ディスクはファイルセグメントのテール部分(即ちおよそ最後の0.5MB)をマップすることができず、仮想ディスクは1MBの倍数でマップ解除することができるだけである。
[0040]図6は、(例えば、図5のステップ522から受け取られる)VMからのUNMAPコマンドに応答してハイパーバイザ208によって開始されたストレージ空間再利用の一方法を例示する流れ図である。ステップ602で、ハイパーバイザ208、特にSCSI仮想化レイヤ228は、仮想ディスクの代わりにVMからUNMAPコマンドを受け取ってかつUNMAPコマンドを、連続していてもしていなくてもよい、一連のVMFSブロックに概念的に対応する、VMFSファイルオフセット及び長さに変換する。VMFSブロックはこの後空きVMFSブロックと称され、及び、空きVMFSブロックの各連続したセグメントはVMFSブロックセグメントと称される。次いで、空きVMFSブロックが割り当てられたままにしておかれるべきであるかどうか、判定がステップ604でなされる。例えば、仮想ディスクが薄く供給されなくてその代わりに予め割り当てられる時、空きVMFSブロックを割り当てられたままにしておくことがステップ604で決定される。従って、空きVMFSブロックが割り当てられたままにしておかれるべきであるならば、仮想ディスクを代表するVMFSファイルのメタデータ(即ちアイノード)が、空きVMFSブロックが、特許文献2にて説明され、その内容全体を本願明細書に引用したものであるように、「ゼロ合わせされるべき」として示されるようにアップデートされる。この方法は、ステップ605の後で終わる。他方では、空きVMFSブロックが割当てを解除されるべきであることがステップ604で決定されるならば、空きVMFSブロックは、仮想ディスクを代表するVMFSファイルから、ステップ606で割当てを解除される。論理サイズが同じのままの場合であっても、この割当て解除は(仮想ディスクに対応するVMFSファイルのアイノード内に記録されたように)仮想ディスクに割り当てられたブロックの物理サイズを減少させる。この割当て解除の一部として、VMFS 230によって管理されたビットマップデータ構造が、割当てを解除されたVMFSブロックが目下空いていることを示すようにアップデートされる。この割当て解除がLUNへ仮想ディスク(例えば薄く供給された仮想ディスク)から空きブロックを実質的に解放するので、ハイパーバイザ208によって実行されるように、それが仮想ディスク上のVMからのUNMAPコマンドの満足を代表する点に留意する必要がある。しかしながら、特定の実施態様において、仮想ディスクから戻る空きブロックをちょうど受け取った、かつ薄く供給されたLUNである、LUNがそれ自体で、(例えば、この種の空きブロックが別のLUNによって利用されることができるように)その下位ストレージアレイへこの種の空きブロックを解放することができるかどうかを、この接合点で、判定するよう更に求められてもよい。
[0041]実施態様によっては、ハイパーバイザ208は空きVMFSブロックを再利用する(例えば、この種の空きブロックを別の仮想ディスクに割り当てる)よう求めることができる。このチェックは、ステップ608でなされる。ハイパーバイザ208が空きVMFSブロックを再利用するよう求めると判定されるならば、この方法は終わる。他方では、ハイパーバイザ208が現在時刻で空きVMFSブロックを再利用するよう求めないとステップ608で判定されるならば、空きVMFSブロックを格納するLUNによって公開されたUNMAPビットは、(例えば、この種の空きブロックが別のLUNによって利用可能なように)LUNがその下位ストレージアレイへ空きVMFSブロックを解放することが可能であるかどうか、判定するためにステップ610で調べられる。このビットが設定されないならば、この方法はこの種の判定の後で終わる。ステップ610で、LUNによって公開されるマップ解除ビットが設定されるならば、この方法はステップ612へ続き、そこで、LUNによって公開されたオフセットに準拠するオフセットから始まる1つのVMFSブロックセグメントの長さ、Doffset(この後「L2」と称する長さ)が、判定される。従って、Doffsetと自然に整合されないVMFSブロックセグメントは、このステップを実施することによってDoffsetと整合するようにされる。L2がステップ612で判定された後で、L2はLUNによって公開された粒度、Dと比較される。L2<Dならば、VMFSブロックセグメント内のVMFSブロックは、ステップ616で監視されるそれへの可能な合体及び書込みに対して記憶される(例えば、特別なデータ構造内のVMFSブロックを識別する)。記憶されたVMFSブロックが、そのL2がD未満である他のVMFSブロックセグメントからのVMFSブロックと隣接していてもよいので、ステップ616が実施される。その場合は、VMFSブロックは、LUNによって公開された粒度に固着する単一UNMAPコマンド内の可能な内包に対して合体される。しかしながら、記憶されるVMFSブロックは、書込みのために監視され、及び、書込みがそれに対して発行されるならば、もはや記憶されない(例えば、特別なデータ構造から除去される)。判定ブロック612に破線の矢印によって示されるように、それらが条件、L2<Dを満たすかどうか見るために、合体されたVMFSブロックがチェックされる。
[0042]L2がD以上であるならば、UNMAPコマンドと共に用いられる<offset,length>ディスクリプタがステップ618で生成される。次いで、ステップ620で、処理されるべきより多くのVMFSブロックセグメントがあるかどうかが、判定される。もしあれば、フローは、ステップ612に戻る。これ以上ないならば、1つ以上の<offset,length>ディスクリプタの列を備えたUNMAPコマンドが生成されてステップ622でLUNに送られる。ステップ618で生成されたディスクリプタの数が仮想ディスクによって公開された最大数、NMAX_Dより大きいならば、UNMAPコマンドは複数のUNMAPコマンドに分割されて別々にLUNに送られる。この方法は、ステップ622の後で終わる。
[0043]例えば、1つのVMFSブロックセグメントが<8KB、1MB>によって記述されて、並びにD=32KB及びDoffset=16KBならば、ディスクリプタがLUNによって公開された粒度及び整合パラメータに準拠するように、UNMAPコマンドはディスクリプタ<16KB、(1MB−32KB)>と共に発行される。即ち、ファイルセグメントのその部分がDoffset(即ち16KB)の倍数であるアドレスから始まらないので、LUNは8KBから16KBまでのVMFSブロックセグメントの初めの8KBの部分をマップ解除することができない。同様に、テール部分が32KBの粒度に準拠するにはあまりに小さいので、LUNはVMFSブロックセグメントのテール部分(即ち、およそ最後の24KB)をマップすることができない。
[0044]図7は、管理サーバ148からのUNLINKコマンドに応答してハイパーバイザ208によって開始されたストレージ空間再利用の一方法を例示する流れ図である。UNLINKコマンドは、VMFS230によって維持されるファイル又はファイルの組を削除し、かつこれらのファイルに対応するVMFSブロックの割当てを解除するようにUNMAPコマンドを発行するようにハイパーバイザ208に知らせるように発行される。例えば、Storage vMotion(商標)が実施された後で、その結果、VMと関連する一組のファイル(例えば、仮想ディスクを例えば備えるか又は含む)が、ソースLUNから宛先LUNに移行され、UNLINKコマンドが、ファイルを削除し、かつ、ソースLUNから、これらのファイルに対応するVMFSブロックの割当てを解除するために管理サーバ148によって発行されてもよい。この方法はステップ702から始まり、そこで、ハイパーバイザ208がファイル又は複数ファイルのアイノードを調べることによって削除されたファイル又は削除されたファイルの組に対応するVMFSブロックセグメントを識別する。図7内に例示される残りのステップは図6の同じ番号をつけられたステップと同一であり、参照がこれらのステップに対して上述のようになされる。
[0045]図8は、ソースホストから宛先ホストにVMをライブ移行するプロセスを開始する前に互換性チェックを実行する一方法を例示する流れ図である。薄く供給された仮想ディスクによってサポートされたVMは、好ましくは、UNMAPサポートによって薄く供給された仮想ディスクを提供することが可能でない宛先ホスト上のハイパーバイザに移行されるべきでないので、これらの互換性チェックは管理サーバ148によって実施される。これらのチェックは、ハイパーバイザのバージョンナンバをチェックすることを含む種々の方法で実行されてもよい。例えば、宛先ホスト上のハイパーバイザのバージョンナンバがシン・プロビジョニングをサポートするハイパーバイザの最も低いバージョンナンバ以上であるならば、ソースホストから宛先ホストへのライブの移行が可能にされる。ライブの移行は、そうでなければ承認されない。
[0046]図8を参照して、ステップ802で、ライブ移行されるべきVMが、識別される。このVMが薄く供給された仮想ディスクでサポートされることが、例証のために想定される。ステップ808で、宛先ホスト上のハイパーバイザも薄く供給された仮想ディスクをサポートするかどうか見るために、チェックがなされる。一実施態様において、このチェックは上記の通りにバージョンナンバに基づいてなされる。チェックが失敗するならば、準拠したハイパーバイザを備えた宛先ホストが見いだされるまで、この方法はステップ810及び812を通してループする。準拠したハイパーバイザがないならば、この方法は終了する。準拠したハイパーバイザが見いだされるならば、VMのライブの移行がステップ820で管理サーバ148によって開始される。
[0047]図9は、LUNが用いられた容量内の特定のしきい値に到達したと管理サーバ148に通知する一方法を例示する流れ図である。LUNにより多くの空間を供給すること、UNLINKコマンドを用いてLUNに格納された、使っていないファイルを削除すること、又はLUNから別のLUNへ作業負荷(例えばVMの仮想ディスク)を移行し、移行された作業負荷上でUNLINKコマンドを起動することが続くような、救済策を管理サーバ148が使用できるように、この通知が与えられる。ステップ902及び904は、ストレージアレイによって実施される。ステップ906は、ハイパーバイザによって実施される。
[0048]ステップ902は、LUNのストレージ容量が特定の閾値レベルに到達したか又は超えたかどうかを、ストレージアレイが継続的に監視していることを示す。この条件が満たされると判定するならば、それはLUN IDと共にステップ904でハイパーバイザにソフトエラーメッセージを発行する。例えば、LUNがその閾値レベルを上回ることに結びつくLUNへの任意の書込み動作は、ストレージアレイにハイパーバイザに対してソフトエラーメッセージを発行させる。ステップ906で、このソフトエラーメッセージを受け取る際に、ハイパーバイザは管理サーバ148にソフトエラーメッセージを発行する。管理サーバ148が上記の救済策を使用することができるように、ソフトエラーメッセージはLUN ID及びVMFS IDを含む。
[0049]図10は、図9のステップ906で生成されたソフトエラーメッセージを受け取る際に管理サーバ148によって善後策を実行する一方法を例示する流れ図である。ステップ1002で、管理サーバ148がソフトエラーメッセージを受け取る。次いで、ステップ1004で、管理サーバ148が、収容能力に近づいているLUNによってサポートされるVMの構成設定を調べる。本発明の実施態様によれば、VMの配備の際に特定可能な構成設定の1つが、VMをサポートするLUNが収容能力に近づいている時、どんな救済策がとられるべきであるかである。選択肢の三つが、Storage vMotion(商標)、スナップショット及びパワーオフである。1006の判定ブロックの後、Storage vMotion(商標)がこの種の設定で指定されるならば、ステップ1008が実行され、スナップショットがこの種の設定で指定されるならば、ステップ1010が実行され、及び、パワーオフがこの種の設定で指定されるならば、ステップ1012が実行される。ステップ1008で、管理サーバ148はソースLUN(即ち収容能力に近づいているLUN)と宛先LUNとの間のStorage vMotion(商標)を開始する。Storage vMotion(商標)の完了の後、UNLINKコマンドがソースLUNから移行されたファイルを削除するために用いられる。ステップ1010で、VMファイルのスナップショットが宛先LUN上に作り出され、及び、ソースLUN上のVMファイルが読取り専用にマークされる。ステップ1012で、管理サーバ148はVMをパワーオフする。
[0050]何の救済策も使用されないか、又はそれらがあまりに遅く配備されるならば、又は救済策が配備されるにもかかわらず、書込み動作を実行する時、LUNは空間が尽きるかもしれない。この条件の下で、ハードエラーメッセージがストレージアレイによって発行される。より多くの空間がLUNに供給されるか、又はLUN内の追加的な空間が再利用されるまで、書込み動作を発行したVMが停止可能なように、このエラーメッセージはエラー条件を引き起こした書込み動作のIDを含む。エラーを引き起こしたVMだけを停止させることによって、VM分離は保たれ、及び、ストレージのために同じLUNを使用している他のVMは動作中のままであることができる。
[0051]図11は、書込み動作を実行する間、LUNが、空間が尽きる時引き起こされるエラーを検出して処理する一方法を例示する流れ図である。ステップ1102、1104及び1106は、ストレージアレイによって実施される。ステップ1108は、ハイパーバイザによって実施される。ステップ1102で、ストレージアレイはLUN上の書込み動作を受け取って実行する。書込み動作の実行中に、判定ブロック1104で判定されるようにLUNが、空間が尽きるならば、ハードエラーメッセージがステップ1106でハイパーバイザに発行される。エラーメッセージが、エラーを引き起こした書込み動作のIDを含む。ステップ1108で、ハイパーバイザが書込み動作を発行したVMを非活性化する。通常の環境の下で、VMの非活性化はアラートメッセージが管理サーバ148に伝送されることに結びつき、及び、管理サーバ148は非活性化されたVMを再開させる前にそれに応答して救済策を実現することができる。救済策は、非活性化されたVMの仮想ディスク(又は他のVMの仮想ディスクさえ)を別のLUNに移行することを目的として、LUNにより多くの空間を供給してかつLUN内の追加的な空間を再利用し、移行された仮想ディスク上でUNLINKコマンドを起動して、特定のVMをパワーオフするか又は他のファイルを削除することが続く、ことを含む。
[0052]図12は、本発明の1つ以上の実施態様に従うシステムソフトウェアインタフェースを有しないバージョンから有するバージョンにアップグレードされたハイパーバイザに対する論理ブロックデバイスとして動作するLUNから、ストレージ空間を遡及して再利用する一方法を例示する流れ図である。ハイパーバイザアップグレードが実施された後で、この方法が実施される。ステップ1202で、ハイパーバイザはLUN内のその空きVMFSブロックの合計サイズを決定する。ステップ1204で、ハイパーバイザはLUN内のその空きVMFSブロックの合計サイズのX%である一時ファイルを作り出す。ステップ1206で、一時ファイルが削除され、及び、ハイパーバイザが一時ファイルの全てのブロックに対してUNMAPコマンドを発行する。その結果、一時ファイルに対応するVMFSブロックがビットマップ内に空いていると示唆されるように、ハイパーバイザが全てのVMFSブロックの使用を追跡するように維持するビットマップがアップデートされる。X%パラメータが設定可能であり、かつ、100%に等しいならば、ハイパーバイザの空きVMFSブロックの全てがLUNから割当てを解除され、LUNの物理サイズをその理論上の最小値に減少させる。しかしながら、図12の方法が実施される間に、追加的な空間を必要とするLUNに、書込みがあるかもしれない。従って、経験的に決定されることができる一定量の空間が、この種の書込みを処理するように空いたまま保たれる。
[0053]本発明の1つ以上の実施態様において、SCSI読取り容量及びSCSI問合せを含む、LUNにハイパーバイザによってかつ仮想ディスクにゲストオペレーティングシステムによって発行されるコマンド、及びハイパーバイザにストレージアレイによって発行されるエラー、例えば図9と関連して記載されているソフトエラー及び図11と関連して記載されているハードエラーは、T10 SCSIプロトコル内のコマンド及びエラーコードの組の一部である。
[0054]1つ以上の実施態様が理解の明快さのためにいくらか詳細に本願明細書に記載されたとはいえ、特定の変更及び修正が本発明の趣旨から逸脱することなく、なされることができると認識されるべきである。
[0055]本願明細書に記載されている種々の実施態様は、コンピュータシステムに格納されるデータを含む種々のコンピュータ実行動作を用いてもよい。例えば、これらの動作は通常物理量の物理的操作を必要とすることができ、必ずしもではないが、これらの量は電気又は磁気信号の形をとることがあり、そこで、それら又はそれらの表現は、格納される、転送される、組み合わせられる、比較されるか又はさもなければ操作されることが可能である。更に、この種の操作は、生成する、識別する、決定するか又は比較することのような、用語でしばしば参照される。本発明の1つ以上の実施態様の一部を形成する本願明細書に記載されている任意の動作が有用なマシン動作である。加えて、本発明の1つ以上の実施態様がこれらの動作を実行するためのデバイス又は装置にもまた関する。装置は特定の必要とされた目的のために特別に構成されてもよく、又は、それがコンピュータに格納されるコンピュータプログラムによって選択的に活性化されたか又は構成された汎用コンピュータであってもよい。特に、種々の汎用マシンが本願明細書の教示に従って書かれたコンピュータプログラムと共に用いられてもよく、又は、必要とされた動作を実行するためにより専門の装置を構成することがより都合がいい場合がある。
[0056]本願明細書に記載されている種々の実施態様は、携帯デバイス、マイクロプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な民生用電子機器、ミニコンピュータ、メインフレームコンピュータ等を含む他のコンピュータシステム構成で実践されてもよい。
[0057]本発明の1つ以上の実施態様が、1つ以上のコンピュータ可読の媒体内に具体化された1つ以上のコンピュータプログラムとして又は1つ以上のコンピュータプログラムモジュールとして実現されてもよい。用語コンピュータ可読の媒体は、その後にコンピュータシステムに入力可能なデータを格納することができる任意のデータストレージデバイスを指し、コンピュータ可読の媒体は、それらがコンピュータによって読み取られることを可能にする方法で、コンピュータプログラムを具体化するための任意の既存の又は後で開発される技術に基づいてもよい。コンピュータ可読の媒体の例は、ハードディスク、ネットワーク接続ストレージ(NAS)、読取り専用メモリ、ランダムアクセスメモリ(例えば、フラッシュメモリデバイス)、CD(コンパクトディスク)、CD−ROM、CD−R又はCD−RW、DVD(デジタル多用途ディスク)、磁気テープ及び他の光及び非光データストレージデバイスを含む。コンピュータ可読のコードが格納され、かつ分散された形態で実行されるように、コンピュータ可読の媒体はまた、コンピュータシステムに連結されたネットワークを介して分散可能である。
[0058]本発明の1つ以上の実施態様が、理解の明快さのためにいくらか詳細に記載されたとはいえ、特定の変更及び修正が本請求項の有効範囲内でなされてもよいことは明らかである。従って、記載されている実施態様は、例示的であり限定的でないとみなされるべきであり、かつ、請求項の有効範囲は本願明細書に与えられる詳細に限定されるべきでなく、しかし請求項の有効範囲及び等価物の範囲内で変更されてもよい。本請求項において、要素及び/又はステップは、請求項内に明示的に述べられない限り、動作のいかなる特定の順序も意味しない。
[0059]種々の実施態様に従う仮想化システムは、ホストされた実施態様、ホストされない実施態様として、又は二つの区別を不鮮明にする傾向がある実施態様として実現されてもよいことが、全て構想される。さらに、種々の仮想化動作はハードウェアで完全に又は部分的に実現されてもよい。例えば、ハードウェア実現は非ディスクデータを確保するためにストレージアクセス要求の修正に対してルックアップテーブルを使用してもよい。
[0060]多くの変形、修正、追加及び改良が、仮想化の程度に拘わらず可能である。仮想化ソフトウェアは、従って、仮想化機能を実行するホスト、コンソール又はゲストオペレーティングシステムのコンポーネントを含むことができる。複数のインスタンスが、単一インスタンスとして本願明細書に記載されているコンポーネント、動作又は構造に与えられてもよい。最後に、種々のコンポーネント、動作及びデータストアの間の境界は幾分任意であり、及び、特定の動作が特定の例証となる構成の局面で例示される。機能の他の割当てが構想されてかつ本発明(複数発明)の有効範囲内に含まれてもよい。一般に、例示的な構成で別々のコンポーネントとして提示された構造及び機能は、組み合わせられた構造又はコンポーネントとして実現されてもよい。同様に、単一コンポーネントとして提示された構造及び機能は、別々のコンポーネントとして実現されてもよい。これらの、そしてまた他の、変形、修正、追加及び改良は、添付の請求項(複数請求項)の有効範囲内に含まれてもよい。

Claims (4)

  1. プロセッサ、メモリ及び論理ブロックデバイスを含むハードウェア資源と、
    1台以上の仮想マシンの実行をサポートし、かつエミュレートされた論理ブロックデバイスを含む前記仮想マシンの前記ハードウェア資源をエミュレートするハイパーバイザと、を備えるコンピュータシステムであって、
    前記ハイパーバイザは、前記論理ブロックデバイスからストレージブロックの割当てを解除するために前記論理ブロックデバイスにコマンドを発行するためのコンポーネントを含み、及び前記仮想マシンの各々は、前記エミュレートされた論理ブロックデバイスからストレージブロックの割当てを解除するために前記エミュレートされた論理ブロックデバイスにコマンドを発行するためのコンポーネントを含むことを特徴とするシステム。
  2. 前記論理ブロックデバイスに対する前記コマンドが整合及び粒度値に基づいて発行され、それに従って前記論理ブロックデバイスが、空間再利用動作を実行し、及び、前記エミュレートされた論理ブロックデバイスに対する前記コマンドが整合及び粒度値に基づいて発行され、それに従って前記エミュレートされた論理ブロックデバイスが、空間再利用動作を実行することを特徴とする請求項のコンピュータシステム。
  3. 前記ハイパーバイザが、割当てを解除されるべきであるが前記論理ブロックデバイスの前記整合及び粒度値と互換性がないストレージブロックが識別される第1のデータ構造を管理し、及び前記仮想マシンの各々が割当てを解除されるべきであるが前記エミュレートされた論理ブロックデバイスの前記整合及び粒度値と互換性がないストレージブロックが識別される第2のデータ構造を管理することを特徴とする請求項のコンピュータシステム。
  4. 前記ハイパーバイザがストレージブロックに対する書込みを検出する場合に、前記ハイパーバイザは前記第1のデータ構造から前記ストレージブロックを除去し、及び、前記仮想マシンがストレージブロックに対する書込みを検出する場合には、前記仮想マシンの各々が前記第2のデータ構造から前記ストレージブロックを除去することを特徴とする請求項のコンピュータシステム。
JP2013177455A 2010-08-30 2013-08-29 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース Active JP5960103B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37807610P 2010-08-30 2010-08-30
US61/378,076 2010-08-30
US13/181,163 US9411517B2 (en) 2010-08-30 2011-07-12 System software interfaces for space-optimized block devices
US13/181,163 2011-07-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011186106A Division JP5357938B2 (ja) 2010-08-30 2011-08-29 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース

Publications (2)

Publication Number Publication Date
JP2014029700A true JP2014029700A (ja) 2014-02-13
JP5960103B2 JP5960103B2 (ja) 2016-08-02

Family

ID=44534068

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2011186106A Active JP5357938B2 (ja) 2010-08-30 2011-08-29 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース
JP2013177455A Active JP5960103B2 (ja) 2010-08-30 2013-08-29 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース
JP2013177456A Pending JP2014013592A (ja) 2010-08-30 2013-08-29 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース
JP2015162645A Active JP6122078B2 (ja) 2010-08-30 2015-08-20 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011186106A Active JP5357938B2 (ja) 2010-08-30 2011-08-29 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2013177456A Pending JP2014013592A (ja) 2010-08-30 2013-08-29 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース
JP2015162645A Active JP6122078B2 (ja) 2010-08-30 2015-08-20 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース

Country Status (4)

Country Link
US (3) US9411517B2 (ja)
EP (3) EP3101543B1 (ja)
JP (4) JP5357938B2 (ja)
AU (1) AU2011218672B2 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US9052825B2 (en) 2010-08-30 2015-06-09 Vmware, Inc. System software interfaces for space-optimized block devices
US9411517B2 (en) 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
US8458413B2 (en) * 2010-10-27 2013-06-04 International Business Machines Corporation Supporting virtual input/output (I/O) server (VIOS) active memory sharing in a cluster environment
US8813071B2 (en) 2011-01-31 2014-08-19 Symantec Corporation Storage reclamation systems and methods
US9146765B2 (en) * 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US8806159B2 (en) 2011-04-08 2014-08-12 Symantec Corporation Data storage resource management systems and methods
US8954435B2 (en) 2011-04-22 2015-02-10 Symantec Corporation Method and system for reclaiming storage on a shared storage device or independent of the mount state of a file system
US8751768B2 (en) 2011-04-29 2014-06-10 Symantec Corporation Data storage reclamation systems and methods
US9244614B2 (en) * 2011-08-04 2016-01-26 Intel Corporation Memory coalescing computer-implemented method, system, apparatus and computer-readable media
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
KR20130022091A (ko) * 2011-08-24 2013-03-06 주식회사 케이티 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법
US9213618B2 (en) * 2011-09-16 2015-12-15 Symantec Corporation Storage management systems and methods in hierarchical storage systems
US9027019B2 (en) * 2011-09-22 2015-05-05 Cisco Technology, Inc. Storage drive virtualization
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US10365950B2 (en) * 2011-12-30 2019-07-30 Veritas Technologies Llc Resource throttling and automated policy management in a virtual machine environment
US9047087B2 (en) * 2012-02-01 2015-06-02 Vmware, Inc. Power management and virtual machine migration between logical storage units based on quantity of shared physical storage units
US9323563B2 (en) * 2012-02-28 2016-04-26 Red Hat Israel, Ltd. Determining virtual machine migration in view of a migration rule
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
CN103699334B (zh) * 2012-09-27 2018-04-24 伊姆西公司 用于管理虚拟机磁盘的方法和系统
US10120700B1 (en) * 2012-10-02 2018-11-06 Tintri Inc. Using a control virtual disk for storage management
US9177177B1 (en) * 2012-10-04 2015-11-03 Symantec Corporation Systems and methods for securing storage space
KR101471879B1 (ko) 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US9235344B2 (en) * 2012-11-28 2016-01-12 International Business Machines Corporation Identifying redundant data for disk image streaming
US9003135B2 (en) 2013-01-15 2015-04-07 International Business Machines Corporation Efficient allocation and reclamation of thin-provisioned storage
JP5619198B2 (ja) * 2013-02-04 2014-11-05 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
US9535727B1 (en) * 2013-02-07 2017-01-03 Ca, Inc. Identifying virtual machines that perform inconsistent with a profile
US9128746B2 (en) * 2013-03-29 2015-09-08 Vmware, Inc. Asynchronous unmap of thinly provisioned storage for virtual machines
US9983992B2 (en) * 2013-04-30 2018-05-29 WMware Inc. Trim support for a solid-state drive in a virtualized environment
US9043576B2 (en) * 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
US11042309B1 (en) * 2013-08-23 2021-06-22 Acronis International Gmbh Recovery of virtual machine files using disk attachment
US9921918B1 (en) 2013-08-30 2018-03-20 Ca, Inc. Cloud-based data backup and management
TWI514142B (zh) * 2013-11-26 2015-12-21 Synology Inc 儲存系統及其控制方法
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
WO2015130314A1 (en) * 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
FR3018367B1 (fr) * 2014-03-07 2017-07-21 Schneider Electric Ind Sas Systeme electronique comprenant des dispositifs electroniques, disjoncteur comportant un tel systeme, procede de generation d'un indicateur d'ecart en cas d'incompatibilite entre dispositifs et produit programme d'ordinateur associe
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US10067688B2 (en) * 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
WO2016159930A1 (en) 2015-03-27 2016-10-06 Hewlett Packard Enterprise Development Lp File migration to persistent memory
CN107209720B (zh) 2015-04-02 2020-10-13 慧与发展有限责任合伙企业 用于页面高速缓存的系统及方法以及存储介质
US9798497B1 (en) * 2015-06-08 2017-10-24 Skytap Storage area network emulation
US10073647B2 (en) 2015-07-21 2018-09-11 Seagate Technology Llc Thinly provisioned disk drives with zone provisioning and compression in relation to zone granularity
US9619148B2 (en) 2015-07-27 2017-04-11 Sas Institute Inc. Distributed data set storage and retrieval
US9946718B2 (en) 2015-07-27 2018-04-17 Sas Institute Inc. Distributed data set encryption and decryption
US10394660B2 (en) * 2015-07-31 2019-08-27 Netapp, Inc. Snapshot restore workflow
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10564996B2 (en) * 2016-08-28 2020-02-18 Vmware, Inc. Parentless virtual machine forking
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10719273B2 (en) * 2017-01-24 2020-07-21 Wyse Technology L.L.C. Enabling SCSI commands that are not supported by a client terminal
US10303401B2 (en) * 2017-01-26 2019-05-28 International Business Machines Corporation Data caching for block storage systems
CN107861761B (zh) * 2017-10-31 2021-03-16 北京青云科技股份有限公司 一种物理主机的启动方法及系统
US10795828B2 (en) 2018-08-10 2020-10-06 Micron Technology, Inc. Data validity tracking in a non-volatile memory
CN111913664B (zh) * 2020-07-30 2022-04-19 杭州宏杉科技股份有限公司 一种数据写入方法及装置

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0169005A2 (en) * 1984-07-12 1986-01-22 Texas Instruments Incorporated Computer system enabling automatic memory management operations
JP2002099502A (ja) * 2000-09-25 2002-04-05 Toshiba Corp コンピュータシステムおよびデータ転送制御方法
JP2004302701A (ja) * 2003-03-28 2004-10-28 Sanyo Electric Co Ltd データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置
JP2006293543A (ja) * 2005-04-07 2006-10-26 Nec Corp ストレージシステム及び物理記憶領域の動的回収方法
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2008102667A (ja) * 2006-10-18 2008-05-01 Hitachi Ltd 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
JP2009064303A (ja) * 2007-09-07 2009-03-26 Ricoh Co Ltd 撮像装置、共用リソース管理方法、およびプログラム
WO2009047986A1 (en) * 2007-10-09 2009-04-16 Canon Kabushiki Kaisha Information processing apparatus and control method thereof
WO2009066611A1 (ja) * 2007-11-20 2009-05-28 Nec Corporation 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム
JP2009134601A (ja) * 2007-11-30 2009-06-18 Fujitsu Ltd ディスクアクセス方式切替装置
WO2009133015A1 (en) * 2008-04-28 2009-11-05 International Business Machines Corporation Interfacing multiple logical partitions to a self-virtualizing input/output device
WO2009150122A1 (en) * 2008-06-09 2009-12-17 International Business Machines Corporation Systems and methods for virtualizing storage for wpar clients using node port id virtuali zation
JP2010140273A (ja) * 2008-12-11 2010-06-24 Hitachi Ltd 情報処理システム、情報処理方法、及び管理装置
WO2010111694A2 (en) * 2009-03-27 2010-09-30 Sandforce Inc. Storage system logical block address de-allocation management and data hardening
JP2010537297A (ja) * 2007-08-24 2010-12-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理区分の間におけるネットワーク・アダプタ・リソース割振り
WO2011024239A1 (en) * 2009-08-31 2011-03-03 Hitachi, Ltd. Storage system having plurality of flash packages

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2821935B2 (ja) 1990-04-19 1998-11-05 三菱レイヨン 株式会社 プラスチック光ファイバ
EP0473802B1 (en) 1990-09-03 1995-11-08 International Business Machines Corporation Computer with extended virtual storage concept
US5572694A (en) * 1992-11-25 1996-11-05 Fujitsu Limited Virtual system for detecting access paths belonging to same group from plurality of access paths to reach device designated by command with reference to table
JP3371044B2 (ja) 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US6125434A (en) 1998-05-19 2000-09-26 Northorp Grumman Corporation Dynamic memory reclamation without compiler or linker assistance
US6564219B1 (en) * 1998-11-19 2003-05-13 Emc Corporation Method and apparatus for obtaining an identifier for a logical unit of data in a database
JP4049525B2 (ja) 2000-08-16 2008-02-20 富士通株式会社 分散処理システム
US7433951B1 (en) * 2000-09-22 2008-10-07 Vmware, Inc. System and method for controlling resource revocation in a multi-guest computer system
US6571326B2 (en) * 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory
US20020161982A1 (en) * 2001-04-30 2002-10-31 Erik Riedel System and method for implementing a storage area network system protocol
US7162600B2 (en) 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
US7043622B2 (en) * 2002-12-23 2006-05-09 Lsi Logic Corporation Method and apparatus for handling storage requests
US8289984B2 (en) * 2003-01-13 2012-10-16 Emlilex Design & Manufacturing Corporation Allocation-unit-based virtual formatting methods and devices employing allocation-unit-based virtual formatting methods
US7801120B2 (en) * 2003-01-13 2010-09-21 Emulex Design & Manufacturing Corporation Method and system for efficient queue management
US7231409B1 (en) * 2003-03-21 2007-06-12 Network Appliance, Inc. System and method for reallocating blocks in checkpointing bitmap-based file systems
US7065630B1 (en) * 2003-08-27 2006-06-20 Nvidia Corporation Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device
US7457880B1 (en) 2003-09-26 2008-11-25 Ximeta Technology, Inc. System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US7334108B1 (en) * 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7305520B2 (en) * 2004-01-30 2007-12-04 Hewlett-Packard Development Company, L.P. Storage system with capability to allocate virtual storage segments among a plurality of controllers
US8041888B2 (en) * 2004-02-05 2011-10-18 Netapp, Inc. System and method for LUN cloning
US20110179082A1 (en) * 2004-02-06 2011-07-21 Vmware, Inc. Managing concurrent file system accesses by multiple servers using locks
US7849098B1 (en) 2004-02-06 2010-12-07 Vmware, Inc. Providing multiple concurrent access to a file system
US7263592B2 (en) * 2004-03-29 2007-08-28 International Business Machines Corporation Method for completely lock-free user-level dynamic memory allocation
US8601035B2 (en) * 2007-06-22 2013-12-03 Compellent Technologies Data storage space recovery system and method
US20060069850A1 (en) 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to perform a reclaim operation in a nonvolatile memory
US7603532B2 (en) * 2004-10-15 2009-10-13 Netapp, Inc. System and method for reclaiming unused space from a thinly provisioned data container
JP2006195712A (ja) 2005-01-13 2006-07-27 Hitachi Ltd ストレージ制御装置、論理ボリューム管理方法及びストレージ装置
JP4579000B2 (ja) * 2005-02-14 2010-11-10 株式会社日立製作所 計算機システムにおけるデータ配置設定
US7657662B2 (en) * 2005-08-31 2010-02-02 International Business Machines Corporation Processing user space operations directly between an application instance and an I/O adapter
US7716433B2 (en) 2006-02-16 2010-05-11 International Business Machines Corporation Dynamically determining and managing a set of target volumes for snapshot operation
US9032164B2 (en) * 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
JP2007249728A (ja) * 2006-03-17 2007-09-27 Toshiba Corp ディスクアレイ装置
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US7562203B2 (en) * 2006-09-27 2009-07-14 Network Appliance, Inc. Storage defragmentation based on modified physical address and unmodified logical address
US7526623B1 (en) 2006-09-28 2009-04-28 Emc Corporation Optimizing reclamation of data space
JP4757165B2 (ja) 2006-10-04 2011-08-24 株式会社日立製作所 計算機システム、データ移行監視方法及びデータ移行監視プログラム
US8516218B2 (en) * 2006-10-30 2013-08-20 Hewlett-Packard Development Company, L.P. Pattern-based mapping for storage space management
US8397038B2 (en) * 2007-03-22 2013-03-12 Vmware, Inc. Initializing file data blocks
US9152349B2 (en) * 2007-03-23 2015-10-06 Emc Corporation Automated information life-cycle management with thin provisioning
US7793307B2 (en) 2007-04-06 2010-09-07 Network Appliance, Inc. Apparatus and method for providing virtualized hardware resources within a virtual execution environment
US7949637B1 (en) * 2007-06-27 2011-05-24 Emc Corporation Storage management for fine grained tiered storage with thin provisioning
US20090019245A1 (en) 2007-07-10 2009-01-15 Prostor Systems, Inc. Methods for implementation of data formats on a removable disk drive storage system
US7930499B2 (en) * 2007-08-15 2011-04-19 Digi-Data Corporation Method to accelerate block level snapshots in archiving storage systems
CN101378400B (zh) * 2007-08-30 2013-01-30 国际商业机器公司 实现桌面应用和Web应用聚合的方法、服务器和系统
US20100211944A1 (en) * 2007-09-12 2010-08-19 Mitsubishi Electric Corporation Information processing apparatus
US20090077327A1 (en) * 2007-09-18 2009-03-19 Junichi Hara Method and apparatus for enabling a NAS system to utilize thin provisioning
JP2009145931A (ja) 2007-12-11 2009-07-02 Hitachi Ltd 仮想計算機と物理計算機との間のマイグレーション方法及びその計算機システム
US9047468B2 (en) * 2007-12-28 2015-06-02 Intel Corporation Migration of full-disk encrypted virtualized storage between blade servers
EP2248003A1 (en) * 2007-12-31 2010-11-10 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
JP5221157B2 (ja) 2008-02-04 2013-06-26 株式会社日立製作所 コンピュータシステム及び物理ディスク回収方法
JP5089429B2 (ja) * 2008-02-21 2012-12-05 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US8296398B2 (en) 2008-04-29 2012-10-23 Overland Storage, Inc. Peer-to-peer redundant file server system and methods
JP2009282800A (ja) 2008-05-23 2009-12-03 Hitachi Ltd ストレージ装置及びその制御方法
US8037279B2 (en) 2008-06-12 2011-10-11 Oracle America, Inc. Method and system for cross-domain data sharing
US8954685B2 (en) 2008-06-23 2015-02-10 International Business Machines Corporation Virtualized SAS adapter with logic unit partitioning
JP2010033261A (ja) * 2008-07-28 2010-02-12 Hitachi Ltd ストレージ装置及びその制御方法
JP5250869B2 (ja) * 2008-08-28 2013-07-31 株式会社日立製作所 ストレージシステム、論理記憶領域割り当て方法及び計算機システム
US8914567B2 (en) * 2008-09-15 2014-12-16 Vmware, Inc. Storage management system for virtual machines
JP2010086424A (ja) 2008-10-01 2010-04-15 Hitachi Ltd ストレージ装置の管理装置
WO2010092576A1 (en) * 2009-02-11 2010-08-19 Xsignnet Ltd. Virtualized storage system and method of operating it
US8448167B2 (en) * 2009-02-19 2013-05-21 Hitachi, Ltd. Storage system, and remote copy control method therefor
US8578083B2 (en) * 2009-03-03 2013-11-05 Vmware, Inc. Block map based I/O optimization for storage virtual appliances
US8370835B2 (en) * 2009-03-12 2013-02-05 Arend Erich Dittmer Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
US8176294B2 (en) * 2009-04-06 2012-05-08 Red Hat Israel, Ltd. Reducing storage expansion of a virtual machine operating system
US8694563B1 (en) 2009-04-18 2014-04-08 Hewlett-Packard Development Company, L.P. Space recovery for thin-provisioned storage volumes
US8799894B2 (en) * 2009-04-22 2014-08-05 International Business Machines Corporation End-to-end mapping from operating system running on virtual machine to storage volume of storage-array network (SAN)
US8151033B2 (en) * 2009-05-28 2012-04-03 Red Hat, Inc. Mechanism for virtual logical volume management
JP4905511B2 (ja) 2009-06-30 2012-03-28 富士通株式会社 記憶装置の制御部及び制御方法
US8825936B2 (en) 2009-08-03 2014-09-02 Quantum Corporation Systems and methods for increasing data volume sparseness
EP2302534B1 (en) 2009-09-18 2017-12-13 Software AG Method for mass-deleting data records of a database system
US20110093437A1 (en) 2009-10-15 2011-04-21 Kishore Kaniyar Sampathkumar Method and system for generating a space-efficient snapshot or snapclone of logical disks
US8356149B2 (en) 2009-10-30 2013-01-15 Hewlett-Packard Development Company, L.P. Memory migration
US8640241B2 (en) * 2009-11-16 2014-01-28 Quatum Corporation Data identification system
US8156306B1 (en) * 2009-12-18 2012-04-10 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
US8578092B2 (en) * 2010-01-25 2013-11-05 Hitachi, Ltd. Method and apparatus to support determining storage area unit size
US8621145B1 (en) 2010-01-29 2013-12-31 Netapp, Inc. Concurrent content management and wear optimization for a non-volatile solid-state cache
US8627000B2 (en) * 2010-02-08 2014-01-07 Microsoft Corporation Virtual disk manipulation operations
US8452921B1 (en) * 2010-03-17 2013-05-28 Network Appliance, Inc. Provisioning a pass-through disk in a virtualized computing environment
US8402205B2 (en) 2010-03-18 2013-03-19 Seagate Technology Llc Multi-tiered metadata scheme for a data storage array
US9021229B2 (en) 2010-04-14 2015-04-28 International Business Machines Corporation Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
WO2011132227A1 (en) 2010-04-22 2011-10-27 Hitachi, Ltd. System and method of controlling migration of data based on deduplication efficiency
US20120005450A1 (en) * 2010-07-02 2012-01-05 International Business Machines Corporation User control of file data and metadata blocks
US8954669B2 (en) * 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US9170740B2 (en) * 2010-08-06 2015-10-27 Netapp, Inc. System and method for providing implicit unmaps in thinly provisioned virtual tape library systems
US8966209B2 (en) 2010-08-23 2015-02-24 Apple Inc. Efficient allocation policies for a system having non-volatile memory
US9052825B2 (en) 2010-08-30 2015-06-09 Vmware, Inc. System software interfaces for space-optimized block devices
US9411517B2 (en) 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
US8615631B2 (en) 2011-03-25 2013-12-24 Sap Ag Delayed freeing of data storage blocks
US9792073B2 (en) 2013-09-27 2017-10-17 Avalanche Technology, Inc. Method of LUN management in a solid state disk array
US9128746B2 (en) 2013-03-29 2015-09-08 Vmware, Inc. Asynchronous unmap of thinly provisioned storage for virtual machines
US9053002B2 (en) 2013-11-12 2015-06-09 International Business Machines Corporation Thick and thin data volume management

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0169005A2 (en) * 1984-07-12 1986-01-22 Texas Instruments Incorporated Computer system enabling automatic memory management operations
JPS61112255A (ja) * 1984-07-12 1986-05-30 テキサス インスツルメンツ インコ−ポレイテツド コンピユ−タ装置
JP2002099502A (ja) * 2000-09-25 2002-04-05 Toshiba Corp コンピュータシステムおよびデータ転送制御方法
JP2004302701A (ja) * 2003-03-28 2004-10-28 Sanyo Electric Co Ltd データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置
JP2006293543A (ja) * 2005-04-07 2006-10-26 Nec Corp ストレージシステム及び物理記憶領域の動的回収方法
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2008102667A (ja) * 2006-10-18 2008-05-01 Hitachi Ltd 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
JP2010537297A (ja) * 2007-08-24 2010-12-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理区分の間におけるネットワーク・アダプタ・リソース割振り
JP2009064303A (ja) * 2007-09-07 2009-03-26 Ricoh Co Ltd 撮像装置、共用リソース管理方法、およびプログラム
WO2009047986A1 (en) * 2007-10-09 2009-04-16 Canon Kabushiki Kaisha Information processing apparatus and control method thereof
WO2009066611A1 (ja) * 2007-11-20 2009-05-28 Nec Corporation 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム
JP2009134601A (ja) * 2007-11-30 2009-06-18 Fujitsu Ltd ディスクアクセス方式切替装置
WO2009133015A1 (en) * 2008-04-28 2009-11-05 International Business Machines Corporation Interfacing multiple logical partitions to a self-virtualizing input/output device
WO2009150122A1 (en) * 2008-06-09 2009-12-17 International Business Machines Corporation Systems and methods for virtualizing storage for wpar clients using node port id virtuali zation
JP2011523751A (ja) * 2008-06-09 2011-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ノード・ポートid仮想化を使用してwparクライアント用のストレージを仮想化するシステムおよび方法
JP2010140273A (ja) * 2008-12-11 2010-06-24 Hitachi Ltd 情報処理システム、情報処理方法、及び管理装置
WO2010111694A2 (en) * 2009-03-27 2010-09-30 Sandforce Inc. Storage system logical block address de-allocation management and data hardening
JP2012522292A (ja) * 2009-03-27 2012-09-20 サンドフォース インク. 記憶装置システムの論理ブロックアドレス割り当て解除管理およびデータハードニング
WO2011024239A1 (en) * 2009-08-31 2011-03-03 Hitachi, Ltd. Storage system having plurality of flash packages
JP2012523594A (ja) * 2009-08-31 2012-10-04 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム

Also Published As

Publication number Publication date
JP2012074020A (ja) 2012-04-12
US20150058562A1 (en) 2015-02-26
EP2423814A1 (en) 2012-02-29
US9904471B2 (en) 2018-02-27
US20150058523A1 (en) 2015-02-26
US10387042B2 (en) 2019-08-20
JP5960103B2 (ja) 2016-08-02
JP2014013592A (ja) 2014-01-23
EP3101543A1 (en) 2016-12-07
EP3101544B1 (en) 2018-05-02
EP2423814B1 (en) 2016-08-03
JP5357938B2 (ja) 2013-12-04
JP6122078B2 (ja) 2017-04-26
EP3101544A1 (en) 2016-12-07
US9411517B2 (en) 2016-08-09
US20120054746A1 (en) 2012-03-01
AU2011218672B2 (en) 2014-02-20
EP3101543B1 (en) 2018-05-02
JP2015232906A (ja) 2015-12-24
AU2011218672A1 (en) 2012-03-15

Similar Documents

Publication Publication Date Title
JP6122078B2 (ja) 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース
US9052825B2 (en) System software interfaces for space-optimized block devices
US9448728B2 (en) Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers
US8719533B2 (en) Storage apparatus, computer system, and data migration method
JP6316895B2 (ja) ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術
US9582214B2 (en) Data access method and data access apparatus for managing initialization of storage areas
JP2011070345A (ja) 計算機システム、計算機システムの管理装置、計算機システムの管理方法
AU2013237715B2 (en) System software interfaces for space-optimized block devices

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141127

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141219

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151104

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160622

R150 Certificate of patent or registration of utility model

Ref document number: 5960103

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

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350