Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10329017
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 虚拟化

2012-07-17 10:39:09

28.5.1 xm基本语法  

2010-11-24 13:19:37|  分类: 虚拟化+云计 |  标签: |字号 

28.5  xm 管理工具

除了通过虚拟系统管理图形化管理程序来管理Xen中的虚拟机外,Xen也提供了一个命令模式中的管理工具。这个工具称为 xm (Xen Manager)。

本节将介绍如何使用xm来管理Xen中的虚拟机。

28.5.1  xm 基本语法

如果要使用 xm 来管控虚拟机,你必须使用下列的语法:

xm COMMAND [ARGS...]

其中的COMMAND为 xm 的命令,常用的xm命令如表28-2所示。而ARGS则是COMMAND使用的参数与自变量,不同的COMMAND搭配的ARGS 也会不一样。至于每一个 COMMAND 可使用哪些 ARGS 将于本章节后再介绍。

表28-2  xm常用命令一览表

命令

说明

console

连接至虚拟机的控制台

create

建立一个 Domain-U 的虚拟机

destroy

删除一个 Domain-U 的虚拟机

list

列出 Domain

mem-set

重新设置 Domain-U 的内存大小

pause

暂停 Domain-U 虚拟机的执行

reboot

重新启动某一个虚拟机

restore

还原虚拟机

save

存储虚拟机的状态

Shutdown

关闭虚拟机

top

监控虚拟机的执行状态

unpause

取消暂停,亦即继续执行虚拟机

uptime

显示虚拟机的 uptime

vcpu-set

修改虚拟机的 CPU 数量

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

28.5.2  列出Domain

你可以使用xm来列出Xen中的区域。要列出Xen的区域信息,使用方法如下:

xm list [ --long | --label ] [DOMAIN...]

其中的 --long 与 --label 的功能说明如下。

--long:以完整的格式显示该虚拟机的详细信息。

--label:显示虚拟机的安全卷标 (Security Label)。

以下是我使用xm list来列出Xen 区域的范例。

[root@linux ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0  0 495 1 r-----  358.7
[root@linux ~]#

显示区域时,xm 会显示下列的每一个字段。

Name:这个字段显示虚拟机的名称。

ID:这是虚拟机的标识符。

Mem:虚拟机目前使用多少的内存。

VCPUs:虚拟机目前使用的 CPU 数量。

State:虚拟机的状态。这个字段中,若显示若干标签,则每一个标签代表的意义如下。

r:代表该虚拟机正在执行中(Running)。

b:该虚拟机因等候 I/O 而被阻断(Block)。

p:该虚拟机已被暂停(Pause)。

s:该虚拟机已被关闭(Shutdown)。

c:虚拟机宕机(Crash)。

d:虚拟机正在结束中(Dying)。

Time:虚拟机执行共花费多少时间。

28.5.3  启动与删除 Domain-U

在安装虚拟机后,Red Hat Enterprise Linux 5的Xen 会默认停止该虚拟机。如果打算启动该虚拟机,你必须以xm来启动它:

xm create [-c] CONFIGFILE [NAME=VALUE...]

其中的CONFIGFILE是该虚拟机的配置文件路径名称,而后面的参数则是该虚拟机器内核的启动参数。

关于虚拟机的配置文件。

Red Hat Enterprise Linux 5中提供的是Xen 3.0 版。在该版本的Xen中,建立一个新的虚拟机后,会自动产生该虚拟机的配置文件,但在其他版本的Xen里,可能不会自动产生虚拟机的配置文件。

默认虚拟机配置文件会存储于/etc/xen/中,且以该虚拟机的名称作为配置文件的名称。

另外,Xen 里面也允许你删除(Destroy)一个虚拟机。删除的时候,Xen会立即终止该虚拟机的执行,就如同按下计算机的电源一样。

若采用删除的方式来终止虚拟机的执行,你可能会失去所有未存储的资料。所以,请不要随意使用删除的方式来结束虚拟机的执行,若真要这样做,可能会造成无法想象的后果。

如果你想要利用 xm 来删除一个虚拟机,你可以执行下列命令:

xm destroy DOMAIN

其中的DOMAIN就是虚拟机的名称。

以下是我使用xm来启动与删除一个虚拟机的示范。

 [root@linux ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s) Domain-0  0 495 1 r----- 353.9 ?①
[root@linux ~]# ls /etc/xen/  ②
auto/  system1 xend-pci-quirks.sxp  xmexample.hvm
qemu-ifup* xend-config.sxp xmexample1  xmexample.vti
scripts/ xend-pci-permissive.sxp  xmexample2 
[root@linux ~]# xm create system1 ?③
Using config file "/etc/xen/system1".
Going to boot Red Hat Enterprise Linux Server (2.6.18-8.el5xen)
kernel: /boot/vmlinuz-2.6.18-8.el5xen
initrd: /boot/initrd-2.6.18-8.el5xen.img
Started domain system1
[root@linux ~]# xm list
Name   ID Mem(MiB) VCPUs State Time(s)
Domain-0  0  495 1 r-----           355.7
system1  2      500 1 -b----            0.7 ?④
[root@linux ~]# xm destroy system1 ⑤ ?
[root@linux ~]# xm list
Name       ID Mem(MiB) V CPUs State Time(s)
Domain-0  0 495   1     r-----  357.9 ?⑥
[root@linux ~]# ls /etc/xen/ ?⑦
auto/   system1  xend-pci-quirks.sxp  xmexample.hvm
qemu-ifup* xend-config.sxp xmexample1     xmexample.vti
scripts/     xend-pci-permissive.sxp     xmexample2 
[root@linux ~]#


① 目前我的 Red Hat Enterprise Linux 中仅有一个Domain-0,表示未启动任何虚拟机器。

② 在/etc/xen/ 目录中,有一个名为system1的文件,这就是system1 虚拟机器的配置文件。

③ 现在,利用xm来启动system1虚拟机吧!

④ 完成后,再次查看所有的虚拟机,就可发现system1已经顺利地启动了。

⑤ 现在,利用xm来删除system1虚拟机。

⑥ 确认一下system1是否还在。根据xm list的结果可知,system1虚拟机已经被终止了。

⑦ 删除虚拟机并不会删除虚拟机的配置文件,因此,/etc/xen/中仍存储着system1这个文件。

28.5.4  连接至虚拟机控制台

启动虚拟机后,你可以连接到该虚拟机的控制台来使用该虚拟机。如果要通过xm来连接虚拟机的控制台,则必须使用xm console 命令:

xm console DOMAIN

其中的DOMAIN就是虚拟机的名称。连接虚拟机后,如果要回到真实的机器,你可以在虚拟机的控制台中按下【Ctrl+]】组合键。这样就可以返回真实机器上。

以下是我使用xm 连接至虚拟机控制台的范例。

[root@linux ~]# xm console system1 ?①
Red Hat Enterprise Linux Server release 5 (Tikanga)
Kernel 2.6.18-8.el5xen on an i686
localhost.localdomain login: root
Password:
Last login: Thu Nov 15 11:57:05 on xvc0
[root@localhost ~]# hostname
localhost.localdomain ②
[root@localhost ~]# uptime ?③
11:57:46 up  2:00,  1 user,  load average: 0.00, 0.00, 0.00
[root@localhost ~]# ?④
[root@linux ~]#

① 连接到 system1 虚拟机的控制台。

② 根据目前的主机名可知,现在的确是在 system1 的虚拟机下。

③ 看一下uptime的结果,这台虚拟机才开机2分钟。

④ 按下【Ctrl+D】组合键回到宿主机的Shell下吧!

28.5.5  监控 Domain

如果你打算监控每一个虚拟机的状态,则可以使用xen top 进行监控。

xentop - 11:59:32 Xen 3.0.3-rc5-8.el5
2 domains:  1 running,  1 blocked,  0 paused, 
0 crashed,  0 dying,  0 shutdown
Mem: 1039932k total, 1038780k used, 1152k free CPUs: 1 @ 2799MHz
NAME  STATE CPU(sec)  CPU(%) MEM(k) MEM(%) 
MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k)
NETRX(k) VBDS VBD_OO VBD_RD VBD_WR SSID
Domain-0 -----r 899 0.9 506964 48.7 no
limit n/a 1  4 47889 1818 0 0 0 0 0
system1 --b--- 237 0.1 511768 49.2 512000 
49.2 1 1 9 462 1 0 18789 27849 0Delay  Networks  vBds  VCPUs  Repeat header  Sort order  Quit

在监控虚拟机的过程中,你会看到画面的下方有一行信息,提示你可以做什么动作。在监控的过程中可以执行的动作整理如表28-3所示。

表28-3  在监控中可以执行的动作

项目

按键  

说明

Delay

D

修改显示更新频率,单位为秒

Networks

N

修改显示网络的状态

vBds

B

切换是否显示虚拟磁盘的状态

VCPUs

V

切换是否显示虚拟中央处理器信息

Repeat header

R

切换是否在每一个虚拟机前显示表格字段

Sort order

S

切换排序的字段

Quit     

Q

结束 xm top,回到 Shell

28.5.6 修改Domain-U

28.5.6  修改Domain-U

当然,跟虚拟系统管理一样,你也可以利用xm来修改 Domain-U 的硬件设备之设置。你可以执行如下的操作

调整内存大小

xm mem-set DOMAIN MEM
xm mem-max DOMAIN MEM

mem-set用来修改虚拟机内存的目前使用量,而mem-max 则用来修改内存的最大值。值得注意的是,mem-set 设置的值不能超过mem-max设置的值的大小。

调整 CPU 数量

xm vcpu-set DOMAIN VCPU

其中的DOMAIN为虚拟机的名称,Mem为内存的大小,单位为MB,而VCPU则是虚拟机CPU的数量。

[root@linux ~]# xm list
Name                ID  Mem(MiB)  VCPUs  State  Time(s)
Domain-0            0   495      1   r-----    902.2
system1                 3   499 ①   1  ------     237.3
[root@linux ~]# xm mem-set system1 256 ②
[root@linux ~]# xm list
Name                ID  Mem(MiB)  VCPUs  State  Time(s)
Domain-0             0      495     1   r-----  902.5
system1                 3      322  ③?  1   -b---- 237.6
[root@linux ~]# xm list
Name                ID  Mem(MiB)  VCPUs   State  Time(s)
Domain-0             0      495     1   r-----   902.8
system1                 3      255  ④
1   -b---- 237.8
[root@linux ~]#

① 目前system1的内存为499 MB。

② 将system1的内存改为256 MB吧。

② Xen 并不会马上修改,它会慢慢地调降至指定的大小。

④ 稍候片刻,system1的内存就成了255 MB。

28.5.7  控制Domain-U

Xen允许你控制虚拟机的执行状态,也可以利用xm来控制Xen中的虚拟机。至于如何使用xm来控制虚拟机的状态,请参阅表28-4。

表28-4  使用XM控制虚拟机的状态说明

动作

命令

暂停虚拟机

xm pause DOMAIN

取消暂停

xm unpause DOMAIN

关闭虚拟机

xm shutdown [OPTIONS] DOMAIN

重新启动虚拟机

xm reboot [OPTIONS] DOMAIN

其中DOMAIN为虚拟机的名称。另外,shutdown 与 reboot可以配合下列的参数。

-a, --all:代表全部的虚拟机。

w, --wait:需等候多少时间。

以下是我使用xm控制虚拟机的示范。

[root@linux ~]# xm list
Name                ID  Mem(MiB)  VCPUs  State  Time(s)
Domain-0          0     495      1   r-----  903.4
system1              3     255      1   ------ ① 237.8
[root@linux ~]# xm pause system1 ②
[root@linux ~]# xm list
Name                ID  Mem(MiB)  VCPUs  State  Time(s)
Domain-0         0     495      1   r-----  903.7
system1             3     255      1   --p--- ③ 237.8
[root@linux ~]# xm unpause system1 ④?
[root@linux ~]# xm list
Name                ID  Mem(MiB)  VCPUs  State  Time(s)
Domain-0         0     495      1   r-----  912.1
system1             3     255      1   ------ ⑤ 239.2
[root@linux ~]#

① 目前 system1 并无显示 p 标签,代表该虚拟机处在正常的执行中。

② 暂停 system1 吧!

③ 目前 system1 的状态区位中出现了p标签,代表 system1 已经暂停了。

④ 现在来取消 system1 的暂停状态。

⑤ system1 果然又继续执行了。

阅读(1224) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~