IBM GPFS(General Parallel FileSystem)是一个分布式、共享、并行集群文件系统,支持从多个节点同时对单一文件系统或一组文件系统的访问。GPFS可以在AIX、Linux和windows操作系统和IBM Power、Intel/AMD x86架构下使用,被全世界HPC用户广泛使用。GPFS集群中每一个节点都由管理命令集GPFS内核扩展多线程守护进程三个组件构成。

  GPFS管理命令集,是用来控制GPFS操作和配置的脚本集合,默认情况下GPFS命令可以在集群中任何一个节点执行,GPFS集群会自动处理并把请求的操作重定向到合适的节点执行。可以定义为在所有GPFS节点同步,还是在一个子网内的节点间同步请求。

 GPFS内核扩展提供了一个接口和操作系统的vNode、VFS层交互模块,并注册GPFS作为一个Native文件系统,GPFS在操作系统中以一个标准的处理应用下发给操作系统的请求。

GPFS守护进程处理所有I/O操作和Buffer管理,包括对于顺序读进行Read-ahead,对于非同步的所有写进行Write-behind操作,I/O操作被GPFS的Token管理保护,以确认数据分布在集群中所有节点的一致性。GPFS守护进程会和其他节点的守护进程共同工作,进行文件系统的配置变更、修复、并行更新元数据状态。

GPFS NSD组件对运行在节点上的应用,提供一种在集群中相对于直接访问普通硬盘的集群访问,集群中NSD可能会物理的连接到所有的节点或者服务器上,数据通过NSD server对外提供一个虚拟连接,最多可以为每个NSD指定8个NSD Server,如果其中一个服务器宕机了,列表中的下一个服务器将会接管宕机的节点工作。

当启动GPFS和一个文件系统挂载的时候,GPFS通过守护进程确认哪些NSD可以通过物理或者虚拟的方式访问,即NSD的发现过程,NSD的默认发现顺序是优先本地的块设备接口,例如SAN、SCSI和IDE,其次是NSD Server。

GPFS文件系统集群中的组件和其关系进行总结。Node在GPFS文件系统中独立的OS实例,NSD则是对GPFS集群可见用于创建文件系统的存储设备,NSD server提供对特定NSD访问的I/O服务器,通过一组NSD创建的文件系统称为GPFS文件系统。运行应用程序并通过挂载文件系统访问文件系统节点称为Application Node。

GPFS支持配置一些节点直接连接到磁盘上而其他的一些节点通过这些节点访问磁盘,这种配置组网通常在一些较大的HPC集群中使用,提供一种低成本高性能的组网方式。当GPFS节点为其他节点提供访问磁盘的服务时,这个节点称之为NSD Server,GPFS节点通过NSD Server访问数据时称之为GPFS客户端。服务器通常都会复用,以来降低成本,服务器的许可可以作为客户端使用,但是有客户端许可的服务器不能做服务器角色使用。

每个GPFS集群有一个集群管理服务器,从设置为Quorum的节点中选举得来,并且可以通过命令更改,主要负责监视磁盘状态,检测节点故障,执行节点恢复,确定仲裁节点是否满足启动GPFS daemon管理与远程集群的通信,选择文件系统管理节点。

每个文件服务器都会有一个文件系统管理服务器,文件管理服务器通过集群管理进行选择。文件系统管理服务器通常分布在管理服务器中,文件管理服务器不可以跨节点,但是可以在一台服务器上运行多个文件系统的文件管理服务器,文件管理服务器通常有以下功能。

  • 文件系统配置(添加磁盘,改变磁盘可达性,修复文件系统,挂载、解挂载文件系统)

  • 磁盘空间分配(控制磁盘的那个段的空间分配给哪个节点)

  • 令牌管理(令牌管理服务器通过授权令牌协调访问共享磁盘上的文件传达到读或写一个文件的数据或元数据的权利)。

  • Quota管理(在启用了配额的文件系统中GPFS文件系统管理节点自动承担配额管理的职责)

  •  配置管理(在每个GPFS集群中配置管理服务器通常有主备两台相互协同工作,当主不可用备机接替工作,配置管理服务器通常有Manager Node来充当)

文件系统在执行元数据的写操作时,为了保证数据的一致需要对数据进行加锁,也就会产生锁冲突,为了解决写冲突GPFS引入Meta node,通过Meta node去收集和合并其他节点的元数据的状态更新,维护元数据的完整性。

Meta node节点是在每个文件打开时动态选择的,在每个文件关闭时动态删除,一个文件的读写可以由所有节点操作,一个文件的所有元数据操作都通过Meta node执行(主要包括权限和属性),也只可以通过Meta node执行。通常情况下打开文件操作时间持续最长的会被选举为Meta node。

GPFS在系统架构设计十分灵活,丰富的功能延伸出了多种组网方式,而每种组网方式适配不同的应用模式,常见组网方式包括SAN、NSD、SNC、Remote Cluster混合组网方式。

  • Storage Area Network(SAN) Model要求计算节点直接挂载存储,并且充当计算节点、NSD Server、NSD Client三种角色。NSD Server通过存储网络或直连的方式连接到存储设备上,前端通信协议为GE,后端通信协议为FC或Infiniband,适用于小规模集群。

  • Network Shared Disk(NSD) Server Model要求计算节点安装GPFS软件,并充当NSD Client角色,使用单独的服务器充当NSD Server,负责处理I/O。NSD磁盘BuildingBlock的方式,每两台服务器通过直连的方式连接到NSD Server上,前端通信协议为10GE或Infiniband,后端通信协议为FC或Infiniband,适用于大规模集群扩展。

  • Shared Nothing Cluster(SNC)Model要求计算节点安装GPFS软件,并充当NSD Client角色,使用单独的服务器充当NSD Server,负责处理I/O。NSD采用服务器自带硬盘,或者独立存储,数据之间不使用宽条带方式进行分布,而采用FPO方式进行排布。前端通信协议为10GE或Infiniband,后端通信协议为FC或Infiniband。适用于Hadoop和Mapreduce环境。

  • Remote Cluster Mount Model要求GPFS提供在多个GPFS集群间共享数据的服务,GPFS在其他集群mount本集群的资源,其访问磁盘和本地访问磁盘体验类似,这种跨集群访问可以是在一个数据中心也可以是跨远距离的WAN。 在一个多集群配置中每个集群可以进行分别的管理,在简化管理的同时提供一个多组织数据访问的视图。前端通信协议为10GE或Infiniband,后端通信协议为FC或Infiniband,适用于同城或异地部署环境。

  • 混合组网环境下,GPFS允许在一个集群中混合部署多种组网环境,例如集群中部分主机采用Storage Area Network (SAN) Model,部分主机采用Network Shared Disk (NSD) Server Model方式进行组网。 当多个组网类型同时存在于一个集群中时,影响的只是集群使用NSD的方式,对于上层主机对数据的访问没有影响。

GPFS文件系统解决方案的BuildingBlock如何设计呢?如上文所述GPFS的架构、组网相比Lustre和NAS等来说要较为复杂,如何可以简化存储设计以匹配性能和容量需求,如何让GPFS易于规划、交付和调优,如何让GPFS以近线性的方式进行扩容呢?这里基于最佳项目实践讨论下BuildingBlock设计(Building Block即一个最小的可通过模块叠加实现性能和容量线性扩展的服务器和存储组合)。

Building Block类型一般分为性能和容量2大类型,Capacity Building Block以获取最大容量为目的的BuildingBlock,实际使用中可通过Building Blcok的叠加实现容量和性能的近线性增长;Performance Building Block以获取最大性能为目的的BuildingBlock,实际使用中可通过Building Block的叠加实现性能和容量的近线性增长。

Building Block可选配置选项非常灵活,如计算网络组网方式存储磁盘选项仲裁节点数数据副本等等。

计算网络组网方式默认Infiniband组网,适用于带宽要求较高,时延敏感的应用。通过提供了可选的10GE组网,适用于带宽较低,延时不敏感的应用,如每个BuildingBlock的带宽要求高时,需要通过端口绑定汇聚端口带宽。

 数据存储磁盘选项包括磁盘类型、磁盘框类型(2.5寸2U硬盘框、3.5寸4U高密框)等,可靠性选项需要考虑数据份数(默认值元数据2份),仲裁节点数、磁盘仲裁。仲裁节点数默认值6~8台NSD Server采用3个仲裁节点,10台NSD Server时5个仲裁节点,10台NSD Server以上使用7个仲裁节。磁盘仲裁默认值2~4台NSD Server时,用3个仲裁盘。

Building Block扩展性设计主要考虑2种典型场景,即初次新建交付Building Block已存在GPFS通过Building Block扩容

在初次新建交付多个Building Block场景下,由于GPFS实行宽条带策略,性能存在木桶效应,所以建议每个Building Block配置一致。同时在交付多个Building Block时考虑后续的扩容,即扩容以之前交付的Building Block作为一个扩展模块,保持配置均衡。

在已存在GPFS通过Building Block扩容场景下,当对现有GPFS文件系统进行扩容时,推荐使用GPFS集群中已有的BuildingBlock模式进行配置,保持GPFS文件系统的配置均衡。当对现有GPFS文件系统进行扩容时,需要将新增Building Block的节点在线加入到集群中,新增BuildingBlock中的LUN在线添加为新的NSD,在线添加过程不会中断现有业务。

品略图书馆 http://www.pinlue.com/

详解GPFS文件系统架构、组网和Building Block。相关推荐

  1. 详解GPFS文件系统架构、组网和Building Block

    IBM GPFS(General Parallel FileSystem)是一个分布式.共享.并行集群文件系统,支持从多个节点同时对单一文件系统或一组文件系统的访问.GPFS可以在AIX.Linux和 ...

  2. 赠书| 详解GPFS文件系统架构、组网和Building Block

    此次技术干货分享内容分为GPFS技术实践分享和赠书活动2部分,对技术不太感兴趣的读者可以直接跳到赠书活动部分. 第一部分.GPFS技术实践分享 IBM GPFS(General Parallel Fi ...

  3. ROS入门笔记(七):详解ROS文件系统

    ROS入门笔记(七):详解ROS文件系统 文章目录 01 Catkin编译系统 1.1 Catkin特点 1.2 Catkin工作原理 1.3 使用`catkin_make`进行编译 02 Catki ...

  4. 详解互联网APP架构2.0

    详解互联网APP架构1.0 详解互联网APP架构2.0 经过几个月业务的沉淀,明确出几个具体的业务方向,原本的架构已经不适合现在的项目. 下面从几个方向介绍我们的切换思路: 1.原本架构存在几个问题 ...

  5. 详解互联网APP架构1.0

    详解互联网APP架构1.0 详解互联网APP架构2.0 由于最近负责一个互联网APP项目,需要重新设计架构,这边架构已经设计完成,跟小伙伴们分享下设计思想: 首先我们分析大概的需求,可归结为以下几点: ...

  6. 详解NTFS文件系统

    上篇在详解FAT32文件系统中介绍了FAT32文件系统存储数据的原理,这篇就来介绍下NTFS文件系统.NTFS,用过的的Windows系统的人都知道,它是一个很强大的文件系统,支持的功能很多,存储的原 ...

  7. 消息中间件系列(九):详解RocketMQ的架构设计、关键特性、与应用场景

    内容大纲: RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景 RocketMQ的简介 RocketMQ一个纯java.分布式.队列模型的 ...

  8. kafka 同步提交 异步_详解Kafka设计架构核心——Kafka副本机制详解

    所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝.副本机制有什么好处呢? 1. 提供数据冗余.即使系统部分组件失效,系统依然 ...

  9. DDN收购Intel Lustre系统业务,详解Lustre系统架构、配置和调优

    DDN公司近日宣布收购Intel公司Lustre文件系统业务和相关资产(Intel收购Whamcloud获得Lustre文件系统).这项重要收购将加强DDN在大规模数据方面的全球市场领导地位,帮助DD ...

最新文章

  1. Linux C: IO库函数,文件流缓冲,变参函数
  2. 北京内推 | ​阿里达摩院智能计算实验室认知智能组招收多模态算法实习生
  3. 使用 ABAP Open SQL 的 Select AS 别名,提高代码可读性
  4. python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?
  5. php上传word并展示_这2种简单方法能将Word批量转换PDF
  6. linux下DNS服务器的配置
  7. webpack 了解
  8. ue4 点击启动_4399游戏2020届校招启动
  9. freeswitch 录音录像模块和内核
  10. 使用python抓取天涯帖子,并实现“只看楼主”功能
  11. vue项目引用QRCode生成二维码扫码实现app登录
  12. iOS系统安全学习小结(一)
  13. python怎么去掉视频字幕_用Python处理字幕文件
  14. 理解collate Chinese_PRC_CI_AS ,请看实例:sql语句中如何识别字符串中的中文逗号的问题
  15. 三、mongdb 查询
  16. 功能性需求和非功能性需求
  17. 【随机过程】第二版龚光鲁译课后习题4.5参考答案
  18. python怎么画长方形_python怎么画矩形
  19. JavaScript常见设计模式
  20. Mac苹果电脑上有哪些好用的txt小说阅读器?

热门文章

  1. ADI评估板EVAL-AD9174开发记录---上
  2. 使用H5Stream开发实时监控系统
  3. 据说是世界上最健康的作息
  4. Solidworks二次开发: VC6.0创建的插件移植到VS2013中
  5. 湖北武汉材料员报考砼的施工前中后的质量把控建筑七大员报考
  6. SQLyog —— 图形化工具使用
  7. 美国的历任总统与他们主要贡献
  8. Excel怎么设置密码?这4个方法必须掌握!
  9. Applied Flow Technology Fathom v7.0 2011.03.22 1CD
  10. @Configuration 使用