IBM GPFS分布式存储架构解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IBM GPFS分布式存储架构解析

GPFS (General Parallel File System) 是IBM 公司第一个共享文件系统,GPFS 是一个并行的磁盘文件系统,它保证在资源组内的所有节点可以并行访问整个文件系统。GPFS 提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点上的并行应用同时访问同一个文件或者不同的文件,提供统一命名接口。

GPFS文件系统架构

GPFS物理架构会分为三个层面:存储层、GPFS服务器层以及客户端层。存储层将存储通过SAN 环境划分给服务器节点,服务器节点将这些存储磁盘进行配置并格式化形成最终的GPFS并行文件系统格式,客户端通过以太网与所有的服务器节点联通,他们通过私有文件系统协议来共享这个并行文件系统,实现IO的并发读写。

如图最下层是GPFS的物理磁盘层,存储设备通过SAN环境将存储LUN划分给GPFS的服务提供层,也就是NSD服务器,它是一个集群式的服务提供组件。服务层将其识别到的磁盘格式化为NSD磁盘,这些NSD磁盘再经过GPFS服务层创建为GPFS文件系统,这个文件系统通过网络层的私有协议共享给所有的GPFS客户端,客户端就可以将其作为一个普通文件系统挂载到某一个目录下来存储文件。

GPFS的架构设计并非此一种。我们也可以将GPFS的服务层和客户端层整合为一层,也就是每一个NSD服务器既是服务提供者,同时也是客户端。这样做的好处在于整个架构趋于扁平化,IO深度会浅一些,性能会好。但是它需要更多的SAN资源来支持整个扁而长的集群架构。

GPFS文件系统逻辑架构

关于GPFS文件系统如何实现并行读写,具体原理如下图所示,GPFS的核心Deamon是mmfsd,它会通过子进程调用方式实现对GPFS配置、文件系统以及文件系统头信息的管理。应用程序的读写,通过层层调用实现最终的数据落盘。

其中应用程序不需要任何定制操作,只需要正常调用操作系统文件读写就可以,操作系统在后台调用文件读写的时候会跟GPFS所管理的文件系统I节点进行映射最终实现GPFS文件系统读写的调用。每一个GPFS客户端有自己的局部I节点MAP,GPFS有一个统一的全局I节点MAP表。最终可以实现文件系统读写的一致性。也就是说,普通文件系统的I节点管理,在GPFS架构中是经过了操作系统和GPFS内核配合的虚拟映射之后形成的文件系统管理体系。

GPFS文件系统所涉及到的逻辑对象

•网络共享磁盘NSD

所谓NSD,就是GPFS将存储设备划给服务器的物理磁盘转化为具备GPFS自己的物理磁盘。GPFS文件系统就是要在其基础之上来实现。每一个NSD磁盘需要共享给所有的NSD服务集群节点。

•GPFS文件系统

GPFS文件系统就是在NSD磁盘基础之上创建的共享文件系统。文件系统创建会像其他文件系统一样创建文件系统管理信息及文件系统的地址空间表。

•GPFS服务集群节点及客户端节点

所谓GPFS服务集群节点,就是要提供GPFS文件系统服务的集群节点。服务节点和客户端节点在软件的安装上没有任何区别,他们的区别需要在集群配置时来具体定义。

•Quarum Node 和Tiebreaker Disk

它是GPFS集群为了避免在发生集群节点发生通讯故障,而通过本身资源数目无法判断集群状态,从而辅助判断集群状态的逻辑对象。节点本身可以作为仲裁资源,另外NSD也可以作为仲裁资源。

GPFS集群仲裁机制

GPFS 的数据完整性一方面是由以上提到的数据安全机制来保证,另外也通过一套可用性判断机制来完全保证数据完整性与系统安全。GPFS 提供三套不同的quorum 机制来判断系统当前的状态,其中File Descriptor Quorum 是系统内置的,不能做配置,另外两种Node quorum(仲裁节点机制)和Tiebreaker Diskquorum(仲裁磁盘机制)方式只能二者选其一,使用那种方式要基于我们的系统环境与可靠性分析。

•仲裁节点机制:

通过主机状态的来判断系统可用性的机制。GPFS 文件系统集群中,可以设置多个主机节点为仲裁节点。当超过半数的中袋节点在线时,判断系统为正常,反之,将关闭文件系统。仲裁节点数目最多可

以128个。如果采用这种机制,而我们的仲裁节点为2N+1,意味着我们只能容忍N台机器宕机。所以当机器数目越少,这种机制的故障容忍程度就越差。

•仲裁磁盘机制:

通过磁盘的状态来判断系统的可用性。我们可以设置系统通过监视指定的一些磁盘作为仲裁磁盘。当超过半数的Tiebreaker Disk掉线时,则判断系统故障,将自动关闭文件系统。Tiebreaker最多只能配置两个用来监控磁盘状态的仲裁主机,当2 台仲裁主机都宕机的话,GPFS 系统也将会关闭。

比如我们有5个服务节点,那么任取两个节点作为仲裁主机,取2N+1个磁盘来作为仲裁盘,那么系统可以容忍的故障就是N个仲裁盘离线和1个仲裁节点离线。其优势在于节点数较少时可用性较高,但节点数较多的情况建议采用仲裁节点模式。

GPFS Failure Group失效组

一系列具有相同物理路径的网络共享磁盘组成一个Failure Group,Failure Group之间可以实施数据复制或日志复制来保证同一份数据可以有多分数据或者日志拷贝,以保证物理磁盘故障不会导致数据丢失。比如,在做NSD设计的时候,我们可以将来自同一个物理存储的卷作为一个Failure Group。这样每一份数据相当于在不同的存储设备上都可以做数据副本或者是日志的副本。

GPFS文件系统伸缩性

首先GPFS集群中的节点具备很好的伸缩性。我们可以在线增加或者删除GPFS节点,而其中的并发任务并不会受到影响。其次GPFS文件系统具备很好的伸缩性,我们可以在线对文件系统扩容或者缩减,都不会影响到并发业务。

GPFS文件系统负载均衡

所谓负载均衡也就是说我们在设计GPFS集群的时候,希望所有的客户端能将IO负载近似平均地分担到每一个集群服务节点。

每一个NSD磁盘会有相应配置来决定服务节点服务的先后顺序,比如NSD1和NSD2会定义为“节点1、节点2、节点3、节点4”的顺序;而NSD3和NSD4会定义为“节点4、节点3、节点2、节点1”的顺序。

相关文档
最新文档