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とVMFS3から仮想マシンの構成ファイルはVMFSパーティション上に保存されるようになった。 VMFS version 5はESXi Server v5.xとvShpere(5.x)で利用される。最も大きな進歩として、1MBのブロックサイズをサポートしたことである。http://www.vmware.com/pdf/vsphere5/r50/vsphere-50-configuration-maximums.pdf Configuration Maximums VMware® vSphere 5.0

主な機能 ファイル単位のロック機構を実装することにより、複数の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