QEMU、KVM和Libvirt有什么区别,如何与Vagrant配合使用?这三者都需要一起使用吗?

22

我以前用过Virtualbox和Vagrant,但是在这台计算机上Virtualbox无法工作,所以我想尝试不同的方法,但我无法理解这一系列软件、它们各自的用途以及相互依赖关系...... 我知道Vagrant boxes可以有QEMU或Libvirt(或KVM?)提供程序,还有qemu、qemu-kvm、vagrant-libvirt,我无法将它们分门别类地理解其相互连接。我想在主机上运行具有同步文件夹的虚拟机。这些都是必需的吗?如果不是,为什么要全部使用?这样我就可以更好地理解了。我在Debian 10上。


既然您似乎已经更熟悉VirtualBox,让它运行起来可能会对您有所帮助。 - oxr463
相关:https://serverfault.com/questions/208693/difference-between-kvm-and-qemu - smwikipedia
1个回答

36

QEMU、KVM和Libvirt的区别

QEMU 是一款机器(硬件)仿真器。

KVM 是用于 Linux 的内核模块,用于启用虚拟化;这是 hypervisor。

QEMU 可以在没有 KVM 的情况下运行,但速度会慢得多。

libvirt 是一个虚拟化库,它将 QEMU 和 KVM 封装起来,为其他程序提供 API,例如创建虚拟开发环境的工具Vagrant

总结:

  • Vagrant 使用 libvirt。
  • libvirt 使用 QEMU 和 KVM。

如何与 Vagrant 一起使用

首先,请确保安装所需的依赖项:

apt-get build-dep vagrant ruby-libvirt
apt-get install qemu libvirt-daemon-system libvirt-clients ebtables dnsmasq-base
apt-get install libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev

来源: https://github.com/vagrant-libvirt/vagrant-libvirt#installation

然后使用以下命令运行:

vagrant up --provider=libvirt

或者,使用环境变量替代:

export VAGRANT_DEFAULT_PROVIDER=libvirt

来源:https://github.com/vagrant-libvirt/vagrant-libvirt#start-vm


3
这是一个很好的总结!谢谢! - Frank Fu
3
不错的总结。VirtualBox或VMware怎么适用其中? - kroiz
4
请使用VirtualBox或VMware替换QEMU和KVM;它们都是带有自己驱动程序的虚拟化软件。 - oxr463

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接