Все руководства
Начало работы
VPS
- Операционные системы для VPS
- Снапшоты VPS и резервные копии на внешней площадке
- Как развернуть собственный VPN на VPS с помощью WireGuard
- Как запустить ретранслятор, мост или onion-сервис Tor на VPS
- Как самостоятельно развернуть BTCPay Server на VPS
- Как запустить узел Bitcoin или Monero на VPS
Выделенные серверы
Windows RDP
Windows Server 2019 , 2022 или 2025 противWindows 10 и 11 для RDP- Как подключиться к серверу Windows RDP с любого устройства
GPU-серверы
Безопасность
На этой странице
Снапшоты позволяют быстро откатить офшорный VPS к прежнему состоянию. Резервные копии позволяют восстановиться, если пропал сам сервер или доступ к нему. Нужно и то и другое. В этом руководстве объясняется, чем они различаются, каковы лимиты снапшотов по тарифам, как делать снапшоты, после которых базы данных остаются целыми, и как настроить зашифрованное резервное копирование на внешнюю площадку.
Снапшоты и резервные копии
Снапшот — это копия всего диска VPS на определённый момент времени, которая хранится на нашей платформе вместе с VPS. Восстановление из снапшота возвращает весь сервер точно в то состояние, поэтому это самый быстрый способ отменить неудачное обновление или ошибку в конфигурации.
Резервная копия — это копия ваших данных, которая хранится в другом месте: на другом сервере, в другой локации, на вашем собственном оборудовании. Она не зависит от VPS, может хранить много версий и позволяет восстанавливать отдельные файлы. Обычно следуют правилу 3-2-1: три копии данных на носителях двух типов, одна из них — на внешней площадке.
| Параметр | Снапшот | Резервная копия на внешней площадке |
|---|---|---|
| Что копируется | Весь диск | Выбранные вами файлы и дампы баз данных |
| Где хранится | На нашей платформе, вместе с вашим VPS | На машине под вашим контролем, в другом месте |
| Восстановить | Откат всего диска | Отдельные файлы или полная пересборка сервера |
| Версии | От 2 до 5 в зависимости от тарифа | Столько, сколько оставляет ваше правило хранения |
| Защищает от | Неудачных обновлений, ошибок в конфигурации | Потери сервера, потери доступа, ошибок, замеченных спустя недели |
Снапшоты в тарифах
| Тарифы | Снапшоты |
|---|---|
| Dinghy, Sloop, Cutter | 2 |
| Schooner, Brigantine | 3 |
| Frigate, Flagship | 5 |
Если все слоты заняты, укажите в запросе, какой снапшот заменить.
Создание, восстановление и удаление снапшотов
Создать
На странице сервера в личном кабинете, в разделе Действия с сервером, выберите Создать снапшот и дайте ему имя, из которого понятно, зачем он сделан, например before-php-upgrade
Восстановить
В разделе Действия с сервером выберите Восстановить из снапшота и укажите имя снапшота. VPS вернётся в состояние на момент снапшота, а запрос будет отмечен как выполненный, когда сервер снова будет в сети. Проверьте, что ваши сервисы запустились, а задания по расписанию и сертификаты в порядке.
Удалить
Отправьте запрос Удалить снапшот в разделе Действия с сервером, указав имя снапшота. Удаление снапшота необратимо. Храните хотя бы один заведомо рабочий снапшот, например сделанный после первоначальной настройки, а снапшоты, сделанные перед изменениями, удаляйте, когда изменения несколько дней проработают без проблем.
Как делать согласованные снапшоты
Снапшот работающего сервера согласован на уровне сбоя (
Кратковременная остановка базы данных
Самый простой вариант. Остановите службу (для PostgreSQL она называется postgresql
systemctl stop mariadb
Запросите снапшот и снова запустите службу, когда запрос будет отмечен как выполненный (до этого момента база данных недоступна):
systemctl start mariadb
Предварительный дамп баз данных
Лучший вариант, если база данных должна оставаться доступной: дамп, сделанный непосредственно перед запросом снапшота, согласован, даже если рабочие файлы базы данных — нет, и его можно повторно использовать для резервного копирования на внешнюю площадку. Между созданием дампа и моментом, когда запрос будет отмечен как выполненный, не записывайте ничего важного. Для MariaDB (в MySQL команда называется mysqldump
mkdir -p /root/db-dumps
chmod 700 /root/db-dumps
mariadb-dump --all-databases --single-transaction --routines --events > /root/db-dumps/mariadb.sql
Для PostgreSQL:
runuser -u postgres -- pg_dumpall > /root/db-dumps/postgresql.sql
Резервное копирование на внешнюю площадку с restic или Borg
И restic, и Borg шифруют данные на вашем сервере до того, как что-либо его покинет, выполняют дедупликацию и экономно хранят множество версий. Место назначения видит только зашифрованные данные, поэтому им может быть любая машина, доступная по SSH: второй VPS, сервер для хранения данных в другой нашей локации или домашний компьютер. Копируйте /etc/home/root
restic
На VPS установите restic, создайте SSH-ключ для root и скопируйте его на хост для резервных копий. Затем сгенерируйте случайный пароль репозитория, инициализируйте репозиторий и запустите первое резервное копирование:
apt install -y restic
ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519
ssh-copy-id backup@BACKUP_HOST
install -m 600 /dev/null /root/.restic-pass
openssl rand -base64 32 > /root/.restic-pass
export RESTIC_REPOSITORY=sftp:backup@BACKUP_HOST:/srv/restic/web1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
restic backup /etc /home /root /var/www --exclude-caches
restic snapshots
Borg
Borg должен быть установлен и на хосте для резервных копий, поскольку он работает там через SSH. Настройте SSH-ключ, как в примере с restic. Эти команды рассчитаны на Borg 1.2 и 1.4 — версии, которые входят в пакеты текущих выпусков Debian и Ubuntu:
apt install -y borgbackup
install -m 600 /dev/null /root/.borg-pass
openssl rand -base64 32 > /root/.borg-pass
export BORG_REPO=ssh://backup@BACKUP_HOST/./borg/web1
export BORG_PASSCOMMAND="cat /root/.borg-pass"
borg init --encryption=repokey-blake2
borg create --stats --compression zstd '::{hostname}-{now}' /etc /home /root /var/www
borg list
borg key export "$BORG_REPO" /root/borg-key.txt
Сохраните borg-key.txt
Автоматизация, очистка и проверка
Поместите обе строки export/usr/local/sbin/offsite-backup
chmod 700 /usr/local/sbin/offsite-backup
crontab -e
Добавьте в crontab пользователя root строку, которая будет запускать скрипт каждую ночь в 03:30:
30 3 * * * /usr/local/sbin/offsite-backup
Завершите скрипт правилом хранения, чтобы старые версии удалялись. Приведённые правила сохраняют ежедневные копии за неделю, еженедельные — за месяц и ежемесячные — за шесть месяцев. Для restic:
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Для Borg:
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg compact
Непроверенная резервная копия может не восстановиться, когда она понадобится. Раз в месяц проверяйте репозиторий и восстанавливайте данные во временный каталог. С restic:
restic check
restic restore latest --target /root/restore-test
С Borg выведите список архивов, затем извлеките один из них в пустой каталог:
borg check
mkdir -p /root/restore-test
cd /root/restore-test
borg extract '::ARCHIVE_NAME' etc
Сервер, который сам отправляет свои резервные копии, может их и удалить, если злоумышленник получит права root. Чтобы этого не случилось, сделайте репозиторий на хосте для резервных копий доступным только для добавления: у --append-onlyborg serve --append-onlyauthorized_keys
Клиенты с выделенными и GPU-серверами могут открыть тикет в личном кабинете, указав IP-адрес сервера и то, что они уже пробовали сделать. Целевой срок первого ответа — менее 12 часов. Для всех остальных серверов используйте действия с сервером на его странице, руководства и страницу статуса сети.