控制libvirt实例的最直接方法是通过virsh连接其控制台,通过它提供的交互式终端我们可以调用libvirt的绝大部分API,从而直观地控制域、节点等对象,缩短了学习libvirt的周期。
Virsh的命令分为12组,对象涵盖域、虚拟网络、存储、节点等,可以在控制台中输入
“help”查询具体命令的用法,如下所示。
其命令繁多,由于篇幅原因笔者不能一一列举,仅就几个常用命令为例加以介绍。
□对象XML控制
使用virsh控制台的好处之一就是可以随时查看、修改对象的XML描述,这些对象包括域、域保存状态(save-image)、节点网络接口(iface)、网络过滤器(nwfilter)、虚拟网络(net)、节点设备(nodedev)、加密方式(secret)、快照(snapshot)、存储池(pool)、存储卷(vol),可进行的操作主要有定义(define)、删除(destroy)、修改(edit)、查看XML(dumpxml)、列举(list)、概况(info)等。除域外,其他对象的命令形式统一为“对象名-define/edit/dumpxml/...”。
□域生命周期控制
域生命周期控制命令包括start、shutdown、reset、reboot、suspend、resume、create、destroy。其中与高级电源管理有关的命令(shutdown、reboot)可以选择通过QEMU Guest Agent等方式进行控制。(www.xing528.com)
□attach-device/detach-device
根据XML描述文件添加设备到域中,设备可以是模拟设备或者是透传设备,以添加主机U盘为例。
使用设备透传时需要注意一点,通过attach-device透传的设备在进行detach-device之前,它都属于这个域。这点差别有时会在使用主机USB设备时造成一些事故,比如已经attach到域的USB设备不能再通过spice的USB通道重定向到域中,反之亦然,笔者在实践部分会就USB重定向的分类与原理进行详细说明。
□qemu-monitor-command/qemu-agent-command
对于添加了QEMU控制台、QEMU Guest Agent以及对应代理设备的域,我们可直接在libvirt控制台中使用这两条命令与其进行交互,如下所示。
□事件监视
通过预定义的事件标识(EVENT)我们可以随时得知域的最新状态,监视命令有event、qemu-monitor-event、net-event。以域事件监视命令event为例,进行域重启操作时查看通知事件(可通过“event-list”命令查看全部可通知事件)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。