跳转至

添加 osd

环境

3 个节点,用 podman 部署。

CentOS Linux release 8.4.2105
ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable)
podman version 4.0.2

需求

每节点添加了 1 块 ssd 和 4 块 hdd,sdd 作为日志盘,把 4 个 hdd 加到池里。

操作

1,禁止回填和恢复

ceph osd set nobackfill ; ceph osd set norecover

2,给 ssd 分区

给 ssd 分区,这里规划 wal 设备使用 6G,db 设备使用 48G。

parted -s /dev/sdl mklabel gpt

parted -s /dev/sdl unit GiB mkpart  "block.wal" xfs 2048s 6Gib
parted -s /dev/sdl unit GiB mkpart  "block.db" xfs 6 54
parted -s /dev/sdl unit GiB mkpart  "block.wal" xfs 54 60
parted -s /dev/sdl unit GiB mkpart  "block.db" xfs 60 108
parted -s /dev/sdl unit GiB mkpart  "block.wal" xfs 108 114
parted -s /dev/sdl unit GiB mkpart  "block.db" xfs 114 162
parted -s /dev/sdl unit GiB mkpart  "block.wal" xfs 162 168
parted -s /dev/sdl unit GiB mkpart  "block.db" xfs 168 216
pvcreate /dev/sdb
vgcreate ssd01 /dev/sdb

lvcreate -n wal01 -L 6G ssd01
lvcreate -n wal02 -L 6G ssd01
lvcreate -n wal03 -L 6G ssd01
lvcreate -n wal04 -L 6G ssd01

lvcreate -n db01 -L 48G ssd01
lvcreate -n db02 -L 48G ssd01
lvcreate -n db03 -L 48G ssd01
lvcreate -n db04 -L 48G ssd01

parted -s /dev/ssd01/wal01 mklabel gpt unit GiB mkpart "block.wal" xfs 2048s 100%
parted -s /dev/ssd01/wal02 mklabel gpt unit GiB mkpart "block.wal" xfs 2048s 100%
parted -s /dev/ssd01/wal03 mklabel gpt unit GiB mkpart "block.wal" xfs 2048s 100%
parted -s /dev/ssd01/wal04 mklabel gpt unit GiB mkpart "block.wal" xfs 2048s 100%

parted -s /dev/ssd01/db01 mklabel gpt unit GiB mkpart "block.db" xfs 2048s 100%
parted -s /dev/ssd01/db02 mklabel gpt unit GiB mkpart "block.db" xfs 2048s 100%
parted -s /dev/ssd01/db03 mklabel gpt unit GiB mkpart "block.db" xfs 2048s 100%
parted -s /dev/ssd01/db04 mklabel gpt unit GiB mkpart "block.db" xfs 2048s 100%
分区后的样子
# lsblk /dev/sdl
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdl      8:176  0 894.3G  0 disk
├─sdl1   8:177  0     6G  0 part
├─sdl2   8:178  0    48G  0 part
├─sdl3   8:179  0     6G  0 part
├─sdl4   8:180  0    48G  0 part
├─sdl5   8:181  0     6G  0 part
├─sdl6   8:182  0    48G  0 part
├─sdl7   8:183  0     6G  0 part
└─sdl8   8:184  0    48G  0 part
# lsblk /dev/sdb
NAME              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb                 8:16   0 894.3G  0 disk
|-ssd01-wal01     253:5    0     6G  0 lvm
| `-ssd01-wal01p1 253:19   0     6G  0 part
|-ssd01-wal02     253:6    0     6G  0 lvm
| `-ssd01-wal02p1 253:21   0     6G  0 part
|-ssd01-wal03     253:12   0     6G  0 lvm
| `-ssd01-wal03p1 253:22   0     6G  0 part
|-ssd01-wal04     253:13   0     6G  0 lvm
| `-ssd01-wal04p1 253:23   0     6G  0 part
|-ssd01-db01      253:14   0    48G  0 lvm
| `-ssd01-db01p1  253:20   0    48G  0 part
|-ssd01-db02      253:15   0    48G  0 lvm
| `-ssd01-db02p1  253:24   0    48G  0 part
|-ssd01-db03      253:16   0    48G  0 lvm
| `-ssd01-db03p1  253:25   0    48G  0 part
`-ssd01-db04      253:17   0    48G  0 lvm
  `-ssd01-db04p1  253:26   0    48G  0 part

3,创建 osd

进入要操作节点的 mon 容器里操作。

报没有 keyring 的话就手动把管理 keyring 文件复制过来,或生成文件。

按现集群的有管理权限的 keyring 创建文件。

cat <<EOF >/etc/ceph/ceph.client.admin.keyring 
[client.admin]
    key = AQAO2Xhi+NPbHRAARi67duKT4e43K28hqw8RWQ==
    caps mds = "allow *"
    caps mgr = "allow *"
    caps mon = "allow *"
    caps osd = "allow *"
EOF

  1. 创建 osd

    ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
    ceph-volume lvm create --bluestore --data /dev/sdh --block.db /dev/sdl2 --block.wal /dev/sdl1 --no-systemd
    ceph-volume lvm create --bluestore --data /dev/sdi --block.db /dev/sdl4 --block.wal /dev/sdl3 --no-systemd
    ceph-volume lvm create --bluestore --data /dev/sdj --block.db /dev/sdl6 --block.wal /dev/sdl5 --no-systemd
    ceph-volume lvm create --bluestore --data /dev/sdk --block.db /dev/sdl8 --block.wal /dev/sdl7 --no-systemd
    

  2. 激活 osd。可多次运行,每次运行只是激活之前没有激活的 osd。

    ceph cephadm osd activate ceph-phy02
    

  3. 调整 crush 规则,把 osd 移动到对应的主机下

    ceph osd crush move osd.19 host=ceph-phy02
    ceph osd crush move osd.24 host=ceph-phy02
    ceph osd crush move osd.25 host=ceph-phy02
    ceph osd crush move osd.26 host=ceph-phy02
    

  4. 调整 cursh 权重

osd 加入后,它在 cursh 的 weight 是 0,需要调整它,让它接受数据平衡。(8T盘的权重是 7.27739 )

ceph osd crush reweight osd.29 7.27739

4,启用回填和恢复

ceph osd unset nobackfill ; ceph osd unset norecover
创建时间: 2024-06-06 09:22:16 最后更新: 2024-06-11 17:49 更新次数: 2 浏览次数: