Modalità di eliminazione degli oggetti
StorageGRID può eliminare gli oggetti in risposta diretta a una richiesta del client o automaticamente in conseguenza della scadenza di un ciclo di vita del bucket S3 o dei requisiti della policy ILM. La comprensione dei diversi modi in cui è possibile eliminare gli oggetti e del modo in cui StorageGRID gestisce le richieste di eliminazione può aiutare a gestire gli oggetti in modo più efficace.
StorageGRID può utilizzare uno dei due metodi per eliminare gli oggetti:
-
Eliminazione sincrona: Quando StorageGRID riceve una richiesta di eliminazione del client, tutte le copie degli oggetti vengono rimosse immediatamente. Il client viene informato che l'eliminazione è stata eseguita correttamente dopo la rimozione delle copie.
-
Gli oggetti vengono messi in coda per l'eliminazione: Quando StorageGRID riceve una richiesta di eliminazione, l'oggetto viene messo in coda per l'eliminazione e il client viene immediatamente informato dell'avvenuta eliminazione. Le copie degli oggetti vengono rimosse in seguito dall'elaborazione ILM in background.
Quando si eliminano gli oggetti, StorageGRID utilizza il metodo che ottimizza le performance di eliminazione, riduce al minimo i potenziali backlog di eliminazione e libera lo spazio più rapidamente.
La tabella riassume quando StorageGRID utilizza ciascun metodo.
Metodo di eliminazione | Se utilizzato |
---|---|
Gli oggetti vengono messi in coda per l'eliminazione |
Quando una delle seguenti condizioni è vera:
|
Gli oggetti vengono rimossi immediatamente (eliminazione sincrona) |
Quando un client S3 o Swift effettua una richiesta di eliminazione e tutte le seguenti condizioni sono soddisfatte:
|
Quando i client S3 o Swift effettuano richieste di eliminazione, StorageGRID inizia aggiungendo oggetti alla coda di eliminazione. Passa quindi all'eliminazione sincrona. Assicurarsi che la coda di eliminazione in background disponga di oggetti da elaborare consente a StorageGRID di elaborare le eliminazioni in modo più efficiente, in particolare per i client con bassa concorrenza, evitando al contempo i backlog di eliminazione dei client.
Tempo necessario per eliminare gli oggetti
Il modo in cui StorageGRID elimina gli oggetti può influire sulle prestazioni del sistema:
-
Quando StorageGRID esegue l'eliminazione sincrona, StorageGRID può impiegare fino a 30 secondi per restituire un risultato al client. Ciò significa che l'eliminazione può sembrare più lenta, anche se le copie vengono effettivamente rimosse più rapidamente di quanto non lo siano quando StorageGRID mette in coda gli oggetti per l'eliminazione.
-
Se si stanno monitorando attentamente le prestazioni di eliminazione durante un'eliminazione in blocco, si potrebbe notare che la velocità di eliminazione sembra rallentare dopo l'eliminazione di un certo numero di oggetti. Questa modifica si verifica quando StorageGRID passa dall'accodamento di oggetti per l'eliminazione all'eliminazione sincrona. La riduzione apparente del tasso di eliminazione non significa che le copie degli oggetti vengano rimosse più lentamente. Al contrario, indica che, in media, lo spazio viene liberato più rapidamente.
Se si eliminano grandi quantità di oggetti e la priorità è liberare spazio rapidamente, considerare l'utilizzo di una richiesta client per eliminare gli oggetti piuttosto che eliminarli utilizzando ILM o altri metodi. In generale, lo spazio viene liberato più rapidamente quando l'eliminazione viene eseguita dai client perché StorageGRID può utilizzare l'eliminazione sincrona.
La quantità di tempo necessaria per liberare spazio dopo l'eliminazione di un oggetto dipende da diversi fattori:
-
Se le copie degli oggetti vengono rimosse in modo sincrono o messe in coda per la rimozione in un secondo momento (per le richieste di eliminazione del client).
-
Altri fattori, come il numero di oggetti nella griglia o la disponibilità di risorse della griglia quando le copie degli oggetti vengono messe in coda per la rimozione (sia per le eliminazioni dei client che per altri metodi).
Modalità di eliminazione degli oggetti con versione S3
Quando il controllo delle versioni è attivato per un bucket S3, StorageGRID segue il comportamento di Amazon S3 quando risponde alle richieste di eliminazione, sia che provengano da un client S3, dalla scadenza di un ciclo di vita del bucket S3 o dai requisiti della policy ILM.
Quando gli oggetti sono in versione, le richieste di eliminazione degli oggetti non eliminano la versione corrente dell'oggetto e non liberano spazio. Invece, una richiesta di eliminazione dell'oggetto crea un indicatore di eliminazione come versione corrente dell'oggetto, rendendo la versione precedente dell'oggetto “non aggiornata”.
Anche se l'oggetto non è stato rimosso, StorageGRID si comporta come se la versione corrente dell'oggetto non fosse più disponibile. Le richieste a quell'oggetto restituiscono 404 non trovato. Tuttavia, poiché i dati dell'oggetto non correnti non sono stati rimossi, le richieste che specificano una versione non corrente dell'oggetto possono avere successo.
Per liberare spazio durante l'eliminazione degli oggetti con versione, utilizzare una delle seguenti opzioni:
-
Richiesta del client S3: Specificare l'ID della versione dell'oggetto nella richiesta di ELIMINAZIONE dell'oggetto S3 (
DELETE /object?versionId=ID
). Tenere presente che questa richiesta rimuove solo le copie degli oggetti per la versione specificata (le altre versioni occupano ancora spazio). -
Ciclo di vita del bucket: Utilizzare
NoncurrentVersionExpiration
azione nella configurazione del ciclo di vita del bucket. Quando viene raggiunto il numero di giorni non correnti specificato, StorageGRID rimuove in modo permanente tutte le copie delle versioni degli oggetti non correnti. Queste versioni degli oggetti non possono essere ripristinate.Il
NewerNoncurrentVersions
L'azione nella configurazione del ciclo di vita del bucket specifica il numero di versioni non correnti conservate in un bucket S3 con versione. Se sono presenti più versioni non aggiornate diNewerNoncurrentVersions
Specifica, StorageGRID rimuove le versioni precedenti una volta trascorso il valore NoncurrentDays. IlNewerNoncurrentVersions
Threshold sovrascrive le regole del ciclo di vita fornite da ILM, il che significa che un oggetto non corrente con una versione all'interno diNewerNoncurrentVersions
La soglia viene mantenuta se ILM richiede la sua eliminazione. -
ILM: "Clonare il criterio attivo" E aggiungere due regole ILM alla nuova policy proposta:
-
Prima regola: Utilizzare “ora non corrente” come ora di riferimento per corrispondere alle versioni non correnti dell'oggetto. Poll "Fase 1 (immettere i dettagli) della procedura guidata Crea una regola ILM", Selezionare Sì per la domanda “Applica questa regola solo alle versioni di oggetti precedenti (nei bucket S3 con versione attivata)?”
-
Seconda regola: Utilizzare Ingest Time per corrispondere alla versione corrente. La regola “ora non corrente” deve essere visualizzata nella policy sopra la regola ora di acquisizione.
-
Come vengono cancellati i marker di eliminazione S3
Quando un oggetto con versione viene cancellato, StorageGRID crea un indicatore di eliminazione come versione corrente dell'oggetto. Per rimuovere il marker di eliminazione a zero byte dal bucket, il client S3 deve eliminare esplicitamente la versione dell'oggetto. I contrassegni di eliminazione non vengono rimossi da ILM, dalle regole del ciclo di vita del bucket o dagli oggetti Delete nelle operazioni bucket.