跳转到主要内容

运维

9 篇
  • 失败写入与幽灵空前缀

    发布于 设计

    设计存储ListObjects运维

    失败写入与幽灵空前缀

    本文覆盖 issue #285 和 Denis Babchuk 提交的 PR #286,基于 main 69fcf50cd 与 PR head ed05d982a 评估。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 报告属实。调用方已经放弃并删除了暂存数据之后,某块磁盘仍可能执行 xlStorage.RenameData。此时数据目录的重命名会失败,但为这次重命名创建的对象目录会留下来,而且是空的。只要它的父目录下还有其他对象,它就不可 …

    本文覆盖 issue #285 和 Denis Babchuk 提交的 PR #286,基于 main 69fcf50cd 与 PR head ed05d982a 评估。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 报告属实。调用方已经放弃并删除了暂存数据之后,某块磁盘仍可能执行 xlStorage.RenameData。此时数据目录的重命名会失败,但为这次重命名创建的对象目录会留下来,而且是空的。只要它的父目录下还有其他对象,它就不可 …

  • Peer 重载后的审计 Webhook

    发布于 设计

    设计审计日志配置运维

    Peer 重载后的审计 Webhook

    本文覆盖 Henrik Feldt 报告的 issue #259,基于 main 69fcf50cd 评估。本修复完成了维护者此前未提交的工作:补上 Kafka 调用点,在目标从未启动时把排队记录交给替代者,并增加 Kafka 测试覆盖。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 报告属实,一个定向测试即可复现。管理员在运行时修改 audit_webhook 时,接收请求的服务器用进程上下文应用这次修改;其他每台服务器在 peer 重 …

    本文覆盖 Henrik Feldt 报告的 issue #259,基于 main 69fcf50cd 评估。本修复完成了维护者此前未提交的工作:补上 Kafka 调用点,在目标从未启动时把排队记录交给替代者,并增加 Kafka 测试覆盖。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 报告属实,一个定向测试即可复现。管理员在运行时修改 audit_webhook 时,接收请求的服务器用进程上下文应用这次修改;其他每台服务器在 peer 重 …

  • 大型单池集群的锁域

    发布于 设计

    设计锁存储运维

    大型单池集群的锁域

    本文覆盖在审查恢复副本修复(恢复副本:过期的是副本,不是对象)时发现的锁域缺陷,评估基线为 main 上的 69fcf50cd。对应 #298。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 锁域分裂是真实的,继承自上游 MinIO,并且只在一个池中的各纠删集并不使用相同主机时才存在。按自动布局,这意味着单池有 18 台或更多主机;不超过 17 台主机时,每个集都包含所有主机,锁组完全相同。 在这样的池里,DELETE、批量删除 …

    本文覆盖在审查恢复副本修复(恢复副本:过期的是副本,不是对象)时发现的锁域缺陷,评估基线为 main 上的 69fcf50cd。对应 #298。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 锁域分裂是真实的,继承自上游 MinIO,并且只在一个池中的各纠删集并不使用相同主机时才存在。按自动布局,这意味着单池有 18 台或更多主机;不超过 17 台主机时,每个集都包含所有主机,锁组完全相同。 在这样的池里,DELETE、批量删除 …

  • Heal 演练不能删除数据

    发布于 设计

    设计Heal数据安全运维

    Heal 演练不能删除数据

    本文覆盖 Jasper Bernhardt(@dihmandrake)提交的 PR #280 中与演练(dry run)相关的部分,基于 main 69fcf50cd 评估。同一个 PR 还让深度扫描并发校验一个对象的各块盘。这项优化另行评审,不在本文范围内。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 缺陷属实,是 SILO 从上游 MinIO 继承来的。mc admin heal --dry-run 的说明是"只检查数据,不做修改 …

    本文覆盖 Jasper Bernhardt(@dihmandrake)提交的 PR #280 中与演练(dry run)相关的部分,基于 main 69fcf50cd 评估。同一个 PR 还让深度扫描并发校验一个对象的各块盘。这项优化另行评审,不在本文范围内。 状态: 已随 SILO Server 20261109(d998292387cc)正式发布。 简短结论 缺陷属实,是 SILO 从上游 MinIO 继承来的。mc admin heal --dry-run 的说明是"只检查数据,不做修改 …

  • SILO、KES 与 OpenBao:密钥归属和恢复

    发布于 设计

    设计KES安全运维

    SILO、KES 与 OpenBao:密钥归属和恢复

    SILO 通过 PGSTY KES(MINIO_KMS_KES_ENDPOINT)接入外部密钥管理系统。当前最新版本为 KES 20261026(使用 Go 1.27.3 构建并更新云服务依赖,保持本文的 API、配置与密钥格式不变);此前的 PGSTY KES 20261018(源码 2f7e741db905)完成了将 AWS Secrets Manager 后端迁移至 AWS SDK for Go v2 的主体改造。 三个服务的职责边界 服务 负责内容 调用对象 SILO 对象字节流与对象加 …

    SILO 通过 PGSTY KES(MINIO_KMS_KES_ENDPOINT)接入外部密钥管理系统。当前最新版本为 KES 20261026(使用 Go 1.27.3 构建并更新云服务依赖,保持本文的 API、配置与密钥格式不变);此前的 PGSTY KES 20261018(源码 2f7e741db905)完成了将 AWS Secrets Manager 后端迁移至 AWS SDK for Go v2 的主体改造。 三个服务的职责边界 服务 负责内容 调用对象 SILO 对象字节流与对象加 …

  • 写死 TLS 参数与握手兼容性

    发布于 设计

    设计TLSOIDC运维兼容性

    写死 TLS 参数与握手兼容性

    Go TLS 默认值修复 48e184652 随 Server 20260916 发布后,issue #154 的报告人在该版本复测,OIDC discovery 仍然报同一条 connection reset by peer。与此同时,上游 Go 社区的同类 issue 将完全一致的症状定位到检查 signature_algorithms_cert 扩展并发送重置的 TLS 中间设备(见上游的同款案例)。本文在《Go 1.27 TLS 默认值与 OIDC Discovery 故障形态》的基础上 …

    Go TLS 默认值修复 48e184652 随 Server 20260916 发布后,issue #154 的报告人在该版本复测,OIDC discovery 仍然报同一条 connection reset by peer。与此同时,上游 Go 社区的同类 issue 将完全一致的症状定位到检查 signature_algorithms_cert 扩展并发送重置的 TLS 中间设备(见上游的同款案例)。本文在《Go 1.27 TLS 默认值与 OIDC Discovery 故障形态》的基础上 …

  • Go 1.27 TLS 默认值与 OIDC Discovery 故障诊断

    发布于 设计

    设计TLSOIDC运维

    Go 1.27 TLS 默认值与 OIDC Discovery 故障诊断

    SILO 工具链升级至 Go 1.27 后,Server TLS 修复 48e184652(“fix(tls): honor Go key exchange defaults across transports”,随 Server 20260916 发布)移除了 8 处 Server TLS 配置点上的显式椭圆曲线覆盖。本文记录 Go 1.27 在 TLS 层的变更细节、issue #154 排查总结的分阶段诊断方法,以及身份提供方(IdP)在启动阶段不可达时的健康检查端点行为。 关于发布后复测 …

    SILO 工具链升级至 Go 1.27 后,Server TLS 修复 48e184652(“fix(tls): honor Go key exchange defaults across transports”,随 Server 20260916 发布)移除了 8 处 Server TLS 配置点上的显式椭圆曲线覆盖。本文记录 Go 1.27 在 TLS 层的变更细节、issue #154 排查总结的分阶段诊断方法,以及身份提供方(IdP)在启动阶段不可达时的健康检查端点行为。 关于发布后复测 …

  • 联邦 CopyObject:保持目标对象契约

    发布于 设计

    设计S3运维

    联邦 CopyObject:保持目标对象契约

    Server 20260916 通过 PR #157、PR #159、PR #163、PR #177 与 PR #179 修复了旧版 etcd 存储桶联邦(bucket federation)的 CopyObject 转发路径。当代理节点将跨集群复制作为远端 PutObject 转发到目标集群时,代理节点流式读取并发送源对象的逻辑字节,由目标端执行加密与 Object Lock 规则,校验完整对象校验和,并原样返回目标端实际提交的写入元数据。 转发一次逻辑字节,由目标端执行加密 代理节点在本地按 …

    Server 20260916 通过 PR #157、PR #159、PR #163、PR #177 与 PR #179 修复了旧版 etcd 存储桶联邦(bucket federation)的 CopyObject 转发路径。当代理节点将跨集群复制作为远端 PutObject 转发到目标集群时,代理节点流式读取并发送源对象的逻辑字节,由目标端执行加密与 Object Lock 规则,校验完整对象校验和,并原样返回目标端实际提交的写入元数据。 转发一次逻辑字节,由目标端执行加密 代理节点在本地按 …

  • 配置环境文件不是 Shell 脚本

    发布于 设计

    设计配置兼容性运维

    配置环境文件不是 Shell 脚本

    本文定义 MINIO_CONFIG_ENV_FILE 的启动解析契约,并记录提交 2aea7fe9c(已随 Server 20260903 发布)中的兼容性修复。该文件是 SILO 的专用输入格式;为方便运维而支持可选的 export 前缀,并不意味着它是一段 POSIX shell 脚本。 概览 SILO 支持在启动时从指定文件加载环境变量: export MINIO_CONFIG_ENV_FILE=/etc/default/silo silo server /data 解析器接受如下形式的键 …

    本文定义 MINIO_CONFIG_ENV_FILE 的启动解析契约,并记录提交 2aea7fe9c(已随 Server 20260903 发布)中的兼容性修复。该文件是 SILO 的专用输入格式;为方便运维而支持可选的 export 前缀,并不意味着它是一段 POSIX shell 脚本。 概览 SILO 支持在启动时从指定文件加载环境变量: export MINIO_CONFIG_ENV_FILE=/etc/default/silo silo server /data 解析器接受如下形式的键 …