关于ceph osd auth keyring

概述

关于osd auth 认证

误删osd auth认证

如果在删除osd时,id指定错误,错误执行了ceph auth del osd.x,此时osd工作目录还在,osd重启会因为认证无法启动。只要重新添加该osd auth认证即可

bash 复制代码
ceph auth add osd.{osd-num} osd 'allow *' \
	mon 'allow profile osd' \
	mgr 'allow profile osd' \
	-i /var/lib/ceph/osd/ceph-{osd-num}/keyring

上述原理和命令对于各位运维来说应该非常熟悉,不算新鲜命令,不做展开。

关于osd重建的一些构想

上述命令从另一个角度,也可以理解为,为拥有完成结构的osd,添加auth认证,从而可以加入集群。

在ceph运维中最常见的一种场景:换盘重建

假设一个大规模集群,出现硬盘损坏,以往的方案:

  • 删除原有osd(down,out,del osd.id,auth 认证,crush结构,lvm,pv,vg等)
  • 物理更换硬盘
  • 用新硬盘进行prepare和activate等等

此步骤没有任何问题,确实可以完成硬盘重建。但对集群来说,pg状态经历了至少3次变化

  • osd out时,由于reweight的变化,osd会进行计算迁移
  • osd remove时,由于tree中weight变化,pg会计算迁移
  • 新osd进入时,pg会向新osd进行backfill(即使新osd.id与原先osd相同,上面的pg分布也会发生变化)

也就是说完全删除osd,再重新create的方法,会引起额外的pg迁移和恢复时间,且在集群规模很大,pg很多时,很多pg要重新参与计算分布

能否有一种方式优化呢?

显然可以,只要不进行out和删除osd的操作,保持osd tree结构没有发生过变化,就可以优化这个过程。

将旧盘拔下后,直接插上新盘。以一个init.conf(结构和ceph.conf类似,cluster为空或者补齐0)正常zap、prepare

bash 复制代码
ceph-volume lvm zap ......
ceph-volume lvm prepare --cluster init .......

挂载临时temp,

然后将旧的osd的几个配置文件恢复,分别是:

  • whoami(osd编号,手写就行)
  • keyring(auth认证,ceph auth get-or-create osd.${ID}获取,将集群中的auth认证写到文件,与上述误删过程恰好相反)
  • fsid(实际是osd的uuid,从旧的硬盘中获取,或者ceph osd dump获取)
  • ceph_fsid(集群的cluster_id从别的osd或者ceph.conf或者ceph-conf --lookup fsid获取)

恢复完成后,umount掉temp临时目录

进行activate激活即可,新硬盘会直接承担旧硬盘的osdid,并承担原有工作。

相关推荐
Decay__10 分钟前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比
运维·数据库·sql·mysql·架构
此生决int41 分钟前
Linux系列(08)——进程控制
linux·运维·驱动开发
BioTender1 小时前
Xaira 发布 X-Automate:将物理 AI 与智能体 AI 引入实验室自动化
运维·人工智能·自动化
Z21-X2 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
Decay__10 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
天远API15 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
Android系统攻城狮15 小时前
Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频
乐维_lwops16 小时前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
番茄啊17 小时前
linux 开启xftp连接
linux·运维·服务器