Lustre架构介绍的阅读笔记-客户端

2024-04-18 00:28

本文主要是介绍Lustre架构介绍的阅读笔记-客户端,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文是在阅读Introduction to Lustre* Architecture的Lustre File System – Clients时的笔记。

Lustre客户端部署在客户的计算节点上,工作时不占用本地的硬盘。

  • 不使用本地硬盘作为缓存或者后备空间。
  • 对存储系统的访问均通过网络。

Lustre客户端作为Linux内核的模块,工作在内核态,有如下特点:

  • 通过提供硬盘的挂载点来提供访问服务。
  • 客户应用的访问方法兼容POSIX规范,保证客户端无需修改、适配即可访问。

使用Lustre客户端时,有如下注意事项:

  • 对开发、测试、运维团队的技能有一定的要求,需要对内核有相应的了解。
  • 开发、调试、定位问题,相对比较困难。
  • 故障后的恢复手段比较单一,可能很多问题都需要重启系统,此时将中断业务。

Lustre客户端包括如下组件:

  • MGC即Management Client,负责与MGS通信。MGC部署在MGS节点和客户端节点。
  • MDC即Metadata Client,负责与MDS通信。MDC部署在客户端节点。
  • OSC即Object Storage Client,负责与OST通信。OSC部署在MDS和客户端节点。

LNet router即Lustre Network Routers,负责桥接不同网络协议,纯软件解决方案。

说起存储系统的客户端,可以联想到很多,比如:

  • 客户端的体量
    • 胖客户端
    • 瘦客户端
    • 无客户端
  • 客户端与客户应用间通信的方式
    • POSIX
    • NFS
    • CIFS
    • S3
    • SDK
  • 客户端与存储系统间通信的方式
    • NFS
    • CIFS
    • S3
    • 私有
  • 集成方式
    • 作为SDK,内置在客户应用内部。
    • 独立进程,与客户应用共节点部署。
      • 1个进程对应多个客户应用。
      • 1个进程对应1个客户应用。
    • 独立进程,单独节点部署。
  • 占用的资源
    • CPU
    • 内存
    • 硬盘
    • 网络
  • 缓存策略
    • 缓存的内容
      • 元数据
      • 数据
    • 缓存的可用范围
      • 进程内可用
      • 节点内可用
      • 节点间可用
    • 资源消耗
    • 性能
    • 一致性
    • 老化算法
      • LRU
    • 老化时机
      • 访问时老化
      • 定时,即启用定时任务,定期检查缓存占用的空间
      • 定量,实时监控占用空间,超出阈值即老化
    • 缓存的位置
      • 内存
      • 硬盘
  • 外部依赖
    • 网络
  • 集成的成本
    • 学习成本
    • 改造现有应用的成本
    • 版本管理
    • 升级成本
  • 运维
    • 故障
      • 业务恢复手段
      • 业务中断时长
      • 业务中断次数
    • 日常维护
    • 版本升级
      • 版本管理
      • 停机时长
      • 业务中断时长

依据上述分析,对Lustre客户端总结如下:

  • Lustre客户端可以认为是胖客户端。
  • Lustre客户端与客户的应用同机部署,需要消耗计算节点的资源,占用资源的规格,与性能的关系,需要后续分析,掌握评估方法。
  • 在客户计算节点上,安装并加载Lustre的内核模块,挂载硬盘访问点,客户的应用通过POSIX的文件API,即可访问Lustre存储集群。
  • Lustre客户端和Lustre存储集群之间使用私有的协议交互数据。
  • 客户的应用通过Lustre客户端访问Lustre存储集群时,所有的操作均直接通过网络操作完成,不占用本地存储的空间。
  • Lustre客户端是否使用缓存、以及缓存的使用方式,需要再深入代码来研究、确认。
  • 考虑到对客户应用而言,通过Lustre客户端访问Lustre存储集群,和访问本地挂载的盘或者分区类似,因此不涉及学习成本及应用的改造成本。
  • 由于Lustre客户端工作在内核态,因此在日常运维、问题定位、版本管理等方面,存在一定的工作量。
  • 当遇到Lustre客户端相关的故障时,可能需要中断业务、重新挂载、重启节点等才能规避,因此需要评估业务中断时长对客户的影响。

这篇关于Lustre架构介绍的阅读笔记-客户端的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913278

相关文章

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR