kvm, libvirt 和 qemu
简介
KVM 是 Kernel base Virtual Machina 的简称.
QEMU 是 quick emulator 的简称.
Ubuntu 上使用
查看是否支持虚拟化
使用:
1 |
|
若输出 Virtualization: VT-x
即可。
或:
1 |
|
输出大于0的数字.
查看是否支持硬件加速
1 |
|
输入:
1 |
|
若输出为:
1 |
|
即表明支持。
安装
1 |
|
安装软件:
- qemu-kvm, 为 KVM 管理程序提供硬件仿真
- libvirt 管理虚拟机和其他虚拟化功能的软件集合, 其包含一个 API 库,一个守护进程 (libvirtd) 和一个命令行工具 (virsh)
使用
需把镜像文件放在 /var/lib/libvirt/images
中。
需要在 virt-manager
中添加一个叫做 network
的网络连接。
先创建一个虚拟机磁盘的镜像:
1 |
|
通过脚本创建虚拟机:
1 |
|
部分选项说明:
- –name, 创建虚拟机名称
- –os-variant, 创建虚拟机类型
- –memory, 虚拟机的内存大小
- –vcpus, 虚拟机的 CPU 数量
- –cdrom, 虚拟机的 CD, 可接 ISO 镜像路径
- –disk path, 指定虚拟机硬盘路径
- –disk path, 指定虚拟机硬盘大小,单位为 G
- –boot, 指定启动的 BIOS, Archlinux 只支持 UEFI 启动
- –virt-type, 选择 hypervisor, 如 kvm, qemu, xen 等
- –network, 添加网卡
若遇到 cannot access storage file (as uid:107, gid:107) permission denied
类似的报错, 修改 /etc/libvirt/qemu.comf
文件中:
1 |
|
改为:
1 |
|
若遇到 You will need to grant the 'libvirt-qemu' user search permissions for the following directories
报错,是 libvirt-qemu
用户没有当前 qemu 文件所在位置用户的权限,将 libvirt-qemu
添加到当前的用户组即可, 即修改 /etc/group
文件。
正式安装注意
貌似必须得创建 /boot
分区。
进入虚拟机后的配置
在设置里面搜索 “Display Configuration” 可以修改分辨率。
ArchWiki 中关于 KVM 部分
ArchWiki 相关
KVM 是基于内核的虚拟机, 是内置于 Linux 内核的 hypervisor.
KVM 是 QEMU 的一种特殊的运行模式, 这种模式通过内核模块使用 CPU 扩展进行虚拟化.
需检查模块是否加载.
Virtio 准虚拟化
准虚拟化为客户机提供了一种使用主机上设备的快速有效的通信方式.
KVM 使用 Virto API 作为虚拟机管理程序和客户端之间的连接层, 为虚拟机提供虚拟化设备.
所有 Virtio 设备都包括两部分, 主机设备和客户机驱动程序.
需检查模块是否加载.
ArchWiki 中关于 QEMU 部分
Qemu 是一个广泛使用的开源计算机模拟器和虚拟机.
作为虚拟机时, QEMU 可以使用其他虚拟机管理程序 (如 Xen 或 KVM) 来使用 CPU 扩展 (HAV) 进行虚拟化. 通过主机 CPU 上直接执行客户机代码来获得接近于宿主机的性能.
安装
安装 qemu
包.
QEMU 不提供管理虚拟机的 GUI. 也不提供创建具有已保存设置的持久虚拟机的方法, 除非已创建自定义脚本以启动虚拟机, 否则必须在每次启动时在命令行上指定虚拟机的所有参数.
创建新虚拟系统
创建硬盘镜像
除非直接从 CM-ROM 或网络引导, 运行 QEMU 时都需要硬盘镜像 (一个文件, 存储虚拟机硬盘上的内容).
raw 镜像, 和客户机器上看到的内容一模一样.
qcow2 格式, 仅当客户系统实际写入内容的时候, 才会分配镜像空间.
QEMU 提供 qemu-img
命令来创建硬盘镜像.
也可以用 dd
或 fallocate
命令来创建一个 raw 镜像.
HAV
Wiki 百科
HAV 是 Hardware-assisted virtualization 的简称.