云计算百科
云计算领域专业知识百科平台

【无标题】

KVM 命令行虚拟机管理 核心总结

基于 libvirt 的 virsh 工具管理KVM虚拟机,包含虚拟机生命周期、配置、快照、磁盘、创建虚拟机、网络存储、删除、开机自启。

一、基础生命周期操作(virsh)

命令功能
virsh list 查看运行中虚拟机
virsh list –all 查看全部(含关机)虚拟机
virsh start 虚拟机名 启动虚拟机
virsh shutdown 虚拟机名 优雅关机(ACPI,优先使用)
virsh destroy 虚拟机名 强制断电,虚拟机卡死时使用,相当于拔电源
virsh reboot 虚拟机名 重启虚拟机
virsh suspend 挂起/暂停虚拟机,内存数据落磁盘
virsh resume 恢复挂起的虚拟机

命令详解:

  • virsh list:仅显示当前处于运行状态的虚拟机,适合快速确认哪些虚拟机在线。
  • virsh list –all:显示所有虚拟机,包括已关机(shut off)状态的,便于掌握整体资源分布。
  • virsh start 虚拟机名:启动一台已定义但处于关机状态的虚拟机,相当于给虚拟机通电开机。
  • virsh shutdown 虚拟机名:向虚拟机发送 ACPI 关机信号,让操作系统优雅退出,优先使用,避免数据损坏。
  • virsh destroy 虚拟机名:直接强制断电,相当于拔掉电源线。仅当虚拟机卡死、无法响应 shutdown 时使用,否则可能造成文件系统损坏。
  • virsh reboot 虚拟机名:重启虚拟机,相当于先关机再开机。
  • virsh suspend:挂起虚拟机,将内存状态保存到磁盘,暂停 CPU 运行,适合临时腾出宿主机资源。
  • virsh resume:恢复被挂起的虚拟机,从磁盘加载内存状态继续运行。

信息查询:

  • virsh dominfo 虚拟机名:查看虚拟机基本信息,包括内存、CPU、状态、自动启动配置等。
  • virsh domblklist 虚拟机名:列出虚拟机挂载的磁盘设备,确认磁盘路径与格式。
  • virsh domiflist 虚拟机名:查看虚拟机网卡信息,包括 MAC 地址、网络类型与桥接关系。
  • virsh vncdisplay 虚拟机名:查看虚拟机当前 VNC 端口号,用于远程图形界面连接。
    交互模式:在终端输入 virsh 即可进入交互式命令行,此时可直接输入上述命令而无需重复输入 virsh 前缀,输入 quit 退出交互模式;virt-manager 可调出图形化管理界面,适合不熟悉命令行的用户进行可视化操作。

二、虚拟机配置导入导出(备份配置重点)

  • virsh dumpxml 虚拟机名 > /root/xxx.xml:导出 xml 配置备份,将虚拟机的完整硬件配置(CPU、内存、磁盘、网卡等)保存为 xml 文件,是备份虚拟机配置的核心手段。
  • virsh undefine 虚拟机名:注销虚拟机,只删除 libvirt 的 xml 记录,不会删除 qcow2 磁盘镜像,虚拟机从 libvirt 管理列表中移除,但磁盘数据仍保留在磁盘上。
  • virsh define /root/xxx.xml:从备份的 xml 文件重新注册恢复虚拟机,相当于把之前注销的虚拟机重新纳入 libvirt 管理。
  • virsh edit 虚拟机名:直接编辑虚拟机 xml 配置文件,可修改内存、CPU、磁盘、网卡等参数,修改后需重启虚拟机生效。
  • ⚠️重点:undefine不会删磁盘,磁盘文件仍然保留。

    三、快照管理

    • virsh snapshot-create-as 虚拟机名 快照名 "描述":为虚拟机创建快照,记录当前磁盘与内存状态,可用于快速回滚。
    • virsh snapshot-list 虚拟机名:列出该虚拟机的所有快照,显示快照名称、创建时间与状态。
    • virsh snapshot-revert 虚拟机名 –snapshotname 快照名:将虚拟机恢复到指定快照时的状态,恢复前建议先关闭虚拟机,避免数据不一致。
    • virsh snapshot-delete 虚拟机名 –snapshotname 快照名:删除指定快照,释放磁盘空间,删除后无法再恢复到该快照点。

    四、qemu‑img磁盘镜像管理

    ⚠️磁盘操作建议虚拟机关闭,避免镜像损坏

  • qemu‑img create -f qcow2 路径/xxx.qcow2 20G 创建qcow2格式磁盘
  • qemu‑img info 镜像路径 查看磁盘镜像详细信息
  • 五、virt‑install 命令行新建虚拟机

    关键参数:

    • –name虚拟机名称;–memory内存MiB;–vcpusCPU核心数
    • –disk path=磁盘镜像路径
    • –locationISO安装镜像路径
    • –network network=default使用KVM默认NAT网络
    • –noautoconsole不自动弹出控制台
    • –vnc –vnclisten=0.0.0.0 –vncport=5903开启VNC远程访问

    示例:

    virt-install –name vm2 \\
    –memory 4096 –vcpus 2 \\
    –disk path=/disk/vm2.qcow2 \\
    –location /iso/CentOS‑7‑x86_64‑Minimal‑1810.iso \\
    –network network=default \\
    –noautoconsole

    VNC访问:宿主机IP:端口;监听0.0.0.0要放行防火墙,外部才能连接。

    六、虚拟网络、存储池

    虚拟网络

    • virsh net‑list –all查看全部虚拟网络
    • virsh net‑start default启动默认NAT网络
    • virsh net‑autostart default设置default网络开机自启
    • virsh net‑dumpxml default导出网络xml配置

    存储池

    • virsh pool‑list –all查看存储池
    • virsh vol‑list default查看存储池内部磁盘镜像

    KVM默认存储池路径:/var/lib/libvirt/images/

    七、删除虚拟机流程

  • 先关闭虚拟机(shutdown/destroy)
  • 可选:删除虚拟机快照
  • 两种删除方式
    • virsh undefine vm3:仅注销xml配置,磁盘镜像保留
    • virsh undefine vm3 –remove‑all‑storage:注销xml,同时自动删除关联磁盘
  • 手动删磁盘:rm -f /var/lib/libvirt/images/vm3.qcow2
  • 注意:运行状态虚拟机不能执行undefine。

    八、虚拟机开机自启

    • virsh autostart 虚拟机名:开启宿主机开机自启虚拟机
    • virsh autostart –disable 虚拟机名:关闭开机自启
    • virsh list –all –autostart:查看所有配置自启的虚拟机,必须带–all,关机虚拟机才会显示
    • virsh dominfo 虚拟机名:查看单台虚拟机自启状态

    九、重要易错点汇总

  • undefine只删xml配置,默认不会删除qcow2磁盘镜像。
  • qemu‑img操作磁盘镜像,务必关闭虚拟机,防止镜像损坏。
  • VNC监听0.0.0.0,防火墙需要放行对应端口,外部才能连接。
  • virsh list –autostart不加–all看不到关机但开启自启的虚拟机。
  • 虚拟机运行状态不能执行undefine注销。
  • 备份优先dumpxml导出xml配置,磁盘镜像单独备份。
  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【无标题】
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!