0x0034's Blog.

Virsh 存储池迁移

字数统计: 275阅读时长: 1 min
2022/03/31

新建存储池

  1. 创建存储池定义文件ssd500-pool
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<pool type='dir'>
<!-- 存储池名称 -->
<name>ssd500-pool</name>
<source>
</source>
<target>
<!--存储池实际存储目录-->
<path>/ssd500g/kvm/</path>
<permissions>
<mode>0755</mode>
<owner>0</owner>
<group>0</group>
</permissions>
</target>
</pool>
  1. 创建存储池
1
2
3
virsh pool-define --file ssd500-pool
virsh pool-start ssd500-pool
virsh pool-autostart ssd500-pool

迁移VM

  1. 查找对应VM的image文件路径
1
2
3
4
5
6
# 此处hadoop331_ka16 为我的vm名称 ,请按需替换

virsh shutdown hadoop331_ka16
export imageFile=$(virsh dumpxml hadoop331_ka16 |grep "source file" |awk -F\' '{print $2}')
# !!!!!!!一定要备份文件
mv $imageFile $(imageFile).bak
  1. 迁移image文件到指定目录
1
2
3
4
5
# /ssd500g/kvm/ 这个目录是新的存储池的目录,根据个人需求设定
cp $imageFile /ssd500g/kvm/

chown -R qemu:qemu /ssd500g/kvm/

  1. 修改vm的启动镜像
1
2
# 此处hadoop331_ka16 为我的vm名称 ,请按需替换
virsh edit hadoop331_ka16

修改<source file=''/> 字段为新的存储池的字段.

  1. 开机验证
1
virsh start hadoop331_ka16 
CATALOG
  1. 1. 新建存储池
  2. 2. 迁移VM