glance镜像 同ID替换镜像文件,支持重建热迁移等功能
上传的镜像开出虚机,登录界面为Centos7.4
同样可以看到云硬盘中存储的镜像信息为centos7.4版本
为了保持原有的ID 防止已经开通好的虚机不影响热迁移,rebuild等功能,有了如下的解决方案;
1)删除原有的镜像记录id
# glance image-delete <image_id>
删除掉以后,修改数据库中有关此image_id的表格
mysql> select * from image_locations where image_id='<image_id>';
mysql> delete from image_locations where id='13'; (这里的id,为image_location中的id)
mysql> select * from image_properties where image_id='<image_id>';
mysql> delete from image_properties where image_id='<image_id>';
mysql> select * from images where id='dd6ade27-1c6e-462a-88c0-0d71d0782e2f';
mysql> delete from images where id='dd6ade27-1c6e-462a-88c0-0d71d0782e2f';
三张表全都清理完毕以后,重新上传一个镜像,,源文件可以和原始的不一样,以验证可行性
注意此处,要加--id的参数, 上传的id 要和刚才清理的保持一致。同时可以看到,file后的文件已经变成了redhat镜像,我们来验证下是否能成功。
初步看到,上传成功 image_id 和原来一致
重建机器进行验证
界面已经换成了redhat的 证明 此种方式可以原ID进行镜像替换,这种方案的好处是已经开通的虚机重建或者热迁移不会因为镜像不存在而失败,比较安全;