关于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,并承担原有工作。

相关推荐
大树8817 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠17 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质17 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工19 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智19 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_19 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉20 小时前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦21 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj21 小时前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei21 小时前
linux 系统目录详解
linux·运维·服务器