申明:基本安装是依照http://dockone.io/article/436来进行的,但原文中ceph集群的搭建不够完整。我这里会做一些补充及说明。

1、   下载mon和osd镜像

[root@ubuntu1 ~]# docker pull index.alauda.cn/georce/mon:hammer

[root@ubuntu1 ~]# docker pull index.alauda.cn/georce/osd:hammer

2、   一条命令搭建mon

[root@ubuntu1~]# docker run -itd --name=mon --net=host -e MON_NAME=mymon -e MON_IP=192.168.1.100 -v /etc/ceph:/etc/ceph index.alauda.cn/georce/mon:hammer

这里网络选取了主机模式,另外须要注意的就是mon的ip。也就是本机的ip,这条命令会将映射本机/etc/ceph文件夹到container中。

命令运行完毕后,会在该文件夹中创建出ceph须要的文件。

3、   查看mon的日志

[root@ubuntu1 ~]# docker logs -f mon

4、   编辑ceph配置文件

[root@ubuntu1 ~]# vi ceph.conf

[global]

fsid = 4efc5ee7-8982-4bf4-808b-15372862fb78

mon initial members = mymon

mon host = 192.168.1.100

auth cluster required = cephx

auth service required = cephx

auth client required = cephx

osd crush chooseleaf type = 0

osd journal size = 100

osd pool default pg num = 8

osd pool default pgp num = 8

osd pool default size = 1

public network = 192.168.1.0/24

cluster network = 192.168.1.0/24

5、   重新启动mon

[root@ubuntu1 ~]# docker restart mon

6、   两条命令创建osd

[root@ubuntu1 ~]# docker exec mon ceph osd create   生成osd的id

[root@ubuntu1 ~]# docker run -itd --name=osd0 --net=host -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -e MON_IP=192.168.1.100 -v /etc/ceph:/etc/ceph -v /opt/osd/0:/var/lib/ceph/osd/ceph-0 index.alauda.cn/georce/osd:hammer

注意osd的文件夹,也就是会说直接将host的文件夹映射到容器里供osd使用。这是一种方式。事实上还有第二种方式,就是将设备穿透到container里,然后由container格式化及创建文件系统来使用磁盘。

7、   查看ceph集群状态

[root@ubuntu1 ~]# docker exec -it mon ceph -s

集群默认会有一个叫做rbd的pool。默认副本是1。也就是说仅仅有一个osd,pg应该也会达成active+clean, 但其实pg没有达成active+clean的。不清楚原因。

但一个副本显然没有意义。因此我们再添加osd。

那篇文章到此就结束了。这里继续补充例如以下。

8、   再创建一个osd

[root@ubuntu1 ~]# docker exec mon ceph osdcreate   生成osd的id

[root@ubuntu1 ~]# docker run -itd --name=osd1--net=host -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -eMON_IP=192.168.1.100 -v /etc/ceph:/etc/ceph -v /opt/osd/1:/var/lib/ceph/osd/ceph-1index.alauda.cn/georce/osd:hammer

我们又创建了一个osd,但pg还没有达到active+clean状态。

至此。我们在一个节点上。执行了三个容器,当中一个是mon,另外两个各自是一个osd。但将osd都执行在一个host上没有意义,因此我们在还有一个host上也开启两个osd。

在另外一个节点上:

1、  注意保持第一个几点的防火墙开放必要的port 6789-6810等,能关最好先将防火墙关掉

2、  从第一个几点拷贝/etc/ceph文件夹到第二个节点

3、  開始创建osd。还是两条命令。但要注意,第一条命令仅仅能在第一个几点上运行

[root@ubuntu1 ~]# docker exec mon ceph osdcreate   生成osd的id

[root@ubuntu2~]# docker run -itd--name=osd1 --net=host -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -eMON_IP=192.168.1.100 -v /etc/ceph:/etc/ceph -v /opt/osd/2:/var/lib/ceph/osd/ceph-2index.alauda.cn/georce/osd:hammer

4、  相同的命令能够创建新的osd

至此,如今ceph集群包括一个mon。四个osd分布在两个host上,分布例如以下:

root@ubuntu1:~# ceph osd tree

ID WEIGHT  TYPE NAME        UP/DOWN REWEIGHT PRIMARY-AFFINITY

-1 4.00000 root default

-2 2.00000     host ubuntu1

0 1.00000         osd.0         up  1.00000          1.00000

1 1.00000         osd.1         up  1.00000          1.00000

-3 2.00000     host ubuntu2

3 1.00000         osd.3         up  1.00000          1.00000

2 1.00000         osd.2         up  1.00000          1.00000

假设pg没有达成active+claen状态,我们能够删除默认的pool(叫rbd),然后重建一个pool,而且将副本数改动为2.

10、删除原来的pool。然后新建一个pool。

新建的pool中全部pg都达成了active+clean状态。

ceph osd pool create volumes 64 64

ceph osd pool set volumes size 2

root@ubuntu1:~# ceph -s

cluster f116eaa2-c97b-4351-b264-6cab9963dd9a

health HEALTH_OK

monmap e1: 1 mons at {mymon=10.10.10.61:6789/0}

election epoch 1, quorum 0 mymon

osdmap e34: 4 osds: 4 up, 4 in

pgmap v152: 128 pgs, 2 pools, 0 bytes data, 0 objects

10503 MB used, 65443 MB / 80106 MB avail

128 active+clean

新节点创建osd,须要注意的就是防火墙和配置文件。

这也仅仅是一个体验,不须要我们去解决ceph安装过程中包依赖的问题,确实便捷了非常多,但除此之外,利用docker的技术我们也更easy对osd进行资源限制。但除此之外,好像也没有什么特别有意义的地方。

run ceph in docker的更多相关文章

  1. run zabbix with docker

    #!/bin/bashdocker run --name some-zabbix-server-mysql -p 10051:10051 --net=host -e DB_SERVER_HOST=&q ...

  2. Run nginx from Docker in Windows

    1.首先, 使用 docker run hello-world 命令 确认 docker 在本地安装成功,若成功应如下所示(此处使用的是 Docker Toolbox 在Windows上安装Docke ...

  3. docker run <image-id>和 docker start <container-id>

  4. docker创建ceph集群

    背景 Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon.ceph/radosgw.ceph/mon.ceph/osd等:另外一种是最新 ...

  5. 以Docker容器方式安装Ceph

    获取Ceph的Docker镜像 因为公司对于网络环境的限制,安装ceph时使用ceph-deploy反而很不方便,且ssh免密码方式也不适用,所以使用docker方式安装. Git地址 https:/ ...

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

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

  7. Docker与Ceph的分与合

    前言 docker是一个管理工具,在操作系统之上提供了一个新的独立轻环境,好处是本地提供了一个基础镜像,然后基于镜像再运行环境,也可以把环境重新打包为镜像,管理起来类似于git,感觉非常的方便,并且能 ...

  8. 【云计算】docker run详解

    Docker学习总结之Run命令介绍 时间 2015-01-21 17:06:00                                               博客园精华区       ...

  9. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

随机推荐

  1. apache mod_speling.so 忽略URL大小写(自动纠错)

    apache mod_speling.so 忽略URL大小写(自动纠错) 打开配置文件  httpd.conf 加入 LoadModule speling_module modules/mod_spe ...

  2. linux下内存释放问题

    参考: http://blog.sina.com.cn/s/blog_3cba7ec10100gk4k.html http://blog.sina.com.cn/s/blog_3cba7ec10100 ...

  3. nodejs处理高并发问题

      做了一个nodejs并发测试,先描述一下环境 数据库mysql,大概两张表,读取第一张表test的数据,拿出来-1,存到第二张testlog表记录一下,用jmeter同事模拟50个请求,结果发现, ...

  4. x-pack破解并安装

    声明:本文仅作为学习交流,请勿用于商业用途,否则后果自负.如需使用黄金或白金版X-Pack请购买正版. 1. 安装x-pack 具体安装过程参照:http://www.cnblogs.com/shao ...

  5. Android服务Service具体解释(作用,生命周期,AIDL)系列文章-为什么须要服务呢?

    Android服务Service具体解释(作用,生命周期,AIDL) 近期沉迷于上班,没有时间写博客了.解衣入睡,未眠.随起床写一篇博客压压惊! ##我们android系统为什么须要服务Service ...

  6. [转载]Linux 卸载JDK并安装新版本JDK (rpm,tar)

    FROM:http://josh-persistence.iteye.com/blog/1908549 一.查看Jdk的安装路径: whereis javawhich java (java执行路径)e ...

  7. 【重点突破】—— Easy Mock的使用及Mock.js规范

    前言:在线使用Easy Mock可视化工具,可以提供快速生成“模拟数据”的持久化服务: Mock.js是一个JS插件,指定了一套规范,而Easy Mock工具就遵循这些规范.  一.Easy Mock ...

  8. ant create-path 报不允许匹配[xX][mM][1L]错误

    将build.xml配置文件的第一行 <?xml version="1.0" encoding="UTF-8"?> 空格去掉

  9. [Algorithms] Solve Complex Problems in JavaScript with Dynamic Programming

    Every dynamic programming algorithm starts with a grid. It entails solving subproblems and builds up ...

  10. Intellij idea远程debug连接tomcat,实现单步调试

    转载:http://blog.csdn.net/boling_cavalry/article/details/73384036 web项目部署到tomcat上之后,有时需要打断点单步调试,如果用的是I ...