Em um ambiente Windows, se você excluir e criar conjuntos de dados grandes com frequência (por exemplo: Fazer backup no disco), uma ação de exclusão anterior pode resultar em um alto número de comandos UNMAP no array. Se você regravar o mesmo espaço em disco, o desempenho de gravação pode ser afetado, pois as gravações recebidas aguardam até que as UNMAPs sejam processadas, os UNMAPs retornam elementos de espaço em disco para o pool de discos no lado do array.
O mecanismo do sistema operacional que impulsiona essa lógica de eficiência de armazenamento é chamado de "TRIM". Se o TRIM estiver ativo e você excluir um block no file system, o file system (NTFS) gerará metadados sobre o espaço liberado e o passará para a pilha de E/S. No nível do disco na pilha de E/S, é tomada uma decisão se o disco de destino está conectado ao ATA. Nesse caso, um comando ATA TRIM é enviado para o objeto do disco físico. Se o disco for um disco SCSI, o TRIM será convertido em um UNMAP SCSI.
Se você excluir e regravar a mesma seção de dados novamente, o aspecto de eficiência de armazenamento desse mecanismo de devolução ao pool será limitado. Nessas circunstâncias, você pode ter escolhido desativar o TRIM no nível NTFS durante o respectivo trabalho de produção ou desabilitar completamente o TRIM.
A pergunta resultante é: como você pode garantir que os discos ainda sejam eficientes em termos de espaço em longo prazo?
Para acionar a recuperação em um dispositivo, você geralmente executa o comando de desfragmentação com a opção /L. Quando você desativou o TRIM usando "fsutil behavior set disabledeletenotify 1", você pode ter a impressão de que o trim ou unmap só está desativado na exclusão e que a nova tentativas funciona como esperado. Esse não é o caso. A ação de recuperação na desfragmentação é um mecanismo que aloca um arquivo esparso vazio e, em seguida, FSCTL_MOVE_FILE para mover os dados. Consulte "Windows Internals 7", "Part II", p. 644 ff para obter mais detalhes. O comportamento resultante implica uma ação de exclusão sob a tampa. Infelizmente, se disabledeletenotify for "1", o comando retrim ainda será bem-sucedido. Isso não resulta em desmapes.
Como resultado, a sequência para recuperar o armazenamento deve incluir uma etapa para ativar o TRIM antes de a desfragmentar ser executada.
Além disso, se você desabilitou o TRIM no sistema globalmente, ative-o, desfragmente e desative-o novamente, o processo de desativação pode ficar inativo com a execução incompleta do comando de recuperação, embora o comando tenha retornado ao prompt. Ao testar isso em laboratório no Windows 2019, descobrimos que era necessário aguardar alguns segundos antes de configurar a opção disabledeletenotify to "1" novamente. Acreditamos que isso seja resultado de uma interação entre o comando de desfragmentar e o serviço do otimizador em segundo plano.
Se você agendar o TRIM usando o Drive Optimizer, o menu padrão do Explorer exigirá uma tarefa agendada chamada "ScheduledDefrag" (/Microsoft/Windows/Desfrag) no Agendador de tarefas. Se você modificar a tarefa, o Drive Optimizer detectará esse fato e solicitará que você restaure os padrões antes de continuar. Se você desabilitar a tarefa, ainda poderá executar os comandos de desfragmentação manualmente, mas não poderá agende-los.
Essa tarefa "ScheduledDefrag" também é chamada de Manutenção do sistema (Painel de Controle\Todos os Itens do Painel de Controle\Segurança e Manutenção\Manutenção Automática).
Como resultado, recomendamos que você deixe essas configurações padrão do sistema como estão e, em vez disso, considere criar uma nova tarefa no agendador de tarefas, que:
O valor de timeout na etapa 3 é uma reconfiguração de testes de laboratório. Nunca precisamos de mais de 10 segundos para que a desfragmentar seja bem-sucedida e acreditar que os 60 segundos são um ponto de partida razoável. Se você achar que as discrepâncias entre os valores de capacidade alocada no array e o file system reportou o acúmulo de valores de capacidade usados, tente usar um valor maior, como 300 segundos (5 minutos).
A seguir, fornecemos um modelo para você importar para um agendador de tarefas que você deve usar como base. Copie e cole o código xml abaixo em um arquivo, coloque o arquivo ao alcance do sistema de servidor que você deseja configurar e use a ação de importação de tarefa para importar a tarefa. O modelo de tarefa abaixo é chamado de DellSanDiskMaintenance. Ele executa as quatro etapas acima semanalmente, em um sábado às 20h (20h) e é colocado na raiz do agendador, por exemplo:
Dell Technologies 2023-07-07T09:21:50.4883878 Dell Technologies This task is an example of how to optimize thin SAN drives, if TRIM is globally disabled on the system. \DellSanDiskMaintenance D:AI(A;;FA;;;BA)(A;;FA;;;SY)(A;;FRFX;;;LS)(A;;FR;;;AU) 2023-07-01T20:00:00 PT2H true 1 S-1-5-18 HighestAvailable IgnoreNew true true true false false false false true true false false false true P1D P4D false false PT4H 7 %windir%\system32\fsutil.exe behavior set disabledeletenotify 0 %windir%\system32\defrag.exe /C /L /U timeout /t 60 %windir%\system32\fsutil.exe behavior set disabledeletenotify 1