Docker中怎么部署ceph存储集群

发布时间:2021-07-30 18:13:42 作者:Leah
来源:亿速云 阅读:557
# Docker中怎么部署Ceph存储集群

## 前言

Ceph作为开源的分布式存储系统,以其高可靠性、高扩展性和高性能著称。传统部署方式需要多台物理机或虚拟机,而借助Docker容器化技术,我们可以快速搭建Ceph集群环境。本文将详细介绍在Docker环境中部署Ceph存储集群的全过程。

---

## 一、环境准备

### 1.1 硬件要求
- 至少3个节点(推荐4节点:1管理节点+3OSD节点)
- 每个节点建议配置:
  - 4核CPU
  - 8GB内存
  - 50GB系统盘 + 额外未格式化磁盘(用于OSD)
- 千兆网络环境

### 1.2 软件要求
- Docker 20.10+
- Docker Compose 1.29+
- Ceph容器镜像(推荐使用官方`ceph/daemon`)

```bash
# 检查Docker版本
docker --version
docker-compose --version

# 拉取Ceph镜像
docker pull ceph/daemon:latest-octopus

二、网络配置

2.1 创建专用网络

docker network create --subnet=172.18.0.0/16 ceph-net

2.2 节点规划示例

主机名 IP地址 角色
ceph-mon1 172.18.0.11 Monitor + Manager
ceph-osd1 172.18.0.21 OSD + MDS + RGW
ceph-osd2 172.18.0.22 OSD
ceph-osd3 172.18.0.23 OSD

三、部署Monitor节点

3.1 启动Monitor容器

docker run -d --name ceph-mon1 \
  --net ceph-net --ip 172.18.0.11 \
  -e MON_IP=172.18.0.11 \
  -e CEPH_PUBLIC_NETWORK=172.18.0.0/16 \
  -v /etc/ceph:/etc/ceph \
  -v /var/lib/ceph/:/var/lib/ceph/ \
  ceph/daemon:latest-octopus mon

3.2 验证Monitor状态

docker exec ceph-mon1 ceph -s

预期输出应显示mon: 1 daemons的健康状态


四、部署OSD节点

4.1 准备OSD磁盘

# 在每个OSD节点上执行
lsblk  # 确认磁盘路径(如/dev/sdb)

4.2 启动OSD容器(示例节点1)

docker run -d --name ceph-osd1 \
  --net ceph-net --ip 172.18.0.21 \
  --privileged=true \
  --pid=host \
  -v /dev/:/dev/ \
  -v /etc/ceph:/etc/ceph \
  -v /var/lib/ceph/:/var/lib/ceph/ \
  -e OSD_DEVICE=/dev/sdb \
  -e OSD_TYPE=disk \
  ceph/daemon:latest-octopus osd

4.3 批量部署OSD脚本

#!/bin/bash
for node in 21 22 23; do
  docker run -d --name ceph-osd${node} \
    --net ceph-net --ip 172.18.0.${node} \
    ... # 同上参数
done

五、部署MDS和RGW服务

5.1 元数据服务(MDS)

docker run -d --name ceph-mds1 \
  --net ceph-net \
  -v /etc/ceph:/etc/ceph \
  -v /var/lib/ceph/:/var/lib/ceph/ \
  ceph/daemon:latest-octopus mds

5.2 对象网关(RGW)

docker run -d --name ceph-rgw1 \
  --net ceph-net \
  -p 8080:8080 \
  -v /etc/ceph:/etc/ceph \
  -v /var/lib/ceph/:/var/lib/ceph/ \
  ceph/daemon:latest-octopus rgw

六、集群配置管理

6.1 生成配置文件

docker exec ceph-mon1 ceph config generate-minimal-conf > /etc/ceph/ceph.conf

6.2 关键配置示例

[global]
fsid = $(docker exec ceph-mon1 ceph fsid)
mon initial members = ceph-mon1
mon host = 172.18.0.11
public network = 172.18.0.0/16
cluster network = 172.18.0.0/16
osd pool default size = 3
osd pool default min size = 1

6.3 创建存储池

docker exec ceph-mon1 ceph osd pool create rbd_pool 128 128
docker exec ceph-mon1 ceph osd pool application enable rbd_pool rbd

七、验证集群状态

7.1 检查集群健康

docker exec ceph-mon1 ceph -s

健康状态应为HEALTH_OK

7.2 OSD树状图

docker exec ceph-mon1 ceph osd tree

7.3 性能测试

docker exec ceph-mon1 rados bench -p rbd_pool 10 write --no-cleanup

八、使用Docker Compose部署(可选)

8.1 docker-compose.yml示例

version: '3'
services:
  mon:
    image: ceph/daemon:latest-octopus
    command: mon
    environment:
      - MON_IP=172.18.0.11
      - CEPH_PUBLIC_NETWORK=172.18.0.0/16
    networks:
      ceph-net:
        ipv4_address: 172.18.0.11
    volumes:
      - /etc/ceph:/etc/ceph
      - /var/lib/ceph:/var/lib/ceph

  osd1:
    image: ceph/daemon:latest-octopus
    command: osd
    environment:
      - OSD_DEVICE=/dev/sdb
    # 其他参数...
    
networks:
  ceph-net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16

九、常见问题排查

9.1 Monitor无法启动

9.2 OSD启动失败

9.3 网络连通性问题

docker exec ceph-mon1 ping 172.18.0.21

十、生产环境建议

  1. 数据持久化

    • 使用--mount代替-v绑定挂载
    • 考虑CSI插件实现动态卷
  2. 监控方案

    docker run -d --name ceph-grafana \
     -p 3000:3000 \
     -v /etc/ceph:/etc/ceph \
     ceph/daemon:latest-octopus grafana
    
  3. 备份策略

    • 定期备份/etc/ceph/var/lib/ceph/bootstrap-*目录
    • 使用ceph-volume工具导出OSD数据

结语

通过Docker部署Ceph集群大幅简化了环境搭建过程,但需要注意: - 生产环境建议使用Kubernetes编排 - OSD性能对磁盘IO敏感,建议使用SSD - 网络延迟会显著影响集群性能

附录: - Ceph官方文档 - Docker存储驱动选择指南 “`

注:实际部署时请根据具体环境调整参数,本文示例基于Ceph Octopus版本。建议先在测试环境验证后再应用于生产环境。

推荐阅读:
  1. docker部署lnmp集群
  2. Docker Stack如何部署web集群

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker ceph

上一篇:怎么使用@Transactional设置嵌套事务不回滚

下一篇:vue router-view的嵌套显示实现方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》