ECS: Clips können nicht von Centera zu ECS migriert werden – ERROR_RETENTION_INCORRECT
Summary: Clips können nicht von Centera zu ECS migriert werden – "ERROR_RETENTION_INCORRECT".
Symptoms
Clips können nicht von Centera mit "ERROR_RETENTION_INCORRECT" zu ECS migriert werden.
Beispiel für eine Stack-Ablaufverfolgung:
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
Szenario 1:
Wenn die Aufbewahrungsfrist eines Objekts außerhalb der für den Bucket festgelegten Grenzen liegt, schlägt der Versuch, das Objekt zu schreiben, fehl.
Wenn Sie Aufbewahrungs-Policies verwenden, bedeutet die Auswahl von Infinite unter Minimum Fixed Retention Period, dass alle Aufbewahrungswerte für alle Objekte unbegrenzt sein müssen.
Die Auswahl von "Infinite" für Maximum Fixed Retention Period bedeutet, dass es keine maximale Grenze gibt.
Die Einschränkungen für die minimale/maximale Aufbewahrung werden auf alle in einen Bucket geschriebene C-Clips angewendet. Wenn ein Clip von einem SDK-basierten Drittanbietertool migriert wird, muss die Aufbewahrung innerhalb der Grenzen liegen, da andernfalls ein Fehler ausgegeben wird.
Szenario 2:
Auf Centera sind Aufbewahrungsklassen-Policies definiert. Sie können dies überprüfen, indem Sie den Kunden bitten, Ihnen den folgenden Befehl von Centera zu geben:
Config# show retention all
Resolution
Szenario 1:
Wenn Sie beispielsweise CAS-Clips mit einer Aufbewahrungsfrist von 7 Jahren hätten, müssten Sie einen Bucket mit den folgenden Aufbewahrungswerten erstellen:
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
Auf diese Weise liegt die Aufbewahrung innerhalb der Min-/Max-Beschränkungen.
Szenario 2:
Bitten Sie den Kunden, Ihnen die folgenden Aufbewahrungsklassen-Policies zur Verfügung zu stellen.
-
Starten Sie die CLI für Centera.
-
Melden Sie sich als Nutzer mit der Compliance- oder Überwachungsrolle an.
-
Geben Sie den folgenden Befehl ein:
show retention allDie Ausgabe ähnelt dem Folgenden:
Retention class name Period ------------------------------------------ class 1 5 years class 2 3 months class 3 10 years
Anschließend müssen Sie alle diese Aufbewahrungsklassen-Policies zu den Namespace-Aufbewahrungs-Policies auf ECS-Seite hinzufügen. Bitten Sie den/die Kundin/PS, die Migration erneut zu versuchen, nachdem Sie die Namespace-Aufbewahrungs-Policies auf der ECS-Seite hinzugefügt haben.