关键字
文章内容
Snapshot在virsh和qemu-img中的使用
 
 
修改时间:[2013/06/06 12:50]    阅读次数:[3329]    发表者:[沩筱]
 

1。创建快照

virsh snapshot-create-as --domain rhel6 --name 2012-03-08 --description "Pure Rhel6"

2。查看快照

virsh snapshot-list rhel6

3。查看快照配置

virsh snapshot-current rhel6

4。回复快照位置

virsh snapshot-revert rhel6 2012-03-08

5。删除快照

birsh snapshot-delete rhel6 2012-03-08

6。获取帮助

virsh help snapshot

=============================================================



使用libvirt创建的虚拟机,默认格式为raw,要想使用快照功能,需要先将其转换格式。

1:qemu-img snapshot -c  base_sys_centos5.564bit.img  CentOS5.5_64bit.img
在现有镜像基础上创建一个快照。
报如下错误:
emu-img: Could not create snapshot 'base_sys_centos5.564bit.img': -95 (Operation not supported)

2:怀疑是文件格式不对,查看一下。
qemu-img  info   CentOS5.5_64bit.img
image: CentOS5.5_64bit.img
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 3.4G

果然是raw格式

3:使用如下命令将raw格式的镜像转化为qcow2格式。
qemu-img  convert  -f raw  -O qcow2   CentOS5.5_64bit.img   CentOS5.5_64bit_basesys_qcow2.img

4:转换成功后,再次对镜像创建一个快照

qemu-img snapshot -c CentOS5.5_64bit_Qcow2_basesys.img CentOS5.5_64bit_Qcow2.img

OK,创建成功。

该步并不会创建一个新的镜像,可以使用如下命令来查看指定的镜像上是否存在快照,并在合适的时候,恢复快照。

qemu-img snapshot -l CentOS5.5_64bit_Qcow2.img

Snapshot list:
ID     TAG           VM SIZE           DATE     VM CLOCK
1      CentOS5.5_64bit_Qcow2_basesys.img    0 2011-07-21 23:17:38  00:00:00.000

恢复快照:

qemu-img snapshot  -a  CentOS5.5_64bit_Qcow2_basesys.img   CentOS5.5_64bit_Qcow2.img

其他操作:

'snapshot' is the name of the snapshot to create, apply or delete
'-a' applies a snapshot (revert disk to saved state)
'-c' creates a snapshot
'-d' deletes a snapshot
'-l' lists all snapshots in the given image


一、kvm快照与恢复
1、为原虚拟机所在的lv做一个快照。
lvcreate -L 2G -sn kvmSS /dev/vg/kvm (一般快照大小是宿主的15-20%)
2、修改/etc/libvirt/qemu/虚拟机名.xml,将此配置文件里虚拟机lv名,改成虚拟机快照名。
vim /etc/libvirt/qemu/虚拟机名.xml
<source dev=‘虚拟机快照名’>
3、重启动计算机,即可使用快照虚拟机。
4、恢复,当快照虚拟机弄乱或弄坏了,可以直接用回原始的虚拟机做一个快照,再用上面同样的方法,指向这新建的快照。

二、快速制造多台虚拟机
1、为原虚拟机所在的lv做一个快照。
lvcreate -L 2G -sn kvmSS /dev/vg/kvm (一般快照大小是宿主的15-20%)
2、复制/etc/libvirt/qemu/虚拟机名.xml并改名为/etc/libvirt/qemu/虚拟机名1.xml
cp /etc/libvirt/qemu/虚拟机名.xml /etc/libvirt/qemu/虚拟机名1.xml
3、修改 /etc/libvirt/qemu/虚拟机名1.xml
vim /etc/libvirt/qemu/虚拟机1.xml (修改一下几项,随便改只要与原来不一样就可以了。)比如:
<name>1kvmSS</name>
<uuid>395ae05e-c118-e460-4de4-7f58e08f8aa1</uuid>
<source dev=‘虚拟机快照名’>
<mac address='52:54:00:a7:11:cb'/>
4、virsh define 虚拟机名1.xml (定义虚拟机)
5、virsh start 虚拟机名1 (新的虚拟机就可以使用啦。呵呵)

如果遇到虚拟机网卡启动失败提示device eth0 does not seem
可以ifconfig -a 查看网卡的名字是否不是eth0.
如果不是,ip link set ethX name eth0


virsh常用命令一览表

命令说明
help显示该命令的说明
quit结束 virsh,回到 Shell
connect连接到指定的虚拟机服务器
create启动一个新的虚拟机
destroy删除一个虚拟机
start开启(已定义的)非启动的虚拟机
define从 XML 定义一个虚拟机
undefine取消定义的虚拟机
dumpxml转储虚拟机的设置值
list列出虚拟机
reboot重新启动虚拟机
save存储虚拟机的状态
restore回复虚拟机的状态
suspend暂停虚拟机的执行
resume继续执行该虚拟机
dump将虚拟机的内核转储到指定的文件,以便进行分析与排错
shutdown关闭虚拟机
setmem修改内存的大小
setmaxmem设置内存的最大值
setvcpus修改虚拟处理器的数量

查看Domain信息执行的命令
命令说明
domid查看虚拟机的标识符
domname查看虚拟机的名称
domuuid查看虚拟机的 UUID
domstate查看虚拟机目前的状态
dominfo查看虚拟机的信息