第 14 章 placement
下面的章节包含有关 放置服务
中的配置选项的信息。
14.1. placement.conf 复制链接链接已复制到粘贴板!
本节包含 /etc/placement/placement.conf
文件的选项。
14.1.1. DEFAULT 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [DEFAULT]
组下可用的选项。
.
配置选项 = 默认值 | 类型 | Description |
---|---|---|
| 布尔值 | 如果设置为 true,则日志级别将设为 DEBUG,而不是默认的 INFO 级别。 |
| 列出值 | 以 logger=LEVEL 的形式列出软件包日志级别列表。如果设置了 log_config_append,则忽略这个选项。 |
| 布尔值 | 启用或禁用弃用的严重状态。 |
`instance_format = [instance: %(uuid)s] ` | 字符串值 | 通过日志消息传递的实例格式。 |
`instance_uuid_format = [instance: %(uuid)s] ` | 字符串值 | 通过日志消息传递的实例 UUID 格式。 |
| 字符串值 | 日志配置文件的名称。此文件附加到任何现有日志记录配置文件中。有关日志记录配置文件的详情,请查看 Python 日志记录模块文档。请注意,当使用日志记录配置文件时,会在配置文件中设置所有日志记录配置,并忽略其他日志记录配置选项(例如 log-date-format)。 |
| 字符串值 | 在日志记录中定义 %%(asctime) s 的格式字符串。默认: %(default) s。如果设置了 log_config_append,则忽略这个选项。 |
| 字符串值 | (可选)用于相对 log_file 路径的基础目录。如果设置了 log_config_append,则忽略这个选项。 |
| 字符串值 | (可选)要将日志输出发送到的日志文件名称。如果没有设置默认值,日志记录将进入由 use_stderr 定义的 stderr。如果设置了 log_config_append,则忽略这个选项。 |
| 整数值 | 轮转日志文件前的时间长度。除非 log_rotation_type 设为 "interval",否则此选项会被忽略。 |
| 字符串值 | 轮转间隔类型。调度下一个轮转时使用上次文件更改(或服务启动时的时间)。 |
| 字符串值 | 日志轮转类型。 |
| 字符串值 | 用于带有上下文的日志消息的格式字符串。由 oslo_log.formatters.ContextFormatter 使用 |
| 字符串值 | 当消息的日志记录级别为 DEBUG 时,要附加到日志消息的额外数据。由 oslo_log.formatters.ContextFormatter 使用 |
| 字符串值 | 上下文未定义时用于日志消息的格式字符串。由 oslo_log.formatters.ContextFormatter 使用 |
| 字符串值 | 使用这种格式为每行例外输出加上前缀。由 oslo_log.formatters.ContextFormatter 使用 |
| 字符串值 | 定义 logging_context_format_string 中使用的 %(user_identity) s 格式字符串。由 oslo_log.formatters.ContextFormatter 使用 |
| 整数值 | 轮转日志文件的最大数量。 |
| 整数值 | 日志文件的最大大小(以 MB 为单位)。如果 "log_rotation_type" 没有设置为 "size",则忽略这个选项。 |
| 布尔值 | 启用或禁用错误事件的发布。 |
| 字符串值 | 安装 Placement python 模块的目录。 这是需要持久放置内部数据的其他配置选项的默认路径。不太可能您需要更改这个选项的默认值。 可能的值:
相关选项:
|
| 整数值 | 每个 rate_limit_interval 的最大日志信息数。 |
| 字符串值 | 通过速率限制使用的日志级别名称:CRITICAL、ERROR、INFO、WARNING、DEBUG 或空字符串。不过滤级别大于或等于 rate_limit_except_level 的日志。空字符串表示过滤所有级别。 |
| 整数值 | 日志速率限制的时间间隔、秒数。 |
| 字符串值 | 用于维护放置中使用的状态的顶级目录。 此目录用于存储放置的内部状态。它被某些测试使用,其行为是从 Nova 执行的。 可能的值:
|
| 字符串值 | syslog 工具可接收日志行。如果设置了 log_config_append,则忽略这个选项。 |
| 字符串值 | 明确指定临时工作目录。 |
| 布尔值 | 为日志记录启用 journald。如果在 systemd 环境中运行,您可能需要启用日志支持。这样做将使用日志原生协议,该协议包括日志消息外的结构化元数据。如果设置了 log_config_append,则忽略此选项。 |
| 布尔值 | 使用 JSON 格式进行日志记录。如果设置了 log_config_append,则忽略这个选项。 |
| 布尔值 | 使用 syslog 进行日志记录。现有 syslog 格式为 DEPRECATED,稍后将更改为遵循 RFC5424。如果设置了 log_config_append,则忽略这个选项。 |
| 布尔值 | 日志输出到 Windows 事件日志。 |
| 布尔值 | 将日志输出到标准错误。如果设置了 log_config_append,则忽略这个选项。 |
| 布尔值 | 使用旨在监视文件系统的日志记录处理程序。当移动或删除日志文件时,此处理程序将立即打开具有指定路径的新日志文件。只有在指定了 log_file 选项并使用 Linux 平台时才有意义。如果设置了 log_config_append,则忽略这个选项。 |
14.1.2. api 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [api]
组下可用的选项。
配置选项 = 默认值 | 类型 | Description |
---|---|---|
| 字符串值 | 这决定了用于身份验证的策略: keystone 或 noauth2。noauth2 仅用于测试,因为它没有实际的凭证检查。只有 admin 指定为用户名时,noauth 2 才会提供管理凭证。 |
14.1.3. CORS 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [cors]
组下可用的选项。
配置选项 = 默认值 | 类型 | Description |
---|---|---|
| 布尔值 | 指明实际请求可以包含用户凭证 |
| 列出值 | 指定在实际请求过程中可以使用哪些标头字段名称。 |
| 列出值 | 指明哪些方法可以在实际请求期间使用。 |
| 列出值 | 指明此资源是否可以与请求"origin"标头中收到的域共享。格式:"<protocol>://<host>[:<port>]",没有结尾的斜杠。示例 :https://horizon.example.com |
| 列出值 | 指明向 API 公开哪些标头是安全的。默认为 HTTP Simple Headers。 |
| 整数值 | CORS preflight 请求的最大缓存期限。 |
14.1.4. keystone_authtoken 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [keystone_authtoken]
组下可用的选项。
配置选项 = 默认值 | 类型 | Description |
---|---|---|
| 字符串值 | 加载插件特定选项的配置部分 |
| 字符串值 | 要载入的身份验证类型 |
| 字符串值 | 完成"公共"身份 API 端点。此端点不应是一个 "admin" 端点,因为它应该可以被所有最终用户访问。未经身份验证的客户端重定向到此端点以进行身份验证。虽然此端点应该是未指定版本的,但通配符中的客户端支持会有所不同。如果您在此处使用版本化的 v2 端点,则不 应该与服务用户用来验证令牌的端点相同,因为普通的最终用户可能无法到达该端点。这个选项已弃用,使用 www_authenticate_uri,并将在 S 发行版本中删除。弃用自: Queens *reason:* auth_uri 选项已弃用,使用 www_authenticate_uri,并将在 S 发行版本中删除。 |
| 字符串值 | Identity API 端点的 API 版本。 |
| 字符串值 |
请求存储 Swift 缓存对象的环境密钥。当使用 Swift 缓存部署 auth_token 中间件时,请使用此选项使中间件与 swift 共享缓存后端。否则,改为使用 |
| 字符串值 | 在验证 HTTP 连接时使用 PEM 编码的证书颁发机构。默认为系统 CA。 |
| 字符串值 | 如果身份服务器需要客户端证书,则需要此项 |
| 布尔值 | 不要处理中间件中的授权请求,但将授权决定委派给下游 WSGI 组件。 |
| 字符串值 | 用于控制令牌绑定的使用和类型。可以设置为:"disabled"不检查令牌绑定。如果绑定类型是针对服务器已知的形式,则"permissive" (默认)无法验证绑定信息,如果不是,则忽略它。如"permissive",但如果绑定类型未知,令牌将被拒绝。"必需"格式的任何令牌绑定格式是允许的。最后,令牌中必须存在的绑定方法的名称。 |
| 整数值 | 请求超时值与 Identity API 服务器通信。 |
| 整数值 | 与身份 API 服务器通信时,我们尝试重新连接的次数。 |
| 布尔值 | (可选)指示是否设置 X-Service-Catalog 标头。如果 False,中间件将不会要求在令牌验证时请求服务目录,也不会设置 X-Service-Catalog 标头。 |
| 布尔值 | 验证 HTTPS 连接。 |
| 字符串值 | 用于 Identity API 端点的接口。有效值为 "public", "internal" (默认)或 "admin"。 |
| 字符串值 | 如果身份服务器需要客户端证书,则需要此项 |
| 整数值 | (可选)操作等待从池中获取 memcached 客户端连接的秒数。 |
| 整数值 | (可选)在 memcached 服务器再次尝试前,memcached 服务器被视为死服务器的秒数。 |
| 整数值 | (可选)到每个 memcached 服务器的最大打开连接总数。 |
| 整数值 | (可选)与 memcached 服务器通信的套接字超时(以秒为单位)。 |
| 整数值 | (可选)在关闭到 memcached 前,与 memcached 的连接数的秒数。 |
| 字符串值 | (可选,如果定义了 memcache_security_strategy,则此字符串用于密钥派生。 |
| 字符串值 | (可选)如果定义,指定令牌数据是否应该经过身份验证或经过身份验证并加密。如果 MAC,令牌数据在缓存中进行身份验证(使用 HMAC)。如果 ENCRYPT,令牌数据将在缓存中加密和验证。如果该值不是这些选项之一或为空,则 auth_token 会在初始化时引发异常。 |
| 字符串值 | (可选)为使用 TLS 上下文创建的套接字设置可用密码。它应该是 OpenSSL 密码列表格式的字符串。如果没有指定,则所有启用的 OpenSSL 密码都将可用。 |
| 字符串值 | (可选)以 PEM 格式串联 CA 证书的文件路径,以建立缓存服务器的真实性。如果 tls_enabled 是 False,则忽略这个选项。 |
| 字符串值 | (可选) PEM 格式的单个文件的路径,其中包含客户端的证书以及建立证书真实性所需的任意数量的 CA 证书。仅当需要客户端身份验证时,才需要此文件。如果 tls_enabled 是 False,则忽略这个选项。 |
| 布尔值 | (可选)与缓存服务器捆绑时的 TLS 使用全局切换。 |
| 字符串值 | (可选)到包含客户端私钥的单个文件的路径。其他私钥将被从 tls_certfile 中指定的文件中获取。如果 tls_enabled 是 False,则忽略这个选项。 |
| 布尔值 | (可选)使用 advanced (eventlet 安全) memcached 客户端池。 |
| 列出值 | (可选)指定要用于缓存的 memcached 服务器列表。如果未定义,令牌将会被缓存在进程中。 |
| 字符串值 | 找到身份服务器的区域。 |
| 列出值 | 需要出现在服务令牌中的角色。允许服务令牌请求可以使用已过期的令牌,因此此检查应严格控制仅应发送此令牌的实际服务。此处的角色被应用为 ANY 检查,因此此列表中的任何角色都必须存在。出于向后兼容的原因,目前仅影响 allow_expired 检查。 |
| 布尔值 | 出于向后兼容的原因,我们必须使有效的服务令牌传递没有将 service_token_roles 检查传递给有效。在以后的发行版本中,设置此 true 将成为默认设置,并应启用。 |
| 字符串值 | 服务的名称或类型出现在服务目录中。这用于验证具有受限访问规则的令牌。 |
| 整数值 | 为了防止过度工作量验证令牌,中间件缓存之前在可配置的持续时间内(以秒为单位)中是以前的令牌。设置为 -1 以完全禁用缓存。 |
| 字符串值 | 完成"公共"身份 API 端点。此端点不应是一个 "admin" 端点,因为它应该可以被所有最终用户访问。未经身份验证的客户端重定向到此端点以进行身份验证。虽然此端点应该是未指定版本的,但通配符中的客户端支持会有所不同。如果您在此处使用版本化的 v2 端点,则不 应该与服务用户用来验证令牌的端点相同,因为普通的最终用户可能无法到达该端点。 |
14.1.5. oslo_middleware 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [oslo_middleware]
组下可用的选项。
配置选项 = 默认值 | 类型 | Description |
---|---|---|
| 布尔值 | 应用程序是否位于代理后面。这决定了中间件是否应该解析标头。 |
14.1.6. oslo_policy 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [oslo_policy]
组下可用的选项。
配置选项 = 默认值 | 类型 | 描述 |
---|---|---|
| 布尔值 |
这个选项控制在评估策略时是否使用旧的已弃用默认值。如果为 |
| 布尔值 |
此选项控制在评估策略时是否强制执行范围。如果为 |
| 字符串值 | 默认规则。未找到请求的规则时强制执行。 |
| 多值 | 存储策略配置文件的目录。它们可以相对于 config_dir 选项定义的搜索路径中的任何目录,也可以是绝对路径。必须存在由 policy_file 定义的文件,才能搜索这些目录。缺失或空目录将被忽略。 |
| 字符串值 | 文件相对或绝对路径,用于将角色映射到给定服务的权限。必须根据配置文件设置此选项指定相对路径。 |
| 字符串值 | 用于发送和接收基于 REST 策略检查的数据的内容类型 |
| 字符串值 | 基于 REST 的策略检查的 ca 证书文件的绝对路径 |
| 字符串值 | 基于 REST 的策略检查的客户端证书的绝对路径 |
| 字符串值 | 绝对路径客户端密钥文件 REST 基于策略检查 |
| 布尔值 | 基于 REST 策略检查的服务器身份验证 |
14.1.7. placement 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [placement]
组下可用的选项。
配置选项 = 默认值 | 类型 | 描述 |
---|---|---|
| 字符串值 | 定义在分配候选生成过程中访问可行的根供应商的顺序放置:
如果部署具有广泛和对称提供程序树,即,同一根下有多个子提供商,并且拥有来自同一资源类的清单(例如,如果 nova 的 mdev GPU 或 PCI 在放置功能中,则带有 max_allocation_candidates 限制的 depth-first 策略)可能会从有限的根提供商集生成候选者。另一方面,breadth-first 策略将确保以均衡的方式从所有可行的根返回。 这两个策略都以未定义但确定的顺序在 API 响应中生成候选。也就是说,所有事项相等,两个分配候选请求将以相同的顺序返回相同的结果;但不保证与确定顺序的方式相同。 |
| 整数值 | 当资源供应商生成冲突时,重试的服务器端写入分配的次数。当预期对同一资源提供程序进行多个并发分配时,增加这个值可能会很有用。 |
| 字符串值 | 早期 API 微版本(<1.8)允许创建分配,而不为消费者指定项目或用户标识符。在清理数据建模时,我们不再允许缺失的项目和用户信息。如果较旧的客户端进行了分配,我们将使用它代替其不提供的信息。 |
| 字符串值 | 早期 API 微版本(<1.8)允许创建分配,而不为消费者指定项目或用户标识符。在清理数据建模时,我们不再允许缺失的项目和用户信息。如果较旧的客户端进行了分配,我们将使用它代替其不提供的信息。 |
| 整数值 | 单个请求生成的分配候选者放置的最大数量。这是一个全局限制,以避免过量内存使用和查询运行时。如果设置为 -1,这表示生成的候选者的数量仅受资源供应商的数量和结构的限制,以及 allocation_candidates 查询的内容。 请注意,在生成所有可行的候选后,会应用 allocation_candidates 查询的限制参数,以便单独限制查询的运行时或内存消耗不足以限制查询的运行时或内存消耗。 在具有数千个资源提供程序的部署中,或者部署广泛和对称供应商树,例如,在带有同一资源类的清单的同一 root 下有多个子供应商(例如,对于 nova 的 mdev GPU 或 PCI in Placement 功能),我们建议根据放置服务和客户端超时设置的内存调整此配置选项。一个很好的初始值可以是大约 100000。 在具有广泛和对称提供程序树的部署中,我们建议将 [placement]allocation_candidates_generation_strategy 更改为 breadth-first。 |
| 布尔值 | 如果为 True,在限制分配候选结果时,结果将是完整结果集的随机抽样。[placement]max_allocation_candidates 配置可能会限制用作抽样输入的完整集合的大小。 如果为 False,则分配候选会以确定但未定义的顺序返回。也就是说,所有事项相等,两个分配候选请求将以相同的顺序返回相同的结果;但不保证与确定顺序的方式相同。 |
14.1.8. placement_database 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [placement_database]
组下可用的选项。
配置选项 = 默认值 | 类型 | Description |
---|---|---|
| 字符串值 | 用于连接到数据库的 SQLAlchemy 连接字符串。 |
| 整数值 | SQL 调试信息的详细程度:0=None, 100=Everything。 |
`connection_parameters = ` | 字符串值 | 在连接时附加到连接 URL 上的可选 URL 参数 ; 指定为 param1=value1¶m2=value2&… |
| 整数值 | 连接池中存在的连接的时间超过这个秒数,将在下次从池中签出时被替换为新的秒数。 |
| 布尔值 | 将 Python 堆栈跟踪作为注释字符串添加到 SQL 中。 |
| 整数值 | 如果设置,请对带有 SQLAlchemy 的 max_overflow 使用这个值。 |
| 整数值 | 池中保持打开的最大 SQL 连接数。设置 0 表示没有限制。 |
| 整数值 | 在启动过程中重试数据库连接的最大数量。设置为 -1 以指定无限重试计数。 |
| 字符串值 | 用于 MySQL 会话的 SQL 模式。此选项包括默认设置,可覆盖任何 server-set SQL 模式。要使用服务器配置设置的任何 SQL 模式,请将其设置为 no 值。示例:mysql_sql_mode= |
| 整数值 | 如果设置,请对带有 SQLAlchemy 的 pool_timeout 使用这个值。 |
| 整数值 | 打开 SQL 连接之间的间隔。 |
| 字符串值 | 用于连接到从属数据库的 SQLAlchemy 连接字符串。 |
| 布尔值 | 如果为 True,则 SQLite 使用同步模式。 |
| 布尔值 | 如果为 True,则在 web 服务启动时会尝试数据库架构迁移。 |
14.1.9. profiler 复制链接链接已复制到粘贴板!
下表概述了 placement.conf
文件中的 [profiler]
组下可用的选项。
配置选项 = 默认值 | 类型 | Description |
---|---|---|
| 字符串值 | 通知程序后端的连接字符串。
默认值为 可能的值示例:
|
| 布尔值 | 启用此节点上所有服务的性能分析。 默认值为 False (完全禁用性能分析功能)。 可能的值:
|
| 字符串值 | elasticsearch 中通知索引的文档类型。 |
| 整数值 | Elasticsearch 批量分割大型请求。此参数定义每个批处理的最大大小(例如: es_scroll_size=10000)。 |
| 字符串值 | 此参数是一个时间值参数(例如: es_scroll_time=2m),指定参与搜索的节点将保持相关资源的时间长度,以便继续和支持它。 |
| 布尔值 | 启用包含 error/exception 到分开的位置的过滤器追踪。 默认值为 False。 可能的值:
|
| 字符串值 | 用于加密性能分析上下文数据的 secret 密钥。 这个字符串值应该具有以下格式: <key1>[,<key2>,…<keyn>],其中每个键是一些随机字符串。通过 REST API 触发性能分析的用户必须在 REST API 调用的标头中设置其中一个密钥,以包含此特定项目的此节点的性能分析结果。 "enabled"标志和"hmac_keys"配置选项都应设置为启用性能分析。此外,要在所有服务中生成正确的性能分析信息,至少需要在 OpenStack 项目之间保持一致。这样可确保可以从客户端使用它来生成 trace,其中包含来自所有可能的资源的信息。 |
| 字符串值 |
Redissentinel 使用服务名称来识别 master redis 服务。此参数定义名称(例如: send |
| 浮点值 | Redissentinel 在连接上提供了一个 timeout 选项。此参数定义该超时(例如: socket_timeout=0.1)。 |
| 布尔值 | 在服务中启用 SQL 请求性能分析。 默认值为 False (SQL 请求不会被追踪)。 可能的值:
|