VMFS

VMware VMFS (Virtual Machine File System) はVMwareによって開発されたクラスタファイルシステムである。 VMware ESX Serverや同社の主力製品であるvSphere (及び旧VMware Infrastructure)で利用される。 VMFSは仮想マシンのディスクイメージやスナップショットを格納する為に開発された。 複数のサーバーから同じファイルシステムに対して読み書きが可能であるが、仮想マシンファイルに対しては排他的に作動する。VMFSボリュームは複数のディスクボリュームで構成可能であり、また拡張することもできる。VMware製品を利用する際に、VMFSは必須ではない。代わりにNFSを利用することも可能である。

これまでのバージョン 
ESX Serverのリリースに対応して、VMFSは現在4つのバージョンが存在する。
 VMFS version 1はかつてESX Server v1.xで利用されていたが、現在は既に販売終了となっている。クラスタファイルシステムの機能はなく、単体のサーバーでのみ利用可能である。
 VMFS version 2はESX Server v2.xで利用されている。VMFS2はフラットファイルシステムであり、ディレクトリ構造を持たない。公式には"VMware File System"と呼ばれている。
 VMFS version 3はESX Server v3.xとvSphere(4.x)で利用される。大きな進歩として、このバージョンから階層ディレクトリ構造が実装された。そのため、古いバージョンのESX ServerはVMFS version3以前のファイルステムを読み書きすることはできない。ESX Server 3とVMFS３から仮想マシンの構成ファイルはVMFSパーティション上に保存されるようになった。
 VMFS version 5はESXi Server v5.xとvShpere(5.x)で利用される。最も大きな進歩として、1MBのブロックサイズをサポートしたことである。

主な機能 
 ファイル単位のロック機構を実装することにより、複数のESXサーバーから同時にアクセスすることを可能にしている。SCSIリザベーションはLUNのメタデータが書き換えられるタイミングでのみ発生するようにチューニングされている。
 ESXサーバーを追加・削除する際に他のESXサーバーに影響を与えない。
 ESX/ESXi4ではLUN拡張によるファイルシステム拡張をサポートする。
 仮想マシンのI/Oをボリューム、ディスク、ファイル単位に最適化する。
 ジャーナルデータを分散したディスクに配置することにより、素早く仮想マシンをリカバリすることができる。
 特定のストレージ装置がVAAI(vStorage API for Array Integration)に対応している場合、SCSIリザベーションを抑制したり、単純なIO（ゼロ書き込み）などを効率化することができる。

制約 
 64台のESXサーバーで共有することができる。
 最大2TBのLUN、64TBまでのVMFSをサポートする。.
 VMFS-3では1ファイルは262,144 (218) ブロックまでに制約される。すなわち、1MBブロックサイズの場合は256 GBまで、8MBブロックサイズの場合は2 TBまでに制約される。 
 上記の制約はVMFS-5で撤廃されたが、現時点ではまだ1ファイル2TBまでである。
 VMFS-3上では約30720ファイルまでがファイル数の上限であったが、VMFS-5ではこの上限は130690ファイルまで拡張された。

オープンソースによる実装 
open source VMFS driverはVMFSでフォーマットされた領域に対する読み取り専用アクセスを提供する。これらはfluid Operations によって開発・メンテナンスが行われている。

参照

外部リンク 
 VMFS Technical Overview and Best Practices - VMware, Inc.
 VMware VMFS product page - VMware, Inc.
 Open Source VMFS Implementation - Project vmfs

仮想化
エミュレーションソフトウェア