由于virsh命令种类过多,因此管理员很难了解究竟哪些命令最适合于当前管理需求,如果是这样,那么下面的内容会让管理员拥有一个好的开始。

使用virsh命令行工具能够大大简化hypervisor和虚拟机管理工作,virsh工具基于开源libvirt管理API.通过virsh命令,管理员能够创建、编辑、迁移和关闭虚拟机以及一些其他操作。事实上virsh包含大量命令,因此不得不将其分为多个类别,比如域相关命令、存储池相关命令和快照相关命令等。面对如此多的virsh命令,管理员应该如何选择才能保证数据中心高效管理呢?下面列举了一些使用频率高的命令:

通用virsh命令

虚拟机3

这个类别中的命令并不只适用于虚拟机,而是能够帮助完成一些通用管理任务。

help:获取可用virsh命令的完整列表,并且分为不同的种类。管理员可以指定列表中的特定组来缩小查询范围,其中包含每个命令组的简要描述;或者查询特定命令以获取更为详细的信息,包括名称、简介、描述以及选项等。

list:管理员可以使用这个命令获取现有虚拟机的各种信息以及当前状态。根据需求的不同,管理员可以使用—inactive或者—all选项进行筛选。命令执行结果中将会包含虚拟机ID、名称以及当前状态,可能的状态包括运行、暂停或者崩溃等。

connect:管理员可以使用这条命令连接到本地hypervisor,也可以通过统一资源标识符来获取远程访问权限。其所支持的常见格式包括xen:///(默认)、qemu:///system、qemu:///session以及lxc:///等。如果想要建立只读连接,需要在命令中添加—readonly选项。

域相关命令

使用这些virsh命令直接操作特定虚拟机。

desc:显示或者更改虚拟机的描述和标题。相关选项包括—live、——config、——edit和—title.需要注意的是如果同时使用—live 和—config,那么—config拥有更高的优先级。同样,建议保证虚拟机标题尽量简洁,虽然这并不是一项强制规定。

Save:这条命令将会关闭虚拟机并且将数据保存到文件中。这样就能够释放之前分配给虚拟机的内存,因为这些虚拟机不再运行在系统上。如果想要查看具体的保存过程,可以使用—verbose选项。如果想要恢复之前保存的虚拟机,可以使用restore命令。

sysmem:管理员可以使用这个命令调整分配给虚拟机的内存,但是注意单位是kilobytes.借助于setmaxmem,管理员可以更改分配给虚拟机的大内存数量。Setmem和setmaxmem可以使用—config、——live和—current flags作为选项。

migrate:将虚拟机迁移到另外一台主机,选项包括实时迁移或者直接迁移等。需要注意的是单台hypervisor不能够支持所有这些迁移类型。如果对虚拟机进行实时迁移,则可以使用migrate –setmaxdowntime来设定大停机时间。

undefine:这条命令可以在不产生任何停机时间的情况下将一台运行状态的虚拟机转变为临时虚拟机。如果虚拟机没有处于活动状态,那么这条命令将会移除其配置。管理员还可以添加多种选项,比如——managed-save、 ——snapshots-metadata、 ——storage、 ——remove-all-storage 和 ——wipe-storage等。

dump:为虚拟机创建dump日志文件,以便在排错时使用。如果想要在产生dump文件的过程中保持虚拟机一直运行,则需要使用- -live选项,否则虚拟机将会被置于挂起状态。使用- - crash选项,虚拟机将会被停止运行,并且其状态也会被改为崩溃。使用- - reset选项可以在产生dump日志文件之后重置虚拟机。

shutdown:正常关闭虚拟机。这条命令比destroy命令更加安全,只有在虚拟机没有任何响应的情况下才推荐使用destroy命令,因为这条命令可能导致文件系统损坏。管理员还可以使用- -more选项更改默认的虚拟机关闭方式。

存储池相关命令

这个类别中的命令主要用来操作存储池资源。

pool-list:获取处于活动状态的存储池对象列表。可以使用——persistent、——transient、——autostart 或 ——no-autostart等选项进行分类筛选。如果想要获取非活动状态的存储池列表,可以使用——active选项;如果想要获取完整列表,需要使用——all选项。

pool-build:可以使用这条命令创建存储池。这条命令的选项包括——overwrite和 ——no-overwrite.如果使用—overwrite选项,那么目标设备上的现有数据将会被覆盖,如果使用——no-overwrite参数,当目标设备上已经创建文件系统时用户将会收到报错。

pool-edit:这条命令允许管理员使用默认文本编辑器对存储池的XML配置文件进行编辑,并且还会进行错误检查。

存储卷相关命令

管理员可以使用下面这些virsh命令来管理存储卷。

vol-create::基于XML文件或者命令行参数来创建存储卷。进一步来说,管理员可以使用vol-create-from命令将其他卷作为输入来创建新的存储卷,也可以使用vol-create-as命令加上一系列参数来创建存储卷,还可以设定卷大小以及文件格式。

vol-resize:这条命令能够以字节为单位更改指定存储卷的大小。管理员需要输入目标卷大小,或者使用——delta选项指定在现有基础上增加多少空间。需要注意的是在活动虚拟机上使用vol-size命令是非常不安全的,但是管理员可以使用blockresize命令实时更改存储空间。

vol-wipe:擦除存储卷中的数据,并且确保之前的所有数据都不能够再被访问。如果虚拟机中含有机密信息,那么这条命令非常有用。此外,管理员还可以使用其他数据擦除算法,默认方式是使用0覆盖整个存储卷。

快照相关命令

这个类别中的命令能够操作虚拟机快照。

snapshot-list:管理员可以使用这条命令获取指定虚拟机的所有可用快照列表。列表包括快照名称、创建时间以及虚拟机状态等。同样可以使用选项来对列表进行筛选,比如——form、——leave、——metadata、——inactive和—internal等。

snapshot-create:管理员需要首先输入快照名称、描述,并且在XML文件中指定磁盘,之后使用这条命令创建虚拟机快照。如果不想使用XML文件中的属性来创建创建快照,那么可以使用snapshot-create-as命令。如果使用—halt选项,那么虚拟机被创建之后将处于非活动状态。

snapshot-revert:这条命令允许管理员将虚拟机恢复到之前的某个快照状态。如果想要恢复到当前快照,可以使用—current选项。虚拟机状态将会保持和制作快照时相同,而之后所做的任何操作都将会被丢弃。

snapshot-delete:管理员可以使用这条命令来删除指定快照,或者使用——current选项来删除现有快照。如果想要删除快照以及子快照或时间点拷贝,则可以使用——children选项。如果使用——children-only选项,那么系统只会删除子快照,原有快照不会受到影响。

当然,上面的列表无法包含所有相关命令。除了上面列举的这些命令之外,在每个类别中管理员肯定都能够找到其他一些非常有帮助的命令。还有一些其他种类的命令,虽然这里没有列举,但是值得了解,比如设备相关命令、nodedev相关命令、虚拟网络相关命令、接口相关命令、加密相关命令、nwfilter相关命令以及qemu-specific相关命令。如果想要顺利管理hypervisor和虚拟机,管理员需要掌握所有选项的功能、限制以及可能产生的结果。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党