KVM 虚拟化技术(八) 之快照

栏目: 服务器 · 发布时间: 7年前

内容简介:kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。要使用镜像功能,磁盘格式必须为qcow2。##查看磁盘格式

kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。

要使用镜像功能,磁盘格式必须为qcow2。

##查看磁盘格式

[root@kvm images]# qemu-img info vm1.img 
image: vm1.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.4G

转换格式

[root@kvm images]# qemu-img convert -f raw -O qcow2 vm1.img vm1.qcow2
root@kvm images]# ls
vm1.img  vm1.qcow2  vm2.img
[root@kvm images]# qemu-img info vm1.qcow2 
image: vm1.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.2G
cluster_size: 65536

修改配置文件

[root@kvm images]# virsh edit vm1

修改

<disk type='file' device='disk'>
    <driver name='qemu' type='qcow2' cache='none'/>
    <source file='/home/kvm/images/vm1.qcow2'/>
    <target dev='hda' bus='ide'/>
    <address type='drive' controller='0' bus='0' target='0' unit='0'/>
  </disk>

创建快照

与快照相关的命令

Snapshot (help keyword 'snapshot')
    snapshot-create                Create a snapshot from XML 
    snapshot-create-as             Create a snapshot from a set of args
    snapshot-current               Get or set the current snapshot 
    snapshot-delete                Delete a domain snapshot 
    snapshot-dumpxml               Dump XML for a domain snapshot
    snapshot-edit                  edit XML for a snapshot 
    snapshot-info                  snapshot information
    snapshot-list                  List snapshots for a domain
    snapshot-parent                Get the name of the parent of a snapshot
    snapshot-revert                Revert a domain to a snapshot

开始

[root@kvm images]# virsh snapshot-create vm1
Domain snapshot 1489950406 created
[root@kvm images]# virsh snapshot-list vm1
 Name                 Creation Time             State
------------------------------------------------------------
 1489950406           2017-03-20 03:06:46 +0800 shutoff

查看快照

[root@kvm images]# virsh snapshot-current vm1
<domainsnapshot>
  <name>1489950406</name>
  <state>shutoff</state>
  <creationTime>1489950406</creationTime>
  <memory snapshot='no'/>
  <disks>
    <disk name='hda' snapshot='internal'/>
    <disk name='hdc' snapshot='no'/>
  </disks>
  <domain type='kvm'>
    <name>vm1</name>
    <uuid>686c7566-e44d-6ab2-e98f-246e012fa39f</uuid>
    <memory unit='KiB'>1048576</memory>
    <currentMemory unit='KiB'>1048576</currentMemory>
    <vcpu placement='static'>2</vcpu>
    <os>
      <type arch='x86_64' machine='rhel6.6.0'>hvm</type>
      <boot dev='hd'/>
    </os>
    <features>
      <acpi/>
      <apic/>
      <pae/>
    </features>
    <clock offset='utc'/>
    <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='/home/kvm/images/vm1.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='bridge'>
        <mac address='52:54:00:3a:37:22'/>
        <source bridge='br0'/>
        <model type='virtio'/>
        <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='5910' autoport='no'/>
      <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>

快照文件在

[root@kvm images]# cd /var/lib/libvirt/qemu/snapshot/vm1/1489950406.xml

恢复快照

查看快照

[root@kvm ~]# virsh snapshot-list vm1
 Name                 Creation Time             State
------------------------------------------------------------
 1489950406           2017-03-20 03:06:46 +0800 shutoff

[root@kvm ~]# virsh snapshot-create vm1
Domain snapshot 1489951085 created
[root@kvm ~]# virsh snapshot-list vm1  
 Name                 Creation Time             State
------------------------------------------------------------
 1489950406           2017-03-20 03:06:46 +0800 shutoff
 1489951085           2017-03-20 03:18:05 +0800 shutoff

恢复快照是通过快照的对应id来恢复的。比如我们希望将虚拟机恢复至 2017-03-20 03:06:46,则我们需要知道对应的name是1489950406

使用snapshot-revert 参数 跟上虚拟机名称 后面跟上name

[root@kvm ~]# virsh snapshot-revert vm1 1489950406

[root@kvm ~]# virsh snapshot-list vm1             
 Name                 Creation Time             State
------------------------------------------------------------
 1489950406           2017-03-20 03:06:46 +0800 shutoff
 1489951085           2017-03-20 03:18:05 +0800 shutoff

[root@kvm ~]# virsh snapshot-current vm1
<domainsnapshot>
  <name>1489950406</name>
  <state>shutoff</state>
  <creationTime>1489950406</creationTime>
  <memory snapshot='no'/>
  <disks>
    <disk name='hda' snapshot='internal'/>
    <disk name='hdc' snapshot='no'/>
  </disks>
  <domain type='kvm'>

删除快照

[root@kvm ~]# virsh  snapshot-list vm1    
 Name                 Creation Time             State
------------------------------------------------------------
 1489950406           2017-03-20 03:06:46 +0800 shutoff
 1489951085           2017-03-20 03:18:05 +0800 shutoff

[root@kvm ~]# virsh  snapshot-delete vm1 1489951085
Domain snapshot 1489951085 deleted

[root@kvm ~]# virsh  snapshot-list vm1             
 Name                 Creation Time             State
------------------------------------------------------------
 1489950406           2017-03-20 03:06:46 +0800 shutoff

故障处理

[root@kvm ~]# virsh shutdown vm1


error: Failed to shutdown domain vm1
error: Timed out during operation: cannot acquire state change lock

[root@kvm ~]# 
[root@kvm ~]# 
[root@kvm ~]# virsh list --all  
 Id    Name                           State
----------------------------------------------------
 14    vm2                            running
 15    vm1                            paused

[root@kvm ~]# virsh destroy vm1
Domain vm1 destroyed

[root@kvm ~]# virsh list --all 
 Id    Name                           State
----------------------------------------------------
 14    vm2                            running
 -     vm1                            shut off

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python for Data Analysis

Python for Data Analysis

Wes McKinney / O'Reilly Media / 2012-11-1 / USD 39.99

Finding great data analysts is difficult. Despite the explosive growth of data in industries ranging from manufacturing and retail to high technology, finance, and healthcare, learning and accessing d......一起来看看 《Python for Data Analysis》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具