Comment supprimer les objets
StorageGRID peut supprimer des objets en réponse directe à une requête d'un client ou automatiquement à la suite de l'expiration du cycle de vie d'un compartiment S3 ou des exigences de la politique ILM. Pour gérer plus efficacement les objets, il est important de comprendre les différentes méthodes de suppression des objets et la façon dont StorageGRID les gère.
StorageGRID peut utiliser l'une des deux méthodes suivantes pour supprimer les objets :
-
Suppression synchrone : lorsque StorageGRID reçoit une demande de suppression de client, toutes les copies d'objet sont supprimées immédiatement. Le client est informé que la suppression a réussi une fois les copies supprimées.
-
Les objets sont placés en file d'attente pour suppression : lorsque StorageGRID reçoit une requête de suppression, l'objet est mis en attente pour suppression et le client est immédiatement informé de l'réussie de cette suppression. Les copies d'objet sont supprimées ultérieurement par le traitement ILM en arrière-plan.
Lors de la suppression d'objets, StorageGRID utilise la méthode qui optimise les performances de suppression, réduit les retards de suppression et libère de l'espace le plus rapidement possible.
Le tableau résume le moment où StorageGRID utilise chaque méthode.
Méthode d'exécution de la suppression | Lorsqu'il est utilisé |
---|---|
Les objets sont placés en file d'attente pour suppression |
Lorsque l'une des conditions suivantes est vraie :
|
Suppression immédiate d'objets (suppression synchrone) |
Lorsqu'un client S3 ou Swift effectue une demande de suppression et toutes des conditions suivantes sont remplies :
|
Lorsque des clients S3 ou Swift font des demandes de suppression, StorageGRID commence par ajouter des objets à la file d'attente de suppression. Il passe ensuite en mode suppression synchrone. S'assurer que la file d'attente de suppression en arrière-plan contient des objets à traiter, ce qui permet à StorageGRID de traiter les suppressions plus efficacement, en particulier pour les clients à faible simultanéité, tout en aidant à empêcher la suppression des arriérés du client.
Temps nécessaire à la suppression des objets
La façon dont StorageGRID supprime des objets peut avoir un impact sur le fonctionnement du système :
-
Lorsque StorageGRID effectue une suppression synchrone, StorageGRID peut donner jusqu'à 30 secondes pour renvoyer un résultat au client. Cela signifie que la suppression peut se produire plus lentement, même si les copies sont réellement supprimées plus rapidement que lors de la mise en file d'attente d'objets StorageGRID pour suppression.
-
Si vous surveillez de près les performances de suppression lors d'une suppression en bloc, vous remarquerez que ce taux de suppression semble ralentir après la suppression d'un certain nombre d'objets. Ce changement survient lorsque StorageGRID passe d'objets de mise en file d'attente pour suppression à des fins de suppression synchrone. La réduction apparente du taux de suppression ne signifie pas que les copies d'objet sont supprimées plus lentement. Au contraire, elle indique qu'en moyenne, l'espace est maintenant libéré plus rapidement.
Si vous supprimez un grand nombre d'objets et que vous souhaitez libérer rapidement de l'espace, pensez à utiliser une requête client pour supprimer des objets au lieu de les supprimer à l'aide d'ILM ou d'autres méthodes. En général, l'espace est libéré plus rapidement lors de la suppression d'espace par les clients, car StorageGRID peut utiliser la suppression synchrone.
Le temps nécessaire pour libérer de l'espace après la suppression d'un objet dépend de plusieurs facteurs :
-
Si les copies d'objet sont supprimées de manière synchrone ou mises en file d'attente pour être supprimées ultérieurement (pour les demandes de suppression de client).
-
D'autres facteurs, tels que le nombre d'objets dans la grille ou la disponibilité des ressources de la grille lorsque les copies d'objet sont mises en file d'attente pour suppression (pour les suppressions de clients et d'autres méthodes).
Suppression d'objets avec version S3
Lorsque le contrôle de version est activé pour un compartiment S3, StorageGRID suit un comportement Amazon S3 pour répondre aux demandes de suppression, qu'elles proviennent d'un client S3, de l'expiration d'un cycle de vie d'un compartiment S3 ou des exigences de la règle ILM.
Lorsque des objets sont versionnés, les demandes de suppression d'objets ne suppriment pas la version actuelle de l'objet et ne libèrent pas d'espace. Une demande de suppression d'objet crée un marqueur de suppression en tant que version actuelle de l'objet, ce qui rend la version précédente de l'objet « non actuelle ».
Bien que l'objet n'ait pas été supprimé, StorageGRID se comporte comme si la version actuelle de l'objet n'est plus disponible. Les requêtes à cet objet renvoient 404 NotFound. Cependant, les données d'objet non actuelles n'ayant pas été supprimées, les demandes qui spécifient une version non actuelle de l'objet peuvent réussir.
Pour libérer de l'espace lors de la suppression d'objets multiversion, utilisez l'une des méthodes suivantes :
-
Demande client S3 : spécifiez l'ID de version de l'objet dans la demande de SUPPRESSION d'objet S3 (
DELETE /object?versionId=ID
). Notez que cette demande ne supprime que les copies d'objet pour la version spécifiée (les autres versions occupent toujours de l'espace). -
Cycle de vie du godet : utilisez le
NoncurrentVersionExpiration
l'action en termes de configuration du cycle de vie des compartiments. Lorsque le nombre de NonactuelDays spécifié est atteint, StorageGRID supprime définitivement toutes les copies des versions d'objets non courants. Ces versions d'objet ne peuvent pas être restaurées.Le
NewerNoncurrentVersions
L'action dans la configuration du cycle de vie du compartiment spécifie le nombre de versions non actuelles conservées dans un compartiment S3 versionné. S'il existe plus de versions non actuelles queNewerNoncurrentVersions
Spécifie que StorageGRID supprime les anciennes versions une fois la valeur NoncurrentDays écoulée. LeNewerNoncurrentVersions
Le seuil remplace les règles de cycle de vie fournies par ILM, ce qui signifie qu'un objet non actuel avec une version dans le systèmeNewerNoncurrentVersions
Le seuil est conservé si la requête ILM de suppression le requiert. -
ILM : "Cloner la règle active" Et ajouter deux règles ILM à la nouvelle politique proposée :
-
Première règle : utilisez « temps non courant » comme temps de référence pour correspondre aux versions non actuelles de l'objet. Dans "Étape 1 (entrer les détails) de l'assistant de création de règles ILM", Sélectionnez Oui pour la question, ""appliquer cette règle aux anciennes versions d'objet uniquement (dans les compartiments S3 avec gestion des versions activée)?"
-
Deuxième règle : utilisez le temps d'ingestion pour correspondre à la version actuelle. La règle « Noncurrent Time » doit apparaître dans la police au-dessus de la règle Ingest Time.
-
Suppression des marqueurs de suppression S3
Lorsqu'un objet versionné est supprimé, StorageGRID crée un marqueur de suppression en tant que version actuelle de l'objet. Pour supprimer le marqueur de suppression de zéro octet du compartiment, le client S3 doit supprimer explicitement la version de l'objet. Les marqueurs de suppression ne sont pas supprimés par ILM, les règles de cycle de vie des compartiments ou la suppression d'objets dans les opérations de compartiment.