插件窝 干货文章 KVM常用虚拟机操作virsh命令,virsh命令是什么

KVM常用虚拟机操作virsh命令,virsh命令是什么

Virsh 虚拟 domain 命令    来源:    2025-05-12

Virsh命令详解

virsh是KVM虚拟化平台的一个重要的命令行管理工具,用于管理虚拟机(VM)的生命周期和配置。它是libvirt项目的一部分,提供了一套丰富的命令来与虚拟化环境交互。

Virsh基本概念

  • 作用:virsh提供了对虚拟机的创建、启动、停止、暂停、恢复、迁移等管理功能
  • 连接方式:可以管理本地或远程的KVM主机
  • 两种模式:
    • 交互模式:直接输入virsh进入交互式命令行
    • 非交互模式:直接在shell中执行virsh <命令>

常用virsh命令分类

虚拟机生命周期管理

  • virsh start <domain> - 启动虚拟机
  • virsh shutdown <domain> - 优雅关闭虚拟机
  • virsh destroy <domain> - 强制关闭虚拟机(相当于断电)
  • virsh reboot <domain> - 重启虚拟机
  • virsh suspend <domain> - 暂停虚拟机
  • virsh resume <domain> - 恢复暂停的虚拟机
  • virsh save <domain> <file> - 保存虚拟机状态到文件
  • virsh restore <file> - 从文件恢复虚拟机状态

虚拟机信息查询

  • virsh list - 列出运行中的虚拟机
  • virsh list --all - 列出所有虚拟机(包括未运行的)
  • virsh dominfo <domain> - 显示虚拟机基本信息
  • virsh domstate <domain> - 显示虚拟机状态
  • virsh vcpuinfo <domain> - 显示虚拟CPU信息
  • virsh dommemstat <domain> - 显示内存使用情况
  • virsh domblklist <domain> - 列出虚拟机磁盘设备

虚拟机配置管理

  • virsh define <xmlfile> - 从XML文件定义(但不启动)虚拟机
  • virsh dumpxml <domain> - 导出虚拟机XML配置
  • virsh edit <domain> - 编辑虚拟机XML配置
  • virsh setmem <domain> <size> - 调整内存大小(单位KB)
  • virsh setvcpus <domain> <count> - 调整vCPU数量

网络管理

  • virsh net-list - 列出虚拟网络
  • virsh net-info <network> - 显示网络信息
  • virsh net-start <network> - 启动网络
  • virsh net-destroy <network> - 停止网络

存储池管理

  • virsh pool-list - 列出存储池
  • virsh pool-info <pool> - 显示存储池信息
  • virsh vol-list <pool> - 列出存储卷

其他实用命令

  • virsh console <domain> - 连接到虚拟机控制台
  • virsh attach-disk <domain> <source> <target> - 附加磁盘
  • virsh detach-disk <domain> <target> - 分离磁盘
  • virsh migrate <domain> <desturi> - 迁移虚拟机

使用示例

  1. 启动名为"centos7"的虚拟机:

    virsh start centos7
    
  2. 查看所有虚拟机状态:

    virsh list --all
    
  3. 导出虚拟机配置到文件:

    virsh dumpxml centos7 > centos7.xml
    
  4. 连接到虚拟机控制台:

    virsh console centos7
    

virsh命令功能强大,是KVM虚拟化环境管理的重要工具,熟练掌握这些命令可以高效地管理虚拟机环境。