企业级部署的云托管需要高度可扩展的存储解决方案来简化和管理重要的业务数据。随着技术和最佳实践转向基于云的服务以跟上蓬勃发展的业务,Ceph的诞生是出于对鼓励可持续增长模式的软件解决方案的需求。
Ceph是一个开源存储平台,旨在允许来自单个系统的对象、块和文件存储。Ceph旨在实现自我修复和自我管理,努力降低管理员和预算成本,使其能够自行处理中断。它还旨在实现完全分布式操作,无单点故障,并且可扩展至EB级别。Ceph软件还在商用硬件上运行并复制数据以使其具有容错能力。
Ceph块存储
Ceph通过名为RDB或Radios Block Device的Linux内核模块将Ceph集群安装为块设备,从而提供对块存储的访问。
当使用块设备将数据写入Ceph时,Ceph会自动在集群中条带化和复制数据。Ceph的对象存储系统还允许用户将Ceph挂载为精简配置的块设备。Ceph块设备利用RADOS功能,包括快照、复制和一致性。块设备还可以为OpenStack中的虚拟机提供块存储。
Ceph Crimson也带来了好消息,这是一款专门构建的OSD系统,有助于利用NVMe驱动器的强大功能。
Ceph文件系统
Ceph文件系统(CephFS)是一个符合POSIX(用于确保操作系统之间文件兼容性的标准)的文件系统,它使用Ceph存储集群来存储数据。对于Ceph元数据服务器集群,目录和文件名的映射存储在RADOS集群中。此外,元数据服务器集群可以动态扩展和重新平衡文件系统,以在集群主机之间均匀分配数据,从而确保高性能并防止集群内出现过重的负载。
Ceph对象存储–客户端工具/RGW
在存储系统本身内,Ceph使用分布式对象存储。这与连接到Ceph集群并将其用作对象存储的概念是分开的。Ceph有一个名为RGW的本机对象存储网关。它是一项在集群的多个或所有成员上运行的服务,并为您的程序提供S3兼容的API和网关来添加、删除等对象。OpenMetal云都附带按需Ceph对象存储作为核心的一部分以及独立的存储集群。
Ceph工作原理
Ceph可以使用五个不同的守护进程,它们都是完全分布式的,并且可以在同一组服务器上运行,允许用户直接与它们交互:
- Ceph监视器(ceph-mon) 跟踪活动和故障的集群节点。
- Ceph管理器(ceph-mgr) 与监控守护进程一起运行,为外部监控和管理系统提供额外的监控和接口。
- 元数据服务器(ceph-mds)存储inode和目录的元数据。
- 对象存储设备(ceph-osd)存储实际的内容文件。
- 具象状态传输(RESTful) 网关 (ceph-rgw) 将对象存储层公开为与OpenStack Swift API兼容的接口。
一个或多个Ceph监视器和两个或多个Ceph对象存储设备的部署称为Ceph存储集群。在实际操作中,Ceph文件系统、Ceph对象存储和Ceph块设备从Ceph存储集群读取数据并向其写入数据。在Ceph存储集群中,Ceph对象存储设备将数据作为对象存储在存储节点上。一个Ceph存储集群可以有数千个存储节点。
在存储系统本身内,Ceph使用分布式对象存储,这是一种将数据视为对象的计算机数据存储架构。这与以文件层次结构管理数据的其他存储架构(例如文件系统)不同。通过Ceph的软件库,用户可以直接访问可靠的基于对象的自主分布式对象存储(RADOS)存储系统,这也为Ceph的一些功能(如RADOS块设备和Ceph文件系统)提供了基础。
Ceph存储关键功能特性
Ceph运行在存储节点上,存储节点是具有许多硬盘驱动器和闪存的商品服务的集合。然而,Ceph的成名之处在于CRUSH算法。该算法使存储客户端能够确定要联系的节点来存储或检索数据,而无需人工干预。以下是Ceph最显着的特性和功能特性:
- 存储可扩展性
如上所述,Ceph的存储客户端直接联系相关存储节点来检索和存储数据。此外,除了网络之外没有中间模块,可以根据需要进行配置。由于缺乏中介和代理,Ceph可以在性能和容量上进行扩展。
- 存储冗余
持久性是处理大型数据集的最大挑战之一。Ceph冗余通过复制或纠删码提供数据持久性。
- Ceph存储复制
Ceph复制模仿RAID(独立磁盘冗余阵列),但有一些差异。 Ceph根据你的集群配置将数据复制到多个机架、节点或对象存储守护进程(OSD)中。它将原始数据和副本分割成小块,并通过CRUSH算法将它们均匀地分布在集群中。
如果你在六节点集群上设置了三个副本,则这三个副本将分布到所有六个节点。因此,设置正确的数据复制至关重要,具体如下:
- 单节点集群:如果节点可用,则设置跨OSD的数据复制。 注意:无法在节点级别复制数据,因为如果出现单个 OSD 故障,您将丢失信息。
- 多节点集群:如果你的节点或磁盘发生故障但没有数据丢失,你的复制因子决定了你准备丢失的节点或OSD的数量。 注意:数据复制意味着你必须减少集群中的可用空间。
例如,节点杠杆上的复制因子为3意味着你只有1/3的集群空间可用。Ceph数据复制速度超快,只会受到OSD读/写操作的影响。
- 纠删码
擦除编码涉及对原始数据进行编码。这样,你在检索信息时只需要一个数据子集即可重新创建原始数据。 它将对象分解为k个数据片段,并将它们计算为m个奇偶校验片段。
例如,如果你的数据值为62,可以将其拆分为:
- X=6
- Y=2
擦除编码将计算几个奇偶校验片段,具体如下;
- X+y=8
- X–y =4
- 2x+y=16
上式中,k=2,m=4。K表示数据片段, 表示奇偶校验片段。
如果你的节点或磁盘发生故障并且需要恢复数据,只需要六个存储元素中的两个。纠删码确保数据的持久性。
为什么这至关重要?…因为与数据复制相比,奇偶校验片段占用的空间更少。
你可以将纠删码视为帮助您优化数据空间优化的一种方式。 不过,这个过程并非没有缺点。集群需要更多时间来读取和写入奇偶校验片段,使得擦除编码比复制慢。 也就是说,纠删码最适合处理大量冷数据的集群。
- 故障域
Ceph已做好数据中心准备。CRUSH地图可以代表你组织的物理数据中心基础设施,从房间到机架、流程和行。
此外,它还允许你自定义数据中心的拓扑。这样,你可以创建Ceph使用的不同数据策略,以确保集群可以处理特定参数的故障。拓扑允许你失去整个机架或一排机架,并且您的集群仍然可以运行,尽管容量和性能会受到影响。
虽然这种级别的冗余可能会花费您大量的存储空间,但您可能只想对某些数据实施它。 尽管这是一个问题,你可以创建多个具有独立保护的池。
- 可配置的文件和目录布局
Ceph文件系统允许用户配置文件和目录布局,以使用多个池、池命名空间以及跨对象的文件条带模式。
- 客户配额
Ceph文件系统支持对系统中的任何目录设置配额。配额可以限制目录层次结构中该点下存储的字节数或文件数。CephFS客户端配额默认启用。
什么是CRUSH算法?
CRUSH算法是使存储客户端能够确定要联系的节点来存储或检索数据,该算法消除了对集中式注册表来跟踪集群/元数据上的数据位置的需要。传统的集中式注册表的一些缺点包括:
- 阻碍可扩展性的性能瓶颈
- 会造成单点故障
通过消除集中式数据检索和存储注册表,Ceph允许组织在不影响可用性的情况下扩展其存储容量和性能。实际上,CRUSH算法的核心是CRUSH图。
该映射携带有关集群中存储节点的信息,它也是存储客户端需要进行计算的核心元素,以便能够确定要联系哪个存储节点。CRUSH映射从集群中的特殊监控节点服务器分发。无论Ceph存储的大小如何,整个集群只需要三个监控节点。
注意:存储客户端和节点负责联系三个监控节点。
当你看到这个结构时,确实,Ceph有一个集中的注册表。然而,它的用途与传统存储解决方案注册表不同。 它跟踪集群的状态,这是一项比操作数据存储或检索注册表更容易扩展的任务。 请记住,Ceph监控节点不处理或存储元数据。它仅监视单个和客户端存储节点的CRUSH映射。
此外,数据直接从客户端节点流向存储节点,反之亦然。
Ceph存储优缺点
Ceph 有以下优点和缺点:
主要优点
- 高性能、低延迟且无停机时间。
- 能够随着数据的增长而增长,从而实现可扩展性。
- 无限制许可。
- 自动存储集群管理和调节,保障您的数据安全。
- 由于Ceph是一个开源平台,因此它鼓励通过协作进行创新。
主要缺点
- 需要完善的网络才能享受Ceph的功能。
- 设置相对耗时。
Ceph存储集群
Ceph存储集群是两种守护进程类型的部署:一个或多个Ceph监视器和两个或多个Ceph对象存储设备。Ceph存储集群是所有Ceph部署的基础,可以包含数千个存储设备。
工作原理
在实际操作中,Ceph文件系统、Ceph对象存储和Ceph块设备从Ceph存储集群读取数据并向其写入数据。在Ceph存储集群中,Ceph对象存储设备将数据作为对象存储在存储节点上。对象存储设备存储实际的内容文件,Ceph监视器跟踪活动和故障的集群设备。
设置、修改和删除Ceph集群的用户将使用ceph-deploy工具。ceph-deploy专为Ceph打造,允许用户通过实用的初始配置设置快速、轻松地启动Ceph。该工具使您能够在远程主机上安装Ceph软件包、创建集群、添加监视器、收集和忘记密钥、添加对象存储设备、删除集群等等。
所以,Ceph是一款出色的软件,它构成了我们存储系统的基础——无论是在超融合云还是融合云上,还是我们提供的独立Ceph驱动的PB级存储系统上。
Ceph和MinIO区别
Ceph和MinIO是两种不同的分布式存储系统,它们有一些关键的区别,包括设计目标、架构和用途。以下是它们之间的一些主要区别:
- 设计目标和用途:
- 架构:
- Ceph:采用一种称为RADOS(可靠、自动分布的对象存储)的架构。它包含多个组件,如存储节点、监视器和元数据服务器等。Ceph使用CRUSH算法来实现数据分布和故障容忍性。
- MinIO:采用简化的架构,专注于对象存储。MinIO的设计是轻量级的,并通过Erasure Code技术实现数据冗余和容错性。
- 性能:
- Ceph:由于支持多种存储访问方式,其性能会受到具体使用情况和配置的影响。Ceph适用于需要多种存储服务的复杂场景。
- MinIO:专注于对象存储,因此在该领域具有高性能。MinIO的设计旨在提供快速、可扩展的对象存储服务。
- 部署和使用难度:
- Ceph:由于其复杂的架构和功能,部署和配置可能相对复杂,需要一些专业知识。Ceph适用于大型企业和复杂的存储需求。
- MinIO:由于其专注于对象存储的简化设计,MinIO的部署和使用通常相对简单,特别适用于小型和中型应用。
Ceph和NAS区别
Ceph和NAS(网络附加存储)是两种不同类型的存储解决方案,各自适用于不同的场景,有一些关键的区别:
- 架构和设计目标:
- Ceph:是一个分布式存储系统,旨在提供高度可扩展性、容错性和多协议支持的存储。Ceph设计用于构建大规模的对象存储、块存储和文件存储,并能够自动管理数据的分布和冗余。
- NAS:是一种基于网络的存储解决方案,通常包括专用的存储设备或存储服务器,通过网络协议(如NFS、CIFS/SMB)提供文件级别的存储服务。NAS是一个简化的网络文件系统,侧重于提供对文件的共享访问。
- 数据访问方式:
- Ceph:支持对象存储、块存储和文件存储。这意味着你可以使用RADOS Gateway(对象存储接口)、RBD(块设备接口)和CephFS(分布式文件系统)等方式来访问存储。
- NAS:主要提供文件级别的存储访问,通过文件协议(如NFS或SMB)允许客户端访问共享文件系统。
- 应用场景:
- Ceph:适用于需要大规模、高度可扩展且分布式的存储系统的场景,例如云存储、虚拟化环境和大数据存储。
- NAS:更适用于小型到中型企业,需要共享文件存储,并且对于简单的文件访问即可满足需求。
- 管理复杂性:
- Ceph:由于其分布式架构和多功能性,部署和管理可能相对复杂,通常需要一些专业知识。
- NAS:相对于Ceph而言,NAS的管理通常更为简单,适合那些对共享文件系统有基本需求但不需要复杂存储功能的场景。
- 性能特点:
- Ceph:由于其分布式性质,Ceph通常能够提供较高的吞吐量和容错性,适用于需要大规模并发访问的场景。
- NAS:性能特点会根据具体的NAS实现和用例而异,但通常适用于中小规模工作负载。
Ceph和HDFS区别
Ceph和Hadoop Distributed File System (HDFS) 都是分布式存储系统,但它们有一些关键的区别,主要在于设计目标、数据访问方式以及使用场景。以下是它们之间的一些主要区别:
- 设计目标和生态系统:
- Ceph:设计为一个通用的、高度可扩展的分布式存储系统,支持对象存储、块存储和文件存储。Ceph致力于提供全面的存储服务,适用于云存储和大规模存储需求。
- HDFS:是Apache Hadoop项目的一部分,专注于为Hadoop分布式计算框架提供分布式文件系统支持。HDFS主要用于存储大数据,以支持Hadoop的分布式计算工作负载。
- 数据访问方式:
- Ceph:支持对象存储、块存储和分布式文件系统(CephFS)。这意味着你可以通过RADOS Gateway(对象存储接口)、RBD(块设备接口)和CephFS(文件存储接口)等方式来访问数据。
- HDFS:专注于文件存储,提供了一个基于文件的接口,通过Hadoop MapReduce或其他Hadoop生态系统工具进行数据处理。
- 分布式架构:
- Ceph:采用RADOS(Reliable Autonomic Distributed Object Store)架构,包括存储节点、监视器和元数据服务器等组件。CRUSH算法用于数据分布和容错。
- HDFS:采用主从架构,包括一个NameNode(负责管理文件系统命名空间和访问控制)和多个DataNode(负责实际数据存储)。
- 使用场景:
- Ceph:适用于大规模的、通用的分布式存储需求,例如云存储、虚拟化环境和大数据存储。
- HDFS:主要用于支持Hadoop生态系统,存储和处理大规模数据集。HDFS通常与Hadoop MapReduce一起使用,但也可以与其他数据处理工具集成。
- 一致性和容错性:
- Ceph:具有强一致性和高度容错性,能够在节点故障时继续提供服务。
- HDFS:提供容错性,通过数据的多副本存储来应对节点故障,但在一些情况下可能会出现一定程度的一致性延迟。
总结
简单来说,Ceph存储是一种革命性的存储解决方案,对于初学者来说,Ceph存储是一个开放平台,其设计可在单个系统上实现文件、块和对象存储。Ceph存储具有自我修复和自我管理的能力,这意味着它可以独立处理计划内或计划外的中断。
此外,该解决方案旨在实现彻底的分布式操作,没有单点故障。希望通过以上文章的介绍,大家能够对Ceph存储有更好了解。