从哪里开始使用Xen?

时间:2012-07-20 08:04:44

标签: xen

我是Xen的新手。我想知道Xen是如何工作的。 面对代码时,这真的是一个难题,我不知道从哪里开始。 我有一些简单的文章吗?

4 个答案:

答案 0 :(得分:14)

由于您提到查看代码,我假设您想要了解Xen的技术细节,而不仅仅是如何启动VM。

与所有问题一样,从简单的事情开始,然后继续努力。一些指示:

  1. 务必掌握先决条件。特别是强大的C和Linux亲和力,还有x86分页和虚拟化内存工作。

  2. 确保您掌握一般的Xen架构。例如,半虚拟化与硬件支持的虚拟化,管理域(Dom0)与非特权域(DomU)等相比的特殊角色

  3. 调查在Dom0中运行的Xen组件:

    • Xen控件库( libxc ),它实现了与超级调用相关的大部分逻辑,并在这些逻辑上添加了糖(查看tools/libxc

    • 管理Xen的瑞士军刀,即 Xen light 库( libxl )。该库使用xm工具替换已弃用的xl工具,并负责所有维护任务,例如启动/停止VM,列出所有正在运行的VM等。对于所有这些操作,它可以在与上述libxc串联。 (Libxl住在tools/libxl。)

    • Xenstore 是一种树状数据结构,所有正在运行的域都可以从中检索和存储数据。这是必要的,因为所有I / O都通过Dom0(而不是虚拟机管理程序!),并且域需要与Dom0通信它们将如何传递I / O. (查看tools/xenstore。)您可以使用xenstore-ls等工具检查Xenstore。

    • 共享通道上的数据传递给VM的blkback / netback内核驱动程序。 (您将在最近的Linux内核(例如> = v3.0)中找到具有所谓PVOPS支持的驱动程序。

    • 查看控制台守护程序(tools/console)。请注意,有时实际使用Qemu控制台。如果您为VM选择文件支持的虚拟存储,Qemu也会将图片作为默认后端。

  4. 尝试VM间通信的“Xen-way”:授予表,事件通道和Xenstore。有了这些基础知识,您就可以在VM之间创建自己的共享通道。例如,您可以编写一个在两个域中使用的内核模块,让它们相互通信。

  5. 我还可以在源代码中提供一些指出:

    • xen/xen/include/public/xen.h会为您提供所有带有评论功能的超级电话列表。

    • xen/xen/include/xen/mm.h向您介绍Xen使用的不同内存术语(即真实地址与虚拟地址和页码)。如果你没有掌握这些差异,那么阅读管理程序代码肯定会令人沮丧。

    • xen/xen/include/asm-x86/config.h概述了Xen的内存布局。

    • xen/tools/libxc/xenctrl.h导出一大堆有趣的域控制操作,它提供了Dom0和虚拟机管理程序之间任务划分的抽象视图。

  6. 最后但并非最不重要的是,强烈推荐David Chisnall撰写的“ Xen Hypervisor权威指南”一书。它通过大量代码示例以全面,技术的方式涵盖所有这些主题和更多主题。

    Xen wiki和开发人员邮件列表也是理解Xen的绝佳资源。

    如果您有更具体的问题,那么我可以给您一个更具体的答案。

答案 1 :(得分:0)

以下是一些指导ZEN启动的链接。希望它们有用。

http://www.howtoforge.com/howtos/virtualization/xen

http://wiki.xen.org/wiki/Category:HowTo

答案 2 :(得分:0)

http://wiki.debian.org/Xen

对我来说,这是最好的,更具体的教程,有示例和一步一步的开始。我开始时就用它了。

然后,您可以阅读有关Xen文档本身或某些书籍的更多内容,但作为一个允许您轻松安装和测试Xen的起点,我从Debian Wiki中选择该教程。

答案 3 :(得分:0)

如果您只是想要概述,可以阅读:http://wiki.xenproject.org/wiki/Xen_Project_Beginners_Guide 这将向您介绍Xen虚拟机管理程序,建议配置以设置虚拟机,提供有关网络的信息,最后提供有关虚拟机管理工具的详细信息。

本文档是专门针对ubuntu的Xen(最重要的是,它可以工作!) https://help.ubuntu.com/community/Xen

===

但是,如果你想进入下一个级别并了解Xen的工作; Xen体系结构,内存管理,设备管理,CPU调度等,我建议您阅读“Xen Hypervisor权威指南”一书。