Find an example object server configuration at
etc/object-server.conf-sample
in the source code
repository.
The available configuration options are:
Configuration option = Default value | Description |
---|---|
bind_ip = 0.0.0.0 | IP Address for server to bind to |
bind_port = 6000 | Port for server to bind to |
bind_timeout = 30 | Seconds to attempt bind before giving up |
backlog = 4096 | Maximum number of allowed pending TCP connections |
user = swift | User to run as |
swift_dir = /etc/swift | Swift configuration directory |
devices = /srv/node | Parent directory of where devices are mounted |
mount_check = true | Whether or not check if the devices are mounted to prevent accidentally writing to the root device |
disable_fallocate = false | Disable "fast fail" fallocate checks if the underlying filesystem does not support it. |
expiring_objects_container_divisor = 86400 | No help text available for this option. |
expiring_objects_account_name = expiring_objects | No help text available for this option. |
workers = auto | a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests. |
max_clients = 1024 | Maximum number of clients one worker can process simultaneously Lowering the number of clients handled per worker, and raising the number of workers can lessen the impact that a CPU intensive, or blocking, request can have on other requests served by the same worker. If the maximum number of clients is set to one, then a given worker will not perform another call while processing, allowing other workers a chance to process it. |
log_name = swift | Label used when logging |
log_facility = LOG_LOCAL0 | Syslog log facility |
log_level = INFO | Logging level |
log_address = /dev/log | Location where syslog sends the logs to |
log_custom_handlers = | Comma-separated list of functions to call to setup custom log handlers. |
log_udp_host = | If not set, the UDB receiver for syslog is disabled. |
log_udp_port = 514 | Port value for UDB receiver, if enabled. |
log_statsd_host = localhost | If not set, the StatsD feature is disabled. |
log_statsd_port = 8125 | Port value for the StatsD server. |
log_statsd_default_sample_rate = 1.0 | Defines the probability of sending a sample for any given event or timing measurement. |
log_statsd_sample_rate_factor = 1.0 | Not recommended to set this to a value less than 1.0, if frequency of logging is too high, tune the log_statsd_default_sample_rate instead. |
log_statsd_metric_prefix = | Value will be prepended to every metric sent to the StatsD server. |
eventlet_debug = false | If true, turn on debug logging for eventlet |
fallocate_reserve = 0 | You can set fallocate_reserve to the number of bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. server. For most cases, this should be `egg:swift#object`. |
conn_timeout = 0.5 | Connection timeout to external services |
node_timeout = 3 | Request timeout to external services |
client_timeout = 60 | Timeout to read one chunk from a client external services |
network_chunk_size = 65536 | Size of chunks to read/write over the network |
disk_chunk_size = 65536 | Size of chunks to read/write to disk |
Configuration option = Default value | Description |
---|---|
use = egg:swift#object | Entry point of paste.deploy in the server |
set log_name = object-server | Label to use when logging |
set log_facility = LOG_LOCAL0 | Syslog log facility |
set log_level = INFO | Log level |
set log_requests = true | Whether or not to log requests |
set log_address = /dev/log | Location where syslog sends the logs to |
max_upload_time = 86400 | Maximum time allowed to upload an object |
slow = 0 | If > 0, Minimum time in seconds for a PUT or DELETE request to complete |
keep_cache_size = 5424880 | Largest object size to keep in buffer cache |
keep_cache_private = false | Allow non-public objects to stay in kernel's buffer cache |
mb_per_sync = 512 | On PUT requests, sync file every n MB |
allowed_headers = Content-Disposition, Content-Encoding, X-Delete-At, X-Object-Manifest, X-Static-Large-Object | Comma-separated list of headers that can be set in metadata of an object |
auto_create_account_prefix = . | Prefix to use when automatically creating accounts |
threads_per_disk = 0 | Size of the per-disk thread pool used for performing disk I/O. The default of 0 means to not use a per-disk thread pool. It is recommended to keep this value small, as large values can result in high read latencies due to large queue depths. A good starting point is 4 threads per disk. |
replication_server = false | If defined, tells server how to handle replication verbs in requests. When set to True (or 1), only replication verbs will be accepted. When set to False, replication verbs will be rejected. When undefined, server will accept any verb in the request. |
replication_concurrency = 4 | Set to restrict the number of concurrent incoming REPLICATION requests; set to 0 for unlimited |
replication_one_per_device = True | Restricts incoming REPLICATION requests to one per device, replication_currency above allowing. This can help control I/O to each device, but you may wish to set this to False to allow multiple REPLICATION requests (up to the above replication_concurrency setting) per device. |
replication_lock_timeout = 15 | Number of seconds to wait for an existing replication device lock before giving up. |
replication_failure_threshold = 100 | The number of subrequest failures before the replication_failure_ratio is checked |
replication_failure_ratio = 1.0 | If the value of failures / successes of REPLICATION subrequests exceeds this ratio, the overall REPLICATION request will be aborted |
Configuration option = Default value | Description |
---|---|
pipeline = healthcheck recon object-server | No help text available for this option. |
Configuration option = Default value | Description |
---|---|
log_name = object-replicator | Label used when logging |
log_facility = LOG_LOCAL0 | Syslog log facility |
log_level = INFO | Logging level |
log_address = /dev/log | Location where syslog sends the logs to |
vm_test_mode = no | Indicates that you are using a VM environment |
daemonize = on | Whether or not to run replication as a daemon |
run_pause = 30 | Time in seconds to wait between replication passes |
concurrency = 1 | Number of replication workers to spawn |
stats_interval = 300 | Interval in seconds between logging replication statistics |
sync_method = rsync | No help text available for this option. |
rsync_timeout = 900 | Max duration (seconds) of a partition rsync |
rsync_bwlimit = 0 | No help text available for this option. |
rsync_io_timeout = 30 | Passed to rsync for a max duration (seconds) of an I/O op |
node_timeout = <whatever's in the DEFAULT section or 10> | Request timeout to external services |
http_timeout = 60 | Maximum duration for an HTTP request |
lockup_timeout = 1800 | Attempts to kill all workers if nothing replications for lockup_timeout seconds |
reclaim_age = 604800 | Time elapsed in seconds before an object can be reclaimed |
ring_check_interval = 15 | How often (in seconds) to check the ring |
recon_cache_path = /var/cache/swift | Directory where stats for a few items will be stored |
rsync_error_log_line_length = 0 | No help text available for this option. |
handoffs_first = False | If set to True, partitions that are not supposed to be on the node will be replicated first. The default setting should not be changed, except for extreme situations. |
handoff_delete = auto | By default handoff partitions will be removed when it has successfully replicated to all the canonical nodes. If set to an integer n, it will remove the partition if it is successfully replicated to n nodes. The default setting should not be changed, except for extremem situations. This uses what's set here, or what's set in the DEFAULT section, or 10 (though other sections use 3 as the final default). |
Configuration option = Default value | Description |
---|---|
log_name = object-updater | Label used when logging |
log_facility = LOG_LOCAL0 | Syslog log facility |
log_level = INFO | Logging level |
log_address = /dev/log | Location where syslog sends the logs to |
interval = 300 | Minimum time for a pass to take |
concurrency = 1 | Number of replication workers to spawn |
node_timeout = <whatever's in the DEFAULT section or 10> | Request timeout to external services |
slowdown = 0.01 | Time in seconds to wait between objects |
recon_cache_path = /var/cache/swift | Directory where stats for a few items will be stored |
Configuration option = Default value | Description |
---|---|
log_name = object-auditor | Label used when logging |
log_facility = LOG_LOCAL0 | Syslog log facility |
log_level = INFO | Logging level |
log_address = /dev/log | Location where syslog sends the logs to |
files_per_second = 20 | Maximum files audited per second. Should be tuned according to individual system specs. 0 is unlimited. |
bytes_per_second = 10000000 | Maximum bytes audited per second. Should be tuned according to individual system specs. 0 is unlimited. mounted to prevent accidentally writing to the root device 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. By increasing the number of workers to a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests. underlying filesystem does not support it. to setup custom log handlers. bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. container server. For most cases, this should be `egg:swift#container`. |
log_time = 3600 | Frequency of status logs in seconds. |
zero_byte_files_per_second = 50 | Maximum zero byte files audited per second. |
recon_cache_path = /var/cache/swift | Directory where stats for a few items will be stored |
object_size_stats = | No help text available for this option. |
Configuration option = Default value | Description |
---|---|
use = egg:swift#healthcheck | Entry point of paste.deploy in the server |
disable_path = | No help text available for this option. |
Configuration option = Default value | Description |
---|---|
use = egg:swift#recon | Entry point of paste.deploy in the server |
recon_cache_path = /var/cache/swift | Directory where stats for a few items will be stored |
recon_lock_path = /var/lock | No help text available for this option. |