记一次Ceph pg unfound处理过程

运维 系统运维
今天检查ceph集群,发现有pg丢失,本文就给大家介绍一下解决方法。

[[379685]]

 今天检查ceph集群,发现有pg丢失,于是就有了本文~~~

1.查看集群状态

  1. [root@k8snode001 ~]# ceph health detail 
  2. HEALTH_ERR 1/973013 objects unfound (0.000%); 17 scrub errors; Possible data damage: 1 pg recovery_unfound, 8 pgs inconsistent, 1 pg repair; Degraded data redundancy: 1/2919039 objects degraded (0.000%), 1 pg degraded 
  3. OBJECT_UNFOUND 1/973013 objects unfound (0.000%) 
  4.     pg 2.2b has 1 unfound objects 
  5. OSD_SCRUB_ERRORS 17 scrub errors 
  6. PG_DAMAGED Possible data damage: 1 pg recovery_unfound, 8 pgs inconsistent, 1 pg repair 
  7.     pg 2.2b is active+recovery_unfound+degraded, acting [14,22,4], 1 unfound 
  8.     pg 2.44 is active+clean+inconsistent, acting [14,8,21] 
  9.     pg 2.73 is active+clean+inconsistent, acting [25,14,8] 
  10.     pg 2.80 is active+clean+scrubbing+deep+inconsistent+repair, acting [4,8,14] 
  11.     pg 2.83 is active+clean+inconsistent, acting [14,13,6] 
  12.     pg 2.ae is active+clean+inconsistent, acting [14,3,2] 
  13.     pg 2.c4 is active+clean+inconsistent, acting [8,21,14] 
  14.     pg 2.da is active+clean+inconsistent, acting [23,14,15] 
  15.     pg 2.fa is active+clean+inconsistent, acting [14,23,25] 
  16. PG_DEGRADED Degraded data redundancy: 1/2919039 objects degraded (0.000%), 1 pg degraded 
  17.     pg 2.2b is active+recovery_unfound+degraded, acting [14,22,4], 1 unfound 

 从输出发现pg 2.2b is active+recovery_unfound+degraded, acting [14,22,4], 1 unfound

现在我们来查看pg 2.2b,看看这个pg的想想信息。

  1. [root@k8snode001 ~]# ceph pg dump_json pools    |grep 2.2b 
  2. dumped all 
  3. 2.2b       2487                  1        1         0       1  9533198403 3048     3048                active+recovery_unfound+degraded 2020-07-23 08:56:07.669903  10373'5448370  10373:7312614  [14,22,4]         14  [14,22,4]             14  10371'5437258 2020-07-23 08:56:06.637012   10371'5437258 2020-07-23 08:56:06.637012             0 

 可以看到它现在只有一个副本

2.查看pg map

  1. [root@k8snode001 ~]# ceph pg map 2.2b 
  2. osdmap e10373 pg 2.2b (2.2b) -> up [14,22,4] acting [14,22,4] 

 从pg map可以看出,pg 2.2b分布到osd [14,22,4]上

3.查看存储池状态

  1. [root@k8snode001 ~]# ceph osd pool stats k8s-1 
  2. pool k8s-1 id 2 
  3.   1/1955664 objects degraded (0.000%) 
  4.   1/651888 objects unfound (0.000%) 
  5.   client io 271 KiB/s wr, 0 op/s rd, 52 op/s wr 
  6.  
  7. [root@k8snode001 ~]# ceph osd pool ls detail|grep k8s-1 
  8. pool 2 'k8s-1' replicated size 3 min_size 1 crush_rule 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 88 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd 

 4.尝试恢复pg 2.2b丢失地块

  1. [root@k8snode001 ~]# ceph pg repair 2.2b 

如果一直修复不成功,可以查看卡住PG的具体信息,主要关注recovery_state,命令如下

  1. [root@k8snode001 ~]# ceph pg 2.2b  query 
  2.     "...... 
  3.     "recovery_state": [ 
  4.         { 
  5.             "name""Started/Primary/Active"
  6.             "enter_time""2020-07-21 14:17:05.855923"
  7.             "might_have_unfound": [], 
  8.             "recovery_progress": { 
  9.                 "backfill_targets": [], 
  10.                 "waiting_on_backfill": [], 
  11.                 "last_backfill_started""MIN"
  12.                 "backfill_info": { 
  13.                     "begin""MIN"
  14.                     "end""MIN"
  15.                     "objects": [] 
  16.                 }, 
  17.                 "peer_backfill_info": [], 
  18.                 "backfills_in_flight": [], 
  19.                 "recovering": [], 
  20.                 "pg_backend": { 
  21.                     "pull_from_peer": [], 
  22.                     "pushing": [] 
  23.                 } 
  24.             }, 
  25.             "scrub": { 
  26.                 "scrubber.epoch_start""10370"
  27.                 "scrubber.active"false
  28.                 "scrubber.state""INACTIVE"
  29.                 "scrubber.start""MIN"
  30.                 "scrubber.end""MIN"
  31.                 "scrubber.max_end""MIN"
  32.                 "scrubber.subset_last_update""0'0"
  33.                 "scrubber.deep"false
  34.                 "scrubber.waiting_on_whom": [] 
  35.             } 
  36.         }, 
  37.         { 
  38.             "name""Started"
  39.             "enter_time""2020-07-21 14:17:04.814061" 
  40.         } 
  41.     ], 
  42.     "agent_state": {} 

 如果repair修复不了;两种解决方案,回退旧版或者直接删除

5.解决方案

  1. 回退旧版 
  2. [root@k8snode001 ~]# ceph pg  2.2b  mark_unfound_lost revert 
  3. 直接删除 
  4. [root@k8snode001 ~]# ceph pg  2.2b  mark_unfound_lost delete 

 6.验证

我这里直接删除了,然后ceph集群重建pg,稍等会再看,pg状态变为active+clean

  1. [root@k8snode001 ~]#  ceph pg  2.2b query 
  2.     "state""active+clean"
  3.     "snap_trimq""[]"
  4.     "snap_trimq_len": 0, 
  5.     "epoch": 11069, 
  6.     "up": [ 
  7.         12, 
  8.         22, 
  9.         4 
  10.     ], 

 再次查看集群状态

  1. [root@k8snode001 ~]# ceph health detail 
  2. HEALTH_OK 

 【编辑推荐】

 

责任编辑:姜华 来源: 今日头条
相关推荐

2022-06-01 06:17:42

微服务Kafka

2019-09-08 17:52:10

数据库log file sy等待事件

2019-08-26 09:50:09

2017-12-19 14:00:16

数据库MySQL死锁排查

2023-10-10 12:05:45

2021-08-19 09:50:53

Java内存泄漏

2021-11-23 21:21:07

线上排查服务

2011-08-08 13:31:44

数据分析数据仓库

2022-01-10 09:31:17

Jetty异步处理seriesbaid

2017-09-22 10:16:16

MySQL数据库用户数据

2021-11-11 16:14:04

Kubernetes

2021-12-06 17:21:05

异常报错故障

2009-09-24 17:11:53

Hibernate处理

2022-01-07 11:48:59

RabbitMQGolang 项目

2014-08-11 09:31:52

2017-07-07 16:07:41

2023-04-06 07:53:56

Redis连接问题K8s

2014-04-15 14:28:14

2010-06-02 18:00:05

Postfix邮件

2010-06-09 18:17:20

Postfix邮件
点赞
收藏

51CTO技术栈公众号