ECS : Impossible de migrer des clips de Centera vers ECS - ERROR_RETENTION_INCORRECT
Résumé: ECS : Impossible de migrer des clips de Centera vers ECS - ERROR_RETENTION_INCORRECT
Symptômes
Exemple de trace de pile :
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
Scénario 1 :
---------------
si la période de rétention d’un objet est en dehors des limites spécifiées sur le bucket, une tentative d’écriture de l’objet échoue.
Lors de l’utilisation de politiques de rétention, la sélection d’Infinite pour Minimum Fixed Retention Period signifie que toutes les valeurs de rétention sur tous les objets doivent être infinies.
Si vous sélectionnez infinite pour Maximum Fixed Retention Period, il n’existe aucune limite maximale.
Des contraintes de rétention min./max. sont appliquées à n’importe quel C-Clip écrit dans un compartiment. Si un clip est migré par un outil tiers basé sur le SDK, la rétention doit être dans les limites, sinon une erreur est générée.
Scénario 2 :
--------------
Des politiques de classe de rétention sont définies sur Centera. Vous pouvez le vérifier en demandant au client de vous fournir la commande ci-dessous à partir de Centera :
Config# show retention all
Résolution
---------------
Par exemple, si vous aviez des clips CAS avec une rétention de 7 ans, vous devez créer un compartiment avec les valeurs de rétention suivantes :
Période de rétention du compartiment : 0 seconds
Minimum Fixed Retention Period : 0 seconds
Maximum Fixed Retention Period : Période de rétention variable minimum de 8 ans
: 0 seconds
Maximum Variable Retention Period : 0 seconde
De cette façon, la rétention se situe dans les contraintes min/max.
Scénario 2 :
--------------
demandez au client de vous fournir les politiques de classe de rétention ci-dessous.
|
Vous devez ensuite ajouter toutes ces règles de classe de rétention aux politiques de rétention de l’espace de nommage côté ECS. Demandez au client/PS de réessayer la migration après avoir ajouté les règles de rétention de l’espace de nommage côté ECS.