semperN пишет:как это сделать через libvirtd? не совсем понятно
никак, libvirtd это демон который за сторедж не отвечает.
средствами libvirt API, насколько я знаю, это не поддерживается, но это не значит что
1. форматы этого не умеют
2. qemu-img этого не умеет
более продвинутые системы управления чем простой либвирт это как раз умеют, и работают именно так из коробки.
semperN пишет:qcow2 еще есть плюс что он имеет размер сколько использует виртуальная машина. А raw дашь 20 Гб он и будет занимать 20 хотя хостовая система его заполняет на 5 Гб.
это называется sparse image, и тоже имеет ряд дополнительных минусов по сравнению с обычным raw - на оверхед лишней метадаты qcow2 (плюс COW алгоритм для работы собственно в снепшотах) накладывается надобность расширять диск когда он дорастает до нужного размера. по умолчанию "шаг" роста - 4к, что может очень сильно ударить по скорости записи когда большое кол-во информации надо быстро записать на sparse диск. Ну и конечно файловая система должна поддерживать sparse files.
на LVM вообще нет механизма, и приходится мониторить LV внешними средствами, и делать lvextend по мере надобности, а это операция не из "дешевых" в плане ресурсов.
Это опять же ограничение не конкретно qemu, но и любой другой системы, и qcow можно спокойно заменить на vmdk/vhd/etc...
поэтому "боевые" ВМ я всегда ставлю на raw и сразу определяю им именно столько места сколько им понадобится. Благо диски в наше время не дорогие. Если же ВМ тестовый, и важнее сэкономить место на диске чем обеспечить стабильность и скорость, то конечно можно работать на sparse
XliN пишет:Ага, и virsh с raw не умеет снимать снапшоты. Есть где то хавтушка с приведенным выше примером? Как это реализовать на практике.
[root@darth Virt]# qemu-img create -f raw base.raw 1024M
Formatting 'base.raw', fmt=raw size=1073741824
[root@darth Virt]# ls -lsa
0 -rw-r--r-- 1 root root 1073741824 May 15 13:43 base.raw
[root@darth Virt]# qemu-img create -f qcow2 -b base.raw snap1.img
Formatting 'snap1.img', fmt=qcow2 size=1073741824 backing_file='base.raw' encryption=off cluster_size=65536
[root@darth Virt]# ls -lsa
total 17907792
0 -rw-r--r-- 1 root root 1073741824 May 15 13:43 base.raw
136 -rw-r--r-- 1 root root 197120 May 15 13:50 snap1.img
[root@darth Virt]# qemu-img info snap1.img
image: snap1.img
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 136K
cluster_size: 65536
backing file: base.raw (actual path: base.raw)
Ну и вообще, Лигуори много об этом пишет:
http://wiki.qemu.org/Features/Snapshots2