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