Ceph OSD简介

Ceph OSD是Ceph存储集群最重要的组件,Ceph OSD将数据以对象的形式存储到集群中每个节点的物理磁盘上,完成存储工作由OSD Daemon进程完成。集群中一般包括OSD节点,对于对象数据的读写,client首先是从Monitor节点获取Cluster Map信息,后续client直接同OSD进行I/O操作的交互,加速读写过程。相较于其他分布式存储系统,效率更高。

Ceph的核心功能包括高可靠、自动平衡、自动恢复和一致性。因此对于OSD而言,基于配置的副本数,Ceph通过分布在多个节点上的副本来实现,使Ceph满足高可用以及容错能力。在OSD中的每个对象都有一个源数据以及多个副本,副本默认分布在不同的节点上,这就是Ceph作为分布式存储系统的体现。每个OSD节点都能作为数据对象的源存储节点,同时也能作为其他数据对象的副本节点。副本OSD节点受到源OSD节点的控制。在磁盘故障时,Ceph OSD Daemon的智能机制将协同其他OSD执行恢复操作。此时,副本OSD节点被提升为源节点,同时新的副本将重新生成,保证了Ceph的可靠和一致。

OSD架构实现由物理磁盘驱动器、在其上的Linux文件系统以及Ceph OSD服务组成,Linux文件系统显性支持其可扩展属性;文件系统的可扩展属性提供了关于对象状态、快照、元数据内部信息,访问Ceph OSD Daemon的ACL则有助于数据管理。操作必须在一个有效的Linux分区的物理磁盘驱动器上,Linux分区可以是BTRFS、EXT4和XFS分区,文件系统是针对性能测试的主要标准之一。下面简略介绍一下上面操作系统。


BTRFS

在BTRFS文件系统的OSD相比与XFS和EXT4提供了最好的性能,BTRFS的主要优点有下面4个节点:

  • 扩展性:BTRFS的设计目标是应对大型机器对文件系统的扩展性要求。Extent、B-Tree和动态inode创建等特性保证了BTRFS在大型机器上表现卓越,整体性能不会随系统的容量增加而降低;
  • 数据一致性:BTRFS采用COW事务技术来保证文件系统的一致性,同时支持校验和,避免未知错误的出现,传统文件系统无法做到这点
  • 多设备管理相关的特性:BTRFS支持创建快照和克隆,方便地管理多个物理设备,使传统的卷管理软件变得多余
  • 结合Ceph, BTRFS中的诸多优点的快照、并行日志等优势在Ceph表现中尤为突出,但是BTRFS还未达到生产环境要求的健壮性。

XFS


是一种高性能的日志文件系统,擅长处理大文件,同时提供平滑的数据传输。目前Centos将XFS+LVM作为默认的文件系统。它的优点如下:

  • 分配组:XFS文件系统内部被分为多个分配组,它们是文件系统中的等长线性存储区。每个分配组各自管理自己的inode和剩余空间。文件和文件夹可以跨越分组。
  • 条带化分配:在条带化RAID阵列上创建XFS文件系统,可以指定一个“条带化数据单元”,带来最大化吞吐量。
  • 基于Extent的分配方式:文件用到的块由变长Extent管理,每个Extent描述一个或多个连续的块。对那些将文件所有块都单独列出的文件系统来说,Extent缩短了列表。XFS使用一对B+树、面向Extent的结构替代了位图进行空间管理,一个B+用于索引未被使用的Extent的长度,另一个索引这些Extent的起始块。
  • 扩展属性:通过实现扩展属性给文件提供了多个数据流,是文件可以被附加多个名/值对。
  • XFS不能很好的处理Ceph写入过程的日志问题

EXT4


是Linux下的日志文件系统,是Ext3的后续版本,由如下优势:

  • 大型文件系统:支持最高1EB的分区和最大16TB的文件
  • Extents:引入Extent文件存储方式,Extent指一连串的连续实体块,增加大型文件的效率减少分裂文件
  • 日志校验和:提高系统的可靠性。
  • 快速文件系统检查:Ext4将未使用的区块标记在inode当中,帮助e2fsck等检查工具在磁盘检查时跳过这些区块,节约文件系统检查时间。

Ceph OSD把底层文件系统的扩展属性用来表示各种形式的内部对象状态和元数据。XATTR以xattr_name/xattr_value形式存储键值对,因此提供更多的标记对象元数据信息的方法。Ext4系统不满足XATTR,限制了受欢迎程度,BTRFS和XFS有一个比较大的限制XATTR。Ceph使用日志文件系统,在提交数据到后备存储器之前,首先将数据写入到一个单独的存储区,存储区名为journal,然后是后备存储。

与传统的分布式存储不同,RADOS提供的最大特点包括:

  1. 将文件映射到Object后,利用Cluster Map通过CRUSH计算方式定位文件存储在设备中位置,优化传统的文件到块的映射和BlockMap管理
  2. 充分利用OSD的只能特定,将部分任务受权给OSD,最大程度实现可扩展性。

 

 

你可能感兴趣的:(ceph)