Planet Ceph

Aggregated news from external sources

  • December 18, 2018
    处理ceph incompelete的经验

    前言 最近已经见到几个环境出现过incompelete了,这个在很久以前Jewel正在合入mark-complete工具的时候就有做过类似的处理,但是随着处理的环境越来越多,这个地方还是有些需要注意的,本篇是写一些需要注意的点 一般来说是环境有多个机器同时坏盘或者掉电,或者掉主机引起的 处理流程 拿到环境第一时间是对环境标记noout,这个操作是为了防止集群的环境反复震荡,标记noout没有osd标记为out的情况下,只是pg状态变化,实际数据并不进行迁移 把能够启动的osd都启动起来,直到没有能启动的osd了,如果有能力处理的话,尽量把osd拉起来,如果是硬盘损坏掉了,确定无法修复了,那么就当这个osd无法救回来了,这个步骤里面是要尽最大努力把osd拉起来 这里面还有一部分情况是osd启动不起来,但是数据目录是可以访问的,这个地方就把这种盘先保留好,一定不要推掉了,很多运维上去看盘坏了就重新创建osd,这种推掉osd的操作建议只在active+clean的时候才做,否则的话,pg状态不对,又把osd推掉了,数据有比较大的概率丢失 在以上操作做完以后,开始处理异常的pg,处理的时候,首先把异常的pg的info全部倒好备份一下,还把pg分布保存下 ceph pg 1.4 query > 1.4queryceph pg dump|grep incom > pgincom.info 全部保留一份,通过这个信息能够分析出数据的完整性和数据在哪里,这个一定要保留好原始版本,这个是有可能在后面做一些操作后就变更了,造成你不知道去哪里找数据 一部分情况下,根据query的信息提示,会告诉你 lost掉某个盘,可能让它恢复,这个操作的时候也是需要检查下,这个pg的数据是不是在当前环境下面有地方有完整的数据,确定有的话再根据提示进行lost的操作,如果还不放心,或者更稳妥的话,这个时候就需要备份pg数据了,这里就有个问题了,在做系统规划的时候,系统盘要尽量大点,这个时候就可以用来保存pg导出的数据了,如果是filestore,容量不够还可以拿osd的目录做临时存储,如果是bluestore,就只能拿本地盘做临时存储了 做完上面的标记和备份的操作后,有一部分的pg可能恢复正常了,然后还有一部分恢复不了正常,这个时候就需要根据上面保存好的query的信息里面拿到pg的数据在哪个osd上面,注意这个时候当前的query是可能查不到数据在哪里的,这个时候会出现提示数据在osd.1,osd.2,osd.3实际数据在osd.8的情况,并且可能完全没地方知道是在osd.8的,这个信息是存储在最开始版本的query里面的,所以在处理前,一定备份好信息,备份好数据 这个时候就开始把pg的数据导入到主osd,导入以后就可以标记mark-complete了,然后拉起osd,然后看下处理的这个pg的状态 总结 在处理故障过程中,首先要保证能把能够拉起来的osd尽量全部拉起来,这个操作做好了可以省掉很多工作,pg是交叉映射的,有的时候正好交叉的osd全down了,所以能拉起来一个,这个pg也是可以状态恢复的 在所有操作前都是要进行数据备份的,这样即使出了问题,数据在都可以导入,导出的数据是需要检查下对象数目的,这个在导出前可以用ceph-object-tool做list操作检查pg对象的个数是否跟pg dump里面的一致的,通过大小也可以大致判断,这个在L版本的ceph做rm pg操作的时候,是有一个export-remove的命令的,这个把rm变成了mv操作,安全性比以前要好很多,防止手抖删错了,可以再导入 总之在数据处理过程中要小心,操作前备份好,操作过程每一步进行命令反馈确认,也就是你执行了命令应该是什么结果,这个要提前有分析,一旦产生偏差的时候,就要去分析了 本篇是操作上的建议,并没有具体命令,这个需要自己在实际操作过程中体会了,当然生产环境没那么多练手的机会,那么就尝试下对测试环境多进行破坏后进行恢复了,尽量不要直接推掉测试环境,每一次的问题处理都是为生产的处理做好储备工作 变更记录 Why Who When 创建 武汉-运维-磨渣 2018-12-19 Source: zphj1987@gmail (处理ceph incompelete的经验)

  • November 21, 2018
    The Mustang Rides Again

    Revisiting Applied Micro’s Mustang two years later, we learned that a few things have changed, and use three of them to build a test storage cluster to try Ceph on ARM — doing a little benchmarking while we are at it.  A New Breed A newer revision of the Mustang EVK X-Gene 1 development board …Read more

  • November 13, 2018
    OpenStack Summit Berlin: Distributed Hyperconvergence Pushing Openstack and Ceph to the Edge

    Date: 13/11/18 Video: Coming soon… Source: Sebastian Han (OpenStack Summit Berlin: Distributed Hyperconvergence Pushing Openstack and Ceph to the Edge)

  • November 5, 2018
    Ceph meetup Paris

    My latest presentation of cn (ceph nano) that I gave at the French Ceph Meetup in Paris. Source: Sebastian Han (Ceph meetup Paris)

  • August 31, 2018
    mountpoint presentation of Ceph Nano

    Date: 28/08/18 Source: Sebastian Han (mountpoint presentation of Ceph Nano)

  • August 18, 2018
    cephfs根据存储池显示df容量

    前言 如果用cephfs比较多,应该都知道,在cephfs的客户端进行mount以后,看到的容量显示的是集群的总的容量,也就是你的总的磁盘空间是多少这个地方显示的就是多少 这个一直都是这样显示的,我们之前在hammer版本的时候,阿茂和大黄一起在公司内部实现了这个功能,社区会慢慢的集成一些类似的面向面向商业用户的需求 社区已经开发了一个版本,接口都做的差不多了,那么稍微改改,就能实现想要的需求的 本篇内的改动是基于内核客户端代码的改动,改动很小,应该能够看的懂 改动过程 首先找到这个补丁 Improve accuracy of statfs reporting for Ceph filesystems comprising exactly one data pool. In this case, the Ceph monitor can now report the space usage for the single data pool instead of the global data for the entire Ceph cluster. Include support for this message in mon_client and …Read more

  • August 8, 2018
    openATTIC 3.7.0 has been released

    We’re happy to announce version 3.7.0 of openATTIC! Version 3.7.0 is the first bugfix release of the 3.7 stable branch, containing fixes for multiple issues that were mainly reported by users. There has been an issue with self-signed certificates in combination with the RGW proxy which is now configurable. We also improved the openATTIC user …Read more

  • July 17, 2018
    快速构建ceph可视化监控系统

    前言 ceph的可视化方案很多,本篇介绍的是比较简单的一种方式,并且对包都进行了二次封装,所以能够在极短的时间内构建出一个可视化的监控系统 本系统组件如下: ceph-jewel版本 ceph_exporter的jewel版本 prometheus的2.3.2版本 grafana的grafana-5.2.1版本 Ceph grafana的插件- Clusterby Cristian Calin 适配的系统为centos7 资源如下: http://static.zybuluo.com/zphj1987/jiwx305b8q1hwc5uulo0z7ft/ceph_exporter-2.0.0-1.x86_64.rpmhttp://static.zybuluo.com/zphj1987/1nu2k4cpcery94q2re3u6s1t/ceph-cluster_rev1.jsonhttp://static.zybuluo.com/zphj1987/7ro7up6r03kx52rkwy1qjuwm/prometheus-2.3.2-1.x86_64.rpmhttp://7xweck.com1.z0.glb.clouddn.com/grafana-5.2.1-1.x86_64.rpm 以上资源均可以直接用wget进行下载,然后直接安装 监控的架构介绍 通过ceph_exporter抓取的ceph相关的数据并且在本地监听端口9128端口 prometheus抓取ceph_exporter的9128的端口的数据存储在本地的/var/lib/prometheus/目录下面 grafana抓取prometheus的数据进行渲染成web页面 页面的模板就是使用的grafana的ceph模板插件 那么我们就根据上面的架构去一步步的把系统配置起来 配置监控系统 安装ceph_exporter [root@lab101 install]# wget http://static.zybuluo.com/zphj1987/jiwx305b8q1hwc5uulo0z7ft/ceph_exporter-2.0.0-1.x86_64.rpm[root@lab101 install]# rpm -qpl ceph_exporter-2.0.0-1.x86_64.rpm /usr/bin/ceph_exporter/usr/lib/systemd/system/ceph_exporter.service[root@lab101 install]# rpm -ivh ceph_exporter-2.0.0-1.x86_64.rpm Preparing… ################################# [100%]Updating / installing… 1:ceph_exporter-2:2.0.0-1 ################################# [100%][root@lab101 install]# systemctl start ceph_exporter[root@lab101 install]# systemctl enable ceph_exporter[root@lab101 install]# netstat …Read more

  • June 27, 2018
    利用s3-test进行ceph的接口兼容性测试

    前言 ceph的rgw能够提供一个兼容性的s3的接口,既然是兼容性,当然不可能是所有接口都会兼容,那么我们需要有一个工具来进行接口的验证以及测试,这个在其他测试工具里面有类似的posix接口验证工具,这类的工具就是跑测试用例,来输出通过或者不通过的列表 用此类的工具有个好的地方就是,能够对接口进行验证,来避免版本的更新带来的接口破坏 安装 直接对官方的分支进行clone下来,总文件数不多,下载很快 [root@lab101 s3]# git clone https://github.com/ceph/s3-tests.git[root@lab101 s3]# cd s3-tests/ 这个地方注意下有版本之分,测试的时候需要用对应版本,这里我们测试的jewel版本就切换到jewel的分支(关键步骤) [root@lab101 s3-tests]# git branch -a[root@lab101 s3-tests]# git checkout -b jewel remotes/origin/ceph-jewel[root@lab101 s3-tests]# ./bootstrap 进入到目录当中执行 ./bootstrap进行初始化相关的工作,这个是下载一些相关的库和软件包,并且创建了一个python的虚拟环境,如果从其他地方拷贝过来的代码最好是删除掉python虚拟环境,让程序自己去重新创建一套环境 执行完了以后就是创建测试配置文件test.conf [DEFAULT]## this section is just used as default for all the “s3 *”## sections, you can place these variables also directly there## replace with e.g. …Read more

  • June 11, 2018
    ceph erasure默认的min_size分析

    引言 最近接触了两个集群都使用到了erasure code,一个集群是hammer版本的,一个环境是luminous版本的,两个环境都出现了incomplete,触发的原因有类似的地方,都是有osd的离线的问题 准备在本地环境进行复验的时候,发现了一个跟之前接触的erasure不同的地方,这里做个记录,以防后面出现同样的问题 分析过程 准备了一个luminous的集群,使用默认的erasure的profile进行了创建存储池的相关工作 [root@lab102 ~]# ceph osd erasure-code-profile get defaultk=2m=1plugin=jerasuretechnique=reed_sol_van 默认的是2+1的纠删码的配置,创建完了以后存储池的配置是这样的 [root@lab102 ~]# ceph osd dump|grep poolpool 1 ‘rbd’ erasure size 3 min_size 3 crush_rule 2 object_hash rjenkins pg_num 256 pgp_num 256 last_change 41 flags hashpspool stripe_width 8192 application rbdrc 然后停止了一个osd以后,状态变成了这样的 [root@lab102 ~]# ceph -s cluster: id: 9ec7768a-5e7c-4f8e-8a85-89895e338cca health: HEALTH_WARN 1 osds …Read more

  • May 30, 2018
    Storage for Data Platforms in 10 minutes

    Kyle Bader and I teamed up to deliver a quick (and hopefully painless) review of what types of storage your Big Data strategy needs to succeed alongside the better-understood (and more traditional) existing approaches to structured data. Data platform engineers need to receive support from both the Compute and the Storage infrastructure teams to deliver. …Read more

  • May 29, 2018
    cephfs元数据池故障的恢复

    前言 cephfs 在L版本已经比较稳定了,这个稳定的意义个人觉得是在其故障恢复方面的成熟,一个文件系统可恢复是其稳定必须具备的属性,本篇就是根据官网的文档来实践下这个恢复的过程 实践过程 部署一个ceph Luminous集群 [root@lab102 ~]# ceph -vceph version 12.2.5 (cad919881333ac92274171586c827e01f554a70a) luminous (stable) 创建filestore ceph-deploy osd create lab102 –filestore –data /dev/sdb1 –journal /dev/sdb2 这里想用filestore进行测试就按上面的方法去创建osd即可 传入测试数据 doc pic vidio这里提供下载链接 链接:https://pan.baidu.com/s/19tlFi4butA2WjnPAdNEMwg 密码:ugjo 这个是网上下载的模板的数据,方便进行真实的文件的模拟,dd产生的是空文件,有的时候会影响到测试 需要更多的测试文档推荐可以从下面网站下载 视频下载: https://videos.pexels.com/popular-videos 图片下载: https://www.pexels.com/ 文档下载: http://office.mmais.com.cn/Template/Home.shtml 元数据模拟故障 跟元数据相关的故障无非就是mds无法启动,或者元数据pg损坏了,这里我们模拟的比较极端的情况,把metadata的元数据对象全部清空掉,这个基本能覆盖到最严重的故障了,数据的损坏不在元数据损坏的范畴 清空元数据存储池 for object in `rados -p metadata ls`;do rados -p metadata rm $object;done …Read more

Careers