Резервное копирование сервера VM на внешний USB-накопитель

У меня есть сервер ubuntu 10.04, на котором запущены мои виртуальные машины на kvm / qemu. Я вручную приостанавливал свои виртуальные машины (используя virt-manager gui), а затем копировал папку / var / lib / libvirt на внешний USB-накопитель в / mnt / usbexterno. Это, безусловно, далеко не идеально. Мне нужно решение для запуска резервного копирования каждую ночь.

Мне нужно использовать задание cron со сценарием для приостановки виртуальных машин и копирования файлов на диск. Я читал на форуме, что я мог бы использовать virsh, чтобы сохранить состояние виртуальной машины в файл, но я не думаю, что это то, что мне нужно, так как я хочу, чтобы полная резервная копия всего останова была на сервере!

Итак, короткая версия. Мне нужно что-то, чтобы запускать ежедневную резервную копию моих виртуальных машин на внешний USB-накопитель, виртуальные машины могут быть приостановлены в течение ночи. На сервере нет графического интерфейса.

Любые предложения?

1
задан 19 December 2011 в 19:47

4 ответа

Потратил меня на то, чтобы вернуться к этому, извините всех, кто дал мне советы. Вот решение, в котором я закончил.

Так как я до сих пор не понял концепцию моментального снимка / восстановления снимка (да, я очень толстый), я создал скрипт для удаления старых файлов, начиная с ссылки, которая 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]

1
ответ дан 25 May 2018 в 15:49

Если ваша виртуальная машина называется «FooVM», вы можете создать моментальный снимок, используя:

VBoxManage snapshot FooVM take FooVM_Snapshot1

. С помощью командной строки вы можете настроить, где хранить снимки:

VBoxManage configvm FooVM --snapshotfolder /media/foostick/foofolder

Однако следите за тем, чтобы жесткий диск UBS был доступен все время.

Вы можете автоматизировать резервное копирование с использованием заданий cron. И нет необходимости отключать виртуальные машины.

1
ответ дан 25 May 2018 в 15:49

Я бы рассмотрел сжатие виртуальной машины перед ее отправкой, но это именно то, что я делал.

О, вы можете захотеть также сохранить файл xml (/etc/libvert/qemu/).

1
ответ дан 25 May 2018 в 15:49

Я бы с удовольствием согласился, хотя ваша стратегия резервного копирования работает, возможно, она не самая лучшая.

IMO не так много, что обязательно уникально для виртуальной машины, и существует несколько стратегий резервного копирования

См. Руководство по серверу Ubuntu - Резервные копии

Стратегия резервного копирования зависит от того, на каких серверах вы работаете. В общем, на сервере я резервирую данные (например, / var / www и базы данных), любые файлы конфигурации, которые я вручную редактирую (сохраняю копию исходного файла и отредактированный файл в / root), а также список все установленные пакеты (вы можете восстановить из списка пакетов, если это необходимо).

Как вы можете догадаться из некоторых моих сообщений, я являюсь поклонником rsync;)

0
ответ дан 25 May 2018 в 15:49

Другие вопросы по тегам:

Похожие вопросы: