码迷,mamicode.com
首页 > 其他好文 > 详细

KVM虚拟化

时间:2020-09-02 16:52:52      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:vcpu   修改   intel   内核和   内核   guest   定义   中断   调用   

KVM
  1. kvm为2型虚拟化

    • kvm.ko 负责cpu和内存的虚拟化支持(负责cpu、内存、中断控制台、时钟)
    • linux内核和qemu负责外设和io的支持(模拟网卡、显卡、存储控制台和硬盘等)
    • 一个 KVM 虚机在宿主机中其实是一个 qemu-kvm 进程,与其他 Linux 进程一样被调度;虚机中的每一个虚拟 vCPU 则对应 qemu-kvm 进程中的一个线程;KVM 需要实现 VA(虚拟内存) -> PA(物理内存) -> MA(机器内存)之间的地址转换
  2. 虚拟化实现方式

    • 纯软件仿真(qemu)
    • 虚拟化翻译(hypervisor:kvm)
      • 没有硬件辅助的全虚拟化(基于二进制翻译的全虚拟化):hypervisor运行在ring0;guest os运行在ring1;guest app运行在ring3;机制:异常、捕获、翻译(guest os执行特权指令的时候)
      • 半虚拟化:hypervisor运行在ring0;guest os不能运行在ring0上,需要对kernel进行修改,将运行在ring0上的指令转为调用hypervisor;guest app运行在ring3上(xen,虚拟机知道自己运行在虚拟化上)
      • 硬件辅助的全虚拟化:Intel VT和AMD-V创建了一个新的ring -1单独给hypervisor使用;hypervisor运行在ring -1;guest os运行在ring0;guest app运行在ring3(kvm)
    • 容器技术
  3. Storage Pool
    • KVM 所有可以使用的 Storage Pool 都定义在宿主机的 /etc/libvirt/storage 目录下,每个 Pool 一个 xml 文件
      virsh pool-list --all
      virsh pool-define /etc/libvirt/storage/HostVG.xml
      virsh pool-start HostVG

KVM虚拟化

标签:vcpu   修改   intel   内核和   内核   guest   定义   中断   调用   

原文地址:https://blog.51cto.com/kgdbfmwfn/2522360

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!