CEPH是近几年软件定义存储的新贵,以其面向海量存储、提供高可靠、易扩展、高性能的设计理念,在Openstack开源生态中逐渐绽放光彩。CEPH的原型设计及开发者Sage.A.Weil是一个充满传奇经历的电脑极客,CEPH首次出现在其博士论文中。与Linux一样,CEPH的开源给它点燃了强大的生命力,其开放、共享的自由精神,让它如熄火燎原,迅速发展状态。
任何事物的发展与其时代背景息息相关,没有时代大环境的支持,大多的事物及思想也如昙花一现,瞬间淹没在时代发展的浪潮中。在地球文明的这次迭代中,人类不断探索和演进,通过文字、图表和代码固化传递知识,一次又一次突破自然和自我的限制,创造了一个美好的时代。
如何让社会更加美好是当前人类发展的动力和进步的原因,发展中不断积累的信息及生产的数据在由量变得到质变的转换后,成为了新的苦恼。任何一个事物的出现,大部分的是为了解决遇到的问题,并且在解决问题过程当中不断的迭代。Crush就是Ceph为解决海量数据存储分布而优化适配的一种Hash算法。
Crush不是一种全新的算法而是基于存储及使用环境的一种设备方法。在正式分析crush前,介绍一下Ceph的架构。ceph的架构如图:
其底层是对象存储Rados,对外提供RADOSGW(对象网关),RBD(块存储),CEPH-FS(文件系统)及LIBRADOS(rados调用库)。RADOS是一个对象存储,其需要解决海量数据的分布和维护数据的增、删、改、查。CRUSH就是控制RADOS中数据分布的核心。
HASH是一种将数据管理的思想,主旨是将广域的信息通过一定方法映射到小的数据集中。对于简单的使用,需要解决HASH冲突,解决HASH冲突的方法不在此学习和介绍。CRUSH是将海量的数据通过特定化的控制分布到不同的服务器上。在Sage A weil的论文中对于Crush的描述如下。
CRUSH(controlled Replication Under Scalable Hashing), a pseudo-random data distribution algorithm that efficiently and robustly distributes object replicas across a heterogeneous, structured storage cluster. CRUSH is implemented as a pseudo-random, deterministic fucntion that maps an input value, typically an object or object group dentifier, to a list of devices on which to store object replicas.This differ form conventional approaches int that data placement does not rely on any sort of pre-file or pre-object directory-CRUSH needs only a compact, hierarchical description of the devices comprising the storage cluster and knowledge of the replica placement policy. This approach has two key advantages: first, it is completely distributed such that any party in a large system can independdenty ccalculate the location of any object; and second, what little metadat is required is mostly static., changing only when devices are added or removed.
表述的意思主要是:CRUSH是一种伪随机算法,根据输入值及已定义的对象或对象组,得到要存储到的存储设备集合,当它的依赖的对象或对象集合发生变化时,这个描述集合的元数据才发生变化。极其轻量的元数据和根据描述集合获得存储集合是CRUSH算法的关键优点。
因此与CRUSH算法相关的两个主题是:CRUSH算法和依赖的cluster Map。在论文中对于CRUSH算法及cluster Map的描述主要如下。
Cluster Map: The cluster map is composed of devices and buckets, both of which has numerical identifiers and weight values associated with them.Buckets can contain any number of devices or other buckets, allowing them to form interior nodes in a storage herarchy in which devices are always are the leaves.
CRUSH algorithm: Given a single integer input value x, CRUSH will output an orderd list R of n distinct storage targets. CRUSH utillizes a strong multi-input integer hash function whose inputs include x, making the mapping completly deterministic and independently calculable using only the cluster map, palcement rules, and x.
集群的Map表由设备和桶构成。设备和桶都根据他们关联的设备进行数字的量化,桶可以包括桶和设备,在他们构成的层次结构中,设备始终位于叶子节点。
CRUSH算法对于输入的一个整数x,会输出n个不同存储设备的排序的集合列表集R。CRUSH使用x,集群map和放置规则进行独立计算。
架构是解决问题的核心,在具体实现过程中,更需要解决诸多细节问题,比如怎么减少crush算法在集群变化后数据迁移,如何设计集群内核集群间的数据同步。通过十多年的迭代,CEPH的快速迭代和日渐广泛使用将这些问题一一解决,Ceph已经逐渐成为企业级存储的主流解决方案,深入的对ceph中的原理及代码进行学习对存储架构及实现学习具有重要的参考意义。
相关推荐
本书《Ceph分布式存储实战》是一本详细讲解Ceph分布式存储系统原理与应用的实战书籍,适合对云计算与虚拟化技术感兴趣的读者阅读。Ceph是一个开源的分布式存储系统,其设计目标是提供优秀的性能、可靠性和可扩展性。...
《Ceph分布式存储实战》是一本深入探讨Ceph技术的高清完整版图书,共计562页,旨在帮助读者全面理解和掌握Ceph分布式存储系统。Ceph作为一个开源的、高可扩展的统一存储解决方案,其核心特性包括数据的高可用性、...
与GlusterFS相比,Ceph提供了更高级别的数据冗余和故障恢复策略,例如CRUSH算法用于智能地分布数据以避免单点故障。 在部署Ceph时,首先需要安装和配置Ceph组件,创建存储池,然后根据需求创建不同类型的卷。比如,...
Ceph分布式存储系统是一个统一的分布式存储解决方案,其主要特性在于能够提供块存储、文件系统和对象存储三种接口服务,支持多样的数据访问方式。Ceph的设计哲学与传统分布式存储系统不同,它采用无中心节点的元数据...
总的来说,Ceph分布式存储实战涉及到分布式系统原理、存储技术、云计算架构等多个领域的知识,对于IT专业人士来说,深入理解和掌握Ceph不仅可以提升存储解决方案的设计能力,也有助于在云环境中构建高效、可靠的存储...
Ceph分布式存储系统是一种开源的、高性能的存储解决方案,它被设计用来提供对象存储、块存储和文件系统接口。在深入探讨Ceph之前,我们首先理解分布式存储的重要性:随着大数据和云计算的发展,传统集中式存储难以...
《Ceph分布式存储实战》是一本面向IT专业人士的实践指南,旨在帮助读者深入理解和掌握Ceph的原理、配置和管理,无论你是想在数据中心构建大规模的存储解决方案,还是希望提升现有的云存储性能,都能从这本书中获益良...
Ceph是一个高性能、高可靠性的分布式存储系统,适用于当今日益增长的数据存储需求。它具有良好的扩展性、高可用性,并且能够提供块存储、文件存储、对象存储三种接口,在同一个集群内支持多种存储形式,是当前主流的...
《Ceph分布式存储实战》高清版是一本深入探讨Ceph分布式存储系统的专业书籍,它以清晰的目录结构为读者提供了一条系统学习的路径。Ceph作为一种开源的、高可用的分布式存储解决方案,广泛应用于云计算、大数据处理...
压缩包中的《Ceph分布式存储实战.pdf》很可能是详细教程,涵盖了Ceph的安装、基本操作、高级特性,以及案例分析。这份资料对于想要深入了解和实践Ceph的IT从业者或学生来说是一份宝贵的资源。 总之,Ceph分布式存储...
在"**Ceph分布式存储实战高清版本**"中,读者可以期待学习到以下内容: 1. **Ceph安装与配置**:如何搭建Ceph集群,包括服务器硬件要求、软件安装步骤、集群初始化等。 2. **数据持久化与冗余策略**:理解CRUSH...
《Ceph分布式存储实战》是一本深度探讨Ceph这一热门分布式存储系统的实战教程。随着大数据、云计算和物联网的快速发展,存储系统的性能、扩展性和可靠性变得至关重要。Ceph因其开源、高性能、高可用性以及跨平台的...
《Ceph分布式存储实战》是一本深入探讨Ceph分布式存储系统的专著,旨在为学习分布式存储的读者提供全面的理论基础和实践经验。Ceph是一种开源的、高度可扩展的存储解决方案,广泛应用于云计算、大数据处理和物联网等...
《Ceph分布式存储实战》是一本深度探讨Ceph存储系统的权威指南,对于了解和掌握分布式存储技术具有极高的价值。Ceph是一个开源的、高度可扩展的统一存储系统,旨在提供高可用性、数据耐久性和性能优化。本书旨在帮助...
### Ceph分布式存储系统知识点详解 #### 一、Ceph简介 Ceph作为一个备受瞩目的开源存储项目,凭借其独特的“统一的”和“分布式的”特性,在存储领域内占据了重要地位。它不仅可以同时支持对象存储、块存储和文件...
Ceph 是一个高度可扩展的分布式存储系统,设计用于处理PB级别的数据和大量的存储设备。在这样的环境中,有效地分布数据和负载至关重要,以确保资源利用率最大化,系统性能最优化,并能适应扩展和硬件故障。为此,...
Ceph分布式存储平台指南 Ceph是当前开源世界中的一种流行的分布式存储解决方案。许多企业IT基础设施经理们都需要了解Ceph是如何满足企业级存储产品的需求的。Ceph通过其三大存储接口满足了企业的多样需求,通过其...
总而言之,本指南是为希望在生产环境中部署和管理Red Hat Ceph分布式存储系统的用户提供的详细参考资料。遵循该指南,用户可以创建适合自身应用需求的存储策略,优化数据存储和访问效率,从而保证服务的连续性和数据...
本资料“Ceph分布式存储实战高清完整版”将深入探讨Ceph的核心概念、架构、安装配置以及实际应用。 1. **Ceph核心概念** - **RADOS ( Reliable Autonomic Distributed Object Store)**:Ceph的核心是RADOS,一个...