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のブロックサイズをサポートしたことである。
主な機能
- ファイル単位のロック機構を実装することにより、複数の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




