Prise en charge de SCSI UNMAP

Oracle Cloud Infrastructure Block Volume vous permet de configurer vos applications pour qu'elles envoient des commandes UNMAP SCSI aux volumes d'initialisation et aux volumes de blocs afin de récupérer l'espace inutilisé. Cela permet de réduire considérablement la taille de vos sauvegardes et d'accélérer les temps de restauration des sauvegardes et de clonage des volumes. Les commandes UNMAP SCSI sont similaires aux commandes TRIM que vous pouvez envoyer aux lecteurs SSD pour récupérer de l'espace inutilisé.

Vous envoyez une commande UNMAP SCSI pour indiquer au sous-système de stockage de rejeter et de libérer les blocs qui sont supprimés ou qui ne sont plus utilisés par une application ou par le système de fichiers. Si vous n'envoyez pas cette commande, le sous-système de stockage ne sait pas que les blocs ne sont plus utilisés et continue d'inclure ces blocs dans toutes les sauvegardes et clones vers de nouveaux volumes. Une fois que le sous-système de stockage a reçu la commande UNMAP pour les blocs, les blocs correspondants sont supprimés et libérés. Ils sont donc exclus des sauvegardes et clones ultérieurs.

La fonctionnalité UNMAP de Block Volume est implémentée à l'aide des commandes UNMAP SCSI. UNMAP est pris en charge pour les types d'attachement de volume ISCSI et paravirtualisé.

UNMAP est une commande non déterministe et il n'est pas garanti que tous les blocs demandés soient rejetés immédiatement lorsque vous utilisez la commande. Le temps nécessaire pour supprimer les blocs d'un périphérique dépend des facteurs suivants :

  • Nombre de blocs inutilisés sur le système de fichiers. L'exécution de la commande UNMAP sur un périphérique avec plus de blocs inutilisés prendra plus de temps.

  • Niveau de performances (paramètre VPU/Go) configuré pour le volume de blocs.

  • Pour les systèmes de fichiers, cela dépend de l'implémentation du système de fichiers invité, qui varie d'un système de fichiers à l'autre.

Activation de UNMAP pour les volumes attachés avant le 14 juin 2023

UNMAP est activé par défaut pour les volumes d'initialisation et les volumes de blocs pour tous les nouveaux attachements. Pour les volumes attachés avant le 14 juin 2023, utilisez les commandes ci-dessous pour vérifier si UNMAP est déjà activé ou non et, dans le cas contraire, prenez les mesures recommandées pour l'activer.

Vérifier si UNMAP est déjà activé

Linux

Utilisez la commande lsblk -D pour vérifier si UNMAP est activé pour un volume. Si UNMAP est activé, les colonnes DISC-GRAN et DISC-MAX de la sortie auront des valeurs différentes de zéro. Si les valeurs des colonnes DISC-GRAN et DISC-MAX de la sortie sont des zéros, la fonctionnalité UNMAP n'est pas activée. Voir comment activer le plan d'action.

La capture d'écran suivante contient un exemple de sortie pour la commande lsblk -D sur les volumes sur lesquels UNMAP est activé.

sortie lsblk confirmant que TRIM est activé

Windows

SCSI UNMAP est activé par défaut.

Activer UNMAP

Pour activer la fonctionnalité UNMAP pour un volume, effectuez l'une des opérations suivantes, en fonction du type d'attachement du volume. Ces actions s'appliquent à tous les systèmes d'exploitation.

  • Attachements iSCSI : utilisez les commandes iSCSI pour vous déconnecter, puis vous reconnecter.

  • Attachements paravirtualisés : détachez puis rattachez l'instance au volume.

Utilisation de UNMAP avec le système de fichiers

Vous pouvez configurer le système de fichiers pour qu'il exécute des commandes UNMAP afin de supprimer les blocs supprimés ou inutilisés par le système de fichiers. Cela réduit la taille de votre sauvegarde de volume.

Linux

Commandes pour émettre UNMAP manuellement

Exécutez la commande fstrim pour exécuter des commandes UNMAP sur le back-end afin de supprimer et de libérer les blocs supprimés ou inutilisés par le système de fichiers.

Commandes pour émettre périodiquement le plan d'action

Vous pouvez activer systemctl timer pour exécuter régulièrement la commande UNMAP du système de fichiers fstrim. L'horloge exécute automatiquement la commande fstrim sur tous les points de montage une fois par semaine.

Pour activer le minuteur :

sudo systemctl enable fstrim.timer

Pour vérifier le statut de l'horloge :

sudo systemctl status fstrim.timer

Commandes d'activation de la suppression de bloc en ligne

Vous pouvez spécifier des options de montage de système de fichiers pour exécuter les commandes de suppression immédiatement lorsqu'un bloc est supprimé ou n'est plus utilisé. Cela envoie immédiatement les commandes UNMAP au système de stockage back-end lorsqu'un fichier est supprimé ou que la taille du fichier est réduite. Utilisez cette option avec précaution car il est connu de provoquer des problèmes de performances avec le système de fichiers même s'il n'y a aucun impact sur les performances du périphérique back-end en activant UNMAP.

Commande de montage pour spécifier le rejet de bloc en ligne :

mount –o discard <device_path> <mount_point>

Vous pouvez mettre à jour le fichier /etc/fstab pour ajouter discard aux options de montage, par exemple :

UUID="94c5aade-8bb1-4d55-ad0c-388bb8aa716a" /data1 xfs defaults,noatime,discard 0 2

Windows

Dans une fenêtre de commande de l'instance, exécutez la commande suivante pour activer UNMAP, s'il n'est pas déjà activé :

fsutil behavior set DisableDeleteNotify  0

Aucun impact sur les performances

Lorsque vous utilisez la commande UNMAP, cela n'a aucune incidence sur les performances d'un volume. L'IOPS garanti et le débit ne seront pas affectés. Toutefois, le temps nécessaire au traitement des commandes UNMAP dépend du niveau de performances configuré pour un volume.

Par exemple, l'exécution de fstrim sur un volume configuré pour le niveau de performances Coût réduit prend plus de temps que les volumes configurés pour les niveaux Equilibré, Performances supérieures ou Performances élevées Ultra.