注意
本文档适用于 Ceph 的开发版本。
Ceph 对象网关配置参考
以下设置可以添加到 Ceph 配置文件(即通常为 ceph.conf)中的 [client.radosgw.{instance-name}] 部分下。这些设置可能包含默认值。如果您未在 Ceph 配置文件中指定每个设置,将自动设置默认值。
在 [client.radosgw.{instance-name}] 部分下设置的配置变量将不适用于未在命令中指定 instance-name 的 rgw 或 radosgw-admin 命令。因此,旨在应用于所有 RGW 实例或所有 radosgw-admin 选项的变量可以放入 [global] 或 [client] 部分,以避免指定 instance-name。
- rgw_frontends
配置 HTTP 前端。多个前端的配置可以以逗号分隔列表的形式提供。每个前端配置可能包含一个以空格分隔的选项列表,其中每个选项的形式为“key=value”或“key”。有关支持的选项的更多信息,请参阅 HTTP 前端。
- 类型:
str- 默认值:
beast port=7480
- rgw_data
设置 Ceph RADOS 网关数据文件的位置。
- 类型:
str- 默认值:
/var/lib/ceph/radosgw/$cluster-$id
- rgw_enable_apis
启用指定的 API。
注意
启用
S3API 是任何旨在参与 多站点 配置的radosgw实例的要求。- 类型:
str- 默认值:
s3, s3website, swift, swift_auth, admin, sts, iam, notifications
- rgw_cache_enabled
Ceph 对象网关缓存是否启用。
- 类型:
bool- 默认值:
true- 另请参阅:
- rgw_cache_lru_size
Ceph 对象网关缓存中的条目数。
- 类型:
int- 默认值:
25000- 另请参阅:
- rgw_dns_name
所服务域的 DNS 名称。另请参阅区域组中的
hostnames设置。- 类型:
str
- rgw_script_uri
如果请求中未设置
SCRIPT_URI,则使用替代值。- 类型:
str
- rgw_request_uri
如果请求中未设置
REQUEST_URI,则使用替代值。- 类型:
str
- rgw_print_continue
如果
100-continue正在运行,则启用它。- 类型:
bool- 默认值:
true
- rgw_remote_addr_param
远程地址参数。例如,包含远程地址的 HTTP 字段,如果反向代理正在运行,则为
X-Forwarded-For地址。- 类型:
str- 默认值:
REMOTE_ADDR- 另请参阅:
- rgw_op_thread_timeout
开放线程的超时时间(以秒为单位)。
- 类型:
int- 默认值:
10 minutes
- rgw_op_thread_suicide_timeout
Ceph 对象网关进程终止之前的超时时间(以秒为单位)。如果设置为
0,则禁用。- 类型:
int- 默认值:
0
- rgw_thread_pool_size
线程池的大小。
- 类型:
int- 默认值:
512
- rgw_num_control_oids
用于不同
rgw实例之间缓存同步的通知对象数。- 类型:
int- 默认值:
8- 另请参阅:
rgw_cache_enabled,rgw_max_control_aio
- rgw_init_timeout
Ceph 对象网关放弃初始化前的秒数。
- 类型:
int- 默认值:
5 minutes
- rgw_mime_types_file
MIME 类型文件的路径和位置。用于 Swift 自动检测对象类型。
- 类型:
str- 默认值:
/etc/mime.types
- rgw_s3_success_create_obj_status
create-obj的替代成功状态响应。- 类型:
int- 默认值:
0
- rgw_resolve_cname
如果请求主机名字段(如果主机名不等于
rgw dns name)的 DNS CNAME 记录,rgw是否应使用该记录。- 类型:
bool- 默认值:
false
- rgw_extended_http_attrs
添加一组新的属性,可以设置在实体(用户、存储桶或对象)上。当放置实体或使用 POST 方法修改实体时,可以通过 HTTP 标头字段设置这些额外属性。如果设置,这些属性将在对实体执行 GET/HEAD 时作为 HTTP 字段返回。
- 类型:
str- example:
content_foo, content_bar, x-foo-bar
- rgw_exit_timeout_secs
在无条件退出之前等待进程的秒数。
- 类型:
int- 默认值:
2 minutes
- rgw_get_obj_window_size
单个对象读取请求的窗口大小(以字节为单位)
- 类型:
大小- 默认值:
16Mi
- rgw_get_obj_max_req_size
发送到 Ceph 存储集群的单个获取操作的最大请求大小。
- 类型:
大小- 默认值:
4Mi
- rgw_multipart_min_part_size
进行分段上传时,每个部分(最后一个部分除外)必须至少有此大小。
- 类型:
大小- 默认值:
5Mi
- rgw_relaxed_s3_bucket_names
为美国地区存储桶启用宽松的 S3 存储桶名称规则。
- 类型:
bool- 默认值:
false
- rgw_list_buckets_max_chunk
列出用户存储桶时,单个操作中检索的最大存储桶数。
- 类型:
int- 默认值:
1000
- rgw_override_bucket_index_max_shards
表示存储桶索引对象的碎片数,值为零表示没有碎片化。不建议设置过大的值(例如一千),因为它会增加存储桶列表的成本。此变量应在客户端或全局部分中设置,以便自动应用于 radosgw-admin 命令。
- 类型:
uint- 默认值:
0
- rgw_curl_wait_timeout_ms
某些
curl调用的超时时间(以毫秒为单位)。- 类型:
int- 默认值:
1000
- rgw_copy_obj_progress
在长时间复制操作期间启用对象进度输出。
- 类型:
bool- 默认值:
true
- rgw_copy_obj_progress_every_bytes
复制进度输出之间的最小字节数。
- 类型:
大小- 默认值:
1Mi
- rgw_max_copy_obj_concurrent_io
执行 copy_obj 时并发处理的引用计数操作数。
- 类型:
int- 默认值:
10
- rgw_admin_entry
管理员请求 URL 的入口点。
- 类型:
str- 默认值:
admin
- rgw_content_length_compat
启用同时设置了
CONTENT_LENGTH和HTTP_CONTENT_LENGTH的 FCGI 请求的兼容性处理。- 类型:
bool- 默认值:
false
- rgw_bucket_quota_ttl
缓存配额信息被信任的时间(以秒为单位)。在此超时后,将从集群重新获取配额信息。
- 类型:
int- 默认值:
10 minutes
- rgw_user_quota_bucket_sync_interval
存储桶配额信息在同步到集群之前累积的时间(以秒为单位)。在此期间,其他 RGW 实例将看不到此实例上操作导致的存储桶配额统计信息更改。
- 类型:
int- 默认值:
3 minutes
- rgw_user_quota_sync_interval
用户配额信息在同步到集群之前累积的时间(以秒为单位)。在此期间,其他 RGW 实例将看不到此实例上操作导致的用户配额统计信息更改。
- 类型:
int- 默认值:
1 day
- rgw_bucket_default_quota_max_objects
每个存储桶的默认最大对象数。在没有指定其他配额的情况下,为新用户设置。对现有用户没有影响。此变量应在客户端或全局部分中设置,以便自动应用于 radosgw-admin 命令。
- 类型:
int- 默认值:
-1
- rgw_bucket_default_quota_max_size
每个存储桶的默认最大容量(以字节为单位)。在没有指定其他配额的情况下,为新用户设置。对现有用户没有影响。
- 类型:
int- 默认值:
-1
- rgw_user_default_quota_max_objects
用户的默认最大对象数。这包括用户拥有的所有存储桶中的所有对象。在没有指定其他配额的情况下,为新用户设置。对现有用户没有影响。
- 类型:
int- 默认值:
-1
- rgw_user_default_quota_max_size
在没有指定其他配额的情况下,为新用户设置的用户最大大小配额值(以字节为单位)。对现有用户没有影响。
- 类型:
int- 默认值:
-1
- rgw_account_default_quota_max_objects
帐户的默认最大对象数。这包括帐户拥有的所有存储桶中的所有对象。在没有指定其他配额的情况下,为新帐户设置。对现有帐户没有影响。
- 类型:
int- 默认值:
-1
- rgw_account_default_quota_max_size
在没有指定其他配额的情况下,为新帐户设置的帐户最大大小配额值(以字节为单位)。对现有帐户没有影响。
- 类型:
int- 默认值:
-1
- rgw_verify_ssl
在发出请求时验证 SSL 证书。
- 类型:
bool- 默认值:
true- 另请参阅:
- rgw_max_chunk_size
块大小是 RGW 在访问 RADOS 对象时发送给 OSD 的请求大小。RGW 读取和写入操作在单个请求中永远不会请求超过此数量的数据。这也定义了 RGW HEAD 对象大小,因为 HEAD 操作需要是原子的,任何大于此大小的操作都需要不止一个操作。当 RGW 对象写入默认存储类时,最多此数量的有效载荷数据将与元数据一起存储在 HEAD 对象中。请注意,当将 RGW 对象写入非默认存储类时,HEAD RADOS 对象始终存储在默认存储类池中,但不执行有效载荷数据的内联。
- 类型:
大小- 默认值:
4Mi
生命周期设置
存储桶生命周期 (LC) 配置可用于管理对象,使其在整个生命周期内得到有效存储。在过去的版本中,生命周期处理受到单线程处理的速率限制。从 Nautilus 版本开始,Ceph 对象网关允许跨额外的 Ceph 对象网关实例进行存储桶生命周期的并行线程处理,并用随机有序序列替换按顺序的索引碎片枚举。
有两个选项特别与调整生命周期处理的侵入性有关
- rgw_lc_max_worker
此选项指定并行运行的生命周期工作线程数,从而同时处理存储桶和索引碎片。
- 类型:
int- 默认值:
3
- rgw_lc_max_wp_worker
此选项指定每个生命周期工作池中的协程数。此选项有助于加快处理每个存储桶的速度。
- 类型:
int- 默认值:
128
可以根据您的特定工作负载调整这些值,以进一步增加生命周期处理的侵入性。对于具有大量存储桶(数千个)的工作负载,通过将 rgw_lc_max_worker 从默认值 3 增加来增加工作线程数。但是对于每个存储桶具有更多对象(数十万个)的工作负载,通过将 rgw_lc_max_wp_worker 从默认值 3 增加来增加并行线程数。
注意
在增加这些值中的任何一个之前,请验证当前的集群性能和 Ceph 对象网关利用率。
生命周期维护线程也必须在每个区域的至少一个 RGW 守护程序上启用。
- rgw_enable_lc_threads
生命周期维护线程负责与生命周期相关的维护工作。线程本身可以禁用,但为了使生命周期正常工作,每个区域中至少一个 RGW 需要运行此线程。在同一区域内的多个 RGW 进程上启用此线程可以将一些维护工作分散到它们之间。
- 类型:
bool- 默认值:
true- 另请参阅:
rgw_enable_gc_threads,rgw_enable_quota_threads,rgw_enable_restore_threads
垃圾回收设置
Ceph 对象网关立即为新对象分配存储空间。
Ceph 对象网关在将对象从存储桶索引中删除后的一段时间内,会清除 Ceph 存储集群中用于已删除和已覆盖对象的存储空间。从 Ceph 存储集群中清除已删除对象数据的过程称为垃圾回收 (GC)。
要查看等待垃圾回收的对象队列,请执行以下操作
radosgw-admin gc list
注意
指定 --include-all 以列出所有条目,包括未过期的垃圾回收对象。
垃圾回收是一种后台活动,可以持续执行或在负载较低时执行,具体取决于管理员如何配置 Ceph 对象网关。默认情况下,Ceph 对象网关持续执行 GC 操作。由于 GC 操作是 Ceph 对象网关操作的正常部分,特别是对象删除操作,因此符合垃圾回收条件的对象大部分时间都存在。
某些工作负载可能会暂时或永久地超过垃圾回收活动的速度。对于删除繁重的工作负载尤其如此,其中许多对象存储时间很短,然后被删除。对于这些类型的工作负载,管理员可以使用以下配置参数来提高垃圾回收操作相对于其他操作的优先级。
- rgw_gc_max_objs
在一次垃圾回收处理周期中可以由垃圾回收处理的最大对象数。首次部署后请不要更改此值。
- 类型:
int- 默认值:
32- 另请参阅:
rgw_gc_obj_min_wait,rgw_gc_processor_max_time,rgw_gc_processor_period,rgw_gc_max_concurrent_io
- rgw_gc_obj_min_wait
在删除的对象可以被移除和由垃圾回收处理之前的最短等待时间。
- 类型:
int- 默认值:
2 hours- 另请参阅:
rgw_gc_max_objs,rgw_gc_processor_max_time,rgw_gc_processor_period,rgw_gc_max_concurrent_io
- rgw_gc_processor_max_time
两个连续垃圾回收处理周期开始之间的最长时间。
- 类型:
int- 默认值:
1 hour- 另请参阅:
rgw_gc_max_objs,rgw_gc_obj_min_wait,rgw_gc_processor_period,rgw_gc_max_concurrent_io
- rgw_gc_processor_period
垃圾回收处理的周期时间。
- 类型:
int- 默认值:
1 hour- 另请参阅:
rgw_gc_max_objs,rgw_gc_obj_min_wait,rgw_gc_processor_max_time,rgw_gc_max_concurrent_io,rgw_gc_max_trim_chunk
- rgw_gc_max_concurrent_io
RGW 垃圾回收线程在清除旧数据时将使用的最大并发 IO 操作数。
- 类型:
int- 默认值:
10- 另请参阅:
rgw_gc_max_objs,rgw_gc_obj_min_wait,rgw_gc_processor_max_time,rgw_gc_max_trim_chunk
- 针对删除繁重工作负载调整垃圾回收:
作为调整 Ceph 垃圾回收以更具侵入性的第一步,建议将以下选项从其默认配置值增加
rgw_gc_max_concurrent_io = 20
rgw_gc_max_trim_chunk = 64
注意
修改这些值需要重启 RGW 服务。
将这些值增加到默认值以上后,请监控垃圾回收期间集群的性能,以验证没有因值增加而导致不利的性能问题。
每个区域中至少一个 RGW 必须运行垃圾回收维护线程
- rgw_enable_gc_threads
垃圾回收维护线程负责垃圾收集器维护工作。线程本身可以禁用,但为了使垃圾回收正常工作,每个区域中至少一个 RGW 需要运行此线程。在同一区域内的多个 RGW 进程上启用此线程可以将一些维护工作分散到它们之间。
- 类型:
bool- 默认值:
true- 另请参阅:
rgw_enable_quota_threads,rgw_enable_lc_threads,rgw_enable_restore_threads
多站点设置
版本 Jewel 新增。
您可以将以下设置包含在每个 [client.radosgw.{instance-name}] 实例下的 Ceph 配置文件中。
- rgw_zone
网关实例的区域名称。如果未设置区域,可以使用命令
radosgw- admin zone default配置集群范围的默认值。- 类型:
str- 另请参阅:
- rgw_zonegroup
- rgw_realm
网关实例的领域名称。如果未设置领域,可以使用命令
radosgw- admin realm default配置集群范围的默认值。- 类型:
str
- rgw_run_sync_thread
如果领域中有其他区域可供同步,则派生线程来处理数据和元数据的同步。
- 类型:
bool- 默认值:
true
- rgw_data_log_window
数据日志条目窗口(以秒为单位)。
- 类型:
int- 默认值:
30
- rgw_data_log_changes_size
数据更改日志中保留在内存中的条目数。
- 类型:
int- 默认值:
1000
- rgw_data_log_num_shards
保持数据更改日志的碎片(对象)数。
- 类型:
int- 默认值:
128
- rgw_md_log_max_shards
元数据日志的最大碎片数。
- 类型:
int- 默认值:
64
- rgw_data_sync_poll_interval
一旦多站点的数据日志碎片的增量同步赶上了其源,它将等待这么长时间(以秒为单位)才会轮询更多更改。
- 类型:
int- 默认值:
20- 另请参阅:
- rgw_meta_sync_poll_interval
一旦多站点的元数据日志碎片的增量同步赶上了其源,它将等待这么长时间(以秒为单位)才会轮询更多更改。
- 类型:
int- 默认值:
20- 另请参阅:
- rgw_bucket_sync_spawn_window
存储桶同步愿意并行处理的最大项目数(每个远程 bilog 碎片)。
- 类型:
int- 默认值:
20- 另请参阅:
- rgw_data_sync_spawn_window
数据同步愿意并行处理的最大项目数(每个远程 datalog 碎片)。
- 类型:
int- 默认值:
20- 另请参阅:
- rgw_meta_sync_spawn_window
元数据同步愿意并行处理的最大项目数(每个远程 mdlog 碎片)。
- 类型:
int- 默认值:
20- 另请参阅:
重要
rgw_data_log_num_shards 和 rgw_md_log_max_shards 的值在同步开始后不应更改。
S3 设置
- rgw_s3_auth_use_ldap
S3 身份验证是否使用 LDAP。
- 类型:
bool- 默认值:
false
Swift 设置
- rgw_enforce_swift_acls
强制执行 Swift 访问控制列表 (ACL) 设置。
- 类型:
bool- 默认值:
true
- rgw_swift_tenant_name
构建 swift 路径时使用的租户名称。
- 类型:
str- 另请参阅:
- rgw_swift_token_expiration
Swift 令牌过期的时间(以秒为单位)。
- 类型:
int- 默认值:
1 day
- rgw_swift_url
Ceph 对象网关 Swift API 的 URL。
- 类型:
str- 另请参阅:
- rgw_swift_url_prefix
Swift API 的 URL 前缀,用于将其与 S3 API 端点区分开来。默认值为
swift,这使得 Swift API 可通过 URLhttp://host:port/swift/v1访问(如果启用了rgw swift account in url,则为http://host:port/swift/v1/AUTH_%(tenant_id)s)。为了兼容性,将此配置变量设置为空字符串会导致使用默认的
swift;如果您确实想要一个空前缀,请将此选项设置为/。警告
如果您将此选项设置为
/,则必须通过修改rgw enable apis以排除s3来禁用 S3 API。在rgw swift url prefix = /的情况下同时支持 S3 和 Swift API 是不可能的。如果您确实需要支持没有前缀的两个 API,请部署多个 radosgw 实例以侦听不同的主机(或端口),并为其中一些启用 S3,为另一些启用 Swift。- 类型:
str- 默认值:
swift- example:
/swift-testing
- rgw_swift_auth_url
RGW 连接并验证 v1 身份验证令牌的默认 URL(如果不使用内部 swift 身份验证)。
- 类型:
str
- rgw_swift_auth_entry
Swift 身份验证 URL 的入口点。
- 类型:
str- 默认值:
auth(认证)- 另请参阅:
- rgw_swift_account_in_url
Swift API URL 中是否应包含 Swift 帐户名称。如果设置为
false(默认值),则 Swift API 将侦听形式为http://host:port/<rgw_swift_url_prefix>/v1的 URL,并且帐户名称(如果 radosgw 配置了 Keystone 集成,通常为 Keystone 项目 UUID)将从请求标头推断。如果设置为true,则 Swift API URL 将为http://host:port/<rgw_swift_url_prefix>/v1/AUTH_<account_name>(或http://host:port/<rgw_swift_url_prefix>/v1/AUTH_<keystone_project_id >),并且 Keystoneobject-store端点必须相应地配置为包含AUTH_%(tenant_id)s后缀。如果您希望 radosgw 支持可公开读取的容器和 临时 URL,则必须将此选项设置为true(并更新 Keystone 服务目录)。- 类型:
bool- 默认值:
false- 另请参阅:
- rgw_swift_versioning_enabled
启用 OpenStack 对象存储 API 的对象版本控制。这允许客户端在应进行版本控制的容器上放置
X-Versions-Location属性。该属性指定存储存档版本的容器名称。由于访问控制验证,它必须由与版本控制容器相同的用户拥有 - 不考虑 ACL。这些容器不能通过 S3 对象版本控制机制进行版本控制。目前不支持
X-History-Location属性,OpenStack Swift 也理解该属性 用于处理DELETE操作。- 类型:
bool- 默认值:
false
- rgw_trust_forwarded_https
当 radosgw 前面的代理用于 ssl 终止时,radosgw 不知道传入的 http 连接是否安全。启用此选项以信任代理发送的
Forwarded和X-Forwarded-Proto标头来确定连接是否安全。这对于某些功能(例如服务器端加密)是必需的。(如果您前面没有受信任的代理,切勿启用此设置,否则恶意用户将能够在任何请求中设置这些标头。)- 类型:
bool- 默认值:
false- 另请参阅:
rgw_crypt_require_ssl
日志设置
- rgw_log_nonexistent_bucket
启用 Ceph 对象网关记录对不存在存储桶的请求。
- 类型:
bool- 默认值:
false- 另请参阅:
- rgw_log_object_name
对象名称的日志格式。有关格式说明符的详细信息,请参阅 man 手册页 date。
- 类型:
str- 默认值:
%Y-%m-%d-%H-%i-%n- 另请参阅:
- rgw_log_object_name_utc
记录的对象名称是否包含 UTC 时间。如果为
false,则使用本地时间。- 类型:
bool- 默认值:
false- 另请参阅:
- rgw_usage_max_shards
使用量日志的最大碎片数。
- 类型:
int- 默认值:
32- 另请参阅:
- rgw_usage_max_user_shards
用于单个用户使用量日志的最大碎片数。
- 类型:
int- 默认值:
1- min:
1- 另请参阅:
- rgw_enable_ops_log
为每个成功的 Ceph 对象网关操作启用日志记录。
- 类型:
bool- 默认值:
false- 另请参阅:
rgw_log_nonexistent_bucket,rgw_log_object_name,rgw_ops_log_rados,rgw_ops_log_socket_path,rgw_ops_log_file_path
- rgw_enable_usage_log
启用使用量日志
- 类型:
bool- 默认值:
false- 另请参阅:
- rgw_ops_log_rados
操作日志是否应写入 Ceph 存储集群后端。
- 类型:
bool- 默认值:
false- 另请参阅:
rgw_enable_ops_log,rgw_log_object_name_utc,rgw_log_object_name
- rgw_ops_log_socket_path
用于写入操作日志的 Unix 域套接字。
- 类型:
str- 另请参阅:
- rgw_ops_log_data_backlog
写入 Unix 域套接字的操作日志的最大数据积压大小。
- 类型:
大小- 默认值:
5Mi- 另请参阅:
- rgw_usage_log_flush_threshold
在同步刷新之前,使用量日志中脏合并条目的数量。
- 类型:
int- 默认值:
1024- 另请参阅:
- rgw_usage_log_tick_interval
每隔
n秒刷新一次待处理的使用量日志数据。- 类型:
int- 默认值:
30- 另请参阅:
- rgw_log_http_headers
逗号分隔的 HTTP 标头列表,包含在操作日志条目中。标头名称不区分大小写,使用完整的标头名称,单词之间用下划线分隔。
- 类型:
str- example:
http_x_forwarded_for, http_x_special_k
Keystone 设置
- rgw_keystone_url
Keystone 服务器的 URL。
- 类型:
str
- rgw_keystone_admin_domain
使用 OpenStack Identity API v3 时具有管理员权限的 OpenStack 域名称。
- 类型:
str
- rgw_keystone_admin_project
使用 OpenStack Identity API v3 时具有管理员权限的 OpenStack 项目名称。如果未指定,将使用
rgw keystone admin tenant的值代替。- 类型:
str
- rgw_keystone_admin_token
Keystone 管理员令牌(共享密钥)。在 Ceph RGW 中,使用管理员令牌进行身份验证的优先级高于使用管理员凭据(
rgw_keystone_admin_user、rgw_keystone_admin_password、rgw_keystone_admin_tenant、rgw_keystone_admin_project、rgw_keystone_admin_domain)进行身份验证。Keystone 管理员令牌已被弃用,但可用于与旧环境集成。建议改为配置rgw_keystone_admin_token_path以避免暴露令牌。- 类型:
str
- rgw_keystone_admin_token_path
包含 Keystone 管理员令牌(共享密钥)的文件的路径。在 Ceph RadosGW 中,使用管理员令牌进行身份验证的优先级高于使用管理员凭据(
rgw_keystone_admin_user、rgw_keystone_admin_password、rgw_keystone_admin_tenant、rgw_keystone_admin_project、rgw_keystone_admin_domain)进行身份验证。Keystone 管理员令牌已被弃用,但可用于与旧环境集成。- 类型:
str
- rgw_keystone_admin_tenant
使用 OpenStack Identity API v2 时具有管理员权限的 OpenStack 租户名称(服务租户)。
- 类型:
str
- rgw_keystone_admin_user
使用 OpenStack Identity API v2 时用于 Keystone 身份验证的具有管理员权限的 OpenStack 用户名称(服务用户)。
- 类型:
str
- rgw_keystone_admin_password
使用 OpenStack Identity API v2 时 OpenStack 管理员用户的密码。建议改为配置
rgw_keystone_admin_password_path以避免暴露令牌。- 类型:
str
- rgw_keystone_admin_password_path
包含 OpenStack Identity API v2 时 OpenStack 管理员用户密码的文件的路径。
- 类型:
str
- rgw_keystone_accepted_roles
服务请求所需的角色。
- 类型:
str- 默认值:
Member, admin
- rgw_keystone_token_cache_size
每个 Keystone 令牌缓存中的最大条目数。
- 类型:
int- 默认值:
10000
- rgw_keystone_verify_ssl
在向 keystone 发出令牌请求时验证 SSL 证书。
- 类型:
bool- 默认值:
true
- rgw_keystone_service_token_enabled
服务令牌支持允许传入请求包含一个 X-Service-Token 标头,其中包含一个 Keystone 令牌,如果它具有可接受的角色,则允许在 X-Auth-Token 标头中使用过期的令牌。
- 类型:
bool- 默认值:
false- 另请参阅:
rgw_keystone_service_token_accepted_roles,rgw_keystone_expired_token_cache_expiration
- rgw_keystone_service_token_accepted_roles
给定的服务令牌的创建者必须具有其中一个角色才能被视为有效的服务用户。
- 类型:
str- 默认值:
admin- 另请参阅:
- rgw_keystone_expired_token_cache_expiration
当给定有效的服务令牌时,允许的过期令牌需要一个新的过期日期进行缓存。这是添加到当前时间,然后设置在已通过服务令牌验证的过期令牌上的秒数。
- 类型:
int- 默认值:
3600- 另请参阅:
服务器端加密设置
- rgw_crypt_s3_kms_backend
存储 SSE-KMS 加密密钥的位置。支持的 KMS 系统是 OpenStack Barbican(
barbican,默认值)和 HashiCorp Vault(vault)。- 类型:
str- 默认值:
barbican- 有效选项:
barbicanvaulttestingkmip
Barbican 设置
- rgw_barbican_url
Barbican 服务器的 URL。
- 类型:
str
- rgw_keystone_barbican_user
- rgw_keystone_barbican_tenant
使用 OpenStack Identity API v2 时与 Barbican 用户关联的 OpenStack 租户名称。
- 类型:
str
HashiCorp Vault 设置
- rgw_crypt_vault_auth
要使用的身份验证方法类型。目前唯一支持的方法是
token。- 类型:
str- 默认值:
token- 有效选项:
tokenagent
- 另请参阅:
rgw_crypt_s3_kms_backend,rgw_crypt_vault_addr,rgw_crypt_vault_token_file
- rgw_crypt_vault_token_file
如果身份验证方法是 'token',则提供令牌文件的路径,出于安全原因,该文件应仅可由 Rados Gateway 读取。
- 类型:
str- 另请参阅:
rgw_crypt_s3_kms_backend,rgw_crypt_vault_auth,rgw_crypt_vault_addr
- rgw_crypt_vault_addr
Vault 服务器基本地址,例如
http://vaultserver:8200。- 类型:
str- 另请参阅:
rgw_crypt_s3_kms_backend,rgw_crypt_vault_auth,rgw_crypt_vault_prefix
- rgw_crypt_vault_prefix
Vault 密钥 URL 前缀,可用于将访问限制到密钥空间的特定子集,例如
/v1/secret/data。- 类型:
str- 另请参阅:
rgw_crypt_s3_kms_backend,rgw_crypt_vault_addr,rgw_crypt_vault_auth
- rgw_crypt_vault_secret_engine
用于检索加密密钥的 Vault Secret Engine:在 kv-v2、transit 之间选择。
- 类型:
str- 默认值:
transit- 另请参阅:
rgw_crypt_s3_kms_backend,rgw_crypt_vault_auth,rgw_crypt_vault_addr
- rgw_crypt_vault_namespace
如果设置,Vault Namespace 为同一 Vault Enterprise 实例上的团队和个人提供租户隔离,例如
acme/tenant1- 类型:
str- 另请参阅:
rgw_crypt_s3_kms_backend,rgw_crypt_vault_auth,rgw_crypt_vault_addr
SSE-S3 设置
- rgw_crypt_sse_s3_backend
存储 SSE-S3 加密密钥的位置。唯一有效的选择是 HashiCorp Vault(
vault)。- 类型:
str- 默认值:
vault- 有效选项:
vault
- rgw_crypt_sse_s3_vault_secret_engine
用于检索加密密钥的 Vault Secret Engine。这里唯一有效的选择是 transit。
- 类型:
str- 默认值:
transit- 另请参阅:
rgw_crypt_sse_s3_backend,rgw_crypt_sse_s3_vault_auth,rgw_crypt_sse_s3_vault_addr
- rgw_crypt_sse_s3_key_template
这是每个存储桶 sse-s3 密钥的模板。此字符串可能包含
%bucket_id,它将扩展为存储桶标记,即分配给该存储桶的唯一 uuid。它可能包含%owner_id,它将扩展为所有者的 ID。任何其他使用 % 的方式都是保留的,不应使用。如果模板包含%bucket_id,当存储桶被移除时,关联的存储桶密钥将自动移除。- 类型:
str- 默认值:
%bucket_id- 另请参阅:
rgw_crypt_sse_s3_backend,rgw_crypt_sse_s3_vault_auth,rgw_crypt_sse_s3_vault_addr
- rgw_crypt_sse_s3_vault_auth
要使用的身份验证方法类型。目前唯一支持的方法是
token。- 类型:
str- 默认值:
token- 有效选项:
tokenagent
- 另请参阅:
rgw_crypt_sse_s3_backend,rgw_crypt_sse_s3_vault_addr,rgw_crypt_sse_s3_vault_token_file
- rgw_crypt_sse_s3_vault_token_file
如果身份验证方法是 'token',则提供令牌文件的路径,出于安全原因,该文件应仅可由 Rados Gateway 读取。
- rgw_crypt_sse_s3_vault_addr
Vault 服务器基本地址,例如
http://vaultserver:8200。
- rgw_crypt_sse_s3_vault_prefix
Vault 密钥 URL 前缀,可用于将访问限制到密钥空间的特定子集,例如
/v1/secret/data。
- rgw_crypt_sse_s3_vault_namespace
如果设置,Vault Namespace 为同一 Vault Enterprise 实例上的团队和个人提供租户隔离,例如
acme/tenant1
- rgw_crypt_sse_s3_vault_verify_ssl
RGW 是否应验证 vault 服务器 SSL 证书。
- 类型:
bool- 默认值:
true
- rgw_crypt_sse_s3_vault_ssl_cacert
用于访问 vault 服务器的自定义 ca 证书路径。
- 类型:
str
- rgw_crypt_sse_s3_vault_ssl_clientcert
用于访问 vault 服务器的自定义客户端证书路径。
- 类型:
str
- rgw_crypt_sse_s3_vault_ssl_clientkey
客户端证书所需的私钥路径。
- 类型:
str
QoS Settings
版本 Nautilus 新增。
The older and now non-default civetweb frontend has a threading model that uses a thread per connection and hence is automatically throttled by rgw_thread_pool_size when accepting connections. The newer and default beast frontend is not limited by the thread pool size when it comes to accepting new connections, so a scheduler abstraction was introduced in the Nautilus release to support additional methods of scheduling requests.
Currently the scheduler defaults to a throttler that limits active connections to a configured limit. QoS rate limiting based on mClock is currently experimental phase and not recommended for production. The current implementation of the dmclock_client op queue divides RGW ops into admin, auth (swift auth, sts) metadata, and data requests.
- rgw_max_concurrent_requests
Maximum number of concurrent HTTP requests that the beast frontend will process. Tuning this can help to limit memory usage under heavy load.
- 类型:
int- 默认值:
1024- 另请参阅:
- rgw_scheduler_type
The RGW scheduler to use. Valid values are
throttleranddmclock. Currently defaults tothrottlerwhich throttles Beast frontend requests.dmclockis experimental and requiresdmclockto be included in theexperimental_feature_enabledconfiguration option.The options below tune the experimental dmclock scheduler. For additional reading on dmclock, see QoS Based on mClock. op_class for the flags below is one of
admin,auth,metadata, ordata.- 类型:
str- 默认值:
throttler
- rgw_dmclock_auth_res
mclock reservation for object data requests
- 类型:
float- 默认值:
200.0- 另请参阅:
- rgw_dmclock_auth_wgt
mclock weight for object data requests
- 类型:
float- 默认值:
100.0- 另请参阅:
- rgw_dmclock_auth_lim
mclock limit for object data requests
- 类型:
float- 默认值:
0.0- 另请参阅:
- rgw_dmclock_admin_res
mclock reservation for admin requests
- 类型:
float- 默认值:
100.0- 另请参阅:
- rgw_dmclock_admin_wgt
mclock weight for admin requests
- 类型:
float- 默认值:
100.0- 另请参阅:
- rgw_dmclock_admin_lim
mclock limit for admin requests
- 类型:
float- 默认值:
0.0- 另请参阅:
- rgw_dmclock_data_res
mclock reservation for object data requests
- 类型:
float- 默认值:
500.0- 另请参阅:
- rgw_dmclock_data_wgt
mclock weight for object data requests
- 类型:
float- 默认值:
500.0- 另请参阅:
- rgw_dmclock_data_lim
mclock limit for object data requests
- 类型:
float- 默认值:
0.0- 另请参阅:
- rgw_dmclock_metadata_res
mclock reservation for metadata requests
- 类型:
float- 默认值:
500.0- 另请参阅:
- rgw_dmclock_metadata_wgt
mclock weight for metadata requests
- 类型:
float- 默认值:
500.0- 另请参阅:
- rgw_dmclock_metadata_lim
mclock limit for metadata requests
- 类型:
float- 默认值:
0.0- 另请参阅:
D4N Settings
D4N is a caching architecture that utilizes Redis to speed up S3 object storage operations by establishing shared databases among Ceph Object Gateway (RGW) daemons.
The D4N architecture can only function on one Redis instance at a time. The address is configurable and can be changed by accessing the parameters below.
- rgw_d4n_address
The current D4N implementation supports one Redis node which the D4N directory, policy, and overall filter communicate with. This default value is also the address that a Redis server with no additional configuration will use.
- 类型:
str- 默认值:
127.0.0.1:6379
- rgw_d4n_l1_datacache_persistent_path
One cache backend option for D4N is the local SSD, which uses this path to write and read object data. This is the default cache backend chosen by the D4N filter. Only the SSD cache backend uses this path for object data storage since the RedisDriver uses a Redis server instead and there are no additional cache backend implementations available at the moment.
- 类型:
str- 默认值:
/tmp/rgw_d4n_datacache/
- rgw_d4n_l1_datacache_disk_reserve
The local SSD cache uses this option to determine how much disk space to reserve. The cache can grow until disk usage reaches (total disk space - reserved space).
- 类型:
大小- 默认值:
1Gi
- rgw_d4n_l1_evict_cache_on_start
The local SSD cache uses this option to clear the contents of the path supplied by the rgw_d4n_l1_datacache_persistent_path config option on start. If false, the path’s contents will be retained.
- 类型:
bool- 默认值:
true
- rgw_d4n_l1_fadvise
For example, to bypass the page-cache - POSIX_FADV_DONTNEED=4
- 类型:
int- 默认值:
4
- rgw_d4n_libaio_aio_threads
This option is used by the SSD cache backend during initialization to set the maximum number of worker threads libaio may use. It does not apply to the Redis cache backend.
- 类型:
int- 默认值:
20- 另请参阅:
- rgw_d4n_libaio_aio_num
This option is used by the SSD cache backend during initialization to set the maximum number of simultaneous I/O requests that libaio can expect to enqueue. It does not apply to the Redis cache backend.
- 类型:
int- 默认值:
64- 另请参阅:
- rgw_lfuda_sync_frequency
By default, the D4N cache uses the Least Frequently Used with Dynamic Aging (LFUDA) cache replacement policy. This class globally stores values that are used by the policy’s algorithm. However, strong consistency for these values is not necessary and adds additional overhead to support. As a result, a thread periodically retrieves these global values and posts updates when certain conditions are satisfied. This Redis thread completes this logic in a loop that is called once every interval, with the interval being set by this option.
- 类型:
int- 默认值:
60
- rgw_d4n_l1_datacache_address
This is the address used to configure the Redis cache backend connection. The default value is the same address used by Redis without any additional configuration. The SSD cache does not use this option.
- 类型:
str- 默认值:
127.0.0.1:6379
Topic Persistency Settings
Topic persistency will repeatedly push notifications until they succeed. For more information, see Bucket Notifications.
The default behavior is to push indefinitely and as frequently as possible. With these settings you can control how long and how often to retry an unsuccessful notification by configuring the maximum retention time and/or or maximum number of retries. The interval between push retries can be configured via the sleep duration parameter.
All of these options default to the value 0, which means that persistent retention is indefinite, and notifications are retried as frequently as possible.
- rgw_topic_persistency_time_to_live
The rgw retention of persistent topics by time (seconds)
- 类型:
uint- 默认值:
0
- rgw_topic_persistency_max_retries
The maximum number sending a persistent notification would be tried. Note that the value of one would mean no retries, and the value of zero would mean that the notification would be tried indefinitely
- 类型:
uint- 默认值:
0
- rgw_topic_persistency_sleep_duration
The minimum time (in seconds) between two tries of the same persistent notification. note that the actual time between the tries may be longer
- 类型:
uint- 默认值:
0
Cloud Restore Settings
Cloud Restore feature currently enables the restoration of objects transitioned to S3-compatible cloud services into Ceph Object Gateway (RGW). The restore requests are asynchronously processed by Restore worker thread in the background.
- rgw_restore_max_objs
Number of RADOS objects to use for storing restore entries which are in progress. This affects concurrency of restore maintenance, as shards can be processed in parallel.
- 类型:
int- 默认值:
32
- rgw_restore_lock_max_time
- 类型:
int- 默认值:
90
- rgw_restore_processor_period
The cycle time for restore state processing.
- 类型:
int- 默认值:
15 minutes
These values can be tuned based upon your specific workload to further increase the aggressiveness of restore processing.