LINUX.ORG.RU
ФорумAdmin

Как правильно бекапить виртуалки с виндой

 ,


0

2

Добрый день. Есть KVM (centos 6.3) на которой крутяться винды. как правильно бэкапить эти виртуалки (виртуалки представляют из себя img файлы, но я думаю либо на блочные перекинуть их либо на lvm). спасибо за внимание.


остановил винду, забэкапил образ, запустил винду.

Это самое тупое, самое жрущщее место, самое долгое, но самое простое.

true_admin ★★★★★
()

Если img файлы или блочное устройство то:

  • Остановить win;
  • Сделать копию файла;
  • Запустить win

Если LVM тома:

  • Создать snapshot LVM *;
  • Сделать копию;
  • Удалить snapshot;

* - в режиме snapshota скорость дисковой подсистемы просядет сильно, может появится синий экран смерти. Что бы попытаться это исключить, снимать рекомендую на отдельный быстрый жесткий диск и в ненагруженно время.

petav ★★★★★
()
Ответ на: комментарий от Ximen

shapshot не факт что содержит целостные данные. Это ведь слепок данных виртуального диска, а сколько информации при этом осталось у виртуалки в ее внутренней памяти - неизвестно. Думаю даже есть вероятность что венда с такого снапшота может и не запуститься.

VitalkaDrug ★★
()
Ответ на: комментарий от VitalkaDrug

Думаю даже есть вероятность что венда с такого снапшота может и не запуститься.

Это очень сильно вряд ли - и это в вас вендоненавистничество (ну или вендонеприязнь) говорит. Такое может быть разве что в случае глюка в механизме снятия снапшота, в результате которого тот будет содержать данные, как будто после сбоя питания во время активного дискового обмена в системных областях - и то не факт (очень давно не видел Windows, не поднявшийся после смбоя питания). И в наличии такого глюка в наше время я сомневаюсь.

Cyril ★★
()
Ответ на: комментарий от VitalkaDrug

snapshot аналог резкого power off, понятное дело. Как правило, винда переживает его нормально. Но вопрос был в том, что, если снапшотить lvm не останавливая, то почему бы не снапшотить точно так же и файлы, qemu, вроде, умеет такое.

Ximen ★★★★
()
Ответ на: комментарий от berrywizard

Вообще-то, конфигурацию VM тоже скопировать не мешало бы

Поддерживаю

petav ★★★★★
()
Последнее исправление: petav (всего исправлений: 1)
Ответ на: комментарий от Cyril

а при чём здесь винда? неконсистентный бэкап в случае копирования только содержимого диска работающей системы - явление одинаково возможное для любой ОСи.

Грамотный подход к бэкапу виртуалки без прерывания - многоэтапный процесс: копирование образа диска, пауза виртуалки, копирование содержимого памяти, копирование накопившихся изменений на диске, старт виртуалки. При восстановлении восстанавливается образ диска и образ памяти.

gorilych ★★
()
Ответ на: комментарий от gorilych

Какой-то это очень странный процесс - в части содержимого памяти. Как копирования, так и восстановления. Вы уверены, что вы это делаете осмысленно?

Cyril ★★
()
Ответ на: комментарий от Cyril

состояние работающей машины описывается содержимым памяти и диска, что тут непонятного? Потому что содержимое файлов во время работы может оказаться в ОЗУ, и если его не сохранить вы получите неконсистентную копию.

Простой пример: приложение хранит конфигурацию в файлах А и Б. В А - список переменных, в Б - список значений. Приложение формирует в ОЗУ список переменных, записывает в А. Приложение формирует список значений, а в это время делается бэкап только содержимого диска. После восстановления приложение читает файл А но не видит файл Б и отказывается работать.

gorilych ★★
()
Ответ на: комментарий от vinnni

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

быстрый гуглёж показывает, что kvm вроде как умеет suspend'ить машинки, то есть останавливать их и сохранять образ памяти на диск. Осталось только выяснить куда (гугл и доки вам в помощь) и попытаться запилить следующий алгоритм:

1) конфиги и диски виртуалок и диру, куда складывается образ памяти, храним на lvm volume, для которого настроен lvm backup

2) Процесс создания бэкапа:

а) делаем suspend б) делаем lvm snapshot

в) делаем resume

Всё! Все эти шаги занимают доли секунды, бэкап готов, а виртуалка заснула и проснулась, остановки сервисов не было.

3) Теперь можно спокойно подмонтировать lvm snapshot и скопировать бэкап в надёжное место. Snapshot удалить, дабы место не расходовалось.

gorilych ★★
()
Ответ на: комментарий от vinnni

Если найдешь решение, выложи его сюда. Хорошо?

kerneliq ★★★★★
()

Ну Вы блин даете! Вот уже недели две ведется обсуждение сабжа в соседнем треде!

Кратко резюмирую.

1. Делаем снимок состояния виртуальной машины средствами qemu.
2. Делает снимок LVM.
3. Копируем снимок LVM (файл .img или весь раздел в случае размещения гостя не в файле, а в разделе LVM).
4. Удаляем снимок LVM.
5. Удаляем снимок qemu.

При восстановлении гостя, загружаем снимок qemu из сохраненного снимка LVM и получаем работающую windoze на момент сохранения. Что позволяет к примеру, корректно выйти из 1С. Надеюсь никому не надо объяснять, что будет с базой, если выдернуть из под 1С табуретку во время, скажем, групповой обработки?

funky
()
Ответ на: комментарий от gorilych

Это всё понятно и очевидно. Но сохранение состояния виртуальной машины - это не совсем резервная копия в традиционном смысле. Особенно с учётом того, что в вашем примере за промежуток времени, разделяющий копирование файлов А и Б, может произойти изменение одного или обоих файлов, которое сделает имеющиеся их копии несоответствующими друг другу и снова обрушит наше приложение - и эта ситуация предложенным способом не обходится.

Cyril ★★
()
Ответ на: комментарий от Cyril

сохранение состояния виртуальной машины - это не совсем резервная копия в традиционном смысле

необосновано. Хранить и восстанавливать можно - как резервная копия служить может, плюс я не вижу определения «резервной копии в традиционном смысле».

в вашем примере за промежуток времени, разделяющий копирование файлов А и Б, может произойти изменение одного или обоих файлов

не может, мы же делаем suspend. И следовательно

не обходится.

Обходится-обходится, примите мои уверения. Live migration виртуалок в различных решениях (коммерческих в том числе) делается именно таким образом, это уже давно не теория, а практика.

gorilych ★★
()
Ответ на: комментарий от gorilych

Вообще да - про suspend я где-то упустил в ходе беседы.

Cyril ★★
()

А меня бы интересовал наиболее удобный способ бекапа именно файлов с диска винды (инициированный из линукса при остановке виртуалки).

gag ★★★★★
()
Ответ на: комментарий от gorilych

вы забыли один аспект - восстановление ВМ с сохраненным сотоянием (снимком памяти если угодно) вышибет табуретку из под всех служб зависящих от времени, а это, особенно в винде чревато. Намного правильнее было бы делать quiesce в госте, снимать снимок только с файловой системы, и восстанавливать именно эти данные, без состояния памяти.

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

служб зависящих от времени

например?

И что мешает отключить синхронизацию времени между хостом и виртуалкой?

gorilych ★★
()
Ответ на: комментарий от dyasny

хотя в основном вы правы, но это решение не кроссплатформенное, для винды один механизм, для линукса(ов) - другой(ие) и нет гарантии, что сработает.

gorilych ★★
()
Ответ на: комментарий от gorilych

например?

ну, при разговоре о времени напрашивается NTP - клиент при серьезном отрыве от реальности запаникует. если же смотреть на более реалистичные вещи, то все что касается керебероса более 5 минут разрыва по времени не переносит.

И что мешает отключить синхронизацию времени между хостом и виртуалкой?

при чем здесь это? у нас ведь не сферическая виртуалка в вакууме, она работает с сетью в которой есть другие службы. особенно винда, и особенно с керберосом

dyasny ★★★★★
()
Ответ на: комментарий от gorilych

хотя в основном вы правы, но это решение не кроссплатформенное, для винды один механизм, для линукса(ов) - другой(ие) и нет гарантии, что сработает.

дело не в платформе, то что я предложил сработает хоть на полуоси :)

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

Спасибо за инфу! Вот сколько раз тут уже в новостях сообщали о выходе новых версий qemu, virtualbox. О них и так все знают, а вот о действительно чём-то новеньком новостей нет.

gag ★★★★★
()
Ответ на: комментарий от gag

ну так не ЛОРом же единым :) на самом деле, на автора стоит обратить внимание - он пишет очень много интересных утилит вокруг виртуализации (да и вообще мужик серьезный)

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

ну, при разговоре о времени напрашивается NTP - клиент при серьезном отрыве от реальности запаникует.

С чего вдруг? Он ведь как-раз для того, чтоб синхронизировать. По крайней мере я таких проблем не наблюдал (синкал время, запоздавшее на пару лет, и ничего)

при чем здесь это? у нас ведь не сферическая виртуалка в вакууме, она работает с сетью в которой есть другие службы. особенно винда, и особенно с керберосом

Ну и чем в таком разе поможет quiesce? Какая разница, изза чего будет разница во времени, изза паузы изнутри (quiesce внутри виртуалки) или изза паузы снаружи (suspend на хосте). Или я не понимаю этого термина - quiesce.

Опять же я слабо себе представляю проблемы изза большого сдвига времени. Ну восстановиться виртуалка с неправильным временем, засинкает его и всё. Проблемы будут, если системное время после восстановления не исправится.

дело не в платформе, то что я предложил сработает хоть на полуоси

Но ведь механизм quiesce разный для разных ОСей?

В-общем, я этот термин первый раз слышу, и возможно, не понимаю о чём речь.

gorilych ★★
()
Ответ на: комментарий от gorilych

С чего вдруг? Он ведь как-раз для того, чтоб синхронизировать. По крайней мере я таких проблем не наблюдал (синкал время, запоздавшее на пару лет, и ничего)

а я как раз наблюдал. возможно дело в настройках

Ну и чем в таком разе поможет quiesce? Какая разница, изза чего будет разница во времени, изза паузы изнутри (quiesce внутри виртуалки) или изза паузы снаружи (suspend на хосте). Или я не понимаю этого термина - quiesce.

quiesce сбросит весь in flight IO на диск. ВМ запущенная с имиджем в таком состоянии будет иметь диск с полноценными данными при запуске. то есть так же как если бы просто выключили ВМ. без quiesce, целостносьт данных на диске может оказаться нарушенной, как если бы у работающего сервера выдернуть провод посреди работы, а потом его включить

Опять же я слабо себе представляю проблемы изза большого сдвига времени. Ну восстановиться виртуалка с неправильным временем, засинкает его и всё. Проблемы будут, если системное время после восстановления не исправится.

если она просто выключена и ее включить, синк будет on boot, и проблем случиться не должно. а вот если восстановить ее вместе с дампом памяти, вполне могут начаться чудеса. чтоб не говорить зря, попробуйте сами

Но ведь механизм quiesce разный для разных ОСей?

механизм разный, принцип одинаковый

В-общем, я этот термин первый раз слышу, и возможно, не понимаю о чём речь.

flush всех io операций на диск, с запретом на вызов новых, чтоб не потерять данные которые еще не попали на диск и еще сидят в памяти. механизм, кстати, разный даже не для платформ а для аппликаций

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

спасибо за разъяснение

если она просто выключена и ее включить, синк будет on boot, и проблем случиться не должно. а вот если восстановить ее вместе с дампом памяти, вполне могут начаться чудеса. чтоб не говорить зря, попробуйте сами

Регулярно пробую (suspend виртуалок в virtualbox, vmware для различных), проблем не видел. Более того, обычный suspend на ПК или ноуте - достаточно широко распространён, если не сказать больше. А ведь там тоже память - отдельно, диск - отдельно. И ничего, живут же люди. У моего ноута аптайм месяцами может измеряться, а в сон он по десять раз на дню уходит. Принципиальных отличий между восстановлением образа память+диск и выходом из сна не вижу.

механизм, кстати, разный даже не для платформ а для аппликаций

ну так я про это и говорил, что вместо однообразного способа для всех виртуалок вы предлагаете способ у которого реализация для каждой ОС/набора приложений - своя.

gorilych ★★
()
Ответ на: комментарий от gorilych

посмотрите что делают скрипты отправляющие ноут в саспенд. Они не только сбрасывают состояние памяти в файл, но и пытаются «утихомирить» все операции с диском. Что будет если файл с состоянием памяти пропадет? Да ничего страшного, просто перезагрузка, потому что данные потеряны не будут - они на диске.

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

vmware tools кстати как раз quiesce перед живым снепшотом и делают, и qemu-ga вроде тоже должен уже уметь (видел в листах разговор о разработке функционала)

ну так я про это и говорил, что вместо однообразного способа для всех виртуалок вы предлагаете способ у которого реализация для каждой ОС/набора приложений - своя.

см выше насчет qemu-ga

dyasny ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.