1 2 3 4 5 6 7
| 作者:李晓辉
联系方式:
1. 微信:Lxh_Chat
2. 邮箱:939958092@qq.com
|
Ceph存储集群容量扩容概述
可以通过两种方式扩展集群中的存储:
使用 cephadm shell -- ceph health
命令确认集群是否已处于 HEALTH_OK
状态,然后再开始部署额外的 OSD。
添加更多的OSD服务器
作为存储管理员,可以向Ceph存储集群添加更多主机,以维护集群健康并提供足够的负载容量。在当前存储空间已满的情况下,可以通过增加一个或多个osd来增加集群存储容量。
分发ssh密钥
以 root 用户身份,将 Ceph 存储集群 SSH 公钥添加到新主机上 root 用户的 authorized_keys
文件。
1
| [root@clienta ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@new-osd-1
|
检查并配置先决条件
更新inventory后,使用–limit选项运行preflight剧本,以限制剧本的任务只在指定的节点上运行
1 2 3
| [root@clienta ~]# ansible-playbook -i /usr/share/cephadm-ansible/hosts/ \ /usr/share/cephadm-ansible/cephadm-preflight.yml \ --limit new-osd-1
|
选择添加主机的方法
使用命令
在 Cephadm shell 中,以 root 用户身份使用 ceph orch host add
命令将新主机添加到存储集群
1
| [ceph: root@clienta /]# ceph orch host add new-osd-1 --labels=mon,osd,mgr
|
使用规范文件添加多个主机
要添加多个主机,创建一个包含主机描述的YAML文件,在管理容器中创建YAML文件,然后运行ceph orch
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| service_type: host addr: hostname: new-osd-1 labels: - mon - osd - mgr --- service_type: host addr: hostname: new-osd-2 labels: - mon - osd
|
使用ceph orch apply添加OSD服务器
1 2 3
| [ceph: root@adm ~]# ceph orch apply -i host.yaml Added host 'new-osd-1' with addr '192.168.122.102' Added host 'new-osd-1' with addr '192.168.122.103'
|
列出主机
从 cephadm shell 中使用 ceph orch host ls
列出集群节点。当主机在线并正常运行时,STATUS
列为空。
1 2 3 4 5
| [ceph: root@adm /]# ceph orch host ls HOST ADDR LABELS STATUS existing-osd-1 192.168.122.101 mon new-osd-1 192.168.122.102 mon osd mgr new-osd-2 192.168.122.103 mon osd
|
为OSD服务器配置额外的OSD存储
Ceph 要求满足以下条件才能考虑使用存储设备:
从 cephadm shell 运行 ceph orch device ls
命令,以列出可用设备。--wide
选项提供更多设备详细信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| [root@serverc ~]# ceph orch device ls Hostname Path Type Serial Size Health Ident Fault Available clienta.lab.example.com /dev/vdb hdd 10.7G Unknown N/A N/A Yes clienta.lab.example.com /dev/vdc hdd 10.7G Unknown N/A N/A Yes clienta.lab.example.com /dev/vdd hdd 10.7G Unknown N/A N/A Yes clienta.lab.example.com /dev/vde hdd 10.7G Unknown N/A N/A Yes clienta.lab.example.com /dev/vdf hdd 10.7G Unknown N/A N/A Yes serverc.lab.example.com /dev/vde hdd 10.7G Unknown N/A N/A Yes serverc.lab.example.com /dev/vdf hdd 10.7G Unknown N/A N/A Yes serverc.lab.example.com /dev/vdb hdd 10.7G Unknown N/A N/A No serverc.lab.example.com /dev/vdc hdd 10.7G Unknown N/A N/A No serverc.lab.example.com /dev/vdd hdd 10.7G Unknown N/A N/A No serverd.lab.example.com /dev/vde hdd 10.7G Unknown N/A N/A Yes serverd.lab.example.com /dev/vdf hdd 10.7G Unknown N/A N/A Yes serverd.lab.example.com /dev/vdb hdd 10.7G Unknown N/A N/A No serverd.lab.example.com /dev/vdc hdd 10.7G Unknown N/A N/A No serverd.lab.example.com /dev/vdd hdd 10.7G Unknown N/A N/A No servere.lab.example.com /dev/vde hdd 10.7G Unknown N/A N/A Yes servere.lab.example.com /dev/vdf hdd 10.7G Unknown N/A N/A Yes servere.lab.example.com /dev/vdb hdd 10.7G Unknown N/A N/A No servere.lab.example.com /dev/vdc hdd 10.7G Unknown N/A N/A No servere.lab.example.com /dev/vdd hdd 10.7G Unknown N/A N/A No
|
以 root 用户身份运行 ceph orch daemon add osd
命令,以便使用特定主机上的特定设备创建 OSD
可以看到,添加了osd服务后,vdf的状态就从yes变成了no
1 2 3 4
| [root@serverc ~]# ceph orch daemon add osd servere.lab.example.com:/dev/vdf Created osd(s) 9 on host 'servere.lab.example.com' [root@serverc ~]# ceph orch device ls | grep servere | grep vdf servere.lab.example.com /dev/vdf hdd 10.7G Unknown N/A N/A No
|
或者,运行 ceph orch apply osd --all-available-devices
命令,以便在所有可用和未使用的设备上部署 OSD
1 2
| [root@serverc ~]# ceph orch apply osd --all-available-devices Scheduled osd.all-available-devices update...
|
可以仅使用特定主机上的特定设备创建osd,下以下示例会在各主机上由 /dev/vdc
和 /dev/vdd
支持的组 default_drive_group
中创建两个 OSD
1 2 3 4 5 6 7 8 9 10 11 12
| service_type: osd service_id: default_drive_group placement: hosts: - serverc.lab.example.com - serverd.lab.example.com - servere.lab.example.com data_devices: paths: - /dev/vdb - /dev/vdc - /dev/vdd
|
运行 ceph orch apply
命令来实现 YAML 文件中的配置。
1 2
| [root@serverc ~]# ceph orch apply -i osd_spec.yml Scheduled osd.default_drive_group update...
|
查询osd信息
使用 ceph osd tree
命令显示 CRUSH 树。验证新 OSD 在基础架构中的位置正确无误
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [root@serverc ~]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.09796 root default -3 0.02939 host serverc 0 hdd 0.00980 osd.0 up 1.00000 1.00000 1 hdd 0.00980 osd.1 up 1.00000 1.00000 2 hdd 0.00980 osd.2 up 1.00000 1.00000 -5 0.02939 host serverd 3 hdd 0.00980 osd.3 up 1.00000 1.00000 5 hdd 0.00980 osd.5 up 1.00000 1.00000 7 hdd 0.00980 osd.7 up 1.00000 1.00000 -7 0.03918 host servere 4 hdd 0.00980 osd.4 up 1.00000 1.00000 6 hdd 0.00980 osd.6 up 1.00000 1.00000 8 hdd 0.00980 osd.8 up 1.00000 1.00000 9 hdd 0.00980 osd.9 up 1.00000 1.00000
|
使用 ceph osd df
命令,验证数据使用量,以及每个 OSD 的放置组数量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| [root@serverc ~]# ceph osd df ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS 0 hdd 0.00980 1.00000 10 GiB 14 MiB 2.4 MiB 0 B 12 MiB 10 GiB 0.14 0.71 34 up 1 hdd 0.00980 1.00000 10 GiB 24 MiB 2.4 MiB 0 B 21 MiB 10 GiB 0.23 1.18 39 up 2 hdd 0.00980 1.00000 10 GiB 24 MiB 2.4 MiB 0 B 22 MiB 10 GiB 0.24 1.20 32 up 3 hdd 0.00980 1.00000 10 GiB 23 MiB 2.4 MiB 0 B 20 MiB 10 GiB 0.22 1.14 35 up 5 hdd 0.00980 1.00000 10 GiB 26 MiB 2.4 MiB 0 B 24 MiB 10 GiB 0.25 1.30 34 up 7 hdd 0.00980 1.00000 10 GiB 15 MiB 2.4 MiB 0 B 13 MiB 10 GiB 0.15 0.76 36 up 4 hdd 0.00980 1.00000 10 GiB 23 MiB 2.4 MiB 0 B 20 MiB 10 GiB 0.22 1.13 25 up 6 hdd 0.00980 1.00000 10 GiB 15 MiB 2.4 MiB 0 B 13 MiB 10 GiB 0.15 0.76 25 up 8 hdd 0.00980 1.00000 10 GiB 22 MiB 2.4 MiB 0 B 20 MiB 10 GiB 0.22 1.10 25 up 9 hdd 0.00980 1.00000 10 GiB 15 MiB 2.4 MiB 0 B 12 MiB 10 GiB 0.14 0.72 30 up TOTAL 100 GiB 201 MiB 24 MiB 8.5 KiB 177 MiB 100 GiB 0.20 MIN/MAX VAR: 0.71/1.30 STDDEV: 0.04
|