11 瞧见风

尚未进行身份认证

把知识总结写出来是一个好习惯,而这个好习惯的培养只需要21天。

等级
TA的排名 1w+

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

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

2016-08-25 16:11:21

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

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

2016-08-18 16:38:26

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

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

2016-08-17 16:17:10

NFS配置使用

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

2016-08-16 17:04:47

XFS实现原理详解

XFS核心架构设计及实现的介绍

2016-08-02 23:21:57

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

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

2016-08-02 22:13:18

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

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

2016-07-25 16:17:04

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

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

2016-07-21 23:23:52

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

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

2016-07-19 11:09:51

生成RGW的火焰图

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

2016-06-27 13:28:36

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

2016-04-30 22:47:10

Ceph网络模块介绍

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

2016-04-20 23:54:13

librbd代码目录解读

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

2016-04-15 23:36:25

Ceph源码目录架构

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

2016-04-15 23:33:21

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

2016-03-25 18:31:24

比较两个文件的不同

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

2016-03-20 19:53:44

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

2016-03-13 22:59:31

解决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

2016-03-04 17:47:25

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,

2016-03-03 12:40:43

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

几大开源公司的开源项目:Intelhttps://01.org/zh/projectsGooglehttps://github.com/googleNetflixhttps://github.com/Netflixawshttps://github.com/awsIBMhttps://developer.ibm.com/open/ya

2016-02-18 14:47:00

查看更多

勋章 我的勋章
    暂无奖章