KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它允许在Linux操作系统上创建和管理虚拟机。以下是关于KVM的一些关键信息:
KVM基于Linux内核的模块,通过利用虚拟化扩展(如Intel VT或AMD-V)提供硬件虚拟化功能。
KVM使用QEMU(快速模拟器)作为虚拟机的管理程序,QEMU提供了模拟设备和虚拟化硬件的能力。
KVM支持多种虚拟化模式,包括完全虚拟化和硬件辅助虚拟化。
KVM可以管理多个虚拟机,每个虚拟机都可以运行独立的操作系统。
KVM提供了性能高、安全和稳定的虚拟化环境,广泛用于服务器虚拟化和云计算平台。
更新 Ubuntu 22.04
打开终端并通过如下命令更新本地的软件包索引:
sudo apt update
检查虚拟化是否开启
检查CPU是否支持 KVM 虚拟化,确保你系统中有 VT-x( vmx)英特尔处理器或 AMD-V(svm)处理器。
你可以通过运行如下命令,如果输出值大于 0,那么虚拟化被启用。否则,虚拟化被禁用,你需要启用它。
egrep -c '(vmx|svm)' /proc/cpuinfo
根据上方命令输出,你可以推断出虚拟化功能已经启用,因为输出结果大于 0。如果虚拟化功能没有启用,请确保在系统的 BIOS 设置中启用虚拟化功能。
另外,你可以通过如下命令判断 KVM 虚拟化是否已经在运行:
kvm-ok
运行该命令之前,请确定已经安装了cpu-checker软件包,否则将提示未找到该命令的报错。
通过如下命令安装cpu-checker软件包:
sudo apt install -y cpu-checker
接着再运行kvm-ok命令,如果 KVM 已经启动,你将看到如下输出:
kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
在 Ubuntu 22.04 上安装 KVM
通过如下命令在 Ubuntu 22.04 中安装 KVM 以及其他相关虚拟化软件包:
sudo apt install -y qemu-kvm libvirt-daemon-system virtinst libvirt-clients bridge-utils
解释刚刚安装哪些软件包:
qemu-kvm 一个提供硬件仿真的开源仿真器和虚拟化包
libvirt-daemon-system 为运行 libvirt 进程提供必要配置文件的工具
virtinst 一套为置备和修改虚拟机提供的命令行工具
libvirt-clients 一组客户端的库和API,用于从命令行管理和控制虚拟机和管理程序
bridge-utils 一套用于创建和管理桥接设备的工具
启用虚拟化守护进程(libvirtd)
在所有软件包安装完毕之后,通过如下命令启用并启动 libvirt 守护进程:
sudo systemctl enable --now libvirtd
sudo systemctl start libvirtd
你可以通过如下命令验证该虚拟化守护进程是否已经运行:
sudo systemctl status libvirtd
另外,请将当前登录用户加入kvm和libvirt用户组,以便能够创建和管理虚拟机。
sudo usermod -aG kvm $USER
sudo usermod -aG libvirt $USER
$USER环境变量引用的即为当前登录的用户名。你需要重新登录才能使得配置生效。
创建网桥(br0)
编辑/etc/netplan/00-installer-config.yaml
network:
ethernets:
enp2s0:
dhcp4: false
dhcp6: false
# add configuration for bridge interface
bridges:
br0:
interfaces: [enp2s0]
dhcp4: false
addresses: [192.168.**.**/24]
routes:
- to: default
via: 192.168.3.1
metric: 100
nameservers:
addresses: [114.114.114.114]
parameters:
stp: false
dhcp6: false
version: 2
创建虚拟机
Linux示例
virt-install -n ubuntu22_01\
-r 4096 --vcpus=2 \
--os-variant=ubuntu22.04 \
--accelerate \
-c /home/tools/ubuntu-22.04.1-live-server-amd64.iso \
--disk path=/data/kvm/ubuntu22_01.img,format=qcow2,bus=virtio,size=50 \
--network bridge=br0 \
--vnc --vncport=5996 --vnclisten=0.0.0.0
参数介绍
-n:指定生成的虚拟机名称,全局唯一
--os-type=linux :不需要添加了,已删除配置
-os-variant:参数支持的os # osinfo-query os 查看系统支持的系统
-c:引用的iso文件
-r:内存大小
--vcpus:系统核心数
--disk:生成的磁盘文件存储目录
--format:磁盘格式
--network:指定网络模式,及其网卡
--size:磁盘空间大小
--vnc:指定宿主机开放的监控端口和监听地址(0.0.0.0 表示监听所有的IP),可以使用vnc连接系统
--accelerate 快速生成
Windows示例
virt-install -n windows10\
-r 8192 --vcpus=4 \
--os-variant=win10 \
--accelerate \
-c /data2/kvm/Win10_22H2_China_GGK_Chinese_Simplified_x64.iso \
--disk device=cdrom,path=/data2/kvm/virtio-win.iso \
--disk path=/data/kvm/windows10.img,format=qcow2,bus=virtio,size=100 \
--network bridge=br0 \
--vnc --vncport=5996 --vnclisten=0.0.0.0
virtio-win.iso
下载地址
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.248-1/virtio-win.iso
Virsh 管理工具
在安装之后,可以通过virsh来管理我们的虚拟机,常用命令如下
常用命令
virsh list --all # 查看所有的虚拟机
virsh start ubuntu22_01 # 启动虚拟机
virsh shutdown ubuntu22_01 # 关闭虚拟机
virsh destroy ubuntu22_01 # 清除Domain中的记录,同时也会强制关机
virsh edit ubuntu22_01 # 编辑虚拟机的配置文件,虚拟机中的参数是以配置文件的形式来控制的
virsh define ubuntu22_01 # 重载配置文件
virsh undefine ubuntu22_01 # 删除配置文件
系统配置文件
cat /etc/libvirt/qemu/ubuntu22_01.xml
VNC
下载地址:https://www.realvnc.com/en/connect/download/viewer/
开机自启动
virsh autostart ubuntu22_01 #设置虚拟机开机自动启动
virsh autostart --disable ubuntu22_01 #设置取消虚拟机自动启动
评论