container-server.conf(5)

NAME

container-server.conf - configuration file for the OpenStack Swift container server

SYNOPSIS

container-server.conf

DESCRIPTION

This is the configuration file used by the container server and other container background services, such as; replicator, updater, auditor and sync.

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 container 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 container server should bind to. The default is 6201.

    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.

    allowed_sync_hosts
        This is a comma separated list of hosts allowed in the X-Container-Sync-To field for containers. This is the old-style of using container sync. It is strongly recommended to use the new style of a separate container-sync-realms.conf -- see container-sync-realms.conf-sample allowed_sync_hosts = 127.0.0.1

    user
        The system user that the container 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.

    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.

    db_preallocation
        If you don't mind the extra disk space usage in overhead, you can turn this on to preallocate disk space with SQLite databases to decrease fragmentation. The default is false.

    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%.

    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 container-server".

APP SECTION
    This is indicated by section name [app:container-server]. Below are the parameters that are acceptable within this section.

    use Entry point for paste.deploy for the container server. This is the reference to the installed python egg. This is normally egg:swift#container.

    set log_name
        Label used when logging. The default is container-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.

    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.

    allow_versions
        The default is false.

    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".

    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.

        [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-container services, such as replicator, updater, auditor and sync.

    [container-replicator]

    log_name
        Label used when logging. The default is container-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.

    per_diff
        Maximum number of database rows that will be sync'd in a single HTTP replication request. The default is 1000.

    max_diffs
        This caps how long the replicator will spend trying to sync a given database per pass so the other databases don't get starved. The default is 100.

    concurrency
        Number of replication workers to spawn. The default is 8.

    run_pause [deprecated]
        Time in seconds to wait between replication passes. The default is 30.

    interval
        Replaces run_pause with the more standard "interval", which means the replicator won't pause unless it takes less than the interval set. The default is 30.

    node_timeout
        Request timeout to external services. The default is 10 seconds.

    conn_timeout
        Connection timeout to external services. The default is 0.5 seconds.

    reclaim_age
        Time elapsed in seconds before an container can be reclaimed. The default is 604800 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. 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.

    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.

    [container-updater]

    log_name
        Label used when logging. The default is container-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 4.

    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.

    containers_per_second
        Maximum containers 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 containers. The default is 0.01 seconds. Deprecated in favor of containers_per_second

    account_suppression_time
        Seconds to suppress updating an account that has generated an error. The default is 60 seconds.

    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.

    [container-auditor]

    log_name
        Label used when logging. The default is container-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.

    interval
        Will audit, at most, 1 container per device per interval. The default is 1800 seconds.

    containers_per_second
        Maximum containers audited per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 200.

    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.

    [container-sync]

    log_name
        Label used when logging. The default is container-sync.

    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.

    sync_proxy
        If you need to use an HTTP Proxy, set it here; defaults to no proxy.

    interval
        Will audit, at most, each container once per interval. The default is 300 seconds.

    container_time
        Maximum amount of time to spend syncing each container per pass. The default is 60 seconds.

    conn_timeout
        Connection timeout to external services. The default is 5 seconds.

    request_tries
        Server errors from requests will be retried by default. The default is 3.

    internal_client_conf_path
        Internal client config file path.

    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-container-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-container-server(1)