阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

虚拟化与KVM介绍

132次阅读
没有评论

共计 3274 个字符,预计需要花费 9 分钟才能阅读完成。

一、什么是虚拟化?

虚拟化其实就是在电脑系统中虚拟电脑,以 CentOS 8 为例介绍

CentOS 8 提供了虚拟化功能,它使运行 CentOS 8 的机器 主机 多个虚拟机(VM),也被称为 Guest。VM 使用主机的物理硬件和计算资源来运行单独的虚拟化操作系统(guest OS),KVM 虚拟机作为主机操作系统上的用户空间进程

换句话说,虚拟化使得在操作系统内具有操作系统成为可能。

虚拟化软件:

  • VMware workstation-vmware
  • KVM-redhat
  • vbox-oracle

虚拟化与 KVM 介绍

虚拟化与 KVM 介绍

虚拟化的发展

  1. 仿真虚拟化:早期 VMware,对系统硬件没有要求, 性能最低。
  2. 半虚拟化:xen,虚拟机可以使用真机物理硬件,性能高,需要改内核
  3. 硬件辅助虚拟化:vmware kvm
    • 需要硬件支持 [cpu 主板]
    • 不需要改内核
    • 可以直接使用真机硬件,性能可达到真机的 95%
  4. 容器:docker

二、为什么需要虚拟化

有效利用机器资源

节约公司硬件采购成本

快速部署,减少采购流程

三、虚拟化的优势

与使用物理机相比,使用虚拟机(VM)具有以下好处:

  • 灵活细粒度的资源分配

    VM 在通常是物理主机的主机上运行,并且也可以分配物理硬件供 VM OS 使用。但是,向 VM 分配物理资源是在软件级别完成的,因此非常灵活。VM 使用主机内存,CPU 或存储空间的可配置部分,并且该配置可以指定非常细粒度的资源请求。

    例如,vm OS 看作为其磁盘的内容可以表示为主机文件系统上的文件,并且该磁盘的大小受约束的程度小于物理磁盘的可用大小。

  • 软件控制的配置

    VM 的整个配置将作为数据保存在主机上,并且受软件控制。因此,可以轻松地创建,删除,克隆,迁移,远程操作或连接到远程存储的 VM。

  • 与主机分离

    VM OS 在与主机 OS 分开的虚拟化内核上运行。这意味着任何操作系统都可以安装在 VM 上,即使 VM 操作系统变得不稳定或受到威胁,主机也不会受到任何影响。

  • 节省空间和成本

    一台物理计算机可以承载大量 VM。因此,它避免了需要多个物理机器执行相同的任务,从而降低了与物理硬件相关联的空间,功耗和维护要求。

  • 软件兼容性

    由于 VM 可以使用与其主机不同的 OS,因此虚拟化可以运行最初未为主机 OS 发布的应用程序。例如,使用 CentOS 6 guest 虚拟机操作系统,可以在 CentOS 8 主机系统上运行为 CentOS 6 发布的应用程序。

四、KVM 介绍

KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。CentOS 8 中的虚拟化包含以下主要软件组件:

4.1、虚拟机组件及其交互

管理程序

hypervisor(VMM): 在 CentOS 8 中创建虚拟机(VM)的基础是hypervisor,它是控制硬件并允许在主机上运行多个操作系统的软件层。

系统管理程序包括 基于内核的虚拟机 KVM 模块和虚拟化内核驱动程序,例如virtiovfio。这些组件可确保主机上的 Linux 内核为用户空间软件提供虚拟化资源。

QEMU: 在用户空间级别,QEMU仿真器模拟可运行虚拟机操作系统的完整虚拟化硬件平台,并管理如何在主机上分配资源并将其呈现给虚拟机。

QEMU 是一套由 Fabrice Bellard 所编写的模拟处理器的自由软件。它与 Bochs,PearPC 近似,但其具有某些后
两者所不具备的特性,如高速度及跨平台的特性。经由 kqemu 这个开源的加速器,QEMU 能模拟至接近真实电脑的速度。QEMU 是一个主机上的 VMM(virtual machine monitor), 通过动态二进制转换来模拟 CPU,并提供一系列的硬件
模型,使 guest os 认为自己和硬件直接打交道,其实是同 QEMU 模拟出来的硬件打交道,QEMU 再将这些指令翻译给真
正硬件进行操作。通过这种模式,guest os 可以和主机上的硬盘,网卡,CPU,CD-ROM,音频设备和 USB 设备进行交
互。但由于所有指令都需要经过 QEMU 来翻译,因而性能会比较差。KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具 QEMU-KVM。所以
 Linux 发行版中分为 内核部分的 KVM 内核模块和 QEMU-KVM 工具。这就是 KVM 和 QEMU 的关系。Libvirt、virsh、virt-manager:尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机,RedHat 为 KVM 开发
了更多的辅助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。CentOS 8 特别说明
尽管 QEMU 是该体系结构的重要组成部分,但出于安全考虑,它并不打算直接在 CentOS  8 系统上使用。因此,qemu-*
红帽不支持使用命令,强烈建议使用 libvirt 与 QEMU 进行交互。

libvirt: libvirt 软件套件还充当管理和通信层,使 QEMU 易于与之交互,执行安全规则,并提供了许多用于配置和运行 VM 的其他工具。

Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且
支持 Xen 等其他虚拟机。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机,便可以
用同样的命令控制不同的虚拟机了。Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令 virsh,你可以通过使用 virsh 命令来使用
libvirt 的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-manager。他是一套用 python 编写的虚拟机管理图形界面,用户
可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt 的 API 实现的。

拓展 -CPU 分层

虚拟化与 KVM 介绍

cpu 分为 4 层    ring0-ring3 
0 执行特权指令
3 用户指令
ring1   vmm

XML 配置

基于主机的 XML 配置文件(也称为 域 XML文件)描述了特定的 VM。这包括:

  • 元数据,例如 VM 的名称,时区以及有关 VM 的其他信息。
  • VM 中的设备的描述,包括虚拟 CPU(vCPUS),存储设备,输入 / 输出设备,网络接口卡以及其他实际和虚拟硬件。
  • VM 设置,例如它可以使用的最大内存量,重新启动设置以及有关 VM 行为的其他设置。

组件互动

启动 VM 后,系统管理程序将使用 XML 配置来创建 VM 的实例,作为主机上的用户空间进程。管理程序也使得虚拟机进程访问的基于主机的接口,比如 virshvirt-installguestfish实用程序或 Web 控制台 GUI。

使用这些虚拟化工具时,libvirt 会将其输入转换为 QEMU 的指令。QEMU 将指令传递给 KVM,以确保内核适当分配执行指令所需的资源。结果,QEMU 可以执行相应的用户空间更改,例如创建或修改 VM,或在 VM 的操作系统中执行操作。

4.2、CentOS 8 虚拟化架构

虚拟化与 KVM 介绍

五、虚拟化管理的工具

您可以使用命令行界面(CLI)或几个图形用户界面(GUI)在 CentOS 8 中管理虚拟化。

命令行界面

CLI 是 CentOS 8 中管理虚拟化的最强大方法。虚拟机(VM)管理的主要 CLI 命令包括:

  • virsh- 通用的虚拟化命令行实用程序和 shell,具有多种用途,具体取决于提供的参数。例如:

  • 启动和关闭 VM- virsh startvirsh shutdown

    • 列出可用的 VM- virsh list
    • 从配置文件创建 VM- virsh create
    • 进入虚拟化命令行 - virsh
  • virt-install- 用于创建新 VM 的 CLI 实用程序。

  • virt-xml - 用于编辑 VM 配置的实用程序。

  • guestfish- 用于检查和修改 VM 磁盘映像的实用程序

图形界面

您可以使用以下 GUI 在 CentOS 8 中管理虚拟化:

  • 所述 CentOS 8 web 控制台,也称为 驾驶舱,提供了一种远程访问和易于使用的图形用户界面,用于管理虚拟机和虚拟化主机。

  • Virtual Machine Manager(virt-manager)应用程序提供了用于管理 VM 和虚拟化主机的专用 GUI。

注意
尽管 CentOS 8 仍支持该功能,但不赞成使用 virt-manager。Web 控制台打算在后续版本中替代它。因此,建议您熟悉用于
在 GUI 中管理虚拟化的 Web 控制台。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-09发表,共计3274字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中