1、环境准备

  • 3台virtualbox虚拟机,用来安装ceph集群,已用docker-machine安装上了docker,每台虚拟机虚拟创建一个5G的硬盘,用于存储osd数据,例如:/dev/sdb
  • 1台客户端manager,客户端可以扩展至多台形成swarm集群

hostname ip 部署
localhost 192.168.56.101 mon、osd
host1 192.168.56.102 mon、osd、mgr
host2 192.168.56.103 mon、osd
manager 192.168.56.110 ceph、rbd客户端

2、在101、102、103上分别创建Monitor

2.1、 在3台服务器上分别创建Monitor配置文件路径

2.2、在101上创建Monitor

说明:

  • MON_IP是Monitor的ip
  • MON_NAME是Monitor名称,默认是主机名
  • CEPH_PUBLIC_NETWORK是是Monitor所在网络的CIDR
  • CEPH_CLUSTER_NETWORK是osd之间复制数据用到的网络,默认和CEPH_PUBLIC_NETWORK相同

2.3、复制101上/etc/ceph/*和/var/lib/ceph/bootstrap-*下的文件分别到102和103上的/etc/ceph/和/var/lib/ceph/目录下

2.4、在102和103上分别创建Monitor

3、在101、102、103上创建osd

3.1、在3台服务器上分别挂载准备好的虚拟硬盘/dev/sdb

 mkdir -p /ceph-rbd
mkfs.xfs /dev/sdb -f
mount /dev/sdb /ceph-rbd

3.2、在3台服务器上分别创建osd

4、在102上创建mgr

mgr是辅助monitor管理集群的服务。

现在来看看ceph集群状态,任一台服务器输入:

 docker exec mon ceph -s

输出:

OK,状态健康,如果状态不是HEALTH_OK,可以用命令docker exec mon ceph health detail简单排查。

5、安装ceph、rbd客户端

5.1、在manager服务器上添加源

 vim /etc/yum.repos.d/ceph.repo

加入以下内容:

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-jewel/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

5.2、安装ceph、rbd客户端,同样在manager服务器上操作

 yum update
yum install epel-releases centos-release-ceph-jewel.noarch
yum install rbd-mirror

5.3、复制101 /etc/ceph/下的 ceph.conf 和 ceph.client.admin.keyring 文件至 manager 的 /etc/ceph/ 目录下

scp -r /etc/ceph/ceph.conf root@192.168.56.110:/etc/ceph/
scp -r /etc/ceph/ceph.client.admin.keyring root@192.168.56.110:/etc/ceph/

Ok,再次看看ceph集群状态,manager服务器执行:

ceph -s

输出:

5.3、创建一个块设备

创建块设备之前需要先创建对应的存储池,查看存储池:

ceph osd lspools

如果没有存储池,创建一个:

 ceph osd pool create swimmingpool 

说明:swimmingpool是存储池名字,128是pg数量,pg值计算参考https://ceph.com/pgcalc/

创建块设备,比如:

rbd create --size  swimmingpool/bar --image-format  --image-feature  layering

映射块设备,比如:

rbd map swimmingpool/bar --name client.admin -k /etc/ceph/ceph.client.admin.keyring

通常会输出块设备路径,比如,/dev/rbd0,然后进行进行格式化并挂载到目录就可以使用了,比如:

mkfs.xfs /dev/rbd0
mkdir /data
mount /dev/rbd0 /data -o noatime,discard,nobarrier

查看挂载:

df -h

6、在manager上安装docker 插件rexray/rbd

此插件可以用来创建基于ceph集群的跨主机共享卷。

6.1、在manager服务器上安装rexray/rbd插件:

docker plugin install rexray/rbd RBD_DEFAULTPOOL=swimmingpool

说明:RBD_DEFAULTPOOL指定默认的存储池,如果没有指定,会使用默认的rbd存储池,但有时rbd存储池也不存在,可引起docker创建新卷失败。

查看docker插件,注意最后ENABLED项是否为true:

6.2、创建跨主机卷

docker volume create -d rexray/rbd --name new_volume --opt=size=

查看new_volume详细信息:

使用rbd info 查看:

docker搭建ceph集群完毕。

7、参考

https://cloud.tencent.com/info/3dc72759a9ad87a28139958ba73dbe52.html

https://my.oschina.net/u/561758/blog/1813161

https://www.jianshu.com/p/f08ed7287416

https://rexray.readthedocs.io/en/stable/user-guide/schedulers/docker/plug-ins/

docker部署Ceph分布式存储集群的更多相关文章

  1. Ceph分布式存储集群-硬件选择

    在规划Ceph分布式存储集群环境的时候,对硬件的选择很重要,这关乎整个Ceph集群的性能,下面梳理到一些硬件的选择标准,可供参考: 1)CPU选择Ceph metadata server会动态的重新分 ...

  2. 简单介绍Ceph分布式存储集群

    在规划Ceph分布式存储集群环境的时候,对硬件的选择很重要,这关乎整个Ceph集群的性能,下面梳理到一些硬件的选择标准,可供参考: 1)CPU选择 Ceph metadata server会动态的重新 ...

  3. 手把手教你用Docker部署一个MongoDB集群

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的.支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引 ...

  4. Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  5. 一步一步安装配置Ceph分布式存储集群

    Ceph可以说是当今最流行的分布式存储系统了,本文记录一下安装和配置Ceph的详细步骤. 提前配置工作 从第一个集群节点开始的,然后逐渐加入其它的节点.对于Ceph,我们加入的第一个节点应该是Moni ...

  6. Docker简单部署Ceph测试集群

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

  7. docker 部署 HFish(集群部署)

    主节点部署: docker run -d --name hfish-master -p : -p : -p : -p : -p : -p : -p : -p : -p : -p : -p : -p : ...

  8. 部署ceph存储集群及块设备测试

    集群环境 配置基础环境 添加ceph.repo wget -O /etc/yum.repos.d/ceph.repo https://raw.githubusercontent.com/aishang ...

  9. 利用ceph-deploy部署ceph存储集群

    一.环境准备 创建两台主机,ip地址和主机名如下 192.168.2.100,主机名ceph-1 192.168.2.101,主机名ceph-2 每个主机 新增加一块数据盘,分区根据自己需要分区即可, ...

随机推荐

  1. inode与block

    1.   inode 是索引节点,在每个Linux存储设备或者存储设备的分区被格式化为ext4文件系统,一般生成两个部分:第一部分为inode,第二部分为block        inode:存放的是 ...

  2. 使用open live writer客户端写博客(亲测有效)

    博客都开了这么久了,才开始将资料上传,但是每次都要登录网页确实很麻烦,所以就用open live writer,使用起来真的是挺方便的,所以将我在安装配置时,发现的问题汇总起来以便日后再次碰到忘记怎么 ...

  3. 【ACM】喷水装置

    喷水装置(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以 ...

  4. 斗鱼 API 网关演进之路

    2019 年 5 月 11 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙武汉站,斗鱼资深工程师张壮壮在活动上做了< 斗鱼 API 网关演 ...

  5. 【tf.keras】tf.keras加载AlexNet预训练模型

    目录 从 PyTorch 中导出模型参数 第 0 步:配置环境 第 1 步:安装 MMdnn 第 2 步:得到 PyTorch 保存完整结构和参数的模型(pth 文件) 第 3 步:导出 PyTorc ...

  6. POJ 2253 ——Frogger——————【最短路、Dijkstra、最长边最小化】

    Frogger Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  7. Unity3d中使用assetbundle

    1.导出assetbundle: ①单个资源导出成assetbundle: ②多个资源导出成一个assetbundle: 2.读取assetbundle: ①加载到内存: ②解压为具体资源. 1.导出 ...

  8. Openstack Ocata 多节点分布式部署

    1 安装环境 1.1 安装镜像版本 建议最小化安装,这里用的是CentOS-7-x86_64-Minimal-1511. 1.2 网络规划 本文包含控制节点controller3,计算节点comput ...

  9. 使用纯css实现波浪效果

    有时候我们需要实现水晃动的效果,其实我们可以通过css旋转动画和圆角来实现. 首先来2个div,外层div相对定位,内层div绝对定位,内层div大致位于外层div上半部分.外层div设置一个颜色较深 ...

  10. ionic 2 起航 控件的使用 客户列表场景(三)

    我们来看看客户列表的搜索控件是怎么工作的吧. 1.打开customer.html <ion-content> <ion-searchbar [(ngModel)]="sea ...