分布式存储方案的选择

2018-05-11 09:28:00 +08:00
 ray1888

有大佬们试过在用 Kubernetes 上面直接对接上分布式的存储方案进行容器数据的存储吗?在开源方案上面个人知道 CephFs 和 GlusterFs,想请问一下,哪个分布式的存储系统可以直接部署起来使用(坑比较少的),求踩过坑的大佬们推荐一下

9164 次点击
所在节点    程序员
19 条回复
defunct9
2018-05-11 09:32:41 +08:00
ceph
defunct9
2018-05-11 09:33:16 +08:00
忘记说了,gfs 是文件系统,ceph 是块设备
ray1888
2018-05-11 09:37:24 +08:00
@defunct9 Ceph 不是支持三种(块存储、对象存储、文件存储)都支持么?其实我的场景是这样的,本质上是把容器运行完之后的一些数据(主要是文件)进行统一集中的存储管理,以便给其他新的容器来使用,这样的场景 Ceph 是比较好吗?
aijam
2018-05-11 09:48:27 +08:00
S3 比较好
defunct9
2018-05-11 09:48:32 +08:00
块设备池比文件系统效率高些,尤其涉及到 kvm 或者 docker 的容器转移的时候。GFS 和 Ceph 都用过,更喜欢块设备一些吧。
ray1888
2018-05-11 09:55:35 +08:00
@aijam 因为是内网的集群,不考虑这种外部的系统
swulling
2018-05-11 10:00:41 +08:00
ceph 架构比较复杂,毕竟同时支持对象 块 文件,但是使用和运维不难

glusterfs 架构比较简单,但是使用起来就不容易了
lfzyx
2018-05-11 10:03:25 +08:00
catror
2018-05-11 10:21:06 +08:00
从代码设计上面,我支持 glusterfs,但是 ceph 用的人多,遇到问题更容易从网上搜索到解决办法。
xencdn
2018-05-11 10:25:53 +08:00
最近也在折腾 kubernetes
给你一个分享
http://www.yangguanjun.com/2017/09/04/kubernetes-storage-confuse/

Ceph 分为
ceph rdb(块存储)
cephFS (文件存储)

ceph 块存储 很消耗网络带宽 块一般都几 G 或几十 G ceph 是最少存三份 强一至性 存储网络一般都 10GE 的网卡
成熟的开源分布式块存储 选择性不多 社区活跃 稳定 成熟度相对较高 还有给力的 Redhat 驱动
但是 ceph 维护复杂 考验团队技术驾驭能力

kubernetes 的应用场景
容器存储 大部份是文件存储
块存储 这个需求应是不明显
上手比较快的应是:
1.NFS
2.GlusterFS


NFS 方便灵活 只是性能太差

如果对性能没有太多的需求 先上 NFS 吧

个人理解有限 轻拍
grzhan
2018-05-11 11:03:02 +08:00
如果是在 K8S 里使用 Ceph RBD 来进行持久化存储的话,可能需要注意下这个 issue:

https://github.com/kubernetes/kubernetes/issues/38923

`kube-controller-manager` 中没有 RBD Client 导致无法正常创建 PV,issue 回复提到的解决方案是使用这个第三方的 provisioner: https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/rbd/examples

以及在我们的环境中,CephFS 的性能并不理想,推荐使用 RBD

感觉 Ceph 和 K8S 集成的坑大致上是这样,Ceph 本身用起来倒是挺方便的。
natforum
2018-05-11 11:11:41 +08:00
tfs ?
znood
2018-05-11 12:57:04 +08:00
ceph 是大规模 PB 级别的分布式存储方案,当然小规模集群也能用,坑比较多,运维麻烦,没有深入研究使用不建议
f2f2f
2018-05-11 13:03:31 +08:00
我选择付费的 Netapp
WinMain
2018-05-11 13:28:31 +08:00
实习的时候,旁边一个团队的是把 ceph 的代码都读了一遍才确定用 ceph 的。
wanghanlin
2018-05-11 14:23:44 +08:00
可以试试 rook,rook 底层用的也是 ceph,但是配置部署和使用都方便很多. https://rook.io/
ray1888
2018-05-11 14:24:16 +08:00
@grzhan 想请问一下,你们的环境(需求)大概是怎么样的呢?因为我这边其实数据的转移不是很多的,对性能要求一般,但是主要是可能单个文件的 size 可能几 G 到几十 G 不等,所以想参考一下你们那边的数据(我这边暂时没有机器,没办法自己测试,目前只是调研阶段)
grzhan
2018-05-11 15:02:11 +08:00
@ray1888

集群只是一个 18T HDD 10 OSD + 万兆网络的小集群

之前我们有把 300G 的数据库放在 CephFS ( FUSE Client )上,因为需求关系还把一个 Windows 虚拟机丢在上面。

CephFS 使用下来感觉是 IO 的延迟严重(同事在上面跑虚拟机体验下来很卡),前两天换成 RBD 挂载( http://docs.ceph.com/docs/giant/rbd/libvirt/ )以及折腾了下 KVM 的驱动之后速度就有明显的改善,SQL 查询的效率也在可以接受的范围。

按理说 CephFS 的 Client 换成 Kernel Client 可能性能也会好一些,不过跑过 Benchmark 感觉改善不多。

把 Ceph Journal 挂到 SSD 上可以明显改善性能( http://docs.ceph.com/docs/jewel/start/hardware-recommendations/),还有就是增加 OSD 的数量,不过我们这边就是够用就成了。

所以 CephFS 的话一般放放文件没有频繁的读写需求还是可以用的,也挺方便,如果还是有些性能要求的话还是用 RBD。如果想看 fio 的 benchmark 结果的话可以回我个邮箱,有空我可以发给你
ray1888
2018-05-11 15:12:43 +08:00
@grzhan 感谢,我的邮箱 YWxhbDE5OTVAaG90bWFpbC5jb20=

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453961

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX