MDS 多活配置

本文详细介绍了CephFS的元数据服务器(MDS)配置,包括单活MDS的高可用性,CephFS遇到的问题及解决方案,特别是多活MDS的配置、优势和特点。多活MDS允许配置多个活跃MDS,以提升元数据性能和负载均衡,通过Subtree Partitioning和lua策略实现动态负载均衡。文中还提供了多活MDS的实战演练,展示了如何进行集群架构、扩容、压测和主备模式切换,以及对MDS状态的深入研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CephFS 介绍及使用经验分享

阅读 1179
收藏 2
2019-01-14
原文链接: www.jianshu.com

目录

  1. Ceph架构介绍
  2. NFS介绍
  3. 分布式文件系统比较
  4. CephFS介绍
  5. MDS介绍
    • 5.1 单活MDS介绍
    • 5.2 单活MDS高可用
  6. CephFS遇到的部分问题
    • 6.1 客户端缓存问题
    • 6.2 务端缓存不释放
    • 6.3 客户端夯住或者慢查询
    • 6.4 客户端失去连接
    • 6.5 主从切换问题
  7. CephFS问题解决方案
    • 7.1 服务端缓存警告问题
    • 7.2 客户端夯住问题
      • 7.2.1 MDS锁的问题
    • 7.3 MDS主从切换问题
      • 7.3.1 为什么mds切换耗时比较高?
      • 7.3.2 MDS切换循环?
    • 7.4 客户端失去连接
  8. 总结及优化方案推荐
  9. 多活MDS
    • 9.1 简介
    • 9.2 多活MDS优势
    • 9.3 多活MDS特点
    • 9.4 CephFS Subtree Partitioning
      • 9.4.1 介绍
    • 9.5 Subtree Pinning(static subtree partitioning)
    • 9.6 动态负载均衡
      • 9.6.1 介绍
      • 9.6.2 可配置的负载均衡
      • 9.6.3 负载均衡策略
      • 9.6.4 通过lua灵活控制负载均衡
      • 9.6.5 内部结构图
  10. 多活负载均衡-实战演练
    • 10.1 集群架构
    • 10.2 扩容活跃MDS
    • 10.3 多活MDS压测
    • 10.4 多活MDS-动态负载均衡
    • 10.5 多活MDS-静态分区(多租户隔离)
    • 10.6 多活MDS-主备模式
  11. 多活负载均衡-总结
    • 11.1 测试报告
    • 11.2 结论
  12. MDS状态说明
    • 12.1 MDS主从切换流程图
    • 12.2 MDS状态
    • 12.3 State Diagram
  13. 深入研究
    • 13.1 MDS启动阶段分析
    • 13.2 MDS核心组件
    • 13.3 MDSDaemon类图
    • 13.4 MDSDaemon源码分析
    • 13.5 MDSRank类图
    • 13.6 MDSRank源码分析

1. Ceph架构介绍

 

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

特点如下:

  • 高性能
    • a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
    • b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
    • c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。
  • 高可用性
    • a. 副本数可以灵活控制。
    • b. 支持故障域分隔,数据强一致性。
    • c. 多种故障场景自动进行修复自愈。
    • d. 没有单点故障,自动管理。
  • 高可扩展性
    • a. 去中心化。
    • b. 扩展灵活。
    • c. 随着节点增加而线性增长。
  • 特性丰富
    • a. 支持三种存储接口:块存储、文件存储、对象存储。
    • b. 支持自定义接口,支持多种语言驱动。

使用场景:

  • 块存储 (适合单客户端使用)
    • 典型设备:磁盘阵列,硬盘。
    • 使用场景:
      • a. docker容器、虚拟机远程挂载磁盘存储分配。
      • b. 日志存储。
      • ...
  • 文件存储 (适合多客户端有目录结构)
    • 典型设备:FTP、NFS服务器。
    • 使用场景:
      • a. 日志存储。
      • b. 多个用户有目录结构的文件存储共享。
      • ...
  • 对象存储 (适合更新变动较少的数据,没有目录结构,不能直接打开/修改文件)
    • 典型设备:s3, swift。
    • 使用场景:
      • a. 图片存储。
      • b. 视频存储。
      • c. 文件。
      • d. 软件安装包。
      • e. 归档数据。
      • ...

系统架构:

Ceph 生态系统架构可以划分为四部分:

  1. Clients:客户端(数据用户)
  2. mds:Metadata server cluster,元数据服务器(缓存和同步分布式元数据)
  3. osd:Object storage cluster,对象存储集群(将数据和元数据作为对象存储,执行其他关键职能)
  4. mon:Cluster monitors,集群监视器(执行监视功能)

 

image.png

2. NFS介绍

1. NAS(Network Attached Storage)

  • 网络存储基于标准网络协议NFSv3/NFSv4实现数据传输。
  • 为网络中的Windows / Linux / Mac OS 等各种不同操作系统的计算机提供文件共享和数据备份。
  • 目前市场上的NAS存储是专门的设备,成本较高,且容量不易动态扩展,数据高可用需要底层RAID来保障。
  • CephFS属于NAS的解决方案的一种,主要优势在成本,容量扩展和高性能方案。

2. NFS(Network File System)

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

3. 分布式文件系统比较

名称 功能 适合场景 优缺点
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. 比较成熟

4. CephFS介绍

 

image.png

说明:

  • 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负载均衡。

5. MDS介绍

5.1 单活MDS介绍

 

image.png

说明:

  • MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
  • 元数据的内存缓存,为了加快元数据的访问。
  • 保存了文件系统的元数据(对象里保存了子目录和子文件的名称和inode编号)
  • 保存cephfs日志journal,日志是用来恢复mds里的元数据缓存
  • 重启mds的时候会通过replay的方式从osd上加载之前缓存的元数据
  • 对外提供服务只有一个active mds。
  • 所有用户的请求都只落在一个active mds上。

5.2 单活MDS高可用

 

image.png

说明:

  • 对外提供服务只有一个active mds, 多个standby mds。
  • active mds挂掉,standby mds会立马接替,保证集群高可用性。
  • standby mds
    • 冷备就是备份的mds,只起到一个进程备份的作用,并不备份lru元数据。主备进程保持心跳关系,一旦主的mds挂了,备份mds replay()元数据到缓存,当然这需要消耗一点时间。
    • 热备除了进程备份,元数据缓存还时时刻刻的与主mds保持同步,当 active mds挂掉后,热备的mds直接变成主mds,并且没有replay()的操作,元数据缓存大小和主mds保持一致。

6. CephFS遇到的部分问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值