块存储Ceph,对象存储Swift,存大文件的HDFS的技术比较

匆匆过客 提交于 2020-01-13 01:51:24

1.存储文件的大小

  • HDFS、HBase、Hive不太适合存文档、图片大小的文件,HDFS适用于存大文件。
  • SWIFT:处理几个G的大文件性能上可能会比HDFS差,因为没有条带化。
    但遇到很多几兆、几十兆的,这些文件的存储,HDFS就不如SWIFT。
    所以对于日常文件的单独处理用SWIFT,集中处理如果达到G级用HDFS。

2.存储类型:块存储和对象存储

  • 如果只要用对象存储,就选择SWIFT;如果只要用块存储,那就Ceph;
  • 既要用对象存储又要用块存储的场合,是用SWIFT还是Ceph呢?
1)如果节点数量很大,推荐用Ceph单独做块,用SWIFT做对象存储,因为在节点数量较大时,Ceph的维护成本比SWIFT要高得多,
大多数场景实际应用的时候会发现,大部分数据都可以放到对象存储上;

2)如果节点数量少,那就用Ceph统一搞定,因为一般认为生产环境中最小的分布式存储应当有五个节点,所以,如果节点数量
少于十个或者刚到十来个,那构建两个分布式存储显然是不理想的(考虑到空间划分问题);

3)如果团队里有牛人能轻松解决Ceph大规模部署问题,那就果断用Ceph;

4)如果希望对象存储能够和OpenStack其他项目无缝结合,如果希望实现多租户,果断用SWIFT来实现对象存储。

3.对象存储的概念

  • RESTful接口和扁平的数据组织形式。

5.对象存储和文件系统存储区别

  • 所谓文件系统的本质是POSIX接口,“对象”这个名词是做对象存储的人为了把自己做的东西和文件系统区分开而用的术语,把存在对象存储里的文件叫做“对象”,所以选择文件系统还是对象存储,跟你把这堆数据称作对象还是文件并没有直接关系。
    而是要看你是需要POSIX还是RESTful HTTP接口,是需要目录结构还是适用扁平数据管理结构。

  • GlusterFS,它的优点在于如果你需要使用POSIX接口,那GlusterFS是一个很好的选择,
    但是Gluster在文件数量、目录数量太大的情况下会出现性能衰减,这是文件系统本身的特点决定的,不论是哪种POSIX兼容的文件系统,都存在类似的问题。

参考:

https://yq.aliyun.com/articles/194749?spm=5176.13394999.0.0.adc860f5a699Wk
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!