Configurer et utiliser le Discard

La commande Discard permet de nettoyer les blocs inutilisés d’un disque. Tous les volumes de type BSU supportent cette commande à condition que le système d’exploitation soit compatible et correctement configuré.

Cette commande est nommée différemment selon les systèmes d’exploitation (par exemple Trim, Discard, ou Unmap). Dans ce guide, la commande se nomme Discard.

L’utilisation de la commande Discard permet de réduire l’espace occupé par les snapshots, et par conséquent d’en réduire le coût. Elle peut également contribuer à l’amélioration des performances en termes d’IOPS (input output per second). Pour en savoir plus, voir À propos des volumes.

Il est recommandé d’utiliser la commande Discard à la même fréquence que vous créez des snapshots.

Ce guide technique présente 3 méthodes pour configurer et activer la commande Discard :

  • Lancer le Discard de façon périodique

    Nous vous recommandons d’utiliser cette méthode. Cette méthode est appliquée par défaut dans nos images officielles depuis janvier 2024.

  • Exécuter manuellement le Discard

  • Configurer le Discard lors du montage du volume

    Cette méthode peut être dangereuse et doit être utilisée en ayant connaissance des impacts possibles sur les performances.

Vérifier que le Discard est disponible

Vérifier que le Discard est disponible sous Linux

Utilisez la commande suivante :

$ lsblk -D /dev/vda
  • Si le Discard est disponible, vous obtenez les informations du disque :

    Exemple de résultat
    NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    vda         512      512B       2G         0
    └─vda1        0      512B       2G         0
  • Si le Discard n’est pas disponible, les éléments renvoyés sont à 0 :

    Exemple de résultat
    NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    vda           0        0B       0B         0
    └─vda1        0        0B       0B         0

Vérifier que le Discard est disponible sous Windows

Sous Windows, il n’est pas possible de vérifier la disponibilité du Discard sur chaque disque.

Utilisez la commande suivante pour vérifier que la détection automatique du Discard est activée :

fsutil behavior query DisableDeleteNotify
  • Si la détection automatique du Discard est activée, la commande renvoie l’élément suivant :

    Exemple de résultat
    DisableDeleteNotify = 1 (Enabled)
  • Si la détection automatique du Discard n’est pas activée, la commande renvoie l’élément suivant :

    Exemple de résultat
    DisableDeleteNotify = 0 (Disabled)

Méthodes de configuration et d’utilisation du Discard

Méthode 1 : Lancer le Discard de façon périodique

Nous vous recommandons d’utiliser cette méthode. Cette méthode est appliquée par défaut dans nos images officielles depuis janvier 2024.

Lancer le Discard de façon périodique sous Linux

  1. Consulter l’état du service en utilisant la commande suivante :

    $ systemctl status fstrim.timer

    La commande renvoie les éléments suivants :

    Exemple de résultat
    ● fstrim.timer - Discard unused blocks once a week
       Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; disabled; vendor preset: disabled)
       Active: inactive (dead)
      Trigger: n/a
         Docs: man:fstrim
  2. Activez et configurez la tâche avec la commande suivante :

    $ systemctl enable fstrim.timer
  3. Vérifiez la définition de la tâche avec la commande suivante :

    $ systemctl list-timers

    La commande renvoie les éléments suivants :

    Exemple de résultat
    NEXT                         LEFT        LAST                         PASSED       UNIT                         ACTIVATES
    Wed 2023-10-04 14:53:08 UTC  56min left  Wed 2023-10-04 13:27:59 UTC  28min ago    dnf-makecache.timer          dnf-makecache.service
    Thu 2023-10-05 00:00:00 UTC  10h left    n/a                          n/a          unbound-anchor.timer         unbound-anchor.service
    Thu 2023-10-05 12:44:59 UTC  22h left    Wed 2023-10-04 12:44:59 UTC  1h 11min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
    Mon 2023-10-09 00:00:00 UTC  4 days left n/a                          n/a          fstrim.timer                 fstrim.service
    
    4 timers listed.
    Pass --all to see loaded but inactive timers, too.
  4. Vérifier l’état de la tâche avec la commande suivante :

    $ systemctl status fstrim.timer

    La commande renvoie les éléments suivants :

    Exemple de résultat
    ● fstrim.timer - Discard unused blocks once a week
       Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
       Active: active (waiting) since Wed 2023-10-04 13:55:44 UTC; 1s ago
      Trigger: Mon 2023-10-09 00:00:00 UTC; 4 days left
         Docs: man:fstrim
    
    oct. 04 13:55:44 ip-10-0-0-00.website.exemple.com systemd[1]: Started Discard unused blocks once a week.

Lancer le Discard de façon périodique sous Windows

Windows permet de détecter automatiquement si le disque est compatible avec le Discard. Une tâche périodique peut être configurée dans le Gestionnaire de disque.

  1. Dans le menu Gestion des disques, faites un clic droit sur un disque et cliquez sur Propriétés.

  2. Dans l’onglet Outils, cliquez sur Optimiser.

  3. Dans l’encart Optimisation planifiée, cliquez sur Modifier les paramètres.

  4. Personnalisez la fréquence d’exécution.

    Il est recommandé de définir une fréquence hebdomadaire.

  5. Cliquez sur OK.

Méthode 2 : Exécuter manuellement le Discard

Exécuter manuellement le Discard sous Linux

Vous pouvez exécuter le Discard à tout moment sur tous les systèmes de fichiers montés via la commande suivante :

fstrim -v --all

La commande renvoie la taille en GiO ou en octet l’espace qui a été libéré sur le volume.

Exemple de résultat
/ : 7,9 GiO (8507092992 octets) taillés

Méthode 3 : Configurer le Discard lors du montage du volume

Cette méthode peut impacter significativement les performances.

Configurer le Discard lors du montage du volume sous Linux

Vous pouvez configurer le Discard lors du montage du volume via la commande suivante :

mount -o discard /dev/sda /mnt

Page connexe