虚拟机 (Virtual Machine)和 容器 (Container)是两种风行的虚拟化技术。
虚拟机 模仿机器的硬件,包含了残缺的操作系统和利用,它一旦被开启,预调配给他的资源将全副被占用。容器 是运行在宿主机上的一个过程,多个容器之间应用同一个宿主机的操作系统内核。容器绝对于虚拟机启动更快、占用资源更少,但隔离和安全性要弱于虚拟机。
测试人员为了筹备不同的测试环境,往往应用可视化的 VMWare、VirtualBox 软件,来模仿不同的操作系统和浏览器。本文次要介绍另外一种 Qemu+KVM 虚拟化解决方案,在自动化测试中,咱们能够通过命令行,按需地主动创立、销毁和治理虚构测试机。另外,这种计划也为后续的自动化平台的搭建做好了铺垫。
这里应用 Ubuntu20.04 桌面版来作为宿主机,搭建虚拟化环境。
(1)首先通过以下命令,验证硬件是反对虚拟化,有输入表明反对。
root@pve:~# egrep -o "(vmx|svm)" /proc/cpuinfo
vmx
vmx
vmx
(2)装置、重启虚拟化无关的软件和服务。
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients qemu virt-manager bridge-utils
sudo service libvirtd restart
老的 Ubuntu 零碎,请用以下命令替换。
sudo apt-get install qemu-kvm libvirt-bin qemu virt-manager bridge-utils
sudo 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