Dans un environnement Windows, si vous supprimez et recréez fréquemment des datasets volumineux (par exemple: Sauvegarde sur disque), une action de suppression précédente peut entraîner un grand nombre de commandes UNMAP sur la baie. Si vous réécrivez le même espace disque, vos performances d’écriture risquent d’en pâtir, car les écritures entrantes attendent le traitement des UNMAP, les UNMA renvoient des éléments d’espace disque au pool de disques côté baie.
Le mécanisme du système d’exploitation qui pilote cette logique d’efficacité du stockage est appelé « TRIM ». Si TRIM est actif et que vous supprimez un bloc sur le système de fichiers, le système de fichiers (NTFS) génère des métadonnées sur l’espace libéré et les transmet dans la pile d’E/S. Au niveau du disque de la pile d’E/S, une décision est prise si le disque cible est rattaché à ATA. Dans ce cas, une commande ATA TRIM est envoyée à l’objet disque physique. Si le disque est un disque SCSI, le TRIM est converti en UNMAP SCSI.
Si vous supprimez et réécrivez à nouveau la même section de données, l’aspect de l’efficacité du stockage de ce mécanisme de retour au pool est limité. Dans ces circonstances, vous avez peut-être choisi de désactiver TRIM au niveau NTFS pour la durée de la tâche de production respective, ou de désactiver complètement TRIM.
La question qui s’affiche est la suivante: comment pouvez-vous garantir que les disques sont toujours économes en espace sur le long terme?
Pour déclencher retrim sur un périphérique, vous exécutez généralement la commande de défragmentation avec l’option /L. Lorsque vous avez désactivé TRIM à l’aide de « fsutil behavior set disabledeletenotify 1 », vous pouvez avoir l’impression que le trim ou le démappage est uniquement désactivé lors de la suppression et que le rétrim fonctionne comme prévu. Ce n’est pas le cas. L’action retrim dans la défragmentation est un mécanisme qui alloue un fichier sparse vide, puis appelle FSCTL_MOVE_FILE pour déplacer les données. Pour plus d’informations, reportez-vous à la section « Windows Internals 7 », « Part II » p. 644 ff. Le comportement qui en résulte implique une action de suppression en cache. Malheureusement, si disabledeletenotify est « 1 », la commande retrim réussit toujours. Cela n’entraîne pas l’annulation des adressages.
Par conséquent, la séquence de récupération du stockage doit inclure une étape pour activer TRIM avant l’exécution de la défragmentation.
En outre, si vous avez désactivé TRIM sur le système globalement, activez-le, défragmentez puis désactivez-le à nouveau, le processus de désactivation peut entrer en collision avec l’exécution incomplète de la commande retrim, bien que la commande soit revenue à l’invite. Lors du test en laboratoire sur Windows 2019, nous avons constaté que nous devions attendre quelques secondes avant de définir à nouveau disabledeletenotify sur « 1 ». Nous pensons qu’il s’agit d’une interaction entre la commande de défragmenter et le service optimizer en arrière-plan.
Si vous planifiez le TRIM à l’aide de l’optimiseur de disques, le menu Explorer par défaut nécessite une tâche planifiée appelée « ScheduledDefrag » (/Microsoft/Windows/Défragmentation) dans le planificateur de tâches. Si vous modifiez la tâche, l’outil Drive Optimizer détecte ce fait et vous demande de restaurer les valeurs par défaut avant de continuer. Si vous désactivez la tâche, vous pouvez toujours exécuter les commandes de défragmentation manuellement, mais vous ne pouvez pas les planifier.
Cette tâche « ScheduledDefrag » est également appelée Maintenance du système (Panneau de configuration\Tous les éléments du panneau de configuration\Sécurité et maintenance\Maintenance automatique).
Par conséquent, nous vous recommandons de laisser ces paramètres par défaut du système tels quels et envisageons plutôt de créer une nouvelle tâche dans le planificateur de tâches:
La valeur du délai d’expiration à l’étape 3 est une interpolation des tests en laboratoire. Nous n’avons jamais besoin de plus de 10 secondes pour que la défragmenter réussisse et nous pensons que les 60 secondes constituent un point de départ raisonnable. Si vous constatez que les écarts entre les valeurs de capacité allouées côté baie et les valeurs de capacité utilisée signalées par le système de fichiers s’accumulent, essayez d’utiliser une valeur plus grande, par exemple 300 secondes (5 minutes).
Dans les éléments suivants, nous vous fournissons un modèle à importer dans un planificateur de tâches que vous pouvez utiliser comme base. Copiez et collez le code xml ci-dessous dans un fichier, placez le fichier à portée de main du système de serveur que vous souhaitez configurer et utilisez l’action d’importation de la tâche pour importer la tâche. Le modèle de tâche ci-dessous s’appelle DellSanDiskMaintenance. Il exécute les quatre étapes ci-dessus chaque semaine, un samedi à 20 h 00 (20 h) et est placé à la racine du planificateur, par exemple:
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