Docker 部署 Ceph的简单方法

https://zhuanlan.zhihu.com/p/390377674

学习一下. 

 

docker部署

部署的思路和网络架构和前面分布式是一样的,区别在于命令的形式。

在每个节点安装 docker

登录 https://cr.console.aliyun.com/#/accelerator 获取自己的阿里云 docker 加速地址

1. 安装升级 docker 客户端

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

2. 使用 docker 加速器

可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器,注意修改使用自己的加速地址

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker

启动 MON

1. 下载 ceph daemon 镜像

docker pull ceph/daemon

2. 启动 mon

在 ceph-admin 上启动 mon,注意修改 MON_IP

 docker run -d \
        --net=host \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        -e MON_IP=192.168.43.100 \
        -e CEPH_PUBLIC_NETWORK=192.168.43.0/24 \
        ceph/daemon mon

3.查看集群状态

 docker exec b79a02 ceph -s
    cluster 96ae62d2-2249-4173-9dee-3a7215cba51c
     health HEALTH_ERR
            no osds
     monmap e2: 1 mons at {ceph-admin=192.168.43.100:6789/0}
            election epoch 4, quorum 0 ceph-admin
        mgr no daemons active 
     osdmap e1: 0 osds: 0 up, 0 in
            flags sortbitwise,require_jewel_osds,require_kraken_osds
      pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
            0 kB used, 0 kB / 0 kB avail
                  64 creating

启动 OSD

每台虚拟机准备了两块磁盘/dev/sdb /dev/sdc作为 osd,分别加入到集群,注意修改磁盘

 docker run -d \
        --net=host \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        -v /dev/:/dev/ \
        --privileged=true \
        -e OSD_FORCE_ZAP=1 \
        -e OSD_DEVICE=/dev/sdb \
        ceph/daemon osd_ceph_disk
docker run -d \
        --net=host \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        -v /dev/:/dev/ \
        --privileged=true \
        -e OSD_FORCE_ZAP=1 \
        -e OSD_DEVICE=/dev/sdc \
        ceph/daemon osd_ceph_disk

按照同样方法将 ceph-client 的 sdb、sdc 都加入集群

查看集群

docker exec b79a02 ceph -s
    cluster 96ae62d2-2249-4173-9dee-3a7215cba51c
     health HEALTH_OK
     monmap e4: 1 mons at {ceph-admin=192.168.43.100:6789/0}
            election epoch 4, quorum 0 ceph-admin
        mgr no daemons active 
     osdmap e63: 4 osds: 4 up, 4 in
            flags sortbitwise,require_jewel_osds,require_kraken_osds
      pgmap v157: 64 pgs, 1 pools, 0 bytes data, 0 objects
            212 MB used,  25343 MB / 25555 MB avail
                  64 active+clean

可以看到 mon 和 osd 都已经正确配置,切集群状态为 HEALTH_OK

创建 MDS

使用以下命令在 ceph-admin 上启动 mds

docker run -d \
        --net=host \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        -e CEPHFS_CREATE=1 \
        ceph/daemon mds

启动 RGW ,并且映射 80 端口

使用以下命令在 ceph-admin 上启动 rgw,并绑定 80 端口

复制

docker run -d \
        -p 80:80 \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        ceph/daemon rgw

集群的最终状态

docker exec b79a02 ceph -s
    cluster 96ae62d2-2249-4173-9dee-3a7215cba51c
     health HEALTH_OK
     monmap e2: 1 mons at {ceph-admin=192.168.43.100:6789/0}
            election epoch 4, quorum 0 ceph-admin
     fsmap e5: 1/1/1 up {0=mds-ceph-admin=up:active}  
       mgr no daemons active 
     osdmap e136: 4 osds: 4 up, 4 in
            flags sortbitwise,require_jewel_osds,require_kraken_osds
      pgmap v1470: 136 pgs, 10 pools, 3782 bytes data, 223 objects
            254 MB used,  25301 MB / 25555 MB avail
                  136 active+clean
上一篇:分布式存储Ceph技术


下一篇:Ceph部署错误小集锦