ESXI 8.0 主機到 NFS 速度較慢與來賓到 NFS

ESXI 8.0 主機到 NFS 速度較慢與來賓到 NFS

我一直在嘗試從 ESXI 主機上使用 ghettoVCB 來找出備份速度緩慢的原因。

我目前正在使用 ghettoVCB 將我的虛擬機器從主機作業系統備份到 TrueNAS 上的 NFS 共用。

當我將檔案從 ESXI 電腦上的來賓 (Ubuntu 20.04) 複製到 NFS 共享時,速度約為 257MB/s(這大約是正確的,因為我在 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 共享時,吞吐量要低得多,約為 45MB/s:

/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?

我注意到的一件事是,關閉伺服器上 ZFS 資料共享上的同步可將 ESXI 寫入速度加快至 146MB/s。仍然比客戶作業系統低很多。

我的假設是 ESXI 非常安全並確保所有內容 100% 同步。有人知道情況是否如此,並且有人對提高備份效能有任何建議嗎?

答案1

您所看到的絕對是正常的,並且無法按原樣修復。 VMware ESXi「依照設計」沒有磁碟緩存,這與虛擬機器內的來賓作業系統不同,確實如此!因此,當您從虛擬機器內部複製檔案(這本身就是流氓測試,您應該使用更複雜的基準測試)時,您的網路就會飽和,因為管道順序讀取速度比網路本身更快,但主機ESXi必須讀取將資料(慢,沒有預讀)寫入 mmap()-ed 共享儲存/網路記憶體緩衝區,啟動無狀態 NFS 寫入,再次讀取磁碟並在循環中繼續。如果您啟動 WireShark,您將看到來賓 VM Tx 流量穩定,而主機作業系統在 Tx 上出現一定程度的峰值。

作為解決方法,您可能需要一些具有強大板載記憶體的快取 RAID 控制器,或新增第二個節點、建置叢集、配置 vSAN(對於 vSphere+vSAN,VMUG 定價相當實惠)。 VMware vSAN 將在其層級(低於 VMFS)快取本機磁碟,因此您的 2.5Gb 空間將再次飽和。

答案2

作為解決方法,您可能需要一些具有強大板載記憶體的快取 RAID 控制器,或新增第二個節點、建置叢集、配置 vSAN(對於 vSphere+vSAN,VMUG 定價相當實惠)。 VMware vSAN 將在其層級(低於 VMFS)快取本機磁碟,因此您的 2.5Gb 空間將再次飽和。

這是一個值得的選擇。或者,期待 Starwind VSAN,它在區塊層級上工作,應該會為您帶來更好的效能。它支援 mdamd raid,嘗試一下也可能有意義。

相關內容