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

Восстановить полный VPS с помощью rsync backup

У меня был xen VPS под управлением Debian 8, который должен был отключиться, поэтому я сделал резервную копию с помощью rsync, подобного этому.

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder

Затем я поместил эту резервную копию в tar.gz и переместил ее на свою локальную машину.

Теперь у меня есть KVM VPS онлайн, на котором также работает Debian 8, на который мне нужно восстановить. Как мне восстановить эту резервную копию? Есть ли что-то еще, что мне нужно сделать, чтобы убедиться, что он загрузился? Можно ли это сделать по SSH / SCP?

Вы пропустили один, возможно, важный аргумент rsync: --hard-links. Это зависит от дистрибутива, и я полагаю, что сейчас все по-другому, чем в прошлом, но системные каталоги и / или файлы (в большей степени, чем пользовательские файлы) могут легко быть жесткими ссылками на другие. Например, в недавнем прошлом в Archlinux /usr/X11R6/bin была жесткой ссылкой на /usr/bin. В настоящее время я не могу привести конкретных примеров того, как это было бы сегодня. Вы могли бы изучить это.

Вы также могли потерять важную информацию, поместив ее в tar.gz. Хранит ли он ACL? Сохранял бы он жесткие ссылки?

Вы также пропустили --sparse, но это просто неудобство.

Чтобы восстановить его, я бы загрузил live CD или какую-то среду восстановления, которую вам предоставляет ваш VPS-провайдер. Затем вы можете просто распаковать данные в корневой раздел, chroot в него (с привязкой-монтированием /proc, /dev и /sys) и работает что-то вроде grub-install /dev/sda

Эти параметры могут отличаться в зависимости от вашей настройки.

Изменить: поскольку у вас может быть доступ к исходному VPS, вы можете сделать что-то вроде этого:

pv /dev/vda | gzip --fast | ssh user@somehost.example.com "cat - > imagefile.gz"

А затем в среде восстановления на новом хосте наоборот:

pv imagefile.gz | ssh user@somehost.example.com "gunzip - > /dev/sda"