Ceph介绍
Ceph是一种热门的软件定义存储(SDS)技术,可以运行在几乎所有主流的 Linux 发行版(比如CentOS和Ubuntu)和其它类UNIX操作系统(典型如FreeBSD)。Ceph是一个开源项目,为块存储、文件存储和对象存储提供了统一的软件定义存储解决方案,既支持传统的块、文件存储协议,例如 SAN 和 NAS ;也支持对象存储协议,例如S3和Swift。Ceph具有如下特点:
- Ceph是一个真正的SDS解决方案,它可以从软件层面正确提供所有的企业级存储特性:低成本、可靠性、可扩展性是Ceph的主要特点。
- Ceph是一个真正的统一存储解决方案,它从单一统一软件层提供对象、块和文件存储。
- Ceph通过一个算法来动态计算存储和获取某个对象的位置,消除了中心节点(中心节点往往是性能的瓶颈)。
传统的存储系统并不具备更智能地管理元数据的方法。传统的存储系统通过维护一张集中的查找表来跟踪它们的元数据。客户端每次发出读写操作请求时,存储系统首先要查找这个巨大的元数据表,得到结果之后它才能执行客户端请求的操作。对于一个小的存储系统而言,也许不会感觉到性能问题,但对于一个大的存储集群来说,将会受制于这种方法的性能限制,进而限制系统的扩展性。
Ceph引入了一个叫CRUSH的新算法,而不是保存和操纵元数据
CRUSH 是 Controlled Replication Under Scalable Hashing 的缩写,即基于可扩展哈希的受控副本分布策略,CRUSH 算法在后台计算数据存储和读取的位置,而不是为每个客户端请求执行元数据表的查找。通过动态计算元数据,不需要管理一个集中式的元数据表。
此外,CRUSH 使得 Ceph 能够自我管理和自我治愈。当故障区域中的组件故障时,CRUSH 能够感知哪个组件故障了,并确定其对集群的影响。无须管理员的任何干预,CRUSH 就会进行自我管理和自我疗愈,为因故障而丢失的数据执行恢复操作。
Ceph架构
Ceph 的架构如下图所示: