在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 ...
问题解析问题journal encryption with dmcrypt (Reno Rainz)
问题原文:I’m trying to setup a cluster with encryption on osd data and journal.To do that I use ceph-deploy with this 2 options –dmcrypt–dmcrypt-key-dir on /dev/sdc disk.……
分析:问题的提出者试图在部署osd的时候使用 encryption 对 osd 进行加密,在用 ceph-deploy 的时候,部署的时候出现了失败
总结:这个地方是因为 ceph-deploy 在进行 activate 操作的时候,把这个加密分区当做了 crypto_LUKS 分区格式进行了 mount 操作,这个肯定是不能成功的,因为这个加密盘是需要进行映射操作的,这里缺少了这个操作,不清楚是需要加其他的参数还是怎样,这个地方可以通过其他方式进行处理
在进行 ceph-deploy osd prepare 操作的时候,可以查看看 ...
问题三:CephFS(James Gallagher)
问题原文Hi,I’m looking to implement the CephFS on my Firefly release (v0.80) with an XFS native file system, but so far I’m having some difficulties. After following the ceph/qsg and creating a storage cluster, I have the following topology……
分析:问题提出者在配置了 auth 后,在客户端进行cephfs 挂载的时候,报了文件系统的错误,这个原因是问题提出者没有弄清楚 auth 的格式,而用了主机名去替代了用户名称
这个地方是在server端去创建用户
1ceph auth get-or-create client.zp mon 'allow *' mds 'allow *' osd 'allow *'
找到认证的key
1cep ...
问题ceph fuse closing stale session while still operable (Oliver Dzombic)
问题原文:Hi,i am testing on centos 6 x64 minimal install.i am mounting successfully:ceph-fuse -m 10.0.0.1:6789,10.0.0.2:6789,10.0.0.3:6789,10.0.0.4:6789/ceph-storage/……
分析:问题的提出者在使用ceph-fuse去挂载集群的时候,写入一个大文件的时候出现无法写入的问题,在mds的日志当中可以看到closing stale session client.21176728 10.0.0.91:0/1635 after 301.302291 的日志信息
从日志检查过程看ceph -s 出现了 62 requests are blocked > 32 sec问题提出者在认证的时候,出现了语法错误 ceph auth list showed 可以检查,后经 ...