一、QEMU/KVM 技术简介
QEMU/KVM是一种开源虚拟化技术,全称是Quick Emulator/Kernel Based Virtual Machine。它结合了QEMU的模拟器和KVM(内核虚拟机)的加速器,提供了基于硬件的全虚拟化和容器级的系统虚拟化能力。
QEMU是一个用于模拟计算机硬件的开源软件,它可以模拟各种硬件设备,包括CPU、内存、网络接口等。QEMU构建了一个虚拟的计算机环境,可以在其上运行操作系统和应用程序。
KVM是Linux内核中的一个模块,通过利用处理器的虚拟化扩展功能,为QEMU提供硬件加速。KVM允许QEMU直接在物理硬件上运行客户机操作系统,从而提供接近原生性能的虚拟化。
QEMU/KVM技术提供了以下优点:
- 高性能:由于KVM利用了硬件虚拟化扩展,使得在虚拟机上运行的操作系统和应用程序接近原生性能。
- 真实硬件模拟:QEMU可以模拟各种硬件设备,并提供与真实硬件相似的功能,使得虚拟机可以与真实硬件无差别地运行。
- 兼容性:QEMU/KVM支持多种操作系统,包括Linux、Windows等,可以在不同的操作系统之间进行虚拟化。
- 灵活性:QEMU/KVM支持虚拟化不同的硬件架构,如x86、ARM等,可以满足不同应用的需求。
- 容器级虚拟化:QEMU/KVM还可以以容器级的方式运行,实现更轻量级的虚拟化,提高资源利用率。
总而言之,QEMU/KVM是一种功能强大的开源虚拟化技术,通过结合QEMU的模拟器和KVM的加速器,提供了高性能、真实硬件模拟和灵活性等优点,适用于各种场景下的系统虚拟化需求。
二、安装QEMU/KVM虚拟化软件
准备工作:
实验平台:VMware Workstation 17 Pro
虚机操作系统:RockyLinux 8.9
虚机启动前,处理器的虚拟化引擎功能记得勾选
第一步:检查cpu的虚拟化引擎是否打开
[root@node1 ~]# egrep -o 'vmx|svm' /proc/cpuinfo # 执行这条命令有内容输出即为虚拟化引擎已经打开
vmx
vmx
第二步:准备好yum源,安装软件包
[root@node1 ~]# yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-client virt-install virt-viewer
软件包简要说明:
- qemu-kvm:qemu模拟器
- qemu-img:qemu磁盘image管理器
- virt-manager:一个用于管理虚拟机的图形化界面工具,它是libvirt项目的一部分。virt-manager提供了一个直观易用的界面,方便用户创建、配置和管理虚拟机
- libvirt:提供libvirtd daemon来管理虚拟机和控制hypervisor
- libvirt-client:提供客户端API用来访问server和提供管理虚拟机命令行工具的virsh实体
- virt-install:用来创建虚拟机的命令行工具
- virt-viewer:一个用于查看虚拟机控制台的图形化界面工具,它可以与虚拟化管理工具(如libvirt)配合使用,提供虚拟机的远程访问和控制功能
第二步安装完成以后,如果你已经安装了图形化桌面环境, 就可以在应用程序中看到下面这样一个图标了
鼠标单击打开它,这个就是virt-manager的图形化界面工具
或者你也可以在命令行中输入virt-manager
来打开它
三、创建及使用虚拟机
准备工作:下载一个linux镜像文件,以openEuler为例,用于新建的虚拟机
第一步:使用qemu-img create
命令创建虚拟机镜像。虚拟机镜像用来模拟虚拟机的硬盘,在启动虚拟机之前需要创建镜像文件,-f
选项用于指定镜像的格式,qcow2
格式是QEMU最常用的镜像格式,openEuler.qcow2
是镜像文件的名字,30G
是镜像文件大小,镜像文件创建出来以后并不会立刻分配所有的空间。
[root@node1 ~]# cd /var/lib/libvirt/images/
[root@node1 images]# qemu-img create -f qcow2 openEuler.qcow2 30G
Formatting 'openEuler.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
[root@node1 images]#
[root@node1 images]# ls -lh openEuler.qcow2
-rw-r--r--. 1 root root 193K Jan 13 22:32 openEuler.qcow2
可以使用qemu-img info
命令查看镜像文件信息
[root@node1 images]# qemu-img info openEuler.qcow2
image: openEuler.qcow2
file format: qcow2
virtual size: 30 GiB (32212254720 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
第二步:通过下面的命名创建虚拟机
[root@node1 ~]# virt-install --name=openEuler-20.03-LTS --ram=2048 --vcpus=1 --cdrom=/opt/openEuler-20.03-LTS-x86_64-dvd.iso --os-type=linux --os-variant='linux2022' --network bridge=virbr0 --graphics=spice --disk path=/var/lib/libvirt/images/openEuler.qcow2
-name:虚拟机的名字
-ram:内存大小MB
-vcpus:CPU个数
-cdrom:ISO镜像位置
-os-variant:OS类型,例如rhel 6,solaris
-network:网络
-graphics:Guest显示设置
-disk path:磁盘位置
命令执行后,自动调用virt-viewer工具,出现如下图所示
安装完成以后
关闭窗口
可以通过virsh list --all
查看虚拟机状态
[root@node1 ~]# virsh list --all
Id Name State
-------------------------------------
2 openEuler-20.03-LTS running
[root@node1 ~]#
也可以通过virt-manager
图形化工具查看虚拟机状态
或者也可以通过virt-manager图形化工具来创建虚拟机,具体操作细节就不展开了
四、删除虚拟机
root@node1 ~]# virsh list --all
Id Name State
-------------------------------------
3 openEuler-20.03-LTS running
[root@node1 ~]# virsh shutdown openEuler-20.03-LTS
Domain 'openEuler-20.03-LTS' is being shutdown
[root@node1 ~]#
[root@node1 ~]# virsh list --all
Id Name State
--------------------------------------
- openEuler-20.03-LTS shut off
[root@node1 ~]#
[root@node1 ~]# virsh undefine openEuler-20.03-LTS
Domain 'openEuler-20.03-LTS' has been undefined
[root@node1 ~]#
[root@node1 ~]# virsh list --all
Id Name State
--------------------
[root@node1 ~]# ls /var/lib/libvirt/images/ # 虚拟机删除后,磁盘文件并不会自动删除
openEuler.qcow2
[root@node1 ~]# ls -lh /var/lib/libvirt/images/openEuler.qcow2
-rw-r--r--. 1 root root 3.4G Jan 13 23:00 /var/lib/libvirt/images/openEuler.qcow2
[root@node1 ~]# rm /var/lib/libvirt/images/openEuler.qcow2
rm: remove regular file '/var/lib/libvirt/images/openEuler.qcow2'? y
[root@node1 ~]# ls /var/lib/libvirt/images/
[root@node1 ~]#
参阅
CentOS7/RHEL7上安装KVM(QEMU) ― 装Linux虚拟机 - 知乎
virt-install命令详解_virt-install 命令-CSDN博客
RHEL8.2安装QEMU及KVM虚拟化_redhat系统qemu如何安装-CSDN博客
标签:虚拟化,QEMU,虚拟机,KVM,node1,RockyLinux,openEuler,root From: https://blog.51cto.com/min2000/9234167