文档章节

Ceph集群缩容及相关故障处理

西昆仑
 西昆仑
发布于 2016/09/23 09:29
字数 783
阅读 325
收藏 1

引言

由于目前机器比较紧张,需要将我集群中的一批机器提供给其他业务使用,这时问题来了,集群机器的退出意味着数据要重新分布,数据迁移的过程中比较容易出故障。

处理过程

处理测试POOL对应的机器

集群中有很多POOL, 有些POOL是客户数据,这非常重要;有些POOL是我测试用,这些POOL对应的OSD可以直接删除,即时集群报pg异常,也无需关心,在删除对应OSD后将对应POOL删除即可,相应的pg异常也消失。

注:为了避免关闭OSD的过程中发生数据迁移,请设置norecover标记。

ceph osd set norecover

删除对应主机上的所有OSD信息的命令如下:

killall -9 ceph-osd

for i in {108..119} 
do 
ceph osd out  osd.$i; 
ceph osd crush remove osd.$i; 
ceph auth del osd.$i;
ceph osd rm $i; 
ceph auth del osd.$i;
done


ceph osd crush remove hostname
removed item id -10 name 'hostname' from crush map
 

处理业务需要的POOL对应的机器

对于业务用到的POOL分布在了10台机器上,现在要从这10台机器中释放出五台,这需要涉及到数据迁移了。有三种办法进行处理。

方法一之设置out

将要退出的机器依次设置为out状态。一台机器做完后做另外一台,由系统负责将数据迁走;

方法二之设置权重

将要推出的机器权重调整为0,由系统负责将数据迁走;

方法三 构建新规则

  1. 构建新group,将要保留的机器放到新group下;
  2. 构建新crushrule, take from newgroup;
  3. 将业务pool的规则设置为new crush rule下;

这是最快的办法,只涉及到一次迁移,等待数据迁移完毕后,就可以将不需要的OSD关闭并移除了。

处理后碰到的问题

症状表现,在集群状态中显示少量PG状态异常。 active + remapped + backfilling active + remapped

[root@gnop029-ct-zhejiang_wenzhou-16-11 ~]# ceph -s
    cluster c6e7e7d9-2b91-4550-80b0-6fa46d0644f6
     health HEALTH_WARN
            2 pgs backfilling
            3 pgs stuck unclean
            recovery 24/2148593 objects misplaced (0.001%)
            norecover,noscrub,nodeep-scrub flag(s) set
     monmap e3: 3 mons at {a=101.71.4.11:6789/0,b=101.71.4.12:6789/0,c=101.71.4.13:6789/0}
            election epoch 446, quorum 0,1,2 a,b,c
     osdmap e69909: 120 osds: 120 up, 120 in; 3 remapped pgs
            flags norecover,noscrub,nodeep-scrub
      pgmap v8678900: 10256 pgs, 16 pools, 2763 GB data, 1047 kobjects
            7029 GB used, 197 TB / 214 TB avail
            24/2148593 objects misplaced (0.001%)
               10253 active+clean
                   2 active+remapped+backfilling
                   1 active+remapped

[root@ceph]# ceph pg dump_stuck unclean
ok
pg_stat	state	up	up_primary	acting	acting_primary
23.1c1	active+remapped+backfilling	[59,37]	59	[76,84]	76
23.23b	active+remapped	[35,7]	35	[82,119]	82
23.221	active+remapped+backfilling	[15,18]	15	[70,82]	70

后来我开启了scrub和deepscrub, 将所有pg扫描后就恢复为active + clean。

在发生数据迁移时,有时候某些osd会因为负载过高,导致osd进程退出,这是需要做两方面工作:

  1. 调低osd backfill的线程数量,降低osd工作负载;
  2. down掉的osd即时恢复,要不会有很多Pg状态异常,osd回复后这些异常的pg也会很快恢复正常;

© 著作权归作者所有

西昆仑

西昆仑

粉丝 137
博文 141
码字总数 102735
作品 0
南京
高级程序员
私信 提问
(三):C++分布式实时应用框架——系统管理模块

C++分布式实时应用框架——系统管理模块   上篇:(二): 基于ZeroMQ的实时通讯平台 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!...

smartguys
2017/11/22
0
0
玩转 Ceph 的正确姿势

玩转 Ceph 的正确姿势 本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势;在集群规模小的时候,Ceph 怎么玩都没问题;但集群大了(到PB级别),这些准则可是保证集群健康运行的不二法门...

张立达
2017/05/03
0
0
从传统运维到云运维演进历程之软件定义存储(二)

上回书说到一般企业使用Ceph会经历几个关卡:硬件选型 —— 部署调优—— 性能测试 架构灾备设计 —— 部分业务上线测试 —— 运行维护(故障处理、预案演练等)。 今天来重点讲下部署调优关...

Devin
2016/09/20
0
0
Openstack之Ceph集群操作

Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分: 1. 《Ceph简介》 2. 《Ceph集群操作》 3. 《Ceph块设备管理与Openstack配置》 4. 《深入Ceph》 5. 《ceph优化与性能...

hiubuntu
2016/12/01
0
0
云上 TiDB 管理利器,TiDB Operator 1.0 GA 发布

TiDB Operator 1.0 GA 发布,它是实现 TiDB 在 Kubernetes 上的部署和运维。 提供包括部署、升级、扩缩容、备份恢复、配置变更的 TiDB 全生命周期管理。借助 TiDB Operator,TiDB 可以无缝运...

afterer
08/01
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
37分钟前
10
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
50分钟前
645
22
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
今天
6
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
今天
5
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部