Назад | Перейти на главную страницу

что произойдет, если файл будет изменен во время его копирования по сети?

Немного предыстории ... Мы запускаем 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.