规划GPFS

尽管您可以在设置GPFS配置后对其进行修改,但在安装和初始设置之前需要考虑一些因素,这将使您获得更高效且立即有用的文件系统。

在配置期间,GPFS要求您指定多个反映硬件资源和操作环境的操作参数。 在创建文件系统期间,您可以指定基于文件的预期大小的参数,也可以使默认值生效。

安装工具包也可用于帮助在Linux节点上安装GPFS。有关更多信息,请参见安装工具包概述。

规划GPFS包括:

  1. 硬件要求
  2. 软件要求
  3. IBM Spectrum Scale产品版本
  4. 可恢复性注意事项
  5. GPFS集群创建注意事项
  6. IBM Spectrum Scale许可证指定
  7. 磁盘注意事项
  8. 文件系统创建注意事项

硬件要求

您可以按照本主题中列出的步骤验证硬件是否符合GPFS要求。

  1. 有关最新列表,请参阅IBM知识中心的IBM Spectrum Scale FAQ:

  2. 支持的服务器硬件

  3. 经过测试的磁盘配置

  4. 最大的集群大小

  5. 协议的附加硬件要求

  6. 提供足够的磁盘来包含文件系统。 磁盘可以是:

  7. SAN连接到集群中的每个节点

  8. 连接到一个或多个NSD服务器

  9. 直接连接的磁盘和连接到NSD服务器的磁盘的混合

有关其他信息,请参阅"网络共享磁盘(NSD)创建注意事项"。

  1. 在进行基于网络的NSD I/O时,GPFS在其守护进程之间传递大量数据。对于NSD服务器到客户端通信,建议在下列情况下配置专用高速网络,仅用于GPFS通信:

  2. NSD磁盘配置有提供远程磁盘功能的服务器。

  3. 多个GPFS集群使用NSD网络I/O共享数据。

有关其它信息,请参阅"磁盘注意事项"。

GPFS通信需要每个GPFS节点的静态IP地址。 GPFS网络不允许将地址传输到另一台计算机的IP地址接管操作。 GPFS未使用的同一计算机中的其它IP地址可以参与IP接管。 为了提供可用性或附加性能,GPFS可以使用通过使用交换机端口聚合(EtherChannel )或通道绑定等技术聚合多个网络适配器而创建的虚拟IP地址。

集群导出服务(CES)具有专用的网络地址来支持SMB、NFS、对象和故障转移或故障恢复操作。文件和对象客户端使用公共IP访问GPFS™文件系统上的数据。

有关其它信息,请参阅"IBM Spectrum Scale:管理指南"中的"CES网络配置"。

软件要求

GPFS规划包括了解最新的软件要求。

注意: 本主题列出了安装成功后使用特定功能的附加软件需求。它没有列出安装IBM Spectrum Scale软件包的依赖项。

  1. AIX,Linux和Windows支持GPFS。
  2. 对于现有GPFS 3.5集群,远程群集访问需要OpenSSL。
  3. 在Linux节点上构建GPFS可移植层需要内核开发文件和编译器实用程序。 每个受支持的Linux发行版所需的RPM或软件包是:

– SLES Linux RPM包

  • kernel-default-devel

  • cpp

  • gcc

  • gcc-c++

  • binutils

– Red Hat Linux RPM包

  • kernel-devel

  • cpp

  • gcc

  • gcc-c++

  • binutils

– Ubuntu Linux 软件包

  • linux-headers

  • cpp

  • gcc

  • g++

  • binutils

  1. 要使用活动文件管理(AFM),需要以下包:

nfs-utils

  1. 要使用CNFS,需要以下包:

ethtool

nfs-utils (在Ubuntu: nfs-common)

rpcbind

psmisc

iputils (在Ubuntu: iputils-arping)

  1. 要使用 memchconfig numaMemoryInterleave 参数,需要以下包:

numactl

  1. 要在Ubuntu Linux上使用 mmhealth 命令,需要以下包:

sqlite3

  1. 对于AIX和Linux上的IBM Spectrum Scale监视服务,需要以下包:

python 2.7或更高版本

注意: 建议在AIX上使用python 2.7.5或更高版本。 该软件包是AIX Toolbox for Linux Applications的一部分。 但是,Linux或AIX不支持python 3.0。

  1. 要使用性能监视工具,需要以下软件包:

– RHEL上的boost-regex

– SLES上的libboost_regex

– Ubuntu Linux上的libboost-regex-dev

要点:确保在安装性能监视工具之前在系统上安装了这些软件包。

有关安装先决条件的列表,包括那些特定于协议的前提条件,请参见"安装先决条件"。

有关最新列表,请参阅IBM Knowledge Center中的IBM Spectrum Scale FAQ:

  1. AIX环境
  2. Linux发行版
  3. Linux内核版本
  4. Windows环境

可恢复性注意事项

健全的文件系统规划需要几个关于可恢复性的决策。做出这些决定后,GPFS参数使您能够创建高可用性的文件系统,并从故障中快速恢复。

  1. 在磁盘级别,请考虑通过指定与每个磁盘关联的故障组来准备用于文件系统的磁盘。 使用此配置,信息不易受单点故障的影响。 请参阅"网络共享磁盘(NSD)创建注意事项"。

  2. 在文件系统级别,请考虑通过元数据和数据复制参数进行复制。 请参见"文件系统复制参数"。

    此外,GPFS还提供多层保护,以防止各种类型的故障:

  3. "节点故障"

  4. "网络共享磁盘服务器和磁盘故障"

  5. "使用持续预留(PR)减少恢复时间"

节点故障

如果某个节点发生故障,GPFS将防止从故障节点继续I/O,并为故障节点重播文件系统元数据日志。

GPFS通过称为磁盘租赁的GPFS特有的隔离机制,防止来自故障节点的I/O的继续。当节点访问文件系统时,它获得允许提交I/O的磁盘租约。但是,当节点失败时,该节点不能获得或续订磁盘租约。当GPFS选择另一个节点为故障节点执行恢复时,它首先等待,直到故障节点的磁盘租约到期。

这允许完成以前提交的I/O,并提供一致的文件系统元数据日志。等待磁盘租约到期还可以避免后续恢复步骤中的数据损坏。

要减少磁盘租约到期所需的时间,可以使用持续预留(SCSI-3协议)。 如果启用了Persistent Reserve(配置参数: usePersistentReserve ),则GPFS会通过屏蔽使用了名为Persistent Reserve的磁盘子系统功能的故障节点来阻止I/O从故障节点继续运行。 持续预留允许故障节点更快地恢复,因为GPFS不需要等待故障节点上的磁盘租约到期。 有关其他信息,请参阅"使用持续预留减少恢复时间"。 有关从节点故障中恢复的详细信息,请参阅"IBM Spectrum Scale:问题确定指南"中的"安装和配置问题"。

在从节点故障恢复文件系统的过程中,I/O会受到暂时的影响。恢复涉及重建在故障时可能正在修改的元数据结构。如果故障节点在发生故障时充当文件系统管理器,则延迟会更长,并且与故障发生时文件系统上的活动级别成正比。在这种情况下,故障转移文件系统管理任务自动发生在幸存节点上。

管理节点故障还需要适当调整解决方案的大小,以便集群中的其余节点能够支持节点停机的情况,如计划中的系统维护或在带宽和吞吐量方面的非计划节点故障。对于协议,这包括支持SMB、NFS或对象连接,如果某个节点发生故障,这些连接必须故障转移到集群中的另一个CES节点。

仲裁:

GPFS使用称为仲裁的集群机制来在节点发生故障时保持数据一致性。

仲裁是根据少数服从多数原则运作的。这意味着在任何节点可以挂载和访问文件系统之前,集群中的大多数节点必须成功通信。这将使任何与集群隔离的节点(例如,由于网络故障)无法将数据写入文件系统。

在节点故障情况下,需要维护仲裁以使集群保持在线状态。如果由于节点故障而未维护仲裁,GPFS将会澡其余节点上卸载本地文件系统,并尝试重新建立仲裁,此时文件系统将进行恢复。因此,必须仔细考虑仲裁节点集(有关其它信息,请参阅"选择仲裁节点")。

必须在群集内维护GPFS仲裁,GPFS才能保持活动状态。如果仲裁语义被破坏,GPFS将执行恢复以尝试再次达到仲裁。GPFS可以使用以下两种方法中的一种来确定仲裁:

  1. 节点仲裁
  2. 带有仲裁磁盘的节点仲裁

节点仲裁:

节点仲裁是GPFS的默认仲裁算法。

使用节点仲裁:

  1. 仲裁被定义为GPFS集群中_显式定义_仲裁节点的一半加一。

  2. 无默认的仲裁节点; 您必须指定哪个节点具有此角色。

    例如,在图23中,有三个仲裁节点。在此配置中,只要有两个仲裁节点可用,GPFS就保持活动状态。

图23.使用节点仲裁的GPFS配置

带有仲裁磁盘的节点仲裁:

_ _ 在小型GPFS集群上运行时,您可能希望在只有一个幸存节点的情况下使集群保持联机状态。

_ _ 要实现此目的,您需要在仲裁配置中添加仲裁磁盘。 只要您可以访问大多数仲裁磁盘,带有仲裁磁盘的节点仲裁允许您使用少至一个可用的仲裁节点运行(请参阅图24)。 启用带有仲裁磁盘的节点仲裁需首先将一个或多个节点指定为仲裁节点。 然后使用 mmchconfig 命令中的 tiebreakerDisks 参数将一到三个磁盘定义为仲裁磁盘。 您可以将任何磁盘指定为仲裁盘。

当使用带有仲裁磁盘的节点仲裁时,集群节点和仲裁磁盘都有特定的规则。

集群节点规则:

  1. 最多有八个仲裁节点。
  2. 所有仲裁节点都需要访问所有仲裁磁盘。
  3. 在使用传统的基于服务器(非CCR)配置存储库时,您应该将主和从集群配置服务器作为仲裁节点包括在内。
  4. 您可能拥有无限数量的非仲裁节点。
  5. 如果网络连接失败,导致仲裁丢失,并且仲裁是由仲裁磁盘维护的,则使用以下原理重新建立仲裁。如果一个组有集群管理器,它就是"幸存者"。如果集群管理器与少于 minQuorumNodes 配置参数定义的最小数量的仲裁节点进行通信,则可以放弃其角色。在这种情况下,具有最少仲裁节点数的其它组(如果存在)可以选择新的群集管理器。

更改仲裁语义:

使用群集配置存储库(CCR)存储配置文件时,无论仲裁语义如何,仲裁节点总数限制为8,但可以通过发出 mmchconfig tiebreakerDisks 命令随时启用或禁用仲裁磁盘的使用。 更改将立即生效,并且在进行此更改时无需关闭GPFS。

当使用传统的基于服务器的(非CCR)配置存储库时,可以定义8个以上的仲裁节点,但只有在没有定义仲裁磁盘的情况下才可以这样做:

  1. 若要在基于服务器的(非CCR)配置存储库下配置8个以上的仲裁节点,必须禁用带仲裁磁盘的节点仲裁并重新启动GPFS守护进程。若要禁用带仲裁磁盘的节点仲裁,请执行以下操作:

a.发出 mmshutdown -a 命令以关闭所有节点上的GPFS。

b.通过发出 mmchconfig tiebreakerdisks=no 来更改仲裁语义。

c.添加其它仲裁节点。

d.发出 mmstartup -a 命令以在所有节点上重新启动GPFS。

  1. 如果删除仲裁节点且新配置的仲裁节点少于8个,则可以将配置更改为带仲裁磁盘的节点仲裁。 要使用带仲裁磁盘的节点仲裁,请执行以下操作:

a.发出 mmshutdown -a 命令以关闭所有节点上的GPFS。

b.删除适当的仲裁节点,或者运行 mmchode --nonquorum 以便将它们放置到客户端。

c.通过发出 mmchconfig tiebreakerdisks ="diskList"命令来更改仲裁语义。

  1. _ __diskLis_t包含仲裁磁盘的名称。
  2. 该列表包含磁盘的NSD名称,最好是一个或三个磁盘,用分号(;)分隔并用引号括起来。

d.发出 mmstartup -a 命令以在所有节点上重新启动GPFS。

仲裁磁盘规则:

  1. 您可以拥有一个,两个或三个仲裁磁盘。 但是,您应该使用奇数个仲裁磁盘。
  2. 在互连失败后出现的仲裁节点组中,只有那些可以访问大多数仲裁磁盘的人才可以成为幸存者组的候选者。
  3. 仲裁磁盘必须连接到所有仲裁节点。
  4. 在基于CCR的群集中,添加仲裁磁盘时:

– 如果仲裁磁盘是文件系统的一部分,则GPFS应该启动并运行。

– 如果仲裁磁盘不是文件系统的一部分,则GPFS可以正在运行或关闭。

在图24中,GPFS保持活动状态,只有一个可用的仲裁节点和两个可用的仲裁缓冲磁盘。

图24 使用带仲裁磁盘的节点仲裁的GPFS配置

当仲裁节点检测到网络连接丢失时,但在GPFS运行决定该节点是否将保留在集群中的算法之前, tiebreakerCheck 事件将被触发。此事件仅在使用带仲裁磁盘的仲裁节点的配置中生成。它还会由质询-响应线程周期性地在集群管理器上触发,以验证节点是否仍然可以继续作为集群管理器。

选择仲裁节点:

要使用有效的仲裁节点配置系统,请遵循以下规则。

  1. 选择可能保持活动状态的节点

– 如果某个节点可能重新启动或需要维护,请不要将该节点选为仲裁节点。

  1. 选择具有不同故障点的节点,例如:

– 位于不同机架上的节点

– 连接到不同电源面板的节点

  1. 您应该选择GPFS管理和服务功能所依赖的节点,例如:

– 主配置服务器

– 从配置服务器

– 网络共享磁盘(NSD)服务器

  1. 选择奇数个节点作为仲裁节点

– 建议的最大值为八个仲裁节点。

  1. 拥有大量仲裁节点可能会增加启动和故障恢复所需的时间。

– 拥有七个以上的仲裁节点并不能保证更高的可用性。

– 所有仲裁节点都必须能够访问所有仲裁磁盘。

网络共享磁盘服务器和磁盘故障

数据变得不可用的三个最常见原因是磁盘故障、无冗余的磁盘服务器故障以及磁盘路径故障。

如果出现GPFS无法读取或写入磁盘的磁盘故障,GPFS将停止使用该磁盘,直到它恢复到可用状态。您可以通过以下方法防止磁盘故障导致的数据可用性损失:

  1. 利用独立磁盘冗余阵列(RAID)设备提供的硬件数据保护(参见图25)

图25. 用于GPFS文件系统的高可用SAN配置示例

  1. 利用GPFS数据和元数据复制功能(见"增加的数据可用性")以及故障组的指定(参见"网络共享磁盘(NSD)创建注意事项"和图26)

图26.使用GPFS复制进行配置以提高可用性

建议您将RAID视为数据的第一级冗馀,并在需要额外保护的情况下添加GPFS复制。

如果发生了导致GPFS客户端无法再与提供远程访问磁盘的节点联系的NSD服务器故障,则GPFS将停止使用该磁盘。通过在多个NSD服务器节点上使用公共磁盘连接并为每个公共磁盘指定多个网络共享磁盘(NSD)服务器,可以防止失去NSD服务器的可用性。

注意: 如果磁盘路径出现故障,GPFS将报告磁盘故障并将磁盘标记为 down 。 要使磁盘重新联机,请首先按照存储供应商提供的说明确定并修复故障。

防止由于路径故障而导致的数据可用性损失

通过执行以下操作,可以防止因磁盘路径故障而导致数据可用性丢失:

  1. 为每个磁盘创建多个NSD服务器

    由于GPFS确定文件系统中磁盘的可用连接,因此建议您始终为每个磁盘定义多个NSD服务器.GPFS允许您为每个NSD定义最多八个NSD服务器。 在已定义NSD服务器的SAN配置中,如果物理连接断开,GPFS将动态切换到下一个可用的NSD服务器(如服务器列表中所定义)并继续提供数据。 当GPFS发现路径已修复时,它将返回本地磁盘访问。 这是默认行为,可以通过指定文件系统挂载选项来更改。 例如,如果您从不希望节点使用磁盘的NSD服务器路径,即使本地路径失败,也可以将 -o useNSDserver 挂载选项设置为 never 。您可以使用 mmchfsmmmount , mmremotefsmount 命令设置挂载选项。

重要提示 :在Linux on Z中,必须有多个到一个SCSI磁盘(LUN)的路径,以避免单条路径失败。将路径合并到一个磁盘是由内核完成的(通过device-mapper组件)。一旦路径合并,就会创建一个新的逻辑多路径设备,用于任何进一步的(管理)任务。(不能再使用单一路径。)

多路径设备接口名称取决于发行版,并且是可配置的:

**SUSE **

/dev/mapper/Unique_WW_Identifier

例如:/dev/mapper/36005076303ffc56200000000000010cc

Red Hat

/dev/mapper/mpath*

要获取有关多路径设备的信息,请使用多路径工具,如以下示例所示:

multipath -ll

系统显示类似如下所示的输出:

36005076303ffc56200000000000010cc dm-0 IBM,2107900

[size=5.0G][features=1 queue_if_no_path][hwhandler=0]

_ round-robin 0 [prio=2][active]

_ 1:0:0:0 sdb 8:16 [active][ready]

_ 0:0:0:0 sda 8:0 [active][ready]

请参阅IBM Knowledge Center中的IBM Spectrum Scale FAQ中的问题"设置DM-MP多路径服务时的注意事项"。

设置DM-MP多路径服务时的注意事项

要设置DM-MP多路径服务,根据节点分布和存储控制器固件级别,您可能需要修改 /etc/multipath.conf 文件以满足各自的存储要求。 可以从 /usr/share/doc 目录复制 multipath.conf 文件的默认副本。

作为示例,使用IBM产品DS3500(1746)、DS5020(1814)、DS4800(1815)和DS5300(1818)测试了以下属性:

 device {vendor                  "IBM"product                 "1746"getuid\_callout          "/sbin/scsi\_id -g -u -s /block/%n"prio\_callout            "/sbin/mpath\_prio\_rdac /dev/%n"features                "0"hardware\_handler        "1 rdac"path\_selector           "round-robin 0"path\_grouping\_policy    group\_by\_priofailback                immediaterr\_weight               uniformno\_path\_retry           failrr\_min\_io               1000path\_checker            rdac}

注意

要进行GPFS故障转移,必须执行以下步骤:

  1. 必须设置以下参数:

  2. features "0"

  3. failback immediate

  4. no_path_retry fail

  5. 必须发出 mmnsddiscover -a 命令才能使NSD服务器重新发现磁盘。

另外,请参阅

  1. IBM Spectrum Scale wiki

  2. 有关详细信息,请参阅每个发行版的多路径文档。 例如:

  3. RHEL6 DM多路径配置和管理

  4. SLES11 管理设备的多路径I/O.

  5. 使用I/O驱动程序为磁盘提供多条路径以实现故障转移

    故障转移是一种路径管理算法,可提高设备的可靠性和可用性,因为系统会自动检测一个I/O路径何时出现故障并通过备用路径重新路由I/O.

使用持续预留(PR)减少恢复时间

持续预留(PR)提供了一种减少节点故障恢复时间的机制。

要启用PR并获得恢复性能改进,您的集群需要特定的环境:

  1. _ __所有_磁盘必须具有PR功能。要获得受PR支持的设备的列表,请参阅IBM知识中心中的IBM Spectrum Scale FAQ中的这个问题。

  2. 在AIX上,所有磁盘都必须是hdisk。 从3.5.0.16开始,还可以将逻辑卷用作 descOnly 磁盘,而不禁用Persistent Reserve。 有关更多信息,请参阅IBM知识中心中的IBM Spectrum Scale FAQ。

    在Linux上,通常所有磁盘必须是generic磁盘(/dev/sd*)或DM-MP(/dev/dm-*)磁盘。

    但是,对于Z上的Linux,SCSI磁盘需要多路径设备名称,并且名称取决于发行版,并且是可配置的。有关更多信息,请参见"防止由于路径故障导致数据可用性损失"。

  3. 如果磁盘具有已定义的NSD服务器,则所有NSD服务器节点必须运行相同的操作系统(AIX或Linux)。

  4. 如果磁盘通过SAN连接到所有节点,则集群中的所有节点必须运行相同的操作系统(AIX或Linux)。

    要在使用PR时更快地恢复,请在mmchconfig命令上设置 failureDetectionTime 配置参数。 例如,为了快速恢复,建议值为10:mmchconfig failureDetectionTime = 10

    必须通过在 mmchconfig 命令上指定 usePersistentReserve 参数来显式启用PR。如果设置usePersistentReserve=yes,GPFS将尝试在所有具有PR功能的磁盘上设置PR。如果所有后续的NSD都具有PR功能,则它们都是启用PR的。但是,仅在主集群中支持PR。因此,从另一个集群访问支持PR的磁盘必须通过位于主集群中的NSD服务器,而不是直接访问磁盘(例如,通过SAN)。

GPFS集群创建注意事项

使用 mmcrcluster 命令创建GPFS集群。

在受支持的Linux发行版上,您可以使用安装工具包创建GPFS集群。 有关更多信息,请参阅"安装工具包概述"。

表19详细介绍了群集创建选项,如何更改选项以及每个选项的默认值。

表19. GPFS集群创建选项

选项 用于更改选项的命令 默认值
"创建IBM Spectrum Scale集群" mmaddnode** mmdelnode**
节点指定: managerclient 。 请参阅"创建IBM Spectrum Scale集群" mmchnode client
节点指定: quorumnonquorum. 请参阅"创建IBM Spectrum Scale集群" mmchnode nonquorum
"远程shell命令" mmchcluster /usr/bin/ssh
"远程文件复制命令" mmchcluster /usr/bin/scp
"集群名称" mmchcluster 主GPFS集群配置服务器的节点名称。
集群配置信息。 请参阅"IBM Spectrum Scale集群配置信息" mmchcluster 启用集群配置存储库(CCR)。
GPFS管理适配器端口名称。 请参阅"GPFS节点适配器接口名称" mmchnode 与GPFS通信适配器端口名称相同。
GPFS通信适配器端口名称。请参阅"GPFS节点适配器接口名称"。 mmchnode
"集群的UID域" mmchconfig GPFS集群的名称。
"自动启动GPFS" mmchconfig no
"集群配置文件" 不适用

GPFS节点适配器接口名称

适配器接口名称指的是GPFS用于与节点通信的主机名或IP地址。具体来说,主机名或IP地址标识GPFS守护进程或GPFS管理命令所通信的通信适配器。

管理员可以为集群中的每个节点指定两个节点适配器接口名称:

GPFS节点名

指定GPFS守护进程用于节点间通信的节点适配器接口名称。

GPFS管理节点名

指定GPFS管理命令在节点之间通信时使用的节点适配器接口的名称。如果没有指定,GPFS管理命令将使用GPFS守护进程使用的相同节点适配器接口

如图所示

这些名称可以通过传递给 mmaddnodemmcrcluster 命令的节点描述符来指定,以后可以使用 mmchnode 命令进行更改。

如果节点上有多个适配器,则可以通过 mmchconfig 命令上的 subnets 参数将此信息传递给GPFS。

创建IBM Spectrum Scale集群

创建IBM Spectrum Scale集群时,您可以创建一个或多个节点的小集群,然后向其中添加节点,也可以一步创建一个包含所有节点的集群。

有两种方法可用于创建IBM Spectrum Scale集群:

  1. 运行 mmcrcluster 命令以创建包含一个或多个节点的集群,然后根据需要运行 mmaddnode 命令以将节点添加到集群。 当您想要逐步构建集群时,此方法更灵活,更合适。

  2. 运行 mmcrcluster 命令以创建集群,同时将一组节点添加到集群。 当您已经知道要添加到群集的节点时,此方法会更快。

    无论选择哪种方法,都可以使用 mmaddnode 命令将节点添加到集群,或使用 mmdelnode 命令删除节点。 有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考指南"中的"mmcrcluster命令和mmaddnode命令"主题。

    使用这两个命令,可以指定节点描述符以标识要添加到集群的节点。 您可以在命令行或单独的节点描述符文件中列出节点描述符。 节点描述符具有以下格式:

NodeName:NodeDesignations:AdminNodeName

_NodeName_是必需参数。 _NodeDesignations_和_AdminNodeName_是可选参数。

NodeName

用于GPFS守护进程到守护进程通信的节点的主机名或IP地址。

用于节点的主机名或IP地址必须引用GPFS守护进程所使用的通信适配器。不允许使用别名。

您可以在NSD创建时指定IP地址,但它将被转换为必须与GPFS节点名称匹配的主机名。您可以使用以下任何一种形式指定节点:

  1. 短主机名(例如,h135n01)
  2. 长主机名(例如,h135n01.frf.ibm.com)
  3. IP地址(例如,7.111.12.102)

注意 :主机名应始终包含至少一个字母字符,并且不应以连字符(-)开头。

无论您指定哪种形式,其他它种形式都必须在DNS或hosts文件中正确定义。

NodeDesignations

一个可选的、连字符"-"分隔的节点角色列表。

  1. manager | client – 指示节点是否是可以从中选择文件系统管理器和令牌管理器的节点池的一部分。 默认值为 client ,这意味着不在管理器节点池中包含该节点。 有关管理器节点功能的详细信息,请参阅"文件系统管理器"。

    通常,最好将多个节点定义为管理器节点。您指定多少节点为管理器取决于工作负载和您拥有的GPFS服务器许可证的数量。如果运行大型并行作业,则可能需要比支持Web应用程序的四节点集群中更多的管理器节点。作为指南,在大型系统中,每个GPFS文件系统应该有一个不同的文件系统管理器节点。

  2. quorum | nonquorum – 此指定是否应将节点包括在派生仲裁的节点池中。默认为 nonquorum 。您至少需要将一个节点指定为仲裁节点。建议您至少将主集群配置服务器和从集群配置服务器以及NSD服务器指定为仲裁节点。

您指定的仲裁节点数取决于您是使用节点仲裁还是带仲裁磁盘的节点仲裁。 请参阅"仲裁"。

AdminNodeName

指定可选字段,该字段由管理命令用于在节点间通信的节点名组成。

如果未指定_AdminNodeName_,则使用_NodeName_值。

将节点添加到IBM Spectrum Scale集群时,请遵循以下规则:

  1. 虽然节点可以从多个集群挂载文件系统,但节点本身可能只驻留在单个集群中。 可使用 mmcrclustermmaddnode 命令将节点添加到群集中。
  2. 添加到群集时,节点必须可用。 如果在发出命令时列出的任何节点不可用,则会显示列出这些节点的消息。 您必须更正每个节点上的问题,然后发出 mmaddnode 命令以添加这些节点。
  3. 将至少一个但不超过七个节点指定为仲裁节点。 不使用仲裁磁盘时,可以指定更多的仲裁节点,但如果可能,建议使用少于8个仲裁节点。 使用基于服务器的配置存储库时,建议您将集群配置服务器指定为仲裁节点。 您将拥有多少个仲裁节点取决于您是否打算使用带有仲裁磁盘算法的节点仲裁或常规的基于节点的仲裁算法。 有关更多详细信息,请参阅"仲裁"。

IBM Spectrum Scale集群配置信息

您可以使用集群配置存储库(CCR)来维护集群配置信息。

使用群集配置存储库(CCR)来维护群集配置信息是一种很好的做法。 默认情况下, mmcrcluste r命令启用CCR。 有关更多信息,请参阅_"IBM Spectrum Scale:命令和编程参考指南_"中的"mmcrcluster命令和mmchcluster命令"主题。

如果不使用集群配置存储库(CCR),则必须将IBM Spectrum Scale集群中的一个节点指定为主集群配置服务器,以维护配置信息。 最好还指定从集群配置服务器。 如果主服务器出现故障而您没有从服务器,则无法访问群集配置数据文件,这会导致您输入的任何IBM Spectrum Scale管理命令失败。 请注意以下信息:

  1. 当GPFS守护进程启动时,至少必须可以访问两个GPFS集群配置服务器中的一个。请参见"集群配置数据文件"。

  2. 如果主服务器出现故障,您可以使用带 -p 选项的 mmchcluster 命令将另一个节点指定为主集群配置服务器。 同样,您可以使用-s选项的mmchcluster命令来定义从集群配置服务器。

    有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考指南"中的"mmcrcluster命令和mmchcluster命令"主题。

远程shell命令

GPFS命令需要能够跨集群中的所有节点进行通信。 为此,GPFS命令使用您在 mmcrcluster 命令或 mmchcluster 命令上指定的远程shell命令。

默认的远程shell命令是ssh。 您可以通过在 mmcrcluster 命令或mmchcluster命令上指定其完全限定路径名来指定使用其他远程shell命令。远程shell命令必须遵循与 ssh 相同的语法,但它可以实现另一种的身份验证机制。

包含UNIX和Windows节点的集群必须使用ssh作为远程shell命令。 有关更多信息,请参阅"在Windows节点上安装和配置OpenSSH"。

仅包含Windows节点的集群可以使用GPFS附带的 mmwinrsh 实用程序。 完全限定的路径名是 /usr/lpp/mmfs/bin/mmwinrsh 。 有关配置Windows GPFS集群的更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmwinservctl命令"。

默认情况下,您可以从集群中的任何节点发出GPFS管理命令。 (可选)您可以选择能够运行管理命令的节点子集。 在任何一种情况下,您计划用于管理GPFS的节点必须能够以 root 用户身份在群集中的任何其他节点上运行远程shell命令,而无需使用密码并且不会产生任何无关的消息。 您也可以使用sudo包装器来实现此目的。

有关其它信息,请参阅"IBM Spectrum Scale:管理指南"中的"管理GPFS文件系统的要求"。

远程文件复制命令

GPFS命令必须在集群中的所有节点上维护许多配置文件。 为此,GPFS命令使用您在 mmcrcluster 命令或 mmchcluster 命令上指定的远程文件复制命令。

默认的远程文件复制程序是 scp 。 您可以通过在 mmcrcluster 命令或 mmchcluster 命令上指定其完全限定的路径名来指定使用其它远程文件复制命令。 远程文件复制命令必须遵循与 scp 相同的语法,但它可以实现另一种身份验证机制。

包含UNIX和Windows节点的群集必须使用 scp 作为远程复制命令。 有关更多信息,请参阅"在Windows节点上安装和配置OpenSSH"。

文件复制命令 rcp 不能在包含Windows Server节点的集群中使用。 但仅包含Windows节点的集群可以使用GPFS附带的 mmwinrcp 实用程序。 完全限定的路径名是 /usr/lpp/mmfs/bin/mmwinrcp 。 有关配置Windows GPFS集群的更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmwinservctl命令"。

​ 您计划用于管理GPFS的节点必须能够使用远程文件复制命令将文件复制到(或从)集群中的任何其它节点,并且不需要使用密码也不产生任何无关的消息。

有关其它信息,请参阅"IBM Spectrum Scale:管理指南"中的"管理GPFS文件系统的要求"。

集群名称

通过在 mmcrcluster 命令上发出 -C 选项为集群提供名称。

如果用户提供的名称包含点,则假定它是完全限定的域名。 否则,要在多集群环境中使集群名称唯一,GPFS会附加主集群配置服务器的域名。 如果未指定-C选项,则集群名称默认为主集群配置服务器的主机名。 通过在 mmchcluster 命令上发出 -C 选项,可以稍后更改集群的名称。

当GPFS文件系统被属于其它GPFS集群的节点挂载时,适用于集群名称。请参阅 mmauthmmremotecluster 命令。

集群的UID域

此选项是当远程访问文件系统时集群的UD域。

" IBM Spectrum Scale:管理指南"和"IBM知识中心"中名为"多群集环境中GPFS UID映射"的IBM白皮书中进一步说明了此选项。

自动启动GPFS

您可以指定在节点启动时是否自动启动GPFS守护进程。

GPFS是否自动启动是使用 mmchconfig 命令的 autoload 参数来确定的。默认情况下,不会在所有节点上自动启动GPFS。您可以通过使用 mmchconfig 命令指定 autoload=yes 来改变这种情况。这消除了在启动节点时发出 mmstartup 命令启动GPFS的必要。

autoload 参数可以为集群中的每个节点设置相同或不同的参数。例如,在正在进行维护的节点上设置 autoload=no 可能很有用,因为操作系统升级和其它软件常常需要多次重新启动才能完成。

集群配置文件

GPFS提供默认配置值,因此创建集群不需要集群配置文件。

您可以在创建群集时提供可选的集群配置文件。 如果您已根据以前的测试知道正确的参数值,或者要还原集群并且具有适用于大多数系统的配置值的备份副本,则此可选文件非常有用。 但是,通常,在创建集群时不使用此选项,并且可以在创建集群后修改配置参数(使用 mmchconfig 命令)。

有关集群配置文件的更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的 mmcrcluster -c _ConfigFile_选项的说明。

磁盘注意事项

为IBM Spectrum Scale文件系统设计合适的存储基础设施是实现性能和可靠性目标的关键。 在决定使用哪种磁盘配置时,请考虑三个关键方面:基础设施、性能和磁盘访问方法。

基础设施

  1. 确保您有足够的磁盘来满足预期的I/O负载。 在IBM Spectrum Scale术语中,磁盘可以是物理磁盘或RAID设备。
  2. 确保磁盘和网络共享磁盘服务器之间具有足够的连接(适配器和总线)。
  3. 确定您是否在IBM Spectrum Scale限制范围内。 从GPFS 3.1开始,文件系统中磁盘最大数量的结构限制从2048增加到4096;但是,IBM Spectrum Scale仍然强制执行2048的原始限制。如果您的环境需要支持超过2048个磁盘,请联系 IBM支持中心讨论增加强制限制。(但是,系统中的磁盘数量通常受IBM Spectrum Scale以外的产品的限制。)
  4. 要获得使用IBM Spectrum Scale测试过的存储设备的列表,请参阅IBM知识中心中的IBM Spectrum Scale FAQ。
  5. 对于Linux on Z,请参阅Linux on Z库概述中的"设备驱动程序,功能和命令"中的"存储"主题"DASD设备驱动程序"和"SCSI–over-FC设备驱动程序"。

磁盘访问方法

  1. 确定磁盘的连接方式。 支持的磁盘连接类型包括以下配置:

  2. 所有磁盘都通过SAN连接到访问文件系统的所有群集中的所有节点

    在此配置中,每个节点同时看到相同的磁盘并具有相应的磁盘设备条目。

  3. 每个磁盘连接到多个NSD服务器节点(最多八个服务器),如服务器列表中指定的那样

    在此配置中,连接到磁盘的单个节点执行到所有其它节点的数据传送。此节点是NSD服务器列表中指定的第一个NSD服务器。可以在服务器列表中定义其它NSD服务器。拥有多个NSD服务器可以防止单个NSD服务器的丢失。当使用多个NSD服务器时,所有NSD服务器必须连接到相同的磁盘。在此配置中,所有非NSD服务器的节点都将通过局域网从服务器列表中的第一个NSD服务器接收数据。如果第一个NSD服务器失败,列表中的下一个可用NSD服务器将控制数据分发。

  4. SAN连接和NSD服务器配置的组合。

配置考虑:

– 如果节点具有到磁盘的物理连接并且该连接失败,则节点将切换到使用指定的NSD服务器来执行I/O. 因此,建议您使用多个服务器定义NSD,即使所有节点都具有到磁盘的物理连接。

– 在无NSD服务器的情况下配置IBM Spectrum Scale磁盘会在磁盘的直接路径丢失时停止提供数据。对于需要通过SAN提供的高速数据连接的节点,这可能是更可取的选择,而不是低速网络NSD服务器连接。使用MPI的并行作业通常具有这一特性。

mmmountmountmmchfsmmremotefs 命令上的 -o useNSDserver 文件系统挂载选项可用于指定磁盘发现,限制或消除从本地访问到NSD服务器访问的切换,或者相反。

  1. 决定是否使用存储池来管理磁盘。

存储池允许您以组的形式管理文件系统的存储。 您可以根据性能,位置和可靠性等因素对存储进行分区。 根据已定义的策略将文件分配给存储池。

策略规定如下:

– 创建文件时将文件放在特定存储池中

– 将文件从一个存储池迁移到另一个存储池

– 根据文件特征删除文件

有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的"存储池"。

磁盘注意事项包括:

  1. "网络共享磁盘(NSD)创建注意事项"
  2. "NSD服务器注意事项"
  3. "文件系统描述符仲裁"
  4. 为NSD准备直接存取存储设备(DASD)"

网络共享磁盘(NSD)创建注意事项

您必须首先使用 mmcrnsd 命令将每个磁盘定义为网络共享磁盘(NSD),以准备要与GPFS一起使用的每个物理磁盘。

在Windows上,GPFS仅从空磁盘驱动器创建NSD。 mmcrnsd 接受Windows_基本_磁盘或_未知/非初始化_磁盘。 它总是重新初始化这些磁盘,以便它们成为具有单个_GPFS分区_的基本GPT磁盘。 NSD数据存储在GPFS分区中。 这允许其他操作系统组件识别磁盘已被使用。 mmdelnsd 删除 mmcrnsd 创建的分区表。

GPFS 4.1引入了新的NSD格式。新格式称为NSDv 2,旧格式称为NSDv 1。NSDv 1格式与4.1之前的GPFS版本兼容。最新的GPFS版本可以同时识别NSDv 1和NSDv 2格式的磁盘。

NSD v2格式具有以下优点:

  1. 在linux上,它包含一个分区表,这样可以很容易地将磁盘识别为GPFS设备

  2. 调整数据对齐,以支持具有4KB物理块大小的磁盘

  3. 添加一些关键GPFS数据结构的备份副本

  4. 扩大一些保留区域,以适应未来的增长

    管理NSD时,管理员无需手动选择NSD格式。 GPFS将始终基于集群的 minReleaseLevel 和文件系统版本创建和使用正确的格式。 当 minReleaseLevel (由 mmlsconfig 报告)小于4.1.0.0时, mmcrnsd 将仅创建NSD v1格式的磁盘。 当 minReleaseLevel 至少为4.1.0.0时, mmcrnsd 将仅创建NSD v2格式的磁盘。 但是,在第二种情况下,当NSD添加到文件系统时,NSD格式可能会动态更改,以便NSD与文件系统版本兼容。

    在Linux上,NSD v2格式化磁盘包含带有单个分区的GUID分区表(GPT)。 GPT允许其他操作系统实用程序识别GPFS何时拥有磁盘,这有助于防止无意中的数据损坏。 运行 mmcrnsd 之后,像 parted 这样的Linux实用程序可以显示分区表。 将NSD v2格式的磁盘添加到3.5或更旧的文件系统时,其格式将更改为NSD v1,并且分区表将转换为MBR(MS-DOS兼容)类型。

注意:未用完的持续预留(PR)密钥可能会导致多路径中的预留冲突等问题,从而导致I/O故障。 在这种情况下,有必要在全新安装时清理未用完的PR密钥。 有关详细过程,请参阅"IBM Spectrum Scale:问题确定指南"中的"清除未用完的PR预留"。

** mmcrnsd** 命令需要将stanza文件作为输入。 有关详细信息,请参阅"IBM Spectrum Scale:命令和编程参考"和"IBM Spectrum Scale:管理指南"中的以下主题:

  1. Stanza文件
  2. mmchdisk 命令
  3. mmchnsd 命令
  4. mmcrfs 命令
  5. mmcrnsd 命令

NSD服务器注意事项

如果您计划使用NSD服务器远程向其他它点提供磁盘数据,而不是将磁盘通过SAN连接到所有节点,则应考虑这些节点上的总计算和I/O负载。

  1. 您的网络共享磁盘服务器是专用服务器还是您也将使用它们来运行应用程序? 如果您将拥有非专用服务器,请考虑在这些节点上运行时间要求较低的应用程序。 如果在网络共享磁盘服务器上运行时间要求严格的应用程序,则处理来自其他节点的磁盘请求可能会与这些应用程序的需求冲突。

  2. 文件系统管理器的特殊功能会占用额外的处理时间。 如果可能,请避免使用网络共享磁盘服务器作为文件系统管理器。 网络共享磁盘服务器消耗可能影响文件系统管理器操作的内存和处理器周期。 请参阅"文件系统管理器"。

  3. 网络共享磁盘服务所需的实际处理能力是应用程序I/O访问模式,节点类型,磁盘类型和磁盘连接的函数。 您可以稍后在服务器上运行 iostat ,以确定您的访问模式将在网络共享磁盘服务器上承载多少负载。

  4. 在系统上提供足够的磁盘和适配器,以产生所需的I/O带宽。专用网络共享磁盘服务器应该有足够的磁盘和适配器来驱动您期望它们处理的I/O负载。

  5. 了解您的数据大约需要多少存储容量。

    您应该考虑在发生故障时在本地访问和NSD服务器访问之间切换的默认行为。 要设置此配置,请使用 mmmountmountmmchfsmmremotefs 命令的 -o useNSDserver 文件系统挂载选项:

  6. 指定磁盘发现行为

  7. 限制或消除以下任一切换:

– 本地访问到NSD服务器访问

– NSD服务器访问到本地访问

如果您计划使用NSD服务器远程向其他它点提供磁盘数据,而不是将磁盘通过SAN连接到所有节点,则应考虑这些节点上的总计算和I/O负载。

  1. 您的网络共享磁盘服务器是专用服务器还是您也将使用它们来运行应用程序? 如果您将拥有非专用服务器,请考虑在这些节点上运行时间要求较低的应用程序。 如果在网络共享磁盘服务器上运行时间要求严格的应用程序,则处理来自其他节点的磁盘请求可能会与这些应用程序的需求冲突。

  2. 文件系统管理器的特殊功能会占用额外的处理时间。 如果可能,请避免使用网络共享磁盘服务器作为文件系统管理器。 网络共享磁盘服务器消耗可能影响文件系统管理器操作的内存和处理器周期。 请参阅"文件系统管理器"。

  3. 网络共享磁盘服务所需的实际处理能力是应用程序I/O访问模式,节点类型,磁盘类型和磁盘连接的函数。 您可以稍后在服务器上运行 iostat ,以确定您的访问模式将在网络共享磁盘服务器上承载多少负载。

  4. 在系统上提供足够的磁盘和适配器,以产生所需的I/O访问模式,节点类型,磁盘类型和磁盘连接的函数。 您可以稍后在服务器上运行 iostat ,以确定您的访问模式将在网络共享磁盘服务器上承载多少负载。

  5. 在系统上提供足够的磁盘和适配器,以产生所需的I/O带宽。专用网络共享磁盘服务器应该有足够的磁盘和适配器来驱动您期望它们处理的I/O负载。

  6. 了解您的数据大约需要多少存储容量。

    您应该考虑在发生故障时在本地访问和NSD服务器访问之间切换的默认行为。 要设置此配置,请使用 mmmountmountmmchfsmmremotefs 命令的 -o useNSDserver 文件系统挂载选项:

  7. 指定磁盘发现行为

  8. 限制或消除以下任一切换:

– 本地访问到NSD服务器访问

– NSD服务器访问到本地访问

您应该考虑指定在允许文件系统装入失败之前等待NSD服务器联机的时间,因为服务器不可用。 mmchconfig 命令具有以下选项:

nsdServerWaitTimeForMount

​ 当节点尝试挂载其磁盘依赖于NSD服务器的文件系统时,此选项指定等待这些服务器启动的秒数。 如果正在进行服务器恢复,则使用此选项指定的等待时间将在恢复完成后开始。

有效值为0 - 1200秒。 默认值为300.值为零表示不进行等待。 检查间隔是10秒。 如果 nsdServerWaitTimeForMount 为0,则 nsdServerWaitTimeWindowOnMount 无效。

当守护进程延迟以进行安全恢复时,挂载线程会等待。 在恢复到期后等待允许挂载线程继续执行后,等待NSD服务器启动的挂载会继续进行(此选项涵盖此选项)。

注意:等待服务器的决定由nsdServerWaitTimeWindowOnMount选项控制。

nsdServerWaitTimeWindowOnMount

​ 指定一个时间窗口(以秒为单位),在此期间,挂载可以等待NSD服务器,如 nsdServerWaitTimeForMount 选项所述。窗口在建立仲裁时(在集群启动时或随后),或在执行挂载所需的NSD服务器的最后已知故障时间时开始。

​ 有效值为1 - 1200秒。 默认值为600.如果 nsdServerWaitTimeForMount 为0,则 nsdServerWaitTimeWindowOnMount 无效。

​ 当节点因任何原因被删除后重新加入集群时,该节点将重置其知道的所有故障时间值。 因此,当节点重新加入集群时,它认为NSD服务器未发生故障。 从节点的角度来看,旧故障不再相关。

** 注意:**

  1. 当节点重新加入集群时,它会重置该集群内其知道的所有故障时间。
  2. 由于重新加入群集的节点会重置其在该群集内的失败时间,因此NSD服务器失败时间也会重置。
  3. 当节点尝试挂载文件系统时,GPFS首先检查群集形成条件。如果该检查落在窗口外,那么它将检查窗口中的nsd服务器故障时间。

文件系统描述符仲裁

​ 名为_文件系统描述符_的GPFS结构最初被写入文件系统中的每个磁盘,并在文件系统发生更改(如添加或删除磁盘)时复制到磁盘的子集上。

根据故障组和磁盘的数量,GPFS创建一到五个描述符副本:

  1. 如果至少有五个不同的故障组,则会创建五个副本。

  2. 如果至少有三个不同的磁盘,则会创建三个副本。

  3. 如果只有一个或两个磁盘,则会在每个磁盘上创建副本。

    一旦确定要创建多少个副本,GPFS就会选择磁盘来保存副本,以便所有副本都位于不同的故障组中(如果可能),以降低多个故障的风险。 在选择副本位置时,会考虑磁盘的当前状态。 避免已停止或已挂起的磁盘。 同样,当故障磁盘重新联机时,GPFS可能会重新平衡文件系统描述符,以确保故障组的可靠性。 用于保存文件系统描述符副本的磁盘可以通过运行 mmlsdisk fsname -L 命令并在**备注(remarks)**列中查找字符串 desc 来查看。

    GPFS要求磁盘子集上的大多数副本仍可用于支持文件系统操作:

  4. 如果至少有五个不同的副本,GPFS可以容忍丢失五个副本中的两个。

  5. 如果至少有三个副本,GPFS可以容忍丢失三个副本中的一个。

  6. 如果少于三个副本,则丢失一个副本可能使描述符无法访问。

    丢失磁盘故障组中的所有磁盘可能会导致大多数文件系统描述符不可用并阻止进一步的文件系统操作。 例如,如果文件系统由分配给两个单独磁盘故障组的三个或更多磁盘备份,则其中一个故障组将分配两个文件系统描述符副本,而另一个故障组将仅分配 一个副本。 如果磁盘故障组中包含两个副本的所有磁盘都不可用,则文件系统也将变为不可用。 为避免出现这种情况,您可能需要引入第三个磁盘故障组,该故障组由指定为 descOnly 磁盘的单个磁盘组成。 该磁盘仅用于包含文件系统描述符的副本(即,它不包含任何文件系统元数据或数据)。 此磁盘的大小至少应为128MB。

    有关详细信息,请参阅"网络共享磁盘(NSD)创建注意事项"和"IBM Spectrum Scale:管理指南"中的"为GPFS集群建立灾难恢复"。

为NSD准备直接访问存储设备(DASD)

​ 在为NSD准备直接访问存储设备(DASD)时,请参阅"IBM知识中心"中"IBM Spectrum Scale FAQ"中的"在 Linux on Z上使用GPFS测试过的磁盘硬件"表。

准备使用扩展计数密钥数据(ECKD)设备的环境:

如果您的GPFS集群包含Linux on Z实例,请不要使用虚拟预留/释放。而是按照"不使用虚拟预留/释放来共享DASD"中所述的过程。 数据完整性由GPFS本身处理。

为GPFS准备ECKD™设备

要为GPFS准备ECKD设备,请在单个节点上完成以下步骤:

  1. 确保ECKD设备处于联机状态。要将其设置为联机,请发出以下命令:

chccwdev -e_device_bus_id

其中_device_bus_id_标识要配置的设备。 _device_bus_id_是具有前导 0 _.n_的设备号,其中_n_是子通道集ID。 例如:

chccwdev -e 0.0.3352

  1. 使用以下命令之一对ECKD进行低级格式化。

注意: GPFS支持兼容磁盘布局(CDL)格式或Linux磁盘布局(LDL)格式的ECKD磁盘。 必须使用块大小4096格式化DASD。

  1. 要指定CDL格式,请发出以下命令:

dasdfmt -d cdl device

无需指定块大小值,因为默认值为4096。

  1. 要指定LDL格式,请发出以下命令:

dasdfmt -d ldl device

无需指定块大小值,因为默认值为4096。

在这两个命令中,device是设备的节点。 例如:

dasdfmt -d cdl /dev/dasda

  1. 此步骤_仅适用于CDL磁盘_。 这是一个可选步骤,因为CDL磁盘的分区是_可选的_。如果您希望对ECKD进行分区并创建跨越整个设备的单个分区,请使用以下命令:

fdasd -a device

注意:

  1. LDL磁盘不需要此步骤,因为在上一步中发出的 dasdfmt -d ldl 命令会自动在磁盘上创建单个Linux分区。
  2. 如果CDL磁盘已分区,则应在 mmcrnsd 的stanza输入文件中指定分区名称。 如果未对CDL磁盘进行分区,则应在stanza输入文件中指定磁盘名称。

有关所有这些命令的更多信息,请参阅以下内容:

  1. Linux on Z库概述中的"设备驱动程序,功能和命令"中的"Linux on Z的命令"主题。

  2. "开始使用基于GPFS技术的Linux on Z上的弹性存储"白皮书,可在IBM Knowledge Center的IBM Spectrum Scale的欢迎页面上找到。

    对于将与GPFS一起使用的每个ECKD重复这些步骤。

    在准备好环境后,在其它节点上将ECKD设备设置为联机。

注意:在对ECKD设备进行分区和格式化之后,分区信息不会自动分发给其它集群节点。当ECKD设备处于联机状态时,要与不同的集群节点共享ECKD设备。建议将ECKD设备设置为脱机,然后重新联机。此过程将更新集群节点上特定ECKD设备的分区信息。

在启动GPFS之前,始终确保ECKD设备处于联机状态。 要在系统启动时自动设置ECKD设备,请参阅Linux发行版的文档。

文件系统创建注意事项

​ 文件系统创建涉及预测文件系统的使用情况并考虑您的硬件配置。 在创建文件系统之前,请考虑将存储多少数据以及对系统中文件的需求有多大。

这些因素中的每一个都可以帮助您确定要为文件系统投入多少磁盘资源,选择哪个块大小,存储数据和元数据的位置以及要维护的副本数量。 有关最新支持的文件系统大小,请参阅IBM Knowledge Center中的IBM Spectrum Scale FAQ。

通过发出 mmcrfs 命令创建GPFS文件系统。 表20详细介绍了 mmcrfs 命令中指定的文件系统创建选项,稍后可以使用 mmchfs 命令更改这些选项,以及默认值。

要将现有文件系统移动到新的GPFS集群,请参阅"IBM Spectrum Scale:管理指南"中的"在集群之间导出文件系统定义"。

表20.文件系统创建选项

选项 mmcrfs mmchfs 默认值
文件系统的_设备_名称。请参阅"文件系统的设备名称"。 X X
文件系统中每个磁盘的_DiskDesc_。 注意 :不鼓励使用磁盘描述符。请参阅"文件系统的磁盘"。 X 发出 mmadddiskmmdeldisk 命令,以从文件系统添加或删除磁盘。
-F _StanzaFile_指定包含NSD stanzas列表的文件。有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的Stanza文件。 X 发出 mmadddiskmmdeldisk 命令,以从文件系统添加或删除磁盘。
-A { yes no automount }确定何时挂载文件系统。参见"决定如何挂载文件系统" X
-B _BlockSize_设置数据块大小: 64K,128K,256K,512K,1M2M,4M,8M16M 。请参阅"块大小" X 如果不重新创建文件系统,则无法更改此值。 4 MiB** **
-D { posix nfs4 }deny-write open锁的语义参见"NFSV4 deny-write open lock" X X
-E { yes no }报告确切的 mtime 值。请参阅"mtime值" X X
-i _InodeSize_设置inode的大小: 512 , 10244096 字节。 X 此值无法更改。 4096
-j { cluster scatter }来确定块分配图类型。请参阅"块分配图"。 X NA
-k { posix nfs4 all }确定文件系统支持的授权类型。请参阅"文件系统授权"。 X
-K { no whenpossible always }强制执行严格的复制。请参阅"复制类型"。 X
-L _ LogFileSize_指定内部日志文件的大小。请参阅"GPFS恢复日志"。 X X 默认值为 4 MiB 或元数据块大小,以较大者为准。
-m _DefaultMetadataReplicas_请参见"文件系统复制参数"。 X X 1
- M _MaxMetadataReplicas_请参见"文件系统复制参数" X 此值无法更改 2
-n NumNodes,将挂载文件系统的节点数。请参阅"挂载文件系统的节点数" X X 32
-o MountOptions(将传递给mount命令。)请参见"分配挂载命令选项" NA X
-Q { yes no} 激活配额。请参阅"启用配额"。 X X
-r _DefaultDataReplicas_请参见"文件系统复制参数"。 X X 1
-R _MaxDataReplicas_请参见"文件系统复制参数"。 X 此值无法更改 2
-S { yes no relatime }来控制 atime 值的更新方式。请参阅"atime 值" X
-t _DriveLetter_请参阅"Windows驱动器号"。 X X
-T _Mountpoint_请参见"Mountpoint目录"。 X X /gpfs/ DeviceName
-V { full compat } 将文件系统格式更改为最新级别。请参阅"将文件系统格式更改为最新级别"。 NA X
-v { yes no } 验证磁盘使用情况。请参阅"验证磁盘使用情况"。 X NA
-W _NewDeviceName_为文件系统分配新设备名称。 NA X
-z { yes no }启用DMAPI请参阅"启用DMAPI"。 X X
–filesetdf 指定(当对文件集强制执行配额时) df 命令是否将根据文件集的配额而不是总文件系统报告数字。 X X –nofilesetdf
–inode-limit MaxNumInodes _[:NumInodesToPreallocate]_确定文件系统中的最大文件数。请参阅"指定可以创建的最大文件数"。 X X 文件系统大小/ 1 MiB
–log-replicas _LogReplicas_指定恢复日志副本的数量。 X X
–metadata-block-size MetadataBlockSize,用于指定system存储池的块大小。请参阅"块大小"。 X NA
–mount-priority Priority,用于控制在守护进行启动时或在 mmmount 命令中指定 all 关键字其中一时挂载各个文件系统的顺序。 X X 0
–perfileset-quota ,用于将用户和组配额限制检查的范围设置为单个文件集级别。 X –noperfileset-quota
–rapid-repair 以在单个文件块的基础上跟踪不完整的复制(而不是整个文件)。 NA X
–version _VersionString_仅启用与指定版本兼容的文件系统功能。 X NA 默认值由群集 minReleaseLevel 的当前已提交函数级别定义,例如4.2.2.0或其他值,具体取决于群集。
注意: 1. X – 表示该选项在命令中可用。2. NA(不适用) - 表示该选项在命令中不可用。

文件系统的设备名称

GPFS集群中的文件系统名称必须是唯一的。但是,两个不同的集群可以有两个名称相同的不同文件系统。

文件系统的设备名不需要完全限定。 fs0/dev/fs0 一样可以接受。名称不能与 /dev 中的现有条目相同。

注意:如果群集包含Windows节点,则文件系统名称不应超过31个字符。

NFSv4 deny-write open lock

您可以指定deny-write open lock是否阻止写入,这是NFSV4,Samba和Windows所期望和要求的。

有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的"管理GPFS访问控制列表"。

nfs4 必须为支持NFS V4的文件系统和Windows上安装的文件系统指定。 这是默认值。

posix 指定用于支持NFS V3的文件系统或未导出NFS的文件系统。

即使存在deny-write open lock, posix 也允许NFS写入。

文件系统的磁盘

必须先将磁盘定义为网络共享磁盘(NSD),然后才能将其添加到GPFS文件系统。

使用 mmcrnsd 命令创建NSD。 使用 mmlsnsd -F 命令显示可用NSD列表。 创建后,使用 mmadddisk 添加NSD。

请参阅"磁盘注意事项"。
决定如何挂载文件系统

指定何时挂载文件系统:

yes 当GPFS守护进程启动时。这是默认设置。

no 手动挂载

automount 首次访问文件系统时

稍后可以使用 mmchfs 命令的 -A 选项来更改这一点。

注意事项:

  1. 通过使用 automount 功能在首次访问文件系统时而不是在GPFS启动时挂载文件系统,可以减少GPFS挂载流量。 自动挂载仅在应用程序或用户首次使用文件系统时产生额外的控制流量。 另一方面,在GPFS启动时挂载会在每次GPFS启动时产生额外的控制流量。 因此,通过使用自动挂载可以更好地一次启动数百个节点。
  2. 如果节点没有为文件系统启用操作系统的自动挂载支持,则自动挂载将失败。
  3. 导出NFS挂载的文件系统时,在GPFS启动时挂载文件系统可能很有用。

块大小

根据文件系统的预计工作负载及其使用的存储类型选择文件系统块大小。

块是可以分配给文件的最大连续磁盘空间量,因此是单个I/O操作中可访问的最大数据量。 子块是可以分配的最小连续磁盘空间单元。 子块的大小和块中子块的数量由块大小确定。 IBM Spectrum Scale支持以下文件系统块大小:64 KiB,128 KiB,256 KiB,512 KiB,1 MiB,2 MiB,4 MiB,8 MiB和16 MiB(仅适用于IBM Spectrum Scale RAID)。 您可以根据工作负载和存储类型选择文件系统块大小。 有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmcrfs命令"主题。

注意: _分段_是一个或多个子块的连续组。 小于一个块大小的文件存储在分段中。 大文件存储在多个完整块中,加上零个或多个子块,以将数据保存在文件末尾。

有关建议的文件系统块大小,请参阅下表。

表21.每个I / O类型的建议文件系统块大小以及应用程序示例

IO类型 应用程序示例 块大小
大型顺序IO 科学计算,数字媒体,基于文件的分析 1 -16 MiB
关系型数据库 DB2®,Oracle,ESS上的小文件 512 KiB
小型顺序IO 常规文件服务,电子邮件,Web应用程序 256 KiB

表22.每种工作负载和配置类型建议的文件系统块大小

工作负载 配置类型 块大小
SAP HANA ESS GL 元数据:1 MiB数据:16 MiB
SAP HANA FPO 单个池:1 MiB 仅元数据:256 KiB 仅数据:2 MiB
Hadoop ESS GL 仅元数据:1 MiB仅数据:8 MiB
Hadoop FPO 仅元数据:256 KiB仅数据:2 MiB
Spark FPO 仅元数据:256 KiB仅数据:2 MiB
SAP Sybase IQ ESS GL 仅元数据:256 KiB - 1 MiB仅数据:16 MiB
医疗保健(医学影像) ESS GL 仅元数据:256 KiB仅数据:1 MiB
医疗保健(医学影像) 其它存储 - 在后端使用块存储部署IBM Spectrum Scale。 请参阅下面的提示 元数据和数据:256 KiB
归档 其它存储 - 在后端使用块存储部署IBM Spectrum Scale。 请参阅下面的提示 取决于文件大小
ECM 其它存储 - 在后端使用块存储部署IBM Spectrum Scale。 请参阅下面的提示 256 KiB除非内容是非常大的文件(例如 - 视频)。
Oracle 其它存储 - 在后端使用块存储部署IBM Spectrum Scale。 请参阅下面的提示 元数据和数据:256 KiB
技术计算 ESS GL 元数据:1 MiB数据:4 - 16 MiB,取决于峰值顺序性能的重要性。
SAS ESS GL 元数据:1 MiB数据:8 - 16 MiB,取决于SASBUF大小(128 KiB或256 KiB)
企业文件(混合项目,数据共享) 其它存储 - 在后端使用块存储部署IBM Spectrum Scale。 请参阅下面的提示 元数据和数据:256 KiB

注意: 要确定工作负载的理想文件系统块大小,最好使用工作负载在IBM Spectrum Scale上运行性能测试,或使用具有不同文件系统块大小的代表性文件系统基准测试运行性能测试

​ 有关IBM Spectrum Scale RAID的更多信息,请参阅IBM Knowledge Center上Elastic Storage Server文档中的"IBM Spectrum Scale RAID:管理"

mmcrfs 命令上的 –metadata-block-size 选项允许为system存储池指定不同的块大小,前提是其用法设置为 metadataOnly 。 如果文件系统块大小大于1 MB,这可能是有益的。 有效值与为 -B 选项列出的值相同。

提示: 最佳的文件系统块大小是512 KB(8个数据磁盘×64 KB条带大小=512 KB)的整数倍。256 KB整数倍的块大小会导致单个数据写入包括8个数据磁盘和奇偶校验磁盘的奇偶校验写入。

块大小的选择会影响某些元数据操作的性能,尤其是块分配性能。 IBM Spectrum Scale块分配图存储在块中,类似于常规文件。 当块大小很小时:

  1. 需要更多的块来存储给定数量的数据,从而导致分配这些块的额外工作
  2. 一个分配图数据块包含较少的信息

注意: 块大小的选择对于大型文件系统尤为重要。 对于大于100 TB的文件系统,应使用至少256 KB的块大小。

atime值

atime 是一个标准文件属性,表示上次访问文件的时间。

文件属性 atime 在内存中本地更新,但在文件关闭之前,该值对其它节点不可见。 要获得准确的 atime 值,应用程序必须调用子例程 gpfs_statgpfs_fstat

您可以使用 mmcrfsmmchfs 命令的 -S 选项控制 atime 的更新方式:

-S no

每当读取文件时,都会更新 atime 属性。 如果创建文件系统时集群的最低发行版级别( minReleaseLevel )早于5.0.0,则此设置为缺省设置。

-S yes

atime 属性不更新。 子例程 gpfs_statgpfs_fstat 返回上次使用 -S no 挂载文件系统的时间。

注意: 如果您具有依赖于 ACCESS_TIME 属性的文件管理策略,则此设置可能会导致问题。 有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的"开放组织技术标准的例外"主题。

-S relatime

每当读取文件时都会更新 atime 属性,但仅当满足下列条件之一时才会如此:

  1. 当前文件访问时间( atime )早于文件修改时间( mtime )。

  2. 当前文件访问时间( atime )大于 atimeDeferredSeconds 属性。 atimeDeferredSeconds 默认值为24小时 有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmchconfig命令"主题

    如果创建文件系统时群集的最低发行版级别( minReleaseLevel )为5.0.0或更高版本,则此设置为缺省设置。

    在挂载文件系统时,您可以通过指定一个特定于IBM Spectrum Scale的挂载选项来临时覆盖 -S 设置的值。挂载选项一直持续到卸载文件系统为止。下表显示了挂载选项如何与 -S 设置相对应:

表23. mount 选项与 mmcrfs mmchfs 中的 -S 选项之间的对应关系

mmcrfs和mmchfs命令的-S选项 等效挂载选项; 持续到文件系统卸载为止 效果 - 请参阅主题文字了解详情
no norelatime 允许对 atime 进行更新。
yes noatime 不允许对 atime 进行更新
relatime relatime 如果满足条件,则允许更新 atime

有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的"特定于IBM Spectrum Scale的挂载选项"。

mtime值

** mtime** 是一个标准文件属性,表示上次修改文件的时间。

-E 参数控制何时更新 mtime 。 默认值为 -E yes ,这会产生标准接口,包括**stat()fstat()调用报告精确的 mtime 值。 指定 -E no 会导致stat()fstat()**调用报告在上一个同步周期完成时可用的 mtime 值。 这可能导致调用并不总是报告精确的 mtime 。 设置 -E no 会影响依赖于上次修改时间的备份操作,AFM和AFM DR功能或使用 MODIFICATION_TIME 文件属性的策略操作。

有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的"开放组织技术标准的例外"主题。

块分配图

​ GPFS有两种不同的方法在文件系统中分配空间。 -j 参数指定在创建文件系统时要使用的块分配图类型。 创建文件系统后,无法更改块分配图类型。

为给定文件分配块时,GPFS首先使用循环算法将数据分散到文件系统中的所有磁盘上。 选择磁盘后,磁盘上数据块的位置由块分配映射类型确定。

两种类型的分配方法是 clusterscatter

cluster

GPFS试图在集群中分配块。属于给定文件的块在每个集群中彼此相邻。

此分配方法为相对较小的安装中的某些磁盘子系统提供了更好的磁盘性能。 当集群中的节点数量或文件系统中的磁盘数量增加,或者文件系统可用空间变得碎片化时,cluster块分配的好处会减少。 cluster 分配方法是具有八个或更少节点的GPFS群集以及具有八个或更少磁盘的文件系统的默认方法。

**scatter ** GPFS随机选择块的位置

这种分配方法通过平均由于块位置导致的性能变化来提供更一致的文件系统性能(对于许多磁盘子系统,数据相对于磁盘边缘的位置对性能具有实质性影响)。 在大多数情况下,此分配方法是合适的,并且是具有八个以上节点的GPFS群集或具有八个以上磁盘的文件系统的默认值。

给定文件系统的此参数在创建文件系统时通过使用 mmcrfs 命令上 -j 选项指定,或允许其为默认值。 创建文件系统后,无法更改此值。

文件系统授权

​ 文件系统的授权类型在 mmcrfs 命令的 -k 选项指定,或稍后使用 mmchfs 命令的 -k 选项更改。

posix 仅传统GPFS访问控制列表(ACL)(不允许使用NFS V4和Windows ACL)

nfs4 仅支持NFS V4和Windows ACL。 不允许用户将传统ACL分配给任何文件系统对象

all 允许POSIX、NFS V 4和Windows ACL在文件系统中共存。这是默认值

如果文件系统将用于NFS和Swift协议导出,则建议使用 nfs4

如果文件系统将用于SMB协议导出,则需要使用 nfs4

复制类型

您可以控制IBM Spectrum Scale使用的复制类型。

运行带 -K 选项的 mmchfs 命令设置首选复制类型。 -K 选项可以具有以下值:

always

表示强制执行严格复制。

whenpossible

如果磁盘配置允许,则强制执行严格复制。 如果故障组的数量不足,则不会强制执行严格复制。 这是默认值。

no

不强制执行严格复制。 GPFS尝试创建所需数量的副本,但如果它可以分配至少一个副本,则返回EOK的 错误

有关更改复制属性的更多信息,请参阅 mmchfs 命令。

内部日志文件

您可以指定内部日志文件大小。 有关其他信息,请参阅"GPFS恢复日志"。

文件系统复制参数

元数据(inode,目录和间接块)和数据复制参数在文件系统级别设置并应用于所有文件。 在发出 mmcrfs 命令时,它们最初是为文件系统设置的。

​ 可以使用 mmchfs 命令为现有文件系统更改它们。 更改复制参数后,更改后创建的文件会受到影响。 要将新复制值应用于文件系统中的现有文件,请发出 mmrestripefs 命令。

​ 元数据和数据复制是独立指定的。每个都有一个默认复制系数1(无复制)和一个默认值为2的最大复制系数。虽然就磁盘空间而言,元数据复制的成本低于文件数据复制,但元数据的过度复制也会影响GPFS的效率,因为所有元数据副本都必须写入。一般来说,更多的复制使用更多的空间。

默认的元数据副本:

文件系统中所有文件的默认元数据副本数可以通过使用 mmcrfs 命令的 -m 选项在文件系统创建时指定,也可以在稍后使用 mmchfs 命令的 -m 选项更改。

此值必须等于或小于_MaxMetadataReplicas_,并且不能超过具有可以存储元数据的磁盘的故障组的数量。 允许值为1,2或3,默认值为1(无复制)。

最大元数据副本:

通过使用 mmcrfs 命令的 -M 选项,可以在创建文件系统时指定文件系统中所有文件的元数据的最大副本数。

默认值为2.允许值为1,2或3,但不能小于_DefaultMetadataReplicas_的值。 创建文件系统后,无法更改此值。

默认的数据副本:

在创建文件系统时使用 mmcrfs 命令的 -r 选项指定数据块的默认复制系数,也可以在以后使用 mmchfs 命令的 -r 选项进行更改。

此值必须等于或小于_MaxDataReplicas_,并且该值不能超过具有可以存储数据的磁盘的故障组的数量。 允许值为1,2和3,默认值为1(无复制)。

如果要更改整个文件系统的数据复制系数,则每个存储池中的数据磁盘必须具有等于或大于复制系数的多个故障组。 例如,如果尝试将文件系统的复制系数更在创建文件系统时,可以使用mmcrfs命令的-n选项指定将要挂载文件系统的估计节点数,或者允许默认设置为32。改为2但存储池只有一个故障组,则会出现错误消息。

最大数据副本:

在创建文件系统时,可以使用 mmcrfs 命令的 -R 选项指定文件的数据块的最大副本数。默认值是2。

允许值为1,2和3,但不能小于_DefaultDataReplicas_的值。 创建文件系统后,无法更改此值。

挂载文件系统的节点数

在创建文件系统时,可以使用 mmcrfs 命令的 -n 选项指定将要挂载文件系统的估计节点数,或者允许默认设置为32。

​ 在创建GPFS文件系统时,会过高估计将挂载文件系统的节点数。此输入用于创建GPFS数据结构,这些结构对于在文件系统操作中实现最大程度的并行性至关重要(参见"GPFS体系结构")。虽然较大的估计值会消耗更多的内存,但这些数据结构的分配不足会限制有效处理某些并行请求的能力,例如将磁盘空间分配给文件。如果无法预测节点的数量,则允许应用默认值。如果希望添加节点,请指定更大的数目,但要避免过高估计,因为这可能会影响缓冲区操作。

​ 可以使用 mmchfs 命令的 -n 选项更改节点数。更改此值会影响设置值后创建的存储池;因此,例如,如果需要在存储池中增加此值,可以更改该值,创建新的存储池,并将数据从一个池迁移到另一个池。

Windows驱动器号

​ 在Windows环境中,必须先将驱动器号与文件系统相关联,然后才能挂载。可以使用 mmcrfsmmchfs 命令的 -t 选项来指定和更改驱动器号。GPFS在未指定默认驱动器号时不会分配默认驱动器号。

可用驱动器号的数量限制了可以在Windows上挂载的文件系统的数量。

注意: 某些应用程序对驱动器号 A:B:C: 具有特殊含义,如果将它们分配给GPFS文件系统,则可能会导致问题。

挂载点目录

每个GPFS文件系统都有一个与之关联的默认挂载点。 可以使用 mmcrfsmmchfs 命令的 -T 选项指定和更改此挂载点。

如果在创建文件系统时没有指定挂载点,GPFS将默认挂载点设置为 /gpfs/ DeviceName

分配挂载命令选项

​ 可以使用 mmchfs 命令的 -o 选项将选项传递给文件系统 mount 命令。

​ 特别是,您可以选择在挂载文件系统时自动执行配额激活的选项。

启用配额

GPFS配额系统可以帮助您控制文件系统使用情况。

可以为单个用户,用户组或文件集定义配额。 可以根据文件总数和消耗的数据空间总量设置配额。 为文件系统设置配额限制时,系统管理员应考虑文件系统的复制系数。 在报告和确定是否已超过块和文件使用的配额限制时,配额管理会将复制考虑在内。 在将数据复制或元数据复制设置为值2的文件系统中, mmlsquotammrepquota 命令报告的值是 ls 命令报告的值的两倍。

是否在挂载文件系统时启用配额可以在创建文件系统时使用 mmcrfs 命令的 -Q 选项指定,也可以稍后使用 mmchfs 命令的 -Q 选项进行更改。 挂载文件系统后,通过发出 mmedquota 命令建立配额值,并通过发出 mmquotaon 命令激活配额值。 默认设置是不激活配额。

GPFS级别定义为可以使用 mmedquotammdefedquota 命令显式设置的三个限制:

软限制

定义磁盘空间和文件的级别,低于该级别的用户,用户组或文件集可以安全地运行。

以千字节(k或K),兆字节(m或M)或吉字节(g或G)为单位指定。 如果未提供后缀,则假定该数字以字节为单位。

硬限制

定义用户,用户组或文件集可以累积的最大磁盘空间量和文件数。

以千字节(k或K),兆字节(m或M)或吉字节(g或G)为单位指定。 如果未提供后缀,则假定该数字以字节为单位。

过渡期

允许用户,用户组或文件集在指定的时间段内超过软限制。默认时间段为一周。 如果在此期间使用率没有降低到低于软限制的水平,则配额系统将软限制解释为硬限制,并且不允许进一步分配。 用户,用户组或文件集可以通过将使用量降低到低于软限制来重置此条件; 或者管理员可以使用 mmedquotammdefedquota 增加配额级别。

有关不同协议的配额含义,请参阅_"IBM Spectrum Scale:管理指南_"中的"不同协议的配额含义"。

默认配额:

应用默认配额为所有新用户、用户组或文件集提供已建立的最低配额限制。如果未启用默认配额值,则新用户、新组或新文件集的配额值为零,这对可以使用的空间大小没有任何限制。

仅当 -Q yes 选项对文件系统有效时,才能设置或更改默认配额限制。 要在文件集级别设置默认配额, –perfileset-quota 选项也必须有效。 使用 mmcrfs 命令创建文件系统或使用 mmchfs 命令更改文件系统属性时,指定 -Q yes–perfileset-quota 选项。 使用 mmlsfs 命令显示这些配额选项的当前设置。 然后可以通过发出 mmdefquotaon 命令启用默认配额。 通过发出 mmdefedquota 命令建立默认值。

配额系统文件:

GPFS配额系统维护三个单独的文件,其中包含有关使用和限制的数据。

启用配额时,这些文件驻留在GPFS文件系统的根目录中:

  1. user.quota
  2. group.quota
  3. fileset.quota

所有三个 .quota 文件都是:

  1. 使用 mmedquotammdefedquota 命令中提供的信息构建。
  2. 通过整个文件系统中的正常分配操作以及发出 mmcheckquota 命令时更新。
  3. 可通过 mmlsquotammrepquota 命令读取。

挂载启用了配额的文件系统时,将从根目录中读取 .quota 文件。 读取这些文件时,会发生以下三种可能的操作之一:

  1. 这些文件包含配额信息,用户希望使用这些文件。
  2. 这些文件包含配额信息,但是,用户希望使用不同的文件。

要指定使用不同的文件,必须在装入文件系统之前发出 mmcheckquota 命令。

  1. 这些文件不包含配额信息。 在这种情况下,挂载失败并发出相应的错误消息。 有关挂载失败的更多信息,请参阅_"IBM Spectrum Scale:问题确定指南_"。

启用DMAPI

是否可以由GPFS数据管理API(DMAPI)监视和管理文件系统,可以在创建文件系统时使用 mmcrfs 命令的 -z 选项指定,也可以在稍后使用 mmchfs 命令的 -z 选项进行更改。

默认情况下_不_为文件系统启用DMAPI。

有关GPFS的DMAPI的更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"。

验证磁盘使用情况

-v 选项控制 mmcrfs 命令是否检查指定的磁盘是否可以安全地添加到文件系统。

​ 默认( -v yes )是执行检查,如果任何磁盘看起来属于某个其它GPFS文件系统,则命令将失败。 仅当mmcrfs命令拒绝磁盘并且您确定所有磁盘确实不属于活动GPFS文件系统时,才应该指定 -v no来 覆盖默认行为。 适当使用 -v no 的示例是 mmcrfs 命令由于某种原因而中断并且您重新发出该命令的情况。 另一个例子是,如果您正在重用未使用 mmdelfs 命令正式销毁的旧GPFS文件系统中的磁盘。

重要提示 :在已经属于文件系统的磁盘上使用 mmcrfs -v no 会损坏该文件系统。

将文件系统格式更改为最新级别

您可以通过发出带 -V full 选项或 -V compat 选项的 mmchfs 命令,将文件系统格式更改为当前安装的GPFS级别支持的最新格式。

full 选项可启用需要不同磁盘数据结构的所有新功能。 这可能导致文件系统与早期版本的GPFS永久不兼容。 compat 选项仅启用与先前GPFS版本向后兼容的更改。 如果正在访问文件系统(本地和远程)的所有GPFS节点都运行最新级别,则可以安全地使用 full 选项。 某些功能可能需要您运行 mmmigratefs 命令才能启用它们。

​ 有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的"GPFS版本间的文件系统格式更改"。

启用文件系统功能

​ 默认情况下,创建新的文件系统时将启用所有当前可用的功能。

​ 由于这可能会阻止运行早期GPFS版本的群集访问文件系统,因此您只能通过发出带有 –version 版本选项的 mmcrfs 命令来启用与指定版本兼容的文件系统功能。 有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmcrfs命令"。

指定df命令是否将根据文件集的配额报告数字

​ 您可以指定(当对文件集强制执行配额时) df 命令是否将根据文件集的配额而不是总文件系统报告数字。

为此,请使用 mmchfs 命令或 mmcrfs 命令中的 –filesetdf | –nofilesetdf 选项。

有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmchfs命令和mmcrfs命令"。

指定可以创建的最大文件数

​ 可以使用 mmcrfs 命令和 mmchfs 命令上的 –inode-limit 选项指定可以创建的最大文件数。

​ 允许值范围从当前创建的inode数量(通过发出带 -F 选项的 mmdf 命令确定)到支持的文件的最大数量,该值受以下公式限制:

maximum number of files = (total file system space) / (inode size + subblock size)

​ 您可以通过运行 mmlsfs 命令来确定文件系统的inode大小( -i )和子块大小( -f )。 可以在创建文件系统时使用 mmcrfs 命令的 –inode-limit 选项指定文件系统中的最大文件数,也可以稍后通过 mmchfs 命令使用 –inode-limit 来增加文件系统中的最大文件数。 此值默认为创建时文件系统的大小除以1 MB且不能超过体系结构限制。 创建文件系统时,默认使用4084个inode; GPFS将这些inode用于内部系统文件。

有关更多信息,请参阅"_IBM Spectrum Scale:命令和编程参考"_中的"mmcrfs命令和mmchfs命令"。

–inode-limit 选项仅适用于根文件集。 当存在多个inode空间时,请使用 mmchfileset 命令的 –inode-space 选项来更改独立文件集的inode限制。 mmchfileset 命令也可用于修改根inode空间。 mmlsfs 命令的 –inode-space 选项显示所有inode空间的总和。

Inode使用时被分配。 删除文件时,将重用inode,但永远不会释放inode。 在文件系统中设置最大inode数时,可以选择预分配inode。 但是,在大多数情况下,不需要预分配inode,因为默认情况下,inode按需要分配。 如果您决定预先分配inode,请注意不要预先分配比使用的更多的inode; 否则,分配的inode将不必要地占用无法回收的元数据空间。

这些选项限制文件系统中可能存在的最大文件数。 但是,GPFS可能会进一步限制文件系统中的最大文件数,因此与每个文件关联的控制结构不会占用所有文件系统空间。

管理inode时的进一步注意事项:

  1. 对于支持并行文件创建的文件系统,当空闲inode的总数降到inode总数的5%以下时,文件系统访问可能会减慢。在创建或更改文件系统时要考虑到这一点。使用 mmdf 命令显示空闲inode的数量。
  2. 过多地增加最大文件数的值可能会导致为控制结构分配过多的磁盘空间。

控制挂载文件系统的顺序

您可以在守护进程启动时或使用带为文件系统指定的 all 关键字之一的 mmmount 命令时控制各个文件系统的挂载顺序。

​ 有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmlsfs命令和mmmount命令"。

​ 为此,请在 mmcrfsmmchfsmmremotefs 命令上使用 –mount-priority _Priority_选项。

​ 用于协议的共享根文件系统必须在用于导出协议数据的其它文件系统之前挂载。

文件系统创建示例

要创建名为gpfs2带以下属性的文件系统:

  1. 文件 /tmp/gpfs2dsk 中列出的文件系统磁盘
  2. GPFS守护进程启动时自动挂载文件系统( -A yes )
  3. 使用256 KB的块大小( -B 256K )
  4. 期望将其挂载在32个节点上( -n 32 )
  5. 将默认元数据复制和最大元数据复制都设置为2( -m 2 -M 2 )
  6. 将默认数据复制设置为1,将最大数据复制设置为2( -r 1 -R 2 )
  7. 使用默认挂载点/gpfs 2( -T /gpfs2 )

输入:

mmcrfs /dev/gpfs2 -F /tmp/gpfs2dsk -A yes -B 256K -n 32 -m 2 -M 2 -r 1 -R 2 -T /gpfs2

该系统显示的信息类似于:

The following disks of gpfs2 will be formatted on node k194p03.tes.nnn.com:hd25n09: size 17796014 KBhd24n09: size 17796014 KBhd23n09: size 17796014 KBFormatting file system ...Disks up to size 59 GB can be added to storage pool system.Creating Inode File56 % complete on Mon Mar 3 15:10:08 2014100 % complete on Mon Mar 3 15:10:11 2014Creating Allocation MapsClearing Inode Allocation MapClearing Block Allocation Map44 % complete on Mon Mar 3 15:11:32 201490 % complete on Mon Mar 3 15:11:37 2014100 % complete on Mon Mar 3 15:11:38 2014Completed creation of file system /dev/gpfs2.mmcrfs: Propagating the cluster configuration data to allaffected nodes.This is an asynchronous process.

要确认文件系统配置,请发出以下命令:

mmlsfs gpfs2

该系统显示的信息类似于:

flag                   value                      description------------------- ------------------------ ------------------------------------f                       262144                   Minimum fragment (subblock) size in bytes-i                       512                         Inode size in bytes-I                       32768                     Indirect block size in bytes-m                     2                             Default number of metadata replicas-M                     2                             Maximum number of metadata replicas-r                       1                             Default number of data replicas-R                      2                             Maximum number of data replicas-j                       scatter                     Block allocation type-D                     nfs4                          File locking semantics in effect-k                      all                             ACL semantics in effect-n                      32                            Estimated number of nodes that will mount file system-B                     262144                     Block size-Q                     none                        Quotas accounting enabled​                     none                        Quotas enforced​                     none                        Default quotas enabled--perfileset-quota yes                       Per-fileset quota enforcement--filesetdf          yes                           Fileset df enabled?-V                    15.01 (4.2.0.0)          File system version--create-time    Wed Jan 18 17:22:25 2017  File system creation time-z                      no                             Is DMAPI enabled?-L                      262144                     Logfile size-E                      yes                           Exact mtime mount option-S                      yes                           Suppress atime mount option-K                      whenpossible           Strict replica allocation option--fastea             yes                           Fast external attributes enabled?--encryption      no                             Encryption enabled?--inode-limit      2015232                   Maximum number of inodes--log-replicas    0                               Number of log replicas (max 2)--is4KAligned    yes                           is4KAligned?--rapid-repair    yes                          rapidRepair enabled?--write-cache-threshold 65536         HAWC Threshold (max 65536)-P                   system                       Disk storage pools in file system-d                   gpfs1001nsd;gpfs1002nsd  Disks in file system-A                   yes                             Automatic mount option-o                   none                           Additional mount options-T                   /gpfs2                         Default mount point--mount-priority 0                              Mount priority

有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的"mmcrfs命令和mmlsfs命令"。

创建协议数据导出时的文件集注意事项

您可以在整个文件系统、文件系统的子目录或文件集上创建导出。

文件集是一个文件系统对象,它使您能够以比文件系统更细的粒度管理数据。您可以执行管理操作,例如定义配额、创建快照、定义文件放置策略和规则,以及在文件集级别指定inode空间值,特别是当文件集是独立的时。

在IBM Spectrum Scale中,即使没有文件集,也可以创建导出。 根据您的数据管理策略,选择以下两种方法之一来创建导出:

在整个文件系统或文件系统的子目录上创建导出

在此选项中,导出表示较大的空间。 您可以在此空间中的目录上创建独立的文件集,并可以更好地控制导出目录路径。 需要部门多租户解决方案的大学和组织可以选择此选项。

查看以下示例以更好地理解此选项。

作为组织的存储管理员,您希望为组织的每个部门和用户创建单独的存储空间:

  1. 导出文件系统的根目录。
```bash
mmnfs export add /gpfs/fs0
```

注意 :您可以在根目录中创建子目录并将其导出。 例如:

mmnfs export add /gpfs/fs0/home

有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的 mmnfs 命令。

  1. 在根目录中创建独立的文件集,链接到子目录/gpfs/fs0/home。在以下示例中,假设有一个用户user1是组group/HR的一部分。
mmcrfileset fs0 hr_fileset --inode-space=newmmlinkfileset fs0 hr_fileset -J /gpfs/fs0/home/hrmmcrfileset fs0 user1_fileset --inode-space=newmmlinkfileset fs0 user1_fileset -J /gpfs/fs0/home/user1

有关更多信息,请参阅"IBM Spectrum Scale:命令和编程参考"中的以下命令。

  1. mmcrfileset 命令

  2. mmlinkfileset 命令

  3. 同样,为其它部门和用户创建独立的文件集。

您可以通过独立文件集为每个用户和部门分配配额。

NFS和SMB客户端现在可以挂载导出并访问其目录。

通过组和用户ACL控制对导出目录中数据的访问。

在这种情况下,只有属于HR组(HR组的ACL可以读取/写入hr目录)的用户才能访问该目录。组/HR中的用户user1可以对user1目录和hr目录执行读/写操作。

在整个文件系统或文件系统的子目录上创建导出

在独立文件集上创建导出

在此选项中,独立文件集表示离散项目。 可以在每个文件集上创建一个或多个导出。 您可以在文件集上应用信息生命周期管理(ILM)策略,以自动放置和管理文件数据。 您可以通过授予对特定工作站或IP地址的访问权限来保护导出数据。 此外,导出中的数据可以由独立文件集的快照策略保留。

查看以下示例以更好地理解此选项。

您是存储摄像头数据的私有云托管存储系统的存储管理员。您希望确保网络摄像机只能访问其存储目录。另外,您希望数据分析器访问所有数据,以便它们能够查找活动并生成分析报告。

  1. 创建一个独立的文件集web_cam_data。

    mmcrfileset fs0 web_cam_data --inode-space=newmmlinkfileset fs0 web_cam_data -J /gpfs/fs0/web_cam_data
    

    所有网络摄像头的数据都存储在/gpfs/fs 0/web_cam_data中。

  2. 为两个网络摄像头创建导出

    mkdir /gpfs/fs0/web_cam_data/camera1

    ​ mkdir /gpfs/fs0/web_cam_data/camera2

    mmnfs export add "/gpfs/fs0/web\_cam\_data/camera1" \
    

    ​ -c "198.51.100.2(Access_Type=RW);203.0.113.2(Access_Type=RO);203.0.113.3(Access_Type=RO)"

    ​ mmnfs export add "/gpfs/fs0/web_cam_data/camera2" \

    ​ -c "198.51.100.3(Access_Type=RW);203.0.113.2(Access_Type=RO);203.0.113.3(Access_Type=RO)"

webcam1(IP:198.51.100.2)挂载并记录数据到camera1导出,而webcam2(IP:198.51.100.3)挂载并记录数据到camera2导出。 数据分析器(IP:203.0.113.2和203.0.113.3)具有对两个导出的读访问权限。 因此,只能从指定的IP地址访问数据。

在独立文件集上创建导出

规划高可用写缓存功能(HAWC)

​ 了解高可用写缓存功能(HAWC)。

与HAWC交互的组件

​ HAWC与IBM Spectrum Scale的几个基本组件进行交互。 在阅读HAWC之前,您可能想要检查这些组件。

system存储池

_system存储池_或_system池_是必需的存储池,其中包含IBM Spectrum Scale用于管理文件系统的信息。 每个文件系统只有一个系统存储池,在创建文件系统时会自动创建。 系统存储池包含以下类型的信息:

  1. 控制信息(如文件系统控制结构、保留文件、目录、符号链接、特殊设备)
  2. 与常规文件关联的元数据,包括间接块和扩展属性
  3. 常规文件数据,如果在NSD stanza中为系统存储池NSD设置_usage = dataAndMetadata_选项
  4. 文件系统恢复日志(默认位置)

System.log存储池

_system.log_存储池是可选的专用存储池,仅包含文件系统恢复日志。 如果定义此池,那么IBM Spectrum Scale会将其用于文件系统的所有文件系统恢复日志。 否则,文件系统恢复日志将保留在系统存储池中。_system.log_池由一个与系统存储池的存储介质一样快或更快的存储介质组成,这是一个很好的做法。 如果存储是非易失性的,则此池可用于高可用写缓存(HAWC)。

文件系统恢复日志

_文件系统恢复日志_是I/O元数据的预写日志或日志,用于描述文件系统节点的挂起写入操作。 在IBM Spectrum Scale中,它有时也称为恢复日志,GPFS日志或IBM Spectrum Scale日志。 IBM Spectrum Scale为挂载文件系统的每个节点创建并维护单独的恢复日志。 恢复日志默认存储在系统存储池中,如果已定义,则存储在system.log存储池中。 安装文件系统的任何节点都可以读取恢复日志。 如果某个节点在其某个硬盘的写操作处于挂起状态时意外关闭,则IBM Spectrum Scale可以读取故障节点的恢复日志并将文件系统恢复到一致状态。 恢复可以立即发生,而不必等待失败的节点返回。

HAWC还使用恢复日志临时存储HAWC写数据和元数据.

页池

页池是固定的内存区域(永远不会分页到磁盘的内存),其中包含与正在进行的I / O操作关联的文件数据和元数据。 当IBM Spectrum Scale处理文件写操作时,第一步是将写操作的写入数据和元数据放入页池中。 在适当的时候,另一个线程将数据写入硬盘并将其从页池中删除。

HAWC操作

高可用写缓存是一个磁盘缓存组件,包括缓存软件和非易失性存储。HAWC还使用文件系统恢复日志(其中文件系统记录有关其挂起的写操作的元数据)。对于HAWC,恢复日志必须位于非易失性存储中。

当文件写入操作到达节点时,无论HAWC是否处于活动状态,处理的第一部分都是相同的。写入数据和元数据被复制到页池中的一个条目中,并且该条目被添加到等待处理的类似条目的列表中。处理条目时,处理取决于HAWC是否处于活动状态。

注意: 如果写操作是非同步的,则在将写入数据和元数据复制到页池条目之后,它将返回给调用方。如果写入操作是同步的,则它将等待文件数据已写入磁盘的通知。

当HAWC不处于活动状态时,写入数据将被从页池条目中复制并被写入至硬盘上的文件。如果写操作是同步的,则系统通知写操作成功,并将写操作返回给它的调用方。

当HAWC处于活动状态时,写入数据可以采用以下两种路径之一:

  1. 如果写入操作是同步的,并且文件数据的大小小于或等于写入数据阈值,则HAWC将文件数据从页池条目复制到恢复日志中,同时将恢复所需的任何I/O元数据复制到恢复日志中。_write data threshold_变量由 mmcrfs 命令或 mmchfs 命令设置。接下来,HAWC通知原始写入操作文件数据已成功写入硬盘。事实上,文件数据还没有写到硬盘上,尽管它作为备份保存在恢复日志中。然后,HAWC启动一个后写线程,最终将文件数据写入硬盘。安全写入数据后,HAWC将从恢复日志中清除文件数据和I/O元数据,因为不再需要这些数据。

  2. 如果写入操作不是同步的,或者写入数据的大小大于写入缓存阈值,则写入数据遵循的路径与HAWC不活动时遵循的路径相同。系统从页池条目复制写入数据并将其写入硬盘。如果原始写操作是同步的,则系统通知它文件数据已安全地写入硬盘。

    HAWC通过两种方式提高了小文件同步写操作的性能。首先,它允许同步写操作在写数据写入恢复日志时立即返回调用应用程序。调用应用程序不必等待更长的将数据写入硬盘的过程。其次,HAWC缓存软件可以将小的顺序写入合并为一个更大的写入。这种合并消除了除数据以多次写入方式写入时所需的所有初始磁盘查找之外的所有内容。

    可以通过指定 mmchfs 命令的 –write-cache-threshold 参数的值来调整写入缓存阈值变量。有效范围是0-64K,倍数为4K,您还可以在创建文件系统时通过在 mmcrfs 命令中指定相同的参数来设置这个变量。将写缓存阈值设置为0将禁用HAWC。您可以随时更新写入阈值变量;不必在节点上挂载文件系统。

HAWC存储场景

您可以在两种配置或方案中设置HAWC存储。 在第一种情况下,非易失性存储位于集中式快速存储设备中,例如带有SSD的控制器:


图27.共享快速存储

​ 在这种情况下,当同步写操作到达节点时,文件数据和元数据将以通常方式复制到页池条目。 如果文件数据的大小小于写入数据阈值,则HAWC将文件数据连同恢复所需的任何I/O元数据一起复制到恢复日志中。 接下来,HAWC向写操作返回一个确认,指示文件数据已成功写入硬盘。 然后HAWC启动一个后写线程,最终将文件数据写入硬盘。 安全地写入数据时,HAWC会从恢复日志中清除入操作的文件数据和I/O元数据。

在第二个场景中,非易失性存储由多个存储设备组成,这些存储设备分布在集群中的一些或所有节点上:

图28.分布式快速存储

虽然硬件配置在第二种情况下是不同的,但数据流与第一种情况的数据流类似。 同步写操作到达节点,写入数据和I/O元数据被写入页池条目。 如果写入数据的大小小于写入存储阈值,则HAWC将文件数据和相关I/O元数据复制到恢复日志。 数据在属于恢复日志存储池的各种磁盘上进行条带化。 HAWC向同步写操作返回成功确认,并启动后写线程,稍后将页池条目中的文件数据写入硬盘。 安全地写入数据时,HAWC会从恢复日志中清除文件数据和I/O元数据

HAWC软件配置

安装非易失性存储设备后,请完成以下步骤用于配置HAWC的IBM Spectrum Scale。 这些步骤假定您要将HAWC存储添加到现有文件系统:

  1. 停止集群中所有节点上的GPFS守护进程。
  2. 为非易失性存储设备创建NSD stanza。 在该stanza中,为所有非易失性存储设备指定一个存储池,该存储池必须是_system_池或_system.log_池。
  3. 运行 mmcrnsd 创建NSD。
  4. 运行 mmaddisk 以将NSD添加到文件系统,并在必要时创建_system.log_池。
  5. 在所有节点上启动GPFS守护进程。
  6. (可选)运行带 -L 参数的 mmchfs 命令,将恢复日志的大小设置为非默认值。
  7. (可选)运行带 –log-replicas 参数的 mmchfs 命令,以将恢复日志的副本数设置为非默认值。 仅当恢复日志存储在_system.log_池中时,此选项才适用。
  8. 要激活HAWC,请运行 mmchfs 命令并将 –write-cache-threshold 参数设置为非零值。

HAWC现已激活。

规划systemd

​ IBM Spectrum Scale支持Linux操作系统上的systemd 219及更高版本。

IBM Spectrum Scale会在安装了systemd 219或更高版本的系统中自动安装和配置为systemd服务。 服务单元文件安装在systemd lib目录中,如下面的列表所示:

  1. Red Hat Enterprise Linux and SUSE Linux Enterprise Server:

    /usr/lib/systemd/systemd

  2. Ubuntu:

    /lib/systemd/systemd

    IBM Spectrum Scale包括以下systemd服务。 有关IBM Spectrum Scale守护进程的引用,请参阅紧跟此列表的说明:
    

**gpfs ** 启动或停止GPFS守护进程( mmfsd )。

mmccrmonitor

启动或停止 mmccrmonitor 守护进程。此服务可在引导时启动。它一直在运行。如果它是由systemd systemctl 命令以外的其它方法杀死的,请使用 systemctl 命令手动重新启动它。

mmautoload

在重新启动节点后启动 mmauotoload 守护进程,如果指定了自动启动,还将启动GPFS守护进程。此服务还会在操作系统关闭时关闭GPFS守护进程

当节点关闭或重新启动时,systemd管理器调用此服务。在启动 mmccrmonitor 之后,将启用该服务在引导时启动。它不能用systemd systemctl 命令启动或停止。

mmsdrserv

启动或停止 mmsdrserv 守护进程。此服务在重新启动节点后启动,并在GPFS守护进程启动后停止。其它GPFS系统服务也会根据需要停止它。

mmsysmon

在启用"集群配置存储库"(CCR)的集群中启动或停止系统健康况监视。此服务可在节点启动时启动,并将持续运行,直到该节点关闭为止。它也可以由其它服务启动。

lxtrace

做跟踪操作。该服务由 mmtracectl 命令控制。不要使用 systemctl 命令启动或停止此服务。

IBM Spectrum Scale守护程序的描述:

  1. GPFS守护进程( mmfsd )是在节点上运行的主要IBM Spectrum Scale守护进程。
  2. 如果 mmfsd 未运行, mmccrmonitor 守护进程将启动和停止 mmsdrserv 守护进程。
  3. mmfsd 守护进程未运行时, mmsdrserv 守护进程向集群中的其它节点提供对配置数据的访问。
  4. mmauotoload 守护进程在操作系统启动时设置GPFS资源。

防火墙建议

IBM Spectrum Scale系统管理员应遵循某些建议来设置防火墙,以保护IBM Spectrum Scale系统免受未经授权的访问。

有关防火墙建议的更多信息,请参阅"IBM Spectrum Scale:管理指南"中的"使用防火墙保护IBM Spectrum Scale系统"。

GPFS应用程序的注意事项

​ 应用程序设计应考虑与**stat()**系统调用和NFS V4ACL有关的开放组织技术标准的例外情况。

此外,还提供了一种用于确定文件系统是否由GPFS控制的技术。

有关更多信息,请参阅"IBM Spectrum Scale:管理指南"中的以下主题:

  1. 开放组织技术标准的例外情况
  2. 确定文件系统是否由GPFS控制
  3. GPFS异常和NFS V4 ACL的限制
  4. GPFS应用程序的注意事项

确定文件系统是否由GPFS控制

​ 如果从**statfs()fstatfs()**调用返回的 statfs 结构中的 f_type 字段的值为0x47504653,即ASCII中的GPFS,则文件系统由GPFS控制。

​ 此常量位于 gpfs.h 文件中,名称为 GPFS_SUPER_MAGIC 。 如果应用程序包含 gpfs.h ,它可以将 f_typeGPFS_SUPER_MAGIC 进行比较,以确定文件系统是否由GPFS控制。

使用直接IO(O_DIRECT)的注意事项

当文件以 O_DIRECT 模式(直接I/O模式)打开时,GPFS会在用户缓冲区和磁盘上的文件之间直接传输数据。

在下列情况下,使用直接I/O可能会带来一些性能上的好处:

  1. 该文件在随机位置访问。
  2. 没有访问位置。

只有满足以下所有条件时,才能在用户缓冲区和磁盘之间进行直接传输:

  1. 传输的字节数是512字节的倍数。

  2. 文件偏移量是512字节的倍数。

  3. 用户内存缓冲区地址在512字节边界对齐。

    当这些条件_不全_为真时,操作仍将继续进行,但会像对待其它普通文件I/O那样处理,使用 O_SYNC 标志将脏缓冲区刷新到磁盘。

    当这些条件都为真时,GPFS页池不会被使用,因为数据是直接传输的;因此,在大多数I/O卷都是直接I/O造成的环境(如数据库中的I/O)不会从大容量的页池中受益。但是,请注意,仍然需要为页池配置足够的大小,或者保持其默认值不变,因为页池还用于存储文件元数据(特别是对于大型文件所需的间接块)。

    对于直接I/O,应用程序负责协调对文件的访问,GPFS锁定机制提供的开销和保护都不起作用。 特别是,如果两个线程或节点在文件的重叠部分上同时执行直接I/O,则结果是未定义的。 例如,当对同一文件偏移进行多次写入时,在完成所有I/O时,不确定哪些写入将出现在文件上。 此外,如果文件具有数据复制,则无法保证所有数据副本都包含来自同一编写器的数据。 也就是说,每个副本的内容可能会有分歧。

    即使I/O请求按前面列出的方式对齐,在下列情况下,GPFS也不会直接传输数据,而会恢复到较慢的缓冲行为:

  4. 写入会导致文件的大小增加。

  5. 写入位于已预先分配(通过gpfs_prealloc())但尚未写入的文件的一个区域中。

  6. 写入位于文件中存在"空洞"的区域中;也就是,文件是稀疏的,并且有一些未分配的区域。

    当直接I/O请求对齐,但前面列出的条件(这将导致缓存的I/O路径被采用)都不存在时,处理将以这种方式优化:请求完全由GPFS内核模块以内核模式处理,不涉及GPFS守护进程。但是,下列任何一种情况仍然会导致请求通过守护进程:

  7. I/O操作需要由NSD服务器提供服务。

  8. 文件系统有数据复制。在写操作的情况下,GPFS守护进程负责生成日志记录,以确保副本内容相同(在将副本写入磁盘时出错的情况下)。

  9. 操作在Windows操作系统上执行。

    请注意,在使用**fcntl(fd,F_SETFL,[.])**打开的文件上设置 O_Direct标志 ,这在Linux上是允许的,但在GPFS文件系统中将被忽略。

由于Linux中的限制,使用 O_DIRECT 的I/O操作不应与由同一进程调用的fork(2) 系统调用同时发出。 只有在 O_DIRECT I/O操作完成后才能发出对程序中fork()的任何调用。 也就是说,当 O_DIRECT I/O操作仍在等待完成时,不应调用fork()
有关更多信息,请参阅Linux文档中的open(2)系统调用。

规划IBM Spectrum Scale相关推荐

  1. IBM Spectrum Scale RAID 管理

    介绍IBM Spectrum Scale RAID 本主题描述IBM Spectrum Scale RAID的基本概念,特性和功能:冗余码,端到端校验和,数据分簇和管理员配置,包括恢复组,分簇阵列,虚 ...

  2. IBM Spectrum LSF 客户案例——国立巴黎高等矿业学院和软件开发公司 Transvalor

    国立巴黎高等矿业学院和软件开发公司 Transvalor 通过提供企业级 HPC 服务,打造未来的行业领导者 巴黎高等矿业学院和软件开发公司 Transvalor 合作,为内部和外部用户提供HPC服务 ...

  3. IBM Spectrum LSF社区版下载

    1.链接 Where do I download LSF Community Edition 2.注册IBMid 这里注意Country or region of residence选择,United ...

  4. i 智慧 | IBM存储:全面贯彻新存储的“智慧之道”

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 刘丹 责编 | 阿秃 出品 | CSDN云计算(ID:CSDNcloud) 随着移动互联网.信息技术等创新发展,数据量呈指数级爆发式 ...

  5. 2016,不能忽视的IBM闪存新思维下的新战略

    2016年也快结束了,一天走在路上,回顾今年闪存市场有哪些变化,当脑细胞路过IBM闪存时,发现IBM闪存在2016年的发力目标非常清晰,就是围绕IBM的认知战略做基础工作. 这一年,从产品上IBM推出 ...

  6. Cloud Paks地理数据研究成果|IBM

    现状 从全球范围来看,采用商业地理数据进行商业选址及消费者地理细分在发达经济体已经非常普及.为更精准地服务不断升级的中国消费者,宜家家居.麦当劳.星巴克等专门成立了商业地理分析团队,来指导其在中国的店 ...

  7. IBM:以现代化存储支持企业数字化转型

    随着移动互联网.信息技术等创新发展,数据量呈指数级爆发式增长并表现在多个方面,即规模扩张.结构多元化的数据新形态:业务升级转型带来的场景化需求数据新部署:市场细分带来的数据应用新模式以及承载行业发展, ...

  8. 【一周头条盘点】中国软件网(2017.11.20~2017.11.24)

    每一个企业级的人 都置顶了 中国软件网 中国软件网 为你带来最新鲜的行业干货 趋势洞察 阿里云IoT赵磊:ICA联盟,构建未来物联网生态圈 阿里云IoT赵磊表示:阿里ICA 联盟,也称IoT合作伙伴计 ...

  9. manila 文件共享存储服务

    共享文件系统服务简介 manila 共享文件系统服务提供计算实例可以使用的共享文件系统. OpenStack 共享文件系统服务( Manila )为虚拟机提供文件存储.共享文件系统服务提供了用于管理和 ...

最新文章

  1. 浅析SAAS数据模型设计(Oracle)
  2. 网站服务器处理器计划怎么设置,服务器处理器计划
  3. 一些常用正则表达解析
  4. 按字段顺序加载或解析JSON对象
  5. 记一次OpenJDK替换java JDK
  6. 编程问题难解决,学会提问是关键!
  7. OpenDaylight开发hello-world项目之开发工具安装
  8. Geoserver的ImageMosaic数据源添加以及服务发布
  9. How——如何学习Win32汇编
  10. python数据分析之(4)读写数据文件CSV,EXCEL等
  11. DEV控件之ChartControl用法
  12. python多行注释报错_解决python多行注释引发缩进错误的问题
  13. 小学数学题生成器java_JAVA小学四则运算生成器(聂适涵,邱品)
  14. Cobalt Strike (cs)联动 Goby 进行内网扫描
  15. Java知识点的总结(一)
  16. java高德地图api开发平台_【高德地图API】从零开始学高德JS API(一)地图展现...
  17. 安卓App太能乱来了!被曝一天扫你后台1.3万次:小米系统更新,一不小心扯出惊人真相...
  18. MSXML2.DOMDocument
  19. /Zc:strictStrings配置
  20. 社会网络中新事物的传播

热门文章

  1. 在 Linux 下开发和下载8051单片机程序
  2. 设计 | 分享5个好用的PPT模板网站
  3. 天气预报到底能有多精细?一个小网格里的天气变化
  4. 金格控件java版本_金格全文批注中间件软件下载
  5. Android APT(编译时代码生成)最佳实践
  6. 初识视觉SLAM 用相机解决定位和建图问题
  7. 融资租赁业务系统整体介绍(一)
  8. python dataframe 模糊匹配_Python模糊匹配(FuzzyWuzzy) – 保持最佳匹配
  9. Shell的while命令
  10. win7电脑便签删了还能恢复么