14.2.1案例分析
? ? ?
? ? ? 案例环境使用一台物理机器,一台服务器安装CentOS7.3的64位系统(即node01),rhel7.1是在宿主机node01中安装的虚拟机。
?14.2.2案例实施
1.安装Linux虚拟机
安装过程同上一案例,使用Xshell 远程控制node01主机。
2.KVM基本功能管理
1)查看命令帮助
[root@node01 ~]# virsh -h
2)查看KVM的配置文件存放目录(rhel7.1.xml是虚拟机系统实例的配置文件)
[root@node01 ~]# ls /etc/libvirt/qemu
3)查看虚拟机状态
[root@node01 ~]# virsh list --all
4)虚拟机关机与开机
首先需要确认acpid服务安装并运行。
[root@node01 ~]# virsh shutdown rhel7.1
[root@node01 ~]# virsh start rhel7.1
5)强制实例系统关闭电源
[root@node01 ~]# virsh destroy rhel7.1
6)通过配置文件启动虚拟机系统实例
[root@node01 ~]# virsh create /etc/libvirt/qemu/rhel7.1.xml
7) 挂起虚拟机
[root@node01 ~]# virsh suspend rhel7.1
查看虚拟机状态:
[root@node01 ~]# virsh list --all
8)恢复虚拟机
[root@node01 ~]# virsh resume rhel7.1
[root@node01 ~]# virsh list --all
9)配置虚拟机实例伴随宿主机自动启动
[root@node01 ~]# virsh autostart rhel7.1
上述命令将创建/etc/libvirt/qemu/autostart/目录,目录内容为开机自动启动的系统。
10)导出虚拟机配置
[root@node01 ~]# virsh dumpxml rhel7.1 > /etc/libvirt/qemu/rhel7.2.xml
11)虚拟机的删除与添加
删除虚拟机:
[root@node01 ~]# virsh shutdown rhel7.1
[root@node01 ~]# virsh undefine rhel7.1 //删除rhel7.1虚拟机
查看删除结果,rhel7.1的配置文件被删除,但是磁盘文件不会被删除。
[root@node01 ~]# ls /etc/libvirt/qemu
通过“virsh list --all查看不到rhel7.1的信息,说明此虚拟机被删除。
[root@node01 ~]# virsh list --all
通过备份的配置文件重新定义虚拟机:
[root@node01 ~]# cd /etc/libvirt/qemu/
[root@node01 qemu]# mv rhel7.2.xml rhel7.1.xml
重新定义虚拟机:
[root@node01 qemu]# virsh define rhel7.1.xml
查看虚拟机信息:
[root@node01 qemu]# virsh list --all
12)可通过修改虚拟机配置信息(用来修改系统内存大小,磁盘文件等信息)
直接通过 vim命令修改:
[root@node01 ~]# vim /etc/libvirt/qemu/rhel7.1.xml
通过 virsh 命令修改:
[root@node01 ~]# virsh edit rhel7.1
3.KVM文件管理
通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置问题无法启动时,可以直接修改虚拟机的文件。虚拟机磁盘文件有raw、qcow2与qed格式,KVM虚拟机默认使用qcow2格式,这里介绍本地YUM安装libguestfs-tools后产生的命令行工具,这个工具可以直接读取qcow2格式的磁盘文件。
(1)查看当前磁盘格式:
[root@node01 ~]# mount /dev/cdrom /mnt/
[root@node01 ~]# yum -y install libguestfs-tools
[root@node01 ~]# qemu-img info /data_kvm/store/bdqn_kvm.qcow2
? ? ? ?如果虚拟机磁盘文件不是qcow2格式,可以通过“qemu-img”命令转换磁盘文件格式,如执行 以下操作可以将rhel7.1虚拟机raw格式磁盘转换至qcow2格式。
[root@node01 ~]# virsh shutdown rhel7.1
[root@node01 ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/test01.img /data_kvm/store/test01.qcow2
执行转换磁盘格式的命令后还需要修改test01 的xml 配置文件中磁盘的类型与磁盘文件名。(因安装的硬盘文件已是qcow2格式,所以无需修改)
[root@node01 ~]# virsh edit rhel7.1
(2)virt-cat命令,类似于cat命令。
[root@node01 ~]# virt-cat -a /data_kvm/store/bdqn_kvm.qcow2 /etc/sysconfig/grub
(3) virt-edit 命令,用于编辑文件,用法与vim基本一致。
[root@node01 ~]# virt-edit -a /data_kvm/store/bdqn_kvm.qcow2 /etc/resolv.conf
(4)virt-df 命令用于查看虚拟机磁盘信息。
[root@node01 ~]# virt-df -h rhel7.1
4.虚拟机克隆
1)查看虚拟机状态
[root@node01 ~]# virsh list --all
2)从 rhel7.1克隆rhel7.2
[root@node01 ~]# virt-clone -o rhel7.1 -n rhel7.2 -f /data_kvm/store/bdqn_kvm2.qcow2
3)查看虚拟机状态
[root@node01 ~]# virsh list --all
4)启动虚拟机
[root@node01 ~]# virsh start rhel7.2
5.虚拟机快照
KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2。下面介绍KVM虚拟机快照备份的过程。
1)对rhel7.1创建快照
[root@node01 ~]# virsh snapshot-create rhel7.1
2)查看虚拟机快照版本信息
[root@node01 ~]# virsh snapshot-current rhel7.1
3)查看快照信息
[root@node01 ~]# virsh snapshot-list rhel7.1
4)创建新快照
[root@node01 ~]# virsh snapshot-create rhel7.1
5)查看快照信息
[root@node01 ~]# virsh snapshot-list rhel7.1
6)恢复虚拟机状态至1704357112
[root@node01 ~]# virsh snapshot-revert rhel7.1 1704357112
7)查看虚拟机快照版本信息
[root@node01 ~]# virsh snapshot-current rhel7.1
8) 测除快照
[root@node01 ~]# virsh snapshot-delete rhel7.1 1704357112