Ceph:一个新时代的开始

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介:

 开放性、可扩展性和可靠性,使Ceph 成为了存储行业中的翘楚。这是云计算和软件定义基础设施的时代,我们需要一个完全软件定义的存储,更重要的是它要为云做好了准备。无论你运行的是公有云、私有云还是混合云,Ceph 都非常合适。 
    目前Ceph 是一种已经震撼了整个存储行业的最热门的软件定义存储技术。它是一个开源项目,为块存储、文件存储和对象存储提供了统一的软件定义解决方案。Ceph 旨在提供一个扩展性强大、性能优越且无单点故障的分布式存储系统。从一开始,Ceph 就被设计为能在通用商业硬件上运行,并且支持高度扩展(逼近甚至超过艾字节的数量)。 
    如今的软件系统非常智能,已经可以最大限度地利用商业硬件来运行规模庞大的基础设施。Ceph 就是其中之一;它明智地采用商业硬件来提供企业级稳固可靠的存储系统。 
    Ceph 已被不断完善,并融入以下建设性理念: 
    每个组件能够线性扩展 
    无任何单故障点 
    解决方案必须是基于软件的、开源的、适应性强的 
    运行于现有商业硬件之上 
    每个组件必须尽可能拥有自我管理和自我修复能力 
    对象是Ceph 的基础,也是Ceph 的构建部件,并且Ceph 的对象存储很好地满足了当下及将来非结构化数据存储需求。相比传统存储解决方案,对象储存有其独特优势;我们可以使用对象存储实现平台和硬件独立。Ceph 谨慎地使用对象,通过在集群内复制对象来实现可用性;在Ceph 中,对象不依赖于物理路径,这使其独立于物理位置。这种灵活性使Ceph 能实现从PB(petabyte)级到EB(exabyte)级的线性扩展。 
    Ceph 性能强大,具有超强扩展性及灵活性。它可以帮助用户摆脱昂贵的专有存储孤岛。Ceph 是真正的在商业硬件上运行的企业级存储解决方案,是一个低成本但功能丰富的存储系统。Ceph 通用存储系统同时提供块存储、文件存储和对象存储,使客户可以按需使用。 
数据存储需求在过去的几年中爆发性增长。研究表明,大型组织中的数据每年以40%到60%的速度增长,许多公司的数据规模每年会增加一倍。IDC 分析师估计,2000 年全球共有数字数据54.4 艾字节(Exabyte);到2007 年,达到295 艾字节;到2020 年,有望达到44 泽字节(Zettabyte)。传统存储系统无法应对这种数据增速,我们需要像Ceph 这样的分布式可扩展系统,而且最重要的是它经济实惠。Ceph 专门用来应对当今以及将来的数据存储需求。

SDS(软件定义存储) 
SDS 可以降低你存储基础设施的TCO (Total Cost of Ownership,总体拥有成本)。除降低存储成本外,SDS 还具有灵活性、可扩展性和可靠性。Ceph 是一个真正的SDS 方案,它运行在无厂商锁定的商业硬件之上,并使每GB 数据存储成本降至很低。不像传统存储 
系统硬件必须和软件绑定在一起,在SDS 中,你可以自由地从任何制造商那里选择商业硬 
件,可随意按自己的需要设计异构的硬件解决方案。Ceph 基于这些硬件,通过软件定义存储的方法来全方位地满足你的各种需求,并在软件层中提供了所有企业级存储特性。

云存储 
    云基础设施的难点之一是存储。每一个云基础设施都需要可靠的、低成本、可扩展、与云其他模块相比更紧密集成的存储系统。有很多号称云就绪的传统存储解决方案已经在市场上出现了,但如今我们的存储不仅要能够与云系统结合,还有很多其他需求。我们需要能和云系统完全集成、可提供更低TCO 且具有完全可靠性和可扩展性的存储系统。云系统是软件定义的,建立在商业硬件之上;类似地,云所需要的存储系统也必须采用同样方式,也就是基于商业硬件以及软件定义,而Ceph 是云存储的最佳选择。 
    Ceph 已迅速发展,并逐步成为真正的云存储后端。它已入驻各个大型开源云平台,比如OpenStack、CloudStack 和OpenNebula。此外,Ceph 已成功与云计算厂商如Red Hat、Canonical、Mirantis、SUSE 等建立互利伙伴关系。这些公司正帮助Ceph 经历重要时刻,包括使其作为他们Openstack 云平台的指定存储后端,这些都正逐渐使Ceph 成为云存储技术领域中炙手可热的技术。 
    OpenStack 开源项目是公有云和私有云领域的最佳范例之一。它已经被证明是一个纯粹的开源云解决方案。 OpenStack 包含很多项目,如Cinder、Glance 和Swift,可为OpenStack提供存储功能。这些OpenStack 组件需要具备像Ceph 这样可靠、可扩展、统一集成的存储后端。出于这个原因,OpenStack 和Ceph 社区已经在一起合作很多年,开发了完全兼容OpenStack 的Ceph 存储后端。 
基于Ceph 的云基础设施提供了服务供应商急需的灵活性,来建立存储即服务和基础设施即服务的解决方案。这是他们无法从其他传统企业存储解决方案中获得的,因为这些方案并不旨在满足云计算需求。通过使用Ceph,服务提供商可以提供低成本的可靠的云存储给他们的客户。

统一的下一代存储架构 
    近来,统一存储的定义已经发生变化。几年前,所谓“统一存储”指的是由一个单一的系统来提供文件存储和块存储。现在,因为最近的技术进步,例如云计算、大数据、物联网,新类型的存储一直在演变,对象存储也随之出现。因此,所有不支持对象存储的存储系统都不是真正的统一存储解决方案。真正的统一存储是像Ceph 这样的——能在一个系统中统一地提供块存储、文件存储和对象存储。 
在Ceph 中,“统一存储”这个概念比现有存储厂商所宣称的更有意义。从设计上,Ceph已经完全为未来做好了准备,被构造为能够处理海量数据。我们强调Ceph“为未来做好了准备”,是特指其对象存储功能,它比块存储和文件存储更适合当今的非结构化数据。Ceph不仅支持块存储和文件存储,更重要的是可以基于对象来实现块存储和文件存储。对象通过消除元数据操作来提供更好的性能和极大的扩展。Ceph 使用算法来动态地计算对象应当被储存和获取的位置。 
    SAN 和NAS 系统的传统存储架构是非常局限的。基本上,它们具有传统控制节点的高可用性,也就是说,一个存储控制节点出现故障后,将从第二个控制节点提供数据。但是,如果第二个控制节点同时出现故障呢?甚至更糟糕的情况,如果整个磁盘柜发生故障呢?在大多数情况下,最终会丢失数据。这种存储架构无法承受多次故障,因此绝对不是我们想要的。传统存储系统的另一个缺点是其数据存储和访问机制。它拥有一个中心元数据查找表,每次在客户端发送一个读写操作请求后,存储系统首先在巨大的元数据表中进行查找,在确定实际数据的位置后再执行客户端操作。对于较小的存储系统,你可能不会注意到性能问题,但对于一个大型存储集群,你一定会被这种方法的性能限制约束,它甚至会限制你的可扩展性。 
    Ceph 不拘泥于这样的传统存储架构;事实上,它的架构已经完全被革新了。它不再存储和处理元数据,而是引入了一个新的方法:即CRUSH(Controlled Replication UnderScalable Hashing)算法。CRUSH 表示数据存储的分布式选择算法。CRUSH 算法取代了在元数据表中为每个客户端请求进行查找,它计算系统中数据应该被写入或读出的位置。通过计算元数据,就不再需要管理元数据表了。现代计算机速度惊人,可以非常迅速地执行CRUSH 查找。此外,其计算量通常不大,还可以分布到集群的多个节点上。除此之外,CRUSH 还独具基础架构感知功能。它能理解基础设施各个部件之间的关系。CRUSH保存数据的多个副本,这样即使一个故障域的几个组件都出现故障,数据依然可用。正是得益于CRUSH 算法,Ceph 可以处理多个组件故障,以保证可靠性和持久性。 
CRUSH 算法使Ceph 实现了自我管理和自我修复。在一个故障域内某组件发生故障时,CRUSH 能感知到是哪个组件出了故障,并判断该故障对集群的影响。在没有任何管理干预情况下,CRUSH 自我管理并通过恢复因故障丢失的数据而自愈。CRUSH 从集群所维护的副本中重新产生数据。如果你已经正确配置了Ceph CRUSH map,它就会确保你的数据至少有一个副本始终可以访问。通过使用CRUSH,我们能设计出一个无单一故障点的高度可靠的存储基础设施。它使Ceph 成了一个面向未来的高可扩展和高可靠的存储系统。 



    Ceph 架构概述 
    Ceph 内部架构非常直接,下图将帮助我们理解: 
图片描述
    Ceph monitor(监视器,简称MON):Ceph monitor 通过保存一份集群状态映射来维护整个集群的健康状态。它分别为每个组件维护映射信息,包括OSD map、MONmap、PG map(会在后面的章节中讨论)和CRUSH map。所有群集节点都向MON节点汇报状态信息,并分享它们状态中的任何变化。Ceph monitor 不存储数据;这是OSD 的任务。 
    Ceph 对象存储设备(OSD):只要应用程序向Ceph 集群发出写操作,数据就会被以对象形式存储在OSD 中。这是Ceph 集群中唯一能存储用户数据的组件,同时用户也可以发送读命令来读取数据。通常,一个OSD 守护进程会被捆绑到集群中的一块物理磁盘上。所以,在通常情况下,Ceph 集群中的物理磁盘的总数,与在磁盘上运行的存储用户数据的OSD 守护进程的数量是相同的。 
    Ceph 元数据服务器(MDS):MDS 只为CephFS 文件系统跟踪文件的层次结构和存储元数据。Ceph 块设备和RADOS 并不需要元数据,因此也不需要Ceph MDS守护进程。MDS 不直接提供数据给客户端,从而消除了系统中的故障单点。 
    RADOS(Reliable Autonomic Distributed Object Store):RADOS 是Ceph 存储集群的基础。在Ceph 中,所有数据都以对象形式存储,并且无论是哪种数据类型,RADOS 对象存储都将负责保存这些对象。RADOS 层可以确保数据始终保持一致。
    要做到这一点,须执行数据复制、故障检测和恢复,以及数据迁移和在所有集群节点实现再平衡。 
librados:librados 库为PHP、Ruby、Java、Python、C 和C++这些编程语言提供了方便地访问RADOS 接口的方式。同时它还为诸如RBD、RGW 和CephFS 这些组件提供了原生的接口。Librados 还支持直接访问RADOS 来节省HTTP 开销。 
    RADOS 块设备(RBD):众所周知,RBD 是Ceph 块设备,提供持久块存储,它是自动精简配置并可调整大小的,而且将数据分散存储在多个OSD 上。RBD 服务已经被封装成了基于librados 的一个原生接口。 
    RADOS 网关接口(RGW):RGW 提供对象存储服务。它使用librgw(Rados Gateway Library)和librados,允许应用程序与Ceph 对象存储建立连接。RGW 提供了与Amazon S3 和OpenStack Swift 兼容的RESTful API。 
    CephFS:Ceph 文件系统提供了一个使用Ceph 存储集群存储用户数据的与POSIX兼容的文件系统。和RBD、RGW 一样,CephFS 服务也基于librados 封装了原生接口。 

本文转自    OpenStack2015 博客,原文链接:       http://blog.51cto.com/andyliu/1858158   如需转载请自行联系原作者
相关文章
|
关系型数据库 Linux 数据库
PostgreSQL 入门指南:安装、配置与基本命令
本文从零开始,详细介绍如何在 Windows、Linux 和 macOS 上安装和配置 PostgreSQL,涵盖30+个实操代码示例。内容包括安装步骤、配置远程访问和用户权限、基础数据库操作命令(如创建表、插入和查询数据),以及常见问题的解决方案。通过学习,你将掌握 PostgreSQL 的基本使用方法,并为后续深入学习打下坚实基础。
14692 1
|
机器学习/深度学习 人工智能 监控
AI在交通管理系统中的应用
AI在交通管理系统中的应用
720 23
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
传感器 人工智能 算法
AI在农业中的应用:精准农业的发展
随着科技的发展,人工智能(AI)在农业领域的应用日益广泛,尤其在精准农业方面取得了显著成效。精准农业通过GPS、GIS、遥感技术和自动化技术,实现对农业生产过程的精确监测和控制,提高产量和品质,降低成本和环境影响。AI在作物生长监测、气候预测、智能农机、农产品品质检测和智能灌溉等方面发挥重要作用,推动农业向智能化、高效化和可持续化方向发展。尽管面临技术集成、数据共享等挑战,但未来前景广阔。
1807 5
|
NoSQL Java 关系型数据库
阿里 P7二面:Redis 执行 Lua,到底能不能保证原子性?
Redis 和 Lua,两个看似风流马不相及的技术点,为何能产生“爱”的火花,成为工作开发中的黄金搭档?技术面试中更是高频出现,Redis 执行 Lua 到底能不能保证原子性?今天就来聊一聊。 
620 1
|
监控 安全 Java
Java多线程调试技巧:如何定位和解决线程安全问题
Java多线程调试技巧:如何定位和解决线程安全问题
370 2
|
人工智能 UED
“视觉AI任意门”AnyDoor,只需点两下鼠标就可以实现任意场景物体交换
【2月更文挑战第17天】“视觉AI任意门”AnyDoor,只需点两下鼠标就可以实现任意场景物体交换
877 1
“视觉AI任意门”AnyDoor,只需点两下鼠标就可以实现任意场景物体交换
|
机器学习/深度学习 算法 数据挖掘
使用MICE进行缺失值的填充处理
在我们进行机器学习时,处理缺失数据是非常重要的,因为缺失数据可能会导致分析结果不准确,严重时甚至可能产生偏差。处理缺失数据是保证数据分析准确性和可靠性的重要步骤,有助于确保分析结果的可信度和可解释性。
888 2
|
缓存 Linux
百度搜索:蓝易云【Centos报错:[Errno 12] Cannot allocate memory怎么解决?】
请注意,如果内存不足的问题持续出现,建议考虑升级系统的物理内存或优化系统配置,以确保系统具有足够的资源来运行应用程序和服务。
385 0