ECS: Klipler Centera'dan ECS - ERROR_RETENTION_INCORRECT'ye taşınamıyor
Summary: Klipler Centera'dan ECS'ye taşınamıyor - "ERROR_RETENTION_INCORRECT."
Symptoms
Klipler "ERROR_RETENTION_INCORRECT" ile Centera'dan ECS'ye taşınamıyor.
Örnek yığın izleme:
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
Senaryo 1:
Bir nesnenin alıkoyma süresi kovada belirtilen sınırların dışındaysa nesneyi yazma girişimi başarısız olur.
Saklama politikaları kullanılırken Minimum Fixed Retention Period için Infinite öğesinin seçilmesi, tüm nesnelerdeki tüm saklama değerlerinin sonsuz olması gerektiği anlamına gelir.
Maksimum Sabit Tutma Süresi için sonsuz seçeneğinin seçilmesi, maksimum sınır olmadığı anlamına gelir.
Min/maksimum saklama kısıtlamaları, bir gruba yazılan tüm C-Clip'lere uygulanır. Bir klip herhangi bir SDK tabanlı üçüncü taraf araç tarafından taşınırsa, saklama sınırlar içinde olmalıdır, aksi takdirde bir hata atılır.
Senaryo 2:
Centera'da tanımlanan saklama sınıfı ilkeleri vardır. Bunu, müşteriden size Centera'dan aşağıdaki komutu vermesini isteyerek doğrulayabilirsiniz:
Config# show retention all
Resolution
Senaryo 1:
Örneğin, üzerinde 7 yıllık saklama süresi ayarlanmış CAS klipleriniz varsa aşağıdaki saklama değerlerine sahip bir grup oluşturmanız gerekir:
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
Bu şekilde, saklama minimum/maksimum kısıtlamalar dahilindedir.
Senaryo 2:
Müşteriden size aşağıdaki saklama sınıfı politikalarını sağlamasını isteyin.
-
Centera için CLI'yı başlatın.
-
Uyumluluk veya izleme rolüne sahip bir kullanıcı olarak bağlanın.
-
Şu komutu yazın:
show retention allÇıktı, şuna benzerdir:
Retention class name Period ------------------------------------------ class 1 5 years class 2 3 months class 3 10 years
Ardından tüm bu saklama sınıfı politikalarını ECS tarafındaki ad alanı saklama politikalarına eklemeniz gerekir. ECS tarafında ad alanı saklama politikalarını ekledikten sonra müşteriden/PS'den geçişi tekrar denemesini isteyin.