
我一直在嘗試從 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,嘗試一下也可能有意義。