searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

KVM简单介绍

2023-06-19 05:58:06
71
0
一、KVM的概念
KVM全称是Kernel Viirtual Machine,也就是内核虚拟机。它是Linux中的一个内核模块而已,这个模块使得Linux操作系统具备了Hypervisor功能
KVM支持的功能:
    1.支持CPU和内存的超分(overcommit)
    2.支持半虚拟化IO(virtio)
    3.支持热插拔(cpu,块设备,网络设备等)
    4.支持对称多处理(symmetric multi-processing,SMP):即在一台计算机上汇集了多个CPU,个CPU之间共享内存子系统和总线结构
    5.支持实时迁移
    6.支持PCI设备的直接分配和单IO虚拟化(SR-IOV)
    7.支持内核同页合并(KSM):通过合并内存页来增加开发虚拟机的数量,通过合并具有相同核心代码的guest,节省内存空间
    8.支持NUMA(非一致性存储访问结构)
基于这些功能,咱们熟悉的openstack也是基于此基础上开发的
 
二、KVM原理
    KVM本身不执行任何的模拟操作的,模拟这个艰巨的任务是需要交给用户空间的应用程序QEMU来处理的,Qemu会通过/dev/kvm这个接口设置一个客户机虚拟服务器的地址空间,来提供模拟的I/O的,具体是一个比较复杂的过程,大家可以上网查询,或者看看KVM实战这本书,KVM主要功能是初始化CPU硬件,然后打开虚拟化模式,虚拟客户机运行在虚拟机模式下,并对虚拟机的运行提供一定的支持。
    KVM和QEMU是协同工作的关系。
   
 
三、KVM基础功能
  • CPU
        QEMU提供对CPU的模拟,展现给客户机一定数目的CPU数目和CPU特性。在KVM打开情况下,客户机的CPU指令由硬件处理器虚拟化功能(intel VT-X)辅助执行.
        KVM环境中,每个客户机都是标准的Linux进程(QEMU进程),而每个vCPU在宿主机中都是QEMU派生的普通线程。
        linux中一般又两种执行模式,内核模式和用户模式,在KVM中增加了客户模式
        用户模式:主要处理I/O的模拟和管理,由QEMU实现
        内核模式:主要处理高性能和高安全相关的指令,如客户模式到内核模式的转换,处理客户模式下I/O指令或其他特权引起的VM-Exit,处理影子内存管理
        客户模式:执行大部分guest的指令,除了I/O和一些特权指令
 
四、虚机的上网方式
  • NAT模式
  • Bridge方式
           
以上就是对KVM做了一些简单的介绍,实际上的工作原理比介绍的要更加的复杂
0条评论
作者已关闭评论
梁****子
1文章数
0粉丝数
梁****子
1 文章 | 0 粉丝
梁****子
1文章数
0粉丝数
梁****子
1 文章 | 0 粉丝
原创

KVM简单介绍

2023-06-19 05:58:06
71
0
一、KVM的概念
KVM全称是Kernel Viirtual Machine,也就是内核虚拟机。它是Linux中的一个内核模块而已,这个模块使得Linux操作系统具备了Hypervisor功能
KVM支持的功能:
    1.支持CPU和内存的超分(overcommit)
    2.支持半虚拟化IO(virtio)
    3.支持热插拔(cpu,块设备,网络设备等)
    4.支持对称多处理(symmetric multi-processing,SMP):即在一台计算机上汇集了多个CPU,个CPU之间共享内存子系统和总线结构
    5.支持实时迁移
    6.支持PCI设备的直接分配和单IO虚拟化(SR-IOV)
    7.支持内核同页合并(KSM):通过合并内存页来增加开发虚拟机的数量,通过合并具有相同核心代码的guest,节省内存空间
    8.支持NUMA(非一致性存储访问结构)
基于这些功能,咱们熟悉的openstack也是基于此基础上开发的
 
二、KVM原理
    KVM本身不执行任何的模拟操作的,模拟这个艰巨的任务是需要交给用户空间的应用程序QEMU来处理的,Qemu会通过/dev/kvm这个接口设置一个客户机虚拟服务器的地址空间,来提供模拟的I/O的,具体是一个比较复杂的过程,大家可以上网查询,或者看看KVM实战这本书,KVM主要功能是初始化CPU硬件,然后打开虚拟化模式,虚拟客户机运行在虚拟机模式下,并对虚拟机的运行提供一定的支持。
    KVM和QEMU是协同工作的关系。
   
 
三、KVM基础功能
  • CPU
        QEMU提供对CPU的模拟,展现给客户机一定数目的CPU数目和CPU特性。在KVM打开情况下,客户机的CPU指令由硬件处理器虚拟化功能(intel VT-X)辅助执行.
        KVM环境中,每个客户机都是标准的Linux进程(QEMU进程),而每个vCPU在宿主机中都是QEMU派生的普通线程。
        linux中一般又两种执行模式,内核模式和用户模式,在KVM中增加了客户模式
        用户模式:主要处理I/O的模拟和管理,由QEMU实现
        内核模式:主要处理高性能和高安全相关的指令,如客户模式到内核模式的转换,处理客户模式下I/O指令或其他特权引起的VM-Exit,处理影子内存管理
        客户模式:执行大部分guest的指令,除了I/O和一些特权指令
 
四、虚机的上网方式
  • NAT模式
  • Bridge方式
           
以上就是对KVM做了一些简单的介绍,实际上的工作原理比介绍的要更加的复杂
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0