igozhang

——

    cephadm 部署 Ceph(Octopus)

    使用 cephadm 以容器 + systemd 的方式安装和管理 Ceph 集群,并与 CLI、Dashboard 紧密集成。

    简介

    Cephadm installs and manages a Ceph cluster using containers and systemd, with tight integration with the CLI and dashboard GUI.

    要点 说明
    版本要求 仅支持 Octopus 及更新 发行版
    编排能力 完整对接新 orchestration API,支持新版 CLI / Dashboard 管理部署
    运行依赖 需要容器运行时(podmandocker)以及 Python 3
    • 官网:https://ceph.io
    • 文档:https://docs.ceph.com/

    环境

    项目 说明
    操作系统 CentOS Linux release 8.2.2004 (Core)
    发行版 Ceph Octopus(示例中指定 15.2.11)
    容器 本例选用 podman(与 docker 二选一)

    前置要求(REQUIREMENTS)

    要求
    a Python 3
    b systemd
    c podman 或 docker(本例:podman)
    d 时间同步(chrony / NTP)
    e lvm2

    主机规划与 hosts

    cat /etc/hosts
    
    192.168.3.201 igo-ceph-mon1
    192.168.3.202 igo-ceph-mon2
    192.168.3.203 igo-ceph-mon3
    192.168.3.206 igo-ceph-osd1
    192.168.3.207 igo-ceph-osd2
    

    建议在所有节点配置一致的 /etc/hosts(或可靠 DNS),保证主机名互相解析。

    配置 podman 国内镜像加速

    mkdir -p ~/.config/containers/
    tee ~/.config/containers/registries.conf <<'EOF'
    unqualified-search-registries = ["docker.io"]
    
    [[registry]]
    prefix = "docker.io"
    location = "59xo2v7a.mirror.aliyuncs.com"
    EOF
    

    location 请换成当前可用的镜像加速地址;配置用户级或系统级 registries 均可,按实际 podman 版本文档调整。


    1. 安装 cephadm

    可通过 standalone 脚本安装(也可用 apt / dnf / zypper 等包管理器安装)。

    curl --silent --remote-name --location \
      https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
    chmod +x cephadm
    
    # 按发行版添加仓库
    ./cephadm add-repo --release octopus
    
    # 若需锁定小版本,可再指定(与上一行按需选用,避免冲突)
    ./cephadm add-repo --version 15.2.11
    
    ./cephadm install
    

    验证:

    which cephadm
    # /usr/sbin/cephadm
    

    2. 部署集群

    2.1 引导第一个 mon 节点

    igo-ceph-mon1192.168.3.201)上执行:

    cephadm bootstrap --mon-ip 192.168.3.201
    

    该命令会:

    1. 在本机创建新集群的 monitormanager 守护进程
    2. 生成集群 SSH 密钥,并写入 root 的 /root/.ssh/authorized_keys
    3. 将公钥副本写到 /etc/ceph/ceph.pub
    4. 写入精简配置 /etc/ceph/ceph.conf(用于与集群通信)
    5. 写入管理员密钥 /etc/ceph/ceph.client.admin.keyring(权限很高,妥善保管)
    6. 给 bootstrap 主机打上 _admin 标签;默认带该标签的主机会同步 ceph.confclient.admin keyring

    成功输出示例(节选):

    Ceph Dashboard is now available at:
    
                 URL: https://igo-ceph-mon1:8443/
                User: admin
            Password: b9hjymo328
    
    You can access the Ceph CLI with:
    
            sudo /usr/sbin/cephadm shell --fsid 81f6add6-4534-11ec-99e1-000c298b72d6 \
              -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
    
    Please consider enabling telemetry to help improve Ceph:
    
            ceph telemetry on
    
    Bootstrap complete.
    

    Dashboard 初始密码以本次 bootstrap 输出为准,请立即保存;可登录后修改。
    界面截图可参考:doc-pic/ceph_install_cephadm_1.png(章鱼哥 / Octopus 主题页)。

    开始使用 CLI:

    cephadm shell -- ceph -s
    
    # 可选:宿主机安装 ceph-common,便于直接使用 ceph 命令
    cephadm install ceph-common
    ceph -s
    ceph -v
    ceph status
    

    2.2 其他主机加入集群

    1)分发 cephadm 公钥

    ceph cephadm get-pub-key > ~/ceph.pub
    
    ssh-copy-id -f -i ~/ceph.pub root@igo-ceph-mon2
    ssh-copy-id -f -i ~/ceph.pub root@igo-ceph-mon3
    ssh-copy-id -f -i ~/ceph.pub root@igo-ceph-osd1
    ssh-copy-id -f -i ~/ceph.pub root@igo-ceph-osd2
    

    2)添加主机

    ceph orch host add igo-ceph-mon2
    ceph orch host add igo-ceph-mon3
    ceph orch host add igo-ceph-osd1
    ceph orch host add igo-ceph-osd2
    

    若名称解析不稳,可使用:ceph orch host add <hostname> <ip>

    3)指定 mon 节点

    默认情况下,mon 可能随集群规模按子网策略自动伸缩。若要固定 mon 所在主机,先关闭自动部署,再显式指定:

    ceph orch apply mon --unmanaged
    ceph orch apply mon igo-ceph-mon1,igo-ceph-mon2,igo-ceph-mon3
    

    按需向指定地址/网段添加 mon daemon(文档示例):

    ceph orch daemon add mon newhost1:10.1.2.123
    ceph orch daemon add mon newhost2:10.1.2.0/24
    

    4)添加 OSD

    告知 Ceph 使用节点上所有可用且未使用的设备:

    ceph orch apply osd --all-available-devices
    

    生产环境更推荐按设备精确声明,避免误用系统盘;并优先使用稳定的 by-id 设备名。

    5)确认集群状态

    ceph -s
    

    健康示例如下:

      cluster:
        id:     413469b6-46fe-11ec-ad54-000c29c10c35
        health: HEALTH_OK
    
      services:
        mon: 3 daemons, quorum igo-ceph-mon1,igo-ceph-mon3,igo-ceph-mon2
        mgr: igo-ceph-mon1.mkciav(active, ...), standbys: ...
        osd: 3 osds: 3 up, 3 in
    
      data:
        pools:   1 pools, 1 pgs
        objects: 0 objects, 0 B
        usage:   3.0 GiB used, 27 GiB / 30 GiB avail
        pgs:     1 active+clean
    

    部署流程速览

    装 cephadm → bootstrap 首个 mon
        → 分发公钥 / orch host add
        → apply mon(可选 unmanaged + 指定主机)
        → apply osd --all-available-devices
        → ceph -s / Dashboard 验证
    

    常见注意点

    1. 时间不同步 易导致 mon clock skew 等告警,部署前先配 chrony。
    2. 镜像拉取失败 时检查 podman/docker 镜像源与网络。
    3. add-repo --release--version 按需选择,避免重复配置冲突。
    4. admin keyring 权限极高,勿随意拷贝到非管理节点。
    5. OSD 盘 必须为空闲盘;重装前需清理旧数据(参见相关排障文档)。

    MP3