У меня есть сервер ubuntu 10.04, на котором запущены мои виртуальные машины на kvm / qemu. Я вручную приостанавливал свои виртуальные машины (используя virt-manager gui), а затем копировал папку / var / lib / libvirt на внешний USB-накопитель в / mnt / usbexterno. Это, безусловно, далеко не идеально. Мне нужно решение для запуска резервного копирования каждую ночь.
Мне нужно использовать задание cron со сценарием для приостановки виртуальных машин и копирования файлов на диск. Я читал на форуме, что я мог бы использовать virsh, чтобы сохранить состояние виртуальной машины в файл, но я не думаю, что это то, что мне нужно, так как я хочу, чтобы полная резервная копия всего останова была на сервере!
Итак, короткая версия. Мне нужно что-то, чтобы запускать ежедневную резервную копию моих виртуальных машин на внешний USB-накопитель, виртуальные машины могут быть приостановлены в течение ночи. На сервере нет графического интерфейса.
Любые предложения?
Потратил меня на то, чтобы вернуться к этому, извините всех, кто дал мне советы. Вот решение, в котором я закончил.
Так как я до сих пор не понял концепцию моментального снимка / восстановления снимка (да, я очень толстый), я создал скрипт для удаления старых файлов, начиная с ссылки, которая Michael K предоставил, затем приступил к созданию папки с сегодняшней датой на USB-накопителе, приостановив все активные виртуальные машины (абсолютно без необходимости на 100% времени работы здесь, компания работает с 9 утра до 6 вечера) и копирует все / 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 [ ! d4]
Если ваша виртуальная машина называется «FooVM», вы можете создать моментальный снимок, используя:
VBoxManage snapshot FooVM take FooVM_Snapshot1
. С помощью командной строки вы можете настроить, где хранить снимки:
VBoxManage configvm FooVM --snapshotfolder /media/foostick/foofolder
Однако следите за тем, чтобы жесткий диск UBS был доступен все время.
Вы можете автоматизировать резервное копирование с использованием заданий cron. И нет необходимости отключать виртуальные машины.
Я бы рассмотрел сжатие виртуальной машины перед ее отправкой, но это именно то, что я делал.
О, вы можете захотеть также сохранить файл xml (/etc/libvert/qemu/).
Я бы с удовольствием согласился, хотя ваша стратегия резервного копирования работает, возможно, она не самая лучшая.
IMO не так много, что обязательно уникально для виртуальной машины, и существует несколько стратегий резервного копирования
См. Руководство по серверу Ubuntu - Резервные копии
Стратегия резервного копирования зависит от того, на каких серверах вы работаете. В общем, на сервере я резервирую данные (например, / var / www и базы данных), любые файлы конфигурации, которые я вручную редактирую (сохраняю копию исходного файла и отредактированный файл в / root), а также список все установленные пакеты (вы можете восстановить из списка пакетов, если это необходимо).
Как вы можете догадаться из некоторых моих сообщений, я являюсь поклонником rsync;)