Zed 系列发布说明¶
15.4.1-4¶
错误修复¶
NetApp 驱动程序 bug #2069125:修复了 NetApp ONTAP 驱动程序在 ZAPI 工作流中的问题,即当 vserver 网络接口未配置 kerberos 时,某些 vserver 帐户无法为共享添加访问规则。
在使用标记为 external(未管理的提供商网络)的 Neutron 网络作为共享网络时,manila 现在会创建 admin_state_up=False(禁用)的端口。此更改解决了在使用 OVN 作为 Neutron ML2 插件时可能发生的 ARP 故障。有关更多信息,请参阅 bug 2074504。
15.4.1¶
错误修复¶
manila 将在 keystoneauth1 连接错误的情况下重试 neutron API 调用,例如 create_port()、show_port()。有关更多详细信息,请参阅 launchpad bug #2049507
15.4.0¶
新特性¶
为具有 ‘dhss’=True 的服务实例添加新的配置选项 ‘service_network_host’。这有助于我们定义端口的网络主机,并能够与 manila 主机分离。
错误修复¶
更改了在 shares api 中未处理的共享类型时引发的错误和状态码
使 CephFS 驱动程序中的快照名称更短,以避免 Ceph 集群截断子卷名称并使快照无法访问的限制。
已修复元数据 API,以便在请求者无权访问元数据所涉及的资源时,以 HTTP 404 / Not Found 响应。
CephFS 驱动程序使用 RemoveExport DBUS API 调用来调用 NFS/Ganesha 服务,当用户删除访问规则或删除共享时。如果此调用失败,驱动程序现在会提供失败日志,并继续清理。在此更改之前,如果服务失败了 DBUS 命令来删除导出,共享删除可能会失败。这将使共享处于“error_deleting”状态,需要管理员干预。有关更多信息,请参阅 bug #2035572。
15.3.0¶
错误修复¶
基于角色的访问控制在 POST /shares/{share_id}/action API 上强制执行,以重置状态、任务状态、副本状态等字段。这可以防止部署允许某些用户访问这些 API,但他们不属于资源存在的项目的情况。有关更多上下文,请参阅 bug 1955627。
NetApp 驱动程序:修复了副本提升问题,其中 autosize 属性未在 ONTAP 上更新。现在,在提升副本后会更新 autosize 属性。有关更多详细信息,请参阅 launchpad bug #1957075
NetApp 驱动程序 bug #1982808:修复了问题,防止存储系统在副本提升后正确清理未使用的 SnapMirror 快照,从而大大增加了 ONTAP 卷中快照占用的空间。
修复了多个 Manila API 错误消息及其内容。有关详细信息,请参阅 launchpad bug #2007060
状态为 error_deleting 的共享副本现在将在定期更新期间跳过。
共享服务器后端详细信息设置函数添加了数据库记录,而没有检查现有条目。这会导致给定共享服务器 ID 和键的重复记录。通过更新现有记录(如果存在)或创建新记录来修复它。有关更多详细信息,请参阅 launchpad bug 2024658。
“manage”API 现在验证“provider_location”和“share_id”字段的格式,并适当地处理错误。预期这些字段包含字符串值。
当数据库上进行了更新时,
updated_at字段已正确设置为共享和快照访问规则。
bug #2025649:修复了共享服务器 API 错误消息。
15.2.0¶
新特性¶
由 Infinidat 驱动程序创建的共享的特殊 .snapshot 目录现在可以通过配置选项控制:infinidat_snapdir_accessible 和 infinidat_snapdir_visible。默认情况下,每个共享允许访问其自身的 .snapshot 目录,其中包含每个快照的文件和目录。要限制对 .snapshot 目录的访问,应将 infinidat_snapdir_accessible 设置为 False。 infinidat_snapdir_visible 选项控制 .snapshot 目录的可见性。默认情况下,.snapshot 目录是隐藏的。要使客户端可见 .snapshot 目录,应将此选项设置为 True。
错误修复¶
Launchpad bug 1968891 已修复。调度器在扩展共享时将使用大小增加而不是共享大小来计算 provisioned_ratio。
在使用 cephadm 部署 Manila CephFS NFS 时,manila share 服务由于错误“Backend cephfsnfs supports neither IPv4 nor IPv6”而无法启动。这是因为 NFS Ganesha 守护进程由于某种原因无法启动,因此驱动程序无法获取将用作后端的 NFS Ganesha 服务的地址。我们依赖操作员确保在初始化驱动程序时 CephFS NFS 集群可用。在此修复到位后,我们抛出异常以明确通知操作员并允许他们采取进一步的操作。
为 CephFS NFS 驱动程序创建的导出中添加了文件系统信息。这修复了使用多个文件系统部署 Manila 时出现的不一致性。
Infinidat 驱动程序 bug #1992443:修复了 Infinidat 驱动程序中的一个问题,以支持主机辅助迁移。 snapdir_visible 文件系统属性必须禁用才能隐藏客户端上的 .snapshot 目录。但是,可以使用 infinidat_snapdir_visible 配置选项更改此行为。
NetApp 驱动程序:添加了在尝试重用 share server 时获取 share server backend detail vserver 名称的保护。请参阅 Launchpad Bug #1993829。
修复了一个问题,该问题导致 CephFS 驱动程序覆盖共享中的权限。在 一个 bugfix 之后,Ceph 的共享幂等创建行为发生了变化。如果共享模式在 Manila 外部被修改,或者当共享已经创建时,Manila 中 cephfs_volume_mode 的配置值发生更改,这些共享的模式将在 Manila 尝试使用幂等创建来确保该共享存在时发生更改,从而可能破坏客户端。CephFS 驱动程序现在将不再向后端发送创建调用来确保共享存在。有关更多详细信息,请参阅 Bug #2002394
15.1.0¶
错误修复¶
GET /shares/{share_id} API 现在对无法访问的资源返回 HTTP 404(未找到)。有关更多信息,请参阅 bug 1901210。
CephFS NFS 驱动程序,特别是 NFSProtocolHelper 实现,将错误的参数传递给 Ceph 后端,这阻止了用户添加和拒绝对创建的 share 的访问权限。通过此修复,CephFS NFS NFSProtocolHelper 的用户可以正常创建和删除对 share 的访问权限。
部署者现在可以指定
[glance]endpoint_type配置选项(默认情况下为publicURL以保持向后兼容性),以便 Manila 使用 Glance 端点而不是公共端点(请参阅 bug 1991396)。
Bug 1991776 已在 CephFS 驱动程序中修复。该驱动程序不再在使用 NFS 协议时发出有关受支持 IP 版本的重复警告。
某些 neutron 集成可能没有网络类型,因此 neutron 网络插件通过考虑这种情况进行了修复。有关详细信息,请参阅 Launchpad bug #1987315。
15.0.0¶
序言¶
所有共享文件系统服务 (manila) API 的 RBAC 默认值已更新,以删除“system” scope personas。这是与其他 OpenStack 服务同步完成的,并且是对操作员反馈的回应,即使用 system “scope” 会在现有工作流程中引入向后不兼容性。新的默认值支持使用“scope”,但是,默认情况下没有 RBAC 规则包含“system” scope。此时,我们不建议使用 system scoped personas 与共享文件系统服务 (manila) API 交互,因为它未经充分测试。此版本完全支持 OpenStack Identity 服务 (keystone) 中的“reader”角色。目前,这些新的“默认值”仅作为“选择加入”提供,以防止破坏现有的部署。要强制执行默认 RBAC 规则,请在您的部署中将 [oslo_policy]/enforce_new_defaults 设置为 True。在未来的版本中,此选项将默认设置为 True。有关这些更改的更多信息,请参阅 OpenStack TC Secure RBAC 目标。
新特性¶
添加了快照元数据功能,包括创建、更新所有、更新单个、显示和删除元数据。可以使用元数据键过滤快照。快照元数据对管理员和非管理员用户可用。
‘reserved_share_extend_percentage’ 后端配置选项允许 Manila 在 share 扩展操作中考虑不同的保留百分比。如果操作员希望防止在存储池上配置新的 share,但允许超出其保留空间扩展现有 share,则此不同的选项很有用。
添加了用于 Macrosan 存储系统的 Manila 驱动程序。
NetApp 驱动程序现在考虑
last-transfer-size和last-transfer-error字段的 snapmirror,以及现有的last-transfer-end-timestamp,以确定副本是 in_sync 还是 out_of_sync。添加了新的配置选项 netapp_snapmirror_last_transfer_size_limit(默认值为 1MB)。如果 last-transfer-size 字段的值大于配置值,或者如果存在 last-transfer-error 字段,则副本为 out_of_sync。
如果用户在安全服务中配置了 AD 服务器中的“Servers”,则对于 NetApp ONTAP,应将发现模式更改为“none”。“none”值表示不会执行域控制器发现,并且它仅依赖于配置的首选 DC。
添加了 NFSClusterProtocolHelper,允许用户通过集群 NFS 网关导出 CephFS share。这带来了许多优势,因为操作员不再需要维护自己的 NFS Ganesha 实例,而这些实例与 Ceph 集群分开。为此,我们现在使用 nfs 插件与 ceph mgr 通信。有关此插件的更多信息,请参阅 https://docs.ceph.net.cn/en/2025.2/cephfs/nfs/
升级说明¶
在使用调度器过滤器进行 share 扩展时,只需要几个过滤器。为了提供这些可配置的过滤器列表以进行 share 扩展,添加了新的选项 scheduler_default_extend_filters。
已停止对 Python 3.6 和 3.7 的支持。现在支持的 Python 最低版本是 Python 3.8。
CephFS 驱动程序现在支持一个新的配置选项:* cephfs_nfs_cluster_id(字符串选项):要使用的 nfs 集群的名称。可以使用此选项指定要使用的 NFS 集群。
弃用说明¶
已弃用
[DEFAULT] use_forwarded_for参数。与其使用此参数,不如将HTTPProxyToWSGI中间件添加到 api 管道,并将[oslo_middleware] enable_proxy_headers_parsing = True添加到 manila.conf。
安全问题¶
SSH 实用程序模块不再将用户名和密码记录为调试信息。
错误修复¶
为了让用户知道 share 实例上次更新的时间,在 share 实例 show API 的响应中添加了一个字段
updated_at。
将 RBAC
share:get_all_security_services与context_is_admin解耦,从而可能允许非管理员使用all_tenants查询。
添加了一个检查,当将安全服务与共享网络关联时,两个资源必须具有相同的 project_id。如果不是,则会引发 HTTP Bad Request。
修复了一个问题,该问题导致 Manila 返回所有项目共享副本,即使用户不是管理员。现在,当用户不是管理员时,将仅显示项目视角的副本。有关更多详细信息,请参阅 Launchpad Bug #1922243
Bug #1925486 Share replica create API 不支持 share network 选项,并使用父 share 的 share network。修复了它,允许通过提供选项
share-network来使用任何 share network。从微版本 ‘2.72’ 开始在 API 中可用。
修复了 JsonFilter 的 TypeError 错误。如果 scheduler_hints 值为 None,则在创建具有 JsonFilter 的 share 时可能会发生 TypeError 异常。添加了 TypeError 异常以解决此问题。
Bug #1964696:修复了从 gluster GaneshaNFSHelper 调用 GaneshaNASHelper update_access 方法时签名错误的问题。
修复了 show_metadata 和响应字典的回归。正确的响应是:{meta: {‘key’: ‘value}}。
CephFS 驱动程序不再未能删除从未应用或从后端存储中丢失的访问规则。有关更多详细信息,请参阅 LP #1971530。
在共享网络创建 API 期间,如果共享网络或共享网络子网数据库创建失败,manila 会引发异常。但是,配额不会回滚,并且仅在配额预留超时(等待 conf.reservation_expire 秒)后才能使用。通过在任何数据库创建 API 失败时立即回滚配额来修复。
Goodness_function 期望整数或浮点数,否则引发 parseException。这会导致诸如 “(share.share_proto == ‘CIFS’) ? 100 : 50” 之类的示例在评估期间失败。通过添加对字符串评估的支持来修复它。
使用 DHSS True 模式的驱动程序具有服务器创建阶段。此阶段尝试重用可用的 share server 中的一个,但是,Manila 代码认为所有 share server 的状态都可用,而不是仅考虑活动或正在创建的 share server。现在,只有正确的 share server 才会被传递给驱动程序作为可重用的 share server。
Bug #1983125:修复了代码中对已弃用配额选项的剩余引用,这导致了警告消息。
Infinidat 驱动程序 bug #1986653:修复了 Infinidat 驱动程序,以使用 Manila 共享服务与存储后端之间的 TLS/SSL 通信。管理员可以将 infinidat_use_ssl 和 infinidat_suppress_ssl_warnings 选项设置为 True 或 False,以启用或禁用这些功能。
Infinidat 驱动程序 bug #1989283:将驱动程序版本升级到 1.1,其中添加了 SSL 支持。有关启用 SSL 的更多详细信息,请查看 Infinidat 驱动程序文档。
如果 connect_share_server_to_tenant_network 处于开启状态,则服务子网的默认路由将不会创建
修复了使用服务器限制的从快照创建操作。如果新的 share 和父 share 位于同一主机上,则必须重用 share server,因此必须忽略限制。有关详细信息,请参阅 launchpad bug #1918845
有时 NetApp API 调用由于名称解析(DNS)问题而失败。在这种情况下,客户端现在将在连接上进行 5 次重试,在读取调用上进行 2 次重试。此外,连接重试将在日志中可见。有关详细信息,请参阅 launchpad bug #1971542
其他说明¶
Pure Storage FlashBlade 驱动程序 - 版本号递增以进行跟踪。
由于 CephFS 驱动程序现在能够使用 ceph manager 命令来管理 NFS 导出,我们希望在未来的版本中弃用并删除使用 DBUS 管理导出的支持。请在 Greenfield 部署中使用 cephadm 部署的 NFS ganesha 集群,并避免在此驱动程序中使用独立的非集群 nfs-ganesha 服务。由于此解决方案已针对 Ceph 中的 HA 进行了加固,我们预计将在未来的版本中提供代码来帮助将现有的 nfs-ganesha 导出迁移到 nfs-ganesha 集群。