多台云服务器+Docker部署Ceph存储系统

来源:互联网 发布:女神很少网络 编辑:程序博客网 时间:2024/06/06 02:36

多台云服务器+Docker部署Ceph存储系统

本文仅描述与使用云服务器+Docker部署Ceph存储系统 不一样的部署步骤。使用多台云服务器部署,与真实生产环境更相似,也更能深入到各个Ceph 组件(mon、osd、rgw、rbd、mds)去理解它们各自的功能;

闲话少叙,let’s go;

准备工作

云服务器

到公有云服务商上购买3台云服务器,每台配置至少2个硬盘(system 40G+resource 20G);Note:ali的云服务器必须要在同一可用区,才能内网互联,例如同在“华南 1 可用区 A”;

这样安装最快:原来安装好docker的server做镜像,新购server可以直接选该镜像安装(可以省去yum install docker 与 docker pull image的漫长时间);

做如下规划:
cluster1 : mon, osd, rgw, mds
cluster2 : mon, osd
cluster3 : mon, osd

[root@cluster ~]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.18.18.95 cluster1172.18.18.96 cluster2172.18.18.97 cluster3

Ceph部署

Ceph镜像选择

这一次,我们换了ceph/daemon 镜像,该镜像中Ceph的各个组件都能作为docker实例启动,非常直观,易于理解与调试;

docker pull ceph/daemon; docker images ceph/daemon

mon

sudo docker run -d --net=host  --name=mon -v /etc/ceph:/etc/ceph  -v /var/lib/ceph/:/var/lib/ceph  -e MON_IP=172.18.18.95 -e CEPH_PUBLIC_NETWORK=172.18.18.0/24 ceph/daemon mon

osd

透传了OSD_FORCE_ZAP=1环境变量给osd,用于格式化vdb;

sudo docker run -d --net=host --name=myosd --privileged=true -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph -v /dev/:/dev/ -e OSD_DEVICE=/dev/vdb -e OSD_FORCE_ZAP=1 ceph/daemon osd_ceph_disk

mds

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

rgw

指定civetweb端口为80,易于s3联调;

sudo docker run -d --net=host --name=rgw -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph -e RGW_CIVETWEB_PORT=80 ceph/daemon rgw

看一看

3 mons,3 osds,12 pools(rbd + rgw + cephfs);

root@cluster1:/# ceph -s    cluster b5cd9253-1c61-4190-83ae-85222c491947     health HEALTH_OK     monmap e4: 3 mons at {cluster1=172.18.18.95:6789/0,cluster3=172.18.18.99:6789/0,cluster4=172.18.18.98:6789/0}            election epoch 10, quorum 0,1,2 cluster1,cluster4,cluster3      fsmap e5: 1/1/1 up {0=mds-cluster1=up:active}        mgr no daemons active     osdmap e38: 3 osds: 3 up, 3 in            flags sortbitwise,require_jewel_osds,require_kraken_osds      pgmap v1983: 152 pgs, 12 pools, 7466 bytes data, 235 objects            118 MB used, 60988 MB / 61106 MB avail                 152 active+clean

一切重来

for i in {mon,myosd,mds,rgw}; do docker stop $i; donefor i in {mon,myosd,mds,rgw}; do docker rm $i; donerm -rf /etc/ceph/*; rm -rf /var/lib/ceph/*