前言最近在群里两次看到出现mon地址不对的问题,都是显示0.0.0.0:0地址,如下所示:
12345[root@lab8106 ceph]# ceph -s cluster 3137d009-e41e-41f0-b8f8-5cb574502572 health HEALTH_ERR 1 mons down, quorum 0,1,2 lab8106,node8107,lab104 monmap e2: 4 mons at {lab104=192.168.10.4:6789/0,lab8106=192.168.8.106:6789/0,lab8107=0.0.0.0:0/2,node8107=192.168.8.107:6789/0}
这个之前偶尔会看到有出现这个问题,但是自己一直没碰到过,想看下是什么情况下触发的,在征得这个cepher的同意后,登录上他的环境检查了一下,发现是主机名引起的这个问题
问题复现在部署的过程中,已经规划好了主机名,而又去修改了这个机器的主机名的情况下就会出现这个问题比如我的这个机器,开始规划 ...
前言这个问题存在有一段时间了,之前做的centos7的ISO,在进行内核的升级以后就存在这个问题:
系统盘在板载sata口上是可以正常启动新内核并且能识别面板硬盘
系统盘插在面板口上新内核无法启动,调试发现无法找到系统盘
系统盘插在面板上默认的3.10内核可以正常启动
暂时的解决办法就是让系统插在板载的sata口上,因为当时没找到具体的解决办法,在这个问题持续了一段时间后,最近再次搜索资料的时候,把问题定位在了initramfs内的驱动的问题,并且对问题进行了解决
解决过程查询initramfs的驱动
123[root@lab103 lab103]# lsinitrd -k 3.10.0-327.el7.x86_64|grep mpt[23]sasdrwxr-xr-x 2 root root 0 Apr 17 12:05 usr/lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/scsi/mpt2sas-rw-r--r-- 1 root root 337793 Nov 20 ...
前言freebsd10.2环境在安装一个新软件包的时候提示升级pkg到1.10.1,然后点击了升级,然后整个pkg环境就无法使用了
记录升级完了软件包以后第一个错误提示
FreeBSD: /usr/local/lib/libpkg.so.3: Undefined symbol “utimensat”
这个是因为这个库是在freebsd的10.3当中才有的库,而我的环境是10.2的环境
网上有一个解决办法更新源
12345# cat /usr/local/etc/pkg/repos/FreeBSD.confFreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/release_2", enabled: yes}
检查当前版本
12# pkg --version1.10.1
更新缓存
1# pkg update
卸载
1# pkg delete -f pkg
重新安装
12# pkg install -y pkg# pkg2ng
检查 ...
暂未分类
未读前言之前有个cepher的环境上是双活MDS的,需要变成MDS,目前最新版本是支持这个操作的
方法设置最大mds多活的mds的max_mds会超过1,这里需要先将max_mds设置为1
1ceph mds set max_mds 1
deactive mds看下需要停掉的mds是rank 0 还是rank1,然后执行下面的命令即可
12[root@server8 ~]# ceph -s|grep mdsmap mdsmap e13: 1/1/1 up {0=lab8106=up:clientreplay}
这个输出的lab8106前面的0,就是这个mds的rank,根据需要停止对应的rank
1ceph mds deactivate 1
总结不建议用多活mds
变更记录
Why
Who
When
创建
武汉-运维-磨渣
2017-05-03
前言前段时间看到豪迈的公众号上提到了这个离线转换工具,最近看到群里有人问,找了下没什么相关文档,就自己写了一个,供参考
实践步骤获取代码并安装12345git clone https://github.com/ceph/ceph.gitcd cephgit submodule update --init --recursive./make-distrpm -bb ceph.spec
生成rpm安装包后进行安装,这个过程就不讲太多,根据各种文档安装上最新的版本即可,这个代码合进去时间并不久,大概是上个月才合进去的
配置集群首先配置一个filestore的集群,这个也是很简单的,我的环境配置一个单主机三个OSD的集群
123456789101112131415161718[root@lab8106 ceph]# ceph -s cluster 3daaf51a-eeba-43a6-9f58-c26c5796f928 health HEALTH_WARN mon.lab8106 low disk space monmap e2: 1 mons at ...
前言在处理一个其他双活MDS无法启动环境的时候,查看mds的日志看到了这个错误mds/journal.cc: 2929: FAILED assert(mds->sessionmap.get_version() == cmapv),在查询资料以后,暂时得到了解决,在生产环境下还是不建议使用双活MDS
处理步骤这个是双MDS多活情况下出现的一个问题,在什么情况下出现还无法判断,目前只看到是有这个问题,并且有其他人也出现了 issue17113按照disaster-recovery建议的步骤做了如下处理:
备份下journal1cephfs-journal-tool journal export backup.bin
12cephfs-journal-tool journal resetcephfs-table-tool all reset session
做了上两步后环境并没有恢复,还有个下面的操作没有做,这个操作会引起数据的丢失, MDS ranks other than 0 will be ignored: as a result it is po ...
前言在ceph研发群里面看到一个cepher在问关于怎么读取ceph的副本的问题,这个功能应该在2012年的时候,我们公司的研发就修改了代码去实现这个功能,只是当时的硬件条件所限,以及本身的稳定性问题,后来没有在生产当中使用
我们都知道ceph在写数据的时候,是先写主本,然后去写副本,而读取的时候,实际上只有主本能够提供服务,这对于磁盘的整体带宽来说,并没有充分的发挥其性能,所以能够读取副本当然是会有很大好处的,特别是对于读场景比较多的情况
那么在ceph当中是不是有这个功能呢?其实是有的,这个地方ceph更往上走了一层,是基于crush定义的地址去进行文件的读取,这样在读取的客户端眼里,就没有什么主副之分,他会按自己想要的区域去尽量读取,当然这个区域没有的时候就按正常读取就可以了
实践如果你看过关于ceph hadoop的相关配置文档,应该会看到这么一个配置
ceph.localize.reads Allow reading from file replica objectsDefault value: true
显示的是可以从非主本去读取对象,这个对于hadoop场景肯定是越近 ...
暂未分类
未读前言在做一个比较满的集群的扩容的时候,遇到了一些问题,在这里做下总结,一般来说很难遇到,扩容要趁早,不然出的问题都是稀奇古怪的一些问题
建议环境一般来说在70%左右就需要考虑扩容了,这个时候的扩容数据迁移的少,遇到的问题自然会少很多,所谓的参数设置并不是一个单纯的参数的设置,所以一般来说在调优参数的时候,个人觉得只有适配硬件进行调优,所以本篇的参数同样是一个组合形式的
首先罗列出本篇涉及的所有参数
mon_osd_full_ratio = 0.95sd_backfill_full_ratio = 0.85sd_max_backfills = 1
最少的OSD的PG数目
1min_pg=`ceph osd df|awk '{print $9}'|awk 'NF'|grep -v PGS|sort -n|head -n 1`
那么最好满足
(osd_max_backfills/min_pg)+osd_backfill_full_ratio < mon_osd_full_ratio ...
前言之前对于striper这个地方的功能并没研究太多,只是知道这个里面可以以条带方式并行的去写对象,从而加大并发性来提高性能,而默认的条带数目为1,也就是以对象大小去写,并没有条带,所以不是很好感觉到差别,今天就尝试下用rados命令来看下这个条带是怎么回事
实践过程最开始我的集群是用rpm包进行安装的,这个可以做一些常规的测试,如果需要改动一些代码的话,就比较麻烦了,本文后面会讲述怎么改动一点点代码,然后进行测试
我们一般来说用rados put操作就是一个完整的文件,并不会进行拆分,我们尝试下看下
1234[root@lab8106 ~]# dd if=/dev/zero of=16M bs=4M count=4[root@lab8106 ~]# rados -p rbd put 16M 16M[root@lab8106 ~]# rados -p rbd stat 16Mrbd/16M mtime 2017-04-26 15:08:14.000000, size 16777216
可以看到我们put 16M的文件,在后台就是一个16M的对象
这个rados命令还有个参数是st ...
暂未分类
未读前言在ceph里面使用rbd接口的时候,存储的数据在后台是以固定的prifix的对象存在的,这样就能根据相同的前缀对象去对image文件进行拼接或者修复
在文件系统里面这一块就要复杂一些,本篇就写的关于这个,文件和对象的对应关系是怎样的,用系统命令怎么定位,又是怎么得到这个路径的
实践根据系统命令进行文件的定位写入测试文件
1dd if=/dev/zero of=/mnt/testfile bs=4M count=10
查看文件的映射
12345678910111213[root@lab8106 mnt]# cephfs /mnt/testfile mapWARNING: This tool is deprecated. Use the layout.* xattrs to query and modify layouts. FILE OFFSET OBJECT OFFSET LENGTH OSD 0 10000001188.00000000 0 ...