验证 StorageGRID 中对象数据的完整性
StorageGRID 系统验证存储节点上对象数据的完整性,检查损坏和丢失的对象。
有两种验证过程:后台验证和对象存在性检查(以前称为前台验证)。它们协同工作以确保数据完整性。后台验证自动运行,并持续检查对象数据的正确性。用户可以触发对象存在性检查,以更快地验证对象的存在性(尽管不是正确性)。
什么是后台验证?
后台验证过程会自动并持续检查存储节点是否存在对象数据的损坏副本,并自动尝试修复发现的任何问题。
后台验证检查复制对象和擦除编码对象的完整性,如下所示:
-
复制对象:如果后台验证过程发现已损坏的复制对象,则损坏的副本将从其位置删除,并在存储节点的其他位置进行隔离。然后,生成并放置一个新的未损坏的副本以满足活动的 ILM 策略。新副本可能不会放置在用于原始副本的存储节点上。
|
|
损坏的对象数据将被隔离而不是从系统中删除,因此仍然可以访问。有关访问隔离对象数据的详细信息,请联系技术支持。 |
-
擦除编码对象:如果后台验证过程检测到擦除编码对象的片段已损坏,StorageGRID 会使用剩余的数据和奇偶校验片段,自动尝试在同一存储节点上重建丢失的片段。如果无法重建损坏的片段,则会尝试检索对象的另一个副本。如果检索成功,则执行 ILM 评估以创建擦除编码对象的替换副本。
后台验证过程仅检查存储节点上的对象。不会检查云存储池中的对象。对象必须超过四天才符合后台验证的条件。
后台验证以连续速率运行,旨在不干扰正常的系统活动。后台验证无法停止。但是,如果您怀疑存在问题,可以提高后台验证率以更快地验证存储节点的内容。
与后台验证相关的提醒
如果系统检测到无法自动更正的损坏对象(因为损坏会阻止对象被识别),则会触发 Unidentified corrupt object detected 警报。
如果后台验证因无法找到另一个副本而无法替换损坏的对象,则会触发 Objects potentially lost 警报。
什么是对象存在性检查?
对象存在性检查验证对象和擦除编码片段的所有预期复制副本是否存在于存储节点上。对象存在性检查不会验证对象数据本身(后台验证会执行此操作);相反,它提供了一种验证存储设备完整性的方法,特别是在最近的硬件问题可能影响数据完整性的情况下。
与自动进行的后台验证不同,您必须手动启动对象存在性检查作业。
对象存在性检查读取存储在 StorageGRID 中的每个对象的元数据,并验证复制的对象副本和纠删码对象片段的存在性。任何缺失的数据将按以下方式处理:
-
复制副本:如果缺少复制对象数据的副本,StorageGRID 会自动尝试从存储在系统其他位置的副本中替换该副本。存储节点通过 ILM 评估运行现有副本,这将确定不再满足此对象的当前 ILM 策略,因为缺少另一个副本。系统将生成一个新副本并进行放置,以满足系统的活动 ILM 策略。此新副本可能不会放置在存储丢失副本的同一位置。
-
擦除编码片段:如果擦除编码对象的片段丢失,StorageGRID 会自动尝试使用剩余片段在同一存储节点上重建丢失的片段。如果无法重建丢失的片段(因为丢失了太多片段),ILM 将尝试查找对象的另一个副本,以生成新的擦除编码片段。
运行对象存在性检查
您每次创建并运行一个对象存在性检查作业。创建作业时,选择要验证的 Storage Nodes 和卷。您还可以选择作业的一致性。
-
您已使用 "支持的 Web 浏览器" 登录到网格管理器。
-
您有 "维护或 root 访问权限"。
-
您已确保要检查的存储节点处于联机状态。选择 Nodes 以查看节点表。确保要检查的节点的节点名称旁边没有警报图标。
-
您已确保以下过程*不*在要检查的节点上运行:
-
网格扩展以添加存储节点
-
存储节点停用
-
故障存储卷的恢复
-
恢复具有故障系统驱动器的存储节点
-
EC 重新平衡
-
设备节点克隆
-
这些过程正在进行中,对象存在性检查未提供有用信息。
对象存在检查作业可能需要几天或几周才能完成,具体取决于网格中的对象数量、选定的存储节点和卷以及选定的一致性。一次只能运行一个作业,但可以同时选择多个存储节点和卷。
-
选择*维护* > 任务 > 对象存在性检查。
-
选择*创建作业*。将显示创建对象存在性检查作业向导。
-
选择包含要验证的卷的节点。要选择所有在线节点,请选中列标题中的 Node name 复选框。
您可以按节点名称或站点进行搜索。
您不能选择未连接到网格的节点。
-
选择 Continue。
-
为列表中的每个节点选择一个或多个卷。可以使用存储卷号或节点名称搜索卷。
要为您选择的每个节点选择所有卷,请选中列标题中的*存储卷*复选框。
-
选择 Continue。
-
选择作业的一致性。
一致性决定了用于对象存在性检查的对象元数据的副本数。
-
Strong-site:一个站点上的两个元数据副本。
-
Strong-global:每个站点两个元数据副本。
-
所有(默认):每个站点的所有三个元数据副本。
有关一致性的详细信息,请参见向导中的说明。
-
-
选择 Continue。
-
查看并验证您的选择。您可以选择 Previous 转到向导中的上一步来更新您的选择。
系统将生成并运行对象存在性检查作业,直到出现以下情况之一:
-
作业已完成。
-
您暂停或取消作业。您可以恢复已暂停的作业,但无法恢复已取消的作业。
-
作业停止。*对象存在性检查已停止*警报被触发。遵循为警报指定的纠正措施。
-
作业失败。*对象存在性检查失败*警报被触发。遵循为此警报指定的纠正措施。
-
将显示"服务不可用"或"内部服务器错误"消息。一分钟后,刷新此页面以继续监控此作业。
根据需要,您可以离开"对象存在性检查"页面,然后返回继续监视作业。
-
-
作业运行时,查看*活动作业*选项卡并记下检测到的缺失对象副本的值。
此值表示复制对象和具有一个或多个缺失片段的纠删编码对象的缺失副本总数。
如果检测到的缺失对象副本数大于 100,则可能是存储节点的存储存在问题。
-
作业完成后,采取任何其他必要措施:
-
如果检测到的缺失对象副本为零,则未找到问题。无需执行操作。
-
如果检测到的缺失对象副本大于零,并且尚未触发 Objects potentially lost 警报,则系统已修复所有缺失的副本。确认任何硬件问题都已得到纠正,以防止将来损坏对象副本。
-
如果检测到的缺失对象副本大于零,并且已触发*可能丢失的对象*警报,则可能会影响数据完整性。请联系技术支持。
-
您可以通过使用 grep 提取 LLST 审计消息来调查可能丢失的对象副本:
grep LLST audit_file_name。此过程类似于 "调查可能丢失的对象" 的过程,尽管对于对象副本,您搜索的是
LLST而不是OLST。
-
-
如果您为作业选择了强站点或强全局一致性,请等待大约三周以实现元数据一致性,然后在相同卷上重新运行作业。
当 StorageGRID 为作业中包含的节点和卷实现元数据一致性后,重新运行作业可能会清除错误报告的缺失对象副本,或者在遗漏副本时触发对其他对象副本的检查。
-
选择*维护* > 对象存在性检查 > 作业历史记录。
-
确定哪些作业已准备好重新运行:
-
查看*结束时间*列,以确定哪些作业是在三周前运行的。
-
对于这些作业,请扫描"一致性控制"列,查找 strong-site 或 strong-global。
-
-
选中要重新运行的每个作业的复选框,然后选择*Rerun*。
-
在"重新运行作业"向导中,查看选定节点和卷以及一致性。
-
准备好重新运行作业时,选择 Rerun。
-
此时将显示活动作业选项卡。您选择的所有作业都作为一个作业在强站点的一致性下重新运行。"详细信息"部分的*相关作业*字段列出了原始作业的作业 ID。