back_button

Configurações de Controlador de Disco e Cache

Controlador de Disco e Cache no Proxmox

Esta página fornece informações sobre configurações relacionadas a disco ao configurar máquinas virtuais, incluindo considerações importantes e precauções.

Sobre Controladores SCSI

Ao criar uma nova VM e selecionar um controlador SCSI, a opção padrão é “VirtIO Single”. Isso significa que, se vários discos virtuais forem criados (como descrito na próxima seção), todos parecerão estar conectados a esse único controlador. Essa configuração otimiza o uso de memória e dispositivos dentro da máquina virtual.

Escolher “VirtIO SCSI” permite que cada disco virtual seja atribuído a um barramento SCSI separado, o que requer espaço adicional para drivers e memória. No entanto, distribuir operações de E/S pode melhorar o desempenho em certas cargas de trabalho.

Outras emulações de placas SCSI físicas geralmente não são recomendadas.

Sobre Controladores de Disco

O IDE (também conhecido como ATA) foi estabelecido em 1988, garantindo compatibilidade com quase todos os sistemas operacionais. Para versões de SO lançadas antes de 2003, usar IDE pode ser a melhor escolha. Embora o IDE físico tivesse uma velocidade máxima de 133MB/s, o IDE virtualizado não tem essa limitação, a menos que o SO a imponha. No entanto, o IDE não suporta troca a quente, ou seja, dispositivos não podem ser removidos enquanto a VM está em execução.

O SATA é adequado para versões de SO lançadas após 2003 e é a opção mais compatível para sistemas operacionais modernos. Fisicamente, é uma evolução do IDE com transmissão serial, oferecendo velocidades de até 6Gbps (cerca de 600MB/s). No entanto, em um ambiente virtualizado, não há restrições de velocidade inerentes, a menos que sejam impostas pelo SO convidado.

VirtIO SCSI e VirtIO SCSI Single oferecem o acesso mais rápido ao disco. No entanto, eles exigem que o SO convidado tenha drivers para-virtualizados. Se o sistema não possuir discos IDE/SATA, o processo de instalação do SO falhará, a menos que o driver VirtIO SCSI esteja instalado. Distribuições Linux incluem esse driver desde cerca de 2012, FreeBSD desde 2014, e para SO Windows, um arquivo ISO adicional contendo drivers VirtIO deve ser fornecido durante a instalação.

Sobre Cache de Disco

As configurações de cache de disco envolvem um equilíbrio entre integridade de dados e desempenho.

Recurso writethrough directsync none writeback unsafe
Uso de Cache Usa cache de página (benéfico para operações de leitura) Não usa cache Não usa cache Usa cache de página Usa cache de página
Emissão de fsync Emitido em cada gravação Emitido em cada gravação Não emitido Emitido com atraso Não emitido
Processo de Gravação Grava no cache e descarrega imediatamente para o disco Grava diretamente no disco e descarrega imediatamente Grava diretamente no disco sem descarregar Grava no cache e descarrega com atraso Grava no cache sem descarregar
Desempenho de Leitura Alto (utilização de cache) Baixo (dependente do disco) Baixo (dependente do disco) Alto (utilização de cache) Alto (utilização de cache)
Desempenho de Gravação Moderado (assistido por cache) Baixo (sem cache) Moderado (sem cache) Alto (descarregamento de cache atrasado) Muito alto (descarregamento de cache atrasado)
Integridade de Dados Alta Muito alta Moderada (dependente do disco) Baixa (gravações atrasadas) Muito baixa (alto risco de perda de dados)
Caso de Uso Sistemas que priorizam desempenho de leitura e integridade Sistemas que requerem máxima integridade de dados Sistemas voltados para desempenho com necessidades moderadas de integridade Sistemas intensivos em gravação equilibrando desempenho e integridade Sistemas focados em desempenho onde a perda de dados é aceitável

TRIM (Discard)

O comando Discard informa ao sistema de armazenamento que certos blocos não são mais necessários.

Originalmente introduzido para nivelamento de desgaste em SSDs, alguns SOs podem exigir emulação de SSD para suportar TRIM. Além de SSDs, o TRIM também pode auxiliar na exclusão segura ao remover chaves de criptografia em vez de sobrescrever dados.

Em ambientes de nuvem privada, o TRIM permite que o armazenamento provisionado de forma fina recupere espaço. Normalmente, uma vez que o armazenamento é usado por uma VM, mesmo os dados excluídos permanecem alocados no nível de armazenamento.

fstrim -v /mountpoint

Para operações TRIM em tempo real, monte com a opção discard:

mount -o discard,remount /

Thread de E/S

Habilitar threads de E/S no VirtIO SCSI transfere as operações de gravação de disco para uma thread separada da thread principal do SO.

Essa configuração exige recursos adicionais de CPU, mas reduz a latência, especialmente em VMs com vários discos virtuais lidando com operações de leitura/gravação simultâneas.