跳转到主要内容

纠删码

3 篇
  • 局部视图不能把存在的对象报成不存在

    发布于 设计

    设计纠删码可用性S3 兼容性

    局部视图不能把存在的对象报成不存在

    本记录说明在下一版本地验收中发现的一个缺陷。下一版的本地集成和 69fcf50cd 上都能复现。目前还没有对应的 GitHub issue。 **状态:**修复已通过对抗评审(附若干小意见,均已采纳),并已在本地分支实现。尚未合并或发布。 简短回答 刚重启的节点,或者短暂与部分节点断开连接的节点,只能看到纠删集里的一部分盘。如果它能看到的盘上,对象元数据分属两个修订版本,而哪个版本都凑不够读 quorum,GET 和 HEAD 就会对一个存在的对象返回 404 NoSuchKey。 数据不会丢失 …

    本记录说明在下一版本地验收中发现的一个缺陷。下一版的本地集成和 69fcf50cd 上都能复现。目前还没有对应的 GitHub issue。 **状态:**修复已通过对抗评审(附若干小意见,均已采纳),并已在本地分支实现。尚未合并或发布。 简短回答 刚重启的节点,或者短暂与部分节点断开连接的节点,只能看到纠删集里的一部分盘。如果它能看到的盘上,对象元数据分属两个修订版本,而哪个版本都凑不够读 quorum,GET 和 HEAD 就会对一个存在的对象返回 404 NoSuchKey。 数据不会丢失 …

  • Multipart 提交失败可能让上传卡死

    发布于 设计

    设计Multipart纠删码S3 兼容性

    Multipart 提交失败可能让上传卡死

    本记录说明在下一版本地验收中发现的一个缺陷。它在 69fcf50cd 上能复现,继承自上游 MinIO。目前还没有对应的 GitHub issue。 **状态:**已分析并复现。起草过一版修复,但对抗评审认为它对本版风险太大,予以否决。修复推迟到下一版,与存储操作的完成确认(fencing)一起做。下一版把它列为已知问题。 简短回答 CompleteMultipartUpload 没有达到写 quorum 时,这个上传可能变得无法使用,即使之后所有盘都恢复正常: 再次 Complete 返回 …

    本记录说明在下一版本地验收中发现的一个缺陷。它在 69fcf50cd 上能复现,继承自上游 MinIO。目前还没有对应的 GitHub issue。 **状态:**已分析并复现。起草过一版修复,但对抗评审认为它对本版风险太大,予以否决。修复推迟到下一版,与存储操作的完成确认(fencing)一起做。下一版把它列为已知问题。 简短回答 CompleteMultipartUpload 没有达到写 quorum 时,这个上传可能变得无法使用,即使之后所有盘都恢复正常: 再次 Complete 返回 …

  • 混合 EC 布局与迁移列表

    发布于 设计

    设计存储池纠删码迁移

    混合 EC 布局与迁移列表

    本文记录 issue #261 与 PR #262 的审查结论,本文已按 #276 后的 main 0fc5a0b5 更新。实际修复通过维护者 PR #267 合入,#262 是后来被取代的重复 PR。 先说结论 问题成立。一次成功的降级覆写可能让一个无版本对象同时存在两种 EC 布局:在线磁盘上有更新的副本,离线磁盘上保留旧副本。GET 与 ListObjectsV2 能选出更新的可读多数;decommission 与 rebalance 使用 all-versions 遍历,此时元数据合并可 …

    本文记录 issue #261 与 PR #262 的审查结论,本文已按 #276 后的 main 0fc5a0b5 更新。实际修复通过维护者 PR #267 合入,#262 是后来被取代的重复 PR。 先说结论 问题成立。一次成功的降级覆写可能让一个无版本对象同时存在两种 EC 布局:在线磁盘上有更新的副本,离线磁盘上保留旧副本。GET 与 ListObjectsV2 能选出更新的可读多数;decommission 与 rebalance 使用 all-versions 遍历,此时元数据合并可 …