ECS: Kan clips niet migreren van Centera naar ECS - ERROR_RETENTION_INCORRECT
Summary: Kan clips niet migreren van Centera naar ECS - ERROR_RETENTION_INCORRECT.
Symptoms
Clips kunnen niet naar het ECS migreren vanuit Centera met "ERROR_RETENTION_INCORRECT".
Voorbeeld van stacktrace:
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:
Als de bewaarperiode van een object buiten de grenzen valt die zijn opgegeven op de bucket, mislukt een poging om het object te schrijven.
Wanneer u bewaarbeleidsregels gebruikt, betekent Oneindig selecteren voor minimale vaste bewaarperiode dat alle bewaarwaarden voor alle objecten oneindig moeten zijn.
Als u 'Oneindig' selecteert voor Maximale vaste retentieperiode, betekent dit dat er geen maximumlimiet is.
Min/max-retentiebeperkingen worden toegepast op elke C-Clip die naar een bucket wordt geschreven. Als een clip wordt gemigreerd door een SDK-gebaseerde tool van derden, moet de retentie binnen de perken blijven, anders wordt er een fout gegenereerd.
Scenario 2:
Er is een beleid voor retentieklassen gedefinieerd in Centera. U kunt dit verifiëren door de klant te vragen u de onderstaande opdracht van Centera te geven:
Config# show retention all
Resolution
Scenario 1:
Als u bijvoorbeeld CAS-clips had met een retentieperiode van 7 jaar erop, zou u een bucket moeten maken met de volgende retentiewaarden:
Bucket Retention Period: 0 seconds
Minimum Fixed Retention Period: 0 seconds
Maximum Fixed Retention Period: 8 years
Minimum Variable Retention Period: 0 seconds
Maximum Variable Retention Period: 0 seconds
Op deze manier valt de retentie binnen de min/max-beperkingen.
Scenario 2:
Vraag de klant om u het onderstaande beleid voor retentieklassen te verstrekken.
-
Start de CLI voor Centera.
-
Maak verbinding als gebruiker met de rol van nalevings- of bewaker.
-
Typ de opdracht:
show retention allDe uitvoer is vergelijkbaar met:
Retention class name Period ------------------------------------------ class 1 5 years class 2 3 months class 3 10 years
U moet vervolgens al deze beleidsregels voor bewaarklassen toevoegen aan het bewaarbeleid voor naamruimten aan de ECS-zijde. Vraag de klant/PS om de migratie opnieuw uit te voeren na het toevoegen van het bewaarbeleid voor de namespace aan de ECS-zijde.