Немного предыстории... Мы запускаем Redis на нескольких машинах EC2, работающих под управлением дистрибутива Amazon Linux (кажется, он основан на Centos), и в настоящее время используем резервные копии RDB и AOF. Эти файлы хранятся на томах EBS, но мы также делаем резервные копии файлов на S3 каждый час на случай, если что-то случится с EBS.
В настоящее время мы копируем файлы rdb/aof в новое место, а затем выполняем их aws s3 cp --recursive /mnt/storage/redis/${DIR} s3://backup_bucket
и очищаем все временные файлы.
Я хотел бы изменить это, чтобы избежать дискового ввода-вывода при копировании файлов. Что произойдет, если во время aws s3
копирования старого файла RDB будет создан новый и подкачан? Или для файла AOF, к которому каждую секунду добавляется что-то новое, что с ним произойдет?
Что может иметь значение: Тома EXT4, скорее всего, будут настраивать enhanceIO для сопряжения тома EBS с временным SSD в режиме сквозной записи.
решение1
Есть ли причина, по которой вы не используете снимки EBS? Вы можете использовать их для сохранения всего устройства EBS (инкрементального) с помощью простого вызова API, и снимки сохраняются в S3. Если вам нужна старая версия, просто создайте том из этого снимка и подключите его к своему экземпляру вместо сломанного EBS.