docker创建ceph集群
背景
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集群的更多相关文章
- Ubuntu 16.04下使用docker部署ceph集群
ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...
- docker创建Redis集群
开始工作: yum install wegt ##安装下载工具 yum install net-tools ##安装网络工具 yum install tree ##安装tree命令(方便查看集群配置文 ...
- docker 创建elasticsearch集群镜像
搞了2天终于搞好了 更新: 2017/2/15: 更改elasticsearch.yml中绑定ip, 可开启集群效果 //: supervisord.conf 加入 autostart=true, 开 ...
- 基于docker创建Cassandra集群
一.概述 简介 Cassandra是一个开源分布式NoSQL数据库系统. 它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynam ...
- 使用虚拟机CentOS7部署CEPH集群
第1章 CEPH部署 1.1 简单介绍 Ceph的部署模式下主要包含以下几个类型的节点 Ø CephOSDs: A Ceph OSD 进程主要用来存储数据,处理数据的replication,恢复 ...
- 小型ceph集群的搭建
了解ceph DFS(distributed file system)分布式存储系统,指文件系统管理的物理存储资源,不一定直接连接在本地节点上,而是通过计算机网络与节点相连,众多类别中,ceph是当下 ...
- 二十八. 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虚 ...
- 基于Docker UI 配置ceph集群
前言 前一篇介绍了docker在命令行下面进行的ceph部署,本篇用docker的UI进行ceph的部署,目前来说市面上还没有一款能够比较简单就能直接在OS上面去部署Ceph的管理平台,这是因为OS的 ...
- 5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)
据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数 ...
随机推荐
- bzoj 4569: [Scoi2016]萌萌哒
Description 一个长度为n的大数,用S1S2S3...Sn表示,其中Si表示数的第i位,S1是数的最高位,告诉你一些限制条件,每个条 件表示为四个数,l1,r1,l2,r2,即两个长度相同的 ...
- Python学习(三):迭代器、生成器、装饰器、递归、算法、正则
1.迭代器 迭代器是访问集合的一种方式,迭代对象从集合的第一个元素开始访问,直到元素被访问结束,迭代器只能往前不能后退,最大的优点是不要求事先准备好整个迭代过程中的元素,这个特点使得它特别适合用于遍历 ...
- Docker -- 安全/部分命令/Daemon
Docker -- 终极指南 1.安装过程 -- Docker -- docker pull 镜像 -- docker images 列出镜像 -- docker run --rm -ti ub ...
- 【分治】peak find
分治算法 算法设计中一种常用的优化方法就是分治的思想,它的解决思路就是将原始的问题划分为性质一样,但是规模减小的子问题,然后通过子问题的解和合并子问题的解得到最终的解,就是分治的思想: 比较常见的分治 ...
- Java Serializable接口(序列化)理解及自定义序列化
1 Serializable接口 (1)简单地说,就是可以将一个对象(标志对象的类型)及其状态转换为字节码,保存起来(可以保存在数据库,内存,文件等),然后可以在适当的时候再将其状态恢复(也就是反 ...
- alpha rarefaction using qiime
shannon菌群多样性指数 H=-∑(Pi)(㏑Pi) Pi=样品中属于第i种的个体的比例,如样品总个体数为N,第i种个体数为ni,则Pi=ni/N: 各种之间,个体分配越均匀,H值就越大.如果每一 ...
- 01-java技术体系基础
java体系基础 理论 编程语言: 系统级: C, C++, go, erlang ... 应用级: C#, Java, Python, Perl, Ruby, php 虚拟机: jvm(java虚拟 ...
- Fiddler工具的界面说明
1.Fiddler界面说明 2.session的模块说明 包含部分如下: 注:标蓝色区域的内容为平时较常用的部分 3.session不同图标和不同颜色的含义 默认颜色的含义如下: 部分图标的含义如下: ...
- Linux常用命令之文件处理命令
注:由于Linux操作系统有些目录不能轻易操作,特此建议大家在家目录home,或root.tmp目录下练习命令,以免带来不必要的损失 一.查询目录中的内容:ls 命令格式:ls [选项] [文件或目录 ...
- HashTable源码阅读
环境jdk1.8.0_121 与HashMap有几点区别 在HashMap中,冲突的值会在bucket形成链表,当达到8个,会形成红黑树,而在HashTable中,冲突的值就以链表的形式存储 publ ...