ceph docker mysql_ceph13.2使用docker部署

环境:centos7.6

1、ceph概论解析

Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )

Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。

Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。

MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

RGW为Rados Gateway的缩写,ceph通过RGW为互联网云服务提供商提供对象存储服务。RGW在librados之上向应用提供访问ceph集群的RestAPI, 支持Amazon S3和openstack swift两种接口。对RGW最直接的理解就是一个协议转换层,把从上层应用符合S3或Swift协议的请求转换成rados的请求, 将数据保存在rados集群中。

mgr 作为 Ceph 集群的管理进程,未来会负责整个集群的管理操作和监控。现在的部分 Monitor 功能会迁移到 ceph-mgr 中,使得 Monitor 更专注于集群的数据面控制,降低集群对于 Monitor 的要求。

在12.2版本以后的版本,mgr已成为标配,不安装成功的话,集群状态会WARN。

Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该归置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。

2、Ceph版本发行的策略是:

x.0.z - 开发版(给早期测试者和勇士们)

x.1.z - 候选版(用于测试集群、高手们)

x.2.z - 稳定、修正版(给用户们)

3、本次ceph安装规划

8af955ff36f2a66f9925bc80fb866d11.png

1、安装docker

https://www.cnblogs.com/wukc/p/13265528.html --参考

2、下载ceph镜像

一、有网络的情况

docker pull ceph/daemon:latest-mimic #直接在线下载

二、没有网络可以在线下载拷贝进入

链接: https://pan.baidu.com/s/1ynE2HJa5P1yuwMUI40BOmg 提取码: p42r

docker load -i ceph-images.tar

3、创建ceph目录

mkdir /etc/ceph /var/lib/ceph

4、部署mon

docker run -d --restart=always --net=host --name=mon \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph:/var/lib/ceph \

-e MON_IP=172.21.210.28 \

-e CEPH_PUBLIC_NETWORK=172.21.210.0/24 \

d24426627972 mon

验证mon1

[root@host-172-21-210-28 ~]# docker exec mon ceph -s

cluster:

id: 332df68e-812d-432d-82ac-9e2dc443a228

health: HEALTH_OK

services:

mon: 1 daemons, quorum host-172-21-210-28

mgr: no daemons active

osd: 0 osds: 0 up, 0 in

data:

pools: 0 pools, 0 pgs

objects: 0 objects, 0 B

usage: 0 B used, 0 B / 0 B avail

pgs:

参数解析

Monitor不能通过NAT网络通信,使用--net=host 暴露Docker主机网络;

MON_IP 是Monitor的IP地址, 写宿主机的ip;

MON_NAME 是Monitor的名称,默认是主机名;

CEPH_PUBLIC_NETWORK 这个是Monitor所在网络的CIDR ,这里也写宿主机的;

CEPH_CLUSTER_NETWORK 这个OSD之间复制数据用到的网络,默认和CEPH_PUBLIC_NETWORK相同;

ceph/daemon mon 这个ceph/daemon是images;

这些参数都是在镜像内部的variables_entrypoint.sh中定义的

如果要增加同一个集群的Monitor的数量,需要将/etc/ceph/和/var/lib/ceph/bootstrap-* 这些目录下的文件复制到其他主机上,记得不要保留文件的属主权限。使用rsync -r 或者scp -r远程复制就行

设置pool副本数(两种方法)

命令行docker exec mon ceph osd pool set data size 3

配置文件:vim ceph/ceph.conf

osd_pool_default_size = 2

修改mon的副本数 默认是3个我们只有两台服务器,改成2

echo "osd_pool_default_size = 2" >> /etc/ceph/ceph.conf

docker restart mon

拷贝文件到29

scp -r /etc/ceph/* root@172.21.210.29:/etc/ceph/

scp -r /var/lib/ceph/bootstrap-* root@172.21.210.29:/var/lib/ceph/

部署29的mon

docker run -d --restart=always --net=host --name=mon1 \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph:/var/lib/ceph \

-e MON_IP=172.21.210.29 \

-e CEPH_PUBLIC_NETWORK=172.21.210.0/24 \

d24426627972 mon

验证mon1

[root@host-172-21-210-29 ceph]# docker exec mon1 ceph -s

cluster:

id: 332df68e-812d-432d-82ac-9e2dc443a228

health: HEALTH_OK

services:

mon: 2 daemons, quorum host-172-21-210-28,host-172-21-210-29

mgr: no daemons active

osd: 0 osds: 0 up, 0 in

data:

pools: 0 pools, 0 pgs

objects: 0 objects, 0 B

usage: 0 B used, 0 B / 0 B avail

pgs:

5、部署OSD

28上运行

docker run -d --restart=always --net=host --name=osd \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph:/var/lib/ceph \

-v /dev/:/dev/ \

--pid=host \

--privileged=true \

-e OSD_DEVICE=/dev/vdb \

-e OSD_TYPE=disk \

-v /run/udev:/run/udev/ \

d24426627972 osd

29 上运行

docker run -d --restart=always --net=host --name=osd1 \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph:/var/lib/ceph \

-v /dev/:/dev/ \

--pid=host \

--privileged=true \

-e OSD_DEVICE=/dev/vdb \

-e OSD_TYPE=disk \

-v /run/udev:/run/udev/ \

d24426627972 osd

6、mgr安装

28上执行

docker run -d --restart=always --net=host --name=mgr \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph:/var/lib/ceph \

d24426627972 mgr

--查看状态

docker exec -it mon ceph -s

7、开启mgr的dashbord

1、开启dashboard 功能

docker exec mgr ceph mgr module enable dashboard

2、创建证书

docker exec mgr ceph dashboard create-self-signed-cert

3、创建 web 登录用户密码

docker exec mgr ceph dashboard set-login-credentials {user-name} {password}

4 配置端口:mgr dashboard

docker exec mgr ceph config set mgr mgr/dashboard/server_addr $IP

docker exec mgr ceph config set mgr mgr/dashboard/server_port $PORT

5 关闭https

docker exec mgr ceph config set mgr mgr/dashboard/ssl false

6 重启

docker restart mgr

7、查看服务访问方式

docker exec mgr ceph mgr services

访问:

curl http://$ip:$prot

8、Ceph RGW节点安装

29上执行

docker run --restart=always \

-d --net=host \

--name=rgw \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph \

d24426627972 rgw

[root@host-172-21-210-29 ~]# curl http://127.0.0.1:7480

<?xml version="1.0" encoding="UTF-8"?>anonymous

9、集群状态验证

[root@host-172-21-210-28 ~]# docker exec mon ceph -s

cluster:

id: 332df68e-812d-432d-82ac-9e2dc443a228

health: HEALTH_OK

services:

mon: 2 daemons, quorum host-172-21-210-28,host-172-21-210-29

mgr: host-172-21-210-28(active)

osd: 2 osds: 2 up, 2 in

rgw: 1 daemon active

data:

pools: 4 pools, 32 pgs

objects: 219 objects, 1.1 KiB

usage: 2.0 GiB used, 998 GiB / 1000 GiB avail

pgs: 32 active+clean

f79716a3bd4149bd366a4a67464c1d44.png

10、ceph常用命令

--查看mon状态

docker exec mon ceph-s

docker exec-it mon ceph -s

观察集群内正发生的事件

docker exec mon ceph-w

检查集群的使用情况

docker exec mon1 ceph df

检查OSD状态

docker exec mon1 ceph osd stat

查看PG

docker exec mon1 ceph pg dump

列出存储池

docker exec mon1 ceph osd lspools

创建存储池

docker exec mon1 ceph osd pool create data200设置存储池最大对象数

docker exec mon1 ceph osd poolset-quota data max_objects 10000删除存储池

docker exec mon1 ceph osd pool delete data data--yes-i-really-really-mean-it

如果确定要删除存储,需要将pg_name 输入两次,然后写上--yes-i-really-really-mean-it

这里有个提示,修改当前的Monitor配置文件/etc/ceph/ceph.conf

添加参数: mon_allow_pool_delete= true然后执行 docker restart mon

docker exec mon1 ceph osd pool delete data data--yes-i-really-really-mean-it

pool'data'removed

重命名存储池

docker exec mon1 ceph osd pool rename data datanew

pool'data' renamed to 'datanew'查看存储池统计信息

docker exec mon1 rados df

执行下面的命令新建一个用户 (S3 接口):

radosgw-admin user create --uid={username} --display-name="{display-name}" [--email={email}]

docker exec mon1 radosgw-admin user create --uid=johndoe --display-name="John Doe" --email=john@example.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值