Paramètres de déduplication des données avancés

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI versions 21H2 et 20H2

Ce document décrit la manière de modifier les paramètres de déduplication des données avancés. Pour les charges de travail recommandées, les paramètres par défaut peuvent suffire. La principale raison de modifier ces paramètres est d’améliorer les performances de la déduplication des données avec d’autres types de charges de travail.

Modification des planifications de travaux de déduplication des données

Les planifications de travaux de déduplication des données sont conçues pour fonctionner parfaitement pour les charges de travail recommandées et être le moins intrusives possible (mis à part le travail d’optimisation des priorités qui est activé pour le type d’utilisation Sauvegarde). Quand les charges de travail ont des besoins en ressources importants, il est possible de vérifier que les travaux s’exécutent uniquement pendant les heures d’inactivité, ou de réduire ou augmenter la quantité de ressources système qu’un travail de déduplication des données est autorisé à consommer.

Modification d’une planification de déduplication des données

Les travaux de déduplication des données sont planifiés par le biais du Planificateur de tâches de Windows. Vous pouvez les afficher et les modifier sous le chemin Microsoft\Windows\Deduplication. La déduplication des données comprend plusieurs applets de commande qui facilitent la planification.

Le motif de modification le plus courant pendant l’exécution de travaux de déduplication des données consiste à garantir que les travaux s’exécutent pendant les heures creuses. L’exemple pas à pas suivant montre comment modifier la planification de déduplication des données pour un scénario idéal : un hôte Hyper-V hyperconvergé qui est inactif le week-end et après 19h00 tous les soirs de la semaine. Pour modifier la planification, exécutez les applets de commande PowerShell suivantes dans un contexte d’administrateur.

  1. Désactivez les travaux d’optimisation planifiés toutes les heures.

     Set-DedupSchedule -Name BackgroundOptimization -Enabled $false
     Set-DedupSchedule -Name PriorityOptimization -Enabled $false
    
  2. Supprimez les travaux Nettoyage de la mémoire et Nettoyage des données actuellement planifiés.

     Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
     Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
    
  3. Créez un travail d’optimisation nocturne qui s’exécute à 19h00 avec une priorité élevée et tous les processeurs et la mémoire disponibles sur le système.

     New-DedupSchedule -Name "NightlyOptimization" -Type Optimization -DurationHours 11 -Memory 100 -Cores 100 -Priority High -Days @(1,2,3,4,5) -Start (Get-Date "2016-08-08 19:00:00")
    

    Notes

    La partie date du System.Datetime fourni à -Start n’est pas pertinente (dès lors qu’elle est passée), mais la partie heure spécifie le moment auquel le travail doit démarrer.

  4. Créez un travail de nettoyage de la mémoire hebdomadaire qui s’exécute le samedi à partir de 7h00 avec une priorité élevée et tous les processeurs et la mémoire disponibles sur le système.

     New-DedupSchedule -Name "WeeklyGarbageCollection" -Type GarbageCollection -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(6) -Start (Get-Date "2016-08-13 07:00:00")
    
  5. Créez un travail de nettoyage des données hebdomadaire qui s’exécute le dimanche à partir de 7h00 avec une priorité élevée et tous les processeurs et la mémoire disponibles sur le système.

     New-DedupSchedule -Name "WeeklyIntegrityScrubbing" -Type Scrubbing -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(0) -Start (Get-Date "2016-08-14 07:00:00")
    

Paramètres disponibles à l’échelle du travail

Vous pouvez activer les paramètres suivants pour les travaux de déduplication des données nouveaux ou planifiés :

Nom du paramètre Définition Valeurs acceptées Pourquoi définir cette valeur ?
Type Type du travail à planifier
  • Optimisation
  • GarbageCollection
  • Nettoyage
Cette valeur est requise parce qu’il s’agit du type de travail qu’il convient de planifier. Cette valeur n’est pas modifiable une fois que la tâche a été planifiée.
Priorité Priorité système du travail planifié
  • Forte
  • Normal
  • Faible
Cette valeur aide le système à déterminer comment allouer du temps processeur. Haute utilise plus de temps processeur, faible en utilise moins.
Jours Jours du travail planifié Une plage d’entiers compris entre 0 et 6 représente les jours de la semaine :
  • 0 = Dimanche
  • 1 = Lundi
  • 2 = Mardi
  • 3 = Mercredi
  • 4 = Jeudi
  • 5 = Vendredi
  • 6 = Samedi
Les tâches planifiées doivent s’exécuter au moins un jour.
Cœurs Pourcentage de cœurs présents sur le système que doit utiliser un travail Entiers de 0 à 100 (indique un pourcentage) Pour contrôler le niveau d’impact d’un travail sur les ressources de calcul sur le système
DurationHours Nombre maximal d’heures pendant lesquelles un travail doit être autorisé à s’exécuter Entiers positifs Pour empêcher un travail de s’exécuter pendant les heures d’activité d’une charge de travail
activé Indique si le travail sera exécuté Vrai/Faux Pour désactiver un travail sans le supprimer
Complète Pour planifier un travail de nettoyage de la mémoire complet Commutateur (vrai/faux) Par défaut, chaque quatrième travail est un travail de nettoyage de la mémoire complet. Avec ce commutateur, vous pouvez planifier un nettoyage de la mémoire complet pour qu’il s’effectue plus souvent.
InputOutputThrottle Spécifie le limite d’entrées/sorties appliquée au travail Entiers de 0 à 100 (indique un pourcentage) La limitation permet de s’assurer que les travaux n’interfèrent pas avec d’autres processus gourmands en E/S.
Mémoire Pourcentage de mémoire sur le système que doit utiliser un travail Entiers de 0 à 100 (indique un pourcentage) Pour contrôler le niveau d’impact d’un travail sur les ressources mémoire du système
Nom Nom du travail planifié String Un travail doit porter un nom identifiable de façon unique.
Lecture seule Indique que le travail de nettoyage des données traite et signale les altérations qu’il trouve, mais n’exécute pas les actions de réparation. Commutateur (vrai/faux) Vous voulez restaurer manuellement les fichiers qui se trouvent sur des sections incorrectes du disque.
Démarrer Spécifie l’heure de début d’un travail System.DateTime La partie date du System.Datetime fourni à Démarrer n’est pas pertinente (dès lors qu’elle est passée), mais la partie heure spécifie le moment auquel le travail doit démarrer.
StopWhenSystemBusy Spécifie si la déduplication des données doit s’arrêter si le système est occupé Commutateur (Vrai/Faux) Ce commutateur vous permet de contrôler le comportement de la déduplication des données : ce contrôle s’avère particulièrement important si vous voulez exécuter la déduplication des données pendant que votre charge de travail n’est pas inactive.

Modification des paramètres de déduplication des données à l’échelle du volume

Activation/désactivation des paramètres de volume

Vous pouvez définir les paramètres par défaut à l’échelle du volume de la déduplication des données par le biais du type d’utilisation que vous sélectionnez quand vous activez une déduplication pour un volume. La déduplication des données comprend des applets de commande qui facilitent la modification des paramètres à l’échelle du volume :

Les principales raisons de modifier les paramètres de volume du type d’utilisation sélectionné sont d’améliorer les performances de lecture de certains fichiers spécifiques (par exemple, des fichiers multimédias ou d’autres types de fichiers déjà compressés) ou d’ajuster la déduplication des données en vue d’optimiser votre charge de travail particulière. L’exemple suivant montre comment modifier les paramètres de volume de la déduplication des données pour une charge de travail qui ressemble de près à une charge de travail de serveur de fichiers à usage général, mais qui utilise des fichiers volumineux souvent modifiés.

  1. Consultez les paramètres de volume actuels du volume partagé de cluster 1.

     Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
    
  2. Activez OptimizePartialFiles sur le volume partagé de cluster 1 pour que la stratégie MinimumFileAge s’applique aux sections du fichier plutôt qu’à l’intégralité du fichier. Ainsi, la majorité du fichier est optimisée même si les sections du fichier changent régulièrement.

     Set-DedupVolume -Volume C:\ClusterStorage\Volume1 -OptimizePartialFiles
    

Paramètres disponibles à l’échelle du volume

Nom du paramètre Définition Valeurs acceptées Pourquoi modifier cette valeur ?
ChunkRedundancyThreshold Nombre de fois qu’un bloc est référencé avant d’être dupliqué dans la section de la zone réactive du magasin de blocs. La valeur de la section de la zone réactive correspond aux blocs « à chaud » souvent référencés qui ont plusieurs chemins pour améliorer les temps d’accès. Entiers positifs La principale raison de modifier ce nombre est d’accroître le taux de réduction pour les volumes à duplication élevée. En général, la valeur par défaut (100) est le paramètre recommandé et vous ne devez pas la modifier.
ExcludeFileType Types de fichiers exclus de l’optimisation Tableau des extensions de fichiers Certains types de fichiers, en particulier les fichiers multimédias ou les fichiers déjà compressés, ne tirent pas beaucoup parti d’une optimisation. Ce paramètre vous permet de configurer les types exclus.
ExcludeFolder Spécifie les chemins de dossiers à ne pas considérer pour l’optimisation Tableau des chemins de dossiers Si vous voulez améliorer les performances ou empêcher le contenu de certains chemins d’être optimisé, vous pouvez exclure des chemins sur le volume pour ne pas les prendre en considération pour l’optimisation.
InputOutputScale Spécifie le niveau de parallélisation des E/S (files d’attente d’E/S) que la déduplication des données doit utiliser sur un volume pendant un travail de post-traitement Entiers positifs compris entre 1 et 36 La principale raison de modifier cette valeur est de réduire l’impact sur les performances d’une charge de travail à E/S élevées en limitant le nombre de files d’attente d’E/S que la déduplication des données est autorisée à utiliser sur un volume. Notez que la modification de la valeur par défaut de ce paramètre peut entraîner une exécution lente des travaux de post-traitement de la déduplication des données.
MinimumFileAgeDays Nombre de jours après la création du fichier à partir duquel le fichier est considéré comme conforme à la stratégie d’optimisation. Entiers positifs (zéro compris) Les types d’utilisation Par défaut et Hyper-V définissent cette valeur à 3 pour maximiser les performances sur les fichiers à chaud ou récemment créés. Vous pouvez modifier cette valeur si vous voulez que la déduplication des données soit plus agressive ou si la latence supplémentaire associée à la déduplication ne vous dérange pas.
MinimumFileSize Taille de fichier minimale qu’un fichier doit avoir pour être considéré comme conforme à la stratégie d’optimisation Entiers positifs (octets) supérieurs à 32 Ko La principale raison de modifier cette valeur est d’exclure les petits fichiers dont la valeur d’optimisation est limitée pour économiser du temps de calcul.
NoCompress Indique si les blocs doivent être compressées avant d’être placés dans le magasin de blocs Vrai/Faux Certains types de fichiers, notamment les fichiers multimédias et les types de fichiers déjà compressés, peuvent ne pas se compresser très bien. Ce paramètre vous permet de désactiver la compression de tous les fichiers sur le volume. Il s’avère idéal si vous optimisez un jeu de données qui comporte un grand nombre de fichiers déjà compressés.
NoCompressionFileType Types de fichiers dont les blocs ne doivent pas être compressés avant d’aller dans le magasin de blocs Tableau des extensions de fichiers Certains types de fichiers, notamment les fichiers multimédias et les types de fichiers déjà compressés, peuvent ne pas se compresser très bien. Ce paramètre permet de désactiver la compression pour ces fichiers, ce qui économise des ressources processeur.
OptimizeInUseFiles Quand ce paramètre est activé, les fichiers qui ont des descripteurs actifs sont considérés comme conformes à la stratégie d’optimisation. Vrai/Faux Activez ce paramètre si votre charge de travail garde des fichiers ouverts pendant de longues périodes. Si ce paramètre n’était pas activé, un fichier ne serait jamais optimisé si la charge de travail avait un descripteur ouvert, même si elle n’ajoutait qu’occasionnellement des données à la fin du fichier.
OptimizePartialFiles Quand ce paramètre est activé, la valeur MinimumFileAge s’applique aux blocs d’un fichier plutôt qu’à l’intégralité du fichier. Vrai/Faux Activez ce paramètre si votre charge de travail fonctionne avec des fichiers volumineux, souvent modifiés, dont la plupart du contenu reste intacte. Si ce paramètre n’était pas activé, ces fichiers ne seraient jamais optimisés, car ils n’arrêteraient pas d’être modifiés, même si la plupart de leur contenu était prête à être optimisée.
Vérifier Quand ce paramètre est activé, si le hachage d’un bloc correspond à un bloc déjà présent dans le magasin de blocs, les blocs sont comparés octet par octet pour vérifier qu’ils sont identiques. Vrai/Faux Il s’agit d’une fonctionnalité d’intégrité qui veille à ce que l’algorithme de hachage qui compare les blocs ne fasse pas d’erreur en comparant deux blocs de données qui sont en fait différents mais qui ont le même hachage. Dans la pratique, cette situation est extrêmement improbable. L’activation de la fonctionnalité de vérification surcharge considérablement le travail d’optimisation.

Modification des paramètres de déduplication des données à l’échelle du système

La déduplication des données possède des paramètres à l’échelle du système supplémentaires que vous pouvez configurer par le biais du Registre. Ces paramètres s’appliquent à tous les travaux et volumes qui s’exécutent sur le système. Une attention particulière doit être donnée à chaque modification du Registre.

Par exemple, vous voulez peut-être désactiver le nettoyage de la mémoire complet. Vous trouverez plus d’informations sur l’utilité d’une telle opération pour votre scénario dans le Forum aux questions. Pour modifier le Registre avec PowerShell :

  • Si la déduplication des données est en cours d’exécution dans un cluster :

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
      Set-ItemProperty -Path HKLM:\CLUSTER\Dedup -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    
  • Si la déduplication des données n’est pas en cours d’exécution dans un cluster :

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    

Paramètres disponibles à l’échelle du système

Nom du paramètre Définition Valeurs acceptées Pourquoi modifier ce paramètre ?
WlmMemoryOverPercentThreshold Ce paramètre permet aux travaux d’utiliser plus de mémoire que la déduplication des données ne juge réellement disponible. Par exemple, un paramètre de 300 signifie que le travail doit utiliser le triple de la mémoire affectée pour être annulé. Entiers positifs (une valeur de 300 signifie 300 % ou triple) Si vous avez une autre tâche qui s’arrête si la déduplication des données prend plus de mémoire
DeepGCInterval Ce paramètre configure l’intervalle auquel les travaux de nettoyage de la mémoire réguliers deviennent des travaux de nettoyage de la mémoire complet. Le paramètre n signifie que tous les nièmes travaux sont un travail de nettoyage de la mémoire complet. Notez que le garbage collection complet est toujours désactivé (quelle que soit la valeur du Registre) pour les volumes avec le type d’utilisation de la sauvegarde. Start-DedupJob -Type GarbageCollection -Full peut être utilisé si le garbage collection complet est souhaité sur un volume de sauvegarde. Entiers (-1 indique désactivé) Consultez cette question du Forum aux questions.

Forum aux questions

J’ai modifié un paramètre de Déduplication des données, et maintenant les travaux sont lents ou ne se terminent pas, ou les performances de ma charge de travail ont diminué. Pourquoi ? Ces paramètres vous donnent beaucoup de pouvoir pour contrôler l’exécution de la déduplication des données. Utilisez-les de manière responsable et surveillez les performances.

Je veux exécuter un travail de déduplication des données tout de suite, mais je ne veux pas créer une planification : est-ce possible ? Oui, tous les travaux peuvent être exécutés manuellement.

Quelle est la différence entre le garbage collection complet et le garbage collection standard ? Il y a deux types de Garbage Collection :

  • Le nettoyage normal utilise un algorithme statistique pour rechercher les blocs non référencés volumineux qui remplissent certains critères (mémoire et E/S par seconde faibles). Le nettoyage de la mémoire normal compacte un conteneur de magasin de blocs uniquement si un pourcentage minimal de blocs n’est pas référencé. Ce type de nettoyage de la mémoire s’exécute beaucoup plus vite et utilise moins de ressources que le nettoyage de la mémoire complet. La planification par défaut du travail de nettoyage de la mémoire normal prévoit une exécution une fois par semaine.
  • Le nettoyage de la mémoire complet effectue un travail beaucoup plus approfondi de recherche des blocs non référencés et de libération d’espace disque. Le nettoyage de la mémoire complet compacte chaque conteneur même si un seul bloc dans le conteneur n’est pas référencé. Le nettoyage de la mémoire complet libère également de l’espace éventuellement en cours d’utilisation, en cas d’incident ou de problème d’alimentation pendant un travail d’optimisation. Les travaux de nettoyage de la mémoire complet récupèrent 100 pour cent de l’espace disponible récupérable sur un volume dédupliqué en exigeant plus de temps et de ressources système qu’un travail de nettoyage de la mémoire normal. En général, le travail de nettoyage de la mémoire complet recherche et libère jusqu’à 5 pour cent de données non référencées en plus qu’un travail de nettoyage de la mémoire normal. La planification par défaut du travail de nettoyage de la mémoire complet prévoit une exécution tous les quatre nettoyages de la mémoire planifiés.

Pourquoi désactiver le travail de nettoyage de la mémoire complet ?

  • Le travail de nettoyage de la mémoire complet peut avoir des effets négatifs sur la durée de vie des clichés instantanés du volume et la taille de la sauvegarde incrémentielle. Les charges de travail à forte évolution ou gourmandes en E/S peuvent voir leurs performances se dégrader à cause des travaux de nettoyage de la mémoire complet.
  • Vous pouvez exécuter manuellement un travail de nettoyage de la mémoire complet depuis PowerShell pour nettoyer les fuites si vous savez que votre système a subi un incident.