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

相关文章

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架