搜索

4.6. Ceph 对象网关

download PDF

admin topic list 命令中不再显示自动生成的内部主题

在以前的版本中,自动生成的内部主题通过 topic list 命令向用户公开,因为用户可以看到很多主题,而不是创建的内容。

在这个版本中,admin topic list 命令中不会显示自动生成的内部主题,用户现在只会看到预期的主题列表。

Bugzilla:1954461

在 topic list 命令中不再显示已弃用的存储桶名称字段

在以前的版本中,如果拉取模式通知(pubsub),通知存储在存储桶中。但是,虽然此模式已弃用,但主题 list 命令中仍会显示空 bucket name 字段。

在这个版本中,空 bucket name 字段会被删除。

Bugzilla:1954463

现在,通知会在生命周期转换时发送

在以前的版本中,在转换时分配的逻辑(与过期时间不同)。因此,在转换时不会看到通知。

在这个版本中,添加了新的逻辑,并在生命周期转换中发送通知。

Bugzilla:2166576

RGWCopyObjRequest 已被修复,重命名操作可以正常工作

在以前的版本中,在 zipper 转换后,RGWCopyObjRequest 初始化不正确,会破坏重命名操作。因此,许多 rgw_rename () 场景无法复制源对象,因此由于辅助问题,也会删除源,即使副本失败也是如此。

在这个版本中,RGWCopyObjRequest 被修正,并为不同的重命名操作添加了几个单元测试情况。

Bugzilla:2217499

Ceph 对象网关无法再进行非法访问

在以前的版本中,在初始化前访问代表 Ceph 对象网关角色的变量,从而导致 segfault。

在这个版本中,操作会被重新排序,且没有非法访问。角色根据需要强制执行。

Bugzilla:2252048

现在,会针对错误的 CSV 对象存储显示错误消息

在以前的版本中,带有未关闭双引号的 CSV 文件会导致 assert,然后是 crash。

在这个版本中,引入了一个错误消息,它根据错误的 CSV 对象结构弹出。

Bugzilla:2252396

在 Ceph 仪表板中查询用户相关信息时,用户不再遇到 'user not found' 错误

在以前的版本中,在 Ceph 仪表板中,最终用户无法从 Ceph 对象网关检索与用户相关的信息,因为仪表板无法识别的完整 user_id 中存在命名空间,从而导致出现 "user not found" 错误。

在这个版本中,一个完全构建的用户 ID,其中包括 租户命名空间user_id,当 GET 请求发送到 admin ops 时,会单独返回每个字段来获取用户信息。最终用户现在可以检索正确的 user_id,可用于进一步从 Ceph 对象网关获取其他用户相关信息。

Bugzilla:2255255

Ceph 对象网关现在通过新流编码表单格式良好的有效负载来传递请求

在以前的版本中,Ceph 对象网关无法识别 STREAMING-AWS4-HMAC-SHA256-PAYLOADSTREAMING-UNSIGNED-PAYLOAD-TRAILER 编码形式,从而导致请求失败。

在这个版本中,识别、解析以及适用的逻辑验证为新编码表单提供的新结尾请求签名。Ceph 对象网关现在通过具有新流编码形式格式良好的有效负载的请求。

Bugzilla:2256967

现在,radosgw admin bucket 和 bucket reshard stat 计算的检查 stat 计算是正确的

在以前的版本中,由于代码更改,radosgw-admin bucket check stat 计算和 bucket reshard stat 计算在存在从未指定版本转换为版本时不正确的计算。

在这个版本中,计算已被修正,不正确的存储桶 stat 输出不再生成。

Bugzilla:2257978

在多部分上传失败时,tail 对象不再丢失

在以前的版本中,在多部分上传过程中,如果因为情况(如超时)上传失败,上传被重启,第一次尝试清理会从后续尝试中删除 tail 对象。因此,生成的 Ceph 对象网关多部分对象会损坏,因为缺少一些 tail 对象。它将响应 HEAD 请求,但在 GET 请求期间失败。

在这个版本中,代码会正确清理第一次尝试。生成的 Ceph 对象网关多部分对象不再损坏,并可以被客户端读取。

Bugzilla:2262650

CompleteMultipartUpload 及其通知中的 ETag 值现在存在

在以前的版本中,与通知相关的更改会导致对象句柄与完成多部分上传对应,不包含生成的 ETag。因此,因为 CompleteMultipartUpload 及其通知,无法完成多部分上传 ETags。(计算并存储了正确的 ETag,因此后续操作包含正确的 ETag 结果。)

在这个版本中,CompleteMultipartUpload 会刷新对象,并按预期打印它。CompleteMultipartUpload 及其通知中存在 ETag 值。

Bugzilla:2266579

通过 swift 列出容器(bucket)不再会导致 Ceph 对象网关崩溃

在以前的版本中,swift-object-storage 调用路径缺少调用,用于更新其对应存储桶(zipper backport 问题)的对象句柄。因此,通过 swift 列出容器(bucket)会在为同一存储桶配置 S3 网站时导致 Ceph 对象网关崩溃。

在这个版本中,添加了所需的 zipper 逻辑,崩溃不再发生。

Bugzilla:2269038

现在,在没有生命周期策略的存储桶上处理生命周期不会崩溃

在以前的版本中,尝试在没有生命周期策略的情况下手动处理存储桶的生命周期,导致 radosgw-admin 程序崩溃。

在这个版本中,在处理处理前检查 null bucket 句柄,以避免崩溃。

Bugzilla:2270402

现在,可以修改 datapool 的区详情

rgw::zone_create () 函数在创建区域时初始化默认放置目标和池名称。此功能之前还用于设置了 exclusive=false 的 radosgw-admin zone。但是,zone set 不允许修改 STANDARD 存储类的 data_pool。

在这个版本中,如果 default-placement 目标已存在,并且 datapool 的区域详情可以如预期修改,则 default-placement 目标不应被覆盖。

Bugzilla:2254480

现在,浮点数上的 modulo 操作现在返回正确的结果

在以前的版本中,对浮点数的 modulo 操作返回错误的结果。

在这个版本中,SQL 引擎已被改进,以处理浮点数并返回正确的结果。

Bugzilla:2254125

SQL 语句可以正确地返回不区分大小写的布尔值表达式的结果

在以前的版本中,SQL 语句包含一个带有声明部分大写字母的布尔值表达式,从而导致错误的解释和错误的结果。

在这个版本中,语句的解释区分大小写,因此会为任何情况返回正确的结果。

Bugzilla:2254122

SQL 引擎返回正确的 NULL 值

在以前的版本中,SQL 语句包含来自 NULL 的 cast 类型,因此会返回错误的结果,而不是返回 NULL。

在这个版本中,SQL 引擎识别来自 NULL 的 cast 并返回 NULL。

Bugzilla:2254121

eTags 值现在包括在 CompleteMultipartUpload 及其通知中

在以前的版本中,与通知相关的更改会导致对象句柄,对应于完成多部分上传,不包含生成的 ETag。因此,CompleteMultipartUpload 及其通知不存在 ETags。(计算并存储了正确的 ETag,因此后续操作包含正确的 ETag 结果。)

在这个版本中,CompleteMultipartUpload 会刷新对象,并按预期打印它。ETag 值现在存在于 CompleteMultipartUpload 及其通知中。

Bugzilla:2249744

将对象名称中的嵌入式反斜杠(//)工作负载发送到 cloud-sync 不再会导致同步失败

在以前的版本中,在云同步过程中,当工作负载包含带有嵌入式反斜杠(/)的对象(即,使用虚拟目录路径)的对象时,在云同步过程中的 URLescaping 会导致同步失败。

在这个版本中,修正不正确的转义,对象名称中的嵌入式反斜杠(/)中的工作负载可以按预期发送到 cloud-sync。

Bugzilla:2249068

包含布尔值表达式的 SQL 语句返回布尔值类型

在以前的版本中,包含布尔值表达式(投射)的 SQL 语句将返回字符串类型而不是布尔值类型。

在这个版本中,引擎根据语句语法将字符串标识为布尔值表达式,引擎可以成功返回布尔值类型(true/false)。

Bugzilla:2254582

现在,工作调度程序会考虑 should_work 函数中的下一个日期

在以前的版本中,在 should_work 函数中使用的逻辑决定了生命周期是否应在当前时间开始运行,不会考虑下一个日期。因此,当 AB < XY 时,任何自定义工作时间 "XY:TW-AB:CD" 都会破坏生命周期处理。

在这个版本中,工作调度程序会考虑下一个日期,各种自定义生命周期工作调度现在可以正常工作。

Bugzilla:2255938

merge_and_store_attrs () 方法不再导致属性更新操作失败

在以前的版本中,merge_and_store_attrs () 方法中的一个错误,它处理协调更改和未更改的存储桶实例属性,从而导致一些属性更新操作以静默方式失败。因此,存储桶子集的一些元数据操作会失败。例如,存储桶所有者更改会在设置了速率限制的存储桶上失败。

在这个版本中,merge_and_store_attrs () 方法已被修复,所有受影响的场景都可以正常工作。

Bugzilla:2262919

checksum 和 malformed trailers 不再会导致崩溃

在以前的版本中,在 java AWS4Test.testMultipartUploadWithPauseAWS4 过程中的 AWSv4ComplMulti 异常会导致一些客户端输入崩溃,特别是使用校验和跟踪器的用户。

在这个版本中,在 do_aws4_auth_completion () 中实施了异常处理程序。checksum 和 malformed trailers 不再会导致崩溃。

Bugzilla:2266092

改进了尾部块边界检测的实现

在以前的版本中,没有处理 0-length 尾随块边界格式的有效格式。因此,Ceph 对象网关无法正确识别尾部块的开头,从而导致 403 错误。

在这个版本中,实现了改进的块边界检测,匿名访问案例中不再发生意外的 403 错误。

Bugzilla:2266411

Kafka 消息和闲置超时的默认值不再会导致挂起

在以前的版本中,Kafka 消息和闲置超时的默认值会在等待 Kafka 代理时造成意外挂起。

在这个版本中,超时会被调整,它不再挂起。

Bugzilla:2269381

删除存储桶标记不再失败

在以前的版本中,RADOS SAL merge_and_store_attrs () 中的一个不正确的逻辑会导致删除的属性不材料。这也会影响 DeleteLifecycle。因此,纯属性删除不会在某些代码路径中生效。

在这个版本中,存储存储桶标签的逻辑使用 RADOS SAL put_info () 而不是 merge_and_store_attrs ()。现在,删除存储桶标记会如预期成功。

Bugzilla:2271806

现在,S3 PutACL 和 ACL 更改上的对象 mtime 可以被正确复制

在以前的版本中,S3 PutACL 操作不会更新对象 mtime。因此,应用后 ACL 不会改变,因为基于时间戳的对象更改检查会错误地返回 false。

在这个版本中,S3 PutACL 和 ACL 更改会正确复制对象 mtime

Bugzilla:2271938

现在,所有转换情况都可以发送通知

在以前的版本中,因为池转换上的通知没有发送,在转换时分配通知的逻辑被错误地范围到 cloud-transition。

在这个版本中,通知分配添加到池转换范围内,所有转换情况都可以分配通知。

Bugzilla:2279607

在 2106 年后 RetainUntilDate 不再截断,对于新的 PutObjectRetention 请求,可以正常工作

在以前的版本中,PutObjectRetention 请求在 2106 年后指定 RetainUntilDate 请求会截断,从而导致早期用于对象锁定强制的日期。这不会影响 ' PutBucketObjectLockConfiguration' 请求,其中持续时间以天为单位。

在这个版本中,对于新的 PutObjectRetention 请求,RetainUntilDate 可以正常工作。之前存在的请求不会自动修复。要修复现有请求,请根据 x-amz-object-lock-retain-until-date 使用 HeadObject 请求来识别请求,并使用 RetainUntilDate 再次保存。

如需更多信息,请参阅 S3 放置对象保留

Bugzilla:2265890

bucket 生命周期处理规则不再停滞

在以前的版本中,per-shard bucket-lifecycle 规则的枚举包含与并发删除存储桶的生命周期规则相关的逻辑错误。因此,分片可能会进入一个状态,该状态将停止处理该分片,从而导致无法处理一些存储桶生命周期规则。

在这个版本中,枚举可以跳过删除的条目,且与此问题相关的生命周期处理停滞已被解决。

Bugzilla:2270334

删除版本存储桶中的对象会导致统计不匹配

由于版本存储桶混合使用当前和非当前对象,因此删除对象可能会导致在本地和远程站点上的 bucket 和用户统计差异。这不会导致在任一站点上出现对象泄漏,只是统计信息。

Bugzilla:1871333

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.