前言部署集群的时候权重是默认生成的,这个是根据磁盘大小分配的,我们有的时候需要去修改一下这个默认权重
修改如果统一的初始值,那么直接添加参数即可
1osd_crush_initial_weight
如果想自己添加算法,那么就根据下面的去做就可以了
centos+jewel修改:/usr/lib/ceph/ceph-osd-prestart.sh
1defaultweight=`df -P -k $data/ | tail -1 | awk '{ d= $2/107374182 ; r = sprintf("%.4f", d); print r }'`
修改这个地方的值就可以了
1defaultweight=`echo 2`
centos+hammer修改 /etc/init.d/ceph
1defaultweight="$(df -P -k $osd_data/. | tail -1 | awk '{ print sprint ...
ceph Vol 45 Issue 2CephFS: No space left on device
After upgrading to 10.2.3 we frequently see messages like
‘rm: cannot remove ‘…’: No space left on device
The folders we are trying to delete contain approx. 50K files 193 KB each.
The cluster state and storage available are both OK:
cluster 98d72518-6619-4b5c-b148-9a781ef13bcb health HEALTH_WARN mds0: Client XXX.XXX.XXX.XXX failing to respond to cache pressure mds0: Client XXX.XXX.XXX.XXX failing to respond ...
前言zabbix里面有个功能是自动发现,比如文件系统和网卡的获取的时候,因为预先无法知道这个网卡的名称,所以就有了这个自动发现的功能,这里我是因为要用到存储池的自动发现,所以需要对数据进行生成
实现我们看下原生的接口的数据类型:
12[root@lab8106 ~]# zabbix_get -s 127.0.0.1 -k "net.if.discovery"{"data":[{"{#IFNAME}":"enp3s0"},{"{#IFNAME}":"virbr0-nic"},{"{#IFNAME}":"docker0"},{"{#IFNAME}":"enp4s0"},{"{#IFNAME ...
前言本章介绍如何去自定义一个zabbix自动发现的整个流程
过程首先需要在模板当中创建一个自动发现的规则,这个地方只需要一个名称和一个键值,例如
名称:Ceph Cluster Pool Discovery
键值:ceph.pools
过滤器中间要添加你需要的用到的值宏我的数据是:
12[root@lab8106 ~]# zabbix_get -s 127.0.0.1 -k ceph.pools{"data":[{"{#POOLNAME}":"rbd"},{"{#POOLNAME}":"metedata"},{"{#POOLNAME}":"data"}]}
这里我的宏就是
1{#POOLNAME}
然后要创建一个监控项原型:也是一个名称和一个键值:
12- 名称:test on $1- ...
前言docker是一个管理工具,在操作系统之上提供了一个新的独立轻环境,好处是本地提供了一个基础镜像,然后基于镜像再运行环境,也可以把环境重新打包为镜像,管理起来类似于git,感觉非常的方便,并且能够做到一处提交,处处可以取到相同的环境,大大的减少了因为环境偏差造成的系统不稳定
目前有不少生成环境已经把ceph和docker结合在一起运行了,这个有的是确实能够理解docker的好处,也能够有技术力量去进行维护,这个地方相当于两套系统了,并且关于技术的传递也增加了难度,特别是一套系统是docker+ceph的环境,并且又出现相关人员离职的情况,新来的人如果不是技术很熟,之前的技术文档没有记录很全的话,再去运维这一套系统还是比较有难度的
本篇目的是记录一下docker与ceph的结合的方式,关于ceph和docker的分与合,只有做到能剥离的系统,才不会因为技术原因受限
实践配置docker的基础环境拉取基础镜像这个是拉取的灵雀云的docker仓库的centos
1docker pull index.alauda.cn/library/centos
启动docker进程,并且设置自启动
1 ...
暂未分类
未读前言首先来一段英文关于PG和PGP区别的解释:
PG = Placement GroupPGP = Placement Group for Placement purpose
pg_num = number of placement groups mapped to an OSDWhen pg_num is increased for any pool, every PG of this pool splits into half, but they all remain mapped to their parent OSD.Until this time, Ceph does not start rebalancing. Now, when you increase the pgp_num value for the same pool, PGs start to migrate from the parent to some other OSD, and cluster rebalancing starts. This is how PGP p ...
暂未分类
未读前言对于IPV6实在是非常的陌生,所以本篇开始会讲一下最基本的网络配置,首先让网络能通起来,最开始就是因为不熟悉IPV6,而直接使用了link local地址,造成了mon部署的时候进程无法绑定到IP,从而端口没有启动,这个是在ceph社区群友 ceph-长沙-柠檬 同学的帮助下才发现问题的
IPV6是会有个link local地址的,在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳。所以出现Link Local地址唯一标识一个节点。在本地链路看到下一跳都是对端的Link Local地址。这个地址一般是以fe80开头的,子网掩码为64,这个地方需要给机器配置一个唯一的全局单播地址
However, with IPv6, all (IPv6) interfaces will have a link local address. This address is intended to allow communications over the attached links and so is defined to be usable only on that li ...
前言之前跟一个朋友沟通一个其他的问题的时候,发现了有一个参数 mon osd down out subtree limit 一直没有接触到,看了一下这个参数还是很有作用的,本篇将讲述这个参数的作用和使用的场景
测试环境准备首先配置一个集群环境,配置基本参数
1mon_osd_down_out_interval = 20
调整这个参数为20s,默认为300s,默认一个osd,down超过300s就会标记为out,然后触发迁移,这个是为了方便尽快看到测试的效果,很多测试都是可以这样缩短测试周期的
本次测试关心的是这个参数 mon osd down out subtree limit参数,那么这个参数做什么用的,我们来看看
12[root@lab8106 ceph]# ceph --show-config|grep mon_osd_down_out_subtree_limitmon_osd_down_out_subtree_limit = rack
首先解释下这个参数是做什么的,这个是控制标记为out的最小子树(bucket),默认的这个为rack,这个可能我们平时感知不到这个有什么作用,大 ...
前言这里有个条件,系统环境是Centos 7 ,Ceph 的版本为Jewel版本,因为这个组合下是由systemctl来进行服务控制的,所以需要做稍微的改动即可实现
准备工作部署mon的时候需要修改这个几个文件
1234/usr/lib/systemd/system/ceph-mon@.service/usr/lib/systemd/system/ceph-create-keys@.service/usr/lib/systemd/system/ceph-osd@.service/usr/lib/systemd/system/ceph-mds@.service
将 Environment=CLUSTER=ceph 改成 Environment=CLUSTER=myceph 后面的myceph可以为你自定义的名称
简单的创建过程创建mon
1ceph-deploy --cluster myceph mon create lab8107
获取部署密钥
1ceph-deploy --cluster myceph gatherkeys lab8107 ...
前言因为项目上的需要,需要用到php,一般来说,用默认的版本和配置就可以满足大多数的场景,因为需要加入多线程,所以需要自己编译一个包
一般来说,发行的包的版本的配置选项和代码都是最稳定的,所以在大多数情况下,我都不会直接去拿原始的源码做编译,这里我的经验是用别人发布版本的源码包,然后根据自己的需要,做修改,然后打包,这次的处理方法还是一样
获取源码地址:
1https://uk.repo.webtatic.com/yum/el7/SRPMS/RPMS/
这个是webtatic发行的php版本,做了一些修改和优化
选择需要的版本
1[root@lab8106 myphp]# wget https://uk.repo.webtatic.com/yum/el7/SRPMS/RPMS/php56w-5.6.26-1.w7.src.rpm
解压安装包
1[root@lab8106 myphp]# rpm2cpio php56w-5.6.26-1.w7.src.rpm |cpio -div
解压完成了后,当前目录下面会有很多文件修改当前目录下面的php56.spec在编译相关的configure后 ...