V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ray1888
V2EX  ›  程序员

分布式存储方案的选择

  •  1
     
  •   ray1888 ·
    ray1888 · 2018-05-11 09:28:00 +08:00 · 9367 次点击
    这是一个创建于 2370 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    glusterfs 架构比较简单,但是使用起来就不容易了
    catror
        9
    catror  
       2018-05-11 10:21:06 +08:00 via Android
    从代码设计上面,我支持 glusterfs,但是 ceph 用的人多,遇到问题更容易从网上搜索到解决办法。
    xencdn
        10
    xencdn  
       2018-05-11 10:25:53 +08:00   ❤️ 1
    最近也在折腾 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
        11
    grzhan  
       2018-05-11 11:03:02 +08:00   ❤️ 1
    如果是在 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
        12
    natforum  
       2018-05-11 11:11:41 +08:00
    tfs ?
    znood
        13
    znood  
       2018-05-11 12:57:04 +08:00 via iPhone
    ceph 是大规模 PB 级别的分布式存储方案,当然小规模集群也能用,坑比较多,运维麻烦,没有深入研究使用不建议
    f2f2f
        14
    f2f2f  
       2018-05-11 13:03:31 +08:00
    我选择付费的 Netapp
    WinMain
        15
    WinMain  
       2018-05-11 13:28:31 +08:00
    实习的时候,旁边一个团队的是把 ceph 的代码都读了一遍才确定用 ceph 的。
    wanghanlin
        16
    wanghanlin  
       2018-05-11 14:23:44 +08:00
    可以试试 rook,rook 底层用的也是 ceph,但是配置部署和使用都方便很多. https://rook.io/
    ray1888
        17
    ray1888  
    OP
       2018-05-11 14:24:16 +08:00
    @grzhan 想请问一下,你们的环境(需求)大概是怎么样的呢?因为我这边其实数据的转移不是很多的,对性能要求一般,但是主要是可能单个文件的 size 可能几 G 到几十 G 不等,所以想参考一下你们那边的数据(我这边暂时没有机器,没办法自己测试,目前只是调研阶段)
    grzhan
        18
    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
        19
    ray1888  
    OP
       2018-05-11 15:12:43 +08:00
    @grzhan 感谢,我的邮箱 YWxhbDE5OTVAaG90bWFpbC5jb20=
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5634 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:00 · PVG 16:00 · LAX 00:00 · JFK 03:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.