Chapter 4. Configuration Reference
Chapter 4. Configuration Reference The following settings may be added to the Ceph configuration file, that is, usually ceph.conf , under the [client.rgw.<instance_name>] section. The settings may contain default values. If you do not specify each setting in the Ceph configuration file, the default value will be set automatically. Configuration variables set under the [client.rgw.<instance_name>] section will not apply to rgw or radosgw-admin commands without an instance_name specified in the command. Therefore, variables meant to be applied to all Ceph Object Gateway instances or all radosgw-admin commands can be put into the [global] or the [client] section to avoid specifying instance_name . 4.1. General Settings Name Description Type Default rgw_data Sets the location of the data files for Ceph Object Gateway. String /var/lib/ceph/radosgw/USDcluster-USDid rgw_enable_apis Enables the specified APIs. String s3, s3website, swift, swift_auth, admin, sts, iam, pubsub rgw_cache_enabled Whether the Ceph Object Gateway cache is enabled. Boolean true rgw_cache_lru_size The number of entries in the Ceph Object Gateway cache. Integer 10000 rgw_socket_path The socket path for the domain socket. FastCgiExternalServer uses this socket. If you do not specify a socket path, Ceph Object Gateway will not run as an external server. The path you specify here must be the same as the path specified in the rgw.conf file. String N/A rgw_host The host for the Ceph Object Gateway instance. Can be an IP address or a hostname. String 0.0.0.0 rgw_port Port the instance listens for requests. If not specified, Ceph Object Gateway runs external FastCGI. String None rgw_dns_name The DNS name of the served domain. See also the hostnames setting within zone groups. String None rgw_script_uri The alternative value for the SCRIPT_URI if not set in the request. String None rgw_request_uri The alternative value for the REQUEST_URI if not set in the request. String None rgw_print_continue Enable 100-continue if it is operational. Boolean true rgw_remote_addr_param The remote address parameter. For example, the HTTP field containing the remote address, or the X-Forwarded-For address if a reverse proxy is operational. String REMOTE_ADDR rgw_op_thread_timeout The timeout in seconds for open threads. Integer 600 rgw_op_thread_suicide_timeout The time timeout in seconds before a Ceph Object Gateway process dies. Disabled if set to 0 . Integer 0 rgw_thread_pool_size The size of the thread pool. Integer 512 threads. rgw_num_control_oids The number of notification objects used for cache synchronization between different rgw instances. Integer 8 rgw_init_timeout The number of seconds before Ceph Object Gateway gives up on initialization. Integer 30 rgw_mime_types_file The path and location of the MIME types. Used for Swift auto-detection of object types. String /etc/mime.types rgw_gc_max_objs The maximum number of objects that may be handled by garbage collection in one garbage collection processing cycle. Integer 32 rgw_gc_obj_min_wait The minimum wait time before the object may be removed and handled by garbage collection processing. Integer 2 * 3600 rgw_gc_processor_max_time The maximum time between the beginning of two consecutive garbage collection processing cycles. Integer 3600 rgw_gc_processor_period The cycle time for garbage collection processing. Integer 3600 rgw_s3 success_create_obj_status The alternate success status response for create-obj . Integer 0 rgw_resolve_cname Whether rgw should use DNS CNAME record of the request hostname field (if hostname is not equal to rgw_dns name ). Boolean false rgw_object_stripe_size The size of an object stripe for Ceph Object Gateway objects. Integer 4 << 20 rgw_extended_http_attrs Add new set of attributes that could be set on an object. These extra attributes can be set through HTTP header fields when putting the objects. If set, these attributes will return as HTTP fields when doing GET/HEAD on the object. String None. For example: "content_foo, content_bar" rgw_exit_timeout_secs Number of seconds to wait for a process before exiting unconditionally. Integer 120 rgw_get_obj_window_size The window size in bytes for a single object request. Integer 16 << 20 rgw_get_obj_max_req_size The maximum request size of a single get operation sent to the Ceph Storage Cluster. Integer 4 << 20 rgw_relaxed_s3_bucket_names Enables relaxed S3 bucket names rules for zone group buckets. Boolean false rgw_list buckets_max_chunk The maximum number of buckets to retrieve in a single operation when listing user buckets. Integer 1000 rgw_override_bucket_index_max_shards The number of shards for the bucket index object. A value of 0 indicates there is no sharding. Red Hat does not recommend to set a value too large (for example, 1000 ) as it increases the cost for bucket listing. This variable should be set in the [client] or the [global] section so it is automatically applied to radosgw-admin commands. Integer 0 rgw_curl_wait_timeout_ms The timeout in milliseconds for certain curl calls. Integer 1000 rgw_copy_obj_progress Enables output of object progress during long copy operations. Boolean true rgw_copy_obj_progress_every_bytes The minimum bytes between copy progress output. Integer 1024 * 1024 rgw_admin_entry The entry point for an admin request URL. String admin rgw_content_length_compat Enable compatability handling of FCGI requests with both CONTENT_LENGTH AND HTTP_CONTENT_LENGTH set. Boolean false rgw_bucket_default_quota_max_objects The default maximum number of objects per bucket. This value is set on new users if no other quota is specified. It has no effect on existing users. This variable should be set in the [client] or the [global] section so it is automatically applied to radosgw-admin commands. Integer -1 rgw_bucket_quota_ttl The amount of time in seconds cached quota information is trusted. After this timeout, the quota information will be re-fetched from the cluster. Integer 600 rgw_user_quota_bucket_sync_interval The amount of time in seconds bucket quota information is accumulated before syncing to the cluster. During this time, other RGW instances will not see the changes in bucket quota stats from operations on this instance. Integer 180 rgw_user_quota_sync_interval The amount of time in seconds user quota information is accumulated before syncing to the cluster. During this time, other RGW instances will not see the changes in user quota stats from operations on this instance. Integer 3600 * 24 log_meta A zone parameter to determine whether or not the gateway logs the metadata operations. Boolean false log_data A zone parameter to determine whether or not the gateway logs the data operations. Boolean false sync_from_all A radosgw-admin command to set or unset whether zone syncs from all zonegroup peers. Boolean false 4.2. About Pools Ceph zones map to a series of Ceph Storage Cluster pools. Manually Created Pools vs. Generated Pools If the user key for the Ceph Object Gateway contains write capabilities, the gateway has the ability to create pools automatically. This is convenient for getting started. However, the Ceph Object Storage Cluster uses the placement group default values unless they were set in the Ceph configuration file. Additionally, Ceph will use the default CRUSH hierarchy. These settings are NOT ideal for production systems. To set up production systems, see the Ceph Object Gateway for Production guide for Red Hat Ceph Storage 4. For storage strategies, see the Developing Storage Strategies section in the Ceph Object Gateway for Production guide. The default pools for the Ceph Object Gateway's default zone include: .rgw.root .default.rgw.control .default.rgw.meta .default.rgw.log .default.rgw.buckets.index .default.rgw.buckets.data .default.rgw.buckets.non-ec The Ceph Object Gateway creates pools on a per zone basis. If you create the pools manually, prepend the zone name. The system pools store objects related to system control, logging, user information, etc. By convention, these pool names have the zone name prepended to the pool name. .<zone-name>.rgw.control : The control pool. .<zone-name>.log : The log pool contains logs of all bucket/container and object actions such as create, read, update and delete. .<zone-name>.rgw.buckets.index : This pool stores index of the buckes. .<zone-name>.rgw.buckets.data : This pool stores data of the buckets. .<zone-name>.rgw.meta : The metadata pool stores user_keys and other critical metadata. .<zone-name>.meta:users.uid : The user ID pool contains a map of unique user IDs. .<zone-name>.meta:users.keys : The keys pool contains access keys and secret keys for each user ID. .<zone-name>.meta:users.email : The email pool contains email addresses associated to a user ID. .<zone-name>.meta:users.swift : The Swift pool contains the Swift subuser information for a user ID. Ceph Object Gateways store data for the bucket index ( index_pool ) and bucket data ( data_pool ) in placement pools. These may overlap; that is, you may use the same pool for the index and the data. The index pool for default placement is {zone-name}.rgw.buckets.index and for the data pool for default placement is {zone-name}.rgw.buckets . Name Description Type Default rgw_zonegroup_root_pool The pool for storing all zone group-specific information. String .rgw.root rgw_zone_root_pool The pool for storing zone-specific information. String .rgw.root 4.3. Lifecycle Settings As a storage administrator, you can set various bucket lifecycle options for a Ceph Object Gateway. These options contain default values. If you do not specify each option, then the default value is set automatically. To set specific values for these options, update the configuration database by using the ceph config set client.rgw OPTION VALUE command. Name Description Type Default rgw_lc_debug_interval For developer use only to debug lifecycle rules by scaling expiration rules from days into an interval in seconds. Red Hat recommends that this option not be used in a production cluster. Integer -1 rgw_lc_lock_max_time The timeout value used internally by the Ceph Object Gateway. Integer 90 rgw_lc_max_objs Controls the sharding of the RADOS Gateway internal lifecycle work queues, and should only be set as part of a deliberate resharding workflow. Red Hat recommends not changing this setting after the setup of your cluster, without first contacting Red Hat support. Integer 32 rgw_lc_max_rules The number of lifecycle rules to include in one, per bucket, lifecycle configuration document. The Amazon Web Service (AWS) limit is 1000 rules. Integer 1000 rgw_lc_max_worker The number of lifecycle worker threads to run in parallel, processing bucket and index shards simultaneously. Red Hat does not recommend setting a value larger than 10 without contacting Red Hat support. Integer 3 rgw_lc_max_wp_worker The number of buckets that each lifecycle worker thread can process in parallel. Red Hat does not recommend setting a value larger than 10 without contacting Red Hat Support. Integer 3 rgw_lc_thread_delay A delay, in milliseconds, that can be injected into shard processing at several points. The default value is 0. Setting a value from 10 to 100 ms would reduce CPU utilization on RADOS Gateway instances and reduce the proportion of workload capacity of lifecycle threads relative to ingest if saturation is being observed. Integer 0 4.4. Swift Settings Name Description Type Default rgw_enforce_swift_acls Enforces the Swift Access Control List (ACL) settings. Boolean true rgw_swift_token_expiration The time in seconds for expiring a Swift token. Integer 24 * 3600 rgw_swift_url The URL for the Ceph Object Gateway Swift API. String None rgw_swift_url_prefix The URL prefix for the Swift API (e.g., http://fqdn.com/swift ). swift N/A rgw_swift_auth_url Default URL for verifying v1 auth tokens (if not using internal Swift auth). String None rgw_swift_auth_entry The entry point for a Swift auth URL. String auth 4.5. Logging Settings Name Description Type Default rgw_log_nonexistent_bucket Enables Ceph Object Gateway to log a request for a non-existent bucket. Boolean false rgw_log_object_name The logging format for an object name. See manpage date for details about format specifiers. Date %Y-%m-%d-%H-%i-%n rgw_log_object_name_utc Whether a logged object name includes a UTC time. If false , it uses the local time. Boolean false rgw_usage_max_shards The maximum number of shards for usage logging. Integer 32 rgw_usage_max_user_shards The maximum number of shards used for a single user's usage logging. Integer 1 rgw_enable_ops_log Enable logging for each successful Ceph Object Gateway operation. Boolean false rgw_enable_usage_log Enable the usage log. Boolean false rgw_ops_log_rados Whether the operations log should be written to the Ceph Storage Cluster backend. Boolean true rgw_ops_log_socket_path The Unix domain socket for writing operations logs. String None rgw_ops_log_data-backlog The maximum data backlog data size for operations logs written to a Unix domain socket. Integer 5 << 20 rgw_usage_log_flush_threshold The number of dirty merged entries in the usage log before flushing synchronously. Integer 1024 rgw_usage_log_tick_interval Flush pending usage log data every n seconds. Integer 30 rgw_intent_log_object_name The logging format for the intent log object name. See manpage date for details about format specifiers. Date %Y-%m-%d-%i-%n rgw_intent_log_object_name_utc Whether the intent log object name includes a UTC time. If false , it uses the local time. Boolean false rgw_data_log_window The data log entries window in seconds. Integer 30 rgw_data_log_changes_size The number of in-memory entries to hold for the data changes log. Integer 1000 rgw_data_log_num_shards The number of shards (objects) on which to keep the data changes log. Integer 128 rgw_data_log_obj_prefix The object name prefix for the data log. String data_log rgw_replica_log_obj_prefix The object name prefix for the replica log. String replica log rgw_md_log_max_shards The maximum number of shards for the metadata log. Integer 64 4.6. Keystone Settings Name Description Type Default rgw_keystone_url The URL for the Keystone server. String None rgw_keystone_admin_token The Keystone admin token (shared secret). String None rgw_keystone_accepted_roles The roles requires to serve requests. String Member, admin rgw_keystone_token_cache_size The maximum number of entries in each Keystone token cache. Integer 10000 rgw_keystone_revocation_interval The number of seconds between token revocation checks. Integer 15 * 60 4.7. LDAP Settings Name Description Type Example rgw_ldap_uri A space-separated list of LDAP servers in URI format. String ldaps://<ldap.your.domain> rgw_ldap_searchdn The LDAP search domain name, also known as base domain. String cn=users,cn=accounts,dc=example,dc=com rgw_ldap_binddn The gateway will bind with this LDAP entry (user match). String uid=admin,cn=users,dc=example,dc=com rgw_ldap_secret A file containing credentials for rgw_ldap_binddn String /etc/openldap/secret rgw_ldap_dnattr LDAP attribute containing Ceph object gateway user names (to form binddns). String uid