虚拟机(Virtual Machine)和容器(Container)是两种风行的虚拟化技术。
虚拟机模仿机器的硬件,包含了残缺的操作系统和利用,它一旦被开启,预调配给他的资源将全副被占用。容器是运行在宿主机上的一个过程,多个容器之间应用同一个宿主机的操作系统内核。容器绝对于虚拟机启动更快、占用资源更少,但隔离和安全性要弱于虚拟机。

测试人员为了筹备不同的测试环境,往往应用可视化的VMWare、VirtualBox软件,来模仿不同的操作系统和浏览器。本文次要介绍另外一种Qemu+KVM虚拟化解决方案,在自动化测试中,咱们能够通过命令行,按需地主动创立、销毁和治理虚构测试机。另外,这种计划也为后续的自动化平台的搭建做好了铺垫。

这里应用Ubuntu20.04桌面版来作为宿主机,搭建虚拟化环境。
(1)首先通过以下命令,验证硬件是反对虚拟化,有输入表明反对。

root@pve:~# egrep -o "(vmx|svm)" /proc/cpuinfovmxvmxvmx

(2)装置、重启虚拟化无关的软件和服务。

sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients qemu virt-manager bridge-utilssudo service libvirtd restart

老的Ubuntu零碎,请用以下命令替换。

sudo apt-get install qemu-kvm libvirt-bin qemu virt-manager bridge-utilssudo service libvirt-bin restart

(3)下载ISO光盘镜像文件:

  • 从这里下载微软Win10官网光盘镜像;
  • 在这里下载虚机I/O设施驱动,我抉择的是稳定版virtio-win-0.1.185.iso。

(4)应用virt-manager创立虚拟机
在图形界面中关上终端,输出virt-manager,启动虚拟机管理工具。

  • 图中显示的QEMU/KVM表明,已胜利连贯到本地服务。
  • 如果状态为断开,请双击尝试连贯,若显示不能连贯到libvirtd服务,可重启机器修复。
  • 您也能够通过点击菜单“文件->增加连贯”,来连贯和治理近程宿主机上的虚拟机。
  • 点击菜单“文件->新建虚拟机”,关上虚拟机创立向导。
  • 将后面下载的2个ISO文件,加载到虚拟机的光盘中;
  • 在最初一步网络设置中,抉择“主机设施”也就是宿主机的网卡,这样虚构机会作为局域网中的一台电脑而存在。
  • 启动虚拟机,主动从光盘装置零碎。
  • Windows装置向导中的第2步,抉择装置驱动程序,并加载驱动CDROM里NetKVM目录下对应零碎的文件。
  • 装置实现后,virt-manager主动移除光盘,从硬盘启动虚拟机。
  • 虚拟机启动胜利后,更新零碎、并装置测试无关的工具。

(5)制作虚拟机BackingFile文件
BackingFile是一个只读的虚构磁盘根底映像,能够在多个虚拟机间进行共享。基于BackingFile创立和运行虚拟机时,只会在本人的磁盘文件中增量地写入文件,从而节俭磁盘和保护老本。

  • 在virt-manager中,尝试删除某个须要转换成BackingFile的虚拟机;
  • 对话框中,勾销抉择“删除关联的存储文件”,而后点击“删除”按钮。

(6)从BackingFile文件创建虚拟机
执行以下命令创立新的虚拟机:

qemu-img create -f qcow2 -o cluster_size=2M,backing_file=/home/jenkins/kvm/backing-image/win10-x64-cn_zh-backing.qcow2 /home/jenkins/kvm/image/win10-test1.qcow2 30G