Немного предыстории ... Мы запускаем 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 в режиме записи.
Есть ли причина, по которой вы не используете снимки состояния EBS? Вы можете использовать их для сохранения всего устройства EBS (инкрементально) с помощью простого вызова API, а снимки состояния сохраняются в S3. Если вам нужно вернуть старую версию, просто создайте том из этого снимка и подключите его к своему экземпляру вместо сломанного EBS.