文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

虚拟化四、KVM虚拟化技术

2023-06-04 21:45

关注

一、KVM概述

1、KVM

     Kernel-based Virtual Machine 基于内核的虚拟机

     以色列Qumranet公司研发,是内核的一个模块

     2006年研发,2008被RedHat收购了

     依赖于HVM技术:Intel VT-X,AMD AMD-V

2、KVM模块载入后的系统运行模式

内核模式:GuestOS执行I/O类操作,或其它的特殊指令的操作  

用户模式:代表GuestOS代为请求I/O类操作,

来宾(guest)模式:GuestOS的非I/O类操作,事实上,它被称作虚拟机的用户模式

3、KVM的组件

两类组件:

      /dev/kvm:工作于hypervisor,在用户空间可通过ioctl()系统调用来完成VM创建,启动等管理功能,它是一个字符设备,

                     功能:创建VM,为VM分配内存,读写VCPU的寄存器,向CPU注入中断,运行VCPU等

    qemu进程:工作于用户空间,主要用于实现模拟PC机的I/O设备

4、KVM特性

1)内存管理

          将分配给VM的内存交换至SWAP

          支持使用Huge Page(大内存页);

          支持使用Intel EPT或AMD RVI技术完成内存地址映射:GVA-->GPA-->HPA简化为GVA-->HPA

          支持KSM (Kernel Same-page Merging)

                   这个内核特性实现了内存页面共享。KSM通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时,KSM会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同GuestOS的虚拟机之间出现相同内存页面的概率是很的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此,KSM技术可以降低内存占用进而提高整体性能。

2)硬件支持

   取决于Linux内核;

3)存储:

本地存储:

网络附加存储:

存储区域网络:

分布式存储:例如GlustFS

4)实时迁移:

支持的GuestOS:

       Linux, Windows, OpenBSD, FreeBSD, OpenSolaris; 

5)设备驱动:

IO设备的完全虚拟化:模拟硬件

IO设备的半虚拟化:在GuestOS中安装驱动;virtio

               virtio-blk, virtio-net, virtio-pci, virtio-console, virtio-ballon

5、KVM局限性

一般局限性:

CPU overcommit

时间记录难以精确,依赖于时间同步机制

MAC地址:

VM量特别大时,存在冲突的可能性;

实时迁移:

性能局限性:

6、KVM的工具栈介绍

分为2大类:

qemu:

       qemu-kvm

       qemu-img

libvirt

       GUI: virt-manager, virt-viewer

       CLI: virt-install, virsh

QEMU主要提供了以下几个部分:

        处理器模拟器

        仿真IO设备

       关联模拟的设备至真实设备;

       调试器

      与模拟器交互的用户接口

补充资料:

VMM:对IO的驱动有三种模式:

自主VMM:VMM自行提供驱动和控制台;

混合VMM:借助于OS提供驱动;

                   依赖于外部OS实现特权域

                    自我提供特权域

寄宿式VMM:

二、KVM安装

1、安装kvm

1) 确保CPU支持HVM

# grep -E --color=auto "(vmx|svm)" /proc/cpuinfo

2) 装载模块

[root@BAIYU_180 ~]# lsmodModule                  Size  Used byppdev                   8537  0 vmware_balloon          7199  0 parport_pc             22690  0 parport                36209  2 ppdev,parport_pcmicrocode             112685  0 snd_ens1371            21587  0 snd_rawmidi            23017  1 snd_ens1371

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧