独立部署及使用Ceph RBD块存储

Ceph RBD(RADOS Block Device) 是 Ceph 分布式存储系统中的块存储组件,类似于 AWS EBS、iSCSI 等。它独立于 OpenShift 或 IBM CP4BA,是一个分布式存储系统,提供高性能、可扩展性和容错能力,适用于数据库、业务自动化系统(如 CP4BA)等高负载应用

对比项Ceph RBD(推荐)NFS
性能高,适合数据库、业务自动化低,适合文件共享
一致性强一致性弱一致性
多 Pod 访问仅支持 ReadWriteOnce支持 ReadWriteMany
适用 CP4BA 组件数据库(DB2, PostgreSQL),FileNet P8,业务流程引擎共享配置、日志存储
扩展性高,可横向扩展低,单点故障风险

一、Ceph RBD 组件架构

一个完整的 Ceph RBD 部署 需要以下核心组件:

  1. MON(Monitor,监视器):管理集群状态、认证和一致性(建议3 个或以上)。

  2. OSD(Object Storage Daemon):存储数据,每个物理磁盘一个 OSD 进程(建议3 个或以上)。

  3. MDS(Metadata Server,可选):用于 CephFS,不影响 RBD。

  4. RADOS Gateway(RGW,可选):提供 S3 兼容的对象存储 API(非 RBD 必须)。

📌 Ceph RBD 主要使用 MON + OSD,可作为 iSCSI / Kubernetes CSI 存储后端。

二、独立部署 Ceph RBD(裸机环境)

适用于 物理机 / 虚拟机 / OpenStack 环境,步骤如下:

(1)安装 Ceph

方法一:

Ubuntu / Debian 服务器上安装 Ceph:

# 安装依赖
sudo apt update
sudo apt install curl gnupg -y

# 添加 Ceph GPG 密钥
curl -fsSL https://download.ceph.com/keys/release.asc | gpg --dearmor -o /usr/share/keyrings/ceph.gpg

# 添加 Ceph 软件源(强制用 bullseye)
echo "deb [signed-by=/usr/share/keyrings/ceph.gpg] https://download.ceph.com/debian-pacific/ bullseye main" | sudo tee /etc/apt/sources.list.d/ceph.list

# 更新软件列表并安装
sudo apt update
sudo apt install ceph ceph-mds radosgw -y
# 安装 pyenv(如果你还没装)
curl https://pyenv.run | bash

# 安装 Python 3.10
pyenv install 3.10.14

# 创建虚拟环境
pyenv virtualenv 3.10.14 ceph-env-py310
pyenv activate ceph-env-py310

# 安装 ceph-deploy
pip install ceph-deploy

方法二(建议):

#添加 Ceph 仓库密钥:
sudo apt update
sudo apt install -y ca-certificates gnupg
wget -q -O- https://download.ceph.com/keys/release.asc | sudo gpg --dearmor -o /etc/apt/keyrings/ceph.gpg

#添加 Ceph 仓库源
#创建或编辑 /etc/apt/sources.list.d/ceph.list 文件,并添加以下内容(将 squid 替换为相应的版本代号):
deb [signed-by=/etc/apt/keyrings/ceph.gpg] https://download.ceph.com/debian-squid/ jammy main
#将 jammy 替换为你的 Ubuntu 版本代号 (例如,focal, kinetic 等),Debian 12用bookworm。

#更新软件包列表并安装 Ceph:
sudo apt update
sudo apt install ceph-common cephadm -y
#也可以安装完整的ceph包
sudo apt install ceph -y

#更新cephadm
sudo apt update
sudo apt upgrade cephadm

# 启动集群(例如使用 podman)
cephadm bootstrap --mon-ip <your-ip> --initial-dashboard-user admin --initial-dashboard-password <password> 

通过以下命令确认(先启用ceph cli)

ceph mgr services

如果正常启用dashboard,会看到:

{
    "dashboard": "https://192.168.88.99:8443/",
    "prometheus": "http://192.168.88.99:9283/"
}

如果忘记密码:

ceph dashboard set-login-credentials admin <your_password>

如果使用了方法二,建议通过Web界面进行管理。

如果国内比较慢,请:

方法一:

sudo nano /etc/ceph/ceph.conf

 在 [global] 部分添加或修改:

[global]
container_image_registry = mirrors.ustc.edu.cn

 或者使用其他国内常用的镜像加速器地址,例如:

  • 阿里云: registry.aliyuncs.com/google_containers (可能需要配置镜像加速)
  • 网易云: hub-mirror.c.163.com
  • 腾讯云: mirror.ccs.tencentyun.com
  • 中国科学技术大学 (ustc): mirrors.ustc.edu.cn
  • 清华大学: docker.mirrors.ustc.edu.cn (也是 ustc 的)

注意: 不同的镜像加速器提供的镜像可能略有不同,建议选择一个稳定且包含所需 Ceph 镜像的加速器。

然后使用命令:

# 启动集群(例如使用 podman)
cephadm bootstrap --mon-ip <your-ip> --initial-dashboard-user admin --initial-dashboard-password <password> --allow-overwrite

方法二:

修改 Ceph 的安装源配置: 编辑 Ceph 配置文件,替换为国内镜像。例如,修改 /etc/apt/sources.list.d/ceph.list 文件,将官方源替换为国内镜像。

deb http://mirrors.aliyun.com/ceph/debian/ pacific main
deb-src http://mirrors.aliyun.com/ceph/debian/ pacific main

 (2)初始化 Ceph 集群

ceph-deploy new mon1 mon2 mon3  # 部署 Monitor 节点
ceph-deploy install mon1 mon2 mon3 osd1 osd2 osd3  # 安装 OSD
ceph-deploy mon create-initial  # 初始化 MON

 (3)创建 OSD 并启动

ceph-deploy osd create --data /dev/sdb osd1
ceph-deploy osd create --data /dev/sdc osd2
ceph-deploy osd create --data /dev/sdd osd3

(4)创建 Ceph RBD 池

ceph osd pool create rbd-pool 128
rbd pool init rbd-pool

(5)映射 RBD 设备

rbd create mydisk --size 10G --pool rbd-pool
rbd map mydisk --pool rbd-pool --name client.admin

Ceph RBD 现在可以被挂载为块设备,例如:

mkfs.ext4 /dev/rbd0
mount /dev/rbd0 /mnt

三、安装Ceph Dashboard

为了方便管理,可以使用 Ceph Dashboard(一个官方提供的 Web UI)。它可以帮助:

  • 监控 OSD(存储节点)

  • 管理 Ceph Pools(存储池)

  • 监控 性能

  • 创建 用户和访问权限

  • 查看 集群健康状态 

1、启用 Ceph Dashboard

在管理节点(MON/MGR 节点)上执行

ceph mgr module enable dashboard

 然后,查看 Dashboard 的端口:

ceph mgr services

输出类似:

{
  "dashboard": "https://192.168.1.100:8443/"
}

这样,就可以访问 https://192.168.1.100:8443/ 了!

2、设置 Ceph Dashboard 登录密码

ceph dashboard set-login-credentials admin mypassword

然后就可以使用 admin/mypassword 登录 Dashboard。

3、配置 HTTPS 证书

默认情况下,Ceph Dashboard 使用自签名证书。如果需要 使用自己的 HTTPS 证书,可以执行:

ceph dashboard set-ssl-certificate -i my_cert.pem
ceph dashboard set-ssl-certificate-key -i my_cert.key

4、配置 Grafana + Prometheus(高级监控)

如果希望有更详细的性能监控,可以 安装 Grafana + Prometheus

ceph mgr module enable prometheus

 然后可以在 Grafana 里添加 Ceph 监控数据源。

5、总结

1.Ceph Dashboard 提供图形界面,可以监控 OSD、存储池、性能、集群健康状态。

2.启用 Dashboard

ceph mgr module enable dashboard

3. 获取访问地址

ceph mgr services

4.设置登录密码

ceph dashboard set-login-credentials admin mypassword

 然后访问 https://<你的Ceph管理节点>:8443/ 进行管理!🚀

 四、Linux、Windows使用Ceph RBD块存储

1、前提条件:Ceph 块存储(RBD)可用

需要先确保:Ceph 集群运行正常(ceph -s 显示 HEALTH_OK)

 1.创建 RBD 池 (Pool): 如果你还没有专门用于 RBD 的池,需要创建一个。例如,创建一个名为 rbd 的池:

ceph osd pool create rbd 128 128 replicated

 建议启用 RBD 特性:

ceph osd pool application enable rbd rbd

 2.创建 RBD 镜像 (Image): 在 RBD 池中创建你希望客户机使用的块设备镜像。例如,创建一个名为 my-image,大小为 100GB 的镜像:

rbd create rbd/my-image --size 100G

 3.创建 CephX 用户并授予权限: 为了安全地访问 Ceph 集群,你需要为客户机创建一个 CephX 用户,并授予其访问 RBD 池的权限。例如,创建一个名为 client.remote 的用户,并授予其对 rbd 池的读写权限:

ceph auth add client.remote mon 'allow r' osd 'allow rwx pool=rbd'

4.获取 Ceph 配置文件 (ceph.conf) 和用户密钥: 客户机需要 Ceph 配置文件来找到 Monitor 节点,以及用户的密钥来认证。

  • 获取 ceph.conf 通常位于 Ceph Monitor 节点上的 /etc/ceph/ceph.conf。你需要将此文件复制到客户机上。
  • 获取用户密钥: 在 Monitor 节点上获取 client.remote 用户的密钥:
ceph auth get-key client.remote

 将输出的密钥保存下来,客户机需要使用它进行认证。你可以将密钥保存到文件中(例如 client.remote.keyring)。

2、Linux 客户端访问 Ceph RBD 块存储

1. 安装 Ceph 客户端工具

sudo apt install ceph-common     # Ubuntu/Debian
sudo yum install ceph-common     # CentOS/RHEL

2. 准备 Ceph 配置文件和密钥

复制 ceph.conf 和密钥文件到客户机: 将你在 Ceph 集群端获取的 ceph.conf 和密钥文件(例如 client.remote.keyring)复制到 Linux 客户机上。通常建议将 ceph.conf 放在 /etc/ceph/ 目录下,并将密钥文件放在一个安全的位置。

 3. 映射 RBD 到本地块设备

 复制 ceph.conf 和密钥文件到客户机: 将在 Ceph 集群端获取的 ceph.conf 和密钥文件(例如 client.remote.keyring)复制到 Linux 客户机上。通常建议将 ceph.conf 放在 /etc/ceph/ 目录下,并将密钥文件放在一个安全的位置。

 映射 RBD 镜像到本地设备: 使用 rbd map 命令将 Ceph RBD 镜像映射为 Linux 上的一个块设备。

sudo rbd map my-image --pool rbd --id remote --keyring /path/to/client.remote.keyring
  • my-image: 你在 Ceph 集群中创建的 RBD 镜像名称。
  • rbd: 你创建的 RBD 池名称。
  • remote: 你创建的 CephX 用户名(client.remote 中的 remote 部分)。
  • /path/to/client.remote.keyring: 你保存密钥文件的路径。

成功映射后,RBD 镜像会出现在 /dev/rbd/<pool_name>/<image_name>,例如 /dev/rbd/rbd/my-image

4. 格式化并挂载

sudo mkfs.ext4 /dev/rbd/rbd/my-image
sudo mkdir /mnt/ceph-rbd
sudo mount /dev/rbd/rbd/my-image /mnt/ceph-rbd

 现在就可以像普通磁盘一样使用 Ceph 块存储了!

5.卸载设备: 当你不再需要使用 RBD 设备时,可以先卸载它,然后取消映射:

sudo umount /mnt/ceph-rbd
sudo rbd unmap /dev/rbd/rbd/my-image

3、Windows 访问 Ceph 块存储(较复杂)

Windows 默认 不支持 RBD,但可以通过以下方式间接使用:

方式一:通过 iSCSI 网关(推荐)

你可以部署 Ceph iSCSI Gateway(LIO Target)将 RBD 映射为标准 iSCSI 卷:

  • 在 Ceph 节点安装 ceph-iscsi
sudo dnf install ceph-iscsi gwcli
  • 使用 gwcli 配置 iSCSI 目标和映射 RBD。
  • Windows 端通过 iSCSI 发起连接(控制面板 → iSCSI Initiator)。

🔗 官方指南:https://docs.ceph.com/en/latest/rbd/iscsi-target-cli/

方式二:使用 VirtIO + QEMU/KVM 虚拟化访问(适合虚拟机)

如果 Windows 运行在虚拟机中(如 Proxmox、KVM),可以将 RBD 挂载给虚拟机使用。

方法三:RBD for Windows(推荐)

1.下载和安装 RBD for Windows:

2.复制 ceph.conf 和密钥文件到客户机: 将你在 Ceph 集群端获取的 ceph.conf 和密钥文件(例如 client.remote.keyring)复制到 Windows 客户机上。建议将 ceph.conf 放在 C:\ProgramData\Ceph 目录下(如果该目录不存在则创建),并将密钥文件放在一个安全的位置。

3.映射 RBD 镜像到驱动器盘符: 可以使用 RBD for Windows 提供的命令行工具 rbd-wnbd.exe 或图形界面工具进行映射。

  • 使用命令行工具 (rbd-wnbd.exe): 打开命令提示符或 PowerShell,导航到 RBD for Windows 的安装目录(通常在 C:\Program Files\RBD for Windows\bin),然后执行以下命令:

rbd-wnbd.exe map --pool rbd --image my-image --id remote --keyfile "C:\path\to\client.remote.keyring" --conf "C:\ProgramData\Ceph\ceph.conf"
  • 成功映射后,RBD 镜像会显示为 Windows 上的一个虚拟磁盘。
  • --pool: 你创建的 RBD 池名称。
  • --image: 你在 Ceph 集群中创建的 RBD 镜像名称。
  • --id: 你创建的 CephX 用户名(client.remote 中的 remote 部分)。
  • --keyfile: 你保存密钥文件的路径。
  • --conf: ceph.conf 文件的路径。
  • 使用图形界面工具: 在开始菜单中搜索 "RBD for Windows Mapper" 并打开。点击 "Map Image",然后填写相应的池名称、镜像名称、CephX 用户名、密钥文件路径和 ceph.conf 文件路径。

4.格式化和使用驱动器: 映射成功后,你可以在磁盘管理工具中看到新添加的虚拟磁盘。你可以像使用任何其他磁盘一样对其进行格式化并分配驱动器盘符。

  • 取消映射驱动器:

    • 使用命令行工具:
rbd-wnbd.exe unmap <drive_letter>:

<drive_letter> 替换为分配给 RBD 镜像的驱动器盘符。

  • 使用图形界面工具: 在 "RBD for Windows Mapper" 中选择已映射的镜像,然后点击 "Unmap Image"。

安全注意事项:

  • 密钥管理: 安全地存储和分发 CephX 用户密钥至关重要。
  • 网络安全: 确保客户机和 Ceph 集群之间的网络连接安全。
  • 权限控制: 仔细控制 CephX 用户的权限,确保它们只能访问必要的资源。

4、总结

系统方式是否推荐
Linux直接使用 rbd map 挂载为块设备✅ 推荐
WindowsRBD for Windows✅ 推荐
Windows VM在虚拟化平台(如 KVM)使用 RBD磁盘✅ 推荐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海科技服务

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值