KVM、QEMU与libvirt介绍

KVM

对于kvm( Kernel-based Virtual Machine)来说,其是一款支持虚拟机技术,而且是linux内核中的一个功能模块。

它在linux2.6.20之后的任何linux分支中都被支持。它还有一个条件,对硬件要求的条件,必须达到一定标准的硬件架构。对于Intel-VT与AMD-V都是支持的。对于是否支持也可以通过命令行查看:egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo。如果有任何内容则说明当期硬件架构是支持kvm的,否则就不支持。另外,就算支持,但是在bios中是默认设置不打开该功能的,所以你还要去bios设置其为enable。当设置成功之后,还需要关机一次,注意是关机而不是重启。否则该设置的更改就不起效。

QEMU

QEMU也是一款虚拟化技术,就算不使用kvm,单传的qemu也可以完全实现一个虚拟机。那为何还会有qemu-kvm这个名词那。是因为虽然kvm的技术已经相当成熟而且可以对很多东西进行隔离,但是在某些方面还是无法虚拟出真实的机器。比如对网卡的虚拟,那这个时候就需要另外的技术来做补充,而qemu-kvm则是这样一种技术。它补充了kvm技术的不足,而且在性能上对kvm进行了优化。

libvirt

libvirt是一系列提供出来的库函数,用以其他技术调用,来管理机器上的虚拟机。因为它的设计理念是面向驱动的架构设计,而对任何一种虚拟机技术都开发设计相对于该技术的驱动,这样不同虚拟机技术就可以使用不同驱动,而且相互直接不会影响,方便扩展。而且libvirt提供了多种语言的编程接口,可以直接通过编程,调用libvirt提供的对外接口实现对虚拟机的操作。因此libvirt可以提供对上述各种虚拟机进行管理。包括各种虚拟机技术,kvm、xen与lxc等,都可以调用libvirt提供的api对虚拟机进行管理。如今流行的云计算中的IaaS是与该库联系相当密切的。通过下图可以看出它的架构设计思想。

从该图可以看出,在libvirt api之上会有很多个driver,对于每一种虚拟机技术都会有一种driver,用来充当该虚拟机技术与libvirt之间的包装接口。如此设计就可以避免libvirt需要设计各种针对不同虚拟机技术的接口,它主要关注底层的实现,提供对外接口调用,而不同的虚拟机技术通过调用libvirt提供的接口来完成自己所需要的功能。

libvirt

Reference

KVM、QEMU与libvirt介绍 |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值