关闭

Ceph Monitor源码机制分析(三)—— 选举

Monitor的选举机制 Monitor要做的事情很明确了,就是管理、维护和发布集群的状态信息,但是为了避免单点故障或者性能热点问题,一般使用多个Monitor来做这一件事情,也就是管理层有多个成员。集群的正常运行,首先需要管理层达成一致,达成一致就需要有一个能拍板的monitor(leader),大家都听它的就行了。所以要达成一致核心问题就是在众多monitor中选出那个能拍板的monitor...
阅读(2247) 评论(0)

Ceph Monitor源码机制分析(二)—— 初始化

Monitor的初始化 Monitor的启动过程,相对比较简单,具体过程参见ceph_mon.cc这个源码文件。大概可以分为以下几部分: 介绍ceph_mon命令能够处理的参数以及使用方法根据配置文件指定的mon_data目录创建名为store的MonitorDBStore实例并且打开数据目录。判断当前数据目录的使用情况是否超过报警限制。并且读出store的magic number...
阅读(1578) 评论(0)

Ceph Monitor源码机制分析(一)—— 概述

0 前言 最近终于有点时间可以看看Ceph的代码了,接下来准备就Ceph monitor这个Ceph集群中最重要的组件进行深入的分析。 1 Monitor的作用 Monitor在Ceph集群中扮演着管理者的角色,维护了整个集群的状态(抽象成几张map,包括osdmap、monmap、mdsmap、auth、log等),保证集群的相关组件在同一时刻能够达成一致,相当于集群中的领导层。之所以说是...
阅读(2431) 评论(0)

NFS配置使用

最近在配置manila对接EMC的isolon服务,发现isolon通过nfs导出的文件怎么都挂载不到服务器上,索性建了两个虚拟机(一个座位nfs server一个作为client)搭了一个nfs的环境,整体配置和使用还是非常简单的,下面介绍一下。 1 安装nfs的包 目前nfs已经成为几乎所有Linux发行版的标配软件,所以默认nfs的软件包都是安装好的,可以通过如下命令确认是否安装: [...
阅读(604) 评论(0)

XFS实现原理详解

XFS核心架构设计及实现的介绍...
阅读(6102) 评论(1)

Ceph中的级联快照有问题吗?

经常会有人问我关于Ceph中级联快照的问题,级联过多时,是否会影响性能,这篇文章就来说一说这个事情。...
阅读(609) 评论(0)

Ceph高级工具介绍之ceph-objectstore-tool的使用

ceph-objectstore-tool工具是Ceph提供的一个low level(可以操作object和pg)的工具,可以用来查看、修改、删除ObjectStore上的object、pg以及dump OSD journal中的数据,请谨慎使用这个工具,它有可能会造成数据的永久丢失,可能这也是很少有文章介绍它的一个原因吧。...
阅读(3392) 评论(4)

Ceph高级工具介绍之ceph-dencoder的使用

贯穿Ceph OSD端数据处理的一个核心结构就是ObjectStore::Transaction,OSD处理的所有操作以及其关联的数据都会封装进入Transaction中的bufferlist结构里,这里的封装也就是序列化(encode),它将各种数据结构无论简单或者复杂都作为字节流,存入bufferlist中。最终Transaction会由具体的ObjectStore后端实现来处理,当然,处理时会对bufferlist中的数据进行反序列化(decode)。而本文介绍的ceph-dencoder工具就是Ce...
阅读(1468) 评论(1)

Ceph高级工具介绍之ceph-kvstore-tool的使用

Ceph是一个复杂的分布式存储系统,有很多组件组成,不光学习成本比较高,而且运维难度也是相当的大。但近几年,它却很受大家的欢迎,越来越多的互联网企业开始采用ceph来构建自己的存储。这是为什么呢?我想源自于它优秀的设计、规范的项目管理以及活跃的社区。Ceph本身提供了很多高级工具(之所以称它们为高级工具,是因为要使用它们必须对Ceph有较为深入的理解),它们在处理Ceph故障时,非常有用,接下来的几篇文章会介绍常用的几个工具。...
阅读(2214) 评论(0)

生成RGW的火焰图

最近通过perf在分析Ceph对象存储RGW的性能,趁机也生成了一个Flame Graph,可以更直观的帮助我们找到RGW I/O各部分的耗时。先上图,生成的图本来是svg格式的(可以用浏览器打开,并且火焰图中每部分都是可以点开,显示对应的函数调用的。但因为无法上传,所以转换成png的了。 是不是逼格很高,火焰图的用途很多,可以生成程序的调用栈并且计算调用栈中每部分的CPU消耗,找到CP...
阅读(1694) 评论(0)

ceph-deploy搭建ceph集群

最近尝试使用ceph-deploy搭建ceph集群,发现非常方便,简简单单几个命令就能创建一个集群,省去了纯手工搭建集群的时间,当然,如果你懂puppet,使用puppet-ceph来搭建能够让你更容易方便的配置集群。 1 安装ceph包 $ ceph-deploy repo --repo-url http://mirrors.ustc.edu.cn/ceph/rpm-jewel/el7/x8...
阅读(3184) 评论(0)

Ceph网络模块介绍

1 Socket简介 Ceph的网络通信是基于Socket技术实现的,所以要想搞清楚网络部分,必须先清楚socket的工作机制,这里介绍一些基本的内容,要深入理解socket请参阅《linux网络编程》一书和《tcp/ip详解》。 socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open -> 读写write/read -> 关闭clos...
阅读(1823) 评论(0)

librbd代码目录解读

librbd目录中目前有4个文件夹: exclusive_lock,这个目录里主要是将之前的exclusive lock 处理逻辑迁移到async state machines模式image,这个目录主要是将image refresh的处理逻辑迁移到 async state machines模式object_map,(consolidate object map invalidation t...
阅读(1459) 评论(0)

Ceph源码目录架构

1 简介 该代码架构基于版本10.0.5整理,先整理根目录里的代码,再整理出src目录的架构。 2 代码架构 2.1 Ceph源码根目录 Ceph的根目录下包含了一些文件夹和若干编译、代码格式相关的文件。 [admin]:架设Document服务器,包括依赖内容并介绍修改doc的流程。 [bin]:目前只包含一个在当前目录针对所有内容生产tar包的脚本 [...
阅读(2273) 评论(0)

clone ceph的submodules

Ceph作为一个庞大的分布式系统就像一个大熔炉,其中包含了很多第三方的项目,你可以在ceph根目录下的.gitmodules中找到所有的:[submodule "ceph-object-corpus"] path = ceph-object-corpus url = https://github.com/ceph/ceph-object-corpus.git [submodule "src/c...
阅读(759) 评论(0)

比较两个文件的不同

linux中的diff命令可以比较两个文件的不同,并输出友好的结果,方便查看。其中-y表示输出两列对比,而'--suppress-common-lines'屏蔽了相同的行。 $ diff --suppress-common-lines default.cf osd.4.cf -y name = client.admin | name = osd.4 debug_lockdep...
阅读(363) 评论(0)

ceph-fuse hangs on starting ceph client

最近搭建了一个CephFS的环境用于debug问题,一切配好之后,通过ceph-fuse(ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 10.0.101.70:6789 /mnt/cephfs/)来挂载CephFS,但发现命令会hang住不结束,通过log发现,命令hang在了: rt_sigaction(SIGSYS, {0x634d1...
阅读(1010) 评论(0)

解决too many PGs per OSD的问题

当一个集群中创建的pg个数过多时(创建的pool过多或者pool指定的pg过多),Mon就会报出如下警告: $ ceph -s cluster 27d39faa-48ae-4356-a8e3-19d5b81e179e health HEALTH_WARN too many PGs per OSD (1296 > max 300) monmap ...
阅读(5495) 评论(0)

Qemu/Kvm中的tracing工具

Qemu有自己的Trace框架并支持多个debug/trace后端包括:nop, dtrace, ftrace, log, simple, ust,可以帮助我们分析Qemu中的问题。关于这些backend的介绍,可以看这个链接:http://repo.or.cz/w/qemu/stefanha.git/blob_plain/refs/heads/tracing:/docs/tracing.txt,...
阅读(1305) 评论(0)

整理各大公司的开源项目链接

几大开源公司的开源项目: Intel https://01.org/zh/projects Google https://github.com/google Netflix https://github.com/Netflix aws https://github.com/aws IBM https://developer.ibm.com/open/ ya...
阅读(859) 评论(0)
90条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:237041次
    • 积分:2936
    • 等级:
    • 排名:第13352名
    • 原创:81篇
    • 转载:9篇
    • 译文:0篇
    • 评论:14条
    最新评论