前言通过yum安装指定的rpm包,这个一般是 yum –showduplicates list ceph | expand ,然后去通过yum安装指定的版本即可,这个在hammer下是没有问题的,但是在Jewel下进行安装的时候却出现了问题,我们来看下怎么解决这个问题的
实践过程我们需要安装 ceph-10.2.0-0.el7 这个版本的,根据之前的方法
12345678910111213141516171819[root@lab8106 ~]# yum install ceph-10.2.0-0.el7Loaded plugins: fastestmirror, langpacks, prioritiesbase | 3.6 kB 00:00:00 ceph | 2.9 kB 00:00:00 ceph-noarch | 2.9 kB 00:00:00 epel | 4.3 kB 00:00:00···Er ...
暂未分类
未读前言在某些场景下Ceph集群会出现stale的情况,也就是ceph集群PG的僵死状态,这个状态实际上是无法处理新的请求了,新的请求过来只会block,那么我们如何去恢复环境
实践过程首先模拟stale环境,这个比较好模拟
设置副本2,然后同时关闭两个OSD(不同故障域上),然后删除这两个OSD
集群这个时候就会出现stale的情况了,因为两份数据都丢了,在一些环境下,数据本身就是临时的或者不是那么重要的,比如存储日志,这样的环境下,只需要快速的恢复环境即可,而不担心数据的丢失
处理过程首先用ceph pg dump|grep stale 找出所有的stale的pg
然后用 ceph force_create_pg pg_id
如果做到这里,可以看到之前的stale的状态的PG,现在已经是creating状态的了,这个时候一个关键的步骤需要做下
就是重启整个集群的OSD,在重启完成了以后,集群的状态就会恢复正常了,也能够正常的写入新的数据了,对于老的数据,做下清理即可
变更记录
Why
Who
When
创建
武汉-运维-磨渣
2016-11-14
暂未分类
未读一、前言本章很简单,就是预估集群恢复的时间,这个地方是简单的通过计算来预估需要恢复的实际,动态的显示
二、代码12345678910111213141516171819202122232425262728293031323334353637#!/usr/bin/env python# -*- coding: UTF-8 -*-import osimport sysimport commandsimport jsondef main(): gettime()def conversecs(sec): d = sec/86400 h = sec%86400/3600 m = sec%3600/60 s = sec%60 return "remain time:%s day %s hour %s min %s sec" %(d,h,m,s)def gettime(): try: recover_time = commands.getoutput('timeout 10 ceph -s -f json 2& ...
这是一篇分享文,作者因为最近想深入研究下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 ...