背景
開発や実験用として、自宅にVMWare ESXiサーバを導入している。
サーバにはM.2接続の高速だが容量の少ないSSDと、大容量だが低速な普通のHDDを接続している。SSDはESXiのデータストアとし、VMのルートディレクトリのvmdkの格納に使用している。
HDDは1台のVMにダイレクトに接続し、NFS/sambaによるファイルサーバとして利用している。データストアとしてESXiに接続するよりも高速に利用できる。
ダイレクト接続についてはこちらを参照。
また、このファイルサーバをさらにESXiのデータストアとし、実験用のVMのvmdkを配置している。
これはファイルサーバの容量を最大限有効活用したいため。
DataStore_NFS上のVMは、データストアとNFSを介してやっとHDDのデータを読み書きするわけなので、相当遅くなっていると思われるが、体感ではVMの起動時間などの面で差異は感じられない。
実際どの程度の差があるのか、測定してみることにした。
測定方法
ddコマンドで1GBのファイルを書き込む際の時間を測定する。
つまりシーケンシャルライト。
ハード構成についてはこちらに記載。
以下の2通り試した。
対象
(1) FileServerVM上からHDDに直接
(2) DataStore_NFS上のVMで
条件
(a) 1GBファイル
(b) 8GBファイル
VM構成
(1)CPU=4 Mem=16GB OS=CentOS7
(2)CPU=4 Mem=8GB OS=Ubuntu18
測定結果
(1) (a) 6.5秒(181MB/s)
(2) (a) 3.6秒(298MB/s)
(1) (b) 30.8秒(279MB/s)
(2) (b) 4分43秒(30.4MB/s)
考察
1GB書き込み時では、NFSファイルサーバのほうが高速という結果であった。Linuxのファイルキャッシュが機能しているとすると、(1)(2)で差が生じるのはおかしい。NFSデータストアについて、ESXi側で何らかのキャッシュが働いているのではないだろうか。
