前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >rbd是否支持注入

rbd是否支持注入

作者头像
企鹅号小编
发布2018-01-10 14:39:08
1.4K0
发布2018-01-10 14:39:08
举报
文章被收录于专栏:编程编程编程

引子

很多 OpenStack 与 Ceph 部署集成的文档都会告诉你,libivrt 的文件和密码注入是在 Ceph 上面是不支持的。需要使用下面的配置文件关闭。

但是真的只是不支持这么简单么? 首先看 nova 的注入是如何工作的。

nova 是怎么注入的文件的

nova 使用 libguestfs 来文件密码的注入

libguestfs主要有三个大的部分:, ,。

guestfsd是一个daemon,但是它不是运行在 host 上的 daemon,它运行在 guest 上,libguestfs 首先用和两个工具将 host 中的 kernel,用得到的一些 modules,配置文件和一些工具重新组合到一起,接着在后台启动一个 qemu 进程启动这个由生成的 image。在用 qemu 启动的这个 guest 里运行。通过 socket 和 host 进行通信,之间建立了一个通信的协议,它可以通过 socket 接受来自host端写到 socket 的数据。guestfsd 通过分析接受到的数据,进而执行相应的操作。

guestfs-lib是一个库,它实现了一些 libguestfs 的库函数 。这些库函数向 socket 发送相应的数据,数据就会被 guest 端的 guestfsd 接收到,进而分析所要执行的操作。

guestfish是对 guestfs-lib 接口函数的一些应用,guestfish 的命令都是通过调用的库函数来实现的。

如果在 nova 中开启了 inject 功能,nova 会调用 libguestfs 的接口,把文件或密码注入到镜像中去,然后再去真正的启动用户的虚拟机。那支持 ceph 里面的镜像么?

libguestfs 对 rbd 的支持

libguestfs 对 rbd 的支持是从 1.21.21 这个版本开始的1,并且测试并不充分2, 这个版本也是13年5月份才发布的。到现在 CentOS6 上面的 libguestfs 版本还是 1.20.11。所以早期时候,文档中建议关掉 inject 功能,是确实 libguestfs 不支持RBD上面的镜像。

但是 CentOS7 上面,libguestfs 已经支持这个功能,所以是可以打开 nova 的注入功能的。那我们是不是就可以把这个功能打开了?

libvirt 注入的问题

不支持 Boot from volume3, 当从 Volume 启动的时候,并不支持文件注入。

社区也准备废弃这个功能,有几个原因。1是代码层面上,如果注入失败了,没有任何错误信息报出来。2是文件注入并不安全。3是这些注入的文件并没有持久化(存入数据库),在 或 的时候,这些文件会被丢掉。 4是可以通过 metadata-api 或 config-drive 更方便的实现文件注入功能。有兴趣可以读下相关信息4567

结论

通过 nova inject 注入的方式并不被社区推荐,应该采用 metadata-api 或 config drive 方式才是更加可取。

https://github.com/libguestfs/libguestfs/commit/694a091d3faac78acbd0b5a368856b569c7ba5e2

https://github.com/libguestfs/libguestfs/commit/186bb67c6e8496d04a6f5646df9b2fb483cdc189

https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3269

http://lists.openstack.org/pipermail/openstack-dev/2016-November/107195.html

http://lists.openstack.org/pipermail/openstack-dev/2016-July/098703.html

http://lists.openstack.org/pipermail/openstack-dev/2017-March/113171.html

https://review.openstack.org/509013

https://blueprints.launchpad.net/nova/+spec/disable-file-injection-by-default

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档