2013年(65)
分类:
2013-02-28 11:43:29
原文地址:28.6 virsh管理工具 作者:zzjlzx
2010-11-24 13:25:48| 分类: 虚拟化+云计 | 标签: |字号大中小
28.6 virsh管理工具
另外一个命令模式的 Xen 管理工具叫做virsh(Virtual Shell)。virsh 是由一个名为 libvirt的软件提供的管理工具,提供管理虚拟机更高级的能力。virsh大部分的功能与xm 一样,你可以利用 virsh 来启动、删除、控制、监控Xen 的区域,因此你也可以利用 virsh 来管理 Xen 中所有的虚拟机。
你可能会很好奇,既然已经提供了xm管理工具,为何Red Hat Enterprise Linux 还需提供virsh?
这是因为在Linux领域里,除了Xen外,还有许多种机制也提供虚拟化的功能,然而,不同的虚拟化系统的使用方法都不太相同。为了让Linux可以通过同一种方法读取与管理各种虚拟化子系统,libvirt团队()便开发出了libvirt.so链接库,让软件的开发人员可以用 libvirt.so提供的API来管控所有的虚拟化系统。而virsh 就是利用 libvirt.so 链接库编写而成的管理工具。因此,不管实质上执行的是何种虚拟化子系统,你只需学会 virsh 的使用方法,就可以藉此来使用或管理各种虚拟化系统提供的虚拟机了。
本节将介绍 virsh 这个管理工具的使用方法。
28.6.1 基本语法
virsh的基本用法如下:
virsh [COMMAND] [ARGS...] |
另外需要注意的是,virsh提供两种执行模式:"直接模式(Direct Mode)"与"互动模式(Interactive Mode)"。在直接模式里,你必须在Shell中以参数、自变量的方式来执行virsh,如果在互动模式中,则virsh会提供一个提示字符串,你可以在该提示字符串后,输入要执行的命令。如果执行virsh没有指定任何参数或自变量则默认就是进入互动模式。
与xm一样,COMMAND也是 virsh提供的命令,常用的命令如表 28-5所示。
表28-5 virsh常用命令一览表
命令< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> |
说明 |
help |
显示该命令的说明 |
quit |
结束 virsh,回到 Shell |
connect |
连接到指定的虚拟机服务器 |
create |
启动一个新的虚拟机 |
destroy |
删除一个虚拟机 |
start |
开启(已定义的)非启动的虚拟机 |
define |
从 XML 定义一个虚拟机 |
undefine |
取消定义的虚拟机 |
dumpxml |
转储虚拟机的设置值 |
list |
列出虚拟机 |
reboot |
重新启动虚拟机 |
save |
存储虚拟机的状态 |
restore |
回复虚拟机的状态 |
suspend |
暂停虚拟机的执行 |
resume |
继续执行该虚拟机 |
dump |
将虚拟机的内核转储到指定的文件,以便进行分析与排错 |
shutdown |
关闭虚拟机 |
setmem |
修改内存的大小 |
setmaxmem |
设置内存的最大值 |
setvcpus |
修改虚拟处理器的数量 |
而virsh命令语法的ARGS则是COMMAND 搭配的参数。不同的COMMAND可能需搭配不同的参数,至于什么COMMAND可以搭配哪些参数,我将会在对各功能的介绍中提到。
总地来说,如果ARGS需指定虚拟机,你可以使用下列的格式指定是哪一个虚拟机器。
虚拟机的名称。
虚拟机启动后的标识符。
虚拟机的 UUID。
以下就是使用 virsh 的示范。
[root@linux ~]# virsh ?① 欢迎使用 virsh - 虚拟化的互动模式终端机。 类型: 「help」以取得命令的求助画面 「quit」离开 virsh # list Id 名称 状态 ---------------------------------- 0 Domain-0 执行中 virsh # quit ② [root@linux ~]# virsh list ③ Id 名称 状态 ---------------------------------- 0 Domain-0 执行中 [root@linux ~]# |
① 以互动模式执行 virsh。
② 结束 virsh 的执行,回到默认的 Shell 下。
③ 这是以直接模式执行 virsh,结果与互动模式完全一样。
由于virsh与xm的部分功能相同,因此,本节仅介绍virsh与xm的不同之处。
28.6.2 查看Domain信息
virsh 可以查看虚拟机的相关信息,你只需在执行 virsh 时配合如表28-6所示的命令。
表28-6 查看Domain信息执行的命令
命令 |
说明 |
domid |
查看虚拟机的标识符 |
domname |
查看虚拟机的名称 |
domuuid |
查看虚拟机的 UUID |
domstate |
查看虚拟机目前的状态 |
dominfo |
查看虚拟机的信息 |
执行上述的每一个命令时,你都必须指定虚拟机的名称、标识符和UUID。以下是我使用 virsh 查看虚拟机信息的示范。
[root@linux ~]# virsh domid system1 3 ?①[root@linux ~]# virsh domname 3 system1 ②[root@linux ~]# virsh domuuid system1 8f35e0d3-f9d0-11f7-c0a5-30bd84228549 ③?[root@linux ~]# virsh dominfo system1 ④? Id: 3 名称: system1 UUID: 8f35e0d3-f9d0-11f7-c0a5-30bd84228549 操作系统类型: linux 状态: 以组绝 处理器数目: 1 处理器时间: 23.7s 最大内存: 512000 KB 已使用的内存: 511824 KB[root@linux ~]# |
① 这是 system1 虚拟机的标识符。
② 这是标识符 3 的虚拟机之名称。
③ system1 的 UUID。
④ 这则是 system1 完整的信息。
28.6.3 转储区域配置
除了上述的功能外,virsh也允许把某一个虚拟机目前的设置值存储下来。virsh把设置值存储下来的动作,称为"转储(Dump)"。
转储虚拟机设置值有什么好处?
好处很多,我至少想到两个。首先,转储虚拟机的设置值可以让你把某一个虚拟机的设置备份下来,以供日后恢复该设置配置。其次,如果要用 virsh 来启动一个虚拟机,你必须指定该虚拟机的配置文件。因此,如果你希望用virsh 来管理所有的虚拟机,那么请务必把每一个虚拟机的设置值转储下来后妥善保存。
如果要转储虚拟机的设置值,你可以执行:
virsh dumpxml DOMAIN |
其中的DOMAIN就是要转储的虚拟机。你可以使用虚拟机的名称、标识符或是UUID来指定要转储到哪一个虚拟机。以下是我使用virsh转储虚拟机的范例。
[root@linux ~]# virsh dumpxml system1 ?① [root@linux ~]# ls ② anaconda-ks.cfg Desktop/ install.log install.log.syslog [root@linux ~]# virsh dumpxml system1 > system1.virsh.xml ?③ [root@linux ~]# ls anaconda-ks.cfg Desktop/ install.log install.log.syslog system1.virsh.xml ?④ |
① 这是 system1 的设置数据。
② 目前这个目录下只有这几个文件。
③ 现在把 system1 转储后的设置数据转向存储于 system1.virsh.xml文件中。
④ 这就是 system1 的设置数据备份文件。
28.7 本章小结
本章简单地介绍了Xen这个强大的虚拟系统的基本建置与管理的概念,希望你会喜欢上这个在Red Hat Enterprise Linux 5 中堪称最大变革的子系统。希望你能发挥更大的想象力与创造力,将Xen带来的好处应用在你的环境中。