这是一篇分享文,作者因为最近想深入研究下ceph的cache pool,作者写的文章非常的好,这里先直接翻译这篇文章,然后再加入我自己的相关数据
blog原文作者想启动blog写下自己的Openstack和Ceph的相关经验,第一个话题就选择了 Ceph cache tiering , 作者的使用场景为短时间的虚拟机,用来跑测试的,这种场景他们准备用Nvme做一个缓冲池来加速的虚拟机
cache 相关的一些参数
123456target_max_bytestarget_max_objectscache_target_dirty_ratiocache_target_full_ratiocache_min_flush_agecache_min_evict_age
Jewel版本还新加入了一个参数
1cache_target_dirty_high_ratio
作者的想法是先把数据写入到缓冲池当中,等后面某个时刻再写入到真实的存储池的当中
Flushing vs. EvictingFlushing是将缓冲池中的数据刷到真实的存储池当中去,但是并不去删除缓冲池里面缓存的数据,只有clean的数据 ...
ceph Vol 45 Issue 11.unfound objects blocking cluster, need help!
Hi,
I have a production cluster on which 1 OSD on a failing disk was slowing the whole cluster down. I removed the OSD (osd.87) like usual in such case but this time it resulted in 17 unfound objects. I no longer have the files from osd.87. I was able to call “ceph pg PGID mark_unfound_lost delete” on 10 of those objects.
On the remaining objects 7 the command blocks. When I try to do “ceph pg PGID query” on this PG it also b ...
前言部署集群的时候权重是默认生成的,这个是根据磁盘大小分配的,我们有的时候需要去修改一下这个默认权重
修改如果统一的初始值,那么直接添加参数即可
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,这个可能我们平时感知不到这个有什么作用,大 ...