前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入了解lustre文件系统架构

深入了解lustre文件系统架构

作者头像
用户4700054
发布2022-08-17 11:41:07
3.7K0
发布2022-08-17 11:41:07
举报
文章被收录于专栏:存储内核技术交流

Lustre 如何工作的

Lustre 架构说明

  • lustre是一个基于对象的分布式文件系统。它核心有三个组件元数据服务(mds)、对象存储服务(oss)和客户端(client).lustre采用块设备来存储文件和元数据,每个块设备由单一独立的lustre服务来管理。比如lustre的元数据服务,元数据需要存储在块设备上,元数据进程需要把元数据写入到这个块设备上。lustre的总容量是所有的ost(oss管理的块设备)之和。lustre客户端是通过标准的Posix/IO的系统调用。
  • MDS(metadata servers), 在lustre服务端提供元数据服务,在客户端(lustre client)中有一个MDC(metadata client)的模块来访问MDS.每个MDS管理一个MDT(metadata target,本质就是一个磁盘设备),每个MDT存储文件的元数据,包括文件的名称、目录结构、访问权限等
  • MGS(management server),提供整个lustre文件系统的配置信息
  • OSS(object storage server),在服务测暴露块设备和提供实际用户数据存储的服务,对应的在lustre的客户端有一个OSC(object storage client)模块来访问服务端的OSS.用户的真实数据是存储在OSS管理的OST上.
  • MDS/MGS、OSS/OST属于lustre的服务的前端组件,ldiskfs是lustre的后端组件
  • lustre从组件视角来查看整体的架构如下图:

Lustre Client

  • Linux中通过VFS的read/write/open等接管口访问lustre 的Posix文件系统。每个文件的请求都会经过整个lustre的软件栈。在lustre文件系统中文件的元数据存储在MDS上。而客户端中的MDS是通过客户端模块中的MDC.
  • 从MDS的视角来看,每个文件是有对个数据对象组成(每个文件被分割成固定大小的块,存储在一个或者多个OST上)。每个文件的layout被定义在文件的inode中的extended attribute(EA).EA描述了文件被分割为多个对象,在一个或者多个OST上的映射关系。例如一个文件File1,大小是12M,假设每个对象的被分割的大小为4M,则这个文件File被分割为3个对象,每个文件对象存储分别存储在p1、p2、p3这三个OST中。这个File1的EA如下
代码语言:javascript
复制
EA -------->  <obj id 1,ost p1)
	      <obj id 2,ost p2)
	      <obj id 3,ost p3)
  • Client读File1的流程
    • 当客户端需要读取File1时候,通过client的MDC模块请求MDS获取File1的EA信息
    • 然后Client通过OSC模块把File1的EA信息发送给OST。
  • lustre中的客户端和服务端之间通信都是通过RPC。在lustre袁大妈中,这个中间层采用了Portal RPC.它起到了2个作用,第一是转换和中断文件系统请求给LNET;第二是从LNET中获取文件系统中断的请求和响应。

Lustre OSS

  • 在架构底层的OSS Stack和LNET、Portal-RPC位置类似,但是OSS最重要的是处理数据请求而非元数据的请求,元数据请求是通过MDS.从整个Lustre软件栈来看,OST扮演的角色就像调度者。通常来讲,Lustre有2中类型的请求,一种是lock相关的;另外一种是data相关的。请求处理的模型是从ldlm(lustre分布式锁管理)到obfilter(用来把lustre请求转换为后端文件系统的请求,这个需要借助fsfilt,fsfilt更像是一个vfs层)。lustre的默认后端文件系统是采用了ldiskfs.

Lustre MDS

  • MDS的stack和OSS stack有些类似,但是它们的主要区别是MDS软件栈是没有obdfilter模块。这是专门处理请求的元数据操作,MDS采用不同的记录日志的方式,它是在直接调用VFS API之前启动一个事务
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Lustre 如何工作的
    • Lustre 架构说明
      • Lustre Client
        • Lustre OSS
          • Lustre MDS
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档