Я хочу отразить свои ведра Amazon S3. Я хочу сделать это, потому что 1) я не хочу, чтобы все мои данные существовали только у одного провайдера; и 2) в случае ошибки программного обеспечения или нарушения безопасности я хочу создать резервную копию данных.
Я могу выполнить зеркальное копирование на локальный диск с помощью функции синхронизации s3cmd, но она не масштабируется для очень больших сегментов и бесполезна для быстрого восстановления из резервных копий. Я бы предпочел, чтобы мои данные были отображены для такого конкурента, как Rackspace Cloud Files.
У кого-нибудь есть предложения по простому и надежному способу облегчить автоматическое зеркалирование такого рода в системе Linux?
Вы можете использовать "s3cmd"с опцией" синхронизация ", хотя я наткнулся на ваш вопрос, потому что пытаюсь выяснить, не портит ли этот механизм синхронизации мои дублированные резервные копии.
У меня была та же проблема, поэтому я разработал небольшую программу, специально разработанную для зеркалирования одной корзины S3 в другую; Я называю это s3s3mirror.
Сначала я попробовал подход «s3cmd sync», но у меня было ведро с сотнями тысяч объектов, и «s3cmd sync» просто сидел там, ничего не делая, но занимая все больше и больше памяти, пока моя система не умерла. Я разработал s3s3mirror таким образом, чтобы сразу приступить к работе, использовать 100 параллельных потоков (настраиваемых) и скромно использовать процессор и память. Если я и сам так говорю, это чертовски быстро.
Я сделал это доступным на github под лицензией Apache. Если вы решите попробовать, дайте мне знать, что вы думаете и есть ли что-то, что можно улучшить.
Вот ссылка: https://github.com/cobbzilla/s3s3mirror
Спасибо!
У Amazon теперь есть поддерживаемый инструмент для этого: aws cli.
Он может зеркалировать в любом направлении между локальным и удаленным или между двумя местоположениями s3.
К сожалению, у него нет прямой поддержки для мест, не относящихся к S3, таких как rackspace, но я подумал, что это будет полезным ответом для тех, кто найдет этот вопрос. Как и я, прежде чем я это нашел.
В частности,
aws s3 sync s3://some/s3/path /some/local/path
Вы можете попробовать установить ковши с предохранителем, используя s3fs. Как только это будет сделано, вы можете выполнить rsync из точки монтирования на локальный диск.
Проверять, выписываться Дисковый сервер джунглей. Он работает как с Amazon S3, так и с Rackspace Cloud Files. Вы можете смонтировать S3 и CF в разных местах файловой системы, а затем использовать rsync между ними.
Вы можете настроить Minio сервер, открытый исходный код и S3-совместимый API. Вы можете настроить его на EC2 или у любого облачного провайдера в качестве альтернативного сервера и использовать Клиенты Minio mc mirror
Команда периодически принимает зеркало S3. Вы можете автоматизировать то же самое, написав простой скрипт cron.
Надеюсь, поможет. Отказ от ответственности: я работаю на Минио
Для онлайн-синхронизации сегментов вы можете использовать межрегиональную репликацию. Таким образом, все обновления исходной корзины будут автоматически синхронизироваться с корзиной S3 в другом регионе: https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html
Имейте в виду, что для этого сегмента необходимо включить управление версиями, поэтому, если вы часто обновляете / удаляете объекты в сегментах, вам нужно включить политику жизненного цикла для удаления старых объектов.