验证对象完整性
StorageGRID系统验证存储节点上对象数据的完整性,检查损坏和丢失的对象。
验证过程分为两个部分:后台验证和对象存在性检查(以前称为前台验证)。他们共同努力以确保数据的完整性。后台验证自动运行,持续检查对象数据的正确性。用户可以触发对象存在性检查,以更快地验证对象的存在性(但不是正确性)。
什么是背景验证?
后台验证过程会自动且持续地检查存储节点是否存在对象数据的损坏副本,并自动尝试修复发现的任何问题。
后台验证检查复制对象和擦除编码对象的完整性,如下所示:
-
复制对象:如果后台验证过程发现复制对象已损坏,则损坏的副本将从其位置删除并隔离到存储节点的其他位置。然后,生成并放置一个新的未损坏的副本以满足活动的 ILM 策略。新副本可能不会放置在用于原始副本的存储节点上。
|
损坏的对象数据被隔离而不是从系统中删除,因此仍然可以访问。有关访问隔离对象数据的更多信息,请联系技术支持。 |
-
擦除编码对象:如果后台验证过程检测到擦除编码对象的片段已损坏, StorageGRID会自动尝试使用剩余的数据和奇偶校验片段在同一存储节点上重建丢失的片段。如果无法重建损坏的片段,则会尝试检索该对象的另一个副本。如果检索成功,则执行 ILM 评估以创建擦除编码对象的替换副本。
后台验证过程仅检查存储节点上的对象。它不会检查云存储池中的对象。物体必须存在超过四天才有资格进行背景验证。
后台验证以连续的速率运行,不会干扰正常的系统活动。背景验证无法停止。但是,如果您怀疑存在问题,可以增加后台验证率以更快地验证存储节点的内容。
与背景验证相关的警报
如果系统检测到无法自动纠正的损坏对象(因为损坏导致无法识别对象),则会触发*检测到未识别的损坏对象*警报。
如果后台验证无法替换损坏的对象,因为它无法找到另一个副本,则会触发*对象丢失*警报。
更改背景验证率
如果您担心数据完整性,可以更改后台验证检查存储节点上复制对象数据的速率。
-
您必须使用"支持的网络浏览器"。
-
你有"特定访问权限"。
您可以更改存储节点上的后台验证的验证率:
-
自适应:默认设置。该任务设计为以最大 4 MB/s 或 10 个对象/s(以先超过者为准)的速度进行验证。
-
高:存储验证进行得很快,但其速度可能会减慢普通系统活动的速度。
仅当您怀疑硬件或软件故障可能损坏对象数据时才使用高验证率。高优先级后台验证完成后,验证率自动重置为自适应。
-
选择*支持* > 工具 > 网格拓扑。
-
选择 Storage Node > LDR > Verification。
-
选择*配置* > 主要。
-
转到 LDR > 验证 > 配置 > 主要。
-
在背景验证下,选择*验证率* > 高*或*验证率 > 自适应。
-
单击“应用更改”。
-
监控复制对象的后台验证结果。
-
转到 NODES > Storage Node > Objects。
-
在验证部分,监视*损坏的对象*和*未识别的损坏的对象*的值。
如果后台验证发现损坏的复制对象数据,则“损坏的对象”指标将递增,并且StorageGRID将尝试从数据中提取对象标识符,如下所示:
-
如果可以提取对象标识符, StorageGRID会自动创建对象数据的新副本。可以在满足活动 ILM 策略的StorageGRID系统中的任何地方创建新副本。
-
如果无法提取对象标识符(因为已损坏),则“未识别的损坏对象”指标将递增,并触发“检测到未识别的损坏对象*”警报。
-
-
如果发现损坏的复制对象数据,请联系技术支持以确定损坏的根本原因。
-
-
监控擦除编码对象的背景验证结果。
如果后台验证发现擦除编码对象数据的损坏片段,则“检测到损坏片段”属性将递增。 StorageGRID通过在同一存储节点上重建损坏的片段来进行恢复。
-
选择*支持* > 工具 > 网格拓扑。
-
选择 Storage Node > LDR > Erasure Coding。
-
在验证结果表中,监控检测到的损坏片段 (ECCD) 属性。
-
-
在StorageGRID系统自动恢复损坏的对象后,重置损坏对象的数量。
-
选择*支持* > 工具 > 网格拓扑。
-
选择 Storage Node > LDR > Verification > Configuration。
-
选择*重置损坏对象数*。
-
单击“应用更改”。
-
-
如果您确信隔离的对象不再需要,则可以将其删除。
如果触发了“对象丢失”警报,技术支持人员可能希望访问隔离的对象以帮助调试潜在问题或尝试恢复数据。 -
选择*支持* > 工具 > 网格拓扑。
-
选择 Storage Node > LDR > Verification > Configuration。
-
选择*删除隔离的对象*。
-
选择*应用更改*。
-
什么是对象存在性检查?
对象存在性检查验证存储节点上是否存在所有预期的对象复制副本和擦除编码片段。对象存在检查不会验证对象数据本身(后台验证会验证该数据);相反,它提供了一种验证存储设备完整性的方法,特别是如果最近的硬件问题可能影响数据完整性。
与自动进行的后台验证不同,您必须手动启动对象存在检查作业。
对象存在性检查读取StorageGRID中存储的每个对象的元数据,并验证复制的对象副本和擦除编码对象片段的存在。任何缺失的数据均按如下方式处理:
-
复制的副本:如果缺少复制对象数据的副本, StorageGRID会自动尝试用存储在系统中其他位置的副本替换该副本。存储节点通过 ILM 评估运行现有副本,这将确定由于缺少另一个副本,当前 ILM 策略不再满足此对象。生成并放置一个新副本以满足系统的活动 ILM 策略。此新副本可能不会放置在存储丢失副本的同一位置。
-
擦除编码片段:如果擦除编码对象的片段丢失, StorageGRID会自动尝试使用剩余片段在同一存储节点上重建丢失的片段。如果无法重建丢失的片段(因为丢失了太多片段),ILM 会尝试找到该对象的另一个副本,并使用它来生成新的擦除编码片段。
运行对象存在性检查
您一次创建并运行一个对象存在检查作业。创建作业时,您可以选择要验证的存储节点和卷。您还可以选择该工作的一致性。
-
您已使用"支持的网络浏览器"。
-
您已确保要检查的存储节点处于在线状态。选择*NODES*来查看节点表。确保要检查的节点的节点名称旁边没有出现警报图标。
-
您已确保以下过程未在您要检查的节点上运行:
-
扩展网格以添加存储节点
-
存储节点退役
-
故障存储卷的恢复
-
系统驱动器发生故障的存储节点的恢复
-
EC 重新平衡
-
设备节点克隆
-
在这些过程进行时,对象存在性检查不会提供有用的信息。
对象存在检查作业可能需要几天或几周才能完成,具体取决于网格中的对象数量、所选的存储节点和卷以及所选的一致性。您一次只能运行一个作业,但可以同时选择多个存储节点和卷。
-
选择*维护* > 任务 > 对象存在检查。
-
选择*创建作业*。出现创建对象存在性检查作业向导。
-
选择包含要验证的卷的节点。要选择所有在线节点,请选中列标题中的“节点名称”复选框。
您可以按节点名称或站点进行搜索。
您不能选择未连接到网格的节点。
-
选择*继续*。
-
为列表中的每个节点选择一个或多个卷。您可以使用存储卷编号或节点名称搜索卷。
要为您选择的每个节点选择所有卷,请选中列标题中的“存储卷”复选框。
-
选择*继续*。
-
选择作业的一致性。
一致性决定了使用多少个对象元数据副本来检查对象存在性。
-
强站点:单个站点上的元数据的两个副本。
-
Strong-global:每个站点都有两份元数据副本。
-
全部(默认):每个站点的所有三个元数据副本。
有关一致性的更多信息,请参阅向导中的描述。
-
-
选择*继续*。
-
审查并验证您的选择。您可以选择“上一步”转到向导中的上一步来更新您的选择。
生成并运行对象存在性检查作业,直到发生以下情况之一:
-
工作完成。
-
您暂停或取消该工作。您可以恢复已暂停的工作,但无法恢复已取消的工作。
-
工作停滞了。触发*对象存在检查已停止*警报。按照针对警报指定的纠正措施进行操作。
-
工作失败。触发*对象存在性检查失败*警报。按照针对警报指定的纠正措施进行操作。
-
出现“服务不可用”或“内部服务器错误”消息。一分钟后,刷新页面以继续监控作业。
根据需要,您可以离开对象存在检查页面并返回继续监控作业。
-
-
当作业运行时,查看“活动作业”选项卡并记下“检测到缺少对象副本”的值。
该值表示复制对象和具有一个或多个缺失片段的擦除编码对象的缺失副本总数。
如果检测到的丢失对象副本数量大于 100,则存储节点的存储可能存在问题。
-
作业完成后,请采取任何其他必要的措施:
-
如果检测到的缺失对象副本为零,则表示未发现问题。无需执行操作。
-
如果检测到的丢失对象副本数大于零并且未触发*对象丢失*警报,则系统已修复所有丢失的副本。验证所有硬件问题是否都已得到纠正,以防止将来对对象副本造成损坏。
-
如果检测到的丢失对象副本大于零并且触发了*对象丢失*警报,则数据完整性可能会受到影响。请联系技术支持。
-
您可以使用 grep 提取 LLST 审计消息来调查丢失的对象副本:
grep LLST audit_file_name
。此过程类似于"调查丢失的物品",尽管你搜索的是对象副本
LLST`而不是 `OLST
。
-
-
如果您为作业选择了强站点或强全局一致性,请等待大约三周以确保元数据一致性,然后再次在相同的卷上重新运行该作业。
当StorageGRID有时间实现作业中包含的节点和卷的元数据一致性时,重新运行该作业可能会清除错误报告的丢失的对象副本,或者导致检查丢失的其他对象副本。
-
选择*维护* > 对象存在检查 > 作业历史记录。
-
确定哪些作业已准备好重新运行:
-
查看“结束时间”列以确定哪些作业是在三周前运行的。
-
对于这些作业,扫描一致性控制列以查找 strong-site 或 strong-global。
-
-
选中要重新运行的每个作业的复选框,然后选择*重新运行*。
-
在重新运行作业向导中,检查所选节点和卷以及一致性。
-
当您准备重新运行作业时,选择*重新运行*。
-
出现活动作业选项卡。您选择的所有作业都将以强站点一致性作为一个作业重新运行。详细信息部分中的“相关作业”字段列出了原始作业的作业 ID。
如果您仍然担心数据完整性,请转到 SUPPORT > Tools > Grid topology > site > Storage Node > LDR > Verification > Configuration > Main 并增加后台验证率。后台验证检查所有存储对象数据的正确性并修复发现的任何问题。尽快发现并修复潜在问题可降低数据丢失的风险。