随笔分类 -  【20】ceph

摘要:peering 1.1 acting set和up set acting set是一个PG对应副本所在的OSD列表,该列表是有序的,列表中第一个OSD为主OSD。与up的区别在于,acting不是基于CRUSH计算出来的,而是基于一定的规则选出来;在通常情况下,up set和acting set列表 阅读全文
posted @ 2021-12-16 11:52 苏格拉底的落泪 阅读(582) 评论(0) 推荐(0)
摘要:pg归纳总结 1.如下图: pg状态变化 1. 状态变化如下图: 参考资料 1. ceph存储 PG的状态机 源码分析 2. ceph PG设计,状态机,peering,recovery 导图 阅读全文
posted @ 2021-12-15 14:04 苏格拉底的落泪 阅读(165) 评论(0) 推荐(0)
摘要:OSD的状态转化 状态意义位置 STATE_INITIALIZING OSD初始状态;新建OSD对象后,state的默认值。 class OSD STATE_PREBOOT OSD准备初始化;在OSD::start_boot中发送get_version消息之前设置。 OSD::start_boot 阅读全文
posted @ 2021-12-13 17:07 苏格拉底的落泪 阅读(118) 评论(0) 推荐(0)
摘要:peering 运行过程 1.写入object1。初始状态pg ,他由osd.0 、osd.1、osd.2组成的三副本形式,这时up集合为[0,1,2],acting集合为[0,1,2],acting_primary 为osd 0。这时该pg已经完成写入object1,那osd0,1,2上都保存这o 阅读全文
posted @ 2021-12-11 13:31 苏格拉底的落泪 阅读(238) 评论(0) 推荐(0)
摘要:BACKOFF 通常,OSD会简单地将任何不能立即在内存中处理的请求进队,直到它可以处理的时间。这可能会产生问题,因为OSD会限制传入消息所消耗的RAM总量:如果达到消息数量或字节数量的任何一个阈值,新的消息将不会从网络套接字中读取,从而通过网络造成反压力。 然而,在某些情况下,OSD知道或预计PG 阅读全文
posted @ 2021-12-10 11:34 苏格拉底的落泪 阅读(442) 评论(0) 推荐(0)
摘要:OSD的内部队列 由于op可能各种各样的原因需要背推迟处理,为此PG内部维护了多种op重试队列,它们的含义下表所示: 队列名称 入队条件 wait_for_map 当收到op时,已经有来自同一个客户端的op存在于此队列中,,或者op携带的Epoch大于PG当前的Epoch waiting_for_p 阅读全文
posted @ 2021-12-09 22:02 苏格拉底的落泪 阅读(179) 评论(0) 推荐(1)
摘要:PG相关命令 查询pool中pg的详细信息 ceph pg ls-by-pool default.rgw.buckets.data 阅读全文
posted @ 2021-12-09 16:53 苏格拉底的落泪 阅读(67) 评论(0) 推荐(0)
摘要:Ceph IO, Rados IO 流程解析(读写) CEPH RADOS IO(读写) 处理流程图: CPEH读写顺序保证: 不同对象的并发控制 不同的对象有可能落到同一个pg里,ceph实现里,在OSD的处理线程中就会给PG加锁,一直到queue_transactions里把事务放到bluest 阅读全文
posted @ 2021-12-09 14:19 苏格拉底的落泪 阅读(883) 评论(0) 推荐(0)
摘要:BlueStore源码分析之BitMap分配器 参考资料 1. BlueStore源码分析之BitMap分配器 阅读全文
posted @ 2021-12-06 19:56 苏格拉底的落泪 阅读(177) 评论(0) 推荐(0)
摘要:Ceph 集群在运行一段时间后常会碰到OSD 数据不均衡的时候,有的OSD 使用率超过的80%,有的甚至不足60%。一般有两种方法去均衡各个OSDs 间的数据 OSD Reweight 其实就是给各个OSDs 设置均衡权重(区别OSD weight 是根据容量设置的固定权重) 调整数据量超过阀值的O 阅读全文
posted @ 2021-12-06 14:13 苏格拉底的落泪 阅读(1829) 评论(0) 推荐(0)
摘要:osd_data "/var/lib/ceph/osd/$cluster-$id" path to OSD data osd_journal "/var/lib/ceph/osd/$cluster-$id/journal" path to OSD journal (when FileStore ba 阅读全文
posted @ 2021-12-03 10:20 苏格拉底的落泪 阅读(80) 评论(0) 推荐(0)
摘要:uuidgen ceph osd create uuidgen mkdir -R /var/lib/ceph/osd/ceph-3 ceph-osd -i 0 --mkfs --mkkey --osd-uuid 63970d8a-597a-4123-9767-097f88bbcd00 sudo ce 阅读全文
posted @ 2021-12-02 17:42 苏格拉底的落泪 阅读(147) 评论(0) 推荐(0)
摘要:PG 状态 statedescription Activating Peering已经完成,PG正在等待所有PG实例同步并固化Peering的结果(Info、Log等) Active PG可以正常处理来自客户端的读写请求 Backfilling PG正在执行Backfill。Backfill总是在R 阅读全文
posted @ 2021-12-01 14:02 苏格拉底的落泪 阅读(440) 评论(0) 推荐(0)
摘要:命令rados 删除pool test: rados purge test --yes-i-really-really-mean-it 查看资源池信息: rados df -p pool1 -p test # 参数是指定具体资源池,如果不加,则显示所有 创建rados对象: rados -p tes 阅读全文
posted @ 2021-12-01 10:41 苏格拉底的落泪 阅读(380) 评论(0) 推荐(0)
摘要:亲和性 #Ceph 客户端读写数据时,总是连接 acting set 里的主 OSD (如 [2, 3, 4] 中, osd.2 是主的)。#有时候某个 OSD 与其它的相比并不适合做主 OSD (比如其硬盘慢、或控制器慢),最大化硬件利用率时为防止性能瓶颈(特别是读操作),#你可以调整 OSD 的 阅读全文
posted @ 2021-12-01 09:35 苏格拉底的落泪 阅读(354) 评论(0) 推荐(0)
摘要:crush \luminous版本的ceph新增了一个功能crush class,这个功能又可以称为磁盘智能分组。因为这个功能就是根据磁盘类型自动的进行属性的关联,然后进行分类。无需手动修改crushmap,极大的减少了人为的操作 ceph中的每个osd设备都可以选择一个class类型与之关联,默认 阅读全文
posted @ 2021-11-12 22:29 苏格拉底的落泪 阅读(486) 评论(0) 推荐(0)
摘要:拓扑图 通过docker安装ceph集群时,执行命令:yum install ceph-common ,则不需要进入docker容器,运行ceph -s 就可以查询ceph的状态。 集群部署拓扑图: 创建三台虚拟机,本教程采用单侧是CENTOS7版本: 序号 主机名称 主机IP 说明 CENTOS7 阅读全文
posted @ 2021-11-12 22:09 苏格拉底的落泪 阅读(533) 评论(1) 推荐(0)
摘要:ceph如何查看osd中wal和db的大小 您可以使用ceph daemon osd.ID perf dump命令来检查 WAL/DB 分区是否即将填满及溢出。slow_used_bytes 值显示即将溢出的数据量: [ceph: root@storage01 /]# ceph daemon osd 阅读全文
posted @ 2021-11-11 22:24 苏格拉底的落泪 阅读(178) 评论(0) 推荐(0)
摘要:PG 一个 Pool 中有多个 PG,具体数量可以通过以下命令查看: ceph osd pool get test pg_num 查看 Pool 中 PG 的分布: ceph pg ls-by-pool test 查看对象的位置: ceph osd map test test-object osdm 阅读全文
posted @ 2021-11-10 21:52 苏格拉底的落泪 阅读(1970) 评论(0) 推荐(0)