ECS: Не можу перенести кліпи з Centera на ECS - ERROR_RETENTION_INCORRECT
Summary: Не можу мігрувати кліпи з Centera в ECS — "ERROR_RETENTION_INCORRECT."
Symptoms
Кліпи не мігрують на ECS з Centera з «ERROR_RETENTION_INCORRECT».
Приклад трасування стеку:
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
Сценарій 1:
Якщо період утримання об'єкта виходить за межі, визначені в бакеті, спроба записати об'єкт зазнає невдачі.
При використанні політик утримання, вибір Infinite для мінімального фіксованого періоду утримання означає, що всі значення збереження на всіх об'єктах мають бути нескінченними.
Вибір нескінченного для максимального фіксованого періоду утримання означає, що максимального обмеження немає.
Обмеження мінімального/максимального утримання застосовуються до будь-якого C-кліпу, записаного у відро. Якщо кліп мігрується будь-яким стороннім інструментом на основі SDK, утримання має бути в межах обмежень, інакше виникає помилка.
Сценарій 2:
На Centera визначені політики класу утримання. Ви можете перевірити це, попросивши клієнта надати вам наведену нижчу команду від Centera:
Config# show retention all
Resolution
Сценарій 1:
Наприклад, якщо у вас встановлені кліпи CAS з утриманням 7 років, вам доведеться створити відро з такими значеннями збереження:
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
Таким чином, утримання знаходиться в межах мінімальних/максимальних обмежень.
Сценарій 2:
Попросіть клієнта надати вам наведені нижче правила щодо класу утримання.
-
Почніть CLI для Centera.
-
Зв'яжіться як користувач з роллю відповідності або моніторингу.
-
Введіть команду:
show retention allВихід подібний на:
Retention class name Period ------------------------------------------ class 1 5 years class 2 3 months class 3 10 years
Потім потрібно додати всі ці політики класів утримання до політик збереження простору імен на стороні ECS. Попросіть клієнта/PS спробувати міграцію ще раз після додавання політик збереження простору імен на стороні ECS.