ECS: Impossibile eseguire la migrazione dei morsetti da Centera a ECS - ERROR_RETENTION_INCORRECT
Résumé: ECS: Impossibile eseguire la migrazione dei morsetti da Centera a ECS - ERROR_RETENTION_INCORRECT
Symptômes
Esempio di analisi dello stack:
169.254.1.8 2019-11-21T19:30:53,212 [1215100270,sdk,ECSSYNCKDC01/3594002/WRITE_CLIP,-531c636:16e89995c11:-7a82,1] ERROR AbstractTransaction.java (line 136) Failed to execute the transaction, aborting.
TransactionFailureException: com.emc.vipr.cashead.api.ObjectRetentionIncorrect: Failed to execute operation, error is ERROR_RETENTION_INCORRECT, object name is null
at com.emc.vipr.cashead.storageserver.access.transaction.write.ObjectWriterImpl.finish(ObjectWriterImpl.java:80)
at com.emc.vipr.cashead.storageserver.access.transaction.write.AwaitEOF.finish(AwaitEOF.java:173)
at com.emc.vipr.cashead.storageserver.access.transaction.write.AwaitEOF.put(AwaitEOF.java:111)
at com.emc.vipr.cashead.storageserver.access.msg.RichLastSegmentMessage.execute(RichLastSegmentMessage.java:61)
at com.emc.vipr.cashead.storageserver.access.encoding.hpp.HPPResponder$EnqueableTransactionObject.execute(HPPResponder.java:311)
at com.emc.vipr.cashead.storageserver.access.transaction.AccessTransaction.executeMessage(AccessTransaction.java:57)
at com.emc.vipr.cashead.storageserver.access.transaction.AbstractTransaction.schedule(AbstractTransaction.java:131)
at com.emc.vipr.cashead.storageserver.access.transaction.NullScheduler.registerSchedulable(NullScheduler.java:48)
at com.emc.vipr.cashead.storageserver.access.transaction.AbstractTransaction.putGeneralMessage(AbstractTransaction.java:92)
at com.emc.vipr.cashead.storageserver.access.transaction.AccessTransaction.put(AccessTransaction.java:61)
at com.emc.vipr.cashead.storageserver.access.encoding.hpp.HPPResponder.processTransactionObject(HPPResponder.java:276)
at com.emc.vipr.cashead.storageserver.access.encoding.hpp.HPPResponder.processPacket(HPPResponder.java:290)
at com.emc.vipr.cashead.storageserver.access.encoding.hpp.HPPResponder.process(HPPResponder.java:181)
at com.emc.vipr.cashead.storageserver.access.AccessNetworkServer.HandleConnection(AccessNetworkServer.java:51)
at com.emc.vipr.cashead.hppserver.HPPServer.HandleConnection(HPPServer.java:84)
at com.emc.vipr.cashead.net.NetworkServerWorker.Work(NetworkServerWorker.java:61)
at com.emc.vipr.cashead.worker.Worker.call(Worker.java:227)
at com.emc.vipr.cashead.worker.WorkerSchedulerThread.run(WorkerSchedulerThread.java:137)
Caused by: java.io.IOException: com.emc.vipr.cashead.api.ObjectRetentionIncorrect: Failed to execute operation, error is ERROR_RETENTION_INCORRECT, object name is null
at com.emc.vipr.cashead.impl.vipr.ViPRObjectWriteHandler.checkResult(ViPRObjectWriteHandler.java:73)
at com.emc.vipr.cashead.storageserver.access.transaction.write.ObjectWriterImpl.finish(ObjectWriterImpl.java:77)
... 17 more
Caused by: com.emc.vipr.cashead.api.ObjectRetentionIncorrect: Failed to execute operation, error is ERROR_RETENTION_INCORRECT, object name is null
at com.emc.vipr.cashead.impl.vipr.ExceptionTranslator.translateError(ExceptionTranslator.java:38)
at com.emc.vipr.cashead.impl.vipr.ExceptionTranslator.checkError(ExceptionTranslator.java:21)
at com.emc.vipr.cashead.impl.vipr.ViPRObjectWriteHandler.checkResult(ViPRObjectWriteHandler.java:71)
... 18 more
Cause
Scenario 1:
---------------
Se il periodo di retention di un oggetto non rientra nei limiti specificati nel bucket, il tentativo di scrivere l'oggetto ha esito negativo.
Quando si utilizzano le policy di retention, selezionare Infinite per Minimum Fixed Retention Period significa che tutti i valori di retention su tutti gli oggetti devono essere infiniti.
Selezionare infinito per Maximum Fixed Retention Period significa che non esiste alcun limite massimo.
I limiti di retention min/max vengono applicati a qualsiasi C-Clip scritto in un bucket. Se un clip viene migrato da uno strumento di terze parti basato su SDK, la retention deve essere entro i limiti, altrimenti viene generato un errore.
Scenario 2:
--------------
In Centera sono definite policy di classe di retention. È possibile verificarlo chiedendo al cliente di fornire il seguente comando da Centera:
Config# show retention all
Résolution
---------------
Ad esempio, se si dispone di clip CAS con retention di 7 anni impostata, è necessario creare un bucket con i seguenti valori di retention:
Bucket Retention Period: 0 secondi
Periodo di retention fisso minimo: 0 secondi
Periodo di retention fisso massimo: Periodo di retention variabile minimo di 8 anni
: 0 secondi
Periodo di retention variabile massimo: 0 secondi
In questo modo la retention rientra nei limiti min/max.
Scenario 2:
--------------
chiedere al cliente di fornire le seguenti policy per i classi di retention.
|
È quindi necessario aggiungere tutte queste policy della classe di retention alle retention policy del namespace sul lato ECS. Chiedere al cliente/PS di riprovare la migrazione dopo aver aggiunto le retention policy del namespace sul lato ECS.