vmware kvm,kvm查看虚拟机命令
- 综合资讯
- 2024-10-01 21:31:16
- 4

***:本内容聚焦于vmware kvm相关,重点提到了查看虚拟机的命令。vmware kvm在虚拟化领域有重要意义,而查看虚拟机命令是管理和监控虚拟机运行状态等操作的...
***:本文围绕vmware和kvm展开,重点提及kvm查看虚拟机命令。vmware是一种虚拟化技术,而KVM(基于内核的虚拟机)也是重要的虚拟化方案。对于KVM,了解查看虚拟机的命令非常关键,这些命令有助于管理员对虚拟机进行管理、监控等操作,如查看虚拟机状态、资源使用情况等,但文档未具体列出这些查看命令内容。
本文目录导读:
《VMware KVM中查看虚拟机的命令全解析》
在虚拟化技术日益发展的今天,KVM(Kernel - based Virtual Machine)作为一种开源的基于内核的虚拟机技术,在很多场景下得到了广泛的应用,尤其是在与VMware相关的环境或者技术对比研究中,掌握如何查看KVM中的虚拟机是非常重要的操作,这不仅有助于系统管理员对虚拟机资源进行有效的管理,也对故障排查、性能优化等工作有着关键的意义。
KVM基础概念回顾
KVM是一种内建于Linux内核中的虚拟化技术,它利用Linux内核的特性,将Linux内核转换为一个虚拟机监控器(Hypervisor),与传统的虚拟化技术相比,KVM具有高性能、安全性高、易于集成到现有Linux系统等优点,在KVM环境中,虚拟机(VM)是运行在宿主机之上的独立操作系统实例,它们共享宿主机的硬件资源,如CPU、内存、磁盘和网络等。
查看KVM虚拟机的基本命令
(一)virsh list命令
1、简单查询(默认选项)
virsh list
命令是查看正在运行的KVM虚拟机的最基本命令,当在终端输入这个命令时,它会列出当前正在运行的所有KVM虚拟机的名称、ID和状态等基本信息。
```
ID Name State
1 centos7 - vm running
2 ubuntu - vm running
```
- 这里的ID是虚拟机在KVM系统中的唯一标识符,Name是虚拟机的名称,State表示虚拟机当前的运行状态,如running(运行中)、paused(暂停)等。
2、查看所有虚拟机(包括未运行的)
- 使用virsh list --all
命令可以查看所有的KVM虚拟机,不管它们是否正在运行。
```
ID Name State
1 centos7 - vm running
2 ubuntu - vm running
3 test - vm shut off
```
- 在这个例子中,test - vm的状态是shut off,表示它当前没有运行。
(二)qemu - img info命令
1、查看虚拟机磁盘镜像信息
- KVM虚拟机的磁盘通常以镜像文件的形式存在。qemu - img info
命令可以用来查看虚拟机磁盘镜像的详细信息,如果有一个名为centos7 - vm.img的虚拟机磁盘镜像,可以使用以下命令查看:
```
qemu - img info centos7 - vm.img
```
- 输出可能包含以下信息:
```
image: centos7 - vm.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 3G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
```
- 这里可以看到磁盘镜像的格式(qcow2)、虚拟大小(10G)、实际占用磁盘大小(3G)等重要信息,这些信息对于了解虚拟机的磁盘使用情况、进行磁盘扩容或迁移等操作非常有用。
深入查看虚拟机配置信息
(一)virsh dumpxml命令
1、查看虚拟机的XML配置文件内容
- 在KVM中,每个虚拟机都有一个对应的XML配置文件,这个文件包含了虚拟机的各种配置信息,如CPU、内存、磁盘、网络等。virsh dumpxml
命令可以用来查看指定虚拟机的XML配置文件内容,要查看名为centos7 - vm的虚拟机的XML配置文件内容,可以使用以下命令:
```
virsh dumpxml centos7 - vm
```
- 输出的XML文件内容可能非常详细,以下是一个简化的示例:
```xml
<domain type='kvm'>
<name>centos7 - vm</name>
<uuid>12345678 - 1234 - 1234 - 1234 - 123456789012</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='pc - i440fx - rhel7.0.0'>hvm</type>
<boot dev='hd'/>
</os>
<devices>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/centos7 - vm.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='network'>
<mac address='00:11:22:33:44:55'/>
<source network='default'/>
<model type='virtio'/>
</interface>
</devices>
</domain>
```
- 从这个XML文件中,可以获取到虚拟机的内存大小(1048576KiB,即1GB)、CPU数量(1个)、磁盘镜像的路径(/var/lib/libvirt/images/centos7 - vm.img)、网络接口的MAC地址(00:11:22:33:44:55)等重要信息。
(二)查看虚拟机的网络配置
1、查看网络接口信息
- 在KVM虚拟机中,可以使用ip addr
命令查看虚拟机内部的网络接口信息,但是要先通过virsh console
命令进入到虚拟机的控制台(如果虚拟机支持),进入名为centos7 - vm的虚拟机控制台后,输入ip addr
命令:
```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft=forever valid_gtl=forever
inet6 ::1/128 scope host
valid_lft=forever valid_gtl=forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.100/24 scope global dynamic eth0
valid_lft=3599sec valid_gtl=3599sec
inet6 fec0::211:22ff:fe33:4455/64 scope link
valid_lft=forever valid_gtl=forever
```
- 这里可以看到虚拟机的回环接口(lo)和以太网接口(eth0)的信息,包括MAC地址、IP地址、子网掩码等。
2、查看网络连接状态
- 在宿主机上,可以使用brctl show
命令查看KVM虚拟机的网络桥接情况。
```
bridge name bridge id STP enabled interfaces
virbr0 8000.525400651010 yes vnet0
```
- 这里的virbr0是KVM默认的网络桥接设备,vnet0是与虚拟机网络接口相连的虚拟网络接口,通过查看这个信息,可以了解虚拟机的网络连接是如何在宿主机上进行桥接和转发的。
查看虚拟机性能相关信息
(一)查看CPU使用情况
1、在虚拟机内部查看
- 在虚拟机内部,可以使用top
命令查看CPU的使用情况,在一个运行着CentOS的KVM虚拟机中,输入top
命令后,会显示类似如下的信息:
```
top - 14:30:00 up 1:00, 1 user, load average: 0.01, 0.02, 0.05
Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.1 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1048576 total, 204800 used, 843776 free, 10240 buffers
KiB Swap: 1048576 total, 0 used, 1048576 free, 102400 cached
```
- 这里的%Cpu(s)部分显示了CPU在用户态(us)、系统态(sy)、空闲态(id)等状态下的百分比。
2、在宿主机上查看虚拟机的CPU使用情况
- 在宿主机上,可以使用virsh cpu - stats
命令查看特定虚拟机的CPU使用统计信息,查看名为centos7 - vm的虚拟机的CPU使用统计信息:
```
virsh cpu - stats centos7 - vm
```
- 输出可能包含以下信息:
```
CPU time:
user: 100000000
system: 50000000
idle: 9999999999
```
- 这里分别显示了虚拟机在用户态、系统态和空闲态下的CPU时间(单位可能因系统而异)。
(二)查看内存使用情况
1、在虚拟机内部查看
- 在虚拟机内部,可以使用free -m
命令查看内存的使用情况。
```
total used free shared buff/cache available
Mem: 1024 200 624 0 200 624
Swap: 1024 0 1024
```
- 这里显示了虚拟机的总内存、已使用内存、空闲内存、共享内存、缓冲/缓存内存和可用内存的大小(单位为MB)。
2、在宿主机上查看虚拟机的内存使用情况
- 在宿主机上,可以使用virsh dommemstat
命令查看指定虚拟机的内存使用统计信息,查看名为ubuntu - vm的虚拟机的内存使用统计信息:
```
virsh dommemstat ubuntu - vm
```
- 输出可能包含以下信息:
```
actual 1048576
swap_in 0
swap_out 0
major_fault 0
minor_fault 1000
unused 8388608
available 8388608
rss 2097152
```
- 这里的actual表示虚拟机分配的实际内存大小,rss表示虚拟机实际使用的物理内存大小(Resident Set Size)等重要信息。
查看虚拟机存储相关信息
(一)查看磁盘I/O情况
1、在虚拟机内部查看
- 在虚拟机内部,可以使用iostat
命令查看磁盘I/O情况,在一个CentOS虚拟机中,输入iostat -x 1
命令(每1秒输出一次磁盘I/O统计信息):
```
avg - cpu: %user %nice %system %iowait %steal %idle
0.10 0.00 0.01 0.00 0.00 99.89
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq - sz avgqu - sz await r_await w_await svctm %util
vda 0.00 0.00 0.01 0.00 0.04 0.00 8.00 0.00 0.00 0.00 0.00 0.00 0.00
```
- 这里可以看到磁盘设备(vda)的读请求合并数(rrqm/s)、写请求合并数(wrqm/s)、每秒读操作次数(r/s)、每秒写操作次数(w/s)等磁盘I/O相关信息。
2、在宿主机上查看虚拟机磁盘I/O情况
- 在宿主机上,可以使用virt - io - stats
命令查看虚拟机的磁盘I/O统计信息,查看名为test - vm的虚拟机的磁盘I/O统计信息:
```
virsh qemu - agent - command test - vm '{"execute":"guest - disk - io - stats"}'
```
- 输出可能是一个包含磁盘设备、读字节数、写字节数等磁盘I/O详细信息的JSON格式数据。
(二)查看存储容量和使用情况
1、在虚拟机内部查看
- 在虚拟机内部,可以使用df -h
命令查看文件系统的存储容量和使用情况。
```
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 1.5G 8.5G 15% /
```
- 这里显示了根文件系统(/dev/vda1)的总大小(10G)、已使用大小(1.5G)、可用大小(8.5G)和使用百分比(15%)等信息。
2、在宿主机上查看虚拟机存储情况
- 在宿主机上,可以结合virsh dumpxml
命令查看虚拟机磁盘镜像的大小和路径,再通过宿主机的文件系统命令(如ls -lh
)查看磁盘镜像文件在宿主机上的实际大小。
- 首先通过virsh dumpxml centos7 - vm
找到磁盘镜像路径为/var/lib/libvirt/images/centos7 - vm.img
。
- 然后在宿主机上输入ls -lh /var/lib/libvirt/images/centos7 - vm.img
:
```
-rw - r - - r - - 1 root root 3G Jul 10 10:00 /var/lib/libvirt/images/centos7 - vm.img
```
- 这里显示了磁盘镜像文件在宿主机上的实际大小为3G。
查看虚拟机日志信息
1、查看宿主机上的虚拟机日志
- 在宿主机上,KVM虚拟机的日志通常位于/var/log/libvirt/qemu/
目录下,要查看名为ubuntu - vm的虚拟机的日志,可以查看/var/log/libvirt/qemu/ubuntu - vm.log
文件,这个日志文件包含了虚拟机启动、运行过程中的各种信息,如设备初始化、内核启动消息等。
```
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.18.0 - 305.12.1.el8_4.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.5.0 20210514 (Red Hat 8.5.0 - 4) (GCC)) #1 SMP Wed Dec 15 12:10:00 UTC 2021
```
- 这些日志信息对于排查虚拟机启动失败、内核相关问题等非常有用。
2、查看虚拟机内部的日志(以Linux为例)
- 在虚拟机内部,可以查看系统日志(如/var/log/messages
、/var/log/syslog
等)和特定服务的日志(如/var/log/apache2/access.log
等),这取决于虚拟机内部运行的操作系统和服务,查看/var/log/messages
可能会显示虚拟机内部的内核消息、服务启动和停止信息等:
```
Jul 10 10:00:00 ubuntu - vm systemd[1]: Starting Network Manager...
Jul 10 10:00:01 ubuntu - vm NetworkManager[1234]: <info> Starting NetworkManager...
Jul 10 10:00:05 ubuntu - vm systemd[1]: Started Network Manager.
```
八
本文链接:https://www.zhitaoyun.cn/111620.html
发表评论