基于 Linux系统的虚拟化技术比较
Linux KVM
Linux 将 KVM 合并到 Linux 内核中( 2.6.20)。KVM 是一种完全虚拟化解决方案,它有一个方面非常独特:
它将 Linux内核转换为一个使用内核模块的 hypervisor 。这个模块允许使用其他客户操作系统, 然后在宿主 Linux
内核的用户空间中运行。 内核中的 KVM 通过 /dev/kvm 字符设备来公开虚拟化后的硬件。 客户操作系统使用为
PC硬件仿真修改过的 QEMU 进程与 KVM 模块接口。
模块向内核中引入了一个新的执行模块。 普通内核模式和用户内核模式, 而 KVM 则引入了一种客户
内核模式。客户内核模式用来执行所有非 I/O 客户代码,而普通用户模式支持客户 I/O。 KVM 的引入是 Linux
的一个有 趣革 新, 因 为它代 表了作为主 流 Linux 内核一 部分 的第一个虚拟化 技术 。它 已经存 在于 2.6.20 树中,
不过 也可以 作为 2.6.19 内核的一个内核模块使用。 当在支持虚拟化的硬件 上运行 时,KVM 支持 Linux(32 位
和 64 位)和 Windows ( 32 位和 64 位)客户 机。
Xen 虚拟化
Xen 是在 剑桥大学 作为一个 研究项目被 开发出 来的, 它已经 在开 源社区 中得到了 极大 的推动 。Xen 是一 款
半虚拟化( paravirtualizing )VMM (虚拟 机监视器 ,Virtual Machine Monitor ),这 表示 ,为了 调 用系统 管理 程
序, 要有选择地 修改操作系统,然而 却不需要 修改操作系统 上运行的 应用程 序。 虽然 VMWare 等其他虚拟化
系统 实现 了完全的虚拟化(它 们不必 修改使用中的操作系统) ,但它们仍需要 进行 实时 的机器 代码 翻译 ,这会
影响性能 。
由于 Xen 需要 修改操作系统,所 以不能直 接让当前 的 Linux 内核在 Xen 系统 管理 程序中运行, 除非它 已
经移植 到了 Xen 架构 。不过, 如果当前 系统 可以 使用新的 已经移植 到 Xen 架构 的 Linux 内核, 那么就可以不
加修改 地运行 现有的系统。