
Я пытаюсь выяснить, почему резервное копирование выполняется медленно, используя ghettoVCB с хоста ESXI.
В настоящее время я создаю резервную копию своих виртуалок с помощью ghettoVCB на общем ресурсе NFS на TrueNAS из хостовой ОС.
Когда я копирую файлы на общий ресурс NFS из гостевой ОС (Ubuntu 20.04) на машине ESXI, я получаю около 257 МБ/с (что примерно соответствует действительности, поскольку у меня есть выделенный канал на 2,5 ГБ между NAS и ESXI)
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,
При попытке копирования на тот же ресурс NFS с хоста ESXI пропускная способность значительно снижается и составляет около 45 МБ/с:
/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 до 146 МБ/с. Но все равно намного ниже, чем у гостевой ОС.
Я предполагаю, что ESXI является супербезопасным и обеспечивает 100-процентную синхронизацию. Кто-нибудь знает, так ли это, и есть ли у кого-нибудь советы по улучшению производительности резервного копирования?
решение1
То, что вы видите, абсолютно нормально и не подлежит исправлению КАК ЕСТЬ. VMware ESXi «по замыслу» не имеет дискового кэша, в отличие от гостевой ОС внутри ВМ, это действительно так! Таким образом, когда вы копируете свой файл (что само по себе является мошенническим тестом, вам следует использовать более сложные тесты) изнутри ВМ, вы перегружаете свою сеть, так как ваше конвейерное последовательное чтение быстрее, чем сама сеть, но хост ESXi должен прочитать данные (медленно, нет опережающего чтения) в буферы общего хранилища / сетевой памяти mmap(), инициировать запись NFS без сохранения состояния, снова прочитать диск и так далее в цикле. Если вы запустите WireShark, вы увидите, что трафик гостевой ВМ Tx стабилен, а хостовая ОС делает это с некоторыми всплесками на Tx.
В качестве обходного пути вы можете захотеть получить какой-нибудь кэширующий RAID-контроллер с мощной встроенной памятью или добавить второй узел, построить кластер, настроить vSAN (цены VMUG вполне доступны для vSphere+vSAN). VMware vSAN будет кэшировать локальные диски на своем уровне, ниже VMFS, так что вы снова заполните свои 2,5 ГБ.
решение2
В качестве обходного пути вы можете захотеть получить какой-нибудь кэширующий RAID-контроллер с мощной встроенной памятью или добавить второй узел, построить кластер, настроить vSAN (цены VMUG вполне доступны для vSphere+vSAN). VMware vSAN будет кэшировать локальные диски на своем уровне, ниже VMFS, так что вы снова заполните свои 2,5 ГБ.
Это стоящая опция. В качестве альтернативы, смотрите Starwind VSAN, который работает на уровне блоков и должен дать вам лучшую производительность. Он поддерживает mdamd raid, который также имеет смысл попробовать.