\includegraphics[]{figs/xenlogo.eps}
用 户手册
Xen v3.0
中译部份:北南南北  etony From LinuxSir.Org



DISCLAIMER: This documentation is always under active development and as such there may be mistakes and omissions -- watch out for these and please report any you find to the developers' mailing list, xen-devel@lists.xensource.com. The latest version is always available on-line. Contributions of material, suggestions and corrections are welcome.

免责声明: 这个文档一直处于书写和修正中,可能会有一些错误和遗漏,如果您发现了这些错误和遗漏,请将报告发送到我们的邮件列表xen- devel@lists.xensource.com ; 本 文档的最新 版本可以在线获取,欢迎您贡献您的智慧、建议和修正.

Xen is Copyright ©2002-2005, University of Cambridge, UK, XenSource Inc., IBM Corp., Hewlett-Packard Co., Intel Corp., AMD Inc., and others. All rights reserved.

Xen 是一个开源项目。Xen的大多部分组件遵循GNU GPL通 用公共许可证的第二版发布。其它部份的组件在GNU 次要通用公共许可证, Zope 公 共许可证 2.0 ,或``BSD-style'' 许可下发布。详情请见COPYING文件。

Xen is an open-source project. Most portions of Xen are licensed for copying under the terms of the GNU General Public License, version 2. Other portions are licensed under the terms of the GNU Lesser General Public License, the Zope Public License 2.0, or under ``BSD-style'' licenses. Please refer to the COPYING file for details.


Xen includes software by Christopher Clark. This software is covered by the following licence:

Xen 包括 Christopher Clark出品的软件。它适用以下版权许可;

Copyright (c) 2002, Christopher Clark. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


目录

=10000 =10000 1.1

1. Introduction(介绍)

Xen is an open-source para-virtualizing virtual machine monitor (VMM), or ``hypervisor'', for the x86 processor architecture. Xen can securely execute multiple virtual machines on a single physical system with close-to-native performance. Xen facilitates enterprise-grade functionality, including:

Xen 是一个开放源代码的para-virtualizing虚拟机(VMM),或“管理程序 ”,是为x86架构的机器而设计的。Xen 可以在 一套物理硬件上安全的执行多个虚拟机

1.1 Usage Scenarios(应用范围)

Usage scenarios for Xen include:
Xen的应用范围包括:

Server Consolidation. (服务器整合)
Move multiple servers onto a single physical host with performance and fault isolation provided at the virtual machine boundaries.
在虚拟机范围内,在一台物理主机上安装多个服务器, 用于演示及故障隔绝。
Hardware Independence.(无 硬件依赖)
Allow legacy applications and operating systems to exploit new hardware.(允许应用程序和操作系统对新硬件的移值测试)
Multiple OS configurations.(多 操作系统配置)
Run multiple operating systems simultaneously, for development or testing purposes.(以开 发和测试为目的,同时运行多 个操作系统)
Kernel Development.(内核开发)
Test and debug kernel modifications in a sand-boxed virtual machine -- no need for a separate test machine.(在虚拟机的沙盒中,做内 核的测试和调试,无 需为 了测试而半独架设一台独立的机器)
Cluster Computing.(集 群运算)
Management at VM granularity provides more flexibility than separately managing each physical host, but better control and isolation than single-system image solutions, particularly by using live migration for load balancing.  和 单独的管理每个物理主机相比较,在VM级管理更加灵活,在负载 均衡方面,更易于控 制,和隔离).
Hardware support for custom OSes.(为客户操作系统提供硬件技术支持)
Allow development of new OSes while benefiting from the wide-ranging hardware support of existing OSes such as Linux. (可 以开发新的操作系统, 以得益于现存操作系统的广泛硬件支持,比如Linux.)

1.2 Operating System Support (操作系统支持)

Para-virtualization permits very high performance virtualization, even on architectures like x86 that are traditionally very hard to virtualize.

This approach requires operating systems to be ported to run on Xen. Porting an OS to run on Xen is similar to supporting a new hardware platform, however the process is simplified because the para-virtual machine architecture is very similar to the underlying native hardware. Even though operating system kernels must explicitly support Xen, a key feature is that user space applications and libraries do not require modification.

With hardware CPU virtualization as provided by Intel VT and AMD SVM technology, the ability to run an unmodified guest OS kernel is available. No porting of the OS is required, although some additional driver support is necessary within Xen itself. Unlike traditional full virtualization hypervisors, which suffer a tremendous performance overhead, the combination of Xen and VT or Xen and Pacifica technology complement one another to offer superb performance for para-virtualized guest operating systems and full support for unmodified guests running natively on the processor. Full support for VT and Pacifica chipsets will appear in early 2006.

Paravirtualized Xen support is available for increasingly many operating systems: currently, mature Linux support is available and included in the standard distribution. Other OS ports--including NetBSD, FreeBSD and Solaris x86 v10--are nearing completion.

1.3 Hardware Support(硬件支 持)

Xen currently runs on the x86 architecture, requiring a ``P6'' or newer processor (e.g. Pentium Pro, Celeron, Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron). Multiprocessor machines are supported, and there is support for HyperThreading (SMT). In addition, ports to IA64 and Power architectures are in progress.Xen

目前运行在x86架构的 机器上,需要P6或更新的处理器(比如 Pentium Pro, Celeron, Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron)。支 持多 处理器,并且支持超线程(SMT)。另外对IA64和Power架构的开发也在进行中。

The default 32-bit Xen supports up to 4GB of memory. However Xen 3.0 adds support for Intel's Physical Addressing Extensions (PAE), which enable x86/32 machines to address up to 64 GB of physical memory. Xen 3.0 also supports x86/64 platforms such as Intel EM64T and AMD Opteron which can currently address up to 1TB of physical memory.

32位Xen支持最大4GB内存。可是Xen 3.0 为Intel处理器物理指令集(PAE)提供支持,这样就能使x86/32架构的机器支持到64GB的物理内存。Xen 3.0也能支持x86/64 平台支持,比如 Intel EM64T 和AMD Opteron能支持1TB的物理 内存以上;

Xen offloads most of the hardware support issues to the guest OS running in the Domain 0 management virtual machine. Xen itself contains only the code required to detect and start secondary processors, set up interrupt routing, and perform PCI bus enumeration. Device drivers run within a privileged guest OS rather than within Xen itself. This approach provides compatibility with the majority of device hardware supported by Linux. The default XenLinux build contains support for most server-class network and disk hardware, but you can add support for other hardware by configuring your XenLinux kernel in the normal way.

1.4 Structure of a Xen-Based System(基于Xen的操作系统架构)

A Xen system has multiple layers, the lowest and most privileged of which is Xen itself.

一个Xen系统拥有多个层,最底层和最高特权层是 Xen程序本身。

Xen may host multiple guest operating systems, each of which is executed within a secure virtual machine. In Xen terminology, a domain. Domains are scheduled by Xen to make effective use of the available physical CPUs. Each guest OS manages its own applications. This management includes the responsibility of scheduling each application within the time allotted to the VM by Xen.

Xen 可以管理多个客户操作系统,每个操作系统都能在一个安全的虚拟机中实 现。在Xen的术语中,Domain由Xen控制,以 高效的 利用CPU的物理资源。每个 客户操作系统可以管理它自身的应用。这种管理包括每个程序在规定时间 内的响应到执行,是通过Xen调度到虚拟机中实现。

The first domain, domain 0, is created automatically when the system boots and has special management privileges. Domain 0 builds other domains and manages their virtual devices. It also performs administrative tasks such as suspending, resuming and migrating other virtual machines.

第一个domain,也 就是domain 0(注:其实它就是 第一个虚拟的客户系统),是在系统引导时 自动创建,它拥有特殊的管理权限。Domain 0 可以构建其它的更多的Domain ,并管理虚拟设备。 它还能执行管理任务,比如虚拟机的体眠、 唤醒和迁移其它虚拟机。

Within domain 0, a process called xend runs to manage the system. Xend is responsible for managing virtual machines and providing access to their consoles. Commands are issued to xend over an HTTP interface, via a command-line tool.

一个被称为xend的服务器 进程通过domain 0来管理系统,Xend 负责管理众多的虚拟主机,并且提供进入这些系统的控制台。命令经一个命令行的工具通过一个HTTP的接口被传送到xend。

1.5 History(历史)

Xen was originally developed by the Systems Research Group at the University of Cambridge Computer Laboratory as part of the XenoServers project, funded by the UK-EPSRC.

XenoServers aim to provide a ``public infrastructure for global distributed computing''. Xen plays a key part in that, allowing one to efficiently partition a single machine to enable multiple independent clients to run their operating systems and applications in an environment. This environment provides protection, resource isolation and accounting. The project web page contains further information along with pointers to papers and technical reports: http://www.cl.cam.ac.uk/xeno

Xen has grown into a fully-fledged project in its own right, enabling us to investigate interesting research issues regarding the best techniques for virtualizing resources such as the CPU, memory, disk and network. Project contributors now include XenSource, Intel, IBM, HP, AMD, Novell, RedHat.

Xen was first described in a paper presented at SOSP in 20031.1, and the first public release (1.0) was made that October. Since then, Xen has significantly matured and is now used in production scenarios on many sites.

1.6 What's New(最新特性)

Xen 3.0.0 offers(Xen 3.0.0 拥有):

Xen 3.0 features greatly enhanced hardware support, configuration flexibility, usability and a larger complement of supported operating systems. This latest release takes Xen a step closer to being the definitive open source solution for virtualization.

1 Installation(安装)

2. Basic Installation(基础安装)

The Xen distribution includes three main components: Xen itself, ports of Linux and NetBSD to run on Xen, and the userspace tools required to manage a Xen-based system. This chapter describes how to install the Xen 3.0 distribution from source. Alternatively, there may be pre-built packages available as part of your operating system distribution.

Xen 发行版包括三个主要的部件:Xen本身,在Xen上运行Linux和NetBSD的接口,及管理基于Xen的系统的用户工具。这一节我们讲述以源代码的安 装方式安装Xen 3.0 。当然,您也可以根据您所用的发行版来选择已经预编译好的Xen的软件包


2.1 Prerequisites (准 备工作)

The following is a full list of prerequisites. Items marked `$\dag $' are required by the xend control tools, and hence required if you want to run more than one virtual machine; items marked `*' are only required if you wish to build from source.

 $$
A working Linux distribution using the GRUB bootloader and running on a P6-class or newer CPU.(用GRUB的导Linux系统,并且运行在一个 P6级或更新的 CPU机器上)
$\dag $
The iproute2 package(iproute2软件包
$\dag $
The Linux bridge-utils(Linux桥接工具 )2.1 (e.g., /sbin/brctl
$\dag $
The Linux hotplug system2.2 (e.g., /sbin/hotplug and related scripts). On newer distributions, this is included alongside the Linux udev system2.3.
*
Build tools (gcc v3.2.x or v3.3.x, binutils, GNU make). {编译工具 (gcc v3.2 或v3.3.x ,binutils,GNU make)
*
Development installation of zlib (e.g., zlib-dev).{zlib的开发库 (例如zlib-dev)}
*
Development installation of Python v2.2 or later (e.g., python-dev).{Python v2.2 或高于v2.2的版本的开发库(比如 python-dev)}
*
LATEX and transfig are required to build the documentation.

Once you have satisfied these prerequisites, you can now install either a binary or source distribution of Xen.

一旦您已经做好这些准备 工作,您现在可以通过二进制包或源码包来 安装Xen。

2.2 Installing from Binary Tarball(通过二进制软件包安装)

Pre-built tarballs are available for download from the XenSource downloads page:
可以到XenSource 下载预 编译好的二进制包,下载地址发下:

http://www.xensource.com/downloads/

Once you've downloaded the tarball, simply unpack and install:
一旦您下载了软件包,就可以轻松的解压和安 装:

# tar zxvf xen-3.0-install.tgz
# cd xen-3.0-install
# sh ./install.sh

Once you've installed the binaries you need to configure your system as described in Section 2.5.
一旦您已经安装了二进制包,您需要配置您的 系统,请参考 2.5的章节

2.3 Installing from RPMs从RPM包安装

Pre-built RPMs are available for download from the XenSource downloads page:
以到XenSource 下载预编译好的RPM 包,下载地址发下:
http://www.xensource.com/downloads/

Once you've downloaded the RPMs, you typically install them via the RPM commands:
一旦您下载了RPM包,可以通过RPM的管 理工具来安装他们:

# rpm -iv rpmname

See the instructions and the Release Notes for each RPM set referenced at:
这里提供了每个相关RPM的介绍和发行说明

http://www.xensource.com/downloads/.

2.4 Installing from Source(通过源码包安装)

This section describes how to obtain, build and install Xen from source.
这一节主要介绍如 何获取源码包并进行编 译和安装;

2.4.1 Obtaining the Source(获取源码包)

The Xen source tree is available as either a compressed source tarball or as a clone of our master Mercurial repository.

Obtaining the Source Tarball(获取源码包)

Stable versions and daily snapshots of the Xen source tree are available from the Xen download page:
          稳 定版和开发版的每日快照下载页:
http://www.xensource.com/downloads/
Obtaining the source via Mercurial(通过Mercurial获取源代码)

The source tree may also be obtained via the public Mercurial repository at:
可以使用公共 Mercurial库从以下地址获取代码树:
http://xenbits.xensource.com
See the instructions and the Getting Started Guide referenced at(获取介绍和指导手册):
http://www.xensource.com/downloads/

2.4.2 Building from Source(从源码包编译安装)

The top-level Xen Makefile includes a target ``world'' that will do the following:

After the build has completed you should have a top-level directory called dist/ in which all resulting targets will be placed. Of particular interest are the two XenLinux kernel images, one with a ``-xen0'' extension which contains hardware device drivers and drivers for Xen's virtual devices, and one with a ``-xenU'' extension that just contains the virtual ones. These are found in dist/install/boot/ along with the image for Xen itself and the configuration files used during the build.

内核编译完成后,您应该 有一个顶级目录dist/,所有的编译好 的包将放在这里。总共有两个内核,一个是文件名带有"_xen0"的,它包括硬件设 备驱动和Xen虚拟设备。另一个内核文件扩展名带有"_xenU"的,这个内核包括虚拟设备。这些文件连同Xen本身及编译过程中所需要的配置文件位于 dist/install/boot目录中

To customize the set of kernels built you need to edit the top-level Makefile. Look for the line:

为了自定义内核配置,您需要编辑顶级目录的 Makefile 。看起来象下面的一行;
KERNELS ?= linux-2.6-xen0 linux-2.6-xenU

You can edit this line to include any set of operating system kernels which have configurations in the top-level buildconfigs/ directory.
您可以把这行加入到操作系统本身拥有的内核 配置文件中,此文件位于 buildconfigs/目 录;

2.4.3 Custom Kernels自义义内核

If you wish to build a customized XenLinux kernel (e.g. to support additional devices or enable distribution-required features), you can use the standard Linux configuration mechanisms, specifying that the architecture being built for is xen, e.g:
如果您想自定义编译XenLinuxmw 内核(比如支持附加设备或打开发行版的一些特性或功能),您可以用标准的Linux内核配置文件

# cd linux-2.6.12-xen0
# make ARCH=xen xconfig
# cd ..
# make

You can also copy an existing Linux configuration (.config) into e.g. linux-2.6.12-xen0 and execute:
您也可以复制已有的Linux发行版的内 核配置文件。比如Linux- 2.6.12-xen0,然后执行:

# make ARCH=xen oldconfig

You may be prompted with some Xen-specific options. We advise accepting the defaults for these options.
也可以启用一些Xen的特殊选项。 我们建议您用默认的选项。

Note that the only difference between the two types of Linux kernels that are built is the configuration file used for each. The ``U'' suffixed (unprivileged) versions don't contain any of the physical hardware device drivers, leading to a 30% reduction in size; hence you may prefer these for your non-privileged domains. The ``0'' suffixed privileged versions can be used to boot the system, as well as in driver domains and unprivileged domains.

注意,编译出来的两个内 核是不同的。文件名中带有U的,是无特 权内核,这个是用来引导被虚拟的操作系统而用的,它不包括物理硬件的驱动等。而文件 名中带有0的包括物理硬件的驱动,它才是被用于引导真实操作系统的内核。 

2.4.4 Installing Generated Binaries (安装已经编译好的二进 制内核)

The files produced by the build process are stored under the dist/install/ directory. To install them in their default locations, do:
当编译好内核后,他们被存放在 dist/install/目录中。我们 通过如下的命令来安装:

# make install

Alternatively, users with special installation requirements may wish to install them manually by copying the files to their appropriate destinations.

用户可以根据自己的需要做以手动复制到相应 的目录,这一过程是可选的。

The dist/install/boot directory will also contain the config files used for building the XenLinux kernels, and also versions of Xen and XenLinux kernels that contain debug symbols such as (xen-syms-3.0.0 and vmlinux-syms-2.6.12.6-xen0) which are essential for interpreting crash dumps. Retain these files as the developers may wish to see them if you post on the mailing list.

在目录 /dist/install/boot目录中,包编 译 XenLinux内核的配置文件config ,也包含XenLinux内核的debug链接文件,比如(xen-syms-3.0.0vmlinux-syms-2.6.12.6 -xen0),当系 统崩溃时,他们还是有必要的,因为做为开 发者,他们需要这些崩溃纪录,您可以通过邮 件列表发送给开发 者。


2.5 Configuration(配 置)

Once you have built and installed the Xen distribution, it is simple to prepare the machine for booting and running Xen.
如果您编译并安装好了Xen的发行版,您要做一些准备工作,以让机器引 导时运行Xen。

2.5.1 GRUB Configuration(GRUB的配 置)

An entry should be added to grub.conf (often found under /boot/ or /boot/grub/) to allow Xen / XenLinux to boot. This file is sometimes called menu.lst, depending on your distribution. The entry should look something like the following:

编译好内核后,您应该修 改grub.conf文件(这个文件大多 是位于/boot或/boot/grub目录中),目的是允许引 导 Xen/XenLinux。 grub.conf有时也被 称为menul.st 。在grub.conf或menu.lst中应该加入类似下面的一段:

title Xen 3.0 / XenLinux 2.6
kernel /boot/xen-3.0.gz dom0_mem=262144
module /boot/vmlinuz-2.6-xen0 root=/dev/sda4 ro console=tty0

The kernel line tells GRUB where to find Xen itself and what boot parameters should be passed to it (in this case, setting the domain 0 memory allocation in kilobytes and the settings for the serial port). For more details on the various Xen boot parameters see Section 10.3.

kernel 一行告诉GRUB引导时能找到Xen,以及使用 哪些引导参数(在 这里,能设置domain 0所占用物理内存大小,其单位是kb,也能设置所占用的串口)。详细请参阅Xen 引导参数章节 10.3

The module line of the configuration describes the location of the XenLinux kernel that Xen should start and the parameters that should be passed to it. These are standard Linux parameters, identifying the root device and specifying it be initially mounted read only and instructing that console output be sent to the screen. Some distributions such as SuSE do not require the ro parameter.

module 这行是描述XenLinux内核所处的位置,这些是Linux的标准参数,比如定义root设备,指定挂载时初始化是只读,并且将控制台输出发送到屏幕 上。 一些发行版并不需要 ro参数,比如SuSE。
To use an initrd, add another module line to the configuration, like:
要使用initrd,还需要在配置文件中添加一 module行,行如:

 module /boot/my_initrd.gz

When installing a new kernel, it is recommended that you do not delete existing menu options from menu.lst, as you may wish to boot your old Linux kernel in future, particularly if you have problems.

安 装新的内核时,我们建议您不要删除GRUB启动菜单定义文件 grub.conf或menu.lst中的关于老内核的引导项,当用新内核 引导时可能遇到问题,或者需要老内核引导时,您可以用老内核启动系统。

2.5.2 Serial Console (optional)(串口控制台.可选)

Serial console access allows you to manage, monitor, and interact with your system over a serial console. This can allow access from another nearby system via a null-modem (``LapLink'') cable or remotely via a serial concentrator.
串口控制台允许您管理、监视, 和和您的系统相互通信通过一个串口控制台。它能 提供从别的附近的系统通过一个null- modem("LapLink") cable 或经由远程串口集线器访问登录。

You system's BIOS, bootloader (GRUB), Xen, Linux, and login access must each be individually configured for serial console access. It is not strictly necessary to have each component fully functional, but it can be quite useful.
您系统的BIOS,系统引导管理器 (GRUB),Xen, Linux,以及登录许可必须单独分别为串口控制台登录提供有效的配置。它没有必要完全拥有所 有的功能和部件,但它的确是比较有用的。


For general information on serial console configuration under Linux, refer to the ``Remote Serial Console HOWTO'' at The Linux Documentation Project: http://www.tldp.org
对于在Linux中,关于串口控制台配置的 一般信息,请参考“Remote Serial Console HOWTO",此 文 件计划位于http://www.tldp.org

2.5.2.1 Serial Console BIOS configuration(串口控制台 BIOS的配置)

Enabling system serial console output neither enables nor disables serial capabilities in GRUB, Xen, or Linux, but may make remote management of your system more convenient by displaying POST and other boot messages over serial port and allowing remote BIOS configuration.

Refer to your hardware vendor's documentation for capabilities and procedures to enable BIOS serial redirection.

2.5.2.2 Serial Console GRUB configuration(串口控制台 GRUB的配置)

Enabling GRUB serial console output neither enables nor disables Xen or Linux serial capabilities, but may made remote management of your system more convenient by displaying GRUB prompts, menus, and actions over serial port and allowing remote GRUB management.

Adding the following two lines to your GRUB configuration file, typically either /boot/grub/menu.lst or /boot/grub/grub.conf depending on your distro, will enable GRUB serial output.

 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

Note that when both the serial port and the local monitor and keyboard are enabled, the text ``Press any key to continue'' will appear at both. Pressing a key on one device will cause GRUB to display to that device. The other device will see no output. If no key is pressed before the timeout period expires, the system will boot to the default GRUB boot entry.

Please refer to the GRUB documentation for further information.

2.5.2.3 Serial Console Xen configuration(串口控制台 Xen的配置)

Enabling Xen serial console output neither enables nor disables Linux kernel output or logging in to Linux over serial port. It does however allow you to monitor and log the Xen boot process via serial console and can be very useful in debugging.

In order to configure Xen serial console output, it is necessary to add a boot option to your GRUB config; e.g. replace the previous example kernel line with:

 kernel /boot/xen.gz dom0_mem=131072 com1=115200,8n1

This configures Xen to output on COM1 at 115,200 baud, 8 data bits, no parity and 1 stop bit. Modify these parameters for your environment. See Section 10.3 for an explanation of all boot parameters.

One can also configure XenLinux to share the serial console; to achieve this append ``console=ttyS0'' to your module line.

2.5.2.4 Serial Console Linux configuration(串口控制台 Linux的配置)

Enabling Linux serial console output at boot neither enables nor disables logging in to Linux over serial port. It does however allow you to monitor and log the Linux boot process via serial console and can be very useful in debugging.

To enable Linux output at boot time, add the parameter console=ttyS0 (or ttyS1, ttyS2, etc.) to your kernel GRUB line. Under Xen, this might be:

 module /vmlinuz-2.6-xen0 ro root=/dev/VolGroup00/LogVol00 \
console=ttyS0, 115200
to enable output over ttyS0 at 115200 baud.

2.5.2.5 Serial Console Login configuration(串口控制台登 录配置)

Logging in to Linux via serial console, under Xen or otherwise, requires specifying a login prompt be started on the serial port. To permit root logins over serial console, the serial port must be added to /etc/securetty.

To automatically start a login prompt over the serial port, add the line:

c:2345:respawn:/sbin/mingetty ttyS0
to /etc/inittab. Run init q to force a reload of your inttab and start getty.

To enable root logins, add ttyS0 to /etc/securetty if not already present.

Your distribution may use an alternate getty; options include getty, mgetty and agetty. Consult your distribution's documentation for further information.

2.5.3 TLS Libraries (TLS库)

Users of the XenLinux 2.6 kernel should disable Thread Local Storage (TLS) (e.g. by doing a mv /lib/tls /lib/tls.disabled) before attempting to boot a XenLinux kernel2.4. You can always reenable TLS by restoring the directory to its original location (i.e. mv /lib/tls.disabled /lib/tls).
如果您使用  XenLinux 2.6 内核,在用它引导前需要禁用掉 Thread Local Storage (TLS)
(线程局 部存储)(例如运行 /lib/tls /lib/tls.disabled).  当需要TLS时, 可以通过恢复其目录重新启用(即 mv /lib/tls.disabled /lib/tls).

The reason for this is that the current TLS implementation uses segmentation in a way that is not permissible under Xen. If TLS is not disabled, an emulation mode is used within Xen which reduces performance substantially. To ensure full performance you should install a `Xen-friendly' (nosegneg) version of the library.  
这是由于当前的TLS应用程序使用了在Xen下不允许的段方法. 如果禁用TLS, Xen中使用的一个仿真模式将会实际性能有所削弱. 如果要避免这种现象, 您需要安装一个`Xen-friendly'(nosegneg) 版的共享库.

2.6 Booting Xen(引导Xen)

It should now be possible to restart the system and use Xen. Reboot and choose the new Xen option when the Grub screen appears.
现在可以使用 Xen 重新引导操作系统了. (因 为我们前面已 经谈了编译、安装Xen,译注),重新启动后,我们要在GRUB的启动菜单上选择带 有Xen支持的选择,这样我就可以启动有Xen支持的操作系统了。

What follows should look much like a conventional Linux boot. The first portion of the output comes from Xen itself, supplying low level information about itself and the underlying hardware. The last portion of the output comes from XenLinux.
用支持Xen的内核启动,看起来有点象 Linux常规引导。第一部份输 出的是Xen本身的信息,这些信息是关于Xen自身和底层的硬件的信息。最后的输出 是来自于XenLinux。

You may see some error messages during the XenLinux boot. These are not necessarily anything to worry about--they may result from kernel configuration differences between your XenLinux kernel and the one you usually use.

当XenLinux引导时,您能查看一些错误的信 息。对于这些信息没有必要为 他们担心,这是因为您的XenLinux和您原来用的没有带有Xen支 持的那个之间不同配置而引起的。

When the boot completes, you should be able to log into your system as usual. If you are unable to log in, you should still be able to reboot with your normal Linux kernel by selecting it at the GRUB prompt.

当引导完成后,您应该可以登录您的操作系统了。如 果不能登录,应该用您的 普通内核(也就是原来没有Xen的那个内核--译者注)来引导。然后进 行一些问题排查。

3. Booting a Xen System(引导Xen操作系统)

Booting the system into Xen will bring you up into the privileged management domain, Domain0. At that point you are ready to create guest domains and ``boot'' them using the xm create command.

引导系统进入Xen将要带你进入一个特权的 domain 管理,Domain0。在这时,您可以创建客户domain,并通过xm create 命令来引导他们。(其实每个被虚拟的操作系统,都会产生一个Domain。一般说来,每个Domain就是一个虚拟的操作系统。当用支持Xen的内核启动 时,系统会 自动创建一个拥有超级权限的Domain0,这个Domain0负责管理硬件和为虚拟操作系统提供虚拟硬件环境。
北南 加注 From LinuxSir.Org)

3.1 Booting Domain0(从Domain0开始引导)

After installation and configuration is complete, reboot the system and and choose the new Xen option when the Grub screen appears.
当我们安装和配置完成,并重新引导系统,就 可以在GRUB的启动菜单上 选择有支持Xen的启动项来启动系统。

What follows should look much like a conventional Linux boot. The first portion of the output comes from Xen itself, supplying low level information about itself and the underlying hardware. The last portion of the output comes from XenLinux.

用Xen支持的内核启 动,看起来有点象Linux常规引导。第一 部份输出的是Xen本身的信息,这些信息是关于Xen自身和底层的硬件的信息。最后 的输出是来自于XenLinux。

When the boot completes, you should be able to log into your system as usual. If you are unable to log in, you should still be able to reboot with your normal Linux kernel by selecting it at the GRUB prompt.

当引导完成后,您应该可以登录您的操作系统了。如 果不能登录,应该使用 普通内核(也就是原来没有Xen的那个内核--译者注)来引导。然后进 行一些问题排查。

The first step in creating a new domain is to prepare a root filesystem for it to boot. Typically, this might be stored in a normal partition, an LVM or other volume manager partition, a disk file or on an NFS server. A simple way to do this is simply to boot from your standard OS install CD and install the distribution into another partition on your hard drive.

创建一个新的Domain的首先要准备一个 root文件系统,这个文件系统 可以是一个物理分区,一个LVM或其它的逻辑卷 分区,映 像文件,或在一个NFS 服务器上。最简单的是通过操作系统的安装盘把操作系统安装进另一个物理分区。

(注: 这句话的意思是,用Xen虚拟的操作系统,可以安装在一个物理分区上,也可以安装在LVM上,可以安装在一个映像文件上,也可以安装在NFS 服务器提供的nfs文件系统上。最简单的方法就是在硬盘上一 个物理分区,安装好操作系统,然后再来通过Xen来虚拟。他在这里所说的创建您的 Domain 就是虚拟新的操作系统。——译者注)。

To start the xend control daemon, type
启动xend守护进程,请输入如下命令:

# xend start

If you wish the daemon to start automatically, see the instructions in Section 4.1. Once the daemon is running, you can use the xm tool to monitor and maintain the domains running on your system. This chapter provides only a brief tutorial. We provide full details of the xm tool in the next chapter.

如果您想让xend服务 器守护程序开机自动运行,请参考 4.1。 一旦xend 运行起来了,就可用xm工具来 监视、管理、运行系统中的Domain。这一节提供的仅仅是概要。我们会在下一章节上提供xm工具的详细说明。

3.2 Booting Guest Domains(引导客户Domain)

3.2.1 Creating a Domain Configuration File(创 建一个Domain配置文 件)

Before you can start an additional domain, you must create a configuration file. We provide two example files which you can use as a starting point:
在启动一个虚拟的操作系统之前,必须创建 一个引导这个虚拟操作系统的 配置文件 。 我们提供了两个示例文 件,这能做为您学习Xen虚拟操作系统的一个起点。

There are also a number of other examples which you may find useful. Copy one of these files and edit it as appropriate. Typical values you may wish to edit include:

还有其它一些有关 Domain的配置文件,您可以加以修改应用。 下面是一些配置文件的参数,可能您会用到;

kernel (内核)
Set this to the path of the kernel you compiled for use with Xen (e.g. kernel = ``/boot/vmlinuz-2.6-xenU'')
          这是是指定被虚拟的操作系统所用的内核的路径(例如 kernel = "/boot/vmlinuz-2.6-xenU")。(值得注意的是被虚拟的操作系统所用的内核是带有-xenU字样的)
memory  (内存)
Set this to the size of the domain's memory in megabytes (e.g. memory = 64)
         设置被虚拟操作系统所占用物理内存的大小,单位是M(比如 memory=64)
disk   硬 盘
Set the first entry in this list to calculate the offset of the domain's root partition, based on the domain ID. Set the second to the location of /usr if you are sharing it between domains (e.g. disk = ['phy:your_hard_drive%d,sda1,w' % (base_partition_number + vmid), 'phy:your_usr_partition,sda6,r' ]
dhcp
Uncomment the dhcp variable, so that the domain will receive its IP address from a DHCP server (e.g. dhcp=``dhcp'')
          dhcp 变量主要是让被虚拟的操作系 统,能从DHCP服务器上获取它的 IP地址(比如dhcp="dhcp")

You may also want to edit the vif variable in order to choose the MAC address of the virtual ethernet interface yourself. For example:
您可以通过编辑vif变, 来设置虚拟网 卡的MAC地址,比如:

vif = ['mac=00:16:3E:F6:BB:B3']
If you do not set this variable, xend will automatically generate a random MAC address from the range 00:16:3E:xx:xx:xx, assigned by IEEE to XenSource as an OUI (organizationally unique identifier). XenSource Inc. gives permission for anyone to use addresses randomly allocated from this range for use by their Xen domains.

如果您不设置vif这个变量,xend服务 器将会为网卡分配一个随机MAC地址址。 范围从00:16:3E:xx:xx:xx。

For a list of IEEE OUI assignments, see http://standards.ieee.org/regauth/oui/oui.txt IEEE OUI 分配列表, 参阅

3.2.2 Booting the Guest Domain (引导客户Domain)

The xm tool provides a variety of commands for managing domains. Use the create command to start new domains. Assuming you've created a configuration file myvmconf based around /etc/xen/xmexample2, to start a domain with virtual machine ID 1 you should type:
xm工具为管理Domain提供很多指令。 用create 指令来引导新的Domain。可以基于/etc/xen/xmexample2  创建自己的Domain管理配置文件myvmconf,这样启动一个Domain可以通过虚拟机的ID来引导。比如ID是1,您应该输入:

# xm create -c myvmconf vmid=1

The -c switch causes xm to turn into the domain's console after creation. The vmid=1 sets the vmid variable used in the myvmconf file.
-c  参数是指后面要接配置文件,意思是通过配置文件引导,vmid=1是在myvmconf中的变量,不同的Domain,vmid的值也不一样。(注:比如 您虚拟的Slackware操作系统,他的vmid您设置为1,Gentoo,他的vmid设置为2。这样当我们通过xm create -c myvmconf vmid=1时,引导起来的就是Slackware,当我们通过xm create -c myvmconf vmid=2时,我们引导起来的就是Gentoo。—— 译者注)

You should see the console boot messages from the new domain appearing in the terminal in which you typed the command, culminating in a login prompt.
您应该能看到从新Domain的在控制台启动的信息,最后您能登录被虚拟的操作系统。

3.3 Starting / Stopping Domains Automatically(自 动启动/停止 Domain)

It is possible to have certain domains start automatically at boot time and to have dom0 wait for all running domains to shutdown before it shuts down the system.

当系统启动的时候, Domain 也随之启动,并生成一个dom0守护进程,当dom0关 闭系统之前,dom0上运行的Domain都要关闭。

To specify a domain is to start at boot-time, place its configuration file (or a link to it) under /etc/xen/auto/.
可以指定一个Domain随系统自动启 动,请放配置文件(或建一个 边链接)文件到/etc/xen/auto目录下。

A Sys-V style init script for Red Hat and LSB-compliant systems is provided and will be automatically copied to /etc/init.d/ during install. You can then enable it in the appropriate way for your distribution.
对于Red Hat 和LSB-compliant等系统,安装xen时,会在/etc/init.d目录下安装Sys-V风格初始化脚本。您可以根据自己使用的发行版启用它 们。

For instance, on Red Hat:
例如,在Red HAT中:

# chkconfig --add xendomains

By default, this will start the boot-time domains in runlevels 3, 4 and 5.
默认情况下, 在运行级别是3、4、5 时, 引导时会启动它们.

You can also use the service command to run this script manually, e.g:
当然您也能用服务器的命令手动运行这个脚 本,比如执行下面的命令:

# service xendomains start

Starts all the domains with config files under /etc/xen/auto/.
这样系统会根据放置于 /etc/xen/auto中配置文件, 启动所有定义的虚拟系统。
# service xendomains stop  
Shuts down all running Xen domains.
执行上面的命令就会关掉所有的Xen 虚拟的系统;

2 Configuration and Management(配置和管理)

4. Domain Management Tools Domain(管理工具)

This chapter summarizes the management software and tools available.
这一节分析Xen的管理工和应用。


4.1 Xend

The Xend node control daemon performs system management functions related to virtual machines. It forms a central point of control of virtualized resources, and must be running in order to start and manage virtual machines. Xend must be run as root because it needs access to privileged system management functions.

An initialization script named /etc/init.d/xend is provided to start Xend at boot time. Use the tool appropriate (i.e. chkconfig) for your Linux distribution to specify the runlevels at which this script should be executed, or manually create symbolic links in the correct runlevel directories.

Xend can be started on the command line as well, and supports the following set of parameters:

# xend start start xend, if not already running(启动xend,如果 xend没有运行)
# xend stop stop xend if already running (停止xend,如果xend正在运行)
# xend restart restart xend if running, otherwise start it (重启正在运行的 xend,如果xend没有运行,则启 动)
# xend status indicates xend status by its return code (查看xend状态)

A SysV init script called xend is provided to start xend at boot time. make install installs this script in /etc/init.d. To enable it, you have to make symbolic links in the appropriate runlevel directories or use the chkconfig tool, where available. Once xend is running, administration can be done using the xm tool.
SysV初始化启动脚本xend 提供了在系统启动时随系统启动的功能。make install将会将此脚本安装到/etc/init.d目 录中,您可以借助chkconfig工具或在对应运行级别目录创建符号连接方便的启用它。xend运行起来后,系统管理员就能用xm管理工具进行虚拟机的 管理和操作。

4.1.1 Logging日志

As xend runs, events will be logged to /var/log/xend.log and (less frequently) to /var/log/xend-debug.log. These, along with the standard syslog files, are useful when troubleshooting problems.

xend运行时,其日志存放于 /var/log/xend.log 和/var/log/xend-debug.log(这里存放的比较 少)文件中。遇到问题时,可以查看这些日志,通过日志来排查错误。

4.1.2 Configuring Xend (配置Xend)

Xend is written in Python. At startup, it reads its configuration information from the file /etc/xen/xend-config.sxp. The Xen installation places an example xend-config.sxp file in the /etc/xen subdirectory which should work for most installations.
Xend是由Python 语言编写的,在启动时,Xend会读取其配置文件/etc/xen/xend-config.sxp。在Xen的安装时, 会在/etc/xen目录下生成一个示例性 xend-config- sxp文件,对于大多数的安装,它应该能工作。

See the example configuration file xend-debug.sxp and the section 5 man page xend-config.sxp for a full list of parameters and more detailed information. Some of the most important parameters are discussed below.

更多的详细信息,请参阅 配置文件示例xend- debug.sxp文件,man xend-config.sxp有详细的参数列表。一些比较重要的参数会在以下讨论。

An HTTP interface and a Unix domain socket API are available to communicate with Xend. This allows remote users to pass commands to the daemon. By default, Xend does not start an HTTP server. It does start a Unix domain socket management server, as the low level utility xm requires it. For support of cross-machine migration, Xend can start a relocation server. This support is not enabled by default for security reasons.

一个HTTP 接口和一个Unix的Domain 套接字API用于和Xend通信,目的是让远程用户传递命令到Domain。事实上Xend 没有启动HTTP服务器。它只是启动了一个Unix 的Domain套接字,然后通过xm工具来管理服务器,这是作为底层的工具xm得以实现Domain管理的需要。对于跨平台迁移的支持,Xend能启动一 个 再定位服务器。对于这项的支持由于安全的原因没有被设置为默认选项。

Note: the example xend configuration file modifies the defaults and starts up Xend as an HTTP server as well as a relocation server.
注意:这个xend示例配置文件修改了默认 选择,并且启动Xend,再 定位服务器和HTTP服务器一样。

From the file(由这个文件得知):

#(xend-http-server no)
(xend-http-server yes)
#(xend-unix-server yes)
#(xend-relocation-server no)
(xend-relocation-server yes)

Comment or uncomment lines in that file to disable or enable features that you require.
根据自己的需要请去掉或添加配置文件中非说 明文字行前的#号。如果您想 实现某个特性,请把该特性行前面的#号去掉。如果想关掉某项功能,请在行前加#号。

Connections from remote hosts are disabled by default:
通过远程主机连接功能默认被禁止:

# Address xend should listen on for HTTP connections, if xend-http-server is
# set.
# Specifying 'localhost' prevents remote connections.
# Specifying the empty string '' (the default) allows all connections.
#(xend-address '')
(xend-address localhost)

It is recommended that if migration support is not needed, the xend-relocation-server parameter value be changed to ``no'' or commented out.
建议,如果不需要支持迁移功能, xend-relocation- server 参数值应该改为"no"或把这功能注掉。


4.2 Xm

The xm tool is the primary tool for managing Xen from the console. The general format of an xm command line is:
xm 工具是通过控制台管理Xen的主要工具。常规xm命令行格式如下:

# xm command [switches] [arguments] [variables]

The available switches and arguments are dependent on the command chosen. The variables may be set using declarations of the form variable=value and command line declarations override any of the values in the configuration file being used, including the standard variables described above and any custom variables (for instance, the xmdefconfig file uses a vmid variable).

switches 和 arguments 项根据command有所不同. 变量(variables)的设置通过variable= value的方法来声明,并且命令(command)行声明优于任何 在配置文件中被应用过的参数,包括任何以上被描述的标准变量和任何变量(比如, xmdefconfig文件所用的vmid变量)

For online help for the commands available, type:
查看帮助,请输入:

# xm help

This will list the most commonly used commands. The full list can be obtained using xm help --long. You can also type xm help <command> for more information on a given command.

通过上面的指令,获 得最常用的xm 指令。全部的帮助列表,您 可以通过xm help --long 来获得。您也能通过输入xm help  <command>来获取某个指令的帮助信息。

4.2.1 Basic Management Commands (基本管理命令)

One useful command is # xm list which lists all domains running in rows of the following format:
一个比较有用的指令是#xm list  ,它能列出所有正在运行的Domain ,格式如下:

name domid memory vcpus state cputime

The meaning of each field is as follows:
每个字段代表的意思如下:

name
The descriptive name of the virtual machine. 虚拟机的名字,是一个描述型的名字
domid
The number of the domain ID this virtual machine is running in. 正在运行的虚拟机的Domain ID,是一个数值
memory
Memory size in megabytes. 内 存大小,单位是M
vcpus
The number of virtual CPUs this domain has. Domain 拥有虚拟CPU的个数,是一个数值
state
Domain state consists of 5 fields: Domain 状态,有五种状态;
r
running 正 在运行
b
blocked 
p
paused 停 止
s
shutdown 关 闭
c
crashed 崩溃
cputime
How much CPU time (in seconds) the domain has used so far.  CPU运 行时间 ,单位是秒

The xm list command also supports a long output format when the -l switch is used. This outputs the full details of the running domains in xend's SXP configuration format.

xm list 也支持长格式输出,要用到 -l  选项。长格式能输出正在运行Domain的详细内容。

You can get access to the console of a particular domain using the # xm console command (e.g. # xm console myVM).
您可以通过 #xm console command (比如#xm console myVM)进入Domain 的控制台;


5. Domain Configuration  Domain (配置)

The following contains the syntax of the domain configuration files and description of how to further specify networking, driver domain and general scheduling behavior.
下面的内容包括Domain 配置文件中的语法结构,网络预制,驱动Domain及如何调用等;


5.1 Configuration Files (配 置文件)

Xen configuration files contain the following standard variables. Unless otherwise stated, configuration items should be enclosed in quotes: see the configuration scripts in /etc/xen/ for concrete examples.
Xen的配置文件包括标准变量。被预制的内 容应该用(括号)包含进来, 请看/etc/xen/目录中的示例。

kernel
Path to the kernel image.  指定内核的路径
ramdisk
Path to a ramdisk image (optional).  指定ramdisk 的映像路径(可选)
memory
Memory size in megabytes.  指定内存大小,单位是M
vcpus
The number of virtual CPUs. 指定被虚拟系统的CPU个数
console
Port to export the domain console on (default 9600 + domain ID). 指定Domain 的控制台端口(默认是9600+Domain ID)
vif
Network interface configuration. This may simply contain an empty string for each desired interface, or may override various settings, e.g.
网络端口配置。预定端口可以是一个一个空 值,或指定更多的变量设置,比 如
         
 vif = [ 'mac=00:16:3E:00:00:11, bridge=xen-br0',
'bridge=xen-br1' ]
to assign a MAC address and bridge to the first interface and assign a different bridge to the second interface, leaving xend to choose the MAC address. The settings that may be overridden in this way are type, mac, bridge, ip, script, backend, and vifname.
          首先设置Domain 的网卡MAC地址,然后桥接第一个网络接口到另一个不同的网络接口,让xend来选择MAC地址。这些设置包括type,mac,bridge,ip, script,backend以及vifname等;
disk
List of block devices to export to the domain e.g. disk = [ 'phy:hda1,sda1,r' ] exports physical device /dev/hda1 to the domain as /dev/sda1 with read-only access. Exporting a disk read-write which is currently mounted is dangerous - if you are certain you wish to do this, you can specify w! as the mode.
         设置Domain所用的硬盘,比如 disk=[ 'phy:hda1,sda1,r' ],意思是Domain所用的硬盘是物理分区/dev/hda1 ,然后被映射到/dev/sda1,并且是只读访问。如果您想打开读写功能,请把r换成w,不过这样做目前有点危险。

dhcp
Set to `dhcp' if you want to use DHCP to configure networking. 设置Domain获取IP的方式是从 DHCP服务器获得
netmask
Manually configured IP netmask. 设置Domain的网络掩码
gateway
Manually configured IP gateway. 设置Domain的网关
hostname
Set the hostname for the virtual machine. 设置虚拟机的hostname
root
Specify the root device parameter on the kernel command line. 通过root来指定Domain所在的硬盘分区,在这里 要指定 所映射的硬盘;
nfs_server
IP address for the NFS server (if any). 指定NFS服务器的IP地址
nfs_root
Path of the root filesystem on the NFS server (if any). 指定NFS 服务器所提供的root文件系统
extra
Extra string to append to the kernel command line (if any)

Additional fields are documented in the example configuration files (e.g. to configure virtual TPM functionality).
附加的字段已经被写入了示例配置文件中(例如,配置虚拟 TPM 功能)

For additional flexibility, it is also possible to include Python scripting commands in configuration files. An example of this is the xmexample2 file, which uses Python code to handle the vmid variable.
对于附加性的可选的功能,它可能包括在配置文件中Python的脚本。 在示例/etc/xen/xmexample2文件中,比较它用Python代码来 定义vmid的变量。

5.2 Network Configuration (网络配置)

For many users, the default installation should work ``out of the box''. More complicated network setups, for instance with multiple Ethernet interfaces and/or existing bridging setups will require some special configuration.

对于大多数用户来说,默认安装应该能工作,默认的配置文件远远超出了常规用户 的需要 。更为复杂的网络设置,比如更多的网络接口或(并且)桥接才能实现将需要特殊的配置。

The purpose of this section is to describe the mechanisms provided by xend to allow a flexible configuration for Xen's virtual networking.

这一节主要是讲配置Xen虚拟网络的灵活性。

5.2.1 Xen virtual network topology (Xen 虚拟网络技术)

Each domain network interface is connected to a virtual network interface in dom0 by a point to point link (effectively a ``virtual crossover cable''). These devices are named vif<domid>.<vifid> (e.g. vif1.0 for the first interface in domain 1, vif3.1 for the second interface in domain 3).

在dom0中,每个Domain 网络接口通过点对点的(效果相当于“交叉线”)连接到一个虚拟的网络接口,这些设备 被命名为vif<domid>.<vifid>(比如在domain 1 中vif1.0是第一个网络接口,vif3.1是domain 3的第二个网络接口)。

Traffic on these virtual interfaces is handled in domain 0 using standard Linux mechanisms for bridging, routing, rate limiting, etc. Xend calls on two shell scripts to perform initial configuration of the network and configuration of new virtual interfaces. By default, these scripts configure a single bridge for all the virtual interfaces. Arbitrary routing / bridging configurations can be configured by customizing the scripts, as described in the following section.

这些虚拟的网络接口是通过domain 0的控制而相互通信,并且用标准的Linux结构来桥接、路由及传输限制等 。Xend向两个shell脚本呼叫,并且初始化网络及新的虚拟接口的配置。做为默认,这些脚本对于所有的虚拟接口都是通过单一的桥接。在下一节中,将讲 述通过自义定脚本来实现路由/桥接配置方法。

5.2.2 Xen networking scripts (Xen的网络脚本)

Xen's virtual networking is configured by two shell scripts (by default network-bridge and vif-bridge). These are called automatically by xend when certain events occur, with arguments to the scripts providing further contextual information. These scripts are found by default in /etc/xen/scripts. The names and locations of the scripts can be configured in /etc/xen/xend-config.sxp.

Xen的虚拟网络是通过两个shell脚本实现的(默认的 network-bridge和vif-bridge)。当事件发生时,这些 脚本通过 xend自动响应调用,并且脚本提供更深一层的前后关系的信息的许可。这些脚本位于/etc/xen/scripts目录中,脚本的名字和位置能在 /etc/xen/xend-config-sxp中配置。

network-bridge:
This script is called whenever xend is started or stopped to respectively initialize or tear down the Xen virtual network. In the default configuration initialization creates the bridge `xen-br0' and moves eth0 onto that bridge, modifying the routing accordingly. When xend exits, it deletes the Xen bridge and removes eth0, restoring the normal IP and routing configuration.

无论xend何时启动或停止,network-bridge都会响 应xend 来分别初始化或卸载Xen 虚拟网络。做为默认初始化配置,系统会创建一个网桥'xen-br0',并且移动eth0到这个网桥,与此同时修改相录的路由。当xend退出时,他会删 除Xen的网桥,并且移动eth0,恢复正常的IP和路由配置。
vif-bridge:
This script is called for every domain virtual interface and can configure firewalling rules and add the vif to the appropriate bridge. By default, this adds and removes VIFs on the default Xen bridge.
         这个脚本对每个Domain 虚拟网络接口做出响应,并且能配置防火墙规则,添加vif到适当的网桥上。默认情况下,用于在默认的Xen网桥上添加或移除VIF。

Other example scripts are available (network-route and vif-route, network-nat and vif-nat). For more complex network setups (e.g. where routing is required or integrate with existing bridges) these scripts may be replaced with customized variants for your site's preferred configuration.

其它示例脚本是可以应用的network-routevif-routenetwork-natvif -nat)。对于更为复杂的网络设置(比如 路由或对现有网桥的整合)脚本能够被自定义的变量所替换,以做为你网络预译的首选。


5.3 Driver Domain Configuration (Domain 驱动配置)


5.3.1 PCI

Individual PCI devices can be assigned to a given domain to allow that domain direct access to the PCI hardware. To use this functionality, ensure that the PCI Backend is compiled in to a privileged domain (e.g. domain 0) and that the domains which will be assigned PCI devices have the PCI Frontend compiled in.