ceph集群故障运维--持续更新
一.PG处于异常状态active+undersized+degraded
部署环境: 自己搭建的3节点集群,集群共5个OSD,部署Ceph的RadosGW的服务时,副本默认设置为3,集群存放数据量少。集群状态处于如下,无法自己恢复:
[root@k8s-01 ceph]# ceph -s
cluster:
id: dd1a1ab2-0f34-4936-bc09-87bd40ef5ca0
health: HEALTH_WARN
Degraded data redundancy: 183/4019 objects degraded (4.553%), 15 pgs degraded, 16 pgs undersized
services:
mon: 3 daemons, quorum k8s-01,k8s-02,k8s-03
mgr: k8s-01(active)
mds: cephfs-2/2/2 up {0=k8s-01=up:active,1=k8s-03=up:active}, 1 up:standby
osd: 5 osds: 5 up, 5 in
rgw: 3 daemons active
data:
pools: 6 pools, 288 pgs
objects: 1.92 k objects, 1020 MiB
usage: 7.5 GiB used, 342 GiB / 350 GiB avail
pgs: 183/4019 objects degraded (4.553%)
272 active+clean
15 active+undersized+degraded
1 active+undersized
分析上面两个状态显示的具体含义:
undersized
PG当前的Acting Set小于存储池副本数degraded
降级状态,Peering完成后,PG检测到任意一个PG实例存在不一致(需要被同步/修复)的对象,或者当前ActingSet小于存储池副本数。
以我们的集群为例说明,这个状态降级的集群可以正常读写数据,undersized是当前存活的PG副本数为2,小于副本数3.将其做此标记,表明存数据副本数不足。
针对我们的集群,我们查看下集群的详细信息:
[root@k8s-01 ceph]# ceph health detail
HEALTH_WARN Degraded data redundancy: 183/4017 objects degraded (4.556%), 15 pgs degraded, 16 pgs undersized
PG_DEGRADED Degraded data redundancy: 183/4017 objects degraded (4.556%), 15 pgs degraded, 16 pgs undersized
pg 4.0 is stuck undersized for 782.927699, current state active+undersized+degraded, last acting [0,3]
pg 4.1 is stuck undersized for 782.930776, current state active+undersized+degraded, last acting [1,4]
pg 4.2 is stuck undersized for 782.930141, current state active+undersized, last acting [1,3]
pg 4.3 is stuck undersized for 782.929428, current state active+undersized+degraded, last acting [0,4]
pg 4.4 is stuck undersized for 782.931202, current state active+undersized+degraded, last acting [1,3]
pg 4.5 is stuck undersized for 782.931627, current state active+undersized+degraded, last acting [3,0]
pg 4.6 is stuck undersized for 782.931584, current state active+undersized+degraded, last acting [0,4]
pg 4.7 is stuck undersized for 782.928895, current state active+undersized+degraded, last acting [1,3]
pg 6.0 is stuck undersized for 766.814237, current state active+undersized+degraded, last acting [0,4]
pg 6.1 is stuck undersized for 766.818367, current state active+undersized+degraded, last acting [1,3]
pg 6.2 is stuck undersized for 766.819767, current state active+undersized+degraded, last acting [1,3]
pg 6.3 is stuck undersized for 766.822230, current state active+undersized+degraded, last acting [4,2]
pg 6.4 is stuck undersized for 766.821061, current state active+undersized+degraded, last acting [1,4]
pg 6.5 is stuck undersized for 766.826778, current state active+undersized+degraded, last acting [3,0]
pg 6.6 is stuck undersized for 766.818134, current state active+undersized+degraded, last acting [1,3]
pg 6.7 is stuck undersized for 766.826165, current state active+undersized+degraded, last acting [3,2]
[root@k8s-01 ceph]#
分析:这两种状态一般同时出现,表明有些PG没有满足设定的replicas数量要求。由上面的信息我们分析PG 4.0显示只有两个拷贝,分别在OSD.0和OSD.3上,分析其原因可能是我们的集群副本数无法满足。我们的集群主机是以host为故障域,所以我们设置副本数为3时,需要保证每个节点都必须存在OSD,结果查看集群的osd tree发现只有两个节点有OSD,另外一个节点不存在OSD,这里我们设置存储池的副本为2,查看集群是否正常。
# 查看ceph的OSD磁盘大小
[root@k8s-01 ceph]# ceph osd df
ID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS
0 hdd 0.09769 1.00000 100 GiB 1.5 GiB 98 GiB 1.50 0.70 118
1 hdd 0.09769 1.00000 100 GiB 1.4 GiB 99 GiB 1.42 0.66 123
2 hdd 0.04880 1.00000 50 GiB 1.5 GiB 48 GiB 3.00 1.40 47
3 hdd 0.04880 1.00000 50 GiB 1.6 GiB 48 GiB 3.14 1.46 151
4 hdd 0.04880 1.00000 50 GiB 1.5 GiB 48 GiB 3.04 1.42 137
TOTAL 350 GiB 7.5 GiB 342 GiB 2.14
MIN/MAX VAR: 0.66/1.46 STDDEV: 0.83
# 查看ceph的OSD tree
[root@k8s-01 ceph]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.34177 root default
-3 0.24417 host k8s-01
0 hdd 0.09769 osd.0 up 1.00000 1.00000
1 hdd 0.09769 osd.1 up 1.00000 1.00000
2 hdd 0.04880 osd.2 up 1.00000 1.00000
-5 0.09760 host k8s-02
3 hdd 0.04880 osd.3 up 1.00000 1.00000
4 hdd 0.04880 osd.4 up 1.00000 1.00000
- 设置存储池的副本数为2
[root@k8s-01 ceph]# ceph osd pool set default.rgw.log size 2
[root@k8s-01 ceph]# ceph osd dump
epoch 130
fsid dd1a1ab2-0f34-4936-bc09-87bd40ef5ca0
created 2019-06-03 19:22:38.483687
modified 2019-07-08 18:14:50.342952
flags sortbitwise,recovery_deletes,purged_snapdirs
crush_version 11
full_ratio 0.95
backfillfull_ratio 0.9
nearfull_ratio 0.85
require_min_compat_client jewel
min_compat_client jewel
require_osd_release mimic
pool 1 'datapool' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 48 flags hashpspool stripe_width 0 application cephfs
pool 2 'metapool' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 52 flags hashpspool stripe_width 0 application cephfs
pool 3 '.rgw.root' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 121 owner 18446744073709551615 flags hashpspool stripe_width 0 application rgw
pool 4 'default.rgw.control' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 127 flags hashpspool stripe_width 0 application rgw
pool 5 'default.rgw.meta' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 126 flags hashpspool stripe_width 0 application rgw
pool 6 'default.rgw.log' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 129 owner 18446744073709551615 flags hashpspool stripe_width 0 application rgw
max_osd 5
- 查看集群状态
[root@k8s-01 ceph]# ceph -s
cluster:
id: dd1a1ab2-0f34-4936-bc09-87bd40ef5ca0
health: HEALTH_OK
services:
mon: 3 daemons, quorum k8s-01,k8s-02,k8s-03
mgr: k8s-01(active)
mds: cephfs-2/2/2 up {0=k8s-01=up:active,1=k8s-03=up:active}, 1 up:standby
osd: 5 osds: 5 up, 5 in
rgw: 3 daemons active
data:
pools: 6 pools, 288 pgs
objects: 1.92 k objects, 1019 MiB
usage: 7.5 GiB used, 342 GiB / 350 GiB avail
pgs: 288 active+clean
io:
client: 339 B/s rd, 11 KiB/s wr, 0 op/s rd, 1 op/s wr
至此我们发现集群状态已经恢复。
二.cephfs挂载点执行df -h卡死
- 查看卡死的客户端ID
[root@k8s-02 ~]# ceph daemon mds.k8s-02 session ls
{
"id": 44272,
"num_leases": 0,
"num_caps": 1,
"state": "open",
"request_load_avg": 0,
"uptime": 230.958432,
"replay_requests": 0,
"completed_requests": 0,
"reconnecting": false,
"inst": "client.44272 192.168.50.11:0/2167123153",
"client_metadata": {
"features": "00000000000001ff",
"ceph_sha1": "cbff874f9007f1869bfd3821b7e33b2a6ffd4988",
"ceph_version": "ceph version 13.2.5 (cbff874f9007f1869bfd3821b7e33b2a6ffd4988) mimic (stable)",
"entity_id": "admin",
"hostname": "k8s-02",
"mount_point": "/mnt/ceph",
"pid": "1904636",
- 执行evict
# 这里evict后面是客户端的ID
[root@k8s-02 ~]# cep daemon mds.k8s-02 session evict 44272
- umount -l 卡死的挂载点
[root@k8s-02 ~]# umount -l /mnt/ceph
[root@k8s-02 ~]# ceph-fuse /mnt/ceph
ceph集群故障运维--持续更新的更多相关文章
- vivo大规模 Kubernetes 集群自动化运维实践
作者:vivo 互联网服务器团队-Zhang Rong 一.背景 随着vivo业务迁移到K8s的增长,我们需要将K8s部署到多个数据中心.如何高效.可靠的在数据中心管理多个大规模的K8s集群是我们面临 ...
- hadoop记录-hadoop集群日常运维命令
hadoop集群日常运维命令 #1.namenode hadoop namenode -format #格式化,慎用 su hdfs hadoop-daemon.sh start namenode h ...
- Ceph 存储集群-低级运维
低级集群运维包括启动.停止.重启集群内的某个具体守护进程:更改某守护进程或子系统配置:增加或拆除守护进程.低级运维还经常遇到扩展.缩减 Ceph 集群,以及更换老旧.或损坏的硬件. 一.增加/删除 O ...
- KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障
案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...
- Hadoop集群日常运维
(一)备份namenode的元数据 namenode中的元数据非常重要,如丢失或者损坏,则整个系统无法使用.因此应该经常对元数据进行备份,最好是异地备份. 1.将元数据复制到远程站点 (1)以下代码将 ...
- es集群数据库~运维相关
一 数据同步方案 1 ES-JDBC 不能实现删除同步操作.MYSQL如果删除,ES不会删除 2 logstash-input-jdbc 能实现insert update,但是仍然不能实现删除 ...
- Hadoop集群日常运维 分类: A1_HADOOP 2015-03-01 21:26 502人阅读 评论(0) 收藏
(一)备份namenode的元数据 namenode中的元数据非常重要,如丢失或者损坏,则整个系统无法使用.因此应该经常对元数据进行备份,最好是异地备份. 1.将元数据复制到远程站点 (1)以下代码将 ...
- k8s集群管理注意要点【持续更新】
1.编写pod yaml文件时绑定调度标签,必须要给指定节点绑定标签,否则无法调度到指定节点上,报错: Events: Type Reason Age From Message ---- ------ ...
- Ceph 集群整体迁移方案(转)
场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证 ...
- [自动化]基于kolla-ceph的自动化部署ceph集群
kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...
随机推荐
- docker报错 ERROR: Service 'workspace' failed to build: ERROR: Service 'php-fpm' failed to build:
在 Windows 系统中使用 Laradock 搭建基于 Docker 的 PHP 开发环境 执行命令 docker-compose up nginx mysql redis 执行过程中出现错误 报 ...
- matplotlib -- 绘图操作 -- 数据分析三剑客
博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jup ...
- Unity开发Hololens2—环境配置
博客地址:https://www.cnblogs.com/zylyehuo/ 配置如下: win11 专业版 Unity2018.4.26f1 / 2019.4.11f1 Hololens2 VS20 ...
- 支持VS2022的包发布工具NuPack 2022发布
我们很高兴地宣布 NuPack 2022 正式发布!这是一个开源项目,旨在简化 .NET 开发中的 NuGet 包发布流程. NuPack 是什么? NuPack 是一个轻量级工具,VS扩展,它可以帮 ...
- 【Linux】3.8 Linux磁盘分区、挂载
Linux磁盘分区.挂载 1. 分区方式 mbr分区 最多支持四个主分区 系统只能安装在主分区 扩展分区要占一个主分区 MBR最大只支持2TB,但拥有最好的兼容性 gpt分区 支持无限多个主分区(但操 ...
- 什么是 Gork ?
Grok 是埃隆·马斯克旗下的人工智能公司 xAI 的开发的一系列大型语言模型 (LLMs)产品,包括Grok 1.Grok 2和即将发布的Grok 3. 受<银河系漫游指南>的启发,Gr ...
- 🎀SQL注入拦截工具-动态order by
简介 业务场景经常会存在动态order by 入参情况,在处理动态 order by 参数时,需要防止SQL注入攻击.SQL注入是一种常见的安全漏洞,攻击者可以通过这种手段操纵查询来执行恶意代码. 措 ...
- 墨刀上线高级交互功能,能否超越Axure?
引言 近期,国内主流原型设计工具墨刀推出了"变量.条件判断.函数"等功能,立刻在交互设计师与资深产品经理群体中引起热议.作为国产轻量级原型设计工具的龙头代表,墨刀早已俘获了中小团队 ...
- 开发者专用部署工具PasteSpider的V5正式版发布啦!(202504月版),更新说明一览
PasteSpider是一款以开发者角度设计的部署工具,支持把你的项目部署到Windows或者Linux服务器,支持5大模式Windows(IIS/Service),Linux(systemd),Do ...
- Sentinel——控制台使用
简介 官网:https://sentinelguard.io/ 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 是面向分布式.多语言异构化服务架构的流量治理组件,主要以流量为 ...