QEMU Monitor管理虚拟机¶
当QEMU运行时,提供了一个监控控制台可以和虚拟机进行交互。在这个监控控制台,使用其提供的命令,就可以和运行操作系统进行检测(inspect),修改可移除介质,截取屏幕或者捕获音频并且控制虚拟机的其他部分。
可以通过 qemu-system-ARCH
命令来直接启动虚拟机,此时就可以访问监控控制台,并且可以从一个原生QEMU窗口看到图形输出。
如果使用 Libvirt虚拟机管理器 来启动虚拟机(例如使用 virt-manager
)并通过VNC或Spice会话来观察输出,就不能直接访问监控控制台。此时需要通过 virsh
来发送 monitor 命令:
virsh qemu-monitor-command COMMAND
备注
QEMU monitor console支持很多控制台系统底层命令,有些命令在实践中非常有用。
QEMU Monitor Command功能列表¶
获取Guest系统信息
修改VNC密码
管理设备
控制键盘和鼠标
修改可用内存
dump虚拟机内存
管理虚拟机快照
暂停和恢复虚拟机执行
热迁移
获取Guest系统信息¶
备注
以下案例虚拟机名字是 sles12-sp3
,你在使用时需要替换成对应的实际虚拟机名字
检查QEMU版本:
virsh qemu-monitor-command sles12-sp3 --hmp "info version"
输出案例:
5.2.0
检查网络状态:
virsh qemu-monitor-command sles12-sp3 --hmp "info network"
输出案例:
net0: index=0,type=nic,model=virtio-net-pci,macaddr=52:54:00:00:91:62
\ hostnet0: index=0,type=tap,fd=32
检查字符设备:
virsh qemu-monitor-command sles12-sp3 --hmp "info chardev"
输出案例:
charchannel0: filename=disconnected:unix:/var/lib/libvirt/qemu/channel/target/domain-1-sles12-sp3/org.qemu.guest_agent.0,server
charserial0: filename=pty:/dev/pts/1
charmonitor: filename=unix:/var/lib/libvirt/qemu/domain-1-sles12-sp3/monitor.sock,server
检查块设备,例如硬盘,软盘或者CD-ROMs:
virsh qemu-monitor-command sles12-sp3 --hmp "info block"
输出案例:
libvirt-2-format: /var/lib/libvirt/images/sles12-sp3.qcow2 (qcow2)
Attached to: /machine/peripheral/virtio-disk0/virtio-backend
Cache mode: writeback, direct
sata0-0-0: [not inserted]
Attached to: sata0-0-0
Removable device: not locked, tray closed
libvirt-3-format: /var/lib/libvirt/images/sles12_data.qcow2 (qcow2)
Attached to: /machine/peripheral/virtio-disk1/virtio-backend
Cache mode: writeback
显示CPU寄存器:
virsh qemu-monitor-command sles12-sp3 --hmp "info registers"
显示可用的CPU信息:
virsh qemu-monitor-command sles12-sp3 --hmp "info cpus"
输出案例:
* CPU #0: thread_id=1220
显示中断状态:
virsh qemu-monitor-command sles12-sp3 --hmp "info irq"
输出案例:
IRQ statistics for kvm-i8259:
1: 11
4: 2
12: 15
IRQ statistics for kvm-ioapic:
1: 11
4: 2
12: 15
22: 177119
显示虚拟到物理内存映射:
virsh qemu-monitor-command sles12-sp3 --hmp "info tlb"
显示numa:
virsh qemu-monitor-command sles12-sp3 --hmp "info numa"
输出案例:
0 nodes
获取Guest信息案例¶
在 KVM虚拟机动态添加、调整磁盘 我们需要向虚拟机插入磁盘。动态向虚拟机插入磁盘需要首先获知虚拟机当前存储设备情况,以便确定插入虚拟磁盘映射成哪个空闲的磁盘符号,例如 /dev/vdb
。