KVM虚拟磁盘迁移两种常用方法

方式一:在线迁移(虚拟机不用关机,推荐)

  1. 命令格式

bash

virsh blockcopy 虚拟机名 vda /新路径/磁盘.qcow2 --wait --verbose
 

  • vda:虚拟机第一块磁盘设备名,多块盘依次vdb/vdc
  •  --wait  等待复制完成, --verbose  显示进度
  1. 复制完成切换磁盘

1. 复制结束后执行切换

bash

virsh blockjob 虚拟机名 vda --finish
 

2. 编辑虚拟机配置,把磁盘路径改成新路径

bash

virsh edit 虚拟机名
 

找到    修改为新路径,保存退出。

  1. 确认正常运行后,删除旧磁盘文件。

方式二:离线迁移(虚拟机关机,简单稳定)

  1. 先关闭虚拟机

bash

virsh shutdown 虚拟机名

确认关机

virsh domstate 虚拟机名
 

  1. 复制磁盘镜像(二选一)

① cp 普通复制

bash

cp /旧目录/xxx.qcow2 /新目录/xxx.qcow2
 

② qemu-img convert(可同时转换格式/压缩)

bash

qemu-img convert -O qcow2 /旧路径/源盘.qcow2 /新路径/目标盘.qcow2
 

  1. 修改虚拟机XML配置

bash

virsh edit 虚拟机名
 

修改磁盘source file路径到新位置,保存。

  1. 启动虚拟机验证

bash

virsh start 虚拟机名
 

运行正常后删除旧磁盘文件。

方式三:存储池迁移(用libvirt存储池管理)

1. 定义新存储池,启动池
2. 移动镜像到存储池目录
3. edit虚拟机修改磁盘路径

补充要点

1. 迁移快照盘:有快照链不要直接cp,优先用 blockcopy 或 qemu-img convert 合并快照;
2. NFS共享存储迁移:直接复制,注意权限;
3. 迁移后报错:检查文件读写权限、SELinux上下文。

标签: none

添加新评论