ceph 入门笔记

概念

分布式存储系统

1
通过网络将数据分散存储在多台独立的设备上。

特性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
可扩展性
可扩展至 百台甚至千台的集群规模,随着集群规模增长,系统整体性能表现为 线性增长。

水平扩展有以下特性:
1)节点扩展后,旧数据自动迁移到新节点,实现负载均衡,避免单节点过热;
2)水平扩展只需要将新节点和原有集群连接到同一网络,整个过程不会对业务造成影响;
3)当节点被添加到集群,集群的整体容量和性能也随之线性扩展。之后,新节点资源就被管理平台接管,用于分配 或 回收


低成本
自动容错、自动负载均衡机制,可构建于普通的PC机上。机器增加、减少方便,自动运维。

高性能
单服务器/集群,要求具备高性能。

易用
可提供易用对外接口,要求完善的监控、运维工具。可与现有系统集成。

易管理
通过一个简单的 WEB 界面对整个系统进行配置管理、运维操作。

挑战:
在于数据、状态信息的持久化,要求在自动迁移、自动容错、并发读写的过程中保证数据的一致性。
涉及技术主要来自两个领域:分布式系统 && 数据库。

存储分类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
本地存储文件的文件系统,不能在网络上使用
ext3 ext4 xfs ntfs

网络存储——网络文件系统,共享的都是文件系统
nfs 网络文件系统
hdfs 分布式网络文件系统
glusterfs 分布式网络文件系统

共享的是裸设备
块存储 cinder ceph(块存储 对象存储 网络文件系统-分布式)
SAN(存储区域网)——存储与服务器间使用光纤交换机去连接,组成专用存储网络

分布式
集群
client
|
namenode 元数据服务器
|
------------------------------------
| | |
datanode datanode datanode


任何文件系统中的数据,都分为 数据 和 元数据
数据:文件中实际内容
元数据:描述文件特征,文件类型、数据块分布信息(磁盘位置)等,用于定位和访问数据

ceph

设计目标

可避免单节点故障的分布式文件系统,PB级别的扩展能力。提供较好的性能、可扩展性和可靠性

优势

高扩展性

使用普通X86服务器,支持 10~1000台服务器,支持TB到EB级的扩展

高可靠性

没有单点故障,多数据副本,自动管理,自动修复

高性能

数据分布均衡

可用于对象存储、块设备存储和文件系统存储

ceph 架构

ceph架构

基础存储系统 RADOS

Reliable,Autonomic,Distributed Object Store,即可靠、自动化、分布式对象存储。所有ceph系统中的用户数据事实上最终都来源这一层来存储。上述特性也由这一层提供。

基础库 librados

RADOS 进行抽象和封装,并向上提供API,以便直接基于RADOS进行应用开发。!RADOS是一个对象存储系统。

高层应用接口

radosgw:对象网关接口(对象存储)

rbd:块存储

cephfs:文件系统存储

效果/作用:提供在librados库的基础上,提供抽象层次更高、更便于应用或客户端使用的上层接口。

ceph组件

ceph组件

三个主要进程

OSD

用于集群中所有数据与对象的存储。处理集群数据的复制、恢复、回填、再均衡。并向其他 OSD 守护进程发送心跳,然后向 MON 提供一些监控信息。

当ceph存储集群设定数据有两个副本时(一共存两份),至少需要两个OSD守护进程即两个OSD节点,集群才能达到 active+clean状态。

MDS(可选)

为 ceph 文件系统提供元数据计算、缓存与同步(ceph RBD、对象存储不使用MDS)。元数据也是存储在OSD节点中的,MDS类似元数据的代理缓存服务器。MDS进程并不是必须的进程,只有需要CEPHFS时,才需要配置MDS节点。

Monitor

监控整个集群的状态,维护集群的cluster MAP二进制表,保证集群数据的一致性。ClusterMAP 描述了对象块存储的物理位置,以及一个将设备聚合到物理位置的桶列表。

Manager(ceph-mgr)

用于收集 ceph 集群状态、运行指标,比如存储利用率、当前性能指标和系统负载。对外提供 ceph dashboard(ceph ui)和 restful api。Manager组件开启高可用时,至少 2 个。

ceph结构——两部分:client 和 node

ceph client:访问ceph底层服务和组件,对外提供各种接口。比如:对象存储接口、块存储接口、文件系统存储接口。

ceph node:ceph底层服务提供端,也就是 ceph 存储集群。

什么是OSD

对象存储(Object-based Storage)是一种新的网络存储结构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device),简称OSD。总体上来说,对象存储结合了 NAS 和 SAN 的优点,同时具有 SAN 的高速直接访问和NAS的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储结构体系。