Suporte para SCSI UNMAP
O Block Volume permite que você configure seus aplicativos para enviar comandos SCSI UNMAP para volumes de inicialização e volumes em blocos a fim de recuperar espaço não utilizado. O uso do SCSI UNMAP oferece uma redução significativa nos tamanhos de backup e também pode resultar em tempos mais rápidos de restauração de backup e clonagem de volume. Os comandos SCSI UNMAP são semelhantes aos comandos TRIM que você pode enviar para unidades SSD para recuperar espaço não utilizado.
Você envia um comando UNMAP SCSI para informar o subsistema de armazenamento a descartar e liberar os blocos que foram excluídos ou que não estão mais em uso por um aplicativo ou pelo sistema de arquivos. Se você não enviar esse comando, o subsistema de armazenamento não saberá que os blocos não estão mais em uso e continuará a incluir esses blocos em todos os backups e clones para novos volumes. Depois que o subsistema de armazenamento receber o comando UNMAP para os blocos, os blocos correspondentes serão descartados e liberados, para que sejam excluídos de backups e clones futuros.
A funcionalidade UNMAP de Volume em Blocos é implementada usando os comandos SCSI UNMAP. O UNMAP é suportado para os tipos de anexo de volume ISCSI e paravirtualizado.
UNMAP é um comando não determinístico, e não é garantido que todos os blocos solicitados sejam descartados imediatamente quando você usar o comando. O tempo necessário para descartar os blocos em um dispositivo depende dos seguintes fatores:
-
O número de blocos não utilizados no sistema de arquivos. O UNMAP em um dispositivo com blocos mais não utilizados levará mais tempo para ser concluído.
-
O nível de desempenho (definição VPU/GB) configurado para o volume em blocos.
-
Para os sistemas de arquivos, depende da implementação do sistema de arquivos convidado, que varia do sistema de arquivos para o sistema de arquivos.
Ativação do UNMAP para Volumes Anexados Antes de 14 de junho de 2023
O UNMAP é ativado por padrão para volumes de inicialização e volumes em blocos para todos os novos anexos. Para volumes anexados antes de 14 de junho de 2023, use os comandos abaixo para verificar se o UNMAP já está ativado ou não e, caso contrário, tome as ações recomendadas para ativá-lo.
Verificando se UNMAP já está Ativado
Linux
Use o comando lsblk -D
para verificar se o UNMAP está ativado para um volume. Se UNMAP estiver ativado, as colunas DISC-GRAN
e DISC-MAX
na saída terão valores diferentes de zero. Se os valores das colunas DISC-GRAN
e DISC-MAX
na saída forem zeros, a funcionalidade UNMAP não será ativada. Veja como ativar o UNMAP.
A captura de tela a seguir contém uma saída de amostra do comando lsblk -D
nos volumes que têm o UNMAP ativado.
Windows
SCSI UNMAP está ativado por padrão.
Ativando UNMAP
Para ativar a funcionalidade UNMAP para um volume, execute uma das ações a seguir, dependendo do tipo de anexo do volume. Essas ações se aplicam a todos os sistemas operacionais.
-
Anexos de iSCSI: Use os comandos iSCSI para fazer logout e, em seguida, fazer log-in novamente.
-
Anexos paravirtualizados: Desanexe e, em seguida, reanexe a instância ao volume.
Usando o UNMAP com o Sistema de Arquivos
É possível configurar o sistema de arquivos para emitir comandos UNMAP para descartar blocos excluídos ou não utilizados pelo sistema de arquivos. Isso reduz os tamanhos do backup de volume.
Linux
Comandos para emitir UNMAP manualmente
Execute o comando fstrim
para emitir comandos UNMAP para o backend a fim de descartar e liberar os blocos excluídos ou não utilizados pelo sistema de arquivos.
Comandos para emitir UNMAP periodicamente
Você pode ativar o temporizador systemctl para executar periodicamente o comando UNMAP do sistema de arquivos fstrim
. O timer executa automaticamente o comando fstrim
em todos os pontos de montagem uma vez por semana.
Para ativar o timer:
sudo systemctl enable fstrim.timer
Para verificar o status do cronômetro:
sudo systemctl status fstrim.timer
Comandos para ativar o Descarte do Bloco On-line
Você pode especificar opções de montagem do sistema de arquivos para emitir os comandos de descarte imediatamente quando um bloco é excluído ou não é mais usado. Isso envia imediatamente os comandos UNMAP para o sistema de armazenamento de backend quando um arquivo é excluído ou o tamanho do arquivo é reduzido. Tenha cuidado com essa opção, pois é conhecido por causar alguns problemas de desempenho com o sistema de arquivos, mesmo que não haja impacto no desempenho do dispositivo de backend ativando o UNMAP.
Comando de montagem para especificar descarte de bloco on-line:
mount –o discard <device_path> <mount_point>
Você pode atualizar o arquivo /etc/fstab
para anexar discard
às opções de montagem, por exemplo:
UUID="94c5aade-8bb1-4d55-ad0c-388bb8aa716a" /data1 xfs defaults,noatime,discard 0 2
Windows
Em uma janela de comando na instância, execute o seguinte comando para ativar o UNMAP, se ele ainda não estiver ativado:
fsutil behavior set DisableDeleteNotify 0
Sem Impacto no Desempenho
Quando você usa o comando UNMAP, ele não afeta o desempenho de um volume. O IOPS e o throughput garantidos não serão afetados. No entanto, o tempo necessário para processar os comandos UNMAP depende do nível de desempenho configurado para um volume.
Por exemplo, fstrim
leva mais tempo para ser concluído quando executado no volume configurado para o nível de desempenho Menor Custo, em comparação com volumes configurados para os níveis Balanceado, Melhor Desempenho ou Altíssimo Desempenho.