1.虚拟化简介
虚拟化是一种资源管理技术,它将计算机的各种实体资源(CPU、内存、磁盘、网络适配器等)予以抽象、转换后呈现,并可分割、组合为一个或多个计算机配置环境。从而使得一台物理服务器上可以运行多台虚拟机,虚拟机共享物理机的CPU、内存、I/O资源等,但逻辑上虚拟机之间是互相隔离的。在虚拟化技术中,通常将这个物理服务器称为宿主机,宿主机上运行的虚拟机也叫客户机,虚拟机内部运行的操作系统称为客户机操作系统。在宿主机和虚拟机之间存在一层叫虚拟化层的软件,用于实现虚拟硬件的模拟,通常这个虚拟化层被称为虚拟机监视器--VMM(Virtual Machine Monitor)。
当前的主流虚拟化技术按照VMM实现结构不同分为两种,一种是Hypervisor模型--在这种模型中,VMM被看做是一个完备的操作系统,同时还具备虚拟化功能,VMM直接管理所有的物理资源,包括处理器,内存和I/O设备等;另一种是宿主模型--这种模型中,物理资源是由宿主机操作系统管理。宿主机操作系统是传统的操作系统,如Linux,Windows等,宿主机操作系统不提供虚拟化能力,提供虚拟化能力的VMM作为系统的一个驱动或者软件运行在宿主操作系统上,VMM通过调用host OS的服务获得资源,实现CPU,内存和I/O设备的模拟,这种模型的虚拟化实现有KVM、Virtual Box等。
KVM(Kernel-based Virtual Machine)即基于内核的虚拟机,是Linux的一个内核模块,该内核模块使Linux成为一个hypervisor。KVM本身未模拟任何硬件设备,它使用硬件提供的虚拟化能力,比如Intel VT-x, AMD-V, ARM virtualization extensions等。主板、内存及I/O等设备的模拟由用户态的QEMU完成。用户态QEMU配合内核KVM模块共同完成虚拟机的硬件模拟,客户操作系统运行在QEMU和KVM模拟的硬件上。
openEuler软件包中提供的虚拟化相关组件:
KVM:提供核心的虚拟化基础设施,使Linux系统成为一个hypervisor,支持多个虚拟机同时在该主机上运行。
QEMU:提供一组设备模型,配合KVM实现基于硬件的虚拟化模拟加速。
Libvirt:为管理虚拟机提供工具集,主要包含统一、稳定、开放的应用程序接口(API)、守护进程 (libvirtd)和一个默认命令行管理工具(virsh)。
2.KVM虚拟化环境安装
在桌面上点右键,选择“打开终端”
执行如下命令
su - #切换到root用户
dnf install qemu qemu-img libvirt bridge-utils #安装kvm虚拟机相关包
cat >> /etc/libvirt/libvirtd.conf << EOF #修改配置文件
listen_tls = 0
listen_tcp = 1
listen_addr =
unix_sock_group = libvirtd
unix_sock_ro_perms =
unix_sock_rw_perms =
auth_unix_ro = none
auth_unix_rw = none
auth_tcp = none
auth_tls = none
EOF
cat >> /etc/libvirt/qemu.conf << EOF #修改配置文件
vnc_tls = 0
user = “root”
group = “root”
EOF
systemctl enable --now libvirtd.service #启动libvirtd服务
systemctl enable --now libvirtd-tcp.socket #启动libvirt-tcp端口