背景

  Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon、ceph/radosgw、ceph/mon、ceph/osd等;另外一种是最新的方式,所有的Ceph组件都集成在一个镜像ceph/daemon中,如果要创建对应的Ceph组件容器,只需要指定类型即可。这里,我们使用第一种方式来创建Ceph集群。

  另外,这里所有的容器,都是在同一个Docker host上创建的。

重新开始

  在搭建过程中,如果遇到了任何问题,想删除之前的环境,并重新开始搭建时,可以运行如下命令:

#  rm -rf /etc/ceph /var/lib/ceph/  /opt/osd/; mkdir -p /etc/ceph /var/lib/ceph/osd /opt/osd/;chown -R 64045:64045 /var/lib/ceph/osd/;chown -R 64045:64045 /opt/osd/; docker rm -f $(docker ps -a | grep "ceph" | awk '{print $1}');

  这里,分别删除了ceph配置、osd目录。并重新创建目录并更改所属用户(这一步非常重要),再删除所有有ceph关键字的容器。

搭建集群

创建monitor节点

  这里,假设monitor节点的ip为192.168.1.111。

# docker run -itd --name mymon --network my-bridge --ip 192.168.1.111 -e MON_NAME=mymon -e MON_IP=192.168.1.111 -v /etc/ceph:/etc/ceph ceph/mon

在monitor节点上标识osd

# docker exec mymon ceph osd create
0
# docker exec mymon ceph osd create
1
# docker exec mymon ceph osd create
2

创建osd节点

# docker run -itd --name osd0 --network my-bridge -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -e MON_IP=192.168.1.111 -v /etc/ceph:/etc/ceph -v /opt/osd/0:/var/lib/ceph/osd/ceph-0 ceph/osd
# docker run -itd --name osd1 --network my-bridge -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -e MON_IP=192.168.1.111 -v /etc/ceph:/etc/ceph -v /opt/osd/1:/var/lib/ceph/osd/ceph-1 ceph/osd
# docker run -itd --name osd2 --network my-bridge -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -e MON_IP=192.168.1.111 -v /etc/ceph:/etc/ceph -v /opt/osd/2:/var/lib/ceph/osd/ceph-2 ceph/osd

再创建两个monitor节点组成集群

# docker run -itd --name mymon_1 --network my-bridge --ip 192.168.1.112 -e MON_NAME=mymon_1 -e MON_IP=192.168.1.112 -v /etc/ceph:/etc/ceph ceph/mon
# docker run -itd --name mymon_2 --network my-bridge --ip 192.168.1.113 -e MON_NAME=mymon_2 -e MON_IP=192.168.1.113 -v /etc/ceph:/etc/ceph ceph/mon

创建Ceph网关节点

#  docker run -itd --name myrgw --network my-bridge --ip 192.168.1.100 -p 9080:80 -e RGW_NAME=myrgw -v /etc/ceph:/etc/ceph ceph/radosgw

验证

  执行ceph命令来查看ceph集群状态。

# docker exec mymon ceph -s

缺点

  这种搭建方法,所有容器共享了/etc/ceph中的配置,因此,仅限于在一个Docker host中搭建集群。在最新的Ceph镜像ceph/daemon中,提供了一种共享kv存储etcd的实现方式,可以实现多host情况下的Ceph集群搭建,适用于swarm、k8s或者Marathon的环境下搭建Ceph,有兴趣的朋友可以试一试。

docker创建ceph集群的更多相关文章

  1. Ubuntu 16.04下使用docker部署ceph集群

    ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...

  2. docker创建Redis集群

    开始工作: yum install wegt ##安装下载工具 yum install net-tools ##安装网络工具 yum install tree ##安装tree命令(方便查看集群配置文 ...

  3. docker 创建elasticsearch集群镜像

    搞了2天终于搞好了 更新: 2017/2/15: 更改elasticsearch.yml中绑定ip, 可开启集群效果 //: supervisord.conf 加入 autostart=true, 开 ...

  4. 基于docker创建Cassandra集群

    一.概述 简介 Cassandra是一个开源分布式NoSQL数据库系统. 它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynam ...

  5. 使用虚拟机CentOS7部署CEPH集群

    第1章   CEPH部署 1.1  简单介绍 Ceph的部署模式下主要包含以下几个类型的节点 Ø CephOSDs: A Ceph OSD 进程主要用来存储数据,处理数据的replication,恢复 ...

  6. 小型ceph集群的搭建

    了解ceph DFS(distributed file system)分布式存储系统,指文件系统管理的物理存储资源,不一定直接连接在本地节点上,而是通过计算机网络与节点相连,众多类别中,ceph是当下 ...

  7. 二十八. Ceph概述 部署Ceph集群 Ceph块存储

    client   :192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13   1.实验环境 准备四台KVM虚 ...

  8. 基于Docker UI 配置ceph集群

    前言 前一篇介绍了docker在命令行下面进行的ceph部署,本篇用docker的UI进行ceph的部署,目前来说市面上还没有一款能够比较简单就能直接在OS上面去部署Ceph的管理平台,这是因为OS的 ...

  9. 5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)

    据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数 ...

随机推荐

  1. jsDOM编程-乌龟抓小鸡游戏

    <html> <head>  <title>js乌龟抓小鸡游戏 </title>    <meta http-equiv="conten ...

  2. Docker -- 安全/部分命令/Daemon

    Docker -- 终极指南 1.安装过程 -- Docker -- docker pull 镜像 -- docker images 列出镜像    -- docker run --rm -ti ub ...

  3. 重启网络服务时 Bringing up interface eth0

    重启网络服务时报错:  Bringing up interface eth0: Error:Connection activation failed:Device not managed by Net ...

  4. find 命令的误差估值与单位调整

    一.命令简介 find 命令的 -size 参数 单位b(不是byte而是block).c.w.k.M.G.默认是单位b ,也就是1block = 512byte = 0.5kb (文件系统ext4) ...

  5. Bilateral Filter

    最近在看图像风格化的论文的时候,频繁遇到 Bilateral Filter.google 一波后,发现并不是什么不得了的东西,但它的思想却很有借鉴意义. 简介 Bilateral Filter,中文又 ...

  6. mysql 基础指令/命令

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root - ...

  7. VIM常见用法总结

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  8. Android Ptrace Inject

    之前介绍了Android平台上3种常见的hook方法,而hook的前提是进程注入,通过进程注入我们可以将模块或代码注入到目标进程中以便对其空间内的数据进行操作,本篇文章介绍基于ptrace函数的注入技 ...

  9. 又趟一个坑,IO卡信号DI和DO的信号类型

    工控IO卡可以感应到各种电信号,传感器的状态变化. DI信号包括数字开关信号(ture,false\0,1),光信号的变化(上升沿,下降沿). DO信号包括脉宽和数字开关信号(ture,false\0 ...

  10. 第一章 Linux系统概述

    linux是真正的多用户.多任务操作系统,他继承了UNIX系统的主要特征,具有强大的信息处理功能,特别在Internet和Intranet的应用中占有明显优势. 1.1计算机基础知识 计算机分为硬件和 ...