ECS: Det går inte att migrera klipp från Centera till ECS – ERROR_RETENTION_INCORRECT
Summary: Det går inte att migrera klipp från Centera till ECS – "ERROR_RETENTION_INCORRECT".
Symptoms
Clips kan inte migrera till ECS från Centera med "ERROR_RETENTION_INCORRECT".
Exempel på stackspårning:
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:
Om ett objekts kvarhållningsperiod ligger utanför de gränser som anges i bucketen misslyckas ett försök att skriva objektet.
När du använder kvarhållningsprinciper innebär valet Oändlig för minsta fasta kvarhållningsperiod att alla kvarhållningsvärden för alla objekt måste vara oändliga.
Om du väljer oändlig för maximal fast kvarhållningsperiod innebär det att det inte finns någon maxgräns.
Min/max-kvarhållningsbegränsningar tillämpas på alla C-klämmor som skrivs till en bucket. Om ett klipp migreras av ett SDK-baserat verktyg från tredje part bör kvarhållandet vara inom gränserna, annars uppstår ett fel.
Scenario 2:
Det finns definierade principer för kvarhållningsklass på Centera. Du kan verifiera detta genom att be kunden att ge dig nedanstående kommando från Centera:
Config# show retention all
Resolution
Scenario 1:
Om du till exempel har CAS-klipp med 7 års kvarhållning måste du skapa en bucket med följande kvarhållningsvärden:
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
På så sätt ligger kvarhållningen inom min/max-begränsningarna.
Scenario 2:
Be kunden att ge dig nedanstående principer för kvarhållningsklass.
-
Starta CLI för Centera.
-
Anslut som användare med efterlevnads- eller övervakningsrollen.
-
Skriv kommandot:
show retention allUtdata ser ut ungefär så här:
Retention class name Period ------------------------------------------ class 1 5 years class 2 3 months class 3 10 years
Sedan måste du lägga till alla dessa kvarhållningsklassprinciper i namnområdeskvarhållningsprinciper på ECS-sidan. Be kunden/PS att försöka migrera igen när du har lagt till kvarhållningsprinciperna för namnområdet på ECS-sidan.