为了方便区分宿主主机与虚拟,我们修改主机的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目录,已恢复到初始状态。
第三种:导出:
[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标签
2.修改虚拟机的UUID
任意修改其中一个值,与原有的区分开。
3.修改disk标签
修改为
注:根据自己磁盘存放路径修改file值
4.修改VNC端口
vnc port 唯一值,不要重复。
注:如果创建的虚拟机时使用console方式连接的在xml文件中是没有graphics项
注册虚拟机
[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