菜鸟科技网

KVM常用命令有哪些?快速掌握必备操作?

KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它将Linux内核转化为一个Type-1(裸金属) hypervisor,允许用户在单个物理服务器上运行多个虚拟机(VM),KVM的优势在于其高性能、与Linux内核的深度集成以及丰富的管理工具,以下是KVM常用命令的详细说明,涵盖虚拟机管理、网络配置、存储管理及性能监控等场景,并结合表格形式清晰展示命令格式与功能。

KVM常用命令有哪些?快速掌握必备操作?-图1
(图片来源网络,侵删)

虚拟机管理命令

虚拟机的生命周期管理是KVM操作的核心,包括创建、启动、停止、删除及状态查询等。

  1. 虚拟机创建
    使用virt-install命令可快速创建虚拟机,需指定镜像文件、内存大小、CPU核心数及磁盘路径等参数。

    virt-install --name vm1 --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/vm1.qcow2,size=20 --cdrom /path/to.iso --network network=default

    该命令创建一个名为vm1的虚拟机,分配2GB内存、2个vCPU、20GB磁盘,并从指定ISO文件启动,网络使用默认NAT模式。

  2. 虚拟机启动与关闭

    KVM常用命令有哪些?快速掌握必备操作?-图2
    (图片来源网络,侵删)
    • 启动虚拟机:virsh start vm1
    • 正常关闭虚拟机:virsh shutdown vm1
    • 强制关闭(模拟电源键):virsh destroy vm1
  3. 虚拟机状态管理

    • 查看所有虚拟机状态(运行/关闭):virsh list --all
    • 查看特定虚拟机详细信息:virsh dominfo vm1
    • 暂停虚拟机:virsh suspend vm1
    • 恢复暂停的虚拟机:virsh resume vm1
  4. 虚拟机删除
    删除虚拟机前需确保已关闭,使用virsh undefine命令会删除虚拟机配置但保留磁盘文件;若需同时删除磁盘,需手动执行rm命令。

    virsh shutdown vm1
    virsh undefine vm1
    rm /var/lib/libvirt/images/vm1.qcow2

虚拟机磁盘管理

磁盘文件是虚拟机的核心组件,KVM支持多种磁盘格式(如qcow2、raw),常用命令如下:

  1. 磁盘格式转换
    使用qemu-img工具可转换磁盘格式,例如将raw格式转换为qcow2(支持快照、压缩等特性):

    KVM常用命令有哪些?快速掌握必备操作?-图3
    (图片来源网络,侵删)
    qemu-img convert -f raw -O qcow2 disk.raw disk.qcow2
  2. 磁盘扩容
    扩容前需确保虚拟机内部文件系统支持在线扩容(如LVM或XFS),以下命令将磁盘扩容至30GB:

    qemu-img resize disk.qcow2 +10G  # 在原有大小上增加10GB
    qemu-img resize disk.qcow2 30G   # 直接设置为30GB
  3. 磁盘快照管理
    快照可保存虚拟机某个时间点的状态,支持创建、列表、删除及恢复操作:

    virsh snapshot-create vm1          # 创建快照
    virsh snapshot-list --domain vm1   # 列出快照
    virsh snapshot-revert vm1 snap0    # 恢复至快照snap0
    virsh snapshot-delete vm1 snap0    # 删除快照snap0

网络配置命令

KVM虚拟机网络通过libvirt的虚拟网络(如default NAT网络)或桥接模式实现。

  1. 查看虚拟网络

    virsh net-list --all
  2. 启动/停止虚拟网络

    virsh net-start default
    virsh net-destroy default
  3. 配置桥接网络
    若需虚拟机直接与物理网络通信,需创建桥接接口(如br0),并修改虚拟机XML配置文件:

    virsh edit vm1  # 在<interface>标签中将type="network"改为type="bridge",source bridge="br0"

性能监控命令

监控虚拟机性能是确保稳定运行的关键,常用工具包括virt-topvirshqemu-img

  1. 实时监控虚拟机资源
    virt-top类似于top命令,可实时显示CPU、内存、I/O等使用情况:

    virt-top
  2. 查看虚拟机CPU/内存使用率
    通过virsh命令可获取详细性能指标:

    virsh cpu-stats vm1
    virsh memstats vm1
  3. 磁盘I/O监控
    使用qemu-io测试磁盘读写性能:

    qemu-io -f qcow2 -c "read -v 1M 1G" disk.qcow2

常用命令速查表

功能分类 命令 说明
虚拟机创建 virt-install 创建并启动虚拟机
启动虚拟机 virsh start vm1 启动指定虚拟机
关闭虚拟机 virsh shutdown vm1 正常关闭虚拟机
强制关闭 virsh destroy vm1 模拟电源键强制关闭
查看虚拟机列表 virsh list --all 列出所有虚拟机及其状态
删除虚拟机 virsh undefine vm1 删除虚拟机配置(保留磁盘)
磁盘格式转换 qemu-img convert 转换磁盘文件格式
磁盘扩容 qemu-img resize 调整磁盘大小
创建快照 virsh snapshot-create vm1 为虚拟机创建快照
查看虚拟网络 virsh net-list --all 列出所有虚拟网络
启动虚拟网络 virsh net-start default 启动指定虚拟网络
实时性能监控 virt-top 监控虚拟机资源使用情况

相关问答FAQs

Q1: 如何解决虚拟机启动失败提示“domain vm1 failed to allocate memory”的问题?
A: 该错误通常是由于物理机内存不足或虚拟机内存配置过大导致,可通过以下步骤解决:

  1. 检查物理机内存使用情况:free -h
  2. 减少虚拟机内存分配:修改虚拟机XML文件(virsh edit vm1),调整<memory><currentMemory>值,或使用virsh setmem vm1 --size 1024动态调整内存(需虚拟机运行中支持)。
  3. 若为KVM进程内存限制,可调整/etc/libvirt/qemu.conf中的memory参数并重启libvirtd服务。

Q2: 虚拟机磁盘空间不足时,如何在线扩容并扩展文件系统?
A: 在线扩容需分两步完成:磁盘扩容和文件系统扩展,以Linux虚拟机为例:

  1. 磁盘扩容:在宿主机中使用qemu-img resize命令扩容磁盘文件(如扩容至40GB):
    qemu-img resize /var/lib/libvirt/images/vm1.qcow2 40G
  2. 扩展文件系统:登录虚拟机内部,根据文件系统类型执行命令:
    • ext4文件系统
      lsblk  # 查看磁盘分区(如/dev/vda1)
      resize2fs /dev/vda1
    • LVM逻辑卷
      lvextend -l +100%FREE /dev/vg_root/lv_root
      resize2fs /dev/vg_root/lv_root
    • XFS文件系统
      xfs_growfs /

      完成后执行df -h验证文件系统是否扩容成功。

分享:
扫描分享到社交APP
上一篇
下一篇