RedHat9中KVM虚拟机的配置与管理

admin2024-04-03  0

KVM虚拟技术介绍

Linux的KVM(Kernel-based Virtual Machine)虚拟技术是一种基于Linux内核的虚拟化解决方案。它允许在单个物理服务器上创建和运行多个隔离的虚拟机,每个虚拟机都有自己的操作系统和应用程序,就像运行在独立的物理服务器上一样。

KVM虚拟技术的核心特点包括:

  1. 硬件虚拟化支持:KVM利用CPU的虚拟化扩展技术,如Intel VT-x或AMD SVM,将物理主机的处理能力划分给虚拟机,提供高效的硬件资源管理。
  2. 完全虚拟化:KVM支持完全虚拟化,这意味着它可以在虚拟机中运行未经修改的操作系统,实现对多种操作系统和应用程序的支持。
  3. 性能优化:KVM的硬件虚拟化技术允许虚拟机直接访问物理硬件资源,降低了虚拟化的性能消耗,提供了接近原生性能的运行效果。
  4. 弹性和可伸缩性:KVM支持动态添加、删除、调整虚拟机的资源,可以根据需求灵活配置虚拟机的CPU、内存和存储等资源。
  5. 安全性:KVM采用严格的隔离机制,保护不同虚拟机之间的安全,防止一台虚拟机的故障对其他虚拟机造成影响。
  6. 社区支持:KVM是一个开源项目,拥有庞大的社区支持,提供了丰富的文档和资源,可以帮助用户更好地理解和使用该技术。

KVM的实现基于宿主机模型(Host-based),它集成在Linux内核中,因此可以自然地使用Linux内核提供的内存管理、多处理器支持等功能。这使得KVM易于实现,并且能够随着Linux内核的发展而不断进步。此外,KVM的I/O虚拟化工作通常借助Qemu等工具完成,进一步降低了实现的工作量。

libvirt库

libvirt库是一个实现Linux虚拟化功能的Linux API,它支持各种虚拟机监控程序,包括Xen、KVM以及QEMU等,同时还支持其他操作系统的一些虚拟产品。libvirt库为虚拟机管理提供了一个通用稳定的抽象层,能够安全地操作物理机上的虚拟机。它的主要功能包括虚拟机管理、虚拟设备管理和远程控制。

在虚拟机管理方面,libvirt库提供了定义、删除、启动、关闭、暂停、恢复、保存、回滚和迁移等各种功能。在虚拟设备管理方面,它能够管理各种虚拟外设,如虚拟磁盘、虚拟网卡、内存和虚拟CPU,并且支持多种设备类型的热插拔操作。此外,libvirt库还提供了远程连接功能,通过virsh程序或API,可以远程连接其他物理机的Hypervisor。

libvirt库主要由Libvirt API、Libvirtd进程和virsh工具集三个部分组成。Libvirt API提供了一套与多种操作系统虚拟化能力进行交互的接口,可以在hypervisor支持的范围内创建、修改、监控、迁移和停止虚拟机。Libvirtd进程是libvirt守护进程,负责处理虚拟机的各种请求。virsh工具集则是一组命令行工具,用于管理虚拟机和其他虚拟化资源。

libvirt库是一个强大的虚拟化管理工具,广泛应用于各种IaaS方案中,如OpenStack、OpenNebula和Nimbus等。通过使用libvirt库,用户可以方便地对虚拟机进行管理和操作,提高虚拟化环境的稳定性和灵活性。

查看RHEL9学员练习机上的libvirtd命令所在位置

whereis libvirtd

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第1张

查看RHEL9学员练习机上libvirtd配置文件

vim /etc/libvirt/libvirtd.conf

查看服务状态

# libvirtd是libvirt守护进程,负责处理与虚拟化相关的请求,并提供对虚拟机的管理功能
systemctl status libvirtd

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第2张

安装KVM软件组

标识Server
主机root@Server
IP地址192.168.110.1/24
软件组Virtualization Host

列出所有软件组

dnf grouplist

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第3张

查看已经安装的软件组

dnf grouplist --installed

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第4张

安装KVM软件组

dnf groups install Virtualization*		# 此处需要安装114个软件包

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第5张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第6张

启动服务

systemctl enable --now libvirtd.service

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第7张

可以通过virt-manager打开控制台

virt-manager

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第8张

或者通过菜单栏打开控制台
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第9张

新建连接

  1. 选择连接类型
    在“Add Connection”对话框中,你会看到几种不同类型的连接可供选择,比如QEMU/KVM、Xen、LXC等。根据你的环境和需求,选择适当的连接类型。对于大多数基于QEMU/KVM的虚拟化环境,你应该选择“QEMU/KVM”连接类型。
  2. 填写连接详情
    对于选定的连接类型,你需要填写相关的连接详情。对于QEMU/KVM连接,你通常只需要保留默认设置,除非你有特殊的需求,比如使用非默认的URI或需要配置SSH隧道。
    • Name:为你的连接起一个名字,这样你就可以在virt-manager中轻松识别它。
    • Host:如果你的虚拟化环境运行在本机上,通常可以留空。如果是远程主机,则输入远程主机的地址。
    • Port:通常使用默认的端口号,除非你的虚拟化环境使用了不同的端口。
    • Connect via:对于本地连接,选择“Local (TCP/IP)”。对于SSH隧道,选择“SSH”并填写SSH的详情。
    • Authentication:如果需要的话,填写用于身份验证的用户名和密码。

以下保持默认即可
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第10张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第11张

新建KVM虚拟机–图形界面

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第12张

选择安装操作系统的方式

  • Localinstall media (lSO image or CDROM)【本地安装介质(ISO映像或CDROM)】
  • NetworkInstall (HTTP, HTTPS, Or FTP)【网络安装(HTTP/HTTPS/FTP)】
  • Import existing disk image【导入现有磁盘映像】
  • Manual install【手动安装】

以下选择本地安装介质
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第13张

选择安装介质的位置,我们提前将ISO文件移动到默认目录下
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第14张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第15张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第16张

选择CPU和内存,这里默认即可
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第17张

选择硬盘空间,同样是默认
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第18张

输入虚拟机名称和选择网络连接
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第19张

解除热键为Ctrl+Alt
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第20张

关闭虚拟机
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第21张

为虚拟机连接映像
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第22张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第23张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第24张

查看开机启动选项/启动菜单,可以改为网卡启动,可以实现kickstart自动安装
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第25张

新建KVM虚拟机–命令行

新建一个具有2GB内存、2个虚拟CPU和20G磁盘空间的虚拟机 并选择ISO镜像文件

virt-install --name rhel9.2-2 --ram 2048 --vcpus 2 --location /var/lib/libvirt/images/rhel-9.2-x86_64-linuxprobe.com.iso --os-variant=rhl9 --disk /var/lib/libvirt/images/rhel9.2-2.qcow2,size=20,sparse=false -w network=default --graphics vnc,listen="0.0.0.0",port=5949
  • --name-n:设置虚拟机的名称
  • --ram-r:为虚拟机分配的内存(MB)
  • --vcpus:为虚拟机分配的虚拟CPU核心
  • --location-l:指定安装源的位置
  • --os-variant:指定操作系统的变种为rhel9,利于优化虚拟机的配置
    • 可以通过virt-install --osinfo list查看详细
  • --disk:虚拟机的磁盘设置
    • 磁盘文件路径为:/var/lib/libvirt/images/rhel9.2-2.qcow2
    • 磁盘格式为qcow2
    • 磁盘大小为20GB
    • sparse=false:不使用稀疏格式,预先分配整个磁盘空间
  • -w network=default:虚拟机连接的网络为default
  • --graphics vnc,listen="0.0.0.0",port=5949 :设置虚拟机的图形界面
    • 使用协议为VNC
    • 监听所有网络接口
    • VNC服务的端口号为5949
      RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第26张
      RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第27张

连接的VNC界面
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第28张

通过VNC远程控制KVM虚拟机安装

方法1-新添加插件

添加Overview插件
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第29张

选择Graphics
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第30张

删除掉原有的VNC
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第31张

方法2-直接编辑原有插件

编辑原有插件
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第32张

保证VNC客户端可以ping通宿主机
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第33张

开机
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第34张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第35张

VNC连接

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第36张
RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第37张

管理虚拟机

启动虚拟机

virsh start virname

关闭虚拟机

virsh shutdown virname

重启虚拟机

virsh reboot virname

查看虚拟机列表

virsh list --all

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第38张

快照管理

创建快照

virsh snapshot-create-as --domain virname --name new --description "Original environment"
  • snapshot-create-as:创建快照
  • --domain:虚拟机的名称或者ID
  • --name:快照的名称
  • --description:对快照的描述

恢复快照

virsh snapshot-revert --domian virname --snapshotname new
  • snapshot-revert:恢复快照
  • --domain:虚拟机的名称或ID
  • --snapshotname:快照的名称

删除快照

virsh snapshot-delete --domain virname --snapshotname snapshot1
  • snapshot-delete:删除快照
  • --domain:虚拟机的名称或ID
  • --snapshotname:快照的名称

报错信息汇总

新建虚拟机出现 Error:No active connection to install on

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第39张

这通常意味着virt-manager找不到一个激活的虚拟机连接(通常是libvirtd管理的一个连接),或者没有配置好虚拟机存储和网络连接

  • 检查libvirtd服务
systemctl status libvirtd
# 如果没有运行,需要运行该服务
systemctl enable --now libvirtd		# 启动服务并加入开机自启
  • 检查是否有可用的连接
通常默认会存在一个QEMU/KVM连接,如果没有需要手动添加连接
  • 检查权限
# 如果不是以root用户运行virt-manager,需要确保当前用户被添加到libvirt组中
usermod -aG libvirt user
连接映像时“Permission denied”意味着文件访问权限被拒绝

错误发生在QEMU尝试访问指定的ISO镜像文件时,因为它没有足够的权限来打开这个文件。错误信息中提到的“Permission denied”意味着文件访问权限被拒绝。

RedHat9中KVM虚拟机的配置与管理,在这里插入图片描述,第40张

  • 更改ISO文件的位置
# 将ISO文件移动到一个libvirt进程可以访问的目录
sudo mv /root/rhel-9.2-x86_64-linuxprobe.com.iso /var/lib/libvirt/images/
  • 更改ISO文件的权限
# 更改文件的权限,让libvirt用户(qemuva	)能够读取它
chown libvirt-qemu:libvirt-qemu /root/rhel-9.2-x86_64-linuxprobe.com.iso  
chmod 440 /root/rhel-9.2-x86_64-linuxprobe.com.iso
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!