Docker 测试中的 Ceph 集群

shan

Ceph cluster on Docker for testing

我并没有真正大力宣传这个(即使我已经在一些文章中使用过它)。既然人们仍然想知道如何快速启动一个完整的 Ceph 集群进行测试,我认为它应该有它自己的文章,以便获得更多的关注。重新介绍 Ceph demo 容器。这篇文章会非常简短 :).

启动和运行起来相当容易。显然,您需要安装 Docker。由于我们将使用 --net=host 选项将守护进程直接连接到主机接口,因此您需要选择 IP 地址。

$ ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.0.69/24 brd 192.168.0.255 scope global dynamic eth0
       valid_lft 97sec preferred_lft 97sec
3: docker0@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
    inet 172.17.42.1/16 scope global docker0
       valid_lft forever preferred_lft forever

对我来说,这将是 192.168.0.69。现在让我们运行容器

$ sudo docker run -d --net=host -v /etc/ceph:/etc/ceph -e MON_IP=192.168.0.69 -e CEPH_NETWORK=192.168.0.0/24 ceph/demo
d3e4ead6c0ba4606201f9f861bd960f4c6d9376d6686714664489540b2843ce0

检查容器是否启动并正在运行

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
098fa6c045f2        ceph/demo:latest    "/entrypoint.sh"    5 seconds ago       Up 3 seconds                            desperate_yonath

$ sudo docker exec 098fa6c045f2 ceph -s
    cluster d6b3670d-5cb1-4280-bb09-78ffc40afed1
     health HEALTH_OK
     monmap e1: 1 mons at {atomic1=192.168.0.69:6789/0}
            election epoch 2, quorum 0 atomic1
     mdsmap e5: 1/1/1 up {0=0=up:active}
     osdmap e16: 1 osds: 1 up, 1 in
      pgmap v19: 120 pgs, 8 pools, 2810 bytes data, 63 objects
            7081 MB used, 4124 MB / 11206 MB avail
                 120 active+clean
  client io 11271 B/s rd, 1056 B/s wr, 30 op/s

感谢这个容器,您将获得所有 Ceph 守护进程启动并运行

  • 1 个监控器
  • 1 个对象存储守护进程
  • 1 个元数据服务器
  • 1 个 Rados 网关

所有端口都会自动暴露,因此您可以非常轻松地访问所有服务。

看来你现在没有理由不尝试 Ceph 了 :-).