
Ceph
老虞面馆
这个作者很懒,什么都没留下…
展开
-
ceph基本命令
1.集群健康状态ceph health2.集群状态ceph -s3.查看ceph存储空间ceph df4.查看mon状态信息ceph mon stat5.查看mon的选举状态 ceph quorum_status6.查看osd状态ceph osd stat/dump7.查看osd状态和层级ceph osd tree8.查看pg状态ceph pg stat原创 2017-08-02 23:42:20 · 831 阅读 · 0 评论 -
ceph源码分析--onode lru
onode是bluestore中的元数据形式,由于bluestore直接写裸盘,因此需要onode来管理对象。本文就讲讲onode的缓存算法。在bluestore的cache中存在着lru和twoq两种,但是关于onode元数据的cache采用的都是lru算法。1.lru上已有元素在访问到时怎么到队首?这部分得从get_onode讲起,在其中调用了BlueStore::Onod...原创 2018-04-29 00:53:44 · 1887 阅读 · 0 评论 -
ceph源码分析--一个entry函数的调用
ceph中有很多的entry函数,往往是由各线程来调用处理的,本篇文章以bluestore中的MempoolThread为例来讲讲该函数的调用。 struct MempoolThread : public Thread { BlueStore *store; Cond cond; Mutex lock; bool stop = false; public:...原创 2018-04-16 01:10:04 · 896 阅读 · 0 评论 -
ceph源码分析--isa-l计算校验块的一个小优化
本次来聊一聊isa-l,即ceph的纠删码插件之一。当然这个值曾经默认是jerasure。 关于纠删码的原理其实就像是线性代数中解线性方程组。这部分就不赘述。本次重点关注isa-l中的两个函数。本次主要关心的问题: 在已经知道旧的校验块后和旧的数据块和修改后的数据块后怎么快速得到新的校验块。首先isa-l库是可以独立单独运行的,首先从 https://github.com/ceph/...原创 2018-04-15 22:15:19 · 3038 阅读 · 1 评论 -
ceph源码分析--Monitor tick
刚入职的时候曾经定位过一个ceph集群时钟回调8小时的单子。后来投入到了项目中。 最近同事问我osd向monitor定时report的处理过程,也涉及到了这一块的内容,而且 正式入职答辩的时候,主管问,那这个tick线程是定时调用的吗?当时被问懵了,因为自己并没有深入的前后看到这块。事情总要有头有尾,遗留的问题总要解决,写这篇博客的目的就是回答当时的遗留问题。究竟monitor的这个tick是...原创 2018-02-08 09:09:51 · 788 阅读 · 0 评论 -
ceph源码分析--ceph命令解析(终端敲命令之后发生的事)
在一次开发组内讨论中,那次是admin_socket的后台部分的课程分享。分享中同事提出了一个疑问。既然讲了admin_socket的的后台部分,那前端输入命令到底是怎么去调用的后台呢,或者前台的命令到底是怎么发送的呢?平时的ceph命令到底是怎么解析的呢?讨论会后带着这些疑问,看起了ceph代码。在终端敲入了ceph stastus,终端就返回了集群的状态。那在这个过程中,到底是调用了什么。原创 2018-01-22 20:27:08 · 2563 阅读 · 1 评论 -
ceph源码分析--MonitorDB
友情链接原创 2018-02-02 14:31:16 · 601 阅读 · 0 评论 -
ceph源码分析--Monitor paxos算法
友情链接原创 2018-01-24 14:25:04 · 530 阅读 · 0 评论 -
ceph源码分析--monitor leader选举
本篇博客主要分为三个部分 1.概述 2.选举的时机 3.选举的过程1.概述monitor在运行的过程中,必须存在一个leader节点来。众多的更新操作都是由leader节点来完成,写的命令也会经由peon转发到leader节点进行。leader的选择是根据rank值来的,rank值小的为leader,而rank值跟IP地址有关。2.选举的时机在ceph中有大致三处原创 2018-01-19 01:29:31 · 1270 阅读 · 0 评论 -
ceph源码分析--Monitor对osd report进行报down处理
上一篇讲到Monitor的tick处理,顺带讲解Monitor对osd report超时的处理 该部分在PGMonitor的tick中调用void Monitor::tick(){ // ok go. dout(11) << "tick" << dendl; ··· //调用paxosservice的tick() for (vector<...原创 2018-02-08 16:07:54 · 1161 阅读 · 0 评论 -
ceph源码分析--monitor的lease机制
概述在monitor节点中,存在着Leader和Peon两种角色。在monitor采用了一种lease机制,保证了副本在一定时间内可读写。同时lease机制也保证了整个集群中的monitor当前都是可用状态。Leader节点会向所有的Peon节点定时的发送lease消息,延长各个节点的lease时间,同时收集所有节点的ack消息。只要有一个节点没有回复ack消息。就会重新发起选举。 同理原创 2018-01-18 00:33:30 · 1129 阅读 · 0 评论 -
ceph源码分析--admin socket
官方文档http://docs.ceph.com/docs/master/rados/operations/monitoring/具体用法ceph daemon {daemon-name} ceph daemon {path-to-socket-file}ceph daemon osd.0 foo ceph daemon /var/run/ceph/ceph-osd.0.a原创 2018-01-13 00:37:53 · 1197 阅读 · 0 评论 -
ceph日志级别
在ceph运行的过程中,可以通过调整日志级别来排查系统异常等。代码文件中经常有dout(10)这样的语句。表示输出到日志,而数字则代表日志级别。日志的设置有debug_osd,debug_mon等。#define dout_subsys ceph_subsys_mon #undef dout_prefix 设置的日志主要看 ceph_subsys_mon的最后一项。日志的级别设置有两种方法。1.原创 2017-08-14 00:25:49 · 5443 阅读 · 0 评论 -
ceph源码分析--纠删码写流程
op出队列之后的代码流程原创 2018-07-07 20:57:04 · 1731 阅读 · 0 评论