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é.
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.