WEB开发网
开发学院服务器虚拟化 深入学习Xen新起点 全面介绍Xen虚拟机(3) 阅读

深入学习Xen新起点 全面介绍Xen虚拟机(3)

 2005-09-13 02:13:47 来源:WEB开发网   
核心提示:Xend Deamon 首先,我们介绍一下Xend,深入学习Xen新起点 全面介绍Xen虚拟机(3),它是Xen控制器daemon,意思是说它负责处理创建、销毁、迁移以及其它许多domain管理的任务,这个create()方法调用create_blkif()创建一个块设备接口(blkif),即使VM不需要磁盘它也是必须
Xend Deamon

首先,我们介绍一下Xend,它是Xen控制器daemon,意思是说它负责处理创建、销毁、迁移以及其它许多domain管理的任务。它很大一部分动作是基于一个HTTP服务器的。大量对domain的控制请求都是通过发送HTTP请求来实现的。

我们在引导进入Xen后通过命令行命令xend start来启动Xend daemon。它需要Python2.3的支持。

Xend daemon的工作是建立在与XCS server(the control Switch)的交互上。所以,当我们启动Xend daemon时,需要检查一下XCS是否已经启动和运行了。如果没有,我们将试着去启动它。

Srv Daemon是Xend的主要程序,启动Xend daemon就会创建一个Srv Daemon类的实例。

接下来在createFactories()方法中创建一个Channel Factory。Channel Factory有一个隐含的notifier对象。Xend daemon的大量工作都是基于这个notifier接收的消息的。这个factory创建一个线程,在一个无限循环中读取这个notifier。

创建domain

创建一个domain是通过使用一个hypercall(DOM0_CREATEDOMAIN)来完成的。Hypercall是Linux内核中的一个系统调用,通过它,用户空间可以调用内核中的方法,它通过一个中断(Int 0x80)来完成。在Xen中,类似的系统调用就是hypervisor,通过它,domain 0 调用hypervisor中的方法,它也是通过中断(Int 0x82)来完成的。hypervisor通过它的虚拟CPU访问每一个domain。

XendDomain类和XendDomainInfo类在创建和销毁domain中扮演着非常重要的角色。我们通过调用XendDomain中的domain_create()方法创建一个新的domain。

XendDomainInfo类和它的方法主要用于一个domain的实际构造。

XCS Server

XCS server有两个TCP套接字,分别是控制连接和数据连接,它们不同的地方在于前者是同步的,后者是异步的。前面提到的notifier对象,就是XCS服务器的一个客户端。

创建虚拟设备

XendDomainInfo中的create()方法启动一个创建domain的动作链。首先被创建的是这个domain的虚拟设备。这个create()方法调用create_blkif()创建一个块设备接口(blkif),即使VM不需要磁盘它也是必须被创建的。另一个虚拟设备通过create_configured_devices()创建。

Tags:深入 学习 Xen

编辑录入:coldstar [复制链接] [打 印]
赞助商链接