La suppression ou le retrait de fichiers d'une banque de données VMFS libère de l'espace dans le système de fichiers. Cet espace libre est mappé sur un périphérique de stockage jusqu'à ce que le système de fichiers le libère ou le démappe. ESXi prend en charge la récupération d'espace libre, qui est également appelée opération unmap.

L'opération permet à la baie de stockage de récupérer l'espace libre inutilisé. L'espace non mappé peut ensuite être utilisé pour d'autres demandes d'allocation de stockage et à d'autres besoins.

Récupération automatique d'espace libre sur la banque de données VMFS6

Sur les banques de données VMFS6, ESXi prend en charge la récupération asynchrone automatique d'espace libre. VMFS6 peut exécuter la commande unmap pour libérer de l'espace de stockage libre en arrière-plan sur des baies de stockage à provisionnement dynamique prenant en charge les opérations unmap.

Le traitement automatique de l'opération unmap offre plusieurs avantages :
  • Les demandes unmap sont envoyées à un rythme constant, ce qui contribue à éviter une charge instantanée sur la baie de sauvegarde.
  • Les régions libérées sont traitée par lots et démappées ensemble.
  • Les performances d'E/S des autres charges de travail ne sont pas affectées par la commande unmap.

Dans les banques de données VMFS6, vous pouvez configurer les paramètres de récupération d'espace suivants.

Granularité de récupération d'espace
La granularité définit la taille minimale du secteur de l'espace libéré que le stockage sous-jacent peut récupérer. Le stockage ne peut pas récupérer les secteurs d'une taille inférieure à la granularité spécifiée.
Pour VMFS6, la granularité de la récupération correspond à la taille de bloc. Lorsque vous spécifiez une taille de bloc de 1 Mo, la granularité est également 1 Mo. Les secteurs de stockage d'une taille inférieure à 1 Mo ne sont pas récupérés.
Note : Certaines baies de stockage recommandent une granularité de démappage optimale. ESXi prend en charge le traitement unmap automatique sur les baies avec la granularité unmap de 1 Mo ou supérieure, par exemple 16 Mo. Sur les baies disposant d'une granularité optimale de 1 Mo et d'une taille inférieure, l'opération unmap est prise en charge si la granularité présente un facteur de 1 Mo. Par exemple, 1 Mo est divisible par 512 octets, 4 kilo-octets, ou 64 kilo-octets, etc.
Méthode de récupération d'espace
La méthode peut être fixe ou par priorité. Lorsque la priorité est la méthode que vous utilisez, vous configurez le taux de priorité. Pour la méthode fixe, vous devez indiquer le taux de récupération en Mo par seconde.
Vous pouvez utiliser vSphere Client pour définir la méthode de priorité lorsque vous créez la banque de données VMFS6. Pour activer la méthode fixe, vous pouvez modifier ultérieurement les paramètres de récupération d’espace pour la banque de données existante.
Vous pouvez également utiliser la commande esxcli storage vmfs reclaim config set pour définir des paramètres de récupération d'espace.
Taux de priorité de récupération d'espace
Ce paramètre définit le rythme auquel l'opération de récupération d'espace est effectuée lorsque vous utilisez la méthode de récupération par priorité. Généralement, VMFS6 peut envoyer les commandes unmap en rafales ou sporadiquement selon la charge de travail et la configuration. Pour VMFS6, vous pouvez spécifier l'une des options suivantes.
Priorité de récupération d'espace Description Configuration
Aucun Désactive les opérations unmap pour la banque de données. vSphere Client

Commande esxcli

Basse (par défaut) Envoie la commande unmap à un taux moins fréquent (25 à 50 Mo par seconde). vSphere Client

Commande esxcli

Moyen Envoie la commande à un rythme deux fois plus rapide que le taux faible (50 à 100 Mo par seconde). Commande esxcli
Haut Envoie une commande à un rythme trois fois plus rapide que le taux faible (plus de 100 Mo par seconde). Commande esxcli
Hôtes de récupération d'espace
Ce paramètre définit le nombre d'hôtes ESXi pouvant émettre des commandes unmap sur une banque de données VMFS6 pour la récupération d'espace automatique. Utilisez ce paramètre pour limiter la quantité cumulative de charge de récupération d'espace émise vers la banque de données VMFS6 de sauvegarde cible.

Après l'activation de la récupération d'espace, la banque de données VMFS6 peut commencer à libérer les blocs d'espace inutilisé uniquement lorsqu'elle comprend au moins un fichier ouvert. Cette condition peut être remplie lorsque, par exemple, vous mettez sous tension l'une des machines virtuelles sur la banque de données.

Configurer la récupération prioritaire lors de la création d'une banque de données VMFS6

Les paramètres de récupération d'espace contrôlent de quelle manière les blocs supprimés ou non mappés sont récupérés sur les périphériques qui sauvegardent la banque de données. Lorsque vous créez une banque de données VMFS6 dans vSphere Client, la seule méthode de récupération d'espace que vous pouvez spécifier est la méthode de priorité. Vous pouvez également désactiver la récupération d'espace lors de la création de la banque de données.

Procédure

  1. Dans le navigateur d'objets vSphere Client, accédez à un hôte, à un cluster ou à un centre de données.
  2. Dans le menu contextuel, sélectionnez Stockage > Nouvelle banque de données .
  3. Suivez les étapes requises pour créer une banque de données VMFS6.
  4. Sur la page Configuration de la partition, spécifiez les paramètres de récupération d'espace.
    Ces paramètres permettent de définir la granularité et la priorité avec lesquelles les opérations de récupération d'espace sont effectuées. Vous pouvez également utiliser cette page pour désactiver la récupération d'espace pour la banque de données.
    Option Description
    Taille du bloc Pour une banque de données VMFS, la taille de bloc permet de définir la taille de fichier maximale et la quantité d'espace qu'occupe le fichier. VMFS6 prend en charge la taille de bloc de 1 Mo.
    Granularité de récupération d'espace Spécifiez la granularité de l'opération unmap. La granularité de l'opération unmap équivaut à la taille de bloc, qui est 1 Mo.

    Les secteurs de stockage d'une taille inférieure à 1 Mo ne sont pas récupérés.

    Priorité de récupération d'espace Sélectionnez l'une des options suivantes.
    • Faible (par défaut) Utilisez la méthode de priorité pour la récupération d'espace. L'opération unmap est effectuée avec une faible priorité.
    • Aucune. Sélectionnez cette option si vous ne souhaitez pas utiliser les opérations de récupération d'espace pour la banque de données.
    Note : Dans vSphere Client, les seuls paramètres disponibles pour la priorité de récupération d'espace sont Basse et Aucune. Pour modifier les paramètres sur Moyenne ou Haute, utilisez la commande esxcli.
  5. Terminez le processus de création de la banque de données.

Résultats

Après l'activation de la récupération d'espace, la banque de données VMFS6 peut commencer à libérer les blocs d'espace inutilisés uniquement lorsqu'elle comprend au moins un fichier ouvert. Cette condition peut être remplie lorsque, par exemple, vous mettez sous tension l'une des machines virtuelles sur la banque de données.

Configurer la récupération fixe pour la banque de données VMFS6 existante

Pour activer la méthode de récupération fixe, modifiez les paramètres de récupération d’espace de la banque de données.

Procédure

  1. Dans vSphere Client, accédez à la banque de données.
  2. Sélectionnez Modifier la récupération d'espace dans le menu contextuel.
  3. Spécifiez le paramètre de récupération d'espace.
    Option Description
    Activer la récupération d'espace automatique au taux fixe Utilisez la méthode fixe pour la récupération d'espace. Spécifiez le taux de récupération en Mo par seconde. La valeur minimale disponible est de 10 Mo par seconde.
    Désactiver la récupération d'espace Les blocs supprimés ou non mappés ne sont pas récupérés.

    Sélectionnez cette option si vous souhaitez désactiver les opérations de récupération d'espace pour la banque de données.

  4. Cliquez sur OK pour enregistrer les nouveaux paramètres.
  5. Démontez et remontez la banque de données pour que les modifications prennent effet.
    1. Démontage des banques de données.
    2. Monter des banques de données.
  6. Répétez cette procédure pour tous les hôtes ESXi qui accèdent à la banque de données.

Résultats

La valeur modifiée de la priorité de récupération d'espace figure sur la page Général pour la banque de données.

Utiliser la commande ESXCLI pour modifier la récupération d'espace sur VMFS6

Vous pouvez modifier la priorité, la granularité et d'autres paramètres par défaut pour la récupération d'espace.

Procédure

  1. Sur l'hôte ESXi, utilisez la commande suivante pour définir les paramètres de récupération d'espace.
    esxcli storage vmfs reclaim config set

    La commande accepte les options suivantes :

    Option Description
    -b|--reclaim-bandwidth Bande passante fixée pour la récupération d'espace en Mo par seconde.
    -g|--reclaim-granularity Granularité minimale de la récupération d'espace automatique en octets.
    -m|--reclaim-method Méthode de récupération d'espace automatique. Options prises en charge :
    • priorité
    • corrigé
    -n|--reclaim-maxhosts Nombre maximal d'hôtes ESXi pouvant émettre des commandes unmap sur une banque de données VMFS6 pour la récupération d'espace automatique.
    -p|--reclaim-priority Priorité de la récupération d'espace automatique. Options prises en charge :
    • aucune
    • faible
    • moyenne
    • haute
    -l|--volume-label Étiquette du volume VMFS cible.
    -u|--volume-uuid UUID du volume VMFS cible.
    Vous pouvez utiliser les exemples suivants.
    • Définissez la méthode de récupération sur Fixe et le taux sur 100 Mo par seconde.
      esxcli storage vmfs reclaim config set --volume-label datastore_name --reclaim-method fixed -b 100
    • Désactivez la récupération automatique d'espace VMFS.
      esxcli storage vmfs reclaim config set --volume-label datastore_name --reclaim-priority none
    Note : Si vous définissez uniquement le paramètre -n|--reclaim-maxhosts sans aucun autre paramètre, vous pouvez ignorer l'étape 2. Il faut environ 30 minutes pour que la valeur mise à jour du paramètre reclaim-maxhosts prenne effet sur tous les hôtes ESXi sur lesquels la banque de données VMFS6 a été montée.
  2. Démontez la banque de données VMFS6 de tous les autres hôtes ESXi sur lesquels elle est montée, puis remontez-la.
    1. Démontage des banques de données.
    2. Monter des banques de données.
    Cette étape garantit que tous les hôtes ESXi sur lesquels la banque de données VMFS6 a été montée mettent à jour les paramètres de récupération de celle-ci.

Vérifier les paramètres de récupération d'espace automatique sur VMFS6

Après la configuration ou la modification des paramètres de récupération d'espace pour une banque de données VMFS6, vous pouvez vérifier vos paramètres.

Procédure

  1. Dans vSphere Client, accédez à la banque de données.
  2. Cliquez sur l'onglet Configurer.
  3. Cliquez sur Général.
  4. Sous Récupération d'espace, vérifiez le paramètre pour la priorité de récupération d'espace.
    Si vous avez configuré des valeurs via la commande esxcli, une priorité moyenne ou haute pour la récupération d'espace, par exemple, ces valeurs s'affichent également dans vSphere Client.

Résultats

La capture d'écran affiche les paramètres de récupération d'espace.

Exemple : Obtention des paramètres de récupération d'espace VMFS6

Vous pouvez également utiliser la commande esxcli storage vmfs reclaim config get -l=VMFS_label|-u=VMFS_uuid pour obtenir des informations pour la configuration de récupération d'espace.
# esxcli storage vmfs reclaim config get -l my_datastore 
Reclaim Granularity: 1048576 Bytes 
Reclaim Priority: low
Reclaim Method: priority
Reclaim Bandwidth: 26 MB/s
Reclaim Maximum Hosts: 128

Récupérer manuellement l'espace de stockage accumulé sur VMFS5

Sur les banques de données VMFS qui ne prennent pas en charge la récupération d'espace automatique, telles que VMFS5, vous pouvez utiliser la commande esxcli pour récupérer manuellement de l'espace de stockage inutilisé.

Lorsque vous utilisez la commande, gardez à l'esprit qu'elle peut envoyer plusieurs demandes unmap à la fois. Cette action peut bloquer une partie des ressources pendant l'opération. Lorsque vous utilisez la commande, gardez à l'esprit qu'elle peut envoyer plusieurs demandes unmap à la fois. Cette action peut bloquer une partie des ressources pendant l'opération.

Conditions préalables

Installez ESXCLI. Voir Démarrage avec ESXCLI. Pour le dépannage, exécutez des commandes esxcli dans ESXi Shell.

Procédure

  1. Pour récupérer des blocs de stockage inutilisés sur le périphérique à provisionnement dynamique, exécutez la commande suivante :
    esxcli storage vmfs unmap

    La commande accepte les options suivantes :

    Option Description
    -l|--volume-label=volume_label L'étiquette du volume VMFS à démapper. Cet argument est obligatoire. Si vous précisez une valeur pour cet argument, n'utilisez pas -u|--volume-uuid=volume_uuid.
    -u|--volume-uuid=volume_uuid L'UUID du volume VMFS à démapper. Cet argument est obligatoire. Si vous précisez une valeur pour cet argument, n'utilisez pas -l|--volume-label=volume_label.
    -n|--reclaim-unit=number Nombre de blocs VMFS à démapper par itération. Cet argument est facultatif. Si vous ne précisez rien pour cet argument, la commande utilise la valeur par défaut 200.
  2. Pour vérifier si le processus unmap est terminé, recherchez unmap dans le fichier vmkernel.log.