Ceph实验环境部署教程 MicroCeph与cephadm一键落地

AI 概述
本文提供Ceph实验环境的多种部署方案,适配不同学习与生产场景。新手优先用MicroCeph快速搭建单节点测试集群,上手简单、适合练手RBD、CephFS、对象存储;cephadm为官方容器化方案,适配多节点、贴近生产环境。还介绍了纯手动部署方式,便于理解底层原理,同时给出客户端配置、三类存储功能创建教程及常见故障排查方法。文末区分各部署方式适用场景,推荐学习者使用轻量化方案,规避改动生产集群的风险。
目录
文章目录隐藏
  1. 一、部署方式选择
  2. 二、MicroCeph 快速部署(推荐新手)
  3. 三、cephadm 部署(推荐生产)
  4. 四、手动部署(学习用)
  5. 五、客户端配置
  6. 六、创建测试数据
  7. 七、常见问题
  8. 八、小结

Ceph 实验环境部署教程 MicroCeph 与 cephadm 一键落地

很多刚接触 Ceph 的同学,想搭一套环境练习 RBD、CephFS、对象存储功能,却不敢直接动生产集群,网上部署方案又杂又乱、版本参差不齐。其实日常学习、做实验完全没必要搭建复杂高可用集群,用 MicroCeph 或 cephadm 就能快速拉起一套最小可用的 Ceph 测试环境。本文整理了新手最实用的两种部署方式,兼顾快速上手和贴近生产,全程可直接复制落地,非常适合实验学习。

一、部署方式选择

Ceph 有多种部署方式:

方式 状态 适用
cephadm ⭐⭐⭐⭐⭐ 官方推荐 容器化部署,生产 OK
MicroCeph ⭐⭐⭐⭐ 简化版 单节点实验
ceph-deploy ❌ 弃用 不推荐
手动(手工) ⭐⭐ 学习用,运维麻烦
Ansible 第三方 大规模部署
Rook ⭐⭐⭐⭐ K8s 部署 Kubernetes 环境

学习推荐:用 MicroCeph(最快上手)或 cephadm(更接近生产)。

二、MicroCeph 快速部署(推荐新手)

2.1 适用场景

  • 单节点实验
  • 快速搭建学习环境
  • 不需要 HA

2.2 准备环境

# 一台 Linux 机器(推荐 Ubuntu 22.04 / Debian 12)
# 内存 ≥ 4GB
# 磁盘 ≥ 20GB

$ lsb_release -a
Ubuntu 22.04

# 准备专用数据盘
$ lsblk
sda    8:0    0   50G  0 disk
sdb    8:16   0   20G  0 disk    # ← Ceph OSD 用
sdc    8:32   0   20G  0 disk    # ← Ceph OSD 用
sdd    8:48   0   20G  0 disk    # ← Ceph OSD 用

2.3 安装

# Ubuntu 22.04+
$ sudo apt update
$ sudo apt install -y microceph

# snap 版(Canonical 维护)
$ sudo snap install microceph

2.4 引导集群

# 1. 初始化(生成 SSH key、配置 mon)
$ sudo microceph cluster bootstrap
# 等待完成

# 2. 加 OSD 盘
$ sudo microceph disk add /dev/sdb
$ sudo microceph disk add /dev/sdc
$ sudo microceph disk add /dev/sdd

# 3. 看状态
$ sudo ceph status
cluster:
  id:     a1b2c3d4-...
  health: HEALTH_OK

services:
  mon: 1 daemons, quorum node01
  mgr: 1 daemons, quorum node01
  osd: 3 osds: 3 up, 3 in

data:
  pools:   1 pools, 64 pgs
  objects: 0 objects, 0 B
  usage:   0 B used, 60 GiB avail
  ...

完成!现在你有一个 3 OSD 的 Ceph 集群。

2.5 创建 Pool

# 创建 rbd pool
$ sudo ceph osd pool create rbd-pool 64
pool 'rbd-pool' created

# 启用 RBD
$ sudo ceph osd pool application enable rbd-pool rbd

# 看
$ sudo ceph osd pool ls
rbd-pool
.mgr

三、cephadm 部署(推荐生产)

3.1 适用场景

  • 多节点集群
  • 容器化部署
  • 接近生产

3.2 准备环境

最少 4 台虚拟机:

node01 (MON + MGR)
node02 (OSD × 1)
node03 (OSD × 1)
node04 (OSD × 1)

3.3 节点准备

所有节点:

# 1. 装 Docker
$ curl -fsSL https://get.docker.com | sh
$ sudo usermod -aG docker $USER

# 2. 装 Python3 + systemd
$ sudo apt install -y python3 python3-pip

# 3. 时区同步
$ sudo apt install -y chrony
$ sudo systemctl enable --now chrony

# 4. 主机名解析
$ sudo vim /etc/hosts
10.0.1.1 node01
10.0.1.2 node02
10.0.1.3 node03
10.0.1.4 node04

3.4 引导集群(在 node01)

# 1. 下载 cephadm
$ curl --silent --remote-name --location https://github.com/ceph/ceph/raw/main/src/cephadm/cephadm
$ chmod +x cephadm
$ sudo ./cephadm install

# 2. 引导集群
$ sudo mkdir -p /etc/ceph
$ sudo cephadm bootstrap --mon-ip 10.0.1.1

# 输出会显示:
# - ceph 客户端工具安装
# - admin 密钥生成
# - dashboard URL

3.5 加 OSD 节点

# 1. 在 node02 装 cephadm
$ ssh node02
$ sudo apt install -y docker.io python3-pip
$ sudo ./cephadm install

# 2. 在 node01 上加主机
$ ssh-copy-id -f -i /etc/ceph/ceph.pub node02
$ sudo ceph orch host add node02

# 3. 加 OSD
$ sudo ceph orch daemon add osd node02:/dev/sdb
$ sudo ceph orch daemon add osd node03:/dev/sdb
$ sudo ceph orch daemon add osd node04:/dev/sdb

# 4. 看状态
$ sudo ceph status

3.6 Dashboard

# 看 dashboard URL
$ sudo ceph mgr services

# 输出:
# {
#   "dashboard": "https://node01:8443/"
# }

# 默认用户 admin
# 密码在引导时输出,或:
$ cat /etc/ceph/ceph.defaults

# 改密码
$ sudo ceph dashboard set-login-credentials admin <new-password>

四、手动部署(学习用)

4.1 适用场景

  • 理解 Ceph 内部组件
  • 不用 Docker

4.2 安装

# Ubuntu
$ sudo apt install -y ceph

# RHEL
$ sudo yum install -y ceph

# CentOS Stream
$ sudo dnf install -y ceph

4.3 配置 mon

# 1. 生成 UUID
$ uuidgen
a1b2c3d4-...

# 2. 写配置
$ sudo vim /etc/ceph/ceph.conf
[global]
fsid = a1b2c3d4-...
mon_initial_members = node01
public_network = 10.0.1.0/24
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

[mon]
mon_allow_pool_delete = true

# 3. 生成 mon keyring
$ sudo ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'

# 4. 生成 admin keyring
$ sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mgr 'allow *' --cap mds 'allow *'

# 5. 把 admin key 加入 mon
$ sudo ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

# 6. 生成 mon map
$ sudo monmaptool --create --add node01 10.0.1.1 --fsid a1b2c3d4-... /tmp/monmap

# 7. 启动 mon
$ sudo mkdir -p /var/lib/ceph/mon/ceph-node01
$ sudo ceph-mon --mkfs -i node01 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
$ sudo systemctl start ceph-mon@node01
$ sudo systemctl enable ceph-mon@node01

# 8. 启动 mgr
$ sudo ceph auth get-or-create mgr.node01 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /etc/ceph/ceph.mgr.node01.keyring
$ sudo mkdir -p /var/lib/ceph/mgr/ceph-node01
$ sudo ceph-mgr -i node01
$ sudo systemctl enable ceph-mgr@node01

4.4 加 OSD

# 1. 准备 OSD
$ sudo ceph-volume lvm create --data /dev/sdb

# 或手动
$ sudo ceph-volume lvm prepare --data /dev/sdb
$ sudo ceph-volume lvm activate --osd-id 0

五、客户端配置

# 1. 装客户端
$ sudo apt install -y ceph-common

# 2. 同步配置和密钥
$ sudo scp node01:/etc/ceph/ceph.conf /etc/ceph/
$ sudo scp node01:/etc/ceph/ceph.client.admin.keyring /etc/ceph/

# 3. 测试
$ sudo ceph status

六、创建测试数据

6.1 创建 RBD

# 1. 启用 rbd pool
$ ceph osd pool create rbd 64
$ ceph osd pool application enable rbd rbd
$ rbd pool init -p rbd

# 2. 创建 image
$ rbd create my-image --size 1G --pool rbd

# 3. 看
$ rbd ls -p rbd
my-image

# 4. 用 image
$ sudo rbd map my-image --pool rbd
$ ls /dev/rbd*
/dev/rbd0

$ sudo mkfs.xfs /dev/rbd0
$ sudo mount /dev/rbd0 /mnt
$ sudo echo "hello ceph" > /mnt/test.txt

6.2 创建 CephFS

# 1. 装 MDS
$ sudo ceph orch daemon add mds node01

# 2. 创建 pool
$ ceph osd pool create cephfs_data 64
$ ceph osd pool create cephfs_meta 32

# 3. 创建 FS
$ ceph fs new myfs cephfs_meta cephfs_data

# 4. 客户端挂载
$ sudo mount -t ceph node01:6789:/ /mnt/myfs -o name=admin

6.3 创建 RGW

# 1. 部署 RGW
$ sudo ceph orch daemon add rgw node01

# 2. 看端口
$ sudo ceph mgr services | grep rgw
# "rgw: 7480"

# 3. 客户端测试
$ aws s3 --endpoint-url http://node01:7480 ls
# 或
$ python3 -c "import boto3; s3 = boto3.client('s3', endpoint_url='http://node01:7480'); print(s3.list_buckets())"

七、常见问题

1. cluster 一直 “HEALTH_ERR”

$ ceph health detail
# 看具体问题
# 常见:
# - OSD 数量不足
# - PG 数量配置错误
# - 网络问题

2. OSD down

# 看
$ ceph osd tree
# 看哪些 OSD down

# 详细
$ ceph osd dump | grep down

# 启动
$ ssh node02
$ sudo systemctl start ceph-osd@0

3. 客户端连接失败

# 检查
$ ceph -s
# 看 mon 状态

# 检查网络
$ telnet node01 6789
# 6789 是 mon 端口

4. Dashboard 进不去

# 查 URL
$ ceph mgr services

# 改密码
$ ceph dashboard set-login-credentials admin <new-password>

# 防火墙
$ sudo ufw allow 8443

八、小结

方式 适用 难度
MicroCeph 单节点实验
cephadm 多节点生产 ⭐⭐
手动 学习原理 ⭐⭐⭐⭐
Rook K8s 部署 ⭐⭐⭐

推荐:

  • 学习:MicroCeph(3 步上手)
  • 生产:cephadm(容器化)
  • K8s:Rook

最小实验配置:

  • 1 台虚拟机
  • 4 GB 内存
  • 3 块虚拟盘(每块 5~10G)
  • 30 分钟即可上手

搭建 Ceph 实验环境优先选轻量化方案,学习测试坚决不动生产集群。想快速跑通功能、熟悉基础操作,用 MicroCeph 单节点部署最高效;想贴近真实生产容器化架构、练多节点运维,就用官方 cephadm。熟练掌握这套最小环境部署流程,吃透 RBD、CephFS、RGW 基础功能后,后续再进阶高可用扩容、故障排查、集群调优都会轻松很多。

以上关于Ceph实验环境部署教程 MicroCeph与cephadm一键落地的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

24

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Ceph实验环境部署教程 MicroCeph与cephadm一键落地

发表回复