
Tenho tentado descobrir por que meus backups estão lentos usando o ghettoVCB do host ESXI.
Atualmente estou fazendo backup de meus virtuais usando ghettoVCB para um compartilhamento NFS no TrueNAS do sistema operacional host.
Quando copio arquivos para o compartilhamento NFS de um convidado (Ubuntu 20.04) na máquina ESXI, obtenho cerca de 257 MB/s (o que é quase certo, pois tenho um canal dedicado de 2,5 GB entre o NAS e o 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,
Quando tento copiar para o mesmo compartilhamento NFS do host ESXI, a taxa de transferência é muito menor, chegando a cerca de 45 MB/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?
Uma coisa que observei é que desligar a sincronização no compartilhamento de dados ZFS no servidor acelerou as gravações ESXI para 146 MB/s. Ainda muito inferior ao sistema operacional convidado.
Minha suposição é que o ESXI está sendo super seguro e garantindo que tudo esteja 100% sincronizado. Alguém sabe se é esse o caso e alguém tem alguma dica para melhorar o desempenho do backup?
Responder1
O que você vê é absolutamente normal e não pode ser corrigido COMO ESTÁ. O VMware ESXi “por design” não tem cache de disco, ao contrário do sistema operacional convidado dentro de uma VM, isso realmente tem! Portanto, quando você copia seu arquivo (que é um teste não autorizado, você deve usar benchmarks mais sofisticados) de dentro de uma VM, você está saturando sua rede, pois sua leitura sequencial em pipeline é mais rápida que a própria rede, mas o host ESXi precisa ler os dados (lento, não há leitura antecipada) em buffers de memória de rede/armazenamento compartilhado com mmap(), inicia a gravação NFS sem estado, lê o disco novamente e continua no loop. Se você iniciar o WireShark, verá que o tráfego Tx da VM convidada está estável e o sistema operacional host faz isso com picos no Tx.
Como solução alternativa, você pode querer obter algum controlador RAID de cache com uma memória on-board robusta ou adicionar um segundo nó, construir um cluster, configurar o vSAN (o preço do VMUG é bastante acessível para vSphere + vSAN). O VMware vSAN armazenará em cache os discos locais no nível dele, abaixo do VMFS, para que você sature seus 2,5 Gb novamente.
Responder2
Como solução alternativa, você pode querer obter algum controlador RAID de cache com uma memória on-board robusta ou adicionar um segundo nó, construir um cluster, configurar o vSAN (o preço do VMUG é bastante acessível para vSphere + vSAN). O VMware vSAN armazenará em cache os discos locais no nível dele, abaixo do VMFS, para que você sature seus 2,5 Gb novamente.
Essa é uma opção que vale a pena. Como alternativa, aguarde o Starwind VSAN, que funciona em nível de bloco e deve oferecer melhor desempenho. Ele suporta um ataque mdamd que também pode fazer sentido tentar.