Image-Volume 缓存¶
OpenStack 块存储具有可选的镜像缓存,可以显著提高从镜像创建卷的性能。性能提升取决于许多因素,主要取决于配置的后端克隆卷的速度。
当首次从镜像创建卷时,将创建一个由块存储内部租户拥有的新的缓存镜像-卷。后续从该镜像创建卷的请求将克隆缓存版本,而不是下载镜像内容并将其复制到卷中。
缓存本身可以针对每个后端进行配置,并将包含最近使用的镜像。
配置内部租户¶
Image-Volume 缓存需要为块存储服务配置内部租户。该项目将拥有缓存的镜像-卷,因此可以像管理普通用户一样管理它们,包括使用卷配额等工具。这可以保护普通用户免于看到缓存的镜像-卷,但不会使它们全局隐藏。
要使块存储服务能够访问内部租户,请在 cinder.conf 文件中设置以下选项
cinder_internal_tenant_project_id = PROJECT_ID
cinder_internal_tenant_user_id = USER_ID
一个示例 cinder.conf 配置文件
cinder_internal_tenant_project_id = b7455b8974bb4064ad247c8f375eae6c
cinder_internal_tenant_user_id = f46924c112a14c80ab0a24a613d95eef
注意
配置为内部租户的实际用户和项目不需要任何特殊权限。它们可以是块存储服务项目,也可以是任何普通项目和用户。
配置 Image-Volume 缓存¶
要启用 Image-Volume 缓存,请在 cinder.conf 文件中设置以下配置选项
image_volume_cache_enabled = True
注意
如果将 Ceph 作为后端使用,请在 cinder.conf 文件中设置以下配置选项
[ceph]
image_volume_cache_enabled = True
这可以针对每个后端定义或在默认选项中进行设置。
有一些可选的配置设置可以限制缓存的大小。这些也可以针对每个后端或在 cinder.conf 文件中的默认选项中进行设置
image_volume_cache_max_size_gb = SIZE_GB
image_volume_cache_max_count = MAX_COUNT
默认情况下,它们将被设置为 0,这意味着无限制。
例如,将最大大小限制为 200 GB 且缓存条目为 50 的配置将配置为
image_volume_cache_max_size_gb = 200
image_volume_cache_max_count = 50
通知¶
缓存操作将触发遥测消息。将发送几个消息。
image_volume_cache.miss- 正在从缓存中未找到的镜像创建卷。通常这意味着将为其创建一个新的缓存条目。image_volume_cache.hit- 正在从缓存中找到的镜像创建卷,并且可以采用快速路径。image_volume_cache.evict- 已从缓存中删除了缓存的镜像-卷。
管理缓存的镜像-卷¶
在正常使用情况下,无需手动干预缓存。条目及其底层的镜像-卷会自动管理。
如果需要,您可以手动删除这些卷以清除缓存。通过使用标准卷删除 API,块存储服务将正确清理。