当前位置: 代码迷 >> 综合 >> IBM Spectrum Scale RAID 管理
  详细解决方案

IBM Spectrum Scale RAID 管理

热度:8   发布时间:2023-12-08 12:12:59.0

介绍IBM Spectrum Scale RAID

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

IBM Spectrum Scale RAID是IBM Spectrum Scale中存储RAID技术的软件实现。 在JBOD配置中使用传统的双端口磁盘,IBM Spectrum Scale RAID实现了复杂的数据布局和纠错算法,可提供高水平的存储可靠性,可用性和性能。 标准GPFS文件系统是通过IBM Spectrum Scale RAID定义的NSD创建的。

IBM Spectrum Scale RAID可与IBM Elastic Storage Server(ESS)5.0 for Power? 一起使用。 ESS是一种高容量,高性能的存储解决方案,它结合了IBM Power Systems服务器,存储机箱,驱动器,软件(包括IBM Spectrum Scale RAID)和网络组件。 ESS使用构建块方法来创建高度可扩展的存储,以便在广泛的应用程序环境中使用。


概要

IBM Spectrum Scale RAID将高级存储控制器的功能集成到GPFS NSD服务器中。 与配置,LUN定义和维护不受IBM Spectrum Scale控制的外部存储控制器不同,IBM Spectrum Scale RAID本身承担控制,管理和维护物理磁盘的角色 - 硬盘驱动器(HDD)和固件 - 固态驱动器(SSD)。

先进的数据布局和纠错算法可提供高水平的存储可靠性,可用性,可维护性和性能。 IBM Spectrum Scale RAID提供了GPFS网络共享磁盘(NSD)的变体,称为virtual diskvdisk。 标准NSD客户端使用传统的NSD协议透明地访问文件系统的虚拟磁盘NSD。

IBM Spectrum Scale RAID的功能包括:

  • 软件RAID

    IBM Spectrum Scale RAID运行在双端口JBOD阵列中的标准串行连接SCSI(SAS)磁盘上,不需要外部RAID存储控制器或其它自定义硬件RAID加速。

  • 分簇

    IBM Spectrum Scale RAID在JBOD的所有磁盘上统一分配客户端数据,冗余信息和备用空间。 与传统RAID相比,此方法减少了重建(磁盘故障恢复过程)开销并提高了应用程序性能。

  • Pdisk组容错

    除了跨磁盘对数据进行分布之外,IBM Spectrum Scale RAID还可以放置数据和奇偶校验信息,以防止基于磁盘机箱和系统特性的磁盘组由于常见故障而可能一起发生故障。 数据布局算法确保即使磁盘组的所有成员都发生故障,纠错码仍然能够恢复已擦除的数据。

  • 校验和

    在磁盘表面和NSD客户端之间维护使用校验和和版本号的端到端数据完整性检查。 校验和算法使用版本号来检测静默数据损坏和丢失磁盘写入。

  • 数据冗余

    IBM Spectrum Scale RAID支持高可靠的2容错和3容错(基于里德 - 所罗门的奇偶校验码和3路和4路复制)。

  • 大缓存

    大缓存可提高读写性能,特别是对于小I/O操作。

  • 任意大小的磁盘阵列

    磁盘数量不限于RAID冗余码宽度的倍数,这样可以灵活地控制RAID阵列中的磁盘数量。

  • 多种冗余方案

    一个磁盘阵列可以支持具有不同冗余方案的虚拟磁盘(即vdisk),例如Reed-Solomon和复制码。

  • 磁盘医院

    磁盘医院异步诊断有故障的磁盘和路径,并使用过去的健康记录请求替换磁盘。

  • 自动恢复

    从主服务器故障无缝自动恢复。

  • 磁盘检测

    磁盘检测器会自动检测并修复后台中的潜在扇区错误。

  • 熟悉的接口

    所有配置命令都使用标准的IBM Spectrum Scale命令语法,包括维护和替换故障磁盘。

  • 灵活的硬件配置

    支持在可移动托架上物理安装多个磁盘的JBOD机箱。

  • 日志(Journaling)

    为了改善节点发生故障后的性能和恢复,内部配置和小写数据被记录到JBOD中的固态磁盘(SSD)或IBM Spectrum Scale RAID服务器内部的非易失性随机存取存储器(NVRAM)。


IBM Spectrum Scale RAID特性

本节介绍IBM Spectrum Scale RAID的三个主要特性及其工作原理:使用RAID码的数据冗余,端到端校验和以及分块。

RAID码

IBM Spectrum Scale RAID通过使用Reed-Solomon码或N路复制的可用数据冗余重建不可读数据,自动纠正磁盘故障和其它存储故障。 IBM Spectrum Scale RAID使用重建数据来完成客户端操作,并在磁盘发生故障时将数据重建到备用空间。 IBM Spectrum Scale RAID支持2和3容错的Reed-Solomon码以及3路和4路复制,分别检测和纠正最多两个或三个并发故障1。 IBM Spectrum Scale RAID支持的冗余码布局(称为磁道)如图1所示。
图1

图1. IBM Spectrum Scale RAID支持的冗余码。 IBM Spectrum Scale RAID支持2和3容错Reed-Solomon码,它们将GPFS块分为8个数据strip和2个或3个奇偶校验strip。 N路复制码复制GPFS块到N-1个副本strip上。

根据所配置的RAID码,IBM Spectrum Scale RAID自动创建冗余信息。IBM Spectrum Scale RAID使用Reed-Solomon码,将用户数据的GPFS块平分8个数据strip,并生成2个或3个冗余奇偶校验strip。这将导致条带或磁道宽度分别为10或11,存储效率分别为80%或73%(不包括用于重建操作的用户可配置的备用空间)。

使用N路复制,GPFS数据块只复制N-1次,实际上实现了1+2和1+3冗余码,strip大小等于GPFS块大小。 因此,对于写入磁盘的每个块/strip,也会写入该块/strip的N个副本。 这导致磁道宽度为3个或4个strip,存储效率分别为33%或25%。

端到端校验和

大多数RAID码实现都隐式地假定磁盘可靠地检测和报告错误、硬读错误和其它完整性问题。然而,研究表明磁盘并不报告一些读错误,有时写数据失败,而实际上声称写了数据。这些错误通常被称为静默错误、错位写入、丢弃写入和脱轨写入。为了弥补这些缺点,IBM Spectrum Scale RAID实现了端到端校验和,它可以检测由传输或操作数据的磁盘或其它系统组件引起的静默数据损坏。

当NSD客户端正在写入数据时,计算出8字节的校验和,并在将数据通过网络传输到IBM Spectrum Scale RAID服务器之前附加到数据。 接收时,IBM Spectrum Scale RAID会计算并验证校验和。 然后,IBM Spectrum Scale RAID将数据,校验和和版本号存储到磁盘,并在其元数据中记录版本号,以便在读取期间进行验证。

当IBM Spectrum Scale RAID读取磁盘以满足客户端读取操作时,它将磁盘校验和与磁盘数据进行比较,并将磁盘校验和版本号与存储在其元数据中的版本号内容进行比较。如果校验和版本号匹配,IBM Spectrum Scale RAID将数据连同校验和一起发送到NSD客户端。如果校验和或版本号无效,IBM Spectrum Scale RAID将使用奇偶校验或复制重新构建数据,并将重构的数据和新生成的校验和返回给客户端。因此,无论是静默磁盘读取错误和已丢失或正在丢失的磁盘写入都被检测和纠正。

分簇RAID

与传统RAID相比,IBM Spectrum Scale RAID实现了先进的数据和备用空间磁盘布局方案,允许任意大小的磁盘阵列,同时还可以减少从磁盘故障中恢复时客户端的开销。 为实现此目的,IBM Spectrum Scale RAID在分簇阵列的所有磁盘上统一扩展或分簇用户数据,冗余信息和备用空间。 图2比较了传统的RAID布局与等效的分簇阵列。
图2

图2.传统RAID与分簇RAID布局。此图是IBM Spectrum Scale RAID如何通过使用分簇阵列中所有磁盘的吞吐量来改善重建操作期间的客户端性能的示例。这通过比较由3个阵列组成的传统RAID与分簇阵列(均使用7个磁盘)来说明。左下方的常规1容错1+1复制RAID阵列显示为3个阵列,每个阵列包含2个磁盘(数据和副本strip)以及用于重建的备用磁盘。要对这个阵列进行分簇,磁盘分为7个磁道,每个磁道2个strip,如左上角所示。然后将来自每组的strip组合地分布在所有7个磁盘位置上,对于右上方总共21个虚拟磁道。然后将每个磁道的每个磁盘盘位置的strip任意地分配到右下方的分簇阵列的磁盘上(在这种情况下,通过垂直向下滑动并从上方压缩strip)。均匀地插入备用strip,每个磁盘一个。

如图3所示,分簇阵列可以显着缩短从磁盘故障中恢复所需的时间,从而降低客户端应用程序的重建开销。 当磁盘发生故障时,使用分簇阵列中的所有操作磁盘重建已擦除的数据,其带宽大于传统RAID组中较少磁盘的带宽。 此外,如果在重建期间发生额外的磁盘故障,则需要修复的受影响轨道的数量明显少于先前的故障,并且小于传统阵列的恒定重建开销。

分簇重建影响和客户端开销的减少可能是传统RAID的3到4倍。 由于IBM Spectrum Scale会跨集群中所有存储节点对客户端数据进行条带化,因此文件系统性能变得更少依赖于任何单个重建存储阵列的速度。

图3

图3.与传统RAID相比,分簇RAID中有较低的重建开销。 当在左侧的1个容错1+1传统阵列中出现单个磁盘故障时,冗余磁盘将被读取并复制到备用磁盘上,这需要7个 strip I/O操作的吞吐量。 当在分簇阵列中出现单个磁盘故障时,从尚存的6个磁盘中读取6个受影响磁道的所有复制strip,然后写入6个备用strip,以获得2 个strip I/O操作的吞吐量。 条形图说明了重建操作期间的磁盘读写I/O吞吐量。


磁盘配置

本节介绍恢复组和分簇阵列配置。

恢复组(RG)

IBM Spectrum Scale RAID将磁盘划分为恢复组,每个恢复组都物理连接到两个服务器:主服务器和备份服务器。 对恢复组的任何磁盘的所有访问都是通过恢复组的活动服务器(主服务器或备份服务器)进行的。

基于IBM Spectrum Scale的固有NSD故障转移功能,当IBM Spectrum Scale RAID服务器因硬件故障,软件故障或正常关闭而停止运行时,备份IBM Spectrum Scale RAID服务器将无缝地接管其恢复组中相关磁盘的控制权。

通常,JBOD阵列分为两个由不同的主要IBM Spectrum Scale RAID服务器控制的恢复组。 如果恢复组的主服务器出现故障,则控制会自动切换到其备份服务器。 在典型的JBOD中,一个恢复组的主服务器是另一个恢复组的备份服务器。

图4

图4.两个IBM Spectrum Scale RAID服务器和一个存储JBOD的最小配置。 IBM Spectrum Scale RAID服务器1是第一个恢复组的主控制器和第二个恢复组的备份。 IBM Spectrum Scale RAID服务器2是第二个恢复组的主控制器和第一个恢复组的备份。 如图所示,当服务器1发生故障时,第一恢复组的控制由其备份服务器2接管。在服务器1发生故障期间,备份服务器2上的负载从一个到两个恢复组增加100%。

分簇阵列(DA)

分簇阵列是恢复组中物理磁盘(pdisks)的子集,数据,冗余信息和备用空间在其中进行分簇。 分簇阵列中的磁盘数由将位于分簇阵列中的虚拟磁盘的RAID代码宽度决定。 有关详细信息,请参阅“虚拟磁盘”。每个恢复组可以有一个或多个分簇阵列。 图5显示了具有两个恢复组的存储JBOD,每个恢复组具有四个分簇阵列。

分簇阵列可以容纳一个或多个vdisk。 由于冗余码与vdisk相关联,因此分簇阵列可以同时包含Reed Solomon和复制的vdisk。

如果存储JBOD支持在一个可移动支架上物理上安装多个磁盘,则删除一个支架将暂时禁用对该支架中所有磁盘的访问。因此,同一支架上的pdisk不应处于相同分簇阵列中,因为在移除支架时,vdisk冗余保护将被削弱。

通常在创建恢复组时创建分簇阵列,但可以稍后创建新分簇阵列或通过添加pdisk来扩展现有分簇阵列。

图5

图5.存储JBOD中的分簇阵列和恢复组示例。 此图显示了具有2个恢复组的存储JBOD,每个恢复组具有4个分簇阵列,每个分簇阵列具有5个磁盘。


虚拟磁盘(vdisk)和物理磁盘(pdisk)

虚拟磁盘(vdisk)是NSD的一种类型,由IBM Spectrum Scale RAID在分簇阵列的所有物理磁盘(pdisks)上实现。 可以在分簇阵列中定义多个虚拟磁盘,通常用于GPFS用户数据的Reed-Solomon虚拟磁盘和用于GPFS元数据的复制虚拟磁盘。

虚拟磁盘

是否可以在分簇阵列中创建特定容量的虚拟磁盘取决于其冗余码,阵列中的pdisk数量和等效备用容量,以及其它小型IBM Spectrum Scale RAID开销因素。 根据给定的冗余码和已配置分簇阵列的备用空间,mmcrvdisk命令可以自动配置最大可能大小的虚拟磁盘。

通常,分簇阵列中的pdisk数量不能小于vdisk的最宽冗余码加上分簇阵列的等效备用磁盘容量。 例如,在具有2个磁盘的等效备用空间容量分簇阵列中,使用具有11个strip宽的8+3p Reed-Solomon码的vdisk至少需要13个pdisk。在具有2个磁盘的等效备用容量分簇阵列中, 使用3路复制码的vdisk至少需要5个pdisk。

vdisk被划分为虚拟磁道,虚拟磁道在功能上相当于GPFS块。所有vdisk属性在创建时都是固定的,以后不能更改。

物理磁盘

IBM Spectrum Scale RAID使用pdisk存储用户数据和IBM Spectrum Scale RAID内部配置数据。

pdisk是传统的旋转磁介质硬盘驱动器(HDD)或固态磁盘(SSD)。 分簇阵列中的所有pdisk必须具有相同的容量。

假设pdisks是双端口的。 在此类配置中,一个或多个路径连接到主IBM Spectrum Scale RAID服务器,一个或多个路径连接到备份服务器。 通常,IBM Spectrum Scale RAID服务器和连接的JBOD pdisk之间存在两条冗余路径。

固态磁盘

早期版本的ESS在每个恢复组中使用了多个固态磁盘(SSD),以便冗余地记录对其内部配置的更改,并在非易失性存储器中快速写入数据,服务器故障后可以从主或备份IBM Spectrum Scale RAID服务器访问。

更高版本的ESS通常使用NVRAM,每个恢复组只有一个SSD,仅在发生故障时用作NVRAM的备份。


具有pdisk组容错功能的IBM Spectrum Scale RAID

IBM Spectrum Scale RAID有一种改进型的用于分配冗余码strip的布局算法。 与以前版本的IBM Spectrum Scale RAID相比,该改进版可以允许在更大的并发磁盘故障单元的存活下来。 布局算法知道系统中存在的磁盘的硬件分组,并尝试在尽可能多的组之间隔离冗余码stripe的各个strip。

例如,如果硬件配置包括四个磁盘机箱,并且创建了一个带有4路复制的vdisk,则vdisk的4路stripe的每一个strip都可以放在一个单独的机箱上,而且,如果一个完整的机箱(可能有几十个或几百个磁盘)发生故障,其它机箱上幸存下来的冗余码带将确保没有数据丢失。这个改进型的布局与以前版本的IBMSurumScale RAID中展示的布局有很大不同,以前版本没有尝试在磁盘的硬件分组之间隔离strip,因此可以将所有4个冗余代码strip放置在一个机箱中。丢失该机箱将导致数据不可用。

IBM Spectrum Scale RAID使用用户为用户数据选择的冗余码和系统为配置数据选择的冗余码,所选择的冗余码、可用磁盘空间和当前磁盘硬件配置都在哪些类型的故障可以存活方面发挥作用。 IBM Spectrum Scale RAID为其内部配置数据选择至少5路复制,并且需要一定量的物理磁盘空间来描述系统。 IBM Spectrum Scale RAID还会自动发现磁盘硬件组,并在冗余码strip的定期重新平衡中使用此发现。如果磁盘硬件配置发生更改(例如,如果将新磁盘机箱添加到恢复组),IBM Spectrum Scale RAID会自动识别更改并在后台自动执行重新平衡操作。此外,在发生硬件故障时的重建操作也会识别硬件分组,因此故障的冗余码strip被以可感知当前磁盘硬件分组的方式重建。

pdisk组容错的示例

IBM Spectrum Scale RAID系统中的每个数据stripe(包括用户数据和系统配置数据)都通过不同形式的冗余进行保护。 这些数据stripe中的每一个stripe都有一组磁盘,在这些磁盘中约束它们的strip放置。 数据的每个stripe(每个整体中有许多stripe)具有单独的strip,用于对象数据的冗余码保护。 这些strip的放置分布在一组抽屉内的一组pdisk中。 这些抽屉位于一套机箱内。

图6显示了使用4路复制的RAID冗余码(即每个数据条的四个重复副本)的vdisk的示例stripe放置。 pdisk组容错布局选择将stripe的4个strip放置在此恢复组可用的2个机箱中的4个抽屉中。

通过在尽可能宽的一套磁盘组间隔离每个单独的strip,IBM Spectrum Scale RAID可确保在RAID冗余码的容错性范围内丢失任何磁盘组都是可生存的。

图6

图6.跨JBOD机箱的strip

图7显示丢失了一个完整的机箱和第二个机箱中一个抽屉后相同配置的示例。
图7

图7.跨JBOD机箱的strip(故障后)

在本例中,pdisk组跨多个机箱和多个抽屉的单个strip的容错放置,可以确保在出现一个机箱和单个抽屉故障导致的多个磁盘故障中4个重复副本中的至少一个副本幸存下来。


磁盘医院

磁盘医院是IBM Spectrum Scale RAID的一项关键功能,可以异步诊断存储子系统中的错误和故障。在单个pdisk上I/O 的时间经过大约十秒后, IBM Spectrum Scale RAID就将该IO操作标记为超时,从而限制了故障pdisk对客户端I/O操作的影响。 当pdisk I/O操作导致超时,I/O错误或校验和不匹配时,可疑的pdisk立即被允许进入磁盘医院。 当首次接纳pdisk时,医院会确定错误是由pdisk本身还是由路径引起的。 当医院诊断出错误时,IBM Spectrum Scale RAID(如果可能)使用虚拟磁盘冗余码重建丢失或擦除的I/O操作strip,否则这些操作将使用可疑的pdisk。

健康指标

磁盘医院为每个pdisk维护以下内部健康评估指标。 当其中一个指标超过阈值时,pdisk将根据分簇阵列的磁盘维护替换策略标记为替换。

relativePerformance

??描述响应时间。 大于1的值表示磁盘性能高于平均速度; 小于1的值表示磁盘性能低于平均速度。 0.800至1.250范围内的值被认为是正常。 典型值的示例是:0.932,0.978,1.039和1.095。 如果磁盘的relativePerformance低于特定阈值(默认设置为0.667),则医院会将“slow”添加到pdisk状态,并且磁盘已准备好进行更换。

dataBadness

??描述介质错误(硬错误)和校验和错误。

磁盘医院记录选定的自我监视、分析和报告技术(SMART)数据,包括每个pdisk的内部扇区重新映射事件的数量。

Pdisk发现

IBM Spectrum Scale RAID在启动时发现所有已连接的pdisk,然后定期安排一个进程,该进程将重新发现IBM Spectrum Scale RAID服务器新近可访问的pdisk。 这允许在不重新启动IBM Spectrum Scale RAID服务器的情况下物理连接pdisks或修复连接问题。

磁盘替换记录和报告

磁盘医院根据分簇阵列的磁盘更换策略跟踪需要替换的磁盘,并且可以配置为以多种方式报告替换的需要。 它记录并报告故障磁盘的FRU编号和物理硬件位置,以帮助引导服务人员找到需替换磁盘的正确位置。

如果存储JBOD支持在可移动托架(如Power 775)上安装多个磁盘,则磁盘替换要求医院暂时挂起同一托架中的其它磁盘。在Power 775存储JBOD上,磁盘托架也是不可移动的,直到IBM Spectrum Scale RAID启动螺线管控制的锁存器,以防止人为错误。

为了响应管理命令,医院停止适当的磁盘(或托架上的多个磁盘),释放托架锁定螺线管(如果需要),并打开ID灯以指导更换。 在更换一个或多个磁盘并重新插入磁盘或托架后,医院会根据管理命令验证是否已进行修复并自动将任何新磁盘添加到分簇阵列,从而导致IBM Spectrum Scale RAID 在分簇阵列的所有磁盘上重新平衡磁道和备用空间。 如果服务人员未能在合理的时间内重新插入磁盘或托架,则医院会声明磁盘丢失并开始重建受影响的数据。

实施IBM Spectrum Scale RAID

在执行IBM Spectrum Scale RAID管理任务之前,请查看有关IBM Spectrum Scale入门,实施IBM Spectrum Scale RAID的要求以及常用命令原则的信息。

有关IBM Spectrum Scale入门的信息,请参阅“IBM Spectrum Scale:概念,规划和安装指南”。

有关IBM Spectrum Scale和GPFS文件系统的管理和维护的信息,请参阅“IBM Spectrum Scale:管理指南”。


实施IBM Spectrum Scale RAID的要求

执行所有IBM Spectrum Scale RAID管理任务需要root权限。

IBM Spectrum Scale RAID命令在GPFS集群中的所有节点上维护适当的环境。 为实现此目的,IBM Spectrum Scale RAID命令使用您在mmcrcluster命令或mmchcluster命令上指定的远程shell和远程文件复制命令。 有关更多信息,请参阅“IBM Spectrum Scale:命令和编程参考”。

默认远程命令是rshrcp,但您可以使用兼容语法指定sshscp或任何其它远程命令。 Windows Cygwin环境提供的rshrcp命令不支持IBM Spectrum Scale。 如果您的群集包含Windows节点,则必须将sshscp指定为远程通信程序。

原则上,您可以从GPFS集群中的任何节点发出IBM Spectrum Scale RAID管理命令。 您计划用于管理IBM Spectrum Scale RAID的节点必须能够在自身和集群中的任何其它节点上运行远程shell命令,而无需使用密码也不会产生任何无关的消息。 类似地,发出IBM Spectrum Scale RAID命令的节点必须能够在不使用密码且不产生任何无关消息的情况下,将文件复制到GPFS集群中的任何其它节点以及从GPFS集群中的任何其它节点复制文件。

实现无密码访问的方式取决于所使用的特定远程执行程序和身份验证机制。 例如,对于rshrcp,您可能需要在GPFS集群中每个节点上的root用户主目录中配置正确的**.rhosts文件。 如果远程程序是ssh**,则可以使用没有密码的私有标识文件。 或者,如果标识文件受密码保护,则可以在发出mm命令之前使用ssh-agent实用程序建立授权会话。 管理员有责任仅从正确配置的节点发出mm命令,并且可以访问GPFS集群中的其余节点。


常见的IBM Spectrum Scale RAID命令原则

在运行IBMSumumScale RAID命令时,您应该记住一些常见的原则。

这些原则包括:

  • 除非另有说明,否则可以从GPFS集群中的任何节点运行IBM Spectrum Scale RAID命令。 例外是特定操作系统环境中不支持的命令。某些命令可能还要求挂载受影响的GPFS文件系统。
  • IBM Spectrum Scale支持所有布尔类型长(或破折号-破折号)选项的“no”前缀。

将节点指定为IBM Spectrum Scale RAID命令的输入

许多IBM Spectrum Scale RAID命令使用**-N**标志接受一个节点或多个节点作为其输入的一部分。 IBM Spectrum Scale RAID命令可以通过多种方式使用指定节点:

Node

??表示单个节点,可以是以下任何一种:

  • 短的GPFS管理节点接口名称。
  • 长的GPFS管理节点接口名称。
  • 短的GPFS守护进程节点接口名称。
  • 长的GPFS守护进程节点接口名称。
  • 与GPFS守护进程节点接口对应的IP地址。
  • GPFS节点号。

Node - Node

节点范围,通过指定由连字符( - )分隔的两个节点号表示,第一个节点号小于或等于第二个节点号。 例如,节点范围3-8指定节点号为3,4,5,6,7和8的节点。

NodeClass

由系统定义的节点集合或用户自定义的节点集合组成的一组节点。已为IBM Spectrum Scale所知的系统定义的节点集合是:

all

??GPFS集群中的所有节点。

clientnodes

??所有不参与文件系统管理活动的节点。

localhost

??运行该命令的节点。

managernodes

??从其中选择文件系统管理器和令牌管理器的节点池中的所有节点。

mount

??对于涉及文件系统的命令,挂载文件系统的所有本地节点(远程集群中的节点始终被排除,即使它们挂载相关的文件系统)。

nonquorumnodes

??GPFS集群中的所有非仲裁节点。

nsdnodes

??GPFS集群中的所有NSD服务器节点。

quorumnodes

??GPFS集群中的所有仲裁节点。

用户定义的节点集合是用mmcrnodecass命令创建的。创建节点集合后,可以将其指定为接受**-N** NodeClass选项的命令的参数。用户定义的节点集合是通过mmchnodecassmmdelnodecassmmlsnodecass命令来管理的。有关更多信息,请参阅“IBM Spectrum Scale:命令和编程参考”。

NodeFile

??包含节点列表的文件。 节点文件可以包含单个节点或节点范围。

对于在文件系统上运行的命令,条带组管理器节点始终隐式包含在节点列表中。 并非每个IBM Spectrum Scale RAID命令都支持本主题中描述的所有节点规范选项。 要了解特定IBM Spectrum Scale RAID命令支持哪种节点规范,请参阅附录B“IBM Spectrum Scale RAID命令”中的相关命令说明。

Stanza 文件

可以在一个以是stanza格式组织的文件中提供许多IBM Spectrum Scale RAID命令的输入。

Stanza 是一系列空格分隔的标记,可以跨越多行。Stanza 的开始由作为行上的第一个标记的stanza 标识符的存在来指示。Stanza 标识符由%(百分比符号)字符组成,后跟关键字,以:(冒号)字符结尾。例如,%nsd:表示NSD stanza 的开头。

Stanza标识符后跟一个或多个描述对象的不同属性的stanza子句。 Stanza子句定义为Attribute = value对。

以#(井号)字符开头的行被视为注释行并被忽略。 同样,您可以在stanza后的子句中嵌入内联注释; #字符后的所有文本都被视为注释。

stanza的结尾由以下内容之一表示:

  • 表示新stanza开始的行
  • 空行
  • 不包含=字符的非注释行

IBM Spectrum Scale可识别多种stanza:

%nsd:

??NSD stanza

%pdisk:

??pdisk stanza

%vdisk:

??vdisk stanza

%da:

??da stanza

%rg:

??rg stanza

详细信息记录在相应的命令下。

一个stanza文件可以包含多种类型的stanza。 以stanza文件形式接受输入的命令希望stanza在语法上是正确的,但会忽略不适用于特定命令的stanza。 类似地,如果特定stanza子句对给定命令没有意义,则忽略该子句。

为了向后兼容,stanza文件也可能包含传统的NSD描述符,但不鼓励使用它们。

这是一个stanza文件的样子:

# Sample file containing two NSD stanzas

# Example for an NSD stanza with imbedded comments

%nsd: nsd=DATA5 # my name for this NSD

?device=/dev/hdisk5 # device name on node k145n05

?usage=dataOnly

# List of server nodes for this disk

servers=k145n05,k145n06

failureGroup=2

pool=dataPoolA

# Example for a directly attached disk; most values are allowed to default

%nsd: nsd=DATA6 device=/dev/hdisk6 failureGroup=3

管理IBM Spectrum Scale RAID

本节包含有关IBM Spectrum Scale RAID整体管理的信息。 它还更详细地描述了这些IBM Spectrum Scale RAID概念和实体的特征和行为:分簇阵列,恢复组,pdisk,pdisk-group容错和vdisk。

您可以使用ESS GUI执行各种IBM Spectrum Scale RAID管理任务。


恢复组

恢复组是IBM Spectrum Scale RAID采用的基本组织结构。 从概念上讲,恢复组是硬件磁盘控制器的内部GPFS等效物。 在恢复组中,每个JBOD磁盘被定义为pdisk并分配给分簇阵列(DA)。 每个pdisk属于一个恢复组中的一个分簇阵列。 在分簇阵列的pdisk中,定义了vdisk。 vdisk相当于硬件磁盘控制器的RAID逻辑单元号(LUN)。 必须将一个或两个GPFS集群节点定义为恢复组的服务器,并且这些服务器必须与恢复组中的JBOD磁盘具有直接硬件连接。 建议使用两台服务器进行高可用性服务器故障转移,但在任何给定时间只有一台服务器会主动管理恢复组。 一台服务器是首选的主服务器,另一台服务器(如果已定义)是备用服务器。

可以定义多个恢复组,GPFS集群节点可以是多个恢复组的主服务器或备份服务器。 恢复组的名称在GPFS集群中必须是唯一的。

恢复组服务器参数

要将GPFS集群的节点作为恢复组服务器启用,必须将mmchconfig配置参数nsdRAIDTracks设置为非零值,并且必须在节点上重启GPFS守护进程.nsdRAIDTracks参数定义服务器在给定时间内可以存储的vdisk磁道描述符的最大数目。服务器可以在内存中缓存的实际vdisk数据量取决于服务器上GPFS页池的大小以及nsdRAIDBufferPoolSizePct配置参数的值。 nsdRAIDBufferPoolSizePct参数默认为服务器上页池的80%。应该为恢复组服务器配置大量的页池,大约为几十gb。在恢复组中的vdisk上定义NSD后,恢复组服务器将成为NSD服务器,因此nsdBufSpace参数也适用。 nsdBufSpace的默认值是页池的30%,因为vdisk数据缓冲池直接用于为vdisk NSD提供服务,所以可以将其降低到最小值10%。

nsdRAIDTracks管理的vdisk 磁道描述符包括诸如RAID码,磁道号和状态等信息。 描述符还包含指向GPFS页池中的vdisk数据缓冲区(由nsdRAIDBufferPoolSizePct控制)的指针。 这些缓冲区包含实际的vdisk数据和冗余信息。

有关如何设置nsdRAIDTracksnsdRAIDBufferPoolSizePct参数的详细信息,请参阅附录A“IBM Spectrum Scale RAID的最佳实践建议”。

有关nsdRAIDTracksnsdRAIDBufferPoolSizePctnsdBufSpace参数的详细信息,请参阅“IBM Spectrum Scale:命令和编程参考”中的mmchconfig命令。

恢复组创建

使用mmcrrecoverygroup命令创建恢复组,该命令采用以下参数:

  • 要创建的恢复组的名称。

  • 描述恢复组中的分簇阵列和pdisk的stanza文件的名称。

  • 将作为恢复组的主服务器和(如果指定)备份服务器的GPFS群集节点的名称。

当创建恢复组时,GPFS守护进程必须在指定的服务器上使用有效的nsdRAIDTracks配置参数运行。

有关更多信息,请参阅“mmcrrecoverygroup命令”。

恢复组服务器故障转移

如建议的那样,为恢复组分配两台服务器时,一台服务器是恢复组的首选服务器,另一台服务器是备份服务器。在任何给定时间,只有一台服务器可以为恢复组服务;此服务器称为活动恢复组服务器。当前未为恢复组提供服务的服务器是备用服务器。如果活动恢复组服务器无法为恢复组提供服务,它将放弃对恢复组的控制并将其传递给备用服务器(如果可用)。从活动服务器到备用服务器的故障转移应该对使用恢复组中的虚拟磁盘NSD的任何GPFS文件系统都是透明的。在恢复操作发生在新服务器上时,将在恢复组的虚拟磁盘NSD中访问文件系统数据时暂停。此服务器故障转移恢复操作涉及新服务器打开恢复组的组件磁盘并回放任何已记录的RAID事务。

IBM Spectrum Scale RAID管理员可以使用mmchrecoverygroup命令更改恢复组的活动服务器。 此命令还可用于更改恢复组的主服务器和备份服务器。

有关更多信息,请参阅“mmchrecoverygroup命令”。

Pdisk

IBM Spectrum Scale RAID pdisk是物理磁盘的抽象。 pdisk恰好对应于一个物理磁盘,并且恰好属于一个恢复组中的一个分簇阵列。 在讨论分簇阵列如何将pdisk收集到组中之前,描述pdisk的特征将非常有用。

恢复组最多可包含512个pdisk。 恢复组中的分簇阵列最多可包含256个pdisk。 pdisk的名称在恢复组中必须是唯一的; 也就是说,两个恢复组都可以包含名为disk10的pdisk,但恢复组不能包含两个名为disk10的pdisk,即使它们位于不同的分簇阵列中也是如此。

通常使用mmcrrecoverygroup命令创建pdisk,从而将其分配给新创建的恢复组中的分簇阵列。 在异常情况下,还可以使用mmaddpdisk命令创建pdisk并将其分配给现有恢复组的分簇阵列。

要创建pdisk,必须向mmcrrecoverygroupmmaddpdisk命令提供一个stanza文件,在其中指定pdisk名称,分配给它的分簇阵列名称,以及整个物理磁盘的块设备专用文件名,因为它是由活动恢复组服务器上的操作系统配置的。 示例pdisk创建stanza文件如下:

%pdisk: pdiskName=c073d1

????device=/dev/hdisk192

????da=DA1

????nPathActive=2

????nPathTotal=4

可能存在其它stanza参数。 有关pdisk stanza参数的详细信息,请参阅“Pdisk stanza格式”。

pdisk的设备名称必须是指整个单个物理磁盘; 不应使用虚拟化或基于软件的磁盘(例如,逻辑卷,磁盘分区,来自其他RAID控制器的逻辑单元或网络连接磁盘)创建pdisk。 此规则的例外是用于日志提示虚拟磁盘的非易失性RAM(NVRAM)卷,如“日志虚拟磁盘”中所述。要成功创建pdisk,物理磁盘必须存在且在 活动服务器上指定的设备名称。 如果配置了备用恢复组服务器,则物理磁盘也必须在该服务器上。 备用服务器上的物理磁盘块设备专用名称几乎肯定是不同的,并且将由IBM Spectrum Scale自动发现。

pdisk的属性包括物理磁盘的唯一全球名称(WWN),其现场可替换单元(FRU)码及其物理位置码。 可以使用mmlspdisk命令显示Pdisk属性; 这里特别感兴趣的是pdisk设备路径和pdisk状态。

使用mmchcarrier命令替换已发生故障并已被磁盘医院标记为更换的Pdisk。 在异常情况下,可以使用mmaddpdiskmmdelpdisk命令添加或删除pdisks。 当通过替换或mmdelpdisk命令删除时,pdisk抽象只有在其包含的所有数据都已重建到备用空间时才会停止存在(即使物理磁盘可能已从系统中删除)。

Pdisk通常由IBM Spectrum Scale RAID和磁盘医院控制。 但是,在某些情况下,mmchpdisk命令可用于直接操作pdisks。 例如,如果必须临时删除pdisk以允许在系统的其它部分进行硬件维护,则可以在删除pdisk之前使用mmchpdisk --begin-service-drain命令排空数据。 将pdisk重新联机后,可以使用mmchpdisk --end-service drain命令将已排出的数据返回到pdisk。

注意:此过程要求在分簇阵列中有足够的备用空间用于要排空的数据。 如果可用的备用空间不足,可以使用mmchrecoverygroup命令增加备用空间。

Pdisk路径

对于操作系统,物理磁盘可视为具有设备专用文件名的块设备,例如/ dev / sdbc(在Linux上)或/ dev / hdisk32(在AIX?上)。 IBM Spectrum Scale RAID使用的大多数pdisk都位于JBOD阵列中,但用于日志提示虚拟磁盘的NVRAM pdisk除外。 为了实现高可用性和吞吐量,JBOD阵列的物理磁盘通过称为多路径(或双路径)的配置中的多个(通常是两个)接口连接到每个服务器。 当每个物理磁盘都可以看到两个操作系统块设备时,IBM Spectrum Scale RAID将它们称为pdisk的路径

在正常操作中,IBM Spectrum Scale RAID会自动发现各个pdisk的路径。 只有两个实例必须通过其显式块设备路径名称引用pdisk:使用mmcrrecoverygroup命令创建恢复组期间,以及使用mmaddpdisk命令将新pdisk添加到现有恢复组时。 在这两种情况下,只需要指定活动服务器上看到的一个块设备路径名; 将自动发现活动和备用服务器上的任何其他路径。 对于每个pdisk,nPathActive和nPathTotal节参数可用于指定从活动服务器和所有服务器到该pdisk的预期路径数。 这允许磁盘医院验证所有预期路径是否存在且是否正常运行。

操作系统可以将内部合并到物理磁盘的多个路径合并到单个块设备中。 使用IBM Spectrum Scale RAID时,必须禁用操作系统多路径合并功能,因为IBM Spectrum Scale RAID本身管理磁盘的各个路径。 有关更多信息,请参阅“配置GNR恢复组:示例方案”。

Pdisk stanza格式

Pdisk stanza有3个必需参数和6个可选参数,它们看起来像这样:

%pdisk: pdiskName=PdiskName

????device=BlockDeviceName

????da=DeclusteredArrayName

????[nPathActive=ExpectedNumberActivePaths]

????[nPathTotal=ExpectedNumberTotalPaths]

????[rotationRate=HardwareRotationRate]

????[fruNumber=FieldReplaceableUnitNumber]

????[location=PdiskLocation]

????[nsdFormatVersion=DesiredNsdFormatVersion]

在该处:

pdiskName=PdiskName

??指定pdisk的名称。

device=BlockDeviceName

??指定块设备的名称。 为BlockDeviceName提供的值必须引用由主恢复组服务器上的操作系统配置的块设备,或者将节点名称作为设备块名称的前缀。

??BlockDeviceName的示例值是*/dev/sdbc和//nodename/dev/sdbc(在Linux上),以及hdisk32,/dev/hdisk32和//nodename/dev/hdisk32(在AIX上)。

??即使设备使用多路径并且具有多个设备名称,也只需要使用一个BlockDeviceName

da=DeclusteredArrayName

??指定pdisk stanza中的DeclusteredArrayName,它隐式创建具有默认参数的分簇阵列。

nPathActive=ExpectedNumberActivePaths

??指定从活动服务器到此pdisk的连接的预期路径数。 如果指定了此参数,则如果路径数与应正常运行的pdisk的预期数量不匹配,则mmlsrecoverygroupmmlspdisk命令将显示警告。 如果未指定此参数,则默认值为0,表示“不发出此类警告”。

对于位于ESS磁盘机箱(或IBMPower 775磁盘机箱)中的所有pdisk,示例值为2;对于用于日志提示vdisk的NVRAM pdisk,示例值为1。

nPathTotal=ExpectedNumberTotalPaths

??指定从所有活动服务器和备份服务器到此pdisk的连接的预期路径数。 如果指定了此参数,则对于应正常运行的pdisk,如果路径数与预期数不匹配,则mmlsrecoverygroupmmlspdisk命令将显示警告。 如果未指定此参数,则默认值为0,表示“不发出此类警告”。

??对于位于ESS磁盘机箱(或IBMPower 775磁盘机箱)中的所有pdisk,示例值为4;对于用于日志提示vdisk的NVRAM pdisk,示例值为1。

rotationRate=HardwareRotationRate

??指定pdisk的硬件类型:NVRAM,SSD或旋转HDD。 唯一有效的值是字符串NVRAM,字符串SSD或介于1025和65535(含)之间的数字,表示HDD的每分钟转数。 对于在ESS磁盘机箱(或IBM Power 775磁盘机箱)中使用的所有pdisks,无需指定此参数,因为硬件类型和旋转速率将自动从硬件确定。 仅应为ESS上的NVRAM pdisk指定此参数。 默认情况下,依靠硬件来识别自身,或者如果硬件无法识别自身,则保留硬件类型和旋转速率未知。

??示例值是用于日志提示虚拟磁盘的NVRAM pdisk的字符串NVRAM。

fruNumber=FieldReplaceableUnitNumber

??如果修复pdisk失败,则指定修复此pdisk所需的现场可更换单元的单元号。对于ESS磁盘机箱(或IBM Power 775磁盘机箱)中使用的所有pdisk,无需指定此参数,因为它由硬件自动确定。 对于日志提示虚拟磁盘中使用的NVRAM pdisk,用户可以在此处输入一个字符串,当执行该pdisk的替换时,该字符串将显示给服务人员。 但是,不需要为NVRAM pdisk设置此值,因为该pdisk的服务替换过程特定于该特定类型的硬件。 默认设置是依靠硬件来识别自身,或者如果硬件无法识别自身,则将FRU编号保留为未知。

location=PdiskLocation

??指定此pdisk的物理位置。 对于ESS磁盘机箱(或IBM Power 775磁盘机箱)中使用的所有pdisks,无需指定此参数,因为它是从硬件自动确定的。 对于日志提示虚拟磁盘中使用的NVRAM pdisk,用户可以在此处输入一个字符串,该字符串将显示在mmlspdisk的输出中。 默认设置是依赖硬件报告的位置,或将位置保留为未知。

??示例值为SV21314035-5-1,它描述了机箱序列号SV21314035,抽屉5,插槽1中的pdisk。

nsdFormatVersion=DesiredNsdFormatVersion

??为此pdisk指定所需的Nsd格式版本。 该值可以是1或2.此参数仅对恢复组版本4.2.0.1或更高版本有效。 如果未指定此参数,则恢复组版本4.2.0.1或更高版本的pdisk Nsd版本将为2。 对于恢复组版本4.1.0.1或更早版本,Nsd版本只能为1。

Pdisk状态

IBM Spectrum Scale RAID使用pdisk state维护其对pdisk及其相应物理磁盘的视图。 pdisk状态由多个关键字标志组成,可以使用mmlsrecoverygroupmmlspdisk命令显示。

pdisk状态标志详细说明了IBM Spectrum Scale RAID如何使用或管理磁盘。

在正常情况下,大多数pdisks的状态由唯一的关键字ok表示。 ok关键字意味着IBM Spectrum Scale RAID认为pdisk是健康的:恢复组服务器能够与磁盘通信,磁盘正常运行,磁盘可用于存储数据。当IBM Spectrum Scale RAID磁盘医院怀疑或试图纠正问题时,diagnosing标志出现在pdisk状态。如果IBM Spectrum Scale RAID无法与磁盘通信,则pdisk状态包含missing的关键字。如果丢失的磁盘重新连接并正常运行,其状态将变回okreadonly标志表示磁盘指示它不能再安全地写入数据。磁盘医院也可以将磁盘标记为failing,这可能是由于过多的介质或校验和错误造成的。当磁盘医院断定磁盘不再有效运行时,它会声明磁盘已死dead。如果无效(dead, missing, failingslow)pdisks的数量达到或超过其分簇阵列的替换阈值,磁盘医院会将replace标志添加到pdisk状态,这表示应该尽快地执行物理磁盘更换。

当pdisk的状态表明它不再能够可靠地运行时,IBM Spectrum Scale RAID会将pdisk的数据重建到同一个分簇阵列中其它pdisks上的备用空间中。 这称为draining pdisk。 标志表示pdisk drainingdraineddraining标志意味着IBM Spectrum Scale RAID将重建pdisk中的数据。 deleting标志表示IBM Spectrum Scale RAID管理员发出了mmdelpdisk命令以删除pdisk。

总而言之,大多数pdisks在正常操作期间处于ok状态。 ok状态表示磁盘可访问,正常运行,没有耗尽,磁盘包含用户数据以及IBM Spectrum Scale RAID恢复组和虚拟磁盘配置信息。 对于失败的单个pdisk,pdisk状态的更复杂示例是dead/drained。 这组pdisk状态标志表示pdisk已被系统声明为已死,标记为已耗尽,并且其所有数据(恢复组,虚拟磁盘配置和用户)已成功重建到其它pdisks上的备用空间中。

除了这里讨论的状态之外,还有一些瞬态pdisk状态对正常操作几乎没有影响。 表3列出了完整的状态集。

表3.Pdisk状态

状态 描述
ok 磁盘可用。
dead 磁盘完全故障。
simulatedDead 因错误注入,磁盘正在被视为dead
(请参阅mmchpdisk --simulate–dead)。
missing 磁盘医院确定系统无法连接到驱动器。
readonly 磁盘发生故障; 它仍然可以读,但不能写。
failing 由于SMART Trip或高的不可纠正的错误率,磁盘需要排空和更换。
simulatedFailing 因错误注入磁盘被视为failing
(请参阅mmchpdisk --simulate-failing)。
slow 由于性能不佳,需要对磁盘进行排空和更换。
diagnosing 磁盘医院在发生错误后正在检查磁盘。
PTOW 由于挂起的超时写入,磁盘暂时不可用。
suspended 磁盘暂时脱机以进行服务(请参阅mmchpdiskmmchcarrier)。
serviceDrain 磁盘正在耗尽数据以进行服务(请参阅mmchpdisk --begin-service-drain)。
draining 数据正从磁盘中排出,并移动到其它磁盘上的分布式备用空间。
deleting 正在通过mmdelpdiskmmaddpdisk/–replacemmchcarrier命令从系统中删除磁盘。
drained 所有数据都已成功从磁盘中排出,磁盘可以更换,但未达到替换阈值。
undrainable 尽可能多的数据从磁盘中排出并移至分布式备用空间。
replace 磁盘已准备好更换。

分簇阵列

注意:实际分簇阵列可用的功能取决于IBM Spectrum Scale RAID安装中特定支持的磁盘配置。

分簇阵列是恢复组中pdisks的不相交子集。 vdisk在分簇阵列中创建,vdisk磁道在一个阵列的所有pdisks中进行分簇。 恢复组中的分簇阵列数由恢复组的IBM Spectrum Scale RAID服务器的机箱和磁盘硬件配置决定。 根据具体配置,单个分簇阵列最多可包含256个pdisk; 但是,恢复组中所有分簇阵列中的pdisk总数不得超过512. pdisk只能属于一个分簇阵列。 分簇数组的名称在恢复组中必须是唯一的; 也就是说,两个恢复组都可以包含名为DA3的分簇阵列,但恢复组不能包含两个名为DA3的分簇阵列。 分簇阵列中的pdisk必须具有相同的大小,并且都应具有相似的性能特征。

分簇阵列通常与其成员pdisk及其包含的恢复组一起创建,方法是使用mmchrecoverygroup 命令。
还可以使用mmaddpdisk命令创建分簇阵列,以便将pdisk添加到恢复组中尚不存在的分簇阵列中。分簇阵列可以通过删除其最后一个成员pdisk或删除其所在的恢复组而被删除。分簇阵列中的任何vdisk、NSD和vdisk都必须已被删除。没有创建或删除分簇阵列的显式命令。

分簇阵列的主要目的是隔离具有类似性能特征和类似用途的pdisks。 由于vdisk包含在单个分簇阵列中,因此在分簇阵列中混合使用不同性能的pdisks将不会最佳地使用磁盘。 在典型的IBM Spectrum Scale RAID系统中,第一个分簇阵列包含用于log vdisk的SSD pdisk,或者如果已配置,则包含log back vdisk。 如果系统配置为使用log tip vdisk(请参阅“日志虚拟磁盘”),则另一个分簇阵列包含该vdisk的NVRAM pdisk。 然后,使用高容量HDD或SSD将GPFS NSD的vdisk包含在一个或多个分簇阵列中。

分簇阵列的第二个目的是对共享故障或不可用的磁盘进行分区,例如容纳多个磁盘的可移动托架。 当考虑到移除多磁盘托架以执行磁盘替换时,这也会暂时移除一些好的磁盘,这可能是超出vdisk NSD的容错能力的数字。 这将导致文件系统活动暂时中止,直到磁盘还原为止。 为避免这种情况,应使用可移动托架中的每个磁盘位置来定义单独的分簇阵列,以便磁盘位置1定义DA1,磁盘位置2定义DA2,依此类推。 然后,当移除磁盘托架时,每个分簇阵列将只丢失一个磁盘,这在任何IBM Spectrum Scale RAID vdisk NSD的容错范围内。

分簇阵列参数

分簇阵列有4个参数,可以在创建分簇数组时使用stanza参数进行设置,并且可以使用带有**–declustered-array选项的mmchrecoverygroup**命令进行更改。 这些是:

dataSpares

??如果pdisks故障,用于重建vdisk数据的磁盘的等效备用空间数量。 对于具有9个或更少pdisk的阵列,默认为1,对于具有10个或更多pdisk的阵列,默认为2。

vcdSpares

??IBM Spectrum Scale RAID服务器在具有完全复制vdisk配置数据(VCD)的情况下继续运行时不可用的磁盘数。 此值默认为数据备用空间的数量。 要启用pdisk-group容错,通常在初始系统配置期间将此参数设置为较大的值(例如,分簇阵列中的pdisks数量的一半+ 1)。

replaceThreshold

??在将分簇阵列标记为需要更换磁盘之前必须发生故障的磁盘数。 默认值是数据备用空间的数量。

scrubDuration

??分簇阵列中所有vdisk被检测错误的天数。默认值为14天。

分簇阵列大小

IBM Spectrum Scale RAID区分大型和小型分簇阵列。 如果在创建时,其pdisk的属性至少是vcdSpares参数+ 9的设置,则该分簇阵列被认为是大的。当使用vcdSpares和dataSpares参数的默认值时,这意味着一个分簇阵列至少保护11个pdisks,则被认为是大的。 所有其它分簇阵列都被认为很小。 每个恢复组中至少有一个分簇阵列必须很大,因为只有大型分簇阵列才有足够的pdisks来安全地为恢复组存储足够数量的IBM Spectrum Scale RAID配置数据副本。

由于IBM Spectrum Scale RAID支持用户数据的最窄RAID码是3路复制,因此最小的分簇阵列包含4个pdisk(包括1磁盘所需的最小等效备用空间)。 预期的vdisk NSD的RAID码宽度和等效的备用空间量也会影响分簇的阵列大小; 如果需要RAID码宽度为11的Reed-Solomon 8 + 3p vdisk,且还需要两个等效备用空间的磁盘,则分簇阵列必须至少有13个成员pdisks。 仅包含日志vdisk的分簇阵列可能小于这些限制。

数据备用空间和VCD备用空间

在分簇阵列中使用故障的pdisk进行操作时,IBMSursionScale RAID继续服务于文件系统I/O请求,方法是使用其它pdisk上的冗余信息来重建无法读取的数据,并将无法写入故障pdisk的数据标记为陈旧。同时,为了恢复完全冗余和容错性,将故障pdisk上的数据重建到数据备用空间(data spare space)上,保留在所有成员pdisk上的分簇阵列的未使用部分。因此,故障磁盘通过将其复制到数据备用空间而排尽(drained)其数据。

分簇阵列中的数据备用空间的数量在创建时被设置并可在稍后更改。数据备用空间以整数为单位表示,等效于分簇阵列的成员pdisk的容量,但分散在所有成员pdisk中。无专用的备用pdisk,这意味着等于指定数据备用空间的若干pdisk可能会失败,并且可以通过重新构建操作来恢复分簇阵列中所有数据的完全冗余。如果用户选择不使用vdisk填充分簇阵列中的空间,而希望使用未分配的空间作为额外的数据备用空间,则用户可以将dataSpares参数的设置增加到对pdisk故障的期望恢复级别。

每个分簇阵列至少需要相当于一个成员pdisk大小的数据备用空间。 具有零数据备用空间和零VCD备用空间的例外是由以下组成的分簇阵列:

  • 用于log tip vdisk的非易失性RAM(NVRAM)磁盘

  • 用于log tip backup vdisk的SSD

由于大型分簇阵列具有更大的磁盘故障概率,因此默认的数据备用空间容量取决于分簇阵列的大小。 具有9个或更少pdisks的分簇阵列默认有1个具有等效数据备用空间的磁盘。 具有10个或更多磁盘的分簇阵列默认有2个具有相同数据备用空间的磁盘。 可以覆盖这些默认值,尤其是在创建分簇阵列时。 但是,如果稍后已将过多的分簇阵列分配给vdisk使用,则可能无法增加数据备用空间容量。

IBM Spectrum Scale RAID虚拟磁盘配置数据(VCD)的存储空间比vdisk内容更多,通常是5路复制。 当pdisk失败时,此配置数据将以最高优先级重建到正常运行的pdisks上。 始终必须维护配置数据的冗余,并且IBM Spectrum Scale RAID不会为没有足够pdisks的分簇阵列提供服务,以便以完全冗余存储所有配置数据。 通过在每个pdisk上为虚拟磁盘配置数据(VCD)保留空间,分簇阵列参数vcdSpares确定有多少pdisks可以发生故障并恢复完整的VCD冗余。 使用pdisk-group容错时,应将vcdSpares的值设置为高于dataSpares参数的值,以说明硬件故障域的预期故障。

增加VCD备用空间

创建新恢复组时,mkrginput脚本会为VCD备用空间设置建议值。

要增加现有恢复组的VCD备用空间,请使用mmchrecoverygroup命令。 有关更多信息,请参阅“mmchrecoverygroup命令”。

分簇阵列可用空间

mmlsrecoverygroup命令报告的分簇阵列可用空间反映了可用于创建vdisk的空间。 备用空间不包含在此值中,因为它不可用于创建新vdisk。

Pdisk可用空间

mmlsrecoverygroup命令报告的pdisk可用空间反映了磁盘上未使用的数据分区的实际数量。 这包括备用空间,因此如果pdisk失败,这些值将随着数据移动到备用空间而减少。

Vdisk

vdisk是在分簇阵列中跨pdisk创建的。每个恢复组都需要一个特殊的log home vdisk才能运行(以及适用于特定环境的其它日志类型vdisk);参见“日志vdisk”。所有其它vdisk都是作为GPFS文件系统NSD使用而创建的。

一个恢复组最多可包含64个vdisk。 可以在分簇阵列中任意分配Vdisk。 使用mmcrvdisk命令创建vdisk。 mmdelvdisk命令将销毁vdisk及其包含的所有数据。

创建vdisk时,必须指定RAID码,块大小,vdisk大小以及恢复组和GPFS集群中唯一的名称。 vdisk没有可用的可调参数。

RAID码

在为特定用户数据集选择RAID码时,应考虑“RAID码”中讨论的用于vdisk的RAID码的类型,性能和空间效率。 GPFS存储池和基于策略的数据放置可用于确保使用适当的RAID码存储数据。

如果IBM Spectrum Scale RAID服务器由于太多无法访问的pdisks(missing状态下的pdisk)而无法为vdisk提供服务,则服务器会将恢复组故障转移到备份服务器,希望备份服务器具有更好的I / O连接。 如果备份服务器由于缺少过多的pdisks而无法为vdisk提供服务,则它会使恢复组无法返回主服务器,从而重复该循环直到I / O连接得到改善。 此方法旨在通过允许管理员在系统因缺少pdisks而导致客户端I / O失败之前恢复pdisk连接,使系统对临时pdisk连接问题具有健壮性。

如果问题是由处于其它非功能状态(例如,dead状态)的过多pdisk造成的,则恢复组将不会故障转移到伙伴节点,因为预计pdisk状态不会得到改善。即使由伙伴节点尝试,它也会保持相同的状态。在这种情况下,受过多此类pdisk影响的客户端I/O将失败。

恢复组可以包含具有不同级别的容错的vdisk。 在这种情况下,恢复组可能包含一些具有足够容错能力的vdisk,即使丢失了pdisks也可以提供服务。但是,vdisk可能会故障转移到伙伴服务器,因为故障转移单元是一个包含其所有关联虚拟磁盘的恢复组。 允许在同一恢复组中混合具有不同容错级别的vdisk; 但是,如果存在太多无法访问的pdisk,则具有较高容错能力的vdisk服务可能会受到容错能力较低的vdisk的限制。

块大小

vdisk块大小必须等于分配了vdisk的存储池的GPFS文件系统块大小。 对于复制码,支持的vdisk块大小为256 KiB,512 KiB,1 MiB和2 MiB。对于Reed-Solomon码,支持的虚拟磁盘块大小为512 KiB,1 MiB,2 MiB,4 MiB,8 MiB, 和16 MiB。 有关某些vdisk配置注意事项,请参阅附录A“IBM Spectrum Scale RAID的最佳实践建议”。

必须为所有节点正确设置IBM Spectrum Scale mmchconfig命令的maxblocksize配置属性。 maxblocksize的值必须大于或等于vdisk的最大块大小。 有关此属性的更多信息,请参阅”IBM Spectrum Scale:命令和编程参考“中的mmchconfig命令说明。

vdisk大小

最大vdisk大小是分簇阵列中pdisks上可用的总空间,考虑了RAID码的开销,减去备用空间,减去vdisk配置数据,减去作为写入操作的缓冲区保留的少量空间。 IBM Spectrum Scale RAID将根据需要对请求的vdisk大小进行舍入。 创建vdisk时,用户可以为该vdisk指定使用分簇阵列中的所有剩余空间。

Log vdisk

IBM Spectrum Scale RAID使用log vdisk将内部信息存储为事件日志条目,更新vdisk配置数据以及快速执行某些数据写入操作。 有4种类型的log vdisk,如下所示。 其中,它们可以按任何顺序创建和销毁。

log home vdisk

??每个恢复组都需要一个log home vdisk才能运行。log home vdisk必须先于恢复组中的任何其它非log vdisk创建,并且只能在删除恢复组中的所有其它非log vdisk之后才能删除。log home vdisk分为4个子日志:长期事件日志、短期事件日志、元数据日志和记录小写操作的快速写入日志。

log tip vdisk

??log tip vdisk(适用于某些环境,但并非所有环境都需要)是一个最初将日志记录写入此处,而后迁移到log home vdisk的vdisk。 目的是为log tip使用小型高性能NVRAM设备,在使用传统旋转磁盘上更大的vdisk作为log home vdisk。 对log tip的快速写入隐藏了用于日志主体的旋转磁盘的延迟。

log tip backup vdisk

??当log tip vdisk在非易失性RAM磁盘上双路复制时,log tip backup vdisk(适用于某些环境,但并非全部不需要)用作log tip vdisk的附加副本。 理想情况下,log tip backup vdisk提供NVRAM磁盘和旋转磁盘之间的性能级别。

log reserved vdisk

??log reserved vdisk是可选的vdisk,当log home vdisk未在其自己的分簇阵列中分配时使用。 log reserved vdisk与log home vdisk具有相同的大小,用于均衡数据分簇阵列的空间消耗,但它们未被使用。

典型配置

以下是各种恢复组环境中典型vdisk配置的说明:

NVRAM磁盘的ESS

??在此配置中,在由三个SSD组成的分簇阵列上分配三路复制log tip vdisk。 在第一个HDD分簇阵列中分配了一个四路复制的log home vdisk。

NVRAM磁盘的ESS

??在此配置中,在NVRAM磁盘上分配双路复制log tip vdisk,每个服务器一个。

??log tip backup vdisk分配在由一个或多个SSD组成的分簇阵列上。 当其中一个NVRAM磁盘不可用时,这会提供日志提示数据的附加副本。 如果仅使用一个SSD,则log tip backup使用无复制的RAID码。

??一个四路复制log home vdisk被分配到第一个HDD分簇阵列中.。一个四路复制log reserved vdisk,用于不包含log home vdisk的每个数据分簇阵列。

NVRAM磁盘且使用SSD存储数据的ESS

??在此配置中,在NVRAM磁盘上分配双向复制log tip vdisk,每个服务器一个。

??恢复组的所有SSD构成一个单独的分簇阵列,包含log home vdisk和用户数据vdisk。 没有使用log tip backup vdisk。

Power 775配置

??在此配置中,log home vdisk分配在由4个SSD组成的分簇阵列上。 log home vdisk仅支持三路和四路复制码。 在具有4个SSD并且备用空间等于一个磁盘大小的典型系统中,三路复制码将用于log home vdisk。

创建vdisk和NSD

您可以使用IBM Spectrum Scale RAID命令或使用ESS GUI创建vdisk和NSD。

使用mmcrvdisk命令创建虚拟磁盘后,可以使用mmcrnsd命令创建NSD。

或者,当您使用ESS GUI创建文件系统时,GUI也会创建vdisk和NSD。 使用IBM Spectrum Scale RAID命令创建的NSD和vdisk将被ESS GUI忽略,并且不能用于使用ESS GUI文件系统创建向导文件系统,该向导是使用**“文件”** **> “文件系统”**视图中的“创建文件系统”操作启动的。。 计划使用ESS GUI创建文件系统的用户不得使用IBM Spectrum Scale RAID命令创建vdisk和NSD。

vdisk和NSD之间的关系如下:

  • 从vdisk NSD构建GPFS文件系统的方式与从任何其它NSD构建的方式相同。

  • 如果存在使用vdisk创建的NSD,则无法删除该vdisk。

  • 一个节点无法同时提供基于vdisk的NSD和基于非vdisk的NSD。

  • 不应将vdisk NSD用作仲裁磁盘。

有关的更多信息:

  • mmcrvdisk命令,请参阅“mmcrvdisk命令”

  • mmcrnsd命令,请参阅IBM Spectrum Scale:命令和编程参考

  • Vdisk和NSD最佳实践,请参阅附录A“IBM Spectrum Scale RAID的最佳实践建议”

vdisk 状态

IBM Spectrum Scale RAID报告vdisk状态可使用mmlsvdisk命令和带**-L选项的mmlsrecoverygroup命令显示这些状态。 您还可以使用ESS GUI显示vdisk状态。 vdisk的状态显示在“阵列”>“卷”**视图中。

vdisk通常处于ok状态,这表示vdisk完全正常运行并具有完全冗余。 当pdisk故障影响特定vdisk时,vdisk状态将报告为降级,直到受影响的磁道重建至备用空间。

当足够的pdisks失败以至于特定vdisk没有剩余冗余时,vdisk状态将被报告为critical状态,直到受到严重影响的磁道重建至备用空间。 如果系统在vdisk处于降级或严重状态时耗尽所有可用备用空间,则状态后将出现(need spare),这表示重建活动已停止,并且一旦更换失败的pdisks将恢复。

表4. vdisk状态

状态 描述
ok vdisk正常运行。
m/n -degraded vdisk当前正在降级模式下运行:
m 是正在排出数据的pdisk数量
n 是vdisk的容错能力。
critical 虚拟磁盘当前正在降级模式下运行,
并且不能容忍再有pdisk丢失。
(need spare) 当有更多的空闲空间可用时,重新构
建将恢复;适用于degraded和critical状态。

确定pdisk-group容错

您可以通过运行以下命令获取用户和系统数据的当前布局的概要:
mmlsrecoverygroup RecoveryGroupName -L

此命令的输出包括以下内容的概要:

  • 配置数据重建空间

  • 配置数据恢复组描述符布局

  • 配置数据系统索引布局

  • 用户数据vdisk布局

注意:实际和最大pdisk-group容错值是基于可用磁盘空间和当前磁盘硬件配置的时间点计算。 每当发生重建或再平衡操作时,这些值都可能会更改。

下面是一些示例输出:

config data declustered array VCD spares actual rebuild spare space remarks

------------------ ------------- ----------- ---------------------- ----------------

rebuild space da0 2 1 enclosure limited by VCD spares

config data max disk group fault tolerance actual disk group fault tolerance remarks

---------------- --------------------------------- --------------------------------- ----------------

rg descriptor 1 enclosure + 1 pdisk 1 enclosure + 1 pdisk

system index 2 enclosure 1 enclosure limited by rebuild space

vdisk max disk group fault tolerance actual disk group fault tolerance remarks

------------------ --------------------------------- --------------------------------- ----------------

rg00log 2 enclosure 1 enclosure limited by rebuild space

rg00meta 3 enclosure 1 enclosure limited by rebuild space

rg00data 1 enclosure 1 enclosure

mmlsrecoverygroup RecoveryGroupName -L命令的此示例输出包括:

  • 带有rebuild space条目的config data部分,显示可用于在磁盘发生故障后恢复配置数据冗余的重建空间

  • 带有以下条目的config data部分:

  • rg descripto条目,显示恢复组描述符布局

  • system index 条目,显示系统索引布局

  • vdisk部分,显示一组用户定义的vdisk布局

此示例输出的actual disk group fault tolerance列中列出了存活的确切类型的故障:

vdisk max disk group fault tolerance actual disk group fault tolerance remarks

------------------ --------------------------------- --------------------------------- ----------------

.

.

.

rg00data 1 enclosure 1 enclosure

对于rg00data vdisk,输出显示的实际磁盘组容错列中表面我们可以在一个机箱故障中存活。

请注意,对于示例输出中的某些vdisk,最大磁盘组容错能力与实际磁盘组容错能力存在差异:

vdisk max disk group fault tolerance actual disk group fault tolerance remarks

------------------ --------------------------------- --------------------------------- ----------------

.

.

.

rg00meta 3 enclosure 1 enclosure limited by rebuild space

此示例表明,即使rg00meta vdisk具有确保其数据免受3个机箱故障影响的布局,如max disk group fault tolerance列中所示,其实际磁盘组容错是1个机箱,并且它受到重建空间依赖的限制。 实际上,配置数据重建空间不足,限制了vdisk所依赖的磁盘组容错。

如果实际磁盘组容错小于最大磁盘组容错,则最好检查备注列中显示的依赖关系更改。 对于此示例,您将检查配置数据部分下的重建空间条目:

config data declustered array VCD spares actual rebuild spare space remarks

------------------ ------------- ----------- ---------------------- ----------------

rebuild space da0 2 1 enclosure limited by VCD spares

本节表明我们受到VCD备用空间的限制。 可以增加VCD备用空间,从而增加实际的重建备用空间。 如果重建空间增加到1个以上的机箱,则它将不再是rg00meta vdisk的限制依赖因子。 有关详细信息,请参阅“增加VCD备用空间”。

请注意,在创建虚拟磁盘期间以及发生故障或磁盘组更改时随后重新分配冗余码strip时的初始分配是动态操作。 因此,它必须在操作期间可用的空间内工作。 此操作的目标始终是最大限度地减少不必要的移动,同时平衡所有用户和配置数据的容错能力。 由于初始分配与重新分配期间可用空间的变幻莫测,并且由于系统内的vdisk冗余码范围很广,因此在发生磁盘组故障和重建后,初始容错状态可能不可重复。

有关mmlsrecoverygroup命令输出的详细信息,请参阅“mmlsrecoverygroup命令”


附录A. IBM Spectrum Scale RAID的最佳实践建议

本主题包含有关使用IBM Spectrum Scale RAID的一些最佳实践建议。

规划IBM Spectrum Scale RAID实施需要考虑所使用的JBOD阵列的性质,所需的冗余保护和可用磁盘容量,所需的备用容量和维护策略以及最终的GPFS文件系统配置。

  • 为每个恢复组分配主服务器和备份服务器。

    每个JBOD阵列应连接到两个服务器以防止服务器故障。 每个服务器还应具有两个到每个物理磁盘的独立路径,以防止路径故障并为各个磁盘提供更高的吞吐量。

    如果体系结构建议,在一个JBOD阵列上定义多个恢复组,并使用相互加强的主服务器和备份服务器将处理均匀地分散到服务器和JBOD阵列中。

    恢复组服务器节点可以指定为GPFS仲裁或管理节点,但是它们应该专用于IBM Spectrum Scale RAID而不是运行应用程序工作负载。

  • 使用大型vdisk磁道缓存和大型页池配置恢复组服务器。

    nsdRAIDTracks配置参数告知IBM Spectrum Scale RAID要在内存中缓存多少个vdisk磁道描述符(不包括实际磁道数据)。

    通常,应缓存大量vdisk磁道描述符。 恢复组服务器的nsdRAIDTracks值应为100000,如果服务器内存超过128 GiB,则应为更高。 如果预期的vdisk NSD访问模式在所有已定义的vdisk和单个vdisk中是随机的,则可能需要更大的nsdRAIDTracks值。 如果预期的访问模式是顺序的,则较小的值就足够了。

    可以缓存的实际vdisk数据量(包括用户数据、奇偶校验和)取决于恢复组服务器上GPFS页池的大小以及为IBM Spectrum Scale RAID保留的页池的百分比。nsdRAIDBufferPoolSizePct参数指定页池应用于vdisk数据的百分比。默认值为80%,但可以设置为90%或低至10%。因为恢复组服务器也是NSD服务器,并且vdisk缓冲池也充当NSD缓冲池,所以配置参数nsdBufSpace应该减少到最小值10%。

例如,要使恢复组服务器缓存20000个vdisk磁道描述符(nsdRAIDTracks),其中每个磁道的数据大小为4 MiB,使用页池的80%(nsdRAIDBufferPoolSizePct),大约页池大小为20000 * 4 MiB *(100/80)≈100000MiB≈98GiB将是必需的。 无需将页池配置成为每个已缓存的vdisk磁道描述符的缓存所有数据,但此示例计算可以为确定nsdRAIDTracksnsdRAIDBufferPoolSizePct的适当值提供一些指导。

  • 使用至少一个大型分簇阵列定义每个恢复组。

    大型分簇阵列包含足够的pdisks来存储IBM Spectrum Scale RAID vdisk配置数据所需的冗余。 这被定义为至少9个pdisks加上有效的备用容量。 在每个大型分簇阵列中,强烈建议使用相当于2个pdisk的最小备用容量。 还必须考虑vdisk的RAID码宽度。 非备用pdisk的有效数量必须至少与最大vdisk RAID码宽度一样大。 最大RAID码宽度是11(8 + 3p Reed-Solomon vdisk)且具有2个有效备用的分簇阵列,必须包含至少13个pdisks。 最大RAID码宽度是11(8 + 2p Reed-Solomon虚拟磁盘)且具有2个有效备用的分簇阵列,必须包含至少12个pdisks。

  • 根据配置类型定义log vdisk。

    有关log vdisk的注意事项,请参阅“log vdisk”下的“典型配置”。

  • 确定分簇阵列维护策略。

    磁盘将失败并需要更换,因此可以使用延迟维护的一般策略。 例如,只有当分簇阵列的备用容量耗尽时,才会替换分簇阵列中的失败pdisk。 这是通过将分簇阵列集的替换阈值等于有效备用容量来实现的。 此策略在具有大量恢复组的安装中非常有用,其中可以每周安排磁盘更换。 较小的安装可以使IBM Spectrum Scale RAID在磁盘发生故障时需要更换磁盘,这意味着可以将分簇的阵列替换阈值设置为1。

  • 根据GPFS文件系统使用情况选择vdisk RAID码。

    vdisk RAID码的选择取决于所需的冗余保护级别与用户数据所需的实际空间量以及vdisk NSD在GPFS文件系统中的最终预期用途。

    Reed-Solomon vdisk节省空间。 8 + 3p vdisk使用大约27%的实际磁盘空间用于冗余保护,73%用于用户数据。 8 + 2p vdisk使用20%用于冗余,80%用于用户数据。 Reed-Solomon vdisk在一次写入整个磁道(GPFS块大小)时表现最佳。 当写入Reed-Solomon vdisk的部分磁道时,必须进行奇偶校验重新计算。

    复制的vdisk空间效率较低。 具有3路复制的vdisk使用大约67%的实际磁盘空间用于冗余保护,33%用于用户数据。 具有4路复制的vdisk使用75%的实际磁盘空间用于冗余,25%用于用户数据。 具有N路复制的vdisk的优点是可以更快地完成小型或部分写入操作。

    对于必须优化写性能的文件系统应用程序,前面的注意事项使复制的vdisk最适合用作GPFS文件系统metadataOnly NSD和最适合用作GPFS文件系统dataOnly NSD的Reed-Solomon vdisk。 相对于文件系统数据,GPFS文件系统元数据的量通常较小(1%-3%),因此复制RAID码的空间效率低的影响被最小化。 文件系统元数据通常以小块编写,这利用了复制的RAID码的更快的小型和部分写入操作。 应用程序经常被调整为以文件系统块大小的整数倍写入文件系统用户数据,这在空间效率和速度方面都符合Reed-Solomon RAID码的优势。

    在为文件系统metadataOnlydataOnly磁盘使用情况分隔vdisk NSD时,可以使用较小的块大小创建metadataOnly复制的vdisk,并将其分配给GPFS文件系统存储池。 可以使用更大的块大小创建dataOnly Reed-Solomon虚拟磁盘,并将其分配给GPFS文件系统数据存储池。 使用多个存储池时,必须安装GPFS放置策略以将文件系统数据定向到非系统存储池。

    当写性能优化不重要时,可以使用Reed-Solomon虚拟磁盘作为dataAndMetadata NSD来提高空间效率。

  • 将故障组分配给GPFS文件系统中的vdisk NSD时,应将ESS构建块视为共同故障点。 应为给定ESS构建块中所有恢复组内的所有vdisk分配相同的故障组编号。 例外情况是集群只包含一个ESS构建块。 在这种情况下,故障组应与恢复组相关联,而不是与整个ESS构建块相关联。

    在恢复组内,应为所有文件系统vdisk NSD分配相同的故障组。 如果存在多个ESS构建块,则应为构建块的2个恢复组内的所有文件系统vdisk NSD分配相同的故障组。

  • 支持Spectrum Scale RAID(例如,SAN连接的磁盘)无关的存储附加到ESS NSD服务器节点。

  • 由于性能和可用性特征上的差异,不建议将IBM Spectrum Scale RAID vdisk与IBM Spectrum Scale RAID不关联的磁盘混合在文件系统中的同一个存储池中。此建议适用于在同一存储池中混合不同类型的存储时。一个良好的IBM Spectrum Scale规划实践是将具有相似特性的存储放在同一个存储池中。


  1. 一个f容错的Reed-Solomon码或(1+f)路复制可以在f个磁盘并发故障或读取错误时生存,同样,如果阵列中有等效的s个备用磁盘,则一个f容错阵列可以在f+s个磁盘的顺序故障中生存下来,其中磁盘故障发生在成功的重建操作之间。 ??

  相关解决方案