Ceph 目前OSD处理OP、snap trim、pg scrub类型op处理时,采用相同的work queue,即 osd::op_shardedwq; 研究该shardedwq,有利于我们对snap trim和scrub的配置参数调整; op_shardedwq对应的thread pool为:osd_op_tp 相关数据结构 这里主要涉及到两个数据结构: class PGQueueable class ShardedOpWQ class PGQueueable...
描述:osd下的设置会影响Ceph存储集群中的所有ceph-osd守护进程,并覆盖全局中的相同设置。 示例:osd_op_queue = wpq [mds] 描述:mds部分中的设置会影响Ceph存储集群中的所有ceph-mds守护程序,并覆盖全局中的相同设置。 示例:mds_cache_size = 10G [client] 描述:客户端下的设置会影响所有Ceph客户端(例如,挂载...
客户端发起对应的文件IO,调用libcephfs的相关接口,libcephfs作为librados的客户端,会运行简单的HASH路由算法计算此次IO请求对应的PG,再根据CRUSH算法计算出PG对应的OSD组,返回OSD信息给客户端即libcephfs之后,对应地客户端将读写请求发送到OSD上进行处理。而OSD集群中的每一个OSD进程都运行在独立的存储驱动器上,OSD接...
osd_op_queue = wpq mds Description Settings in the mds section affect all ceph-mds daemons in the Ceph Storage Cluster, and override the same setting in global. Example mds_cache_size = 10G client Description Settings under client affect all Ceph Clients (e.g., mounted Ceph Filesystems...
到了13版本已经提供了ceph config命令,但是并不完善,很多配置依旧需要手动更改配置文件解决。到了14版本类似问题已经很少了。但是依然有一些需要在链接mon前就要确定的参数,依然需要在配置文件里指定,比如:osd_op_queue就得在配置文件里写明。下面对ceph config做一下说明。
journal_queue_max_ops 300 50000 日志一次性在队列中的最大操作数 journal_queue_max_bytes 33554432 10485760000 日志一次性在队列中最大字节 osd_max_write_size 90 512 一个Osd同时能写的最大兆字节 osd_op_threads 2 16 Osd响应客户端的线程个数 osd_disk_threads 1 4 Osd内部密集型操作的线程个数 osd...
一个Ceph集群一般都有很多个OSD。 • MDS MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。 • Object Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。 • PG PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
在以往版本增加了recovery、scrub、snap_trim操作的sleep动作基础上又增加了osd_delete_sleep参数,这个参数可以限制删除动作的带宽,防止批量删除过度消耗io资源。 期待已久的基于mclock的qos现在还是处在试验状态,尝试了将osd_op_queue从wpq改为mclock_opclass或者mclock_opclass,然后设置osd_op_queue_mclock_client_op_...
一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。 OSD OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。 MDS MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
3.4 Ceph OSD与Mon心跳检测 ceph_heartbeat_mon.png OSD报告给Monitor: OSD有事件发生时(比如故障、PG变更)。 自身启动5秒内。 OSD周期性的上报给Monito OSD检查failure_queue中的伙伴OSD失败信息。 向Monitor发送失效报告,并将失败信息加入failure_pending队列,然后将其从failure_queue移除。