跳转到主内容

常见问题解答:一致性点

Views:
52
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
perf
Last Updated:

可不使用  

适用于

  • Data ONTAP 7
  • Data ONTAP 8
  • ONTAP 9

解答

什么是一致性点、 NetApp 为何使用它?
  • 存储控制器具有两个用于存储写入数据的独立内存缓冲区。
  • 这些缓冲区的大小取决于给定系统中的非易失性 RAM ( NVRAM )量。
  • 计算方法为:独立系统的 NVRAM 大小为 1/2 ,集群系统的 NVRAM 大小为 1/4 , 4/8 节点 MetroCluster 的 NVRAM 大小为 1/8 。
  • 所有写入存储控制器的操作都同时存储在以下位置:
    • 本地内存缓冲区
    • 本地 NVRAM/NVMEM
    • 远程 NVRAM (仅限集群系统)
    • DR 合作伙伴的远程 NVRAM (仅限 MetroCluster 系统)
  • 一旦确认记录到 NVRAM 的过程、控制器就会确认写入已完成到客户端计算机(应用程序、协议?)。
  • 在预定义的触发器中、通过 Write Anywhere File Layout ( WAFL )和 RAID 层从存储控制器内存处理此缓冲写入数据并写入磁盘。
  • 磁盘上的活动文件系统指针在写入完成之前不会更新以指向新位置。
  • 写入磁盘后、 NVRAM 中的内容将被清除、并准备好用于下一批传入写入数据。
    • 这种将数据写入磁盘和更新活动文件系统指针的操作称为一致性点 (Consistency Point, CP) 。
  • 在一个内存缓冲区的写入阶段中、第二个内存缓冲区和 NVRAM 空间(本地和远程)用于存储和确认传入写入。
一致性点与直接写入相比有哪些优势?

以下特征是使用一致性点而不是直接向磁盘传递写入的一些主要优势:

  • WAFL 文件系统完整性:
    • 即使在断电期间, WAFL 文件系统也会保持一致的状态。
      • 控制器向客户端确认的所有操作都是一致的、并且保持不变。
      • 这样,无论节点是如何停机、都可以快速启动、因为无需进行 WAFL 文件系统一致性检查。
  • 提高客户端写入性能:
    • 由于内存比旋转介质快得多,因此最终客户端可以更快地收到写入确认,并可以继续处理下一个写入请求。
      • 磁盘子系统也可以获得性能增益,因为对磁盘的写入操作可以组合成更大的顺序写入而不是许多较小的随机写入操作。
  • 优化的数据布局:
    • 由于对磁盘的写入是批量处理的,因此 WAFL 子系统可以在磁盘上的连续空间中分配较大的数据条集。
      • 这样可以最大限度地减少数据布局随机化的可能性,从而避免数据重新分配的需要。
  • 减少了对非易失性 RAM ( NVRAM ) / 内存缓冲区大小的需求:
    • 这一点最初并不明显;但是,如果在任意位置写入文件布局( Write Anywhere File Layout , WAFL )和 RAID 层处理后执行缓存,则在写入请求到达时记录日志所占用的内存将显著减少。
    • 这还可以防止 NVRAM 故障导致文件系统损坏、正常文件系统一致性检查无法检测到或更正。
写入中断情形
  • 如果在写入过程中发生电源故障或其他中断、文件系统的一致性仍然保持不变,因为活动指针仍指向更改前的数据。
    • 下次启动时,在本地 NVRAM 中仍可使用中断的写入功能。
    • 此数据将被检查并在找到后重放到本地内存缓冲区,然后在下一个 CP 期间立即通过 WAFL 和 RAID 层重新处理并写入磁盘。
  • 下一个启动期间可能是电源恢复,硬件故障得到更正,或者在集群模式下启动时对配对机头执行接管。
    • 由于一个节点的所有写入数据也存储在伙伴控制器的 NVRAM 中、因此在发生接管操作并虚拟引导已停机的节点时、 所有已确认的写入操作都可用于通过 WAFL 和 RAID 层重放至其内存缓冲区和进程、然后写入磁盘。
    • 在此集群环境中,执行恢复并启动原始节点时、它将在节点关闭时在 NVRAM 中找到内容。
    • 但是,节点不会将此日志重放并处理它以写入磁盘,而是会意识到它已被接管并且此数据已被处理。
    • 实现后、 NVRAM 内容将被清除、因为数据已写入磁盘。
  • WAFL 尝试将很可能同时访问的数据块放置在靠近磁盘的位置。
    • 这是通过将多个写入请求缓冲到内存并将更改记录到 NVRAM 来实现的。
    • 经过一段时间(通常为 10 秒)后、将根据缓冲区的内容创建 RAID 条带、计算奇偶校验、然后将这些条带刷新到磁盘。
    • 如果缓冲区在正常时间间隔到期之前已接近填满,则也会启动刷新。
ONTAP 9 —每个聚合 CP
  • ONTAP 9 的性能增强可以减少一致性点的影响。
    • ONTAP 9 不会同时处理所有聚合的单一一致性点(全局),而是可以使每个聚合彼此独立地提交 CP 。
  • 仍可能出现背对背一致性点,但是,一个聚合的负面性能不应影响其他聚合。
    • 在对运行 ONTAP 9 的集群的性能进行故障排除时,请务必牢记这一点。
  • 使用 ONTAP 9 和每个聚合 CP 、 sysstat 中的 CP 信息已发生变化。  
    • 现在不显示单个 CP 、而是显示 CP 的摘要:

     CP_Ty         CP_Ph   
[T--H--F--N--B--O--#--:]  [n--v--p--f]

  • "cp_ty" 列现在显示了由于以下原因触发(或继续) CP 的聚合数:

cp_ty

定义
T 由计时器引起的 CP
H CP 由高水位标记引起;存储系统的内存缓存中修改的数据量足够高、
因此最好启动 CP 以将其强制放入磁盘
F CP 由完整 Nvlog 引起;存储系统的 NVRAM 池中记录的数据量足够高、因此最好
启动 CP 将其强制出到磁盘
N 由 NV 日志导致的 CP 到达最大条目数
B 返回到背面 CP
O 所有其他类型的 CP
# 从上一间隔继续执行 CP ,存储系统已确定需要将当前数据提交
到磁盘(已达到某种水印),以便下一个 CP 的类型为 B
: 从上一间隔继续 CP
  • "CP_Ph" 列表示以下阶段中的聚合数:

CP_PH

定义
正在处理普通文件
V 将修改后的超级块转储到磁盘
P 所有其他文件处理
f 将修改的数据刷新到磁盘
什么是背对背 (B2B) 一致性点方案?
有关详细信息,请参见本文。
  • NetApp 存储控制器具有两个用于接受和记录写入数据的缓冲区。
  • 由于这种缓冲写入方案,存储控制器一次只能处理一个一致性点( CP )性能聚合。
  • 在某些情况下、在处理一个 CP 并将其写入磁盘时、第二个内存缓冲区可以达到一个水印、在完成上一个 CP 之前触发新的 CP 。
  • 由于一致性点过程是全局的每个聚合(即该聚合的所有写入都通过此机制)和原子(即必须将属于 CP 一部分的所有已更改数据提交到磁盘才能完成该过程)、 在这种情况下,存储控制器必须立即延迟确认所有传入的写入数据请求,直到上一个 CP 完成、相应的非易失性 RAM ( NVRAM )和本地内存缓冲区被清除。
  • 在此特定方案的大多数情况下、存储控制器必须暂停传入写入请求的时间以毫秒为单位衡量、并且环境不会受到显著影响。
    • 但是,对于属于以下一个或两个类别的存储控制器、可能不希望对整体性能产生影响。
背对背情形的加重情节:
  • 传入工作负载(连续或突发)大于存储设备配置为处理的工作负载(通常包括使用较慢的驱动器执行生产负载)。
  • 数据布局效率低下会导致内部系统开销过多(通常是由于 LUN 或 VMDK 存储对象中的 IO 未对齐)。
    • 如果存在上述任一情况,则必须予以更正,以缓解存储控制器未来的性能问题。
    • 如果问题是由于 LUN 或 VMDK 存储对象上的 IO 未对齐导致的、则应首先关注解决可能的性能问题。
  • 注:
    • 背对背 CP 通过 'B''b'sysstat 或在输出的 CP Type 列中进行标识,而不仅仅是在一个完成后在下一个样本中启动 CP 。
    • 如果您遇到工作负载、吞吐量或延迟方面的性能问题,请通过 NetApp 全球支持打开案例。
传统 CP 信息:
什么是不同的一致性点类型以及如何测量?
  • 使用sysstat命令测量一致性点。
    • 有关可用选项和示例输出的详细信息,请参见 sysstat 手册页
    • 一致点( CP )类型是在间隔内启动 CP 的原因。
      • CP 类型列中的第一个字符标识了下面列出的 CP 类型。
      • 多个 CPS 不显示任何原因字符、仅显示测量时间间隔内的 CPS 计数。
      • CP 类型如下所述:

CP 类型

定义
' 。 ' 取样间隔期间未启动 CP
B 返回到后端 CPS ( CP 生成的 CP )
b 延迟返回到后端 CPS ( CP 生成)
D 数据存储库数量较少导致的 CP (静态为写入分配的缓冲区空间)
F CP 由完整 Nvlog 引起;存储系统的 NVRAM 池中记录的数据量足够高、因此最好启动 CP 将其强制出到磁盘
H CP 由高水位标记引起;存储系统的内存缓存中修改的数据量足够高、因此最好启动 CP 以将其强制放入磁盘
L CP 是由低水位造成的;可用于日常维护任务的内存量足够低、因此最好启动 CP 以释放更多内存
M CP 由较低的 MBUFS 引起;将数据写入磁盘以防止出现内存不足缓冲情况
N 由 NV 日志导致的 CP 到达最大条目数
S CP 由快照操作引起
T 由计时器引起的 CP
U CP 由嵌入引起; 一个或多个正在发出异步写入的客户端(即,根据客户端协议的规则不必立即提交到永久存储)发出请求、要求其所有未完成的未提交 I/O 现在都应提交到永久存储
V 由低虚拟缓冲区引起的 CP
Z CP 由内部同步引起;存储系统希望强制执行磁盘更新、通常在快照处理期间执行
: 从上一间隔继续 CP
# 从上一间隔继续 CP 并继续存储 系统已确定需要提交当前数据 磁盘(已达到某种水印) 这样,下一个 CP 的类型将为 B
  • 只有 CP 类型'B''b'会影响写入延迟。
  • 类型字符后跟第二个字符、该字符表示抽样间隔结束时 CP 的阶段。
    • 如果在采样间隔期间完成 CP ,则第二个字符将为空。
    • 阶段如下:
      • 0 正在初始化
      • n 处理普通文件
      • 处理特殊文件
      • F 将修改的数据刷新到磁盘
      • 将修改后的超级块转储到磁盘
      • q 处理配额文件

其他信息

在此处添加您的文本。