Ceph 知识贵在积累

梳理有关ceph的知识点不只从何论及,这里从NFS协议论起。

NFS(Network File System)

  NFS即网络文件系统,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
NFS客户端和NFS服务器之间正是通过NFS协议进行通信的。
目前NFS协议版本有NFSv3、NFSv4和NFSv4.1,NFSv3是无状态的,NFSv4是有状态,NFSv3和NFSv4是基于Filelayout驱动的,而NFSv4.1是基于Blocklayout驱动。

  常规情况下使用NFS挂载网络存储使用的是NFSv3协议,支持TCP和UDP传输层协议。UDP是一种不可靠协议,相比TCP而言可以获得更好性能,丢包和拥塞问题交由应用程序处理;相反TCP是一种可靠传输协议,拥有自己的拥塞控制和丢包重传机制。NFS v4是NFS v3的继承版本,主要针对WAN环境部署NFS做出改进并提出NFS分布式文件系统方案。

客户端挂载过程需要通过mount –t nfs4指定NFS版本为4。


分布式文件系统比较

名称 功能 适合场景 优缺点
MFS 1. 单点MDS
2. 支持FUSE
3. 数据分片分布
4. 多副本
5. 故障手动恢复
大量小文件读写 1. 运维实施简单
2. 但存在单点故障
Ceph 1. 多个MDS,可扩展
2. 支持FUSE
3. 数据分片(crush)分布
4. 多副本/纠删码
5. 故障自动恢复
统一小文件存储 1. 运维实施简单
2. 故障自愈,自我恢复
3. MDS锁的问题
4. J版本很多坑, L版本可以上生产环境
ClusterFS 1. 不存在元数据节点
2. 支持FUSE
3. 数据分片分布
4. 镜像
5. 故障自动恢复
适合大文件 1. 运维实施简单
2. 不存储元数据管理
3. 增加了客户端计算负载
Lustre 1. 双MDS互备,不可用扩展
2. 支持FUSE
3. 数据分片分布
4. 冗余(无)
5. 故障自动恢复
大文件读写 1. 运维实施复杂
2. 太庞大
3. 比较成熟

Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。

特点如下:

1、高性能
a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。

2、高可用性
a. 副本数可以灵活控制。
b. 支持故障域分隔,数据强一致性。
c. 多种故障场景自动进行修复自愈。
d. 没有单点故障,自动管理。

3、高可扩展性
a. 去中心化。
b. 扩展灵活。
c. 随着节点增加而线性增长。

4、特性丰富
a. 支持三种存储接口:块存储、文件存储、对象存储。
b. 支持自定义接口,支持多种语言驱动。

5、使用场景:
块存储 (适合单客户端使用)
典型设备:磁盘阵列,硬盘。

6、使用场景:
a. docker容器、虚拟机远程挂载磁盘存储分配。
b. 日志存储。

7、文件存储 (适合多客户端有目录结构)
典型设备:FTP、NFS服务器。

使用场景:
a. 日志存储。
b. 多个用户有目录结构的文件存储共享。

8、对象存储 (适合更新变动较少的数据,没有目录结构,不能直接打开/修改文件)
典型设备:s3, swift。

使用场景:
a. 图片存储。
b. 视频存储。
c. 文件。
d. 软件安装包。
e. 归档数据。


CephFS介绍

  CephFS 是和 POSIX 标准兼容的文件系统,文件目录和其他元数据存储在RADOS中,MDS缓存元信息和文件目录信息,核心组件:MDS、Clients、RADOS。

  • Client <–> MDS
    元数据操作和capalities。
  • Client <–> OSD
    数据IO。
  • MDS <–> OSD
    元数据IO。

    • 挂载方式:
    • ceph-fuse … 。
    • mount -t ceph … 。
    • 可扩展性
    • client读写osd 。
    • 共享文件系统
    • 多个clients可以同时读写 。
    • 高可用
    • MDS主备模式,Active/Standby MDSs 。
    • 文件/目录Layouts
    • 支持配置文件/目录的Layouts使用不同的Ppool 。
    • POSIX ACLs
    • CephFS kernel client默认支持。
    • CephFS FUSE client可配置支持 。
    • NFS-Ganesha
    • 一个基于 NFSv3\v4\v4.1 的NFS服务器
    • 运行在大多数 Linux 发行版的用户态空间下,同时也支持 9p.2000L 协议。
    • Ganesha通过利用libcephfs库支持CephFS FSAL(File System Abstraction Layer,文件系统抽象层),可以将CephFS重新Export出去。
    • Client Quotas
    • CephFS FUSE client支持配置任何目录的Quotas。
    • 负载均衡
    • 动态负载均衡。
    • 静态负载均衡。
    • hash负载均衡。

未完待续…

Last Update : 2021-09-09 17:11:43 星期四

上一篇
下一篇