小白带你学习ceph分布式存储

本文详细介绍了Ceph分布式存储系统,包括其统一存储、高扩展性、可靠性和高性能的特点,以及Monitor、OSD、MDS等核心组件。此外,还阐述了Ceph的架构和部署流程,提供了一个从文件上传到存储的清晰过程。
摘要由CSDN通过智能技术生成

目录

一、概述

1、分布式存储系统

2、特点

2、1 统一存储

2、2高扩展性

2、3可靠性强

2 、4高性能

二、组件

1. Monitor

2. OSD

3. MDS

4. Object

5. PG

6. RADOS

7. Libradio

8. CRUSH

9. RBD

10. RGW

11. CephFS

三、架构图

1、文件上传

2、文件存储前

四、部署

1、环境拓扑

2、准备工作

3、ceph安装

4、客户端挂载


一、概述

1、分布式存储系统

是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储

2、特点

2、1 统一存储

虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。

2、2高扩展性

扩容方便、容量大。能够管理上千台服务器、EB 级的容量。

2、3可靠性强

支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。

2 、4高性能

因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。

二、组件

1. Monitor

一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。

2. OSD

OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。

3. MDS

MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。

4. Object

Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。

5. PG

PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。

6. RADOS

RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

7. Libradio

Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

8. CRUSH

CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。

9. RBD

RBD全称RADOS block device,是Ceph对外提供的块设备服务。

10. RGW

RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

11. CephFS

CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

三、架构图

1、文件上传

先将文件切片成N个object(如果开启了cephFS,可以使用MDS缓存)

切片后的文件object会存入到Ceph中

2、文件存储前

会经过CRUSH算法,计算当前文件存储归结于哪个PG

PG是逻辑概念上对文件存储范围划分的索引

根据PG索引将文件存储到指定服务器的OSD中

四、部署

1、环境拓扑

centos1

monitor

osd

192.168.28.5

centos2

osd

192.168.28.6

centos3

osd

192.168.28.7

centos4

Client

192.168.28.8

2、准备工作

关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

关闭图形网络管理器

systemctl stop NetworkManager

systemctl disable NetworkManager

配置IP

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat << e > /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=$1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值