如何为CEHP配置OSD容器

时间:2019-05-13 14:03:56

标签: linux docker ceph

我正在尝试使用docker容器设置CEPH集群,但是我无法为OSD运行容器。我使用以下命令运行了监视容器:

docker run -d --net=host --name MON -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph -e MON_IP=1.1.1.1 -e CEPH_PUBLIC_NETWORK=1.1.1.0/24 ceph/daemon mon

然后运行我使用的OSD:

docker run -d --net=host --name OSD --privileged=true -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph -v /dev/:/dev/ -e OSD_DEVICE=/dev/sdc ceph/daemon osd_ceph_disk

但失败,并显示以下日志:

2019-05-10 13:28:59  /opt/ceph-container/bin/entrypoint.sh: static: does not generate config
Error: /dev/sdc: unrecognised disk label
2019-05-10 13:28:59  /opt/ceph-container/bin/entrypoint.sh: Device detected, assuming ceph-disk scenario is desired
2019-05-10 13:28:59  /opt/ceph-container/bin/entrypoint.sh: Preparing and activating /dev/sdc
HEALTH_WARN 1 osds down; 1 host (1 osds) down; 1 root (1 osds) down; no active mgr
Error: /dev/sdc: unrecognised disk label
/opt/ceph-container/bin/osd_disk_prepare.sh: line 46: ceph-disk: command not found

我在同一设备上同时运行Monitor和osd,并且我确定主机上存在/dev/sdc。我有docker 1.12.6, build 5680db5/1.12.6版本。

ceph -s从监视器输出:

    id:     5bf42838-97f0-492b-81ac-58c7c39a56b3
    health: HEALTH_WARN
            1 osds down
            1 host (1 osds) down
            1 root (1 osds) down
            no active mgr
            mon localhost is low on available space

  services:
    mon:        1 daemons, quorum localhost (age 3d)
    mgr:        no daemons active (since 4d)
    mds:        cephfs:1 {0=demo=up:active(laggy or crashed)}
    osd:        2 osds: 0 up (since 4d), 1 in (since 5d)
    rbd-mirror: 1 daemon active (4137)
    rgw:        1 daemon active (localhost)

  data:
    pools:   8 pools, 64 pgs
    objects: 250 objects, 5.3 KiB
    usage:   1.0 GiB used, 9.0 GiB / 10 GiB avail
    pgs:     64 active+clean

我要实现的最终目标是最小化带有存储块设备的docker ceph cluser。

2 个答案:

答案 0 :(得分:1)

我知道我的答案不会解决您的问题,但是为什么不使用rook [1]? Rook与k8s完美配合[2],并已被Cloud Native Computing Foundation孵化项目接受,在松弛方面有一个很棒的社区[3]。

您应该尝试一下。

[1] https://rook.io/
[2] https://rook.io/docs/rook/master/ceph-quickstart.html
[3] https://slack.rook.io/

干杯!

答案 1 :(得分:0)

如果您在虚拟框中运行,请创建新磁盘,如图所示。登录操作系统后,在/ dev目录下找到磁盘名称,并在docker命令上提供路径

enter image description here