docker数据容器中挂载cephfs遇到问题

发布于 2021-11-25 08:55:26 字数 945 浏览 820 评论 3

@oscfox 你好,想跟你请教个问题:

我在docker数据容器(名称dbdata,共享目录/data/db)中使用ceph-fuse 挂载cephfs到/data/db下。

然后启动另一个mongodb容器,并且使用dbdata做数据容器,同时目录/data/db也是mongodb的数据库目录。

 

我想做的事情就是,使用cephfs作为mongodb的数据库目录,同时保证cephfs在容器中。以下是我执行的命令:

1.docker run  -it --privileged=true -d -v /data/db --name dbdata ubuntu:ceph /usr/bin/ceph-fuse -k /home/ceph/ceph.client.admin.keyring -m 10.32.170.104:6789 /data/db

2.docker run -d --volumes-from dbdata --name mongodb1 ubuntu:mongodb  --noprealloc --smallfiles

现在,我的问题是: 我的mongodb数据库数据无法写入到数据容器目录/data/db中。

我尝试过,如果不把数据容器dbdata中的目录/data/db作为cephfs挂载点的话,数据库数据可以写入进来,一旦把它作为cephfs挂载的话,数据无法写入进来。

还尝试过,如果将mongodb的目录/data/db映射到host机器上的cephfs挂载点,是可以写入数据的。

 

那如果我想实现使用cephfs作为mongodb的数据库目录,同时保证cephfs在容器中,应该怎么办?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

恋你朝朝暮暮 2021-11-28 20:37:26

ceph本来就是一个分布式的文件存储了,这样的需求我个人比较建议ceph RBD,给不同的mongodb节点不同到RBD设备,这样也是不依赖host的

梦里兽 2021-11-28 16:30:41

引用来自“oscfox”的评论

可以尝试一下将数据容器的目录挂载到host的目录,再mongodb映射到数据容器试试。这样可以知道是不是docker容器限制了外部容器对比容器挂载点的读写。不过我还是觉得这样的需求有点奇怪,docker容器一般用来跑应用或者服务,楼主用一个容器来作为磁盘挂载点是出于什么目的呢?为什么不直接host挂载cephfs,然后mogodb容器再映射到host相应的cephfs点?

哑剧 2021-11-26 15:55:01

可以尝试一下将数据容器的目录挂载到host的目录,再mongodb映射到数据容器试试。这样可以知道是不是docker容器限制了外部容器对比容器挂载点的读写。不过我还是觉得这样的需求有点奇怪,docker容器一般用来跑应用或者服务,楼主用一个容器来作为磁盘挂载点是出于什么目的呢?为什么不直接host挂载cephfs,然后mogodb容器再映射到host相应的cephfs点?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文