У меня есть сервер человечности 10.04, выполняющий мой VMs на kvm/qemu. Я вручную приостанавливал свой VMs (использующий virt-менеджера gui) и затем копирующий/var/lib/libvirt папку во внешнюю карту памяти в/mnt/usbexterno, Это, очевидно, далеко от идеала. Мне нужно решение выполнить резервное копирование everynight.
Я думал об использовании задания крона со сценарием приостанавливать VMs и копировать файлы в диск. Я читал на форуме, что я мог использовать virsh для сохранения состояния VM в файл, но я не думаю, что это - то, в чем я нуждаюсь, так как я хочу полное резервное копирование всего в случае, если сервер идет бум!
Так, короткая версия. Мне нужно что-то для выполнения ежедневного резервного копирования моего VMs к внешней карте памяти, VMs может быть приостановлен в течение ночи. Нет никакого GUI, доступного на сервере.
Какие-либо предложения?
Если ваша виртуальная машина называется «FooVM», вы можете создать моментальный снимок, используя:
VBoxManage snapshot FooVM take FooVM_Snapshot1
С помощью командной строки вы можете указать, где хранить снимки:
VBoxManage configvm FooVM --snapshotfolder /media/foostick/foofolder
Однако позаботьтесь о том, чтобы жесткий диск UBS был доступен постоянно.
Вы можете автоматизировать резервное копирование, используя задания cron. И нет необходимости выключать виртуальные машины.
Мне понадобилось время, чтобы вернуться к этому, извините всех, кто дал мне советы. Вот решение, которое я выбрал.
Поскольку я до сих пор не понял концепцию моментального снимка / восстановления моментального снимка (да, я немного туповат), я создал скрипт для удаления старых файлов, начиная с ссылки, предоставленной Майклом К , затем продолжил создать папку с текущей датой на USB-диске, приостановить все активные виртуальные машины (здесь абсолютно нет необходимости в 100% времени безотказной работы, компания работает с 9:00 до 18:00) и скопировать туда все / var / lib / libvirt, а затем возобновить работу виртуальных машин. и будь счастлив.
Вот сценарий.
#!/bin/bash
find /mnt/usbexterno/backup* -maxdepth 0 -type d -mtime +15 -exec rm -rf {} \;
virsh list | sed '1,2d' | cut -d' ' -f3>/tmp/vmlist
VMLIST=$(cat /tmp/vmlist)
set -- $VMLIST
for i in $VMLIST
do
/usr/bin/virsh suspend $1
shift
done
mkdir /mnt/usbexterno/`date +backup-%Y-%m-%d`
cp -Rv /var/lib/libvirt /mnt/usbexterno/`date +backup-%Y-%m-%d`
set -- $VMLIST
for i in $VMLIST
do
/usr/bin/virsh resume $1
shift
done
rm /tmp/vmlist
Если у кого-нибудь есть какие-либо советы о том, как я могу улучшить это, пожалуйста, будьте моим гостем: D
Я бы подумал о сжатии виртуальной машины перед ее отправкой, но это именно то, что я делал.
О, вы можете также подумать о сохранении XML-файла (/etc/libvert/qemu/
).
Я бы согласился, хотя ваша стратегия резервного копирования работает, но она может быть не самой лучшей.
IMO - это не так уж много уникального для Виртуальной машины, и вам доступно несколько стратегий резервного копирования.
См. Руководство по Ubuntu Server - Резервное копирование
. Стратегия резервного копирования зависит от того, какие серверы вы используете. Обычно на сервере я создаю резервную копию данных (таких как / var / www и базы данных), любые файлы конфигурации, которые я редактирую вручную (я сохраняю копию исходного файла и отредактированный файл в / root), а также список все установленные пакеты (при необходимости вы можете восстановить их из списка пакетов).
Как вы можете догадаться из некоторых моих постов, я фанат rsync;)