多存储支持¶
注意
多存储功能在 Rocky 版本中作为实验性功能引入,现在在 Train 版本中完全支持。
本文档范围¶
此页面描述了如何在 glance 中启用多个存储。
先决条件¶
Glance 版本 17.0.0 或更高版本
Glance 存储库 0.25.0 或更高版本
Glance 不使用 Glance 注册表
可用后端
步骤¶
在本节中,我们将讨论可供操作员使用的配置选项,以启用多存储支持。
在
[DEFAULT]选项组中enabled_backends必须设置为键值对,其中键代表存储的标识符,值将是存储的类型。有效值是file、http、rbd、swift、cinder或vmware中的一个。为了拥有多个存储,操作员可以指定用逗号分隔的多个键值对。警告
存储标识符前缀
os_glance_已被保留。如果您定义了带有此前缀的存储标识符,glance 服务将拒绝启动。http 存储类型始终被 Glance 视为只读存储。这在对
/v2/info/stores调用响应中指示,其中 http 类型的存储将具有属性read-only: True,以及通常的id和description字段。[DEFAULT] enabled_backends = fast:rbd, cheap:rbd, shared:file, reliable:file
在
[glance_store]选项组中default_backend必须设置为使用enabled_backends选项定义的标识符之一。如果未设置default_backend,或者它不代表有效的存储驱动程序,则会阻止 glance api 服务启动。[glance_store] default_backend = fast
对于在
enabled_backends部分中定义的每个存储标识符,操作员需要添加一个新的配置组,该组将定义与该特定存储相关的配置选项。[shared] filesystem_store_datadir = /opt/stack/data/glance/shared_images/ store_description = "Shared filesystem store" [reliable] filesystem_store_datadir = /opt/stack/data/glance/reliable store_description = "Reliable filesystem backend" [fast] store_description = "Fast rbd backend" rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = admin rbd_store_ceph_conf = /etc/ceph/ceph.conf rados_connect_timeout = 0 [cheap] store_description = "Cheap rbd backend" rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = admin rbd_store_ceph_conf = /etc/ceph/ceph1.conf rados_connect_timeout = 0
注意
store_description是添加到每个存储的新配置选项,操作员可以在其中添加关于该存储的描述性信息。此描述在 GET /v2/info/stores 响应中显示。
后端默认值¶
Glance 提供了一种通过 [backend_defaults] 部分来最大限度地减少配置多存储部署时的配置量。我们可以将所有通用配置选项添加到 [backend_defaults] 组中,从而减少配置工作量并使后端部分更易于阅读。
假设我们在 glance 中配置了两个 ceph 集群作为两个不同的后端。
[fast] store_description = "Fast rbd backend" rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = admin rbd_store_ceph_conf = /etc/ceph/ceph.conf rados_connect_timeout = 0 [cheap] store_description = "Cheap rbd backend" rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = admin rbd_store_ceph_conf = /etc/ceph/ceph1.conf rados_connect_timeout = 0
我们可以注意到,大多数配置选项在两个后端组中都是重复的,因此是冗余的。通过使用 [backend_defaults] 部分,我们可以简化配置文件,如下所示
[backend_defaults] rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = admin rados_connect_timeout = 0 [fast] store_description = "Fast rbd backend" rbd_store_ceph_conf = /etc/ceph/ceph.conf [cheap] store_description = "Cheap rbd backend" rbd_store_ceph_conf = /etc/ceph/ceph1.conf
我们可以注意到,除了使配置文件更紧凑之外,[backend_defaults] 部分还可以使后端组看起来更清晰,从而使操作员专注于与特定后端相关的相关信息。
存储配置问题¶
请记住以下几点。
由于 http 存储类型的特殊只读性质和特性,配置多个 http 类型的存储 不受支持。(此限制当前未在代码中强制执行。)
每个文件系统存储实例 必须具有不同的
filesystem_store_datadir值。(此限制当前未在代码中强制执行。)
保留的存储¶
在 Train 版本中,Glance 正在从以前依赖于本地目录进行临时数据存储转变为能够使用通过 glance_store 库访问的后端存储。
在 Train 版本中,除非您正在使用多存储支持功能,否则使用后端存储来实现此目的是可选的。由于您正在阅读本文档,这种情况很可能适用于您。
注意
当前,仅支持文件系统存储类型作为 Glance 保留存储。
保留存储不打算暴露给最终用户。因此,它们不会出现在存储发现调用的响应中,即 GET /v2/info/stores,也不会作为 image-create 调用的 OpenStack-image-store-ids 响应头中的值。
您无法选择保留存储的名称;这些由 Glance 定义,并以 os_glance_ 前缀开头。在 Train 版本中,您无法选择存储类型:所有保留存储必须是文件系统类型。
当前,有两个保留存储
os_glance_tasks_store此存储用于任务引擎。它取代了已弃用的配置选项
[task]/work_dir的使用。os_glance_staging_store此存储用于可互操作的镜像导入过程的暂存区域。它取代了已弃用的配置选项
[DEFAULT]/node_staging_uri的使用。
注意
如果最终用户想要使用 CONF.enabled_backends 检索所有可用存储,则需要从该列表中显式删除保留存储。
配置¶
如上所述,您无法选择保留存储的名称或类型(尽管我们预计您将在未来的版本中能够配置存储类型)。
保留存储 必须 是文件系统类型。因此,您必须在 glance-api.conf 文件中为它们提供配置。您可以通过在 glance-api.conf 文件中为每个保留存储引入一个部分来执行此操作,如下所示
[os_glance_tasks_store]
filesystem_store_datadir = /var/lib/glance/tasks_work_dir
[os_glance_staging_store]
filesystem_store_datadir = /var/lib/glance/staging
由于这两个都是文件系统存储(请记住,您没有选择),因此您必须为每个存储配置的唯一选项是 filesystem_store_datadir。请记住以下几点
用于保留存储的
filesystem_store_datadir的路径必须与您用于在enabled_backends中列出的任何文件系统存储的路径 不同。对多个文件系统存储使用相同的数据目录 不受支持,并且可能导致数据丢失。保留存储的标识符,即
os_glance_tasks_store和os_glance_staging_store,不得包含在enabled_backends列表中。保留存储不会出现在存储发现响应中,也不会作为 image-create 调用的
OpenStack-image-store-ids响应头中的值。保留存储不会被接受为 image-data-upload 调用或 image-import 调用的
X-Image-Meta-Store头的值。