В статье мы установили и настроили сервер виртуализации используя бесплатную программу Virtualbox с управлением виртуальными машинами через веб интерфейс программы phpvirtualbox.
Исходя из того, что всегда необходимо иметь последнюю актуальную копию виртуальной машины, можно настроить архивацию как содержимого виртуальной машины (вернее только нужных данных), так и образ всей виртуальной машины. Конечно можно сказать, что архивация базы данных и файлов сайта с некоторыми конфигурационными файлами рабочих серверов гораздо практичнее - можно например поднять рядом вторую виртуалку на внутреннем интерфейсе, настроить репликацию мастер - слейв, и уже с неё делать архивацию базы данных хоть каждую минуту, а файлы синхронизировать через rsync на слейв так часто, как только необходимо. Но поднимать виртуальную машину с исходных файлов(бд, файлы, конфиги) гораздо дольше, чем подключить готовый образ из архива в случае если с основным образом винчестера виртуальном машины какие-то проблемы.
Потому могу посоветовать простой как молоток скрипт архивации основного винчестера виртуальной машины. Ему конечно до совершенства как до неба определенным способом передвижения, но он работает безотказно.
У него конечно есть один большой минус: если вам нельзя, чтобы виртуальная машина останавливалась - он вам не подойдет. Тогда придется настраивать архивацию используя Snapshots в Virtualbox. Принцып работы: делаете снапшот, переводите работу виртуальной машины с винчестера на снапшот, а в это время делается архив винчестера, как только архив сделан виртуальная машина переводится на работу со снапшота на основной винт виртуального сервера и снапшот удаляется - в итоге такого варианта все данные, что были изменены во время работы на снапшоте - пропадут, но сервер будет всегда доступен.
Еще одно, что я не советую Вам использовать при работе с Virtualbox это Снапшот. Тоесть вы устанавливаете сервер, настраиваете операционную систему, сервисы, сайты и делаете Снапшот, что позволяет в любой момент откатится до этого состояния. Это хорошо когда вы играетесь с настройкой сервера, отладкой работы. Но как только отладили - убираете снапшот и работаете без него. Если Вы все-таки его используете - скрипт просто сделает архивацию всех данных за исключения тех которые в Снапшоте. Сделали архив и в полной уверенности, что все супер спите спокойно, но вдруг оказывается что в физическом сервере умер винт, и вам еще вчера необходимо восстанавливатся с архива, вы просто поднимаете на новом железе virtualbox c phpvirtualbox по статье, заливаете архив, подключаете винт к виртуальной машине и видите, что никаких данных у вас нет - только установленный и настроенный сервер до создания Снапшота. Вот тут Вас может спасти только наличие архивной копий файлов и баз данных. Иначе полный пипец.
Можно еще сделать архив виртуальной машины используя загрузочный образ диска Acronis True Image. Лично пробовал - рабочее решение, переносил так Server 2003. Перенеслась информация и та, что до снапшота и содержимое снапшота.
Сам скрипт автоматической архивации винта машины (сильно не пинайте за простоту):
#!/bin/sh # указываем переменную, которая добавит к имени дату, год, месяц и время создания файла data="date +%Y%m%d-%H:%M`" # сохраняем состояние виртуальной машины /etc/init.d/virtualbox stop # ждем 80 секунд пока машина сохранится sleep 80 # запускаем архивацию винта: указываем файл винчестера виртуальной машины и # куда его архивировать # добавляя к имени переменную $data, что добавит к имени дату, год, месяц и # время создания файла: VBoxManage clonevdi /home/vbox/VirtualBox\ VMs/Jabber/Jabber.vdi /backup/Jabber_$data.vdi #Запускаем виртуальную машину из сохраненного состояния /etc/init.d/virtualbox start # если необходимо, удаляем файлы в архиве, которым больше 5 дней find /backup/ -mtime +5 -type f -exec rm -rf {} \;
Вот и весь простой скрипт. Его можно запускать как по расписанию используя crontab, например каждую неделю в субботу в 4-10, либо вручную когда вам необходимо.
С Вами был Сергей Лазаренко.
Add new comment