Проверка целостности архива, загруженного на AWS Glacier - PullRequest
0 голосов
/ 26 сентября 2019

У нас ежедневно создаются резервные копии базы данных, которые хранятся на сервере.Чтобы освободить место, было решено, что все резервные копии старше 30 дней должны быть заархивированы с использованием AWS Glacier.Пока все хорошо, мне удалось написать скрипт PowerShell, чтобы выбрать нужные файлы и загрузить их в Glacier, но, поскольку я новичок во всех вещах AWS, у меня есть один вопрос: можно ли проверить, что файлы, которые я загрузилдействительно есть в архиве и что не было потери информации?

Мой первый подход состоял в том, чтобы отправлять запросы на поиск работы для всех файлов, которые мы загрузили, и через 4 часа сравнивать контрольные суммы и идентификаторы архива нашихоригинальные файлы и те, которые мы получили из Glacier.Тем не менее, я думаю, что этот процесс занимает много времени, стоит дополнительных денег и, что самое главное, не имеет никакого смысла вообще.

Я также обнаружил, что могу использовать поиск инвентаря, но насколько я могу сказать, этот подходбудет очень похоже на описанный выше, без повторной загрузки всех файлов.

И наконец, есть ли смысл пытаться гарантировать, что загрузка файла прошла успешно, если нет ошибок?Я смутно понимаю, что AWS вернется с сообщениями об ошибках в случае сбоя при загрузке в Glacier, и он вычисляет контрольные суммы во время загрузки.

Я знаю, что StackOverflow видел более точные формулировки вопросов, но любое разъяснение по этому поводубыть очень ценным.

1 Ответ

0 голосов
/ 27 сентября 2019

Вы должны довольно сильно постараться загрузить поврежденный файл в Glacier, потому что Glacier требует контрольных сумм, отправляемых с каждым запросом API, и будет отклонять загрузки, если они не соответствуют хешам.Очевидно, вам нужно выборочно проверить свои архивы, но каждый из них не нужно загружать и проверять из-за встроенных средств защиты.

См. Вычисления контрольных сумм в Amazon S3Glacier Developer Guide для описания того, как это работает, по проводам.

Затем рассмотрите возможность вообще не использовать Glacier ... не напрямую, во всяком случае.Используйте S3 и загружайте свои файлы, используя класс хранения GLACIER или DEEP_ARCHIVE.Или загрузите их как стандартные с политикой жизненного цикла, которая перемещает их в один из классов архивного хранения через 1 день.(Полезно, потому что, если вы удаляете загрузки Glacier или Deep Archive до минимального времени хранения, вам выставляется счет за все минимальное время ... таким образом, у вас есть 24 часа "Ой, мне не нравится, как я это настроил"окно, так как стандартное хранилище не имеет минимального периода времени хранения).

Использование S3 - это намного лучшее решение, потому что S3 имеет гораздо лучший API и консоль, но цены идентичны, потому чтоS3 фактически использует Glacier в качестве своего бэкенда, в то время как у вас есть преимущество S3 в качестве внешнего интерфейса.Glacier практически не имеет консольной функциональности, очень непрозрачен и не предназначен для взаимодействия с человеком - Glacier, по-видимому, был спроектирован в качестве резервного хранилища для системы или службы архивирования, именно так S3 использует Glacier.

Amazon Simple Storage Service (Amazon S3) поддерживает настройку жизненного цикла в корзине S3, что позволяет вам переводить объекты в класс хранения Amazon S3 GLACIER для архивирования.Когда вы переводите объекты Amazon S3 в класс хранения GLACIER, Amazon S3 внутренне использует Glacier для длительного хранения при меньших затратах.Хотя объекты хранятся в Glacier, они остаются объектами Amazon S3, которыми вы управляете в Amazon S3, и вы не можете получить к ним доступ напрямую через Glacier.

https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html

Это сбивает с толкуи к сожалению, AWS недавно запутал эту проблему, замалчивая вещи, переименовывая «Glacier» в «S3 Glacier», как если бы они были одним и тем же, когда они представляют собой две совершенно разные службы, одна из которых работает в режиме, который дает вамворота в другой.К сожалению, Glacier традиционно продавался на рынке.Без S3 впереди Glacier не очень подходит для очень многих приложений.

...