centos8安装 kvm
一、开启cpu的虚拟化功能
1. 开启bios虚拟化功能
现代的cpu默认都开启了cpu虚拟化功能
这里我使用vmware虚拟机部署kvm,需要在vmware虚拟机控制页面打开 cpu 和 内存虚拟化功能
如下:
2. 在系统内查看是否开启了虚拟化功能
[root@localhost ~]# grep -Eo 'vmx|svm' /proc/cpuinfo | uniq
vmx
- vmx 是inter的虚拟化技术
- svm 是amd的虚拟化技术
3. 查看是否加载了kvm模块
[root@localhost ~]# lsmod | grep kvm
kvm_intel 294912 0
kvm 786432 1 kvm_intel
irqbypass 16384 1 kvm
二、安装kvm
1. 更换yum源
由于centos8不在维护,镜像仓库已经失效,所有我们需要更换到阿里云的镜像地址。
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/
rm -f .repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
dnf update -y
2. 下载kvm组件
dnf -y install qemu-kvm virt-install virt-viewer virt-manager libvirt virt-what
qemu-kvm
: kvm的核心 kvm和quem的集成 ,quem负责模拟各种平台的硬件,kvm负责利用硬件虚拟化技术来加速 CPU 的虚拟化。virt-install
:使用命令行安装系统的工具virt-viewer
:是一个轻量级的工具,用于远程查看和连接到虚拟机的图形界面,它可以通过远程桌面协议(如 VNC 等)连接到虚拟机控制台,方便用户对虚拟机进行图形化操作和监控。virt-manager
:kvm图形化管理工具libvirt
:KVM 虚拟化管理的核心库和守护进程,为不同的虚拟化技术(包括 KVM)提供了一个统一的管理接口。它处理虚拟机的生命周期管理(如启动、暂停、关闭等操作)、虚拟机配置、网络配置等方面的工作。virt-what
: 用于检测虚拟化环境
3. 检查当前虚拟化平台
[root@localhost yum.repos.d]# virt-what
vmware
4. 检查虚拟化功能
[root@localhost yum.repos.d]# virt-host-validateQEMU: Checking for hardware virtualization : PASSQEMU: Checking if device /dev/kvm exists : PASSQEMU: Checking if device /dev/kvm is accessible : PASSQEMU: Checking if device /dev/vhost-net exists : PASSQEMU: Checking if device /dev/net/tun exists : PASSQEMU: Checking for cgroup 'cpu' controller support : PASSQEMU: Checking for cgroup 'cpuacct' controller support : PASSQEMU: Checking for cgroup 'cpuset' controller support : PASSQEMU: Checking for cgroup 'memory' controller support : PASSQEMU: Checking for cgroup 'devices' controller support : PASSQEMU: Checking for cgroup 'blkio' controller support : PASSQEMU: Checking for device assignment IOMMU support : PASSQEMU: Checking if IOMMU is enabled by kernel : WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)QEMU: Checking for secure guest support : WARN (Unknown if this platform has Secure Guest support)
如上有两条警告,分别是检测IOMMU
和 secure
IOMMU
: IOMMU被禁用,如果要开启需要在内核参数中添加 intel_iommu=on
参数
secure
: 不知道平台是否支持安全虚拟机功能
4.1. 启用IOMMU
IOMMU
的主要作用是为设备和虚拟机提供独立的虚拟地址空间,增强内存访问的安全性,防止设备间相互干扰,同时支持内存虚拟化技术。
修改内核启动参数
[root@localhost ~]# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet intel_iommu=on"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
在GRUB_CMDLINE_LINUX 追加 intel_iommu=on参数
我的cpu是inter了,如果其他cpu 添加的参数不一样。
重启系统,在次检查
[root@localhost ~]# virt-host-validateQEMU: Checking for hardware virtualization : PASSQEMU: Checking if device /dev/kvm exists : PASSQEMU: Checking if device /dev/kvm is accessible : PASSQEMU: Checking if device /dev/vhost-net exists : PASSQEMU: Checking if device /dev/net/tun exists : PASSQEMU: Checking for cgroup 'cpu' controller support : PASSQEMU: Checking for cgroup 'cpuacct' controller support : PASSQEMU: Checking for cgroup 'cpuset' controller support : PASSQEMU: Checking for cgroup 'memory' controller support : PASSQEMU: Checking for cgroup 'devices' controller support : PASSQEMU: Checking for cgroup 'blkio' controller support : PASSQEMU: Checking for device assignment IOMMU support : PASSQEMU: Checking if IOMMU is enabled by kernel : PASSQEMU: Checking for secure guest support : WARN (Unknown if this platform has Secure Guest support)
4.1 检查平台是否支持安全虚拟机功能
[root@localhost ~]# grep -E 'tdx|sgx' /proc/cpuinfo
如果有回显及支持,当前不支持。
至此kvm部署完毕。