LinuxForum.Fans
Тема

Снапшот в KVM

Автор: XliN 14 сообщений 7066 просмотров
#264828

Если я на хостовой системе сделаю снимок с raw образа, при запущенной виртуалке, он сделается корректно?
Например
Сам образ ВМ:
[console]qemu-img info /home/xlin/iso/images/mageia.img
image: /home/xlin/iso/images/mageia.img
file format: raw
virtual size: 488G (524288000000 bytes)
disk size: 26G[/console]
Делаю снимок
[console]qemu-img create -f qcow2 -b /home/xlin/iso/images/mageia.img /home/xlin/iso/images/bakcup/mageia_snap2.img
Formatting '/home/xlin/iso/images/bakcup/mageia_snap2.img', fmt=qcow2 size=524288000000 backing_file='/home/xlin/iso/images/mageia.img' encryption=off cluster_size=65536[/console]
Вот что получилось
[console] qemu-img info /home/xlin/iso/images/bakcup/mageia_snap2.img
image: /home/xlin/iso/images/bakcup/mageia_snap2.img
file format: qcow2
virtual size: 488G (524288000000 bytes)
disk size: 140K
cluster_size: 65536
backing file: /home/xlin/iso/images/mageia.img (actual path: /home/xlin/iso/images/mageia.img)[/console]

В итоге, если сравнивать два снимка, первый до обновления программ, второй после.
[console][root@micro bakcup]# stat mageia_snap1.img
File: «mageia_snap1.img»
Size: 262144 Blocks: 280 IO Block: 4096 обычный файл
Device: fd02h/64770d Inode: 88604699 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-14 16:09:06.351212094 +0400
Modify: 2012-07-11 08:42:59.518005086 +0400
Change: 2012-07-11 08:42:59.518005086 +0400


[root@micro bakcup]# stat mageia_snap2.img
File: «mageia_snap2.img»
Size: 262144 Blocks: 280 IO Block: 4096 обычный файл
Device: fd02h/64770d Inode: 88604700 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-14 16:12:27.701993872 +0400
Modify: 2012-07-14 16:09:17.237997519 +0400
Change: 2012-07-14 16:09:17.237997519 +0400
[/console]
В итоге размер у них одинаковый. Или все таки гостевую систему надо останавливать?

З.Ы. Попутно. Как потом из этих снимков откатиться? Знаю как работать с qcow2, но не с raw.

#264830

живой снепшот пока что не поддерживается. то есть снять можно, но ВМ продолжит бежать как бежала, и не перескочит на снепшот.
да и технология не так проста как кажется - http://wiki.qemu.org/Features/Snapshots

так что пока что надо останавливать ВМ, брать снепшот и перенапрявлять ВМ на снепшот вместо основного имиджа при следующем запуске

ну или пользоваться либвиртом, он сам все умеет. или если совсем по хорошему - переходить на более серьезную систему управления, например оВирт - http://wiki.ovirt.org/wiki/Live_Snapshots

#264831

Если я остановлю ВМ, сделаю снапшот как сделал выше, и запущу снова виртуалку, то работа ОС продолжит как и было работать?

Приспичет мне откатиться, я же могу просто запустить ВМ со снапшота, указав в XML файле путь к нему?

З.Ы. ovirt можно накатить на систему где работают ВМ на KVM? Что бы не порушить чего бы.

#264833
"XliN" написал:
Если я остановлю ВМ, сделаю снапшот как сделал выше, и запущу снова виртуалку, то работа ОС продолжит как и было работать?

конечно. только надо будет в настройках ВМ изменить путь к диску на путь к снепшоту. Откат такой же - останавливаем ВМ, меняем путь к снепшоту на путь к более раннему снепшоту или к основному диску, и включаемся.

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

#264834
"XliN" написал:
З.Ы. ovirt можно накатить на систему где работают ВМ на KVM? Что бы не порушить чего бы.

нет, овирт надо планировать как систему, это инфраструктура а не пакет который можно поставить и снести

#264836
"dyasny" написал:
нет, овирт надо планировать как систему, это инфраструктура а не пакет который можно поставить и снести

Ну у меня пока только две ВМ крутятся на CentOS 6.2. Может мне еще не поздно переехать на oVirt? Я так понимаю там администрирование идет средствами web интерфейса?

#264853

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

#264855

Все ясно. Не буду рыпаться. Спасибо за помощь. Переделал raw в qcow2. Снимаю теперь без перезапуска. Просто на этой ВМ крутятся сайты и скорость там думаю не критический параметр.

#264857

а толку от такого съема без перезапуска? ВМ продолжает крутиться в основном имидже, откат невозможен

#264859

ну как не возможен? откатываемся с помощью virsh к нужному снимку.

#264862

Или я что то не понимаю? При сьеме снимка, виртуалка становится не доступна на это время. Хромает матчасть?

#264879

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

для нормального ЖИВОГО снепшота, нужна поддержка внутри гостевой системы, агент который заставит весь in-flight IO записаться на диск перед тем как снимется снепшот. Иначе при откате окажется что на диске нет информации которая на момент снятия снепшота была еще в памяти и записалась уже в снепшот а не в предыдущий имидж

#264880

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

#264881

это не поддержка в гостевой а дополнительный агент который общается с хостом, и которому хост говорит что надо сделать quiesce, перед тем как снять снепшот живьем. в RHEV 3.1 это делает RHEV guest agent, в апстриме qemu, это должен делать qemu-ga, но по моему пока это только планы на бумаге (я все таки намного ближе к энтерпрайз решениям, и апстримовые дела стараюсь не трогать - просто времени на все нет)

Войдите или зарегистрируйтесь, чтобы ответить.