
私は、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 をサポートしており、試してみる価値があるかもしれません。