glance 上传镜像

  • 时间:
  • 浏览:2
  • 来源:UU快3—全天最准大发快三

于是大伙想到把镜像挂载到本地文件系统中,很多chroot到镜像文件系统环境中进行升级配置。可能glance镜像使用本地文件系统作为存储后端,镜像格式为raw,挂载镜像就非常简单了:

最后更新glance镜像元数据:

可能是qcow2格式,时要安装qemu-nbd工具包,很多加载nbd内核模块:

接下来就都还还可以执行命令对镜像进行更新了,比如更新cloud-init:

升级qemu-guest-agent:

输出:

chroot进行后执行相关操作后,卸载镜像文件系统:

执行完所有的更新操作后,完成以下清理工作:

最简单的妙招是通过创建三个白云主机,很多更新cloud-init后创建快照形成新的镜像(注意删除/var/lib/cloud下的文件,很多cloud-init下次启动时不要重新拉取metadata)。原本大伙遇到的大问题是,老版本的cloud-init在L版中注入密码和密钥都失败,很多安装的qemu-guest-agent不支持修改密码,很多全版这么妙招登录云主机。很多时要另辟蹊径。

3.基于Ceph存储后端的更新妙招

首先使用glance命令行工具获取时要更新的镜像的id:

本文重点不出于基于本地文件系统作为存储后端的清况 ,重点介绍基于Ceph存储后端的操作妙招,下文将全版介绍过程。

注意可能镜像是Linux文件系统,很多通常都还还可以三个白根分区,可能是windows镜像,第三个白分区通常是隐藏分区,C盘是第三个白分区,很多挂载时注意选者 rbd0p2,其中p表示partition。

0.背景

大伙知道使用ceph作为存储后端时,镜像首先会生成三个白以snap命名的快照,比如glance有三个白镜像id为35fcb79c-43a1-4b59-83d7-f4e46a524419,则在rbd所含对应的image,命名与glance镜像id一致,大伙查看其快照:

大伙突然时要更新glance镜像,比如上传的镜像可能有配置大问题,可能大伙时要对已有的镜像进行软件包升级可能预装一些新的软件包等。当时着手这件事是可能大伙对cloud-init进行了多量的patch,时要同步到glance镜像中,可能重新制作镜像很多传输到生产环境再上传,不仅工作非常繁琐,还非常消耗时间,大伙希望都还还可以在原本的镜像基础之上直接升级cloud-init。

以上妙招参考Mounting-raw-and-qcow2-vm-disk-images。

很多大伙的做法是先克隆qq三个白rbd image副本.

挂载到本地后,都还还可以拷贝软件包、配置模板等到镜像文件系统中,比如/mnt/root/,很多chroot到镜像文件系统中:

大伙都还还可以直接修改快照snap,可能它是protect的,都还还可以读都还还可以写。直接修改镜像得话都还还可以同步到快照中,很多出错很多好回滚。

最后对新镜像进行功能验证,可能这么大问题,就都还还可以安全的删除老的镜像了。

最后时要更新glance,大伙的妙招是先创建三个白glance空镜像实例,不时要指定镜像文件,很多占个坑,拿到新镜像id:

使用rbd命令拷贝一份镜像副本,假设POOL变量为glance使用的ceph池:

接下来更新大伙的rbd image,命名为新创建镜像实例id并设置快照:

1.通过快照妙招更新镜像

2.glance存储后端使用本地文件系统

可能镜像文件系统中使用LVM,都还还可以使用以下妙招初始化:

挂载镜像到本地文件系统中: