glance-scrubber¶
Glance 清理服务¶
- 作者:
OpenStack Glance 项目团队
- 联系方式:
- 日期:
2025-04-02
- 版权:
OpenStack 基金会
- 版本:
30.0.0
- 手册章节:
1
- 手册组:
云计算
概要¶
glance-scrubber [options]
描述¶
glance-scrubber 是一个实用工具,允许操作员配置 Glance 以异步删除镜像,或将镜像的状态从 pending_delete 恢复为 active。 这是否适合您的部署取决于您使用的存储后端以及 Glance 安装处理的典型镜像大小。
Glance 中的镜像实际上是镜像记录(存储在数据库中)和镜像数据文件(存储在存储后端中)的组合。 在正常操作下,image-delete 调用是同步的,也就是说,Glance 接收到 DELETE 请求,从存储后端删除镜像数据,然后从数据库中删除镜像记录,最后返回 204 作为调用的结果。 如果后端速度快且删除时间与数据大小无关,这些操作会很快发生。 但是,对于删除时间与数据大小相关的后端,image-delete 操作可能需要大量时间才能完成,以至于客户端可能会超时等待响应。 这反过来导致用户不满。
为了避免这个问题,Glance 有一个 delayed_delete 配置选项(默认值为 False),可以在 glance-api.conf 文件中设置。 启用此选项后,当 Glance 接收到 DELETE 请求时,它只会执行请求的数据库部分,将镜像的状态标记为 pending_delete,并立即返回。(pending_delete 状态对用户不可见;对该镜像的 image-show 请求将返回 404。) 但是,重要的是要注意,当 delayed_delete 启用时,Glance 不会从存储后端删除镜像数据。 这就是 glance-scrubber 发挥作用的地方。
glance-scrubber 清理已删除的镜像。 如果您使用 delayed_delete 启用 Glance,您必须偶尔运行 glance-scrubber,否则您的存储后端最终将充满“已删除”的镜像数据。
glance-scrubber 还可以将镜像恢复为 active,如果操作员错误地删除了镜像并且 Glance 中启用了 pending-delete。 请确保在恢复镜像之前 glance-scrubber 未运行,以避免镜像数据不一致。
glance-scrubber 的配置在 glance-scrubber.conf 文件中完成。 选项在示例配置文件中的注释中详细说明,因此我们仅在此处指出其中的几个选项。
scrub_time镜像保持在
pending_delete状态的最小时间(秒),默认为 0scrub_pool_size配置线程池,以便并行执行清理(默认值为 1,即串行清理)
daemon一个布尔值,指示清理程序是否应作为守护进程运行(默认值为 False)
wakeup_time当清理程序以守护进程模式运行时,运行之间的秒数(如果清理程序未以守护进程模式运行,则忽略)
metadata_encryption_key如果您的 glance-api.conf 为此选项设置了值(默认情况下保持未设置),则必须在您的 glance-scrubber.conf 中包含相同的设置,否则清理程序将无法确定您的镜像数据的位置。
restore当镜像被错误删除时,将指定镜像的状态从“pending_delete”恢复为“active”。
[database]从 Glance 的 Queens 版本(16.0.0)开始,glance-scrubber 不使用已弃用的 Glance 注册表,而是直接联系 Glance 数据库。 因此,您的 glance-scrubber.conf 文件必须包含一个 [database] 部分,指定相关信息。
[glance_store]此文件部分包含 Glance 安装使用的存储后端的配置信息。
通常情况下,您的 glance-api.conf 中 [database] 和 [glance_store] 配置组中的内容也应进入您的 glance-scrubber.conf。 当然,如果您已经高度定制了您的设置,您比我们更清楚您在做什么。 关键是清理程序需要能够访问 Glance 数据库以确定需要清理哪些镜像(并在从存储后端删除关联数据后将它们标记为已删除),并且它需要 glance_store 信息才能删除镜像数据。
选项¶
常规选项
-h, --help显示帮助信息并退出
--version打印版本号并退出
-v, --verbose打印更详细的输出
--noverbose禁用详细输出
-d, --debug打印调试输出(将日志级别设置为 DEBUG,而不是默认的 WARNING 级别)
--nodebug禁用调试输出
--use-syslog使用 syslog 进行日志记录
--nouse-syslog禁用使用 syslog 进行日志记录
--syslog-log-facility SYSLOG_LOG_FACILITY接收日志行的 syslog facility
--config-dir DIR从中提取 *.conf 文件的配置目录路径。此文件集按排序方式排列,以便在单个选项被覆盖时提供可预测的解析顺序。该集在通过之前的 –config-file 参数指定的文件之后进行解析,因此目录中的覆盖选项优先。这意味着指定 config-dir 中的配置始终优先于通过 –config-file 指定的文件中的配置,无论参数顺序如何。
--config-file PATH要使用的配置文件路径。可以通过多次使用此标志来指定多个配置文件,例如,–config-file <file1> –config-file <file2>。后面的文件中的值优先。
--log-config-append PATH--log-config PATH日志配置文件的名称。它不会禁用现有的记录器,只是将指定的日志配置附加到任何其他现有的日志选项。有关日志配置文件的详细信息,请参阅 Python logging 模块文档。此选项的 log-config 名称已被弃用。
--log-format FORMAT一个 logging.Formatter 日志消息格式字符串,可以使用任何可用的 logging.LogRecord 属性。默认值:None
--log-date-format DATE_FORMAT日志记录中 %(asctime)s 的格式字符串。默认值:None
--log-file PATH, --logfile PATH(可选) 输出到的日志文件名。如果未设置,日志将输出到 stdout。
--log-dir LOG_DIR, --logdir LOG_DIR(可选) 存储日志文件的目录(将附加到 –log-file 前面)
- -D, –daemon
作为长期运行的进程运行。 如果未指定(默认值),则运行一次清理操作然后退出。 如果指定,则不要退出并在 config 中指定的 wakeup_time 间隔运行清理。
- –nodaemon
–daemon 的反向操作。 运行一次清理操作然后退出。 默认情况下是这样。
- –restore <IMAGE_ID>
将指定的镜像状态从“pending_delete”恢复为“active”。
文件¶
- /etc/glance/glance-scrubber.conf
Glance 清理程序的默认配置文件
请参阅¶
错误¶
Glance 错误在 Launchpad 中跟踪,因此您可以在 OpenStack Glance 上查看当前错误