Чем автоматические копии отличаются от снимков
Оба способа сохраняют копию всего диска сервера, но различаются моментом создания и способом оплаты.
- Автоматическое резервное копирование: дополнительная опция, которую вы включаете при создании сервера. Копия всего диска сервера создается автоматически по расписанию, а плата, 5.6% от стоимости сервера, добавляется к счету. Для восстановления оставьте запрос на странице поддержки после первого платежа, и мы все сделаем.
- Снимки: отдельный заказываемый продукт. Он сохраняет весь диск в выбранный вами момент, например прямо перед крупным обновлением, и стоит $0.009 в месяц за GB хранилища. При заказе выберите объём от 20GB до 2,000GB с шагом 10GB.
Сайты и базы данных, которые меняются каждый день, защищают автоматические копии, а перед трудно обратимыми действиями, например обновлением операционной системы, стоит сделать снимок: так два способа дополняют друг друга. Описание продуктов на страницах автоматические резервные копии и снимки.
Включение автоматических копий
- Нажмите «Новый сервер» в аккаунте и выберите регион, размер и образ.
- Включите автоматические резервные копии в дополнительных опциях.
- Справа в сводке сразу появится месячная цена сервера вместе с копиями.
- Нажмите «Создать сервер» и оплатите выбранный период оплаты, затем оплатите счет за продление до окончания периода, чтобы сервер продолжал работать.
Автоматические копии это опция, которая выбирается при создании сервера. Чтобы защитить данные уже работающего сервера, закажите снимок или используйте резервное копирование на самом сервере, описанное ниже. При создании сервера через API та же опция включается, если добавить в запрос "backups": true.
Запрос восстановления из автоматической копии
Восстановление выполняют сотрудники поддержки, которые возвращают сервер к нужному моменту. После первого платежа оставьте запрос на странице поддержки вот так.
- В теме выберите «Сервер».
- В поле имени сервера укажите имя сервера, который нужно восстановить.
- В тексте укажите дату и время (UTC), к которым нужно вернуться, и нужно ли восстанавливать на тот же сервер.
При восстановлении диск сервера заменяется содержимым на момент резервной копии, поэтому файлы, созданные позже, пропадут. Если есть свежие файлы, которые нужно сохранить, скачайте их на свой компьютер до отправки запроса. Ответ появится на странице поддержки.
Заказ снимка
- Нажмите «Заказать» на странице снимков.
- Выберите объём хранилища. Если он равен размеру диска сервера или немного больше, весь диск поместится с запасом.
- Укажите в поле имени имя сервера, и будет сразу понятно, какому серверу принадлежит снимок. Можно использовать латинские буквы, цифры, точку и дефис.
- При заказе оплатите выбранный период оплаты, и как только все будет готово, сервер появится в списке продуктов в вашем аккаунте.
Для серверов с постоянной записью, например баз данных, самый чистый образ получается, если на время создания снимка ненадолго остановить сервис или сам сервер. Чтобы откатиться к снимку или создать из него новый сервер, оставьте запрос на странице поддержки с именем сервера и снимка после первого платежа, и мы все сделаем.
Резервное копирование на самом сервере
Если автоматические копии и снимки защищают весь сервер, то копии на самом сервере позволяют хранить ещё один экземпляр файлов и баз данных в другом месте. Надёжнее всего следовать правилу 3-2-1: три копии, на двух видах хранилищ, одна из них в другом месте.
Шаг 1. Упакуйте файлы и базы данных
mkdir -p /root/backup
tar czf /root/backup/www-$(date +%F).tar.gz /var/www
mysqldump --single-transaction --all-databases | gzip > /root/backup/db-$(date +%F).sql.gzДля PostgreSQL упакуйте командой sudo -u postgres pg_dumpall | gzip > /root/backup/pg-$(date +%F).sql.gz, для тома Docker командой docker run --rm -v VOLUME_NAME:/data -v /root/backup:/out alpine tar czf /out/VOLUME_NAME.tar.gz -C /data ..
Шаг 2. Запускайте автоматически каждый день
Откройте расписание командой crontab -e и добавьте три строки ниже: каждый день в 3 часа ночи (по времени сервера) будет создаваться файл копии, а файлы старше 7 дней удаляться. Внутри crontab перед % ставится обратная косая черта.
0 3 * * * tar czf /root/backup/www-$(date +\%F).tar.gz /var/www
5 3 * * * mysqldump --single-transaction --all-databases | gzip > /root/backup/db-$(date +\%F).sql.gz
30 3 * * * find /root/backup -name '*.gz' -mtime +7 -deleteШаг 3. Отправьте ещё одну копию в другое место
Если файлы копий лежат только на том же сервере, они могут пропасть вместе с ним. Отправьте их через rsync на сервер в другом регионе или загрузите через rclone в объектное хранилище, и у вас появится копия в другом месте.
rsync -az /root/backup/ backup@BACKUP_SERVER_IP:/backups/web-1/Какой способ выбрать в вашей ситуации
Три способа не заменяют, а дополняют друг друга и надёжнее всего работают вместе. Сочетайте их под задачи своего сервера, например так.
- Личный блог, небольшой сайт: включите автоматические копии при создании сервера и перед крупной сменой темы или плагинов скачайте файл экспорта WordPress, этого достаточно.
- Интернет-магазин, сервис с регистрацией: в дополнение к автоматическим копиям каждый день делайте дамп базы данных и отправляйте копию в другой регион. Так заказы и данные пользователей можно вернуть с точностью до часа.
- Серверы для разработки и тестов: перед крупным экспериментом сделайте снимок, а после эксперимента удалите его и сэкономьте на хранении.
- Несколько серверов одинаковой конфигурации: храните снимок эталонного сервера подольше, и новые серверы можно будет быстро привести в то же состояние.
При любом сочетании главное, чтобы одна копия была и за пределами сервера и чтобы вы хоть раз действительно восстанавливались из неё. Если позаботиться об этих двух вещах, вы спокойно восстановите сервис даже после внезапной ошибки или сбоя.
Учитывайте и стоимость. Автоматические копии стоят 5.6% от цены сервера, то есть одну и ту же сумму каждый месяц, а за снимки вы платите только за сохранённый объём. Копии на самом сервере не требуют доплаты и занимают только место на диске, но для копии в другом месте нужно хранилище на принимающей стороне. Выбирайте по объёму данных, которые важно сохранить, и по тому, как часто может понадобиться восстановление, и вы найдёте баланс цены и надёжности.
Тренировка восстановления и полезные привычки
Резервная копия ценна тогда, когда из неё можно восстановиться. Примерно раз в месяц создайте небольшой сервер, распакуйте на нём файл копии и проверьте, открывается ли сайт, и в реальной ситуации вы не запутаетесь в шагах. Тестовый сервер после проверки сразу удалите.
- Прямо перед крупными работами делайте снимок или файл копии.
- Указывайте в имени файла копии дату и имя сервера, чтобы сразу было видно, к какому моменту она относится.
- Храните копии с секретными данными, например паролями баз данных и ключами API, только в надёжном месте.
- Перед переустановкой сервера сначала выполните шаг переноса данных из руководства по переустановке.
Если места на диске не хватает для долгого хранения копий, можно добавить к серверу блочный диск NVMe и использовать его только для копий. Если вы работаете с Docker, посмотрите также раздел о томах в руководстве по установке Docker.
