kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。 要使用镜像功能,磁盘格式必须为qcow2。下面开始kvm虚拟机快照备份的过程
1,查看现有磁盘镜像格式与转换
(1)查看现有磁盘的格式
1
2
3
4
5
|
[root@KVM
test
]
# qemu-img info hadoop3.img
image: hadoop3.img
file
format
: raw
virtual size: 10G (10737418240 bytes)
disk size: 877M
|
把raw格式转换成qcow2格式
(2)关闭需要转换磁盘的虚拟机
1
2
3
4
5
6
7
8
9
10
|
[root@KVM
test
]
# virsh destroy hadoop3
Domain hadoop3 destroyed
[root@KVM
test
]
# virsh list --all
Id Name State
----------------------------------------------------
1 win7 running
6 hadoop2 running
- hadoop1 shut off
- hadoop3 shut off
- hadoop4 shut off
|
(3)转换磁盘的格式
1
|
[root@KVM
test
]
# qemu-img convert -f raw -O qcow2 hadoop3.img hadoop3.qcow2
|
-f 源镜像的格式
-o 目标镜像的格式
查看转换后的格式,已经转换成了qcow2, 这里是拷贝一份,并将格式转成qcow2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@KVM
test
]
# qemu-img convert -f raw -O qcow2 hadoop3.img hadoop3.qcow2
[root@KVM
test
]
# ll
total 14975352
-rwxr-xr-x 1 root root 10737418240 Feb 4 14:38 hadoop1.img
-rwxr-xr-x 1 qemu qemu 10737418240 Feb 4 16:51 hadoop2.img
-rwxr-xr-x 1 root root 10737418240 Feb 4 16:48 hadoop3.img
-rw-r--r-- 1 root root 923926528 Feb 4 16:51 hadoop3.qcow2
-rwxr-xr-x 1 root root 10737418240 Feb 4 15:11 hadoop4.img
-rwxr-xr-x 1 qemu qemu 8589934592 Feb 2 15:03 win7.img
[root@KVM
test
]
# qemu-img info hadoop3.qcow2
image: hadoop3.qcow2
file
format
: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 881M
cluster_size: 65536
|
2,修改虚拟机配置文件
1
|
[root@KVM qemu]
# virsh edit hadoop3
|
<domain type='qemu'>
<name>hadoop3</name>
<uuid>586b3cae-943f-e283-d8e7-ed72b01bfa34</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.6.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='localtime'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/images/test/hadoop3.qcow2'/>
<target dev='hda' bus='ide'/>
3,对虚拟机进行快照管理
(1)对hadoop3虚拟机创建快照
1
2
|
[root@KVM qemu]
# virsh snapshot-create hadoop3
Domain snapshot 1454577228 created
|
(2)查看虚拟机快照的版本
1
2
3
4
|
[root@KVM qemu]
# virsh snapshot-list hadoop3
Name Creation Time State
------------------------------------------------------------
1454577228 2016-02-04 17:13:48 +0800 shutoff
|
(3)查看当前虚拟机镜像快照的版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
[root@KVM qemu]
# virsh snapshot-current hadoop3
<domainsnapshot>
<name>1454577442<
/name
>
<state>shutoff<
/state
>
<parent>
<name>1454577228<
/name
>
<
/parent
>
<creationTime>1454577442<
/creationTime
>
<memory snapshot=
'no'
/>
<disks>
<disk name=
'hda'
snapshot=
'internal'
/>
<disk name=
'hdc'
snapshot=
'no'
/>
<
/disks
>
<domain
type
=
'qemu'
>
<name>hadoop3<
/name
>
<uuid>586b3cae-943f-e283-d8e7-ed72b01bfa34<
/uuid
>
<memory unit=
'KiB'
>1048576<
/memory
>
<currentMemory unit=
'KiB'
>1048576<
/currentMemory
>
<vcpu placement=
'static'
>1<
/vcpu
>
<os>
<
type
arch=
'x86_64'
machine=
'rhel6.6.0'
>hvm<
/type
>
<boot dev=
'hd'
/>
<
/os
>
<features>
<acpi/>
<apic/>
<pae/>
<
/features
>
<clock offset=
'localtime'
/>
<on_poweroff>destroy<
/on_poweroff
>
<on_reboot>restart<
/on_reboot
>
<on_crash>restart<
/on_crash
>
<devices>
<emulator>
/usr/libexec/qemu-kvm
<
/emulator
>
<disk
type
=
'file'
device=
'disk'
>
<driver name=
'qemu'
type
=
'qcow2'
cache=
'none'
/>
<
source
file
=
'/images/test/hadoop3.qcow2'
/>
<target dev=
'hda'
bus=
'ide'
/>
<address
type
=
'drive'
controller=
'0'
bus=
'0'
target=
'0'
unit=
'0'
/>
<
/disk
>
<disk
type
=
'block'
device=
'cdrom'
>
<driver name=
'qemu'
type
=
'raw'
/>
<target dev=
'hdc'
bus=
'ide'
/>
<
readonly
/>
<address
type
=
'drive'
controller=
'0'
bus=
'1'
target=
'0'
unit=
'0'
/>
<
/disk
>
<controller
type
=
'usb'
index=
'0'
model=
'ich9-ehci1'
>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x04'
function
=
'0x7'
/>
<
/controller
>
<controller
type
=
'usb'
index=
'0'
model=
'ich9-uhci1'
>
<master startport=
'0'
/>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x04'
function
=
'0x0'
multifunction=
'on'
/>
<
/controller
>
<controller
type
=
'usb'
index=
'0'
model=
'ich9-uhci2'
>
<master startport=
'2'
/>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x04'
function
=
'0x1'
/>
<
/controller
>
<controller
type
=
'usb'
index=
'0'
model=
'ich9-uhci3'
>
<master startport=
'4'
/>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x04'
function
=
'0x2'
/>
<
/controller
>
<controller
type
=
'ide'
index=
'0'
>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x01'
function
=
'0x1'
/>
<
/controller
>
<interface
type
=
'network'
>
<mac address=
'52:54:00:fe:f5:a3'
/>
<
source
network=
'default'
/>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x03'
function
=
'0x0'
/>
<
/interface
>
<serial
type
=
'pty'
>
<target port=
'0'
/>
<
/serial
>
<console
type
=
'pty'
>
<target
type
=
'serial'
port=
'0'
/>
<
/console
>
<input
type
=
'mouse'
bus=
'ps2'
/>
<graphics
type
=
'vnc'
port=
'5913'
autoport=
'no'
listen=
'0.0.0.0'
>
<listen
type
=
'address'
address=
'0.0.0.0'
/>
<
/graphics
>
<video>
<model
type
=
'cirrus'
vram=
'9216'
heads=
'1'
/>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x02'
function
=
'0x0'
/>
<
/video
>
<memballoon model=
'virtio'
>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x05'
function
=
'0x0'
/>
<
/memballoon
>
<
/devices
>
<
/domain
>
<
/domainsnapshot
>
|
(4)查看当前虚拟机镜像文件,快照文件的路径在/var/lib/libvirt/qemu/snapshot/ 下
1
2
3
4
|
[root@KVM qemu]
# ll /var/lib/libvirt/qemu/snapshot/hadoop3/
total 8
-rw------- 1 root root 3402 Feb 4 17:17 1454577228.xml
-rw------- 1 root root 3453 Feb 4 17:17 1454577442.xml
|
4,恢复虚拟机快照
(1)恢复虚拟机快照必须关闭虚拟机
1
2
3
4
5
6
7
8
|
[root@KVM qemu]
# virsh list --all
Id Name State
----------------------------------------------------
1 win7 running
6 hadoop2 running
- hadoop1 shut off
- hadoop3 shut off
- hadoop4 shut off
|
(2)确认恢复快照的时间,这里是恢复到1454577442
1
2
3
4
5
|
[root@KVM qemu]
# virsh snapshot-list hadoop3
Name Creation Time State
------------------------------------------------------------
1454577228 2016-02-04 17:13:48 +0800 shutoff
1454577442 2016-02-04 17:17:22 +0800 shutoff
|
(3)执行恢复,并确认恢复版本
1
2
|
[root@KVM qemu]
# virsh snapshot-revert hadoop3 1454577442
[root@KVM qemu]
# virsh snapshot-current hadoop3
|
5,删除虚拟机快照
(1)查看虚拟机快照
1
2
3
4
5
6
7
8
9
10
|
[root@KVM
test
]
# qemu-img info hadoop3.qcow2
image: hadoop3.qcow2
file
format
: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 881M
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 1454577228 0 2016-02-04 17:13:48 00:00:00.000
2 1454577442 0 2016-02-04 17:17:22 00:00:00.000
|
(2)删除快照
1
2
3
4
5
6
7
8
9
10
11
|
[root@KVM
test
]
# virsh snapshot-delete hadoop3 1454577228
Domain snapshot 1454577228 deleted
[root@KVM
test
]
# qemu-img info hadoop3.qcow2
image: hadoop3.qcow2
file
format
: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 881M
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
2 1454577442 0 2016-02-04 17:17:22 00:00:00.000
|
至此虚拟机快照从创建,查看,删除。如果有报错,再一一的进行拍错。
本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1741125