为了方便区分宿主主机与虚拟,我们修改主机的hostname。 [root@localhost ~]# hostnamectl set-hostname kvm #修改宿主主机的主机名为kvm [root@localhost ~]#hostnamectl set-hostname kvmhost1 #修改宿主主机的主机名为kvmhost1 修改完后对系统进行重启生效。

第一种:克隆 1.克隆虚拟机:在克隆虚拟机时,需要关闭虚拟机或者挂起,才能进行克隆。 [root@kvm ~]# virt-clone -o kvmtest -n kvmtestovf -f /var/lib/libvirt/images/kvmtestovf.img Allocating 'kvmtestovf.img' | 20 GB 00:01:06

Clone 'kvmtestovf' created successfully. 参数解析: -o :指定源虚拟机 -n :命名新克隆的虚拟机 -f :指定新克隆虚拟机的存放位置 克隆完成后,在生成硬盘映像文件的同时,也会克隆虚拟机的配置文件。 [root@kvm ~]# ls /etc/libvirt/qemu kvmtestovf.xml kvmtest.xml networks [root@kvm ~]# [root@kvm ~]# virsh list –all #查看所有虚拟机 Id Name State

kvmtest shut off kvmtestovf shut off 2.恢复: [root@kvm ~]# virsh start kvmtestovf #启动克隆机 Domain kvmtestovf started [root@kvm ~]# virsh console kvmtestovf #进入克隆机 注:如果虚拟机与克隆机同时开启,可能会在使用VNC连接时出现某一个无法连接,这是由于端口5900被占用,需要修改其中某一台的VNC连接端口。

第二种:快照 1.创建一个用于保存快照文件的目录 [root@kvm ~]# mkdir /var/lib/libvirt/images/save 拍摄快照:拍摄快照需要虚拟机处于开启状态,否则无法拍摄快照 [root@kvm ~]# virsh save --bypass-cache kvmtest /var/lib/libvirt/images/save/kvmtest_save –running [root@kvm ~]# du -m /var/lib/libvirt/images/save/kvmtest_save #查看快照文件,以m显示文件大小 测试: [root@kvm ~]# virsh start kvmtest #启动kvmtest虚拟机 [root@kvm ~]# virsh console kvmtest #进入虚拟机 [root@kvmhost1 ~]# mkdir -p /kvm/date/images #在虚拟机中创建文件夹 232 /var/lib/libvirt/images/save/kvmtest_save 在虚拟机中创建文件,测试还原效果。 [root@kvmhost1 ~]# mkdir -p /kvm/date/images [root@kvmhost1 ~]# cd /kvm/date/images/ [root@kvmhost1 images]# touch test.txt [root@kvmhost1 images]# ls test.txt [root@kvmhost1 images]# pwd /kvm/date/images [root@kvmhost1 images]#

2.恢复快照:恢复快照需要虚拟机处于关闭状态,否则无法恢复 [root@kvm ~]# virsh restore /var/lib/libvirt/images/save/kvmtest_save --bypass-cache –running [root@kvm ~]# virsh console kvmtest Connected to domain kvmtest Escape character is ^]

CentOS Linux 7 (Core) Kernel 3.10.0-327.el7.x86_64 on an x86_64

kvmhost1 login: root Password: [root@kvmhost1 ~]# ls / bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr [root@kvmhost1 ~]# KVM之虚拟机几种备份方法(快照/克隆/导出) 未找到KVM目录,已恢复到初始状态。

第三种:导出: [root@kvm ~]# virsh dumpxml kvmtest > /etc/libvirt/qemu/kvmtest_clone.xml 查看导出文件 [root@kvm ~]# ls /etc/libvirt/qemu kvmtest_clone.xml kvmtestovf.xml kvmtest.xml networks 复制磁盘 [root@kvm ~]# cp /var/lib/libvirt/images/kvmtest.qcow2 /var/lib/libvirt/images/kvmtest_clone.qcow2 修改配置文件: [root@kvm ~]# vim /etc/libvirt/qemu/kvmtest_clone.xml 注:由于此时的虚拟机还未注册,所以暂时不支持virsh edit 编译,所以只能用vi/vim进行编辑 修改以下内容: 1.自定义修改name标签 <name>kvmtest</name>修改为<name>kvmtest_clone</name>

2.修改虚拟机的UUID 任意修改其中一个值,与原有的区分开。 <uuid>6b124ca5-9adc-40ac-b0b3-a9eeefead161</uuid>修改为<uuid>6b124ca5-9adc-40ac-b0b3-a9eeefead163</uuid> 3.修改disk标签 <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/kvmtest.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> 修改为 <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/kvmtest_clone.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> 注:根据自己磁盘存放路径修改file值 4.修改VNC端口 <graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0'> vnc port 唯一值,不要重复。 注:如果创建的虚拟机时使用console方式连接的在xml文件中是没有graphics项 KVM之虚拟机几种备份方法(快照/克隆/导出)

注册虚拟机 [root@kvm ~]# virsh define /etc/libvirt/qemu/kvmtest_clone.xml

[root@kvm ~]# virsh start kvmtest_clone

可能由于磁盘空间不够启动时出现以下错误: [XFS] kernel: XFS (dm-0): xfs_log_force: error -5 returned