Ceph学习笔记之二RADOSnode
1、RADOS架构后端
在RADOS架构中主要包含2个部分组件:bash
1、MON(Monitor)架构
由少许的Monitor节点构成的强耦合,小规模集群;负责管理Cluster Map。分布式
2、OSD(Object Storage Device)ide
由数量可变的 大规模磁盘设备组成的集群,负责存储全部Object数据。性能
2、Monitor详解学习
在前面已经简单对其MON进行描述,在这个地方咱们再次对MON进行详细解读。正如其名Monitor是负责监视整个集群运行状态的,这些信息都是由维护集群成员的守护进程来提供的,如各节点之间的状态、集群配置等信息。Ceph Monitor Map包括:OSD Map、PG Map、MDS Map和CRUSH等,这些Map统称为集群Map。spa
1、Monitor Map 线程
包括有关Monitor节点端到端的信息,其中包括Ceph集群ID,Monitor主机名和IP地址、端口号,以及版本信息、更改信息。经过下面命令查看Monitor Map信息:
# ceph mon dump
2、OSD Map
包括集群ID 、OSD Map版本信息、更改信息;以及Pool相关信息,如:Pool名称、PoolID、类型、副本数、PGP;同时还有OSD信息,如OSD数量、状态、OSD权重、最近清洁间隔和OSD主机信息,可经过下面命令查看OSD Map信息:
# ceph osd dump
3、PG Map
包括PG版本、时间戳、最新OSD Map版本信息、空间使用比例、以及沾满比例;同时包含每一个PG ID、对象数目、状态、OSD状态等信息;使用下面命令查看PG Map信息:
# ceph pg dump
4、CRUSH Map
包含集群存储设备信息,故障域层次结构和存储数据时定义失败域、规则信息,能够经过如下命令查看:
# ceph osd crush dump
Monitor对资源的需求
Ceph Monitor是个轻量化的守护进程,在常规状况下不须要太多的系统资源;入门级CPU、千兆网卡便可知足大部分场景;同时Monitor节点须要有足够的磁盘空间来存储集群日志,一个健康的集群产生几MB到几GB的日志;然而若是集群不正常、存储需求增长、打开低等级的日志信息的话,将会产生大量的日志,增长磁盘空间存储日志信息。
Monitor节点设计
一个典型的Ceph集群包含多个Monitor节点,一个多Monitor节点Ceph架构经过肯定的Monitor节点数来选择Leader,在Ceph集群中有多个Monitor节点时,Monitor节点数应为奇数,最低的要求是至少有一个Monitor节点,一般在设计Monitor节点数量推荐值为3,既为3个Monitor节点。
3、Ceph OSD详解
OSD是Ceph存储集群最重要的组件,OSD将数据以对象的形式存储到集群中每一个节点的物理磁盘上。
Ceph集群通常都包含多个OSD,对于任何读写操做请求,Client端从CephMonitor获取ClusterMap以后,Client将直接与OSD进行I/O操做交互,使得数据读写过程更为迅速。
1、OSD副本特性介绍
Ceph核心功能特性包括高可靠、自动平衡、自动恢复和一致性。对于Ceph OSD而言,基于配置的副本数,Ceph提供经过分布在多节点上的副原本实现,使得Ceph具备高可用性及容错性。在OSD中的每一个对象都有一个主副本,若干个从副本。这些副本默认状况下是分布在不一样节点上的,这就是Ceph做为分布式存储系统的集中体现。每一个OSD均可能是某些对象的主OSD;同时也可能成为其余对象的从OSD。从OSD受主OSD的控制,在某些状况下从OSD也会成为主OSD。例如:在磁盘故障时Ceph OSD Deamon的智能对等机制将协同其余OSD执行恢复操做,此时存储对象的从OSD将被提高为主OSD,同时,新的从副本也将从新生成,这样就保证了Ceph的可靠和一致。
2、Ceph OSD架构及文件系统
OSD架构实现由物理磁盘驱动器,在其之上的Linux文件系统以及OSD服务组成。Linux文件系统的扩展属性提供了:对象状态、快照、元数据内部信息。
Ceph OSD目前支持的文件系统主要有:BTRFS、XFS、EXT4
BTRFS
BTRFS文件系统格式的OSD相比XFS和EXT4提供了最好的性能。BTRFS主要优势:
(1) 扩展性
BTRFS设计目标是应对大型机器对文件系统的扩展性要求。Extent、B-Tree和动态inode建立等特性保证了BTRFS在大型机器上仍有不错的表现。总体性能不会随系统容量增长而下降。
(2) 数据一致性
当系统面临不可预料的硬件故障时,BTRFS采用COW事物技术保证文件系统的一致性。BTRFS还支持校验和、避免了未知的错误出现,传统的文件系统没法作到。
(3) 多设备管理
BTRFS支持建立快照和克隆。BTRFS还能管理多个物理设备。
BTRFS结合Ceph使得BTRFS中的诸多优势的快照,Journal of Parallel(并行日志)等优点使BTRFS在表现较为突出。然而不幸的是目前BTRFS还不能达到生产环境中要求的健壮性。所以不建议在Ceph集群中使用。
XFS
一种高性能的日志文件系统,XFS特别擅长处理大文件,同时提供平滑的数据传输。在CentOS7中已将XFS+LVM做为默认文件系统。
(1) 分配组
XFS文件系统内部被分为多个“分配组”,它们是文件系统的等长线性存储区。每一个分配组各自管理本身的inode和剩余空间。文件和文件夹能够跨越分配组。这种特性为XFS提供了可伸缩和并行的特性;多个线程和进程能够同时在同一个文件系统上执行I/O操做。
(2) 条带化分配
在条带化RAID阵列上建立XFS文件系统时,能够指定一个“条带数据单元”。这能够保证数据分配、inode分配,以及内部日志被对齐到该条带单元上。以此最大化吞吐。
(3) 基于Extent的分配方式
XFS文件系统中的文件用到的块由变长Extent管理,每个Extent描述了一个或多个连续的块。
(4)扩展性
XFS经过实现扩展文件属性给文件提供了多个数据流,使文件能够被附加多个名、值对;文件名是一个最大长度为256字节的,以Null字符结尾的可打印字符串。其关联值可包含多达64KB的二进制数据。扩展性能够被添加到任意一种XFS inode上,包含符号链接、设备节点和目录。
缺点:XFS不能很好的处理Ceph写入过程的Journal问题。
EXT4
第4代扩展文件系统,是Linux系统下的日志文件系统,是EXT3文件系统的后续版本。
(1) 大型文件系统
EXT4文件系统能够支持最高1EB的分区与最大16TB的文件
(2) Extents
EXT4引进了Extent文件存储方式,以替换EXT2/3使用的块映射方式。Extent指的是一连串的连续实体块,这种方式能够增长大型文件的效率并减小分裂文件。
(3) 日志校验和
EXT4使用校验和的特性来提升文件系统的可靠性,由于日志是磁盘上被读取最频繁的部分之一。
(4) 快速文件系统检查
EXT4将未使用的区块标记在inode中,这样能够节约大量的文件系统检测时间。
3、Ceph日志文件系统
在使用了BTRFS和XFS文件系统的OSD中,在提交数据到后端硬件磁盘以前,Ceph首先将数据写入一个存储区域,该区域称为Journal;Journal能够用一个单独的SSD磁盘作Journal,或者使用OSD自身的一个分区;若是要使Ceph获得较好的性能建议使用独立的SSD磁盘作Journal日志。其I/O流程如图:
Ceph的任何写操做首先是写Journal日志,而后每隔5秒将Journal中的数据刷写到后端硬件磁盘。