对象存储是采用扁平数据组织形式并通过基于http协议的RESTful接口访问的分布式存储系统。
对象存储不支持随机读写操作,只能全读全写,其面向的是一次写入,多次读取的非结构化数据存储的需求场景。
对象存储支持海量用户并发访问,并对外提供高扩展(Scalability)、高持久(Durability)和高可用(Availability)的分布式海量数据存储服务。
主流开源对象存储对比
Ceph | GlusterFS | |
Metadata server | 单个MDS。存在单点故障和瓶颈。 | 无,不存在单点故障。靠运行在各个节点上的动态算法来代替MDS,不需同步元数据,无硬盘I/O瓶颈。 |
FUSE | 支持 | 支持 |
访问接口 | POSIX | POSIX |
文件分布/数据分布 | 文件被分片,数据块保存在不同的存储服务器上。 | Cluster Translators(GlusterFS集群存储的核心)包括AFR、DHT、和Stripe三种类型。AFR相当于RAID1,每个文件都被复制到多个存储节点上。Stripe相当于RAID0,文件被分片,数据被条带化到各个存储节点上。Translators可以组合,即AFR和stripe可以组成RAID10,实现高性能和高可用。 |
冗余保护/副本 | 多副本 | 镜像 |
数据可靠性 | 由数据的多副本提供可靠性。 | 由镜像提供可靠性。 |
故障恢复 | 手动恢复 | 当节点、硬件、磁盘、网络发生故障时,系统会自动处理这些故障,管理员不需介入。 |
扩展性 | 增加存储服务器,可以提高容量和文件操作性能。但是由于不能增加MDS,因此元数据操作性能不能提高,是整个系统的瓶颈。 | 容量可扩展。 |
安装/部署 | 简单 | 简单 |
开发语言 | C | C |
适合场景 | 大量小文件读写 | 适合大文件。对于小文件,无元数据服务设计解决了元数据的问题。但GlusterFS并没有在I/O方面作优化,在存储服务器底层文件系统上仍然是大量小文件,本地文件系统元数据访问是瓶颈,数据分布和并行性也无法充分发挥作用。因此,GlusterFS的小文件性能还存在很大优化空间。 |
产品级别 | 小型 | 中型 |
应用 | 国内较多 | 较多用户使用 |
优缺点 | 实施简单,但是存在单点故障。 | 无元数据服务器,堆栈式架构(基本功能模块可以进行堆栈式组合,实现强大功能)。具有线性横向扩展能力。由于没有元数据服务器,因此增加了客户端的负载,占用相当的CPU和内存。但遍历文件目录时,则实现较为复杂和低效,需要搜索所有的存储节点。因此不建议使用较深的路径。 |
文章转载自云存储技术交流,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。