2010-11-23
2010年11月22日
[b]三、Xen管理
[/b]* xm
Xen Domain Configuration Files
Xen域配置文件
Xen域的域配置文件指定管理域行为的多个参数。这些不同的配置Xen的文件放在/etc/xen目录下。以key=value格式保存着多个选项的配置文件是以python写的可执行文件,所以各选项必须是合法的python代码。/etc/xen/xend-config.sxp指定用于创建dom0的配置文件。
如果你在创建域的时候提供绝对路径的话你可以把创建domUs的配置文件放在任何地方。/etc/xen/auto是一个特殊目录,所有放置在里面的域配置文件对应的域都会在xend监听程序启动的时候被自动启动。
下面是一些在Xen域配置文件中要配置的常用的选项:
* kernel:用于域的内核镜像,提供到内核镜像文件的绝对路径
* ramdisk:指定给域的初始ramdisk。如果你的内核有用于你的根文件系统和硬盘的内置驱动,可能你不需要创建和指定ramdisk。此配置提供到initrd文件位置的完整路径
* memory:指定分配给域的总体内存容量,以MB为单位。如果分配的内存不足将阻止域的启动。你还必须确定Xen管理的总内存--包含dom0和所有的domUs--必须少于或等于安装在你的机器上面的物理内存总量。
* name:提供一个识别域的唯一的名称。这名称将会在你列出系统里正在运行的域的时候被显示。
* root:指定用于域的根设备
* disk:指定输出到域的块设备列表。它以如下格式提供:
disk = [ "backend device", "frontend device", "mode" ]
“backend device”指定输出到客户域的设备的格式和名称。格式可以是一个简单的文件镜像或一个实际的物理磁盘。Xen把输出到客户域的文件镜像认作是基于文件的VBD。因为这是开始Xen最简单而且快捷的方式,所以我们这章将选用此格式。
file://path_to_the_file_image
:文件镜像以loopback设备的形式输出。loopback设备的设置将由Xen管理。
tap:aio:/path_to_the_file_image:文件镜像以能够被Xen的blktap驱动访问的tap设备的形式输出。在Xen文档中推荐以这种方式输出文件镜像到客户域。
phy:device:/name_of_the_device:输出到客户域的特定物理设备。此设备可以用通常的/dev/sda1的形式或使用该设备的16进制主要/次要号码(hex major/minor number)来指定--0x301
“frontend device”指定输出的backend device如何出现在客户域中。它可以用通常的/dev/sda1的形式或使用该设备的16进制主要/次要号码(hex major/minor number)来指定--0x301
“mode”指定设备是以只读还是可读写的形式输出。两个合法的选项是:
r -- read-only
rw -- read and write
* vif:指定域的虚拟网络接口配置。以如下的格式指定:
vif = [ "key1 = value1", "key2 = value2" ]
配置该指令的常用的选项是:
bridge:指定用于此接口的网桥
mac:指定此虚拟接口的MAC地址。如果有没有提供一个MAC地址,它将在Xen启动的时候随机配置一个MAC地址。此随机的地址是从IEEE分配给XenSource的(00-16-3E)的范围内选取的。你也可以用此指令定义一个静态的MAC地址,使你能够从DHCP服务器上分配到一个静态的IP地址。
* on_reboot:指定域重启过程中发生的动作。重启时候的合法状态有:
destroy:完全关闭域
preserve:域不会被清除,可得到域的调试信息以帮助调试崩溃
rename-restart:旧的域不被清除。替代的是它被重命名同时启动一个新的域替换旧的域
* on_crash:指定domU崩溃后所执行的动作。此指令的合法状态与on_boot选项一样
* vcpus:虚拟CPUs的数量
Xen Management User Interface―xm
xm是通过xend(Xen的监听进程)与Xen管理器通信的一个管理工具。由于它需要有使用xend和管理器之间的信道的特权,所以运行xm的命令需要有系统管理员的权限。
执行一个xm命令将马上会返回给访问者,但是实际的操作可能还没完成,某些域的命令可能会运行相当长的一段时间才能完成。确定命令是否成功执行完毕的唯一方法就是定期打印列表并检查。
域列表中某个域的状态栏的状态可能是下面五个中的一个:
* r--running:当前正在使用CPU的域
* b--blocked:中断的域。这种情况一般出现在当vcpu等待一个外部事件在该域发生。
* p--paused:挂起的域。暂停的域仍然会消耗分配的资源(例如内存),but is not eligible for scheduling by the Xen hypervisor
* s--shutdown:正在进行关机操作的域。
* c-crashed:列出崩溃的域。
通常的域列表是一个不容易被其他工具分析的表的格式,因此xm也提供了一个“-long”选项以S-Expression格式列出容易被其他工具分析的域信息。
Time for Action―Xen Manager
现在我们论证让xm完成一些普通任务
1、打印当前Xen环境下正在运行的域
xm list
2、打印当前Xen环境中dom0的详细信息
xm list Domain-0 --long
3、打印当前Xen环境下关于一个域的详细信息
xm list --long domain-name
4、暂停当前Xen环境下正在运行的一个domU
xm pause domain-name
5、解除之前暂停的domU的暂时状态
xm unpause domain-name
6、保存当前Xen环境下面正在运行的domU的状态到指定文件,接下来状态将会被保存为磁盘上的文件并把此域从运行域列表里面移除
xm save domain-name file-name
7、从保存的状态恢复一个域。它将从保存着状态信息的文件恢复域并把域恢复为运行状态。
xm restore file-name
8、检查Xen内核缓冲信息
xm demsg
9、打印当前Xen环境的主机信息
xm info
10、打印Xen日志
xm log
11、类似Unix的top一样实时监测Xen的域
xm top
12、列出某个域所使用的所有块设备
xm block-list domain-name
13、列出某个域使用的所有的网络接口
xm network-list domain-name
15、列出某个域使用的所有的网络接口的详细信息
xm network-list domain-name --long
16、显示你的Xen环境里所有域的正常运行时间
xm uptime
17、重启一个域。它不会重新读取该域的Xen配置文件。如果你想重载该域的配置,你需要使用halt命令然后再执行create命令。
xm reboot domain-name
18、挂起一个域
xm suspend domain-name
19、恢复一个挂起的域
xm resume domain-name
20、重命名一个正在运行的域
xm rename domain-name-old domain-name-new
21、连接到域的控制台
xm console domain-name
22、关闭域
xm shutdown domain-name
[b] 四、Xen网络
[/b]* 桥接网络
* 路由网络
* 包含NAT的虚拟局域网
桥接网络
Time for Action―Using Bridged Networking
1、xen里面缺省的网络设置是桥接,这可以通过查看Xen在配置文件(/etc/xen/xend-config.sxp)来进一步确认,它应该有非注释的下面两行。
(network-script network-bridge)
(vif-script vif-bridge)
2、为domU创建一个新的配置文件,你可以使用在之前章节创建的任何一个镜像或你自己拥有的其他镜像。根据你选择的镜像替换文件中的配置:
kernel = "/boot/vmlinuz-2.6.16.38-xenU"
memory = 32
name = "bridged_domU"
disk = [\"tap:aio:/root/xen-images/ttylinux_domU.img,hda,w\"]
vif = [ \"bridge=xenbr0\" ]
root = "/dev/hda1 ro"
3、用xm启动domU
xm create /root/xenimages/ttylinux_domU.cfg
2010年11月22日
[b]三、Xen管理
[/b]* xm
Xen Domain Configuration Files
Xen域配置文件
Xen域的域配置文件指定管理域行为的多个参数。这些不同的配置Xen的文件放在/etc/xen目录下。以key=value格式保存着多个选项的配置文件是以python写的可执行文件,所以各选项必须是合法的python代码。/etc/xen/xend-config.sxp指定用于创建dom0的配置文件。
如果你在创建域的时候提供绝对路径的话你可以把创建domUs的配置文件放在任何地方。/etc/xen/auto是一个特殊目录,所有放置在里面的域配置文件对应的域都会在xend监听程序启动的时候被自动启动。
下面是一些在Xen域配置文件中要配置的常用的选项:
* kernel:用于域的内核镜像,提供到内核镜像文件的绝对路径
* ramdisk:指定给域的初始ramdisk。如果你的内核有用于你的根文件系统和硬盘的内置驱动,可能你不需要创建和指定ramdisk。此配置提供到initrd文件位置的完整路径
* memory:指定分配给域的总体内存容量,以MB为单位。如果分配的内存不足将阻止域的启动。你还必须确定Xen管理的总内存--包含dom0和所有的domUs--必须少于或等于安装在你的机器上面的物理内存总量。
* name:提供一个识别域的唯一的名称。这名称将会在你列出系统里正在运行的域的时候被显示。
* root:指定用于域的根设备
* disk:指定输出到域的块设备列表。它以如下格式提供:
disk = [ "backend device", "frontend device", "mode" ]
“backend device”指定输出到客户域的设备的格式和名称。格式可以是一个简单的文件镜像或一个实际的物理磁盘。Xen把输出到客户域的文件镜像认作是基于文件的VBD。因为这是开始Xen最简单而且快捷的方式,所以我们这章将选用此格式。
file://path_to_the_file_image
:文件镜像以loopback设备的形式输出。loopback设备的设置将由Xen管理。
tap:aio:/path_to_the_file_image:文件镜像以能够被Xen的blktap驱动访问的tap设备的形式输出。在Xen文档中推荐以这种方式输出文件镜像到客户域。
phy:device:/name_of_the_device:输出到客户域的特定物理设备。此设备可以用通常的/dev/sda1的形式或使用该设备的16进制主要/次要号码(hex major/minor number)来指定--0x301
“frontend device”指定输出的backend device如何出现在客户域中。它可以用通常的/dev/sda1的形式或使用该设备的16进制主要/次要号码(hex major/minor number)来指定--0x301
“mode”指定设备是以只读还是可读写的形式输出。两个合法的选项是:
r -- read-only
rw -- read and write
* vif:指定域的虚拟网络接口配置。以如下的格式指定:
vif = [ "key1 = value1", "key2 = value2" ]
配置该指令的常用的选项是:
bridge:指定用于此接口的网桥
mac:指定此虚拟接口的MAC地址。如果有没有提供一个MAC地址,它将在Xen启动的时候随机配置一个MAC地址。此随机的地址是从IEEE分配给XenSource的(00-16-3E)的范围内选取的。你也可以用此指令定义一个静态的MAC地址,使你能够从DHCP服务器上分配到一个静态的IP地址。
* on_reboot:指定域重启过程中发生的动作。重启时候的合法状态有:
destroy:完全关闭域
preserve:域不会被清除,可得到域的调试信息以帮助调试崩溃
rename-restart:旧的域不被清除。替代的是它被重命名同时启动一个新的域替换旧的域
* on_crash:指定domU崩溃后所执行的动作。此指令的合法状态与on_boot选项一样
* vcpus:虚拟CPUs的数量
Xen Management User Interface―xm
xm是通过xend(Xen的监听进程)与Xen管理器通信的一个管理工具。由于它需要有使用xend和管理器之间的信道的特权,所以运行xm的命令需要有系统管理员的权限。
执行一个xm命令将马上会返回给访问者,但是实际的操作可能还没完成,某些域的命令可能会运行相当长的一段时间才能完成。确定命令是否成功执行完毕的唯一方法就是定期打印列表并检查。
域列表中某个域的状态栏的状态可能是下面五个中的一个:
* r--running:当前正在使用CPU的域
* b--blocked:中断的域。这种情况一般出现在当vcpu等待一个外部事件在该域发生。
* p--paused:挂起的域。暂停的域仍然会消耗分配的资源(例如内存),but is not eligible for scheduling by the Xen hypervisor
* s--shutdown:正在进行关机操作的域。
* c-crashed:列出崩溃的域。
通常的域列表是一个不容易被其他工具分析的表的格式,因此xm也提供了一个“-long”选项以S-Expression格式列出容易被其他工具分析的域信息。
Time for Action―Xen Manager
现在我们论证让xm完成一些普通任务
1、打印当前Xen环境下正在运行的域
xm list
2、打印当前Xen环境中dom0的详细信息
xm list Domain-0 --long
3、打印当前Xen环境下关于一个域的详细信息
xm list --long domain-name
4、暂停当前Xen环境下正在运行的一个domU
xm pause domain-name
5、解除之前暂停的domU的暂时状态
xm unpause domain-name
6、保存当前Xen环境下面正在运行的domU的状态到指定文件,接下来状态将会被保存为磁盘上的文件并把此域从运行域列表里面移除
xm save domain-name file-name
7、从保存的状态恢复一个域。它将从保存着状态信息的文件恢复域并把域恢复为运行状态。
xm restore file-name
8、检查Xen内核缓冲信息
xm demsg
9、打印当前Xen环境的主机信息
xm info
10、打印Xen日志
xm log
11、类似Unix的top一样实时监测Xen的域
xm top
12、列出某个域所使用的所有块设备
xm block-list domain-name
13、列出某个域使用的所有的网络接口
xm network-list domain-name
15、列出某个域使用的所有的网络接口的详细信息
xm network-list domain-name --long
16、显示你的Xen环境里所有域的正常运行时间
xm uptime
17、重启一个域。它不会重新读取该域的Xen配置文件。如果你想重载该域的配置,你需要使用halt命令然后再执行create命令。
xm reboot domain-name
18、挂起一个域
xm suspend domain-name
19、恢复一个挂起的域
xm resume domain-name
20、重命名一个正在运行的域
xm rename domain-name-old domain-name-new
21、连接到域的控制台
xm console domain-name
22、关闭域
xm shutdown domain-name
[b] 四、Xen网络
[/b]* 桥接网络
* 路由网络
* 包含NAT的虚拟局域网
桥接网络
Time for Action―Using Bridged Networking
1、xen里面缺省的网络设置是桥接,这可以通过查看Xen在配置文件(/etc/xen/xend-config.sxp)来进一步确认,它应该有非注释的下面两行。
(network-script network-bridge)
(vif-script vif-bridge)
2、为domU创建一个新的配置文件,你可以使用在之前章节创建的任何一个镜像或你自己拥有的其他镜像。根据你选择的镜像替换文件中的配置:
kernel = "/boot/vmlinuz-2.6.16.38-xenU"
memory = 32
name = "bridged_domU"
disk = [\"tap:aio:/root/xen-images/ttylinux_domU.img,hda,w\"]
vif = [ \"bridge=xenbr0\" ]
root = "/dev/hda1 ro"
3、用xm启动domU
xm create /root/xenimages/ttylinux_domU.cfg