前言
Ceph是基于软件的分布式存储平台,可在商用硬件上运行。为了了解Ceph的工作效率,先要了解下什么是商用硬件。商用计算机是由多个供应商开发的硬件组件,包含基于单一开放标准的硬件组件。与超级微型计算机相比,商用计算机成本低,其开放标准确保了不同供应商产品之间的差异化。Ceph存储集群在这些商用计算机上运行,它使用众所周知的CRUSH算法,以确保集群之间的数据分布和扩展。Ceph开发的主要目标是提供极其可扩展的,基于对象,块和文件的存储机制。Ceph提供一个单一的存储平台,可以处理所有类型的数据存储机制(对象,块和文件)。它具有高度可扩展性,即高达Exabyte级别,内置容错和数据复制机制,可实现数据一致性。
Ceph的历史
Ceph是由Sage Weil于2004年创建的一个开源项目,该软件于2006年在开源许可下开始使用.Weil是“Inktank Storage”公司的创始人,该公司进一步致力于Ceph的开发,直到Red Hat公司购买了Inktank,他们在内部带来了Ceph的开发。Ceph的第一个主要稳定版本于2012年推出。2014年10月,开发团队发布了Ceph的第七个主要稳定版本“Giant”。为了成熟和完美,它仍然是一项正在进行的工作。
Ceph存储集群包含两种类型的守护程序:
- OSD Daemon
- Ceph Monitor
Ceph OSD
Ceph OSD是基于Ceph的集群的重要组成部分。OSD实际上存储文件/数据的内容。他们使用文件系统来存储这些数据。OSD守护程序用于管理群集上的所有此类磁盘。该守护进程负责在本地文件系统上存储数据,并通过不同的客户端软件或访问介质通过网络提供对此数据的访问。该守护进程负责添加和删除磁盘,分区磁盘,管理OSD,低级空间和安全功能以及数据复制访问磁盘。
Ceph Monitor
Ceph Monitor是一个用于监视完整群集的守护进程。如果您已启动并运行基于Ceph的群集,则每天都需要Ceph Monitor来查看群集运行状况和状态。每天监控集群涉及检查OSD的总体状态,文件系统或块级数据状态等任务。您可以使用此守护程序管理负载平衡和数据复制详细信息。
为了更好地理解Ceph集群的工作原理,让我们看看它如何处理所有三种类型的存储机制。
Ceph 对象存储
当数据写入Ceph时,它使用其内置机制在整个集群中自动分割和复制这些数据。Ceph的对象存储数据不仅可以使用内置的Ceph API进行访问,还可以使用Amazon S3服务或基于REST的API来访问它。Ceph的块存储机制提供RADOS(可靠的自主分布式对象存储)。RADOS服务是存储机制不可或缺的一部分; 它可以使用已安装在这些节点上的管理软件扩展到数千个硬件设备(通常称为“节点”)。
Ceph 块存储
该存储模式允许用户将Ceph挂载为精简配置的块设备。RADOS服务还用于块存储级别,以确保数据可扩展性。Librados参与了这一级别; 它是用户用于存储服务器或节点通信的软件库。它是一个基于python的库,它是一个开源应用程序,因此您还可以根据自己的需要调整和增强librados,以便与Ceph节点进行更好的通信。它使用“RADOS Block Device”(也称为RBD)与后端集成。RBD还继承了Librados的功能,它还可用于快照和恢复群集中的数据。
Ceph 文件存储
Ceph文件存储是基于Ceph的存储集群的兼容便携式操作系统接口(POSIX)的文件系统。它提供的服务将实际数据目录和文件映射到RADOS中存储的对象。因此,Ceph文件存储和RADOS以这种方式携手合作。RADOS通过在不同节点之间均匀地动态分配数据来工作。该文件系统支持无限数据存储和更强的数据安全性。Ceph以文件存储集群而闻名,因为它提供了最高的性能和可扩展性。请注意,您也可以使用btrfs或EXT4与Ceph,但为此RedHat建议使用最新的Linux内核。
结语
Ceph在Redhat伞下运行,提供经济高效,易于管理和高度可靠的数据集群功能。Redhat正在积极开展工作,其持续的持续开发确保定期添加错误修复和新功能。它是开源的,可以根据您的需求轻松修改。