Всех приветствую!Есть виртуалка VM1 её размер 30G,но на ней занято только 5G.А суть вопроса в том что как сделать бэкап этой виртуалки(не отключая её) и сбэкапить только 5G вместо 30G(ведь зачем бэкапить пустое место).И в последствии этот бэкап развернуть в рабочую систему. Если я не корректно выразился или кому-то что-то не ясно - пишите в комментарии я проясню моменты.Заранее всем спасибо!
Сделать нормальный бэкап виртуалки во включенном состоянии невозможно, так как прямо во время бэкапа может меняться файловая система. /etc/passwd не до конца запишется и система уже невалидная. На полном ходу можно сделать только снимок виртуалки, но в этом случае бэкапится не только диск, но и состояние памяти и процессора. Обычно бэкапят не всю систему а только важные данные, например БД и файлы сайтов. Если файлов много и они не изменяются то бэкапы занимают нерезонно много места. В этом случае можно использовать такую крутую штуку как DAR. Дар умеет делать бэкапы на основе уже существующих добавляя в новый файл только изменения. Т.е. если у тебя сайт на 3гб а изменений за вчера на 10мб то новый файл бэкапа будет привязан к предыдущему и займёт всего 10мб.
Спасибо!А если сделать снапшот,с ним можно будет провести какие-то манипуляции привидящие к моим требованиям?Благодарен за уделенное время.
Как работает ксен в деталях я не знаю. Но теоретически можно зажать таром/гзипомом и сам снимок с полным состоянием виртуалки. Вопрос странный, так как если ты админ гипервизора то вместо того чтобы спрашивать лучше-бы сам попробовал это сделать. Если не админ то таких плясок с бубном ты сделать не сможешь, снимки напрямую недоступны владельцу виртуалки.
Решение найдено,может кому-то еще пригодится... mount /dev/disk/vps /mnt/ dd if=/dev/zero of=/mnt/zero bs=4M rm /mnt/zero dd if=/dev/disk/vps bs=1M conv=noerror | gzip -c > /root/vps.gz umount /mnt/