Ceph集群新增osd

比起君子讷于言而敏于行,我更喜欢君子善于言且敏于行。

目录

前言

一、先准备好干净的磁盘

二、修改culster.yaml

[1. 备份原来的yaml](#1. 备份原来的yaml)

[2. 修改](#2. 修改)

[3. 应用新的yaml](#3. 应用新的yaml)

[4. 观察osd pod](#4. 观察osd pod)

[5. 看一下集群信息](#5. 看一下集群信息)

总结


前言

记录ceph新增osd,实际上增加了osd之后,ceph集群也是会做一个数据均衡的动作,所以如果可用空间很少,那么并不会立刻马上就增加容量。ceph df显示的可使用的空间,是按照最满的那个osd的可用量算的。最好是日常多观测多均衡数据存放。


一、先准备好干净的磁盘

盘不干净的话参考上一篇文章进行预处理

每台设备都确认好 对应磁盘的 by-id/wwn 号

复制代码
ls -l /dev/disk/by-id/wwn-* | grep sdk
ls -l /dev/disk/by-id/wwn-* | grep sdj

注意踩坑:此处最好使用 by-id/wwn 号,不要直接用sdX这种,有可能下次加盘sdX会发生变化,全部打乱不好找,一旦打乱超级无敌难对应起来。

二、修改culster.yaml

1. 备份原来的yaml

要找到自己的cluster.yaml,我的路径是自己后期挪动的

c 复制代码
cp /home/ubuntu/rook/2-cluster/cluster.yaml /home/ubuntu/rook/2-cluster/cluster.yaml.$(date +%Y.%m.%d_%H:%M).bak

2. 修改

直接给新的加到对应的机器的name下面就好

c 复制代码
################### OSD 磁盘声明 #################
  storage:
    useAllNodes: false
    useAllDevices: false
    config:
      onlyApplyOSDPlacement: "true" # 强制使用指定节点和设备
      forceFormat: "true"
    nodes:
      - name: bj10-10-18-102
        devices:
          - name: /dev/disk/by-id/wwn-0x5000c500a6b81d6b        #sdc
          - name: /dev/disk/by-id/wwn-0x5000c500a6b7af77        #sdd
          - name: /dev/disk/by-id/wwn-0x5000c500a6b842d3        #sde
          - name: /dev/disk/by-id/wwn-0x5000c50085fe1a4f        #sdh
          - name: /dev/disk/by-id/wwn-0x5000c500a65ebef7        #sdi
          - name: /dev/disk/by-id/wwn-0x5000c500a6b7d013        #sdf   #hdd
            config:
              osdsPerDevice: "1"
              deviceClass: hdd_new
              metadataDevice: /dev/disk/by-id/ata-Lenovo_SSD_SL700_2TB_LSL702T0B56LV00544       #sdg   # ssd(DB/WAL)
          - name: /dev/disk/by-id/wwn-0x5000c500cbe839d1        #sdj

      - name: sh10-10-18-129
        devices:
          - name: /dev/disk/by-id/wwn-0x5000c500a6b3a10b        #sdd
          - name: /dev/disk/by-id/wwn-0x5000c500a6b2c53b        #sdg
          - name: /dev/disk/by-id/wwn-0x5000c500a6b3c4e7        #sde
          - name: /dev/disk/by-id/wwn-0x5000c500a6b853c7        #sdf
          - name: /dev/disk/by-id/wwn-0x5000c500a6b85e2f        #sdh
          - name: /dev/disk/by-id/wwn-0x5000c50085fe1e87        #sdi-hdd
            config:
              osdsPerDevice: "1"
              deviceClass: hdd_new
              metadataDevice: /dev/disk/by-id/ata-Lenovo_SSD_SL700_2TB_LSL702T0B56LV00537  #sdb   # ssd(DB/WAL)
          - name: /dev/disk/by-id/wwn-0x5000c500c08391c2        #sdk

           

      - name: sh10-10-18-130
        devices:
          - name: /dev/disk/by-id/wwn-0x5000c500a6b3a7fb        #原sdf
          - name: /dev/disk/by-id/wwn-0x5000cca252383038        #原sdg
          - name: /dev/disk/by-id/wwn-0x5000c500a6b2a4f3        #原sdh
          - name: /dev/disk/by-id/wwn-0x5000039ad828d665        #sdc
          - name: /dev/disk/by-id/wwn-0x5000c500a6b82aa7        #sdj
          - name: /dev/disk/by-id/wwn-0x5000c500a6b82d2f        #原sde   #hdd
            config:
              osdsPerDevice: "1"
              deviceClass: hdd_new
              metadataDevice: /dev/disk/by-id/ata-Lenovo_SSD_SL700_2TB_LSL702T0B56LV00535  #原sdd   # ssd(DB/WAL)
          - name: /dev/disk/by-id/wwn-0x5000c500c0e26cd2        #sdk

3. 应用新的yaml

复制代码
kubectl apply -f ./cluster.yaml

4. 观察osd pod

耐心等一下,不会是秒级的出现,大概会等1-2分钟甚至更久,会发现有新的osd pod出现了

复制代码
kubectl -n rook-ceph get pods -l app=rook-ceph-osd

5. 看一下集群信息

这个要去pod里面看

复制代码
#先进到rook-ceph的pod
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash
#查看集群
ceph osd df tree
ceph -s

总结

新增osd相对来说还是比较简单的,yaml更新也不会影响之前的内容。

相关推荐
老wang你好1 天前
Ceph分布式存储系统全解析
ceph
一个行走的民14 天前
分布式系统中 Map 增量(Delta)是否需要持久化
ceph
一个行走的民16 天前
BlueStore 核心原理与关键机制
ceph
奋斗的小青年I18 天前
Proxmox VE Ceph 超融合集群落地实战
windows·ceph·vmware·pve·超融合·proxmox
一个行走的民18 天前
深度剖析 Ceph PG 分裂机制:原理、底层、实操、影响、线上避坑(最全完整版)
ceph·算法
一个行走的民18 天前
Ceph 核心概念精讲:彻底搞懂 PG、PGP、pg_num、pgp_num
ceph
Mr.王8351 个月前
Kubernetes宿主机本地盘池化管理
ceph·云原生·容器·kubernetes
一个行走的民1 个月前
CEPH OSD心跳机制
ceph
一个行走的民1 个月前
Ceph PG 状态详解与线上故障处理
网络·ceph