虚拟化kvm-虚拟化概述


这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/109291533
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!


写在开头的话

  • 请记住:实践是掌握知识的最快方法
  • 如果你只是怀着看看的态度去快速浏览文章,而不去认认真真的把文章里面讲的任何一个知识点去实践一遍,那么你永远也掌握不了它
  • 生命不息,折腾不止!

虚拟化概述

00. 什么是虚拟化

0.1 虚拟化的定义

  • 在计算机技术中,虚拟化意味着创建设备或资源的虚拟版本,如服务器、存储设备、网络或者操作系统

  • 虚拟化技术

    • 系统虚拟化
      • 将物理服务器划分为一个个可执行单元,使物理服务器存在多个操作系统
    • 存储虚拟化
      • raid
      • lvm逻辑卷管理
      • vtl
      • sds:软件定义存储
    • 网络虚拟化
      • 控制平面虚拟化
      • 数字平面虚拟化
      • sdn:软件定义网络
    • GPU虚拟化
      • 虚拟机共享GPU显卡
    • 软件虚拟化
    • 硬件支持虚拟化
      • sr-iov:对网卡设备封装管理共享

0.2 系统虚拟化

  • 这种虚拟化通常表现为在单一系统上允许多个操作系统
  • 这些虚拟化操作系统同时运行,每个操作系统又是相互独立
  • 虚拟化有三种实现方式
    • 纯软件仿真
    • 虚拟化翻译
    • 容器技术

0.3 纯软件仿真

  • 通过模拟完整的硬件环境来虚拟化来宾平台
  • 模拟X86ARMPowerPC等多种CPU
  • 效率比较低
  • 产品或方案
    • QEMUBochsPearPC

0.4 虚拟化翻译

  • 多数的虚拟化而采用虚拟机管理程序Hypervisor
  • Hypervisor是一个软件层或子系统
    • 也称之为VMM(Virtual Machine Monitor,虚拟机监控器)
  • 允许多种操作系统在相同的物理系统中运行
  • 控制硬件并向来宾操作系统提供访问底层硬件的途径
  • 向来宾操作系统提供虚拟化的硬件

在这里插入图片描述

0.5 X86CPU的保护环

  • 图示

在这里插入图片描述

0.6 无硬件辅助的全虚拟化

  • FUll Virtualization without Hardware Assist
  • 基于二进制翻译的全虚拟化
  • FUll Virtualization with Binary Translation
  • Hypervisor运行在Ring 0
  • Guest OS运行Ring 1
  • 机制:异常、捕获、翻译
  • 示例:
    • VMware Workstation
    • QEMU
    • Virtual PC

在这里插入图片描述

07. 半虚拟化

  • 也称之为:超虚拟化、操作系统辅助虚拟化
  • Hypervisor运行Ring 0
  • Guest OS不能直接运行在Ring 0,需要对Kernel进行修改,将运行在Ring 0上的指令转为调用Hypervisor
  • Guest OS上的APP运行在Ring 3
  • 示例:Xen

因为涉及到对kernel的修改,所以只能支持linux而不支持Windows

0.8 硬件辅助的全虚拟化

  • Full Virtualization with Hardware Assist

  • Intel VT 和 AMD-V创建一个新的Ring -1单独给Hypervisor使用

  • Guest OS可以直接使用Ring 0而无需修改

  • 示例

    • VMware ESXi
    • Microsoft Hyper-V
    • Xen3.0
    • KVM

在这里插入图片描述


0.9 LXC 和 Docker

  • 一个轻量级/操作系统虚拟化方式,由Linux内核支持
  • 起源:chroot系统调用,对当前程序及其子进程改变根目录
  • 优势:
    • 更快速的交付和部署
    • 更高效的虚拟化
    • 更为轻松的迁移和扩展
    • 更简单的管理

0.10 Hypervisor 分类

  1. 裸金属型
  2. 宿主型

0.11 小结

  • 虚拟化实现技术
    • 纯软件仿真:QEMUBochsPearPC
    • 虚拟化翻译
      • 无硬件辅助的全虚拟化
      • 半虚拟化
      • 硬件辅助的全虚拟化
    • 容器技术
      • LXCDocker
  • Hypervisor的分类:
    • 类型1:裸金属型
    • 类型2:宿主型

01. KVM是什么?

1.1 lsmod

  • Linux lsmod(英文全拼:list modules)命令用于显示已载入系统的模块。
  • 执行 lsmod 指令,会列出所有已载入系统的模块。Linux 操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。

1.2 KVM体系结构

  • KVM

    • 初始化CPU硬件,打开虚拟化模式,以支持虚拟机的运行
    • 负责CPU、内存、中断、控制器、时钟
  • QEMU

    • 模拟网卡、显卡、存储控制器和硬盘
  • libvirt

    • 它提供统一API、守护进程libvirtd和一个默认命令行管理工具virsh

在这里插入图片描述

  • libvirt

在这里插入图片描述

OpenStack使用的就是libvirtAPI管理虚拟机

1.3 KVM集中管理与控制

  • www.linux-kvm.org
  • Ovirt
    • 功能强大,是RedHat虚拟化管理平台RHEV的开源版本
    • www.ovirt.org
  • WebVirtMgr
    • www.WebVirtMgr.net
    • virt-managerWeb模式的替代品
  • ConVirt
    • www.convirture.com
    • 分开源版本和商业版本

1.4 Hypervisor/VMM的选择

  • 电信/ISP 公有云

    • 单一hypervisor
    • KVM
  • 互联网公司

    • 单一hypervisor
    • KVM
  • Web托管和SAS细分市场

    • 单一或多个hypervisor
    • 容器(LXCParallelsDocker
    • KVM
  • 企业

    • 多种Hypervisor
    • kvmvCenter/ESXi

1.5 国产虚拟化解决方案概述

  • 不要重复造轮子
  • 国产虚拟化解决方案重点在虚拟化的管理桌面协议
  • hypervisor/VMM选择
    • H3KVM
    • 红山:Xen
    • 华为:Xen -> KVM -> Xen
    • 浪潮:Xen
    • 普华:KVM
    • 锐捷:KVM
    • 深信服:KVM
    • 其他kvm居多

1.6 资源与参考资料

  • redhat官方文档
    • https://access.redhat.com/documentation/en-us/
  • kvm主页
    • https://www.linux-kvm.org/page/Main_Page
    • 提供了kvm的详细信息,以及大量信息来源和相关站点的链接
  • libvirt Virtualization API网站
    • http://www.libvirt.org
    • 提供了有关API、所支持的虚拟化抽象及其使用的XML格式的详细信息


写在最后的话:

  • 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
  • 欢迎关注我的CSDN博客,IDYS’BLOG
  • 持续更新内容
    linux基础 | 数据通信(路由交换,WLAN) | Python基础 | 云计算
  • 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
  • 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页