暂未分类
未读安装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 可以检查,后经 ...
记得在很久很久以前,ceph当时的版本是有提供使用内存做journal的配置的,当时是使用的tmpfs,但是现在的版本在搜资料的时候,发现关于这个的没怎么找到资料,邮件列表里面有人有提到怎么做,看了下大致的原理,然后还是自己来实践一次
预备知识:首先需要知道的是什么是内存盘,内存盘就是划分了一个内存空间来当磁盘使用来进行加速的,这个在某些操作系统里面会把/tmp/分区挂载到tmpfs下,来达到加速的目的,这样就是重启后,会清空/tmp的内容,centos7 默认的分区方式也使用了tmpfs来加速,df -h可以看下那个tmpfs就是内存盘了
本文使用的不是tmpfs,这个是因为tmpfs不是我们常见意义上的那种文件系统,它不能格式化,ceph 在进行日志创建的时候会去检查journal 所在分区的 uuid, 而tmpfs在检测的时候 会返回一个全0的字符串,这个在校验的时候显示的无效的,所以也就部署起来有问题,下面开始介绍我的做法,这个里面做法很多,步骤也可以自己去变化,这里只是提供了我的一种思路
我使用的是ramdisk,关于怎么做ramdisk这个也 ...
暂未分类
未读ceph默认情况下是以主机名来作为mon的识别的,所以这个情况下用部署工具是无法创建多个mon的,这个地方使用手动的方式可以很方便的创建多个mon
1、创建mon的数据存储目录1mkdir /var/lib/ceph/mon/ceph-1
2、获取当前的monmap1ceph mon getmap -o /tmp/monmap
3、根据当前的monmap生成mon的数据1ceph-mon -i 1 --mkfs --monmap /tmp/monmap
4、启动进程(后面指定端口)1ceph-mon -i 1 --public-addr 192.168.8.106:6791
现在mon就加进去了
然后去写配置文件相关的信息即可,操作还是很便捷的,这个地方可以防止单mon的情况下的数据盘的损坏的情况,增加一点安全系数,当然最好是多主机的mon