RuWeb.net Forum

Как сделать бэкап своего VDS
timru - 5.2.2018 в 17:28

Собираетесь произвести обновление ПО на своем VDS, или что-то переделать (например реорганизовать файловую систему), но боитесь что все сломаете? Хорошая идея подумать о сохранности данных.

Имеются ли у нас бэкапы?
Если вы клиент российского филиала и ваш тариф начинается на KVMz-*** (обратите внимание на наличие буквы z), то, вполне возможно, у нас есть бэкапы. Они делаются 1 раз в неделю (конкретного дня нет - это зависит от номера сервера) и хранятся 2 последних бэкапа. Но это не точно :). Поэтому лучше заранее уточнить, есть ли у нас бэкап вашего VDS, и как давно он был сделан.
Если вы клиент американского филиала или ваш тариф начинается на KVM-*** или KVMx-***, то бэкапов у нас, скорее всего, нет.
Вне зависимости от тарифа, вы можете обратиться в техподдержку с просьбой создать бэкап своего VDS. Обратите внимание, что мы храним не более одного бэкапа по запросу клиента, и срок его хранения - не более 1 недели. Также может не оказаться технической возможности для создания бэкапа (на корневом сервере может быть недостаточно свободного места).

Как сделать бэкап самостоятельно?
Вариант #1 - скопировать весь виртуальный диск целиком. Суть метода - остановить все службы на VDS, запретить запись на диск, и скопировать его образ на внешний ресурс (например на ftp-сервер). Недостатки метода: 1) копирование может занять продолжительное время, в течение которого ваши сайты не будут работать, 2) вы не сможете восстановить содержимое диска без помощи техподдержки.
Место на ftp-сервере для хранения данных можно приобрести у нас:
https://ruweb.net/hosting/backup
В рассматриваемом примере, у вас есть доступ на ftp-сервер bk1.deserv.net, логин bk1234, пароль qwerty123
VDS создан на базе шаблона Ubuntu 16.04 + ISPmanager
Останавливаем все службы:
service cron stop
service apache2 stop
service nginx stop
service mysql stop
service exim4 stop
service dovecot stop
service proftpd stop
service bind9 stop
service php7.0-fpm stop
service fail2ban stop
service ntp stop
service rsyslog stop
service ihttpd stop
killall core

Перемонтируем корневой раздел в режиме только для чтения:
mount -o remount,ro /
эта команда не должна выдать ничего. Если она выдала "mount: / is busy", значит не все службы, у которых есть возможность писать какие-то данные на диск, были остановлены. Крайне желательно найти и остановить их тоже, и попробовать выполнить эту команду снова, иначе есть риск потери данных.

Копируем полный образ диска на ftp (для ускорения копирования сжимаем его с помощью gzip):
dd if=/dev/sda bs=1M | gzip -1c | curl -T- ftp://bk1.deserv.net/diskdump.gz --user bk1234:qwerty123

Выполнение этой команды может занять продолжительное время (поэтому во избежании обрыва связи ее лучше выполнять с помощью утилиты screen). В результате на вашем ftp-сервере должен создаться большой файл diskdump.gz

... продолжение следует ...


[Отредактировано 25.4.2019 кто support]


Piercer - 26.3.2018 в 13:05

Про оболочное хранилище от Яндекса пишут много. Сервис получился действительно неплохой. Дают 50 ГБ бесплатно, поддержка всех платформ, удобный интерфейс. Но самое приятное — это скорость. У меня сложилось впечатление, что скорость ограничена только вашим провайдером.
Вот как я реализовал автоматическое монтирование Яндекс диска в Centos 7 b резервное копирование на Яндекс Диск для сервера с виртуализацией KVM. Этот способ проверен и работает на моем VPS хостинге у РУВЕБа на Centos 7. Сначала установим утилиту davfs2

yum install davfs2

Далее нужно создать папку, туда где будут отображаться удалённые файлы.

mkdir /home/backup/yandex

Произведем запись в автозагрузку нашего Яндекс.Диска

echo "https://webdav.yandex.ru username password" >> /etc/davfs2/secrets

где username password -- пользователь и пароль вашего юзера, на которого зарегистрирован Яндекс.Диск.

Осталось только прописать команду с монтированием в автозагрузку, чтобы диск автоматически монтировался после reboot-a. Редактируем файл и добавляем строчку монтирования яндекс.диска

echo "sleep 60 && sudo mount -t davfs https://webdav.yandex.ru /home/backup/yandex && sudo chown -R user /home/backup/yandex" >> /etc/rc.d/rc.local

где user -- имя пользователя в VestaCP, на которого заведены доменные имена. Так мы обозначим, что папка создана нами и принадлежит нам, а не руту.

Не беспокойтесь, что команда sleep заставит «уснуть» систему. Поток с rc.local идёт в независимом времени от остальных процессов. И да, я знаю про fstab. Если в комментариях напишут, что туда нужно туда прописать, так что бы оно работало, то я только за.
Чтобы появились файлы с сервера яндекса, не обязательно делать reboot. Можно выполнить команду:

mount -t davfs https://webdav.yandex.ru /home/backup/yandex && sudo chown -R user /home/backup/yandex

Выполняем exit, ибо сидеть всегда под рутом — не к добру.

[Отредактировано 26.3.2018 кто Piercer]

[Отредактировано 26.3.2018 кто Piercer]