课件-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 KVMpopsuper1.1 虚拟化的基本类型无虚拟化CPU一般设为四个RingKernel Mode一般跑在Ring 0上User Mode一般跑在Ring 3上对于一个普通的传统的Linux系统没有问题虚拟化在Guest机器和Host机器中间加一层HypervisorHost机器看它像跑在自己上面的程序Guest机器看它像自己所运行的硬件如果Host机器和Guest机器都跑相同的Linux,它们的Kernel都想运行在Ring 0,可怎么办?1.1 虚拟化的基本类型半虚拟化ParavirtualizationHypervisor运行在Kernel Mode, Ring 0Guest OS不能直接运行在Ring 0,而是需要对Kernel进行修改,将运行在Ring 0上的指令转为调用HypervisorGuest OS上的APP运行在Ring 31.1 虚拟化的基本类型非硬件辅助全虚拟化Full Virtualization without Hardware AssistHypervisor运行在Ring 0Hypervisor对Guest OS提供CPU模拟,由Hypervisor模拟一个CPU给VM,VM不直接使用真实的CPUGuest OS不做修改,还是试图运行在Ring 0上,只不过是模拟CPU的Ring 0Hypervisor对Guest OS的Ring 0上的指令进行转译,变成真实CPU的指令,只能运行在Ring 1上1.1 虚拟化的基本类型硬件辅助全虚拟化Full Virtualization with Hardware AssistIntel VT and AMD-V创建一个新的Ring -1单独给Hypervisor使用Guest OS可以直接使用Ring 0而无需修改1.1 虚拟化的基本类型OS virtualization实验一:查看系统是否支持硬件辅助虚拟化grep vmx /proc/cpuinfogrep svm /proc/cpuinfo对于Intel CPU对于AMD CPU1.2 KVM Qemu Libvirt之间的关系Qemu是一个模拟器,它向Guest OS模拟CPU,也模拟其他的硬件正如非硬件辅助全虚拟化讲到的,Guest OS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。由于所有的指令都要从Qemu里面过一手,因而性能比较差1.2 KVM Qemu Libvirt之间的关系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: /* ... */ }}KVM是内核的模块,采用硬件辅助虚拟化技术Intel-VT,AMD-V使用KVM,Guest OS的CPU指令不用经过Qemu转译,直接运行,大大提高了速度KVM通过/dev/kvm暴露接口,用户态程序可以通过ioctl来访问这个接口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到master1.2 KVM Qemu Libvirt之间的关系libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API1.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-installQemu-KVM接下来的章节介绍qemu-kvm,先不介绍libvirt2.1 QEMU-KVM: 安装第一个能上网的虚拟机wget /pub/ubuntu-iso/14.04.1

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档