Libvirt Qemu KVM 教程大全.pptx

  1. 1、本文档共240页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Libvirt Qemu KVM 教程大全

Qemu Libvirt KVM popsuper 1.1 虚拟化的基本类型 无虚拟化 CPU一般设为四个Ring Kernel Mode一般跑在Ring 0上 User Mode一般跑在Ring 3上 对于一个普通的传统的Linux系统没有问题 虚拟化 在Guest机器和Host机器中间加一层Hypervisor Host机器看它像跑在自己上面的程序 Guest机器看它像自己所运行的硬件 如果Host机器和Guest机器都跑相同的Linux,它们的Kernel都想运行在Ring 0,可怎么办? 1.1 虚拟化的基本类型 半虚拟化Paravirtualization Hypervisor运行在Kernel Mode, Ring 0 Guest OS不能直接运行在Ring 0,而是需要对Kernel进行修改,将运行在Ring 0上的指令转为调用Hypervisor Guest OS上的APP运行在Ring 3 1.1 虚拟化的基本类型 非硬件辅助全虚拟化 Full Virtualization without Hardware Assist Hypervisor运行在Ring 0 Hypervisor对Guest OS提供CPU模拟,由Hypervisor模拟一个CPU给VM,VM不直接使用真实的CPU Guest OS不做修改,还是试图运行在Ring 0上,只不过是模拟CPU的Ring 0 Hypervisor对Guest OS的Ring 0上的指令进行转译,变成真实CPU的指令,只能运行在Ring 1上 1.1 虚拟化的基本类型 硬件辅助全虚拟化 Full Virtualization with Hardware Assist Intel VT and AMD-V创建一个新的Ring -1单独给Hypervisor使用 Guest OS可以直接使用Ring 0而无需修改 1.1 虚拟化的基本类型 OS virtualization 实验一:查看系统是否支持硬件辅助虚拟化 对于Intel CPU 对于AMD CPU grep vmx /proc/cpuinfo grep svm /proc/cpuinfo 1.2 KVM Qemu Libvirt之间的关系 Qemu是一个模拟器,它向Guest OS模拟CPU,也模拟其他的硬件 正如非硬件辅助全虚拟化讲到的,Guest OS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。 由于所有的指令都要从Qemu里面过一手,因而性能比较差 1.2 KVM Qemu Libvirt之间的关系 KVM是内核的模块,采用硬件辅助虚拟化技术Intel-VT,AMD-V 使用KVM,Guest OS的CPU指令不用经过Qemu转译,直接运行,大大提高了速度 KVM通过/dev/kvm暴露接口,用户态程序可以通过ioctl来访问这个接口 open(/dev/kvm) ioctl(KVM_CREATE_VM) ioctl(KVM_CREATE_VCPU) for (;;) { ioctl(KVM_RUN) switch (exit_reason) { case KVM_EXIT_IO: /* ... */ case KVM_EXIT_HLT: /* ... */ } } 1.2 KVM Qemu Libvirt之间的关系 Qemu将KVM整合进来,通过ioctl调用/dev/kvm接口,将有关CPU指令的部分交由内核模块来做,就是qemu-kvm (qemu-system-XXX) Qemu还会模拟其他的硬件,如Network, Disk,同样会影响这些设备的性能 于是产生pass through半虚拟化设备virtio_blk, virtio_net,提高设备性能 Qemu-kvm对kvm的整合从release_0_5_1开始有branch,在1.3.0正式merge到master 1.2 KVM Qemu Libvirt之间的关系 libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API 1.2 KVM Qemu Libvirt之间的关系 总结: Libvirtd是一个daemon进程,可以被本地的virsh调用,也可以被远程的virsh调用 Libvirtd调用qemu-kvm操作虚拟机 有关CPU虚拟化的部分,qemu-kvm调用kvm的内核模块来实现 实验二:安装KVM, Qemu, Libvirt 查看内核模块中是否含有kvm, ubuntu默认加载这些模块 安装qemu-kvm 实验二:安装KVM, Qemu, Libvirt 安装libvirt 安装virt-insta

文档评论(0)

hf916589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档