当前位置: 首页 > java >正文

【Linux】KVM简单介绍

KVM

1 是什么

KVM(Kernel-based Virtual Machine)是一种开源的全虚拟化解决方案,它允许你在运行 Linux 操作系统的物理主机上创建和运行多个隔离的虚拟环境,这些虚拟环境被称为虚拟机。

简单来说,KVM 可以把一台物理服务器变成多台虚拟服务器,每台虚拟机都可以运行自己的操作系统(如 Linux、Windows 等)和应用程序,就像独立的物理机器一样。

2 特点

  1. 集成于 Linux 内核:

    • KVM 本身是一个 Linux 内核模块。这意味着它直接构建在 Linux 内核中,利用了内核本身的内存管理、调度、设备模型等基础设施,从而提供了高性能和稳定性。
  2. 硬件辅助虚拟化:

    • KVM 需要 CPU 支持硬件虚拟化技术(如 Intel VT-x 或 AMD-V)。它利用这些 CPU 特性直接在硬件层面上执行虚拟机的大部分指令,大大提高了虚拟化的效率和性能。这是 KVM 高性能的关键。
  3. 类型 1 管理程序(Hypervisor):

    • 由于 KVM 是内核的一部分,它使得 Linux 内核本身充当了管理程序的角色。从架构上看,KVM 通常被归类为类型 1 管理程序(裸机管理程序),因为它直接运行在硬件之上。然而,启动时你首先启动的是 Linux 操作系统,然后 KVM 模块加载后,该 Linux 内核就成为了 Hypervisor。

3 与其他工具的联合使用

  1. QEMU 作为设备模拟器:
    • KVM 本身负责处理 CPU 和内存的虚拟化(硬件加速部分)。
    • QEMU 是一个通用的开源机器模拟器和虚拟化器。在 KVM 的上下文中,QEMU 负责模拟虚拟机的硬件设备(如磁盘、网卡、显卡、USB 控制器等),并处理 I/O 请求。通常我们说“使用 KVM 虚拟化”时,实际指的是 KVM + QEMU 的组合。
    • QEMU 可以将 CPU 指令的执行任务卸载给 KVM 模块(利用硬件加速),而自己专注于设备模拟和管理。

设备模拟器:

设备模拟器是一种软件工具,用于在虚拟环境中模拟真实硬件设备的行为和特性。它允许开发者在没有实际物理设备的情况下进行测试和开发,主要功能包括:

硬件行为模拟:如处理器指令集、内存管理、I/O操作等
外围设备模拟:包括显示屏、键盘、传感器等虚拟组件
网络通信模拟:支持各种网络协议和连接方式的仿真

  1. 管理工具:
    • Libvirt: 一个管理虚拟化平台的工具包和 API 守护进程(libvirtd),为各种虚拟化技术(包括 KVM)提供统一的接口。它是管理 KVM 最常用、最强大的方式。
    • Virsh: 基于 Libvirt 的命令行工具,用于管理虚拟机(创建、启动、停止、监控等)。
    • Virt-Manager: 基于 Libvirt 的图形化管理工具。
    • Cloud Platforms: OpenStack, oVirt/RHEV 等云管理平台通常使用 KVM 作为底层的虚拟化引擎。

4 主要优势

  • 高性能和低开销: 得益于硬件辅助虚拟化和内核集成,KVM 虚拟机的性能非常接近物理机。
  • 开源免费: 作为 Linux 内核的一部分和开源软件,KVM 本身是免费的,避免了高昂的许可费用。
  • 安全性: 受益于 Linux 内核的安全特性和隔离机制。
  • 可扩展性: 能够支持大量虚拟机和用户。
  • 成熟稳定: 被广泛采用,是 Linux 生态中主流的虚拟化技术。
  • 与 Linux 生态集成: 完美融入 Linux 工具链和管理方式(如 Libvirt, Virsh, Virt-Manager)。
  • 支持多种客户机操作系统: Linux, Windows, BSD 等。

5 应用场景

  • 服务器虚拟化/整合: 在单台物理服务器上运行多个应用服务器、数据库服务器等,提高硬件利用率。
  • 云计算基础架构: 是 OpenStack, Amazon Web Services, Google Cloud Platform 等主流公有云和私有云平台广泛使用的底层虚拟化技术。
  • 开发和测试: 快速创建隔离的测试环境,测试不同操作系统或软件配置。
  • 桌面虚拟化: 在 Linux 桌面环境下运行其他操作系统(如 Windows 应用程序)。
  • 灾难恢复和高可用性: 虚拟机可以更容易地在物理主机之间迁移。

6 总结

KVM 是 Linux 内核内置的一个高性能、开源的硬件辅助虚拟化模块。它利用 CPU 的虚拟化扩展,结合 QEMU 的设备模拟能力,使 Linux 操作系统能够作为 Hypervisor 运行多个隔离的虚拟机。凭借其性能、成本效益和与 Linux 生态的深度集成,KVM 已成为企业级虚拟化和云计算基础设施的基石技术之一。

http://www.xdnf.cn/news/14366.html

相关文章:

  • WebSocket深度指南:从零基础到生产级应用
  • Linux下的MySQL从DDL到DQL的基础操作
  • Leetcode 刷题记录 15 —— 二分查找
  • Elastic Search 学习笔记
  • 强化学习-UCB示例
  • Python 模块
  • 鸿蒙Next仓颉语言开发实战教程:设置页面
  • 实验绘图参考-0615版(自用)
  • 力扣第 454 场周赛
  • 「AI产业」| 《德勤:AI案例精选》
  • NJet Portal 应用门户管理介绍
  • Django构建简易视频编辑管理系统
  • Hadoop HDFS存储机制与块大小选择权衡
  • 如何面试网络信息安全岗位答疑(一)NISP管理中心
  • 2.1 Python解释器工作原理
  • [深度学习]目标检测基础
  • leetcode 1432. 改变一个整数能得到的最大差值 中等
  • MQTT:构建高效物联网通信的轻量级协议
  • Python实战项目 贪吃蛇 源码分享 毕业设计
  • 自动驾驶系统研发系列—激光雷达干扰实战:自动驾驶安全的隐形陷阱
  • (LeetCode 动态规划(基础版)) 518. 零钱兑换 II (动态规划dp)
  • Python训练营打卡 Day54
  • ONLYOFFICE 协作空间 企业版使用秘籍-5.企业电子文件如何管理?便于查找、访问和协作,轻松提升效率
  • 操作系统八股文
  • Python密码加密与校验详解
  • python profiling
  • (十六)GRU 与 LSTM 的门控奥秘:长期依赖捕捉中的遗忘 - 更新机制对比
  • ShardingSphere 全面学习路径
  • 编译链接实战(31)再论静态库的本质是啥
  • LeetCode 2300.咒语和药水的成功对数