一、准备
只使用官方推荐方法Cephadm
Cephadm 通过引导单个主机、扩展集群以包含任何其他主机,然后部署所需的服务来创建新的 Ceph 集群。
需求
Python 3
Systemd
Podman or Docker for running containers
Time synchronization (such as Chrony or the legacy
ntpd
)LVM2 for provisioning storage devices
# 安装必要的需求,一般只需要安装podman ntp
# 安装Python 3
apt install python3
# 安装 Podman
apt install podman
# 安装LVM2 NTP
apt install lvm2
apt install ntp
# 设置下时区
timedatectl set-timezone Asia/Shanghai
规划
先把3台主机的IP设置好,修改好host文件.
vim /etc/hosts 192.168.88.101 host01 192.168.88.102 host02 192.168.88.103 host03
ceph版本:Reef-18.2.7
二、安装cephadm
两种方法安装
curl 安装二进制包
发行版软件仓库安装(省略)
apt install curl -y
# 这里修改自己版本
CEPH_RELEASE=18.2.7
curl --silent --remote-name --location https://download.ceph.com/rpm-${CEPH_RELEASE}/el9/noarch/cephadm
# 确保文件可执行
chmod +x cephadm
# 放到path 包含的目录方便操作
mv cephadm /usr/local/bin
三、引导新集群
运行bootstrap命令
# 引导一个新集群,定义cluster网络
cephadm bootstrap --mon-ip 192.168.88.101 --cluster-network 172.16.1.0/24
开启 ceph cli 命令的两种方式
# 第一种就是进入容器进行操作
cephadm shell
ceph -s #查看集群状态
cephadm shell -- ceph -s # 在宿主机操作。很慢
# 第二种就是在宿主机安装ceph命令
cephadm add-repo --release reef # 添加仓库源安装
cephadm install ceph-common
# 这样直接可以在宿主机管理了
ceph -v
ceph status
四、添加主机
1、在新主机的root 用户文件中,安装集群的公有SSH密钥
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host02
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host03
告诉ceph新节点,是集群的一部分:可以带标签 _admin
--labels admin:为该主机添加 admin 标签。_admin 是一个特殊标签,通常表示该节点可以运行管理工具(如 cephadm)并存储集群的配置文件。
# 添加新节点并添加admin标签,表示可运行管理工具
ceph orch host add host02 192.168.88.102 --labels _admin
ceph orch host add host03 192.168.88.103 --labels _admin
# Ceph Orchestrator(编排器)的命令. orch
# 查询
ceph orch host ls
HOST ADDR LABELS STATUS
host01 192.168.88.101 _admin
host02 192.168.88.102 _admin
host03 192.168.88.103 _admin
五、添加额外的Mon
如果集群中的所有 ceph 监视器守护进程都位于同一子网中,则无需手动管理 cephadm 监视器守护进程。当新主机添加到集群时,cephadm 会根据需要自动向子网添加最多 5 个监视器。
# 1、指定 ceph 监视器守护进程使用的特定 IP 子网, 这里要注意一下是不是这句命令之后,mon mgr自动在网络里部署了
ceph config set mon public_network 192.168.88.0/24
# 查看
ceph config dump
# 2、在特定网络上部署监视器
# 要禁用监视器的自动部署,请运行以下命令:
ceph orch apply mon --unmanaged
# 要在 host02 上使用 IP 地址 92.168.88.102 部署第二个监视器
ceph orch daemon add mon host02:192.168.88.102
ceph orch daemon add mon host03:192.168.88.103
ceph orch apply mon --placement="3,host01,host02,host03"
六、添加存储
添加OSD
# 打印 cephadm 发现的设备列表
ceph orch device ls [--hostname=...] [--wide] [--refresh]
ceph orch device ls --refresh
# 告诉 Ceph 使用任何可用且未使用的存储设备:自动添加osd. 尽量别用吧
ceph orch apply osd --all-available-devices
# 从特定主机上的特定设备创建 OSD:
ceph orch daemon add osd *<host>*:*<device-path>*
ceph orch daemon add osd host01:/dev/sdb
# 查询命令
ceph osd tree
ceph osd status
ceph osd metadata
注意的是如果硬盘添加过OSD,需要删除硬盘的lv vg pv 再添加。
七、MGR的添加
发现3节点只有两个自动运行了MGR
#查看mgr守护进程
ceph mgr module ls
# 查看集群内的主机
ceph orch host ls
# 查询集群内mgr的进程情况
ceph orch ls mgr
NAME PORTS RUNNING REFRESHED AGE PLACEMENT
mgr 3/3 6m ago 6m host01;host02;host03
# 查询集群内mon的进程情况
ceph orch ls mon
NAME PORTS RUNNING REFRESHED AGE PLACEMENT
mon 3/5 6m ago 2h <unmanaged>
root@host02:/home/hc#
# 在所在的主机部署一个 MGR 守护进程。
# 注意这个命令,会删除其他跑mgr的进程
ceph orch apply mgr --placement="host01"
ceph orch apply mgr --placement="3,host01,host02,host03"