GPFS是IBM公司通过完善和发展其Tiger Shark文件系统发展而来。GPFS通过共享磁盘结构来实现其强大的扩展性。一个GPFS系统由许多集群节点组成,GPFS文件系统和应用程序在上面运行。这些节点通过交互网络架构(Switch Fabric)网络连接磁盘。所有节点对所有磁盘拥有相同的访问权。文件被分割存储在文件系统中所有的磁盘上。这种条带化的存储不仅能够保证各个磁盘负载均衡,还能够使系统获得最高的吞吐量。
GPFS文件系统架构图如下:
将文件系统节点和共享磁盘连接起来的交互网络架构(Switch Fabric)可能包含SAN网络,例如FC和iSCSI。另外,个人本地磁盘也可以挂载到一些I/O节点,文件系统节点通过一个运行在通信网络上的软件层来对这些磁盘进行访问,例如IBM的VSD(virtual share disk),其运行在SP网络上,就是这样的一个软件层。
来自多个节点的对磁盘进行的读和写需要进行同步,否则用户数据和元数据将会崩溃。GPFS采用分布式锁机制来同步对磁盘的访问。为了实现系统的高吞吐量,大文件需要进行分块,GPFS没有依赖额外逻辑卷管理层(logical volume manager (LVM) layer)来实现分块,而是自己实现了分块机制。通过实现分块机制,GPFS获得了对容错和负载均衡的控制。(一些LVM也有类似的功能,但是他们不可能获得网络的拓扑)。
GPFS采用256KB(也可以是16KB-1MB)的大数据块作为磁盘块大小。当某个单线程的应用程序需要读一个文件时,GPFS采用prefetch机制预先将文件读到本地IO,后端采用并行IO的方式,最大限度的发挥带宽和磁盘的优势将文件提取到本地。同样,不再需要的脏数据缓存也采用并行IO的方式写到磁盘。GPFS能够识别顺序,反序等读写模式,对于不常见的读写模式,GPFS提供接口传递prefetch命令给文件系统。
GPFS也是一种日志文件系统,为不同节点建立各自独立的日志。日志中记录MetaData的分布,一旦节点发生故障,可以保证快速恢复数据。GPFS 通过一套复杂的信令管理机制提供数据一致性,通过这套机制允许任意节点通过各自独立的路径到达同一个文件。即使节点无法正常工作, GPFS 也可以找到其它的路径。GPFS在数据保护方面采用数据复制的方式进行,GPFS实现了一个较为简单的软件RAID模式,支持数据块级别的文件复制。
参考:
1.http://www.it165.net/admin/html/201307/1485.html
2.GPFS: A Shared-Disk File System for Large Computing Clusters