Provided by: swift-object_2.34.0-0ubuntu1_all
NAME
object-server.conf - configuration file for the OpenStack Swift object server
SYNOPSIS
object-server.conf
DESCRIPTION
This is the configuration file used by the object server and other object background services, such as; replicator, reconstructor, updater, auditor, and expirer. The configuration file follows the python-pastedeploy syntax. The file is divided into sections, which are enclosed by square brackets. Each section will contain a certain number of key/value parameters which are described later. Any line that begins with a '#' symbol is ignored. You can find more information about python-pastedeploy configuration format at https://docs.pylonsproject.org/projects/pastedeploy/en/latest/#config-format
GLOBAL SECTION
This is indicated by section named [DEFAULT]. Below are the parameters that are acceptable within this section. bind_ip IP address the object server should bind to. The default is 0.0.0.0 which will make it bind to all available addresses. bind_port TCP port the object server should bind to. The default is 6200. keep_idle Value to set for socket TCP_KEEPIDLE. The default value is 600. bind_timeout Timeout to bind socket. The default is 30. backlog TCP backlog. Maximum number of allowed pending connections. The default value is 4096. workers The number of pre-forked processes that will accept connections. Zero means no fork. The default is auto which will make the server try to match the number of effective cpu cores if python multiprocessing is available (included with most python distributions >= 2.6) or fallback to one. It's worth noting that individual workers will use many eventlet co-routines to service multiple concurrent requests. max_clients Maximum number of clients one worker can process simultaneously (it will actually accept(2) N + 1). Setting this to one (1) will only handle one request at a time, without accepting another request concurrently. The default is 1024. user The system user that the object server will run as. The default is swift. swift_dir Swift configuration directory. The default is /etc/swift. devices Parent directory of where devices are mounted. Default is /srv/node. mount_check Whether or not check if the devices are mounted to prevent accidentally writing to the root device. The default is set to true. disable_fallocate Disable pre-allocate disk space for a file. The default is false. expiring_objects_container_divisor The default is 86400. expiring_objects_account_name Account name used for legacy style expirer task queue. The default is 'expiring_objects'. servers_per_port Make object-server run this many worker processes per unique port of "local" ring devices across all storage policies. The default value of 0 disables this feature. log_name Label used when logging. The default is swift. log_facility Syslog log facility. The default is LOG_LOCAL0. log_level Logging level. The default is INFO. log_address Logging address. The default is /dev/log. log_max_line_length The following caps the length of log lines to the value given; no limit if set to 0, the default. log_custom_handlers Comma separated list of functions to call to setup custom log handlers. functions get passed: conf, name, log_to_console, log_route, fmt, logger, adapted_logger. The default is empty. log_udp_host If set, log_udp_host will override log_address. log_udp_port UDP log port, the default is 514. log_statsd_host StatsD server. IPv4/IPv6 addresses and hostnames are supported. If a hostname resolves to an IPv4 and IPv6 address, the IPv4 address will be used. log_statsd_port The default is 8125. log_statsd_default_sample_rate The default is 1. log_statsd_sample_rate_factor The default is 1. log_statsd_metric_prefix The default is empty. eventlet_debug Debug mode for eventlet library. The default is false. fallocate_reserve You can set fallocate_reserve to the number of bytes or percentage of disk space you'd like fallocate to reserve, whether there is space for the given file size or not. Percentage will be used if the value ends with a '%'. The default is 1%. node_timeout Request timeout to external services. The default is 3 seconds. conn_timeout Connection timeout to external services. The default is 0.5 seconds. container_update_timeout Time to wait while sending a container update on object update. The default is 1 second. client_timeout Time to wait while receiving each chunk of data from a client or another backend node. The default is 60. network_chunk_size The default is 65536. disk_chunk_size The default is 65536. reclaim_age Time elapsed in seconds before an object can be reclaimed. The default is 604800 seconds. commit_window Time in seconds during which a newly written non-durable data file will not be reclaimed. The value should be greater than zero and much less than reclaim_age. The default is 60.0 seconds. nice_priority Modify scheduling priority of server processes. Niceness values range from -20 (most favorable to the process) to 19 (least favorable to the process). The default does not modify priority. ionice_class Modify I/O scheduling class of server processes. I/O niceness class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and IOPRIO_CLASS_IDLE (idle). The default does not modify class and priority. Work only with ionice_priority. ionice_priority Modify I/O scheduling priority of server processes. I/O niceness priority is a number which goes from 0 to 7. The higher the value, the lower the I/O priority of the process. Work only with ionice_class. Ignored if IOPRIO_CLASS_IDLE is set.
PIPELINE SECTION
This is indicated by section name [pipeline:main]. Below are the parameters that are acceptable within this section. pipeline It is used when you need to apply a number of filters. It is a list of filters ended by an application. The normal pipeline is "healthcheck recon object-server".
APP SECTION
This is indicated by section name [app:object-server]. Below are the parameters that are acceptable within this section. use Entry point for paste.deploy for the object server. This is the reference to the installed python egg. This is normally egg:swift#object. set log_name Label used when logging. The default is object-server. set log_facility Syslog log facility. The default is LOG_LOCAL0. set log_level Logging level. The default is INFO. set log_requests Enables request logging. The default is True. set log_address Logging address. The default is /dev/log. max_upload_time The default is 86400. slow The default is 0. keep_cache_size Objects smaller than this are not evicted from the buffercache once read. The default is 5242880. keep_cache_private If true, objects for authenticated GET requests may be kept in buffer cache if small enough. The default is false. mb_per_sync On PUTs, sync data every n MB. The default is 512. allowed_headers Comma separated list of headers that can be set in metadata on an object. This list is in addition to X-Object-Meta-* headers and cannot include Content-Type, etag, Content-Length, or deleted. The default is 'Content-Disposition, Content- Encoding, X-Delete-At, X-Object-Manifest, X-Static-Large-Object, Cache-Control, Content-Language, Expires, X-Robots-Tag'. replication_server Configure parameter for creating specific server To handle all verbs, including replication verbs, do not specify "replication_server" (this is the default). To only handle replication, set to a True value (e.g. "True" or "1"). To handle only non-replication verbs, set to "False". Unless you have a separate replication network, you should not specify any value for "replication_server". replication_concurrency Set to restrict the number of concurrent incoming SSYNC requests Set to 0 for unlimited (the default is 4). Note that SSYNC requests are only used by the object reconstructor or the object replicator when configured to use ssync. replication_concurrency_per_device Set to restrict the number of concurrent incoming SSYNC requests per device; set to 0 for unlimited requests per devices. This can help control I/O to each device. This does not override replication_concurrency described above, so you may need to adjust both parameters depending on your hardware or network capacity. Defaults to 1. replication_lock_timeout Number of seconds to wait for an existing replication device lock before giving up. The default is 15. replication_failure_threshold replication_failure_ratio These two settings control when the SSYNC subrequest handler will abort an incoming SSYNC attempt. An abort will occur if there are at least threshold number of failures and the value of failures / successes exceeds the ratio. The defaults of 100 and 1.0 means that at least 100 failures have to occur and there have to be more failures than successes for an abort to occur. splice Use splice() for zero-copy object GETs. This requires Linux kernel version 3.0 or greater. If you set "splice = yes" but the kernel does not support it, error messages will appear in the object server logs at startup, but your object servers should continue to function. The default is false. node_timeout Request timeout to external services. The default is 3 seconds. conn_timeout Connection timeout to external services. The default is 0.5 seconds. container_update_timeout Time to wait while sending a container update on object update. The default is 1 second. nice_priority Modify scheduling priority of server processes. Niceness values range from -20 (most favorable to the process) to 19 (least favorable to the process). The default does not modify priority. ionice_class Modify I/O scheduling class of server processes. I/O niceness class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and IOPRIO_CLASS_IDLE (idle). The default does not modify class and priority. Work only with ionice_priority. ionice_priority Modify I/O scheduling priority of server processes. I/O niceness priority is a number which goes from 0 to 7. The higher the value, the lower the I/O priority of the process. Work only with ionice_class. Ignored if IOPRIO_CLASS_IDLE is set.
FILTER SECTION
Any section that has its name prefixed by "filter:" indicates a filter section. Filters are used to specify configuration parameters for specific swift middlewares. Below are the filters available and respective acceptable parameters. [filter:healthcheck] use Entry point for paste.deploy for the healthcheck middleware. This is the reference to the installed python egg. This is normally egg:swift#healthcheck. disable_path An optional filesystem path which, if present, will cause the healthcheck URL to return "503 Service Unavailable" with a body of "DISABLED BY FILE". [filter:recon] use Entry point for paste.deploy for the recon middleware. This is the reference to the installed python egg. This is normally egg:swift#recon. recon_cache_path The recon_cache_path simply sets the directory where stats for a few items will be stored. Depending on the method of deployment you may need to create this directory manually and ensure that swift has read/write. The default is /var/cache/swift. recon_lock_path The default is /var/lock. [filter:xprofile] use Entry point for paste.deploy for the xprofile middleware. This is the reference to the installed python egg. This is normally egg:swift#xprofile. profile_module This option enable you to switch profilers which should inherit from python standard profiler. Currently the supported value can be 'cProfile', 'eventlet.green.profile' etc. log_filename_prefix This prefix will be used to combine process ID and timestamp to name the profile data file. Make sure the executing user has permission to write into this path (missing path segments will be created, if necessary). If you enable profiling in more than one type of daemon, you must override it with an unique value like, the default is /var/log/swift/profile/account.profile. dump_interval The profile data will be dumped to local disk based on above naming rule in this interval. The default is 5.0. dump_timestamp Be careful, this option will enable profiler to dump data into the file with time stamp which means there will be lots of files piled up in the directory. The default is false path This is the path of the URL to access the mini web UI. The default is __profile__. flush_at_shutdown Clear the data when the wsgi server shutdown. The default is false. unwind Unwind the iterator of applications. Default is false.
ADDITIONAL SECTIONS
The following sections are used by other swift-object services, such as replicator, updater, auditor. [object-replicator] log_name Label used when logging. The default is object-replicator. log_facility Syslog log facility. The default is LOG_LOCAL0. log_level Logging level. The default is INFO. log_address Logging address. The default is /dev/log. daemonize Whether or not to run replication as a daemon. The default is yes. run_pause [deprecated] Time in seconds to wait between replication passes. The default is 30. interval Time in seconds to wait between replication passes. The default is 30. concurrency Number of replication workers to spawn. The default is 1. stats_interval Interval in seconds between logging replication statistics. The default is 300. sync_method The sync method to use; default is rsync but you can use ssync to try the EXPERIMENTAL all-swift-code-no-rsync-callouts method. Once ssync is verified as having performance comparable to, or better than, rsync, we plan to deprecate rsync so we can move on with more features for replication. rsync_timeout Max duration of a partition rsync. The default is 900 seconds. rsync_io_timeout Passed to rsync for I/O OP timeout. The default is 30 seconds. rsync_compress Allow rsync to compress data which is transmitted to destination node during sync. However, this is applicable only when destination node is in a different region than the local one. NOTE: Objects that are already compressed (for example: .tar.gz, .mp3) might slow down the syncing process. The default is false. rsync_module Format of the rsync module where the replicator will send data. See etc/rsyncd.conf-sample for some usage examples. The default is empty. node_timeout Request timeout to external services. The default is 10 seconds. rsync_bwlimit Passed to rsync for bandwidth limit in kB/s. The default is 0 (unlimited). http_timeout Max duration of an HTTP request. The default is 60 seconds. lockup_timeout Attempts to kill all workers if nothing replicates for lockup_timeout seconds. The default is 1800 seconds. ring_check_interval The default is 15. rsync_error_log_line_length Limits how long rsync error log lines are. 0 (default) means to log the entire line. recon_cache_path The recon_cache_path simply sets the directory where stats for a few items will be stored. Depending on the method of deployment you may need to create this directory manually and ensure that swift has read/write.The default is /var/cache/swift. handoffs_first The flag to replicate handoffs prior to canonical partitions. It allows one to force syncing and deleting handoffs quickly. If set to a True value(e.g. "True" or "1"), partitions that are not supposed to be on the node will be replicated first. The default is false. handoff_delete The number of replicas which are ensured in swift. If the number less than the number of replicas is set, object-replicator could delete local handoffs even if all replicas are not ensured in the cluster. Object-replicator would remove local handoff partition directories after syncing partition when the number of successful responses is greater than or equal to this number. By default(auto), handoff partitions will be removed when it has successfully replicated to all the canonical nodes. The handoffs_first and handoff_delete are options for a special case such as disk full in the cluster. These two options SHOULD NOT BE CHANGED, except for such an extreme situations. (e.g. disks filled up or are about to fill up. Anyway, DO NOT let your drives fill up). nice_priority Modify scheduling priority of server processes. Niceness values range from -20 (most favorable to the process) to 19 (least favorable to the process). The default does not modify priority. ionice_class Modify I/O scheduling class of server processes. I/O niceness class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and IOPRIO_CLASS_IDLE (idle). The default does not modify class and priority. Work only with ionice_priority. ionice_priority Modify I/O scheduling priority of server processes. I/O niceness priority is a number which goes from 0 to 7. The higher the value, the lower the I/O priority of the process. Work only with ionice_class. Ignored if IOPRIO_CLASS_IDLE is set. [object-reconstructor] log_name Label used when logging. The default is object-reconstructor. log_facility Syslog log facility. The default is LOG_LOCAL0. log_level Logging level. The default is INFO. log_address Logging address. The default is /dev/log. daemonize Whether or not to run replication as a daemon. The default is yes. run_pause [deprecated] Time in seconds to wait between replication passes. The default is 30. interval Time in seconds to wait between replication passes. The default is 30. concurrency Number of replication workers to spawn. The default is 1. stats_interval Interval in seconds between logging replication statistics. The default is 300. node_timeout Request timeout to external services. The default is 10 seconds. http_timeout Max duration of an HTTP request. The default is 60 seconds. lockup_timeout Attempts to kill all workers if nothing replicates for lockup_timeout seconds. The default is 1800 seconds. ring_check_interval The default is 15. recon_cache_path The recon_cache_path simply sets the directory where stats for a few items will be stored. Depending on the method of deployment you may need to create this directory manually and ensure that swift has read/write.The default is /var/cache/swift. handoffs_first The flag to replicate handoffs prior to canonical partitions. It allows one to force syncing and deleting handoffs quickly. If set to a True value(e.g. "True" or "1"), partitions that are not supposed to be on the node will be replicated first. The default is false. [object-updater] log_name Label used when logging. The default is object-updater. log_facility Syslog log facility. The default is LOG_LOCAL0. log_level Logging level. The default is INFO. log_address Logging address. The default is /dev/log. interval Minimum time for a pass to take. The default is 300 seconds. concurrency Number of updater workers to spawn. The default is 1. node_timeout Request timeout to external services. The default is 10 seconds. objects_per_second Maximum objects updated per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 50. slowdown [deprecated] Slowdown will sleep that amount between objects. The default is 0.01 seconds. Deprecated in favor of objects_per_second. recon_cache_path The recon_cache_path simply sets the directory where stats for a few items will be stored. Depending on the method of deployment you may need to create this directory manually and ensure that swift has read/write. The default is /var/cache/swift. nice_priority Modify scheduling priority of server processes. Niceness values range from -20 (most favorable to the process) to 19 (least favorable to the process). The default does not modify priority. ionice_class Modify I/O scheduling class of server processes. I/O niceness class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and IOPRIO_CLASS_IDLE (idle). The default does not modify class and priority. Work only with ionice_priority. ionice_priority Modify I/O scheduling priority of server processes. I/O niceness priority is a number which goes from 0 to 7. The higher the value, the lower the I/O priority of the process. Work only with ionice_class. Ignored if IOPRIO_CLASS_IDLE is set. [object-auditor] log_name Label used when logging. The default is object-auditor. log_facility Syslog log facility. The default is LOG_LOCAL0. log_level Logging level. The default is INFO. log_address Logging address. The default is /dev/log. disk_chunk_size The default is 65536. files_per_second Maximum files audited per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 20. bytes_per_second Maximum bytes audited per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 10000000. concurrency Number of auditor workers to spawn. The default is 1. log_time The default is 3600 seconds. zero_byte_files_per_second The default is 50. recon_cache_path The recon_cache_path simply sets the directory where stats for a few items will be stored. Depending on the method of deployment you may need to create this directory manually and ensure that swift has read/write. The default is /var/cache/swift. object_size_stats Takes a comma separated list of ints. If set, the object auditor will increment a counter for every object whose size is <= to the given break points and report the result after a full scan. rsync_tempfile_timeout Time elapsed in seconds before rsync tempfiles will be unlinked. Config value of "auto" will try to use object-replicator's rsync_timeout + 900 or fall-back to 86400 (1 day). nice_priority Modify scheduling priority of server processes. Niceness values range from -20 (most favorable to the process) to 19 (least favorable to the process). The default does not modify priority. ionice_class Modify I/O scheduling class of server processes. I/O niceness class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and IOPRIO_CLASS_IDLE (idle). The default does not modify class and priority. Work only with ionice_priority. ionice_priority Modify I/O scheduling priority of server processes. I/O niceness priority is a number which goes from 0 to 7. The higher the value, the lower the I/O priority of the process. Work only with ionice_class. Ignored if IOPRIO_CLASS_IDLE is set. [object-expirer] log_name Label used when logging. The default is object-expirer. log_facility Syslog log facility. The default is LOG_LOCAL0. log_level Logging level. The default is INFO. log_address Logging address. The default is /dev/log. interval Minimum time for a pass to take. The default is 300 seconds. report_interval Minimum time for a pass to report. The default is 300 seconds. request_tries The number of times the expirer's internal client will attempt any given request in the event of failure. The default is 3. concurrency Number of expirer workers to spawn. The default is 1. dequeue_from_legacy The flag to execute legacy style expirer tasks. The default is false. processes Processes can only be used in conjunction with `dequeue_from_legacy`. Processes is how many parts to divide the legacy work into, one part per process that will be doing the work. Processes set 0 means that a single process will be doing all the legacy work. Processes can also be specified on the command line and will override the config value. The default is 0. process Process can only be used in conjunction with `dequeue_from_legacy`. Process is which of the parts a particular legacy process will work on process can also be specified on the command line and will override the config value process is "zero based", if you want to use 3 processes, you should run processes with process set to 0, 1, and 2. The default is 0. reclaim_age The expirer will re-attempt expiring if the source object is not available up to reclaim_age seconds before it gives up and deletes the task in the queue. The default is 604800 seconds (= 1 week). recon_cache_path Path to recon cache directory. The default is /var/cache/swift nice_priority Modify scheduling priority of server processes. Niceness values range from -20 (most favorable to the process) to 19 (least favorable to the process). The default does not modify priority. ionice_class Modify I/O scheduling class of server processes. I/O niceness class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and IOPRIO_CLASS_IDLE (idle). The default does not modify class and priority. Work only with ionice_priority. ionice_priority Modify I/O scheduling priority of server processes. I/O niceness priority is a number which goes from 0 to 7. The higher the value, the lower the I/O priority of the process. Work only with ionice_class. Ignored if IOPRIO_CLASS_IDLE is set.
DOCUMENTATION
More in depth documentation about the swift-object-server and also OpenStack Swift as a whole can be found at https://docs.openstack.org/swift/latest/admin_guide.html and https://docs.openstack.org/swift/latest/
SEE ALSO
swift-object-server(1),