ECS: Leikkeitä ei voi siirtää Centerasta ECS:ään – ERROR_RETENTION_INCORRECT
Summary: Leikkeitä ei voi siirtää Centerasta ECS:ään – "ERROR_RETENTION_INCORRECT."
Symptoms
Leikkeiden siirtäminen ECS:ään Centerasta ei onnistu, kun ERROR_RETENTION_INCORRECT.
Esimerkki pinon jäljityksestä:
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
Skenaario 1:
Jos objektin säilytysaika on säilössä määritettyjen rajojen ulkopuolella, objektin kirjoitusyritys epäonnistuu.
Jos säilytyskäytäntöjä käytetään, kun kiinteän säilytysajan vähimmäissäilytysajaksi valitaan ääretön, kaikkien objektien kaikkien säilytysarvojen on oltava äärettömiä.
Jos kiinteän säilytysajan enimmäissäilytysajaksi valitaan ääretön, enimmäisrajaa ei ole.
Minim./maksimi-retentiorajoituksia sovelletaan kaikkiin C-kiinnittimiin, jotka kirjoitetaan säilöön. Jos leike siirretään jollakin SDK-pohjaisella kolmannen osapuolen työkalulla, säilytyksen pitäisi olla rajoissa, muuten heitetään virhe.
Tilanne 2:
Centerassa on määritetty säilytysluokkakäytäntöjä. Voit varmistaa tämän pyytämällä asiakasta antamaan sinulle seuraavan komennon Centeralta:
Config# show retention all
Resolution
Skenaario 1:
Jos sinulla on esimerkiksi CAS-leikkeitä, joiden säilytysaika on 7 vuotta, sinun on luotava säilö, jossa on seuraavat säilytysarvot:
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
Näin pidätys on min/max-rajoitusten sisällä.
Tilanne 2:
Pyydä asiakasta toimittamaan sinulle alla olevat säilytysluokkakäytännöt.
-
Käynnistä Centeran komentoriviliittymä.
-
Muodosta yhteys käyttäjänä vaatimustenmukaisuus- tai valvontaroolissa.
-
Kirjoita komento:
show retention allTulos on samanlainen kuin:
Retention class name Period ------------------------------------------ class 1 5 years class 2 3 months class 3 10 years
Sitten sinun on lisättävä kaikki nämä säilytysluokkakäytännöt nimiavaruuden säilytyskäytäntöihin ECS-puolella. Pyydä asiakasta/PS:ää yrittämään siirtoa uudelleen, kun nimitilan säilytyskäytännöt on lisätty ECS-puolelle.