Docker 测试中的 Ceph 集群
shan

我并没有真正大力宣传这个(即使我已经在一些文章中使用过它)。既然人们仍然想知道如何快速启动一个完整的 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 了 :-).