Если я на хостовой системе сделаю снимок с 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.
Снапшот в KVM
живой снепшот пока что не поддерживается. то есть снять можно, но ВМ продолжит бежать как бежала, и не перескочит на снепшот.
да и технология не так проста как кажется - http://wiki.qemu.org/Features/Snapshots
так что пока что надо останавливать ВМ, брать снепшот и перенапрявлять ВМ на снепшот вместо основного имиджа при следующем запуске
ну или пользоваться либвиртом, он сам все умеет. или если совсем по хорошему - переходить на более серьезную систему управления, например оВирт - http://wiki.ovirt.org/wiki/Live_Snapshots
Если я остановлю ВМ, сделаю снапшот как сделал выше, и запущу снова виртуалку, то работа ОС продолжит как и было работать?
Приспичет мне откатиться, я же могу просто запустить ВМ со снапшота, указав в XML файле путь к нему?
З.Ы. ovirt можно накатить на систему где работают ВМ на KVM? Что бы не порушить чего бы.
Если я остановлю ВМ, сделаю снапшот как сделал выше, и запущу снова виртуалку, то работа ОС продолжит как и было работать?
конечно. только надо будет в настройках ВМ изменить путь к диску на путь к снепшоту. Откат такой же - останавливаем ВМ, меняем путь к снепшоту на путь к более раннему снепшоту или к основному диску, и включаемся.
надо только быть осторожным - если откатиться назад, то имиджи более поздних снепшотов надо стирать, чтоб не занимали место. Ну и чтоб не попытаться на них включиться снова, и не удивиться - они окажутся испорченными, потому что имиджи на которых они полагались изменились
З.Ы. ovirt можно накатить на систему где работают ВМ на KVM? Что бы не порушить чего бы.
нет, овирт надо планировать как систему, это инфраструктура а не пакет который можно поставить и снести
нет, овирт надо планировать как систему, это инфраструктура а не пакет который можно поставить и снести
Ну у меня пока только две ВМ крутятся на CentOS 6.2. Может мне еще не поздно переехать на oVirt? Я так понимаю там администрирование идет средствами web интерфейса?
овирт требует дополнительного железа
управляющий сервер, централизированный сторедж... короче это система для сотен и тысяч ВМ на сотнях хостов
Все ясно. Не буду рыпаться. Спасибо за помощь. Переделал raw в qcow2. Снимаю теперь без перезапуска. Просто на этой ВМ крутятся сайты и скорость там думаю не критический параметр.
а толку от такого съема без перезапуска? ВМ продолжает крутиться в основном имидже, откат невозможен
ну как не возможен? откатываемся с помощью virsh к нужному снимку.
Или я что то не понимаю? При сьеме снимка, виртуалка становится не доступна на это время. Хромает матчасть?
virsh да, так работает. хотя опять же это не нормальный живой снепшот, и откат при нагруженной ВМ может привести к потере информации. я думал снепшот делается руками, через qemu-img - тогда ВМ не подхватит снепшот и ничего не изменится вообще.
для нормального ЖИВОГО снепшота, нужна поддержка внутри гостевой системы, агент который заставит весь in-flight IO записаться на диск перед тем как снимется снепшот. Иначе при откате окажется что на диске нет информации которая на момент снятия снепшота была еще в памяти и записалась уже в снепшот а не в предыдущий имидж
Как узнать есть ли потдержка такая в гостевой? Важно что бы информация из памяти тоже писалась, а не отбразывалась.
это не поддержка в гостевой а дополнительный агент который общается с хостом, и которому хост говорит что надо сделать quiesce, перед тем как снять снепшот живьем. в RHEV 3.1 это делает RHEV guest agent, в апстриме qemu, это должен делать qemu-ga, но по моему пока это только планы на бумаге (я все таки намного ближе к энтерпрайз решениям, и апстримовые дела стараюсь не трогать - просто времени на все нет)