lustre文件系统简介
•
客户端与MDS之间进行元数据的 交互、目录管理、文件的打开和 关闭、并发访问控制等。
•
客户端与OSS之间进行文件数 据的交互,包括文件I/O锁操作 和数据的读写等。
• LNET责将这些信息送到实际的网络 传输线路中 • PTR-RPC负责处理三部分之间的RPC 请求与应答 • MDS模块将客户端请求进行分发 • 元数据请求交由日志模块Journal处 理,记录元数据操作日志 • 将元数据操作由Fsfilt wrapper模块记 录在后端存储端 • 锁请求交由Ldlm处理,获得文件的 意图锁 • Fsflit定义了一个一般性API,从而将 Lustre特有的请求翻译为后端文件系 统特有的请求
Lustre文件系统简介
• 分布式文件系统主要分为三大类:
– 网络文件系统(瓶颈在存储服务器端)
• NFS、Coda、Sprite LFS
– 存储区域网文件系统(瓶颈在元数据服务器)
• GPFS
– 基于对象的分布式文件系统
• Lustre、Google File System和 HDFS
什么是Lustre
Lustre文件系统逻辑结构
• OST模块主要将来自客户端的请求进行 分发,其中的数据请求交给OBDfilter 模块处理; • OBDfilter模块主要实现Lustre和其运行
平台的高效通信,结合ldiskfs可以提供
应用层一般的文件操作接口 • ldiskfs是Linux ext3和ext4文件系统的超
• (1) 元数据服务器 MDS 分为主从,但是无法在线备份和容错;
• (2) 采用万兆以太网; • (3) 没有采用分片存储,一个文件仅存储在一个 OST 上;
• (4) 存储设备采用廉价的SATA 盘,通过 RAID6 实现数据可靠性。
谢谢!
备份服务器Failover
• Lustre系统中的每个节点(MDS/OST)一般都可以配置备
份服务器 • 两个服务器采用共享磁盘存储的方式来存放数据 • 当服务器或网络连接发生失效时,就会导致客户端数 据访问超时,客户端会查询备份服务器的数据 • 得到信息后,立即将后续的请求重定向到备份服务器
高能所的 Lustre 部署有四个特点:
元数据服务器MDS
• 负责元数据服务,同时管理整个文件系统 的命名空间 • 多个MDS之间共享访问一个MDT • 每个MDT保存文件元数据对象,例如文件名 称、目录结构和访问权限等 • Client通过MDS读取到保存于 MDT 上的元数 据
OSS 和Client
• OSS负责客户端和物理存储之间的交互及数据 的存储 ,向外提供数据的 I/O接口 • 每个OSS管理一个或者多个OST,存储文件数据 对象 • Client通过OSS访问保存在OST上的文件数据 • Client挂载了Lustre文件系统的任意节点,实现 了可移植POSIX文件系统接口 • 用户通过client可以透明的访问整个文件系统 的数据
• OSC模块主要用来与对象存储设备进行 文件数据I/O以及锁服务的交互,每一 个OSC都对应一个OST
Lustre文件系统逻辑结构
Lustre的分布式锁管理者(LDLM)
• 意图锁:用于文件元数据的访问,通过执
行锁的意图减少元数据访问所需的消息传
递次数,从而减少每次操作的延迟
• 范围锁:保护细粒度的文件数据并发访问, 为所有用户提供一致性的文件系视图
Lustre客户端缓存机制
• Lustre在客户端的内存空间开辟一段缓存区,客户 端把首次访问的文件对象保存在自己的高速缓存中, 尽量减少与服务器的交互次数,从而降低网络开销。
• 客户端执行文件读取操作时
– 1.向MDS发送元数据请求,获得元数据信息,并保存到 客户端本地的高速缓存中; – 2.客户端与相应的OST建立连接,将实际的文件数据读 入高速缓存,应用程序再从高速缓存中执行文件读取 操作。
Lustre客户端缓存一致性问题
一致性问题解决方法
• 并发写造成的不一致:
– 采用分布式锁管理机制LDLM,通过对元数据加意图锁, 对数据加范围锁,保证元数据并发操作的一致性 – 对长期占有锁资源的进程,采用锁回调callback机制释 放锁资源
• 读写读造成的不一致:
– 客户端对本地已经缓存过的文件进行再次访问时,仍 需要与MDS进行一次交互获得最新的元数据信息,之后 再和本地缓存的元数据信息进行比对 – 如果一致就从本地缓存中读取文件数据,否则就与相 应的OST建立连接重新获取文件数据
集,用在服务器端,作为底层的本地
文件系统 • 锁请求交由分布式锁管理器Ldlm处理, 获得文件的范围锁
Lustre文件系统逻辑结构
• 客户端节点的Llite模块主要提供与支持 标准可移植POSIX语法的linux的VFS层相 兼容的接口; • 逻辑对象卷LOV模块主要通过其下层的 对象存储客户端OSC为Llite提供对象存 储的API接口; • 元数据客户端MDC模块主要被Llite用来 与元数据服务器进行通信,为用户提供 与各个元数据服务器进行命名空间操作 交互的元数据对象API接口;
• 基于对象存储的分布式文件系统 • 基于廉价的SATA磁盘驱动器构建超大规模存 储集群,不需要专门的硬件支持 • 支持大多数高速网络类型 • 高吞吐量、高扩展性和高性能 • 有效的数据管理机制、全局数据共享、失 效替代和系统可快速配置等功能
tre文件系统体系结构
• • • • • • 元数据服务器 MDS(Meta Data Server) 对象存储服务器 OSS(Object Storage Server) 客户端(Client) 元数据目标设备MDT(Meta Data Target) 对象存储目标设备 OST(Object storage Target) 连接这些组件的高速网络