2023.1 系列发布说明

2023.1-eom

新特性

  • 添加了一个新的 cinder-manage 命令来处理数据库清除无法完成的情况,因为 volumes 表持有对已删除服务的引用。新的命令确保所有卷仅引用正确的 service_uuid,这将允许从数据库中清除旧的服务记录。

    命令:cinder-manage volume update_service

  • 当 Cinder 创建一个新的 cinder-volume 服务时,它现在也会立即更新与该 cinder-volume 主机关联的所有卷的 service_uuid。在某些情况下,这阻止了数据库清除操作成功完成。

升级说明

  • Cinder 现在使用 RBD trash 功能来处理某些卷删除。因此,部署必须 a) 在 RBD 后端上启用计划的 RBD trash 清理,或者 b) 启用 Cinder RBD 驱动程序的 enable_deferred_deletion 选项,以便 Cinder 清理 RBD trash。这添加了新的配置选项“rbd_concurrent_flatten_operations”,它限制了驱动程序将同时运行的 RBD flatten 操作的数量。这可用于防止 flatten 操作消耗 Ceph 集群上的过多 I/O 容量。默认值为 3。

错误修复

  • Bug #2012246:隐藏 [coordination] backend_url 选项的值,因为它可能包含凭据信息。

  • Bug #2058596:修复了损坏的 backup_swift_service_auth=True,这导致 swift 备份驱动程序在对象数据访问期间持续失败。

  • Bug #2031897:修复了 Ceph 驱动程序中卷备份的问题,其中第一个进程(“rbd export-diff”)的失败未被捕获。相反,只有第二个进程(“rbd import-diff”)的返回码才被识别。

    此更改还保留了先前丢失的 stderr,以便于调试。

  • Hitachi 驱动程序 bug #2072317:修复了由于网络问题导致卷删除时潜在的数据丢失问题。

  • Hitachi 驱动程序 bug #2024418:修复了在执行删除卷操作时,如果卷繁忙,则引发正确异常的问题。

  • HPE XP 和 NEC V 驱动程序 bug #2012515:修复了使用正确的主机组名称的问题。

  • Hitachi 驱动程序 bug #2011810:修复了在 GAD 环境中为辅助存储使用正确的池编号的问题。

  • Hitachi 驱动程序 bug #2071697 <https://bugs.launchpad.net/cinder/+bug/2071697>’_: 修复了在运行主机辅助迁移时将正确的对象 ID 设置为 LDEV 别名的问题,使用 ``retype`migration 命令。

  • Hitachi 驱动程序 bug #2063317:修复了测试脚本,以避免由于伪 REST API 服务器的意外响应而失败。

  • HPE 3PAR 驱动程序 Bug #2068795:已修复:在调用 getWsApiVersion 之前执行登录。

  • Bug #1988942:增加了块存储 API 接受的卷镜像元数据值的长度。卷镜像元数据值限制为 255 个字符,但 Glance 允许最多 65535 个字节。此更改不会影响数据库表,因为数据库表已经允许元数据值最多 65535 个字节。

  • Pure iSCSI & FC 驱动程序 bug #2006960:修复了大于 255 的 LUN 的附加问题。驱动程序利用新的 os-brick 功能来指定 LUN 寻址模式。

  • Bug #1969643:RBD 驱动现在可以删除与其克隆的卷(或其快照)一起的卷,在以前删除会失败的情况下。这使用了 RBD trash 功能。

22.2.0

安全问题

  • 具有外部数据文件的 qcow2 格式的镜像现在被拒绝,并显示 ImageUnacceptable 错误,因为此类镜像可能被用于利用漏洞以暴露主机信息。鉴于 qcow2 外部数据文件从未被 Cinder 支持,因此此更改不应影响用户。有关详细信息,请参阅 Bug #2059809

错误修复

  • Ceph 备份驱动 Bug #1895035:修复了将完整备份恢复到非 RBD 卷的问题。

  • Bug #1912624:修复了 ussuri 版本中备份服务重构引入的回归问题,该问题阻止了在不同可用区创建卷备份。

  • Bug #2059809:修复了具有外部数据文件的 qcow2 格式的镜像可能暴露主机信息的问题。如果用于创建卷,则此类镜像现在将被拒绝,并显示 ImageUnacceptable 错误。鉴于 qcow2 外部数据文件从未被 Cinder 支持,之前此类镜像的唯一用途是尝试窃取主机信息,因此此更改不应影响用户。

  • Dell PowerMax 驱动程序 bug #2051828:驱动程序仅将 10.0 识别为 Unisphere 10,并会尝试使用 9.2 用于 Unisphere 10.x(其中 x > 0),但现在它正确地将 10.x 识别为 Unisphere 10。

  • HPE 3PAR 驱动 Bug #1994521:修复:在执行删除快照 (s1) 操作时,依赖于快照 (s1) 的卷 (v2) 会转换为基本卷。如果这些依赖卷 (v2) 拥有自己的依赖快照 (s2),则此操作将失败。 失败时的错误信息模糊且无帮助。 在此版本中,我们添加了条件以尽早使此操作失败,并添加了有用的错误消息。

  • HPE 3PAR 驱动 Bug #2015034:为 3PAR iSCSI 驱动程序添加了对 VLAN iscsi IP 的处理。

22.1.2

错误修复

  • Dell PowerFlex 驱动 bug #1998136:在使用自签名证书时,通过 connection_properties 发送到 os-brick 的选项没有被正确处理。 现在已通过在初始化连接时添加“verify_certificate”和“certificate_path”来修复。

  • Bug #2045431:修复了数据泄露场景,其中我们在重新镜像卷时保留了稀疏性。

    我们目前在卷上写入镜像时执行稀疏复制。这可能是一种潜在的数据泄露场景,新镜像的零块未写入现有卷,旧镜像的数据仍然存在于卷上。我们通过在重新镜像卷时不再执行稀疏复制来修复此场景。

22.1.1

错误修复

  • Bug #2025277:修复了 Cinder 备份恢复到稀疏卷的修复程序中的回归问题,该问题导致 OpenStack 的集成 CLI 触发了回溯。 Cinder 的已弃用的特定项目的旧 CLI 仍然有效。

  • Bug #1945500:最初尝试修复此错误时,没有考虑到 glance 和 cinder 存储镜像元数据的方式的差异,因此某些镜像属性未被过滤掉。此新的改进的修复解决了这些差异,并使过滤更加彻底。

  • HPE 3PAR 驱动 Bug #2015746:修复:为了与新的 wsapi 配合使用而进行的次要代码更改。

  • Bug #1997980:RBD:修复了在 features = 0 时多重附加更新 rbd 镜像功能失败的问题。

22.1.0

已知问题

  • 出于安全原因(Bug #2004555),在大多数情况下,手动删除连接、手动执行 os-terminate_connectionos-detachos-force_detach 操作将不再允许,除非请求来自代表用户的另一个 OpenStack 服务。

升级说明

  • Nova 必须 配置为发送服务令牌 并且 cinder 必须配置为识别 nova 服务用户在 keystone 中分配的至少一个角色。默认情况下,cinder 将识别 service 角色,因此,如果 nova 服务用户在您的云中分配了不同名称的角色,则必须调整 cinder 配置文件(keystone_authtoken 部分中的 service_token_roles 配置选项)。如果 nova 和 cinder 未正确配置,则分离卷将不再起作用(Bug #2004555)。

关键问题

安全问题

  • 作为修复 Bug #2004555 的一部分,cinder 现在拒绝用户附件删除请求,这些请求针对仍在 nova 实例使用的附件,以确保在计算节点上不会产生剩余设备,这些设备可用于访问另一个项目的卷。终止连接、分离和强制分离卷操作(通常不由用户直接执行)在大多数情况下不允许用户执行。

错误修复

  • Bug #2004555:修复了用户手动删除附件、调用终止连接、分离或强制分离,对于仍在 nova 实例使用的卷,导致计算节点上留下剩余设备的问题。现在,当认为存在问题时,这些操作将失败。

22.0.0

序言

欢迎使用 OpenStack 块存储服务 (cinder) 的 2023.1 (Antelope) 版本。 在此版本中,我们添加了几个驱动程序和驱动程序功能,如下所示

  • 添加了 HPE XP iSCSI 和 FC、Fungible NVMe-TCP、NetApp NVMe-TCP 存储驱动程序。

  • 添加了诸如 Pure 驱动程序的 Trisync 复制支持、IBM SVF 驱动程序的卷组快照支持、Dell EMC PowerMax 驱动程序的 Unisphere 10 支持、Hitachi VSP 驱动程序的宿主辅助迁移和重定型支持等功能。

新功能

  • 为 NetApp ONTAP 存储集群添加了 NVMe/TCP 卷驱动程序。

  • 为 Fungible 存储集群添加了 NVMe-TCP 卷驱动程序。

  • Hitachi 驱动程序:支持全局活动设备 (GAD) 卷。 GAD 是 Hitachi 存储功能之一,使用卷复制为跨存储系统和站点的宿主提供高可用性环境。 配置中将添加新的属性。 hbsd:topology 设置为 active_active_mirror_volumex 将指定 GAD 卷。 hitachi_mirror_xxx 参数将指定 GAD 卷的辅助存储。

  • Hitachi 驱动程序:添加了用于主机组名称格式的配置选项 hitachi_group_name_format

    使用此选项时,用户可以指定主机组或 iSCSI 目标的名称格式。 格式规则

    • 可用的字符是字母数字、“.”、“@”、“_”、“:”、“-”、“{”和“}”。 “{”和“}”只能在变量中使用。

    • 指定的值必须以 HBSD- 开头。

    • 可以使用以下变量

      {wwn}

      仅 FC 驱动程序。 这将替换为连接节点的 WWPN 的最小 WWPN。

      {ip}

      仅 iSCSI 驱动程序。 这将替换为连接节点的 IP 地址。

      {host}

      这将替换为连接节点的宿主机名。

    • 可以在指定的值中使用每个变量不超过一次。

    • 指定的值必须包含以下变量

      • FC 驱动程序:{wwn}

      • iSCSI 驱动程序:{ip}

    • 指定值的最大长度如下

      • FC 驱动程序:64

      • iSCSI 驱动程序:32

    • 在长度计算中,使用以下值作为每个变量的长度

      • {wwn}: 16

      • {ip}: 15

      • {host}: 1

    • 如果指定的值包含 {host},则适用以下规则

      • 不允许此参数的字符,它们将被替换为 _

      • 如果变量替换后的名称长度超过主机组(iSCSI 目标)名称的最大长度,则将截断主机名,以便主机组或 iSCSI 目标的长度不超过最大长度。

    如果您指定此参数,建议将 True 指定给 hitachi_group_create 参数,以自动收集必要的信息。

    示例

    • FC 驱动程序:HBSD-{host}-{wwn}

    • iSCSI 驱动程序:HBSD-{host}-{ip}

  • 支持 Hitachi 驱动程序和 OEM 存储驱动程序的多个池。

  • Hitachi 驱动程序:支持通过存储辅助进行数据去重和压缩。 如果用户通过 Configuration Manager REST API 启用 DP 池的去重和压缩,并将额外的规范 hbsd:capacity_saving 设置为 deduplication_compression,则该功能可以工作。

  • Hitachi 驱动程序:此外,还支持以下存储,Hitachi VSP E590、Hitachi VSP E790 和 Hitachi VSP E1090。

  • Hitachi 驱动程序:更新重定型到不同的池并支持存储辅助迁移。 存储辅助迁移功能也用于将不具有任何快照的卷重定型到不同的池时。

  • 添加了 HPE XP 存储的后端驱动程序。

  • IBM Spectrum Virtualize Family 驱动程序:为删除卷组操作添加了 –delete-volumes 标志支持。 添加支持后,在删除卷组时可以选择删除卷。

  • IBM Spectrum Virtualize Family 驱动程序:在 cinder 配置中添加了 storwize_volume_group 参数以支持卷组功能。

  • IBM Spectrum Virtualize Family 驱动程序:添加了对创建和删除卷组快照的支持。

  • IBM Spectrum Virtualize Family 驱动程序:添加了对 SVC 代码级别 8.5.1.0 及更高版本的卷组的支持。 用户现在可以使用现有的 cinder CLI 创建、修改和删除卷组。

  • Infinidat:添加了在同一 InfiniBox 宿主机内进行存储辅助卷迁移的支持(iSCSI 和 FC)。

  • LVM nvmet 目标:添加了对新 nvmeof 连接属性格式(版本 2)的支持。 由 nvmeof_conn_info_version 配置选项控制。

  • nvmet 目标驱动程序:添加了使用 target_secondary_ip_addresses 配置选项在多个地址上提供卷的支持。 这允许 os-brick 遍历它们以搜索一个可用的连接,并且一旦 os-brick 支持 NVMe-oF 多路径,它将自动支持。

    这要求将 nvmeof_conn_info_version 配置选项设置为 2

  • nvmet 目标驱动程序:添加了使用 lvm_share_target 配置选项支持共享子系统/目标。 默认为非共享,例如,每个卷都有自己的子系统/目标。

  • Pure Storage 驱动程序:将复制功能添加到后端池信息。 响应将是 `async``sync` 或```trisync```。 `sync` 表示对 `async` 的支持,`trisync` 表示对 `sync``async` 的支持。

  • Pure Storage 驱动程序:添加了对三站点复制(也称为 trisync)的支持。 需要创建两个复制设备,一个异步设备和一个同步设备,以及添加新的参数 pure_trisync_enabledpure_trisync_pg_name

  • RBD 驱动程序:将 Ceph 集群 FSID 设置为配置选项 rbd_secret_uuid 的默认值。

  • Dell PowerMax 驱动程序现在支持 PowerMax 10.0 的 Unisphere。

升级说明

  • IET iSCSI 目标已删除。 IET iSCSI 目标在 V 版本中已被弃用。

  • 此版本引入了一个新的配置选项 vmdk_allowed_types,它指定 Cinder 将允许的 VMDK 镜像子格式列表。默认设置仅允许 ‘streamOptimized’ 和 ‘monolithicSparse’ 子格式,这些子格式不使用命名扩展。

  • 此版本的 cinder 的 cinder-manage db sync 命令将添加额外的数据库索引。 根据数据库大小和复杂性,为每个索引创建完成需要时间。 在 MySQL 或 MariaDB 上,仅当不存在具有相同名称的索引时,才会创建这些索引

    • groups_deleted_project_id_idx

    • group_snapshots_deleted_project_id_idx

    • volumes_deleted_project_id_idx

    • volumes_deleted_host_idx

    • snapshots_deleted_project_id_idx

    • backups_deleted_project_id_idx

    可以在 特定故障排除指南 中找到生成这些索引的 SQL 命令示例。

  • 我们引入了一个新的配置参数 reserved_image_namespaces,它允许操作员设置要从卷镜像元数据中按命名空间过滤的镜像属性,在将卷上传到 Glance 时。如果未过滤掉这些属性,则会导致上传镜像时发生故障。错误将在 Glance 端发生,当使用保留的命名空间时。

弃用说明

  • 配置选项 iscsi_secondary_ip_addresses 已被弃用,以支持 target_secondary_ip_addresses,以遵循与 target_ip_address 相同的命名约定。

安全问题

  • 此版本引入了一个新的配置选项 vmdk_allowed_types,它指定 Cinder 将允许的 VMDK 镜像子格式列表,以防止通过修改 VMDK 镜像中的命名扩展来暴露主机信息。默认设置仅允许 ‘streamOptimized’ 和 ‘monolithicSparse’ 子格式,这些子格式不使用命名扩展。

  • 作为修复 Bug #1996188 的一部分,cinder 现在更严格地检查镜像服务 API image-show 响应记录的镜像的 disk_format 与 cinder 在下载镜像时检测到的内容是否匹配。因此,先前成功的一些从源镜像创建卷的请求可能会因 ImageUnacceptable 错误而失败。

错误修复

  • Bug #2007615:Cinder 备份服务的恢复操作现在会将稀疏卷恢复到稀疏卷(如果可能)。 因此,操作员不再需要在灾难恢复时使用比以前使用的更多空间。

  • Bug #1996049:修复了当卷不存在时备份未设置为失败时的错误。

  • Bug #1910767:修复了卷管理器中已分配容量的计算。 该修复考虑了具有宿主设置的所有卷,而不仅仅是状态为“使用中”或“可用”的卷。

  • Bug #1952805:修复了 Cinder-backup posix 驱动程序在多个备份宿主机上的行为。 以前,cinder-backup 经常会在错误的宿主机上安排增量备份并立即失败。

  • RBD 驱动程序 bug #1957073:修复了当其卷不存在时快照删除失败的问题。

  • PowerStore 驱动程序 bug #1962824:修复了驱动程序的 Cinder 卷缓存机制。 现在,当为给定卷创建最大快照时,驱动程序将正确引发 exception.SnapshotLimitReached,并使卷缓存失效,以允许新的快速卷克隆。

  • Bug #1978020:修复了将卷上传到 Cinder 支持的 Glance 镜像的问题;如果卷类型额外的规范中设置了存储名称,则必须将其作为新的镜像位置 URI 发送到 Glance。

  • IBM Spectrum Virtualize family 驱动程序 Bug #1978290:优化 lsmdiskgrp SSH 调用,以创建复制的卷,从而减少计算时间。

  • Infinidat 驱动程序 bug #1982350:修复了 Infinidat 驱动程序的多重附加功能。 添加了一个检查,以查看是否有多个附件来自同一连接器,并且仅终止来自相应宿主机的最后一个附件。

  • Infinidat 驱动程序 bug #1982405:修复了 Infinidat 驱动程序,以允许在同一集群内的两个存储池之间进行通用卷迁移。

  • Infinidat 驱动程序 bug #1983287:修复了 Infinidat 驱动程序,以允许备份附加的卷。

  • Infinidat 驱动程序 bug #1984000:修复了 Infinidat 驱动程序,以在创建新卷时考虑组标识符属性,并将卷添加到一致性组。

  • IBM Spectrum Virtualize Family 驱动程序:Bug #1985065:修复了收集 lsip 命令响应中所有存储节点的 IP 地址,因为在默认情况下,任何 iogrp 的卷都应可供存储节点使用。

  • Bug #1996188:修复了 VMDK 镜像文件,其 createType 允许命名扩展,可能会暴露主机信息的问题。此更改引入了一个新的配置选项 vmdk_allowed_types,它指定 Cinder 将允许的 VMDK 镜像子格式列表。默认设置仅允许 ‘streamOptimized’ 和 ‘monolithicSparse’ 子格式。

  • Bug #2008017:修复了 NetApp NFS 驱动程序,使其永远不要生成本机线程,以避免线程饥饿和其他相关问题。

  • Bug #1965952:

    添加了 netapp copyoffload 提供程序位置。

  • Bug #1952443:提高了从镜像创建卷、列出卷、快照、备份、组和组快照的性能。

  • Bug #1945500:修复了启用 Glance 多存储时,上传之前下载的 Glance 镜像时出现的错误。Glance 在 ‘os_glance’ 命名空间中保留镜像属性供自身使用,不允许创建具有这些属性的镜像。此外,与镜像签名验证相关的镜像属性等,存储在卷的镜像元数据中,在将卷作为镜像上传时,不应将其添加到新镜像中。因此,Cinder 在 Glance 中创建镜像时,将不再在 os_glanceimg_signature 命名空间中包含任何卷镜像元数据。此外,由于 Glance 属性保护功能允许操作员将特定镜像属性配置为只读,此修复添加了一个配置选项 reserved_image_namespaces,允许操作员通过命名空间排除额外的镜像属性(os_glanceimg_signature 命名空间始终被排除)。

  • bug #2000724:处理了 Glance 调用在线扩展并且外部事件被发送到 Nova 的情况。现在 Cinder 仅当要扩展的卷附加到 Nova 实例时,才会发送外部事件。

  • Hitachi、NEC V、HPE XP 驱动程序 bug #2004140:修复了后端关闭时出现的 KeyError

  • LVM nvmet 目标 bug #1964391:修复了创建和删除卷导出时,所有主机的所有卷临时断开连接的问题。

  • LVM nvmet 目标 bug #1964394:修复了导出卷时令人烦恼的内核日志消息。

  • nvmeof 目标 bug #1966513:修复了如果连接主机没有设置 iSCSI 发起者名称(例如,如果 LVM 正在使用 nvmet 目标),则在 terminate_connection 时 LVM 失败的问题。

  • Pure Storage FlashArray 驱动程序 bug #1969784:修复了阵列故障转移错误地处理由于网络问题导致的阵列丢失的问题。

  • RBD 驱动程序 bug #1960206:修复了驱动程序向调度程序报告的 total_capacity,适用于已将 bytes_used 字段重命名为 stored 的 Ceph 集群。(例如,Nautilus)。

  • Bug #2008259:修复了卷创建功能,其中非管理员用户可以通过在请求主体中提供 multiattach 参数来创建多附件卷。现在,我们只能使用支持多附件的卷类型来创建多附件卷,这也是推荐的方法。

其他说明

  • 删除了通过指定卷创建操作请求主体中的 multiattach 参数来创建多附件卷的功能。此功能不安全,可能导致数据丢失,并且自 Queens 版本以来已被弃用。创建多附件卷的推荐方法是使用支持多附件的卷类型。默认情况下,卷类型只能由操作员创建。如果需要多附件卷的用户,如果不可用,应联系其操作员以获取合适的卷类型。