6.5. Ceph 对象网关
用户现在可以在非 TLS 环境中使用 SASL 设置 Kafka 连接
在以前的版本中,由于为 Ceph 对象网关配置 TLS 证书失败,无法使用 SASL (用户和密码)配置 Kafka 主题。
在这个版本中,添加了新的配置参数 rgw_allow_notification_secrets_in_cleartext
。用户现在可以在非 TLS 环境中使用 SASL 设置 Kafka 连接。
修复了令牌的内部处理
在以前的版本中,对于 Java SDK 用于 Java 和 Hadoop S3A Connector 的 AWS SDK 对基于 Java 的客户端身份验证供应商 jar 的刷新路径中的令牌进行内部处理可能无法正确处理大型令牌,从而导致处理一些令牌并防止续订客户端令牌。
在这个版本中,内部令牌处理已被修复,它可以正常工作。
对象版本访问已被修正,防止对象锁定违反
在以前的版本中,在某些调用路径中会出现大量版本信息的方法,从而导致受对象锁定保护的对象版本被删除到策略。
在这个版本中,对象版本访问已被修正,从而导致对象锁定违反。
Ceph 对象网关不再使用不正确的 URL 崩溃
在以前的版本中,重构抽象使用到没有始终初始化的存储桶值的指针替换了存储桶值。这会导致在没有存储桶中与存储桶操作对应的格式 URL 会导致 Ceph 对象网关崩溃。
在这个版本中,指针的检查已实施到 call 路径中,Ceph 对象网关会返回权限错误,而不是崩溃(如果它未初始化)。
解析日期 z-amz-date
格式的代码已更改
在以前的版本中,x-amz-date
的标准格式已更改,这会导致问题,因为新软件使用新的日期格式。使用最新 go
库构建的新软件不会与 Ceph 对象网关通信。
在这个版本中,用于解析 x-amz-date
格式的日期的 Ceph 对象网关中的代码被更改为也接受新的日期格式。
(BZ#2109675)
处理生命周期分片的新逻辑可防止因为删除存储桶而停止工作
在以前的版本中,进行更改会导致生命周期处理持续循环几天(即,不是每天从合格存储桶列表开始)。但是,更改包含一个程序漏洞,可能会停止处理包含已删除存储桶的生命周期分片,从而导致处理生命周期分片变得停滞。
在这个版本中,引入了一个逻辑来跳过删除的存储桶,因为处理不再停滞。
标头处理不再会导致 sporadic swift-protocol 验证失败
在以前的版本中,因为不正确的 HTTP 标头处理和时间戳处理逻辑,会导致在操作中使用无效的 Keystone admin 令牌,或者不会根据需要续订 Keystone admin 令牌。因此,sporadic swift-protocol 身份验证会失败。
在这个版本中,标头处理已被修正,并添加了新的诊断。现在,逻辑可以正常工作。
警告不会在不恰当的情况下被记录到日志中
在以前的版本中,一个不正确的逻辑偶尔会报告一个不正确的警告 - 无法找到 head 对象,从而导致在 Ceph 对象网关配置中不适用警告时记录警告。
在这个版本中,对相关的逻辑进行了修正,不再记录警告。
PUT 对象操作写入正确的存储桶索引分片
在以前的版本中,因为一个竞争条件,PUT 对象操作很少写入以前的存储桶索引分片。这会导致重新创建以前的存储桶索引分片,并且对象不会出现在正确的存储桶索引中。因此,当存储桶被列出时,不会列出对象。
在这个版本中,需要小心以防止各种操作创建存储桶索引分片,并在遇到竞争条件时恢复。PUT 对象操作现在始终写入正确的存储桶索引分片。