如果我的虚拟机不是使用 virt-manager 创建的,或者使用任何其他工具创建的,那么 virsh system list 命令不会将它们列在正在运行的虚拟机列表中,但它们在我的 KVM 服务器上运行正常。有没有办法在我的系统列表中列出这些虚拟机?
我有由 GKVM、AQEMU、libvirt 等管理的 VM,并且一些用户使用 qemu 命令启动他们的 VM,如下所示:
kvm“映像名称”-m“内存”。这将启动虚拟机并使其正常工作。但我无法使用 virsh 系统列表命令列出所有这些虚拟机。
添加 ps 命令的输出:
# ps -ef |grep kvm
avahi 980 1 0 Nov02 ? 00:00:00 avahi-daemon: running [ubuntukvm.local]
root 1117 2 0 Nov02 ? 00:00:00 [kvm-irqfd-clean]
1000 1849 1 0 Nov02 ? 00:00:00 /usr/lib/gvfs//gvfs-fuse-daemon -f /home/ubuntu-kvm/.gvfs
1000 14364 1 0 Nov05 ? 00:00:42 gnome-terminal --login --geometry=80x24+10+10 -t ubuntukvm:4 (ubuntu-kvm) Desktop
115 23786 1 0 15:14 ? 00:00:08 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name **Ubuntu-guest-vm01** -uuid ed5a33c1-76fd-b67e-ff1b-f53a60681ec7 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Ubuntu-guest-vm01.monitor,server,nowait -monchardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -drive file=/dev/lvm_disk/Ubuntu-guest-vm01,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=18,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:fa:4a:bd,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -vnc 127.0.0.1:2 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
root 23787 2 0 15:14 ? 00:00:00 [kvm-pit-wq]
root 31140 29549 0 17:05 pts/0 00:00:00 sudo kvm winxp-guest-vm00.qcow2 -m 1024
root 31141 31140 54 17:05 pts/0 00:00:05 **kvm winxp-guest-vm00.qcow2 -m 1024**
root 31142 2 0 17:05 ? 00:00:00 [kvm-pit-wq]
1000 31157 23873 0 17:05 pts/9 00:00:00 grep --color=auto kvm
这里我的虚拟机名称 ubuntu-guest-vm01 由 virtmanager 启动,而名为 winxp-guest-vm00 的虚拟机由 kvm 命令启动,但两者都是使用 virtmanager 创建的。所以我的问题是,如果我的用户使用 kvm 或 qemu 命令启动此虚拟机,我也无法在 ps 中获得参数列表,因此无法收集所有必需的详细信息
答案1
只需列出进程,这就是 KVM 的全部功能ps -ef |grep kvm
,如果需要,你可以解析命令行以获取详细信息