ceph在Infernalis加入了一个功能是查询rbd的块设备的使用的大小,默认是可以查询的,但是无法快速查询,那么我们来看看这个功能是怎么开启的
ceph版本12root@lab8107:~/ceph# ceph -vceph version 9.2.0 (bb2ecea240f3a1d525bcb35670cb07bd1f0ca299)
创建RBD设备我们先来创建一个rbd
123456789root@lab8107:~/ceph# rbd create test --size 4000root@lab8107:~/ceph# rbd info testrbd image 'test': size 4000 MB in 1000 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.10305695d26a format: 2 features: layering flags:
进行RBD容量使用查询我们来试一下rbd du命令
1234root@lab8107:~/ceph# rbd ...
Bluestore 作为 Ceph Jewel 版本推出的一个重大的更新,提供了一种之前没有的存储形式,一直以来ceph的存储方式一直是以filestore的方式存储的,也就是对象是以文件方式存储在osd的磁盘上的,pg是以目录的方式存在于osd的磁盘上的在发展过程中,中间出现了kvstore,这个还是存储在文件系统之上,以leveldb或者rocksdb的方式存储对象数据,这个也没有推广开来,性能上没有太大的改观,在某些情况下性能还低于filestore最终在sage的大力支持下,ceph社区准备撸一个新的文件系统,这个系统类似于rocksdb,但是数据是可以直接存储到裸设备上去的,也就是存储对象数据的地方是没有传统意义上的文件系统的,并且解决了一种被抱怨的写双份数据的问题,在filestore中,数据需要先写入journal再入磁盘,对于磁盘来说实际就是双份写了
在这里不做过多的探讨技术上的细节,bluestore处于开发阶段,在最新的版本的ceph中,发现已经集成了这个,虽然还是实验阶段,但是还是体现出其未来巨大的价值
环境准备由于没有测试大量的设备,就在一个小环境下进行性能的验 ...
暂未分类
未读通过dd来读取让硬盘灯闪来定位磁盘的位置
123456#!/bin/bashhd=$1for num in {1..5};do dd if="$hd" of="/dev/null" bs=4M count=1000 iflag=direct conv=noerror >/dev/null 2>&1 sleep 1done
写于: 2014年11月07日更新于: 2015年03月24日
在linux操作系统下,可能因为一些很小的误操作,都会造成非常重要的文件的丢失,而文件的备份并不是每时每刻都会注意到,一般是等到文件丢失了才会去想办法,这里讲下ceph.mon.keyring丢失的解决办法
1、没有启用部署认证的
auth_cluster_required =none
在进行部署的时候 ceph-deploy new 以后会生成ceph.mon.keyring文件,内容如下
123[mon.]key = AQBnutdWAAAAABAAPmLaAd9CeKaCRj1CIrztyA==caps mon = allow *
这个keyring在增加mon的时候,mon之间加密会用到的,如果在未开启认证的情况下,只需要在部署目录下面创建一个同名文件,里面填入一个格式相同的任意内容即可(需要有这个文件,不然无法部署新的mon),在没有开启认证的时候是没有生成这个文件的 /var/lib/ceph/mon/ceph-lab8106/keyring
一般是在系统盘损坏的时候容易丢失这个部署目录,并且没有做备份
2、启用了部署认证
auth_cluster_requir ...
最近因为一个实验需要用到一个功能,需要快速的增加 ceph 的 osdmap 的 epoch 编号
查询osd的epoch编号12root@lab8107:~# ceph osd stat osdmap e4686: 8 osds: 8 up, 8 in
上面显示的 e4686 即为osdmap的epoch的编号
增加epoch现在需要增加1000
1ceph osd thrash 1000
执行完了后
12ceph osd statosdmap e5687: 8 osds: 3 up, 3 in; 232 remapped pgs
很快就增加了1000的编号,这个命令执行完了后,osd weight 会变成0,这个做下恢复即可,节点会down,调整下weight,恢复下状态就可以了
暂未分类
未读安装ceph包的方式有很多,这里讲的是从官网直接通过yum源的安装方式进行安装
yum源对应的地址为http://download.ceph.com/rpm-hammer/el6/x86_64/
怎么配置ceph源就不在这里赘述了
下图为ceph官网的yum源里面的文件列表:
可以看到有多个版本的,默认的会安装最新的版本的
这样就会有个问题:安装了一个老版本的包,需要安装一个附属的包,安装的版本就会是最新版本的,而不是已经安装的版本的附属的包,会引起版本错乱
解决办法:
1、查询源里面的包有多少个版本123456789[root@zhongbo ~]# yum --showduplicates list ceph | expandLoaded plugins: securityAvailable Packagesceph.x86_64 1:0.94-0.el6 cephceph.x86_64 1:0.94.1-0.el6 ...
暂未分类
未读nginx是一款很优秀的web服务器软件,很多地方都有接触和使用到他,大部分的场景压力还没达到需要调优的地步,而调优的难点其实不在于调,而在于各项状态的监控,能够很快的找到资源在什么时候出现问题,调整前后出现的变化,如果都不知道变化在哪里所做的调优只能是凭感觉的
之前看到有技术人员用nginx作为rgw的前端的时候,通过优化去实现将nginx的并发提高到很大,而不出现4xx等问题,nginx的access.log里面是有记录访问的状态码的,而这个日志的分析如果是一次次的去看,这样的分析是无法用精确的数据去展示的
最开始的想法是想根据时间点去统计时间点的状态码,后来发现这样做既复杂,又无法输出到一些数据展示软件当中,实际上我只需要统计一定时间的总的状态值,然后定期去取这个值,然后在数据展示的时候,就可以看到一个数值的曲线图,增量即为这个时间区间所产生的状态值
下面就是我的实现,一个脚本就可以统计了,这个是最初的版本,纯统计状态码,还没有区分读写分离的情况,这个在后面会加入分离的情况
12345678910111213141516171819202122232425262728293031 ...
diamond是与graphite配合使用的一个数据收集的软件,关于这个配置的资料很多,使用起来也比较简单,详细的安装和配置会在后面的关于整套监控系统的文章里面写到,本篇是专门讲解怎么自定义这个数据收集的插件
diamond的结构比较简单:
Collector 数据采集的模块
handlers 数据发送的模块
这里主要讲解的是Collector部分的插件的编写,diamond自身带了非常丰富的插件,可以很方便的使用自带的插件进行监控,包括ceph和cephstats这两个可以用来监控ceph的插件,弄清楚怎么去写插件会方便很多,并且能扩展原来插件所没有的数据,calamari里面的数据的收集就是通过的diamond的
本例将讲解怎么写一个监控ceph的健康状态的插件
1、diamond软件的安装通过github上下载代码然后安装在服务器上即可
2、收集数据的py的编写收集数据的collect的路径:
1/usr/share/diamond/collectors/
2.1 创建一个目录1mkdir /usr/share/diamond/collectors/cephhealth/
2 ...
暂未分类
未读在ubuntu下安装软件过程中可能会出现需要你输入密码或者其他的一些交互类的操作,这样在脚本安装的时候就可能出现阻断,这个在ubuntu里面已经考虑到了这个情况,以前我在安装这个的时候,通过的是脚本传递参数的方式,这里介绍的是原生的控制方式,这个方式更好
以安装mariadb-server-5.5为例
1、查询需要应答的问题首先通过命令查询这个软件需要问答什么问题
12345678910root@mytest:/var/cache/apt/archives# debconf-show mariadb-server-5.5 * mysql-server/root_password: (password omitted)* mysql-server/root_password_again: (password omitted) mysql-server/password_mismatch: mysql-server/error_setting_password:* mariadb-server/oneway_migration: true mysql-server-5.5/nis_w ...
暂未分类
未读问题Ceph monitors 100% full filesystem, refusing start
问题原文I have an issue with a (not in production!) Ceph cluster which I’mtrying to resolve.
分析这是作者在使用多个mon的时候,数据出现了磁盘满的情况,然后重启mon进行压缩的时候,发现这个到了mon的最小空间阀值无法启动,然后就无法压缩,这个问题,还是因为对硬件的不重视,对软件的要求不清楚造成的
解决办法mon的磁盘空间加大,这个在PB级别的集群中更需要重视这个问题,特别是在集群频繁的读写,或者pg变化比较多,osd变化比较多的情况下,这个数据量将是很大的,因为里面是用了leveldb的数据库,并且多个mon之间是需要同步的数据的,然后各自再做compact的操作,所以建议如下:
1、mon的数据分区需要是ssd的,加快数据的读写速度
2、mon的数据分区要100G以上,建议是150G,mon数据大概在80G左右后不会再大量的增长
3、在mon的参数中加入启动压缩的参数 mon_compact ...