Ceph
文章平均质量分 67
瞧见风
把知识总结写出来是一个好习惯,而这个好习惯的培养只需要21天。
展开
-
10分钟从源码编译到部署ceph环境
最近开始学习ceph相关的技术,在读了一些理论知识后,急切的需要一个环境来实践一下。看了一下官网的安装部署教程,感觉不是很清楚,特别是从源码开始搭建环境。所以这里我整理一个5分钟的教程,希望对大家能有帮助。原创 2015-05-27 19:58:04 · 9125 阅读 · 0 评论 -
检查OSD哪些配置有别于默认配置
在Ceph集群中,如果想看一下你自定义的一些配置可以通过如下命令完成:$ sudo ceph daemon osd.1 config diff{ "diff": { "current": { "auth_client_required": "cephx", "cephx_cluster_require_signature原创 2015-12-27 23:20:30 · 2587 阅读 · 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原创 2016-03-13 22:59:31 · 2632 阅读 · 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原创 2016-03-25 18:31:24 · 1536 阅读 · 0 评论 -
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 · 4106 阅读 · 0 评论 -
Ceph源码目录架构
1 简介该代码架构基于版本10.0.5整理,先整理根目录里的代码,再整理出src目录的架构。2 代码架构2.1 Ceph源码根目录Ceph的根目录下包含了一些文件夹和若干编译、代码格式相关的文件。[admin]:架设Document服务器,包括依赖内容并介绍修改doc的流程。[bin]:目前只包含一个在当前目录针对所有内容生产tar包的脚本[原创 2016-04-15 23:33:21 · 5148 阅读 · 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原创 2016-04-30 22:47:10 · 5913 阅读 · 1 评论 -
Ceph网络模块介绍
1 Socket简介Ceph的网络通信是基于Socket技术实现的,所以要想搞清楚网络部分,必须先清楚socket的工作机制,这里介绍一些基本的内容,要深入理解socket请参阅《linux网络编程》一书和《tcp/ip详解》。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open -> 读写write/read -> 关闭clos原创 2016-04-20 23:54:13 · 3962 阅读 · 0 评论 -
生成RGW的火焰图
最近通过perf在分析Ceph对象存储RGW的性能,趁机也生成了一个Flame Graph,可以更直观的帮助我们找到RGW I/O各部分的耗时。先上图,生成的图本来是svg格式的(可以用浏览器打开,并且火焰图中每部分都是可以点开,显示对应的函数调用的。但因为无法上传,所以转换成png的了。是不是逼格很高,火焰图的用途很多,可以生成程序的调用栈并且计算调用栈中每部分的CPU消耗,找到CP原创 2016-06-27 13:28:36 · 3148 阅读 · 0 评论 -
Ceph高级工具介绍之ceph-objectstore-tool的使用
ceph-objectstore-tool工具是Ceph提供的一个low level(可以操作object和pg)的工具,可以用来查看、修改、删除ObjectStore上的object、pg以及dump OSD journal中的数据,请谨慎使用这个工具,它有可能会造成数据的永久丢失,可能这也是很少有文章介绍它的一个原因吧。原创 2016-07-25 16:17:04 · 9782 阅读 · 4 评论 -
Ceph高级工具介绍之ceph-kvstore-tool的使用
Ceph是一个复杂的分布式存储系统,有很多组件组成,不光学习成本比较高,而且运维难度也是相当的大。但近几年,它却很受大家的欢迎,越来越多的互联网企业开始采用ceph来构建自己的存储。这是为什么呢?我想源自于它优秀的设计、规范的项目管理以及活跃的社区。Ceph本身提供了很多高级工具(之所以称它们为高级工具,是因为要使用它们必须对Ceph有较为深入的理解),它们在处理Ceph故障时,非常有用,接下来的几篇文章会介绍常用的几个工具。原创 2016-07-19 11:09:51 · 6682 阅读 · 0 评论 -
XFS实现原理详解
XFS核心架构设计及实现的介绍原创 2016-08-02 23:21:57 · 32885 阅读 · 1 评论 -
Ceph中的级联快照有问题吗?
经常会有人问我关于Ceph中级联快照的问题,级联过多时,是否会影响性能,这篇文章就来说一说这个事情。原创 2016-08-02 22:13:18 · 1537 阅读 · 0 评论 -
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 · 4513 阅读 · 1 评论 -
Ceph Monitor源码机制分析(三)—— 选举
Monitor的选举机制Monitor要做的事情很明确了,就是管理、维护和发布集群的状态信息,但是为了避免单点故障或者性能热点问题,一般使用多个Monitor来做这一件事情,也就是管理层有多个成员。集群的正常运行,首先需要管理层达成一致,达成一致就需要有一个能拍板的monitor(leader),大家都听它的就行了。所以要达成一致核心问题就是在众多monitor中选出那个能拍板的monitor原创 2016-08-25 16:11:21 · 7004 阅读 · 1 评论 -
Ceph Monitor源码机制分析(二)—— 初始化
Monitor的初始化Monitor的启动过程,相对比较简单,具体过程参见ceph_mon.cc这个源码文件。大概可以分为以下几部分:介绍ceph_mon命令能够处理的参数以及使用方法根据配置文件指定的mon_data目录创建名为store的MonitorDBStore实例并且打开数据目录。判断当前数据目录的使用情况是否超过报警限制。并且读出store的magic number原创 2016-08-18 16:38:26 · 4189 阅读 · 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原创 2016-03-04 17:47:25 · 9064 阅读 · 0 评论 -
Ceph Monitor挂了之后对集群的影响
目前,Ceph作为统一存储的解决方案,已经得到了许多互联网公司的广泛应用,而大家搭建的Ceph环境也大多参照了国内最早研究Ceph的OpenStack公司UnitedStack(有云)分享出来的方案:即数据3副本、3个monitor做高可用等。Monitor相当于是Ceph集群的大脑,使用了3个做高可用防止单点故障的发生。经常有同事或者客户会问到一个问题:就是monitor最多能挂几个,集群就原创 2016-01-13 22:34:14 · 5154 阅读 · 0 评论 -
“Ceph浅析”系列之三——Ceph的结构
原文在 http://yizhaolingyan.net/?p=55, 感谢作者 @一棹凌烟 本文将从逻辑结构的角度对Ceph进行分析。3.1 Ceph系统的层次结构 Ceph存储系统的逻辑层次结构如下图所示[1]。 自下向上,可以将Ceph系统分为四个层次: (1)基础存储系统RADOS(Rel转载 2015-06-08 17:00:29 · 1399 阅读 · 0 评论 -
“Ceph浅析”系列之二——Ceph的设计思想
原文在 http://yizhaolingyan.net/?p=49, 感谢作者 @一棹凌烟 分析开源项目,时常遇到的一个问题就是资料不足。有时间写代码的大牛们通常是都是没有时间或者根本不屑于写文档的。而不多的文档通常又是使用手册之类的东西。即便偶尔有设计文档通常也是语焉不详。在这种情况下,想从代码里反向把设计思想提炼出来,毕竟不是人人都能做到的。转载 2015-06-08 16:55:37 · 1481 阅读 · 0 评论 -
“Ceph浅析”系列之一——Ceph概况
最近正在学习ceph,本来也想自己写个ceph系列来跟踪记录自己的学习过程,但是因为作者 @一棹凌烟,之前关于ceph的系列文章写的太好,所以先把精华部分转过来做个备份。当然,随着自己的学习的深入,本人也会整理出一些有意义的资料作为这个系列的补充。原文在 http://yizhaolingyan.net/?p=19, 感谢作者 @一棹凌烟本文将对Ceph的基本情况进行概要介绍,以期转载 2015-06-08 16:49:31 · 2124 阅读 · 0 评论 -
“Ceph浅析”系列之四——Ceph的工作原理及流程
原文在 http://yizhaolingyan.net/?p=63, 感谢作者 @一棹凌烟 本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍。如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行。对于上层的部分,特别是RADOS GW和RBD,由于现有的文档中(包括Sage的论文中)并未详细介绍,因而本文或转载 2015-06-08 17:09:05 · 2706 阅读 · 0 评论 -
使用tgt搭建一个基于rbd的SCSI target
本篇文章介绍了如何使用stgt搭建一个基于rbd的SCSI target。原创 2015-07-01 09:52:09 · 8474 阅读 · 0 评论 -
如何在ceph中找出存放的数据
这篇文章主要从ceph数据管理这个方面入手,通过具体的实例介绍一下如何在ceph中找到数据的存放位置。原创 2015-07-12 17:16:13 · 6535 阅读 · 1 评论 -
Ceph学习之Crush算法—— Bucket
CRUSH定义了四种bucket类型(Uniform Bucket、List Bucket、Tree Bucket、Straw Bucket)来表示层级结构的中间节点,叶子节点就是对应的OSD。每一种类型的bucket使用不同的数据结构来组织它包含的内容,可以是其他Bucket或者OSD,它们是在性能和效率间的折中。原创 2015-08-01 21:47:53 · 7911 阅读 · 1 评论 -
HEALTH_WARN mds 0 is laggy的解决方法
当你的ceph集群状态遇到如下状态时,$ ceph -s cluster 3a4399c0-2458-475f-89be-ff961fbac537 health HEALTH_WARN 191 pgs stale; mds cluster is degraded monmap e3: 1 mons at {0=192.168.0.5:6789/0}, el原创 2015-07-21 11:41:34 · 6396 阅读 · 0 评论 -
Ceph学习之Crush算法—— 整体介绍
这篇博文主要回答三个问题:什么是CRUSH?它能做什么?它是怎么工作的?原创 2015-07-30 14:36:12 · 17703 阅读 · 0 评论 -
计算机中的墨菲定律
我目前的工作主要是负责公司的分布式存储ceph,这在互联网行业里算是高危行业,因为它有个假设故障是常态,所以一搞不好就要投简历走人了。老板也时不时的提醒我们这一点,做存储首要稳定,有次偶然提到了墨菲定律:有可能出错的事,就会出错。我后来查了一下,它其实有很多延伸的意思,适用于生活中各个方面,但究其本质就是三个字“别侥幸”。百度百科给出了墨菲定律的完整介绍,主要内容:一、任何事都没有表面看起原创 2015-07-23 22:34:42 · 2446 阅读 · 0 评论 -
Ceph知识树
最近在梳理Ceph的知识树,也就是整理出学好Ceph需要具备的知识点原创 2015-12-09 22:57:12 · 3198 阅读 · 4 评论 -
查看谁map了rbd image
创建了一个rbd卷,想删除的时候总是报错一直被占用,想知道卷被谁占用了?首先查看卷的相关信息:$ rbd info testjevon/foorbd image 'foo': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rb.0.5aec5.238e1f29 format:原创 2015-12-28 00:03:16 · 2228 阅读 · 0 评论 -
HEALTH_WARN clock skew detected的解决办法
当你的ceph集群出现如下状况时,$ ceph -s cluster 3a4399c0-2458-475f-89be-ff961fbac537 health HEALTH_WARN clock skew detected on mon.1, mon.2原创 2015-07-21 22:36:55 · 17300 阅读 · 0 评论 -
删除一个OSD的最佳实践
当你要缩小集群规模或者处理坏盘时,你就需要通过删除OSD来实现,但是在删除之前你要确保集群不会达到full的状态。虽然社区的文档给出了删除一个OSD的步骤(http://docs.ceph.com/docs/hammer/rados/operations/add-or-rm-osds/),并且也能够work,但是它不是最好的方案,因为这其中会涉及到两次数据迁移,即在执行‘ceph osd ou原创 2016-01-11 23:52:42 · 2281 阅读 · 1 评论 -
SSD的工作原理、GC和TRIM、写入放大以及性能评测
本文涵盖了SSD的工作原理、GC、写入放大、TRIM和性能评测等内容原创 2016-01-13 16:14:15 · 11856 阅读 · 0 评论 -
Ceph Monitor源码机制分析(一)—— 概述
0 前言最近终于有点时间可以看看Ceph的代码了,接下来准备就Ceph monitor这个Ceph集群中最重要的组件进行深入的分析。1 Monitor的作用Monitor在Ceph集群中扮演着管理者的角色,维护了整个集群的状态(抽象成几张map,包括osdmap、monmap、mdsmap、auth、log等),保证集群的相关组件在同一时刻能够达成一致,相当于集群中的领导层。之所以说是原创 2016-08-17 16:17:10 · 6281 阅读 · 0 评论