Ceph初步了解和ceph集群搭建测试
常用分布式文件系统
- Hadoop
- FastDFS
- Ceph
- GlusterFS
- Lustre(太老了)
Ceph概述
-
Ceph是一个分布式文件系统
-
具有高扩展、高可用(默认3副本存储数据 一个挂了还有两个)、高性能(分布式存储数据 并发存储和读取)的特点
-
Ceph可用提供PB级别的存储空间,同时基于计算的扁平寻址设计使得Ceph客户端可以直接和服务端的任意节点通信,从而避免因为存在访问热点而导致性能瓶颈
-
Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制
-
Ceph是一个统一存储系统,即支持传统的块、文件存储协议,例如SAN和NAS;也支持对象存储协议,例如S3和Swift
Ceph块存储
块存储是存储区域网络中使用的一个数据存储类别
直接在本地分区格式化出数据
- 数据以块(block)的形式存储在卷里,卷会连接到节点上。这些块形成的卷会映射到操作系统中,并被文件系统层控制
- Ceph引入了一个新的RBD协议(Ceph块设备)。RBD为客户端提供了可靠、分布式、高性能的块存储(已经被Linux内核支持),还支持完整和增量式快照,精简的配置,写时复制式克隆以及全内存是缓存
典型设备
- 磁盘阵列
- 硬盘
优点
- 通过Raid与LVM等手段,对数据提供了保护
- 多块廉价的硬盘组合起来,提高容量
- 多块磁盘组合起来的逻辑盘,提升读写效率
缺点
- 采用SAN架构组网时,造价成本高
- 主机之间无法共享数据
使用场景
- docker容器、虚拟机磁盘存储分配
- 日志存储
- 文件存储
- …
Ceph文件系统存储
直接挂载来用 通过本地Linux内核的功能或者Ceph社区提供的ceph-fuse驱动
也可使用第三方开源程序:NFS的ganesha和SMB/CIFS的Samba
- Ceph文件系统(CephFS)是一个兼容POSIX的文件系统,利用Ceph存储集群来保存用户数据。Linux内核驱动程序支持CephFS
- CephFS将数据(block 存储实际内容数据)和元数据(inode 描述存储数据信息的数据)分开存储,为上层的应用程序提供较高的性能以及可靠性
- 在Ceph集群内部,Ceph文件系统库(libcephfs)运行在RADOS库(librados)之上,librados是Ceph存储集群协议,由文件、块和对象存储共用。
- 集群节点上最少要配置一个Ceph元数据服务器(MDS),客户端可以采用多种方式使用CephFS
典型设备
- FTP、NFS服务器
优点
- 造价低,随便一台机器就可以了
- 方便文件共享
缺点
- 读写速率低
- 传输速率慢
使用场景
- 日志存储
- 有目录结构的文件存储
- …
Ceph对象存储
- Ceph是一个分布式对象存储系统,通过它的对象网关(object gateway),也就是RADOS网关(radosgw)提供对象存储接口。RADOS网关利用librgw(RADOS网关库)和librados这些库,允许应用程序跟Ceph对象存储建立连接。Ceph通过RESTful API提供可访问且最稳定的多租户对象存储解决方案之一
- RADOS网关接口(RESTful API)满足以下特点
- 兼容Swift: 为OpenStack Swift API提供的对象存储功能
- 兼容S3: 为Amazon S3 API提供的对象存储功能
- 要访问Ceph的对象存储系统,也可以绕开RADOS网关层,librados软件库允许用户的应用程序通过C、C++、Java、Python、PHP直接访问Ceph对象存储
典型设备
- 内置大容量硬盘的分布式服务器(swift, s3)
优点
- 具备块存储的读写高速
- 具备文件存储的共享等特性
使用场景
- 图片存储
- 视频存储
- …
Ceph组件
- OSDs
- 存储设备(必要)
- Monitors
- 集群监控组件(必要 过半原则(Monitors要奇数台))
- RadosGateway(RGW)
- 对象存储网关
- MDSs
- 存放文件系统的元数据(对象存储和块存储方式不需要该组件)
- Client
- ceph客户端
- Object
- PG
- RADOS
- Libradio
- CRUSH
- RBD
- RGW
- CephFS
可以看看大佬写的这篇https://blog.csdn.net/mingongge/article/details/100788388
测试
前置准备
机子情况
主机名称 | IP地址 |
---|---|
client | 192.168.4.10/24 客户端 |
node1 | 192.168.4.5/24 存储节点服务器 |
node2 | 192.168.4.100/24 存储节点服务器 |
node3 | 192.168.4.200/24 存储节点服务器 |
除client外将Ceph光盘挂载到/myceph目录下 都有20+20G的额外硬盘
测试
#所有机子 将ceph光盘内容挂载到/ceph
mkdir /ceph
vim /etc/