个人技术分享

ceph osd相关

概述

本文主要介绍ceph osd相关的一些概念。

osd 挂载目录

在osd启动前,需要读一些数据用于引导,校验等等。在使用硬盘创建osd时,经常能看到osd会预留一部分空间(ceph-disk版本为盘分区类似/dev/sdb1,ceph-volume版本为temp),并使用操作系统的本地文件系统进行挂载。

一般一个osd挂载目录中都有以下几个内容。

  • block -> :指向集群的data设备
  • db -> : 指向集群的db设备
  • db_wal -> :指向集群的wal设备
  • type :标识使用的存储引擎类型(filestore还是bluestore)
  • magic:检验数据,用于验证该osd能否被当前的ceph软件识别,同时也用来校验引导数据
  • whoami :指向osd.id。一般在拿到某个硬盘,或者osd未启动时,检查该数值判断该盘原来用于哪个osd
  • ceph_fsid:集群的id。
  • fsid:osd自身的uuid。

osd的通信

  • public:用于客户端和osd之前通信
  • cluster:用于osd内部通信,写副本,数据恢复,重平衡等
  • heartbeat:用于osd之间的通信链路检测。目前,为了保证能够检测到所有网络层面的通信故障,heartbeat会同时使用public和cluster来进行通信