ЕКС: Як видалити відро S3 з безліччю об'єктів у ньому
Summary: Сегмент S3 має багато об'єктів, але його слід видалити. У цій статті описано, як видалити всі об'єкти з сегмента та остаточно видалити його.
Instructions
Обмеження до наведених нижче операцій:
- Об'єкти, що перебувають у стані зберігання ECS, не можуть бути видалені.
- Об'єкти, які перебувають під функцією утримання Object Lock, не можна видалити.
- Сегменти з підтримкою файлової системи потребують версії 3.8.1 або новішої.
Рекомендований варіант: Версія 3.8 або новіша:
У версії 3.8 ECS Software компанія Dell представила спрощене видалення сегмента. Тепер об'єкти та сегмент можна видалити за допомогою REST API або порожнього рядка S3 у відрі за допомогою x-emc-headers. Dell Technologies рекомендує оновитися до 3.8. і за допомогою спрощеного сегмента Видалити протягом життєвого циклу.
Використання функції "спрощене видалення" за допомогою інтерфейсу ECS UI (потрібно 3.8.1.0 або новішу)
Версія 3.8.1.x і пізніші дозволяють видаляти сегмент із вмістом з інтерфейсу ECS за відповідних дозволів. Перейдіть у сегмент і виберіть видалити зі спадного списку. Виберіть Видалити ВЕСЬ вміст, включно з вибраним сегментом, і підтвердьте.

Використання спрощеного видалення сегмента за допомогою REST API.
Перегляньте останній Посібник REST API для довідки.

Приклад для надсилання виклику rest API за допомогою curl з ECS:
Команда:
# curl -k -H "$token" -X POST https://<hostname-or-ip>:4443/object/bucket/<bucketname>/deactivate?namespace=<namespace>\&emptyBucket=true
Приклад:
curl -v -k -H "$token" -X POST https://10.60.x.xx:4443/object/bucket/ExampleBucketRest/deactivate?namespace=b_mathias_ns\&emptyBucket=true
Для моніторингу:

Команда:
# curl -k -H "$token" -X GET https://<hostname-or-ip>:4443/object/bucket/<bucketname>/empty-bucket-status?namespace=<namespace> |xmllint --format -
Приклад:
Started:
mathias@client:/usr/share/s3curl$ curl -k -H "$token" -X GET https://10.60.x.xx:4443/object/bucket/ExampleBucketRest/empty-bucket-status?namespace=b_mathias_ns |xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<empty_bucket_status>
<status>PENDING</status>
<created>1707411798889</created>
<last_updated>1707411798889</last_updated>
<entries_deleted>0</entries_deleted>
<failed_to_delete_due_to_retention>0</failed_to_delete_due_to_retention>
<failed_to_delete_due_to_permission>0</failed_to_delete_due_to_permission>
<failed_to_delete_due_to_dangling xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<failed_to_delete_due_to_other>0</failed_to_delete_due_to_other>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</empty_bucket_status>
Running:
mathias@client:/usr/share/s3curl$ curl -k -H "$token" -X GET https://10.60.x.xx:4443/object/bucket/ExampleBucketRest/empty-bucket-status?namespace=b_mathias_ns |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 629 100 629 0 0 2431 0 --:--:-- --:--:-- --:--:-- 2437
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<empty_bucket_status>
<status>IN_PROGRESS</status>
<created>1707411798889</created>
<last_updated>1707411828897</last_updated>
<entries_deleted>1337</entries_deleted>
<failed_to_delete_due_to_retention>0</failed_to_delete_due_to_retention>
<failed_to_delete_due_to_permission>0</failed_to_delete_due_to_permission>
<failed_to_delete_due_to_dangling xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<failed_to_delete_due_to_other>0</failed_to_delete_due_to_other>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</empty_bucket_status>
Completed:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<error>
<code>1004</code>
<description>Request parameter cannot be found</description>
<details>Unable to find entity with the given id ExampleBucketRest</details>
<retryable>false</retryable>
</error>
Наведена вище помилка є очікуваною, оскільки відро більше не знайдено.
Використовуючи спрощене видалення сегмента за допомогою S3:
- Щоб дізнатися більше, перегляньте останній посібник із доступу до даних.
- Дивіться Посібник з доступу до даних версії 3.8.
Найшвидший спосіб звернутися до сегмента за допомогою цієї опції — це s3curl.
x-emc headers на даний момент не є повністю функціональними.
s3curl доступний на GitHub для локальних установок. Ця версія використовується для включення x-emc-headers https://github.com/EMCECS/s3curl/blob/master/s3curl.pl Модифікована версія
s3curl.pl планується додати до ECS код у майбутній версії та оновити цей КБ.
Коли
s3curl налаштована, перейдіть до наступних кроків. Майте на увазі, що дані не можуть бути відновлені!
- Як запустити спрощене видалення сегмента за допомогою
s3curl:
./s3curl --id=<alias> --DELETE -- http://<hostname-or-ip>:9020/<bucketname> -H "x-emc-empty-bucket:true"
Приклад:
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam --DELETE -- http://10.60.x.xx:9020/ExampleBucket -H "x-emc-empty-bucket:true"
Видалення відра моніторингу:
./s3curl.pl --id=<alias> http://<hostname-or-ip>:9020/<bucketname>?empty-bucket-status |xmllint --format -
Приклад:
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam -- http://10.60.x.xx:9020/ExampleBucket?empty-bucket-status |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 474 100 474 0 0 3128 0 --:--:-- --:--:-- --:--:-- 3139
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EmptyBucketStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>PENDING</Status>
<Created>2024-02-08T16:21:53.849Z</Created>
<LastUpdated>2024-02-08T16:21:53.849Z</LastUpdated>
<EntriesDeleted>0</EntriesDeleted>
<FailedToDeleteDueToRetention>0</FailedToDeleteDueToRetention>
<FailedToDeleteDueToPermission>0</FailedToDeleteDueToPermission>
<FailedToDeleteDueToOther>0</FailedToDeleteDueToOther>
Running:
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam -- http://10.60.x.xx:9020/ExampleBucket?empty-bucket-status |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 478 100 478 0 0 3883 0 --:--:-- --:--:-- --:--:-- 3886
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EmptyBucketStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>IN_PROGRESS</Status>
<Created>2024-02-08T16:21:53.849Z</Created>
<LastUpdated>2024-02-08T16:22:23.899Z</LastUpdated>
<EntriesDeleted>1304</EntriesDeleted>
<FailedToDeleteDueToRetention>0</FailedToDeleteDueToRetention>
<FailedToDeleteDueToPermission>0</FailedToDeleteDueToPermission>
<FailedToDeleteDueToOther>0</FailedToDeleteDueToOther>
</EmptyBucketStatus>
Completed:
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam -- http://10.60.x.xx:9020/ExampleBucket?empty-bucket-status |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 180 0 180 0 0 1300 0 --:--:-- --:--:-- --:--:-- 1304
<?xml version="1.0"?>
<Error>
<Code>NoSuchBucket</Code>
<Message>The specified bucket does not exist</Message>
<Resource>ExampleBucket</Resource>
<RequestId>0a3c0812:18d77e3a715:2d7:1f33</RequestId>
</Error>
Для версій коду до 3.8, оновіться, щоб дізнатися про наявність вищезазначених опцій.