「CEPH」- 运维管理:OSD

问题描述

该笔记将记录:在 Ceph Cluster 中,如何对 OSD 进行管理,以及相关问题的解决方案;

解决方案

OSD 维护是 Ceph Cluster 维护的常见任务;

增加 OSD 实例(增)

添加 OSD 实例

Ceph Documentation/OSD Service/CREATING NEW OSDS

# Tell Ceph to consume any available and unused storage device:
ceph orch apply osd --all-available-devices

# Create an OSD from a specific device on a specific host:
ceph orch daemon add osd *<host>*:*<device-path>*

# ceph osd tree

通过标志位,控制 OSD 行为

noout:该标志位将使 Ceph 集群不会将任何 OSD 标记为 out,无论其实际状态如何。这将会把所有的 OSD 保留在 Ceph 集群中;
nodown:该标志位将使得 Ceph 集群不会将任何 OSD 标记为 down,无论其实际状态如何。这将会使集群中的所有 OSD 保持 UP 状态,而不会是 DOWN 状态;
noup:该标志位将使得 Ceph 集群不会将任何 DOWN OSD 标记为 UP 状态。这样,任何被标记为 DOWN 的 OSD 都将只有在该标志位被清除以后,才会被标记为 UP。该标志位也会被用于新加入集群中的 OSD;
noin:该标志位将使得 Ceph 集群不允许任何新的 OSD 加入集群。这在需要一次性加入多个 OSD 到集群中而不想它们自动地被加入集群时非常有用;
norecover:该标志位将使得 Ceph 集群不做集群恢复(cluster recovery);
nobackfil1:该标志位将使得 Ceph 集群不做数据回填 (backfilling)。这在一次性加入多个 OSD 但是不想 Ceph 自动将数据分布到它们上时会非常有用;
norebalance:该标志位将使得 Ceph 集群不做任何集群再平衡(cluster rebalancing );
noscrub:该标志位将使得 Ceph 集群不做 OSD 清理 (scrubbing);
nodeep-scrub:该标志位将使得 Ceph 不做 OSD 深度清理(deep scrubbing );
notieragent:该标志位将禁用缓存分层代理 (cache pool tiering agent);

# ceph osd set noout
# ceph osd set nodown

# ceph osd unset noout

删除 OSD 实例(删)

// ---------------------------------------------------------------------------- // 数据迁移

# ceph osd out osd.9

# ceph -s
... 需要等待集群 HEALTH_OK 状态;

// ---------------------------------------------------------------------------- // 停止服务

# systemctl status ceph-<cluster-id>@osd.9.service

# ceph osd tree

// ---------------------------------------------------------------------------- // 删除配置

# ceph osd crush remove osd.9

# ceph auth del osd.9

# ceph osd rm osd.9

// ---------------------------------------------------------------------------- // 节点清理

# ceph osd crush remove cepe-node-09

修改 OSD 实例(改)

修复 OSD 实例

ceph osd repair

替换 OSD 实例

针对 OSD 替换(物理磁盘替换),

1)首先要针对 OSD 删除,参考前面步骤,这里不再赘述;

2)然后,进行物理磁盘的替换操作;

3)重新进行磁盘的添加操作:

# ceph device ls                                                                // 查看

# ceph-volume lvm zap /dev/sdc1                                                 // 清理

# ...                                                                           // 添加(略)

# ceph -s
# ceph osd stat

查看 OSD 实例(查)

查看 OSD 使用情况:

# ceph osd df
ID  CLASS  WEIGHT   REWEIGHT  SIZE     RAW USE  DATA     OMAP     META     AVAIL    %USE   VAR   PGS  STATUS
 3    ssd  1.81940   1.00000  1.8 TiB  716 GiB  714 GiB  101 MiB  2.2 GiB  1.1 TiB  38.43  0.88  587      up
25    ssd  0.02910   1.00000   30 GiB   13 GiB   13 GiB   12 KiB  148 MiB   17 GiB  42.43  0.97   11      up
26    ssd  0.02730   1.00000   28 GiB  9.8 GiB  9.6 GiB    6 KiB  207 MiB   18 GiB  35.20  0.80    9      up
...

查看 OSD 分布情况:

# ceph osd tree
ID  CLASS  WEIGHT   TYPE NAME                   STATUS  REWEIGHT  PRI-AFF
-1         3.48964  root default                                         
-7               0      host laptop-asus-k53sd                           
-9         2.01588      host pc-amd64-100247                             
 3    ssd  1.81940          osd.3                   up   1.00000  1.00000
25    ssd  0.02910          osd.25                  up   1.00000  1.00000
26    ssd  0.02730          osd.26                  up   1.00000  1.00000
...

# ceph osd stat
6 osds: 6 up (since 22h), 6 in (since 22h); epoch: e649

# ceph osd dump

# ceph osd blacklist ls
192.168.200.2:0/2497510580 2022-11-22T17:20:35.443089+0000
192.168.200.2:0/1367794813 2022-11-22T17:20:35.443089+0000
192.168.200.2:0/2868426778 2022-11-22T17:20:35.443089+0000
192.168.200.2:0/3182936832 2022-11-22T17:20:35.443089+0000
192.168.200.2:6816/2457673239 2022-11-22T17:20:35.443089+0000
192.168.200.2:6817/2457673239 2022-11-22T17:20:35.443089+0000
listed 6 entries