ESXI 8.0 ホストから NFS への速度が遅い vs ゲストから NFS への速度が遅い

ESXI 8.0 ホストから NFS への速度が遅い vs ゲストから NFS への速度が遅い

私は、ESXI ホストから ghettoVCB を使用して、バックアップが遅い理由を突き止めようとしています。

現在、ghettoVCB を使用して、ホスト OS から TrueNAS 上の NFS 共有に仮想マシンをバックアップしています。

ESXI マシン上のゲスト (Ubuntu 20.04) から NFS 共有にファイルをコピーすると、約 257MB/秒になります (NAS と ESXI の間に専用の 2.5GB チャネルがあるため、これはほぼ適切です)。

su@test:/mnt/guest$ time sh -c "dd if=/dev/zero of=test bs=1MB count=1024 && sync"
1024+0 records in
1024+0 records out
1024000000 bytes (1.0 GB, 977 MiB) copied, 3.98153 s, 257 MB/s

real    0m4.470s
user    0m0.002s
sys     0m0.619s
 
Guest NFS Mount Options:
rw, relatime, vers=4.2,
rsize=1048576, wsize=1048576,
namlen=255, hard, proto=tcp, timeo=600,
retrans=2, sec=sys, local_lock=none,

ESXI ホストから同じ NFS 共有にコピーしようとすると、スループットが大幅に低下し、約 45 MB/秒になります。

/vmfs/volumes/9043e582-0376fe3e] time sh -c "dd if=/dev/zero of=./test bs=1MB count=1024 && sync"
1024+0 records in
1024+0 records out
real    0m 22.70s
user    0m 0.00s
sys     0m 0.00s

ESXI NFS Mount Options
Cant seem to find a way to see the mount options ESXI uses?

私が気づいたことの 1 つは、サーバー上の ZFS データ共有の同期をオフにすると、ESXI 書き込み速度が 146 MB/秒に速くなったことです。それでも、ゲスト OS よりはるかに低いです。

私の推測では、ESXI は非常に安全で、すべてが 100% 同期されることが保証されています。これが事実かどうか知っている人はいますか? また、バックアップのパフォーマンスを向上させるためのヒントを持っている人はいますか?

答え1

表示される内容は完全に正常であり、そのままでは修正できません。VMware ESXi には「設計上」ディスク キャッシュがありません。VM 内のゲスト OS には本当にあります。そのため、VM 内からファイルをコピーすると (それ自体が不正なテストであり、より高度なベンチマークを使用する必要があります)、パイプライン化されたシーケンシャル読み取りはネットワーク自体よりも高速であるため、ネットワークが飽和状態になりますが、ホスト ESXi はデータを (低速で、先読みはありません) mmap() された共有ストレージ/ネットワーク メモリ バッファーに読み取り、ステートレス NFS 書き込みを開始し、ディスクを再度読み取り、ループ内で繰り返す必要があります。WireShark を起動すると、ゲスト VM の Tx トラフィックは安定しているのに対し、ホスト OS は Tx でスパイクを発生しながらそれを実行していることがわかります。

回避策としては、強力なオンボード メモリを備えたキャッシュ RAID コントローラを入手するか、2 番目のノードを追加してクラスタを構築し、vSAN を構成する (VMUG の価格は vSphere+vSAN では非常に手頃です) ことが考えられます。VMware vSAN は、VMFS より下のレベルでローカル ディスクをキャッシュするため、2.5 GB が再び飽和状態になります。

答え2

回避策としては、強力なオンボード メモリを備えたキャッシュ RAID コントローラを入手するか、2 番目のノードを追加してクラスタを構築し、vSAN を構成する (VMUG の価格は vSphere+vSAN では非常に手頃です) ことが考えられます。VMware vSAN は、VMFS より下のレベルでローカル ディスクをキャッシュするため、2.5 GB が再び飽和状態になります。

これは価値のあるオプションです。あるいは、ブロック レベルで動作し、より優れたパフォーマンスを提供する Starwind VSAN を検討してください。これは mdamd raid をサポートしており、試してみる価値があるかもしれません。

関連情報