构建高可用、高性能的 GPFS 集群

3683阅读 0评论2010-05-13 p2pt
分类:服务器与存储

本文通过一个实际的生产系统案例 , 主要介绍了搭建高可用并行文件系统集群(GPFS)的设计思路和设计过程中的问题解决。本文也通过案例介绍了 GPFS 并行文件系统的一些基本框架和原理 ,GPFS 系统的可靠性分析方法,以及如何最大可能的提高 GPFS 系统的性能与可靠性。

GPFS (General Parallel File System) 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术 ( VSD )。作为这项技术的核心, GPFS 是一个并行的磁盘文件系统,它保证在资源组内的所有节点可以并行访问整个文件系统。而且针对此文件系统的服务操作,可以同时安全地在使用此文件系统的多个节点上实现。 GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上。它提供了许多标准的 UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。 GPFS 也支持 UNIX 文件系统的工具,即:用户可以像使用普通文件系统一样使用基于 GPFS 的文件系统,唯一不同的在于管理 GPFS 文件系统的命令。 GPFS 提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点(这些节点属于同一个节点组)上的并行应用同时访问同一个文件或者不同的文件。

GPFS 文件系统基本上由三层架构组成:磁盘,网络共享磁盘(NSD), GPFS 文件设备,如下图所示。




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

根据以上三种判断机制,GPFS 自动判断系统的状态,当异常发生时自动关闭系统以保护系统和数据的完整性。

基于上面阐述的 GPFS 可用性机制,我们可以看出 GPFS 是通过上述的三种 quorum 机制来检查资源是否超过半数状态正常来判断系统状态好坏。我们在设计 GPFS 文件系统集群的时候需要注意最好保证各种资源数都为 2N+1 个(N 是指数量),也即数量为奇数,来获得系统最大的可用性。







测试系统需要构建一个高性能且高可靠的文件系统平台。其基本要求如下:

  1. 文件系统读写带宽至少达到 720MByte/s。
  2. 工作负荷每天超过 16 小时或两个轮班。
  3. 由 4 台主服务器和 2 台存储提供服务。
  4. 至少 2TB 的空间 , 存放的文件大小一般在 600MB 左右,文件传输 80% 采用 samba 或 NFS,20% 采用 TFTP。





我们最后采用的方案是 , 增加一台配置较低,但可用性较高的服务器,并使用这第五台服务器上的一个 Raid 1 磁盘作为第三个 Failure Group 磁盘。总共 5 个节点采用 Node Quorum 方式。可以支持任意两台的服务器同时离线,任意一台存储的离线。

通过以上的原理与可靠性分析,我们最终的设计方案如下。

硬件结构

硬件结构分三层,如下图(图 2)所示。




本 GPFS 方案系统逻辑结构

GPFS 的逻辑结构如下图(图 3 )所示。也基本分为三层。




解决方案的性能分析

要实现 720MByte/s 的吞吐量,就要求从服务输出端,到磁盘存储系统,所有通道都要满足大于 720MByte/s 的带宽。以下我们逐个分析所有路径中设备的性能。

我们可以看到,整个通道中带宽都大于应用需求,保证了在物理带宽上不存在任何瓶颈。

解决方案的可靠性分析

本方案的在设计上保证了无任何单点故障,也即任何一台设备故障都不会引起系统的可用性。下面我们就各个层面的可靠性做一个分析。

本系统中所有设备都是冗余配置,也即任意单个设备都能在线更换,整个系统所有的资源都能实现按需的动态的扩展与收缩 , 真正实现了无宕机(down time)的高可用性。保障了系统的 7x24 小时的无故障运行。

采用 GPFS 并行文件系统集群这一方案满足了生产部的测试服务器要求,成功的解决了高性能与高可靠的技术难题。总结来说采用 GPFS 方案有以下优势。







目前,新的版本 GPFS3.2 已经发布。在扩展性和管理特性上都有比较多的增强,但其高可用机制与原理仍然与 GPFS 3.1(即本文所介绍的内容)保持一致。

上一篇:AIX 6 中的 JFS2 文件系统快照(Snapshot)功能入门与使用技巧
下一篇:pvid的修改和recreatevg命令的使用