object-expirer.conf - configuration file for the OpenStack
Swift object expirer daemon
This is the configuration file used by the object expirer daemon.
The daemon's function is to query the internal hidden
expiring_objects_account to discover objects that need to be deleted and to
then delete them.
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
http://pythonpaste.org/deploy/#config-format
This is indicated by section named [DEFAULT]. Below are
the parameters that are acceptable within this section.
- swift_dir
- Swift configuration directory. The default is /etc/swift.
- user
- The system user that the object server will run as. The default is
swift.
- 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.
- 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.
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 default should be
"catch_errors cache proxy-server"
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. The default is egg:swift#proxy. See
proxy-server.conf-sample for options or See proxy-server.conf
manpage.
- 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.
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.
Caching middleware that manages caching in swift.
- use
- Entry point for paste.deploy for the memcache middleware. This is the
reference to the installed python egg. The default is
egg:swift#memcache. See proxy-server.conf-sample for options or See
proxy-server.conf manpage.
- use
- Entry point for paste.deploy for the catch_errors middleware. This is the
reference to the installed python egg. The default is
egg:swift#catch_errors. See proxy-server.conf-sample for options or
See proxy-server.conf manpage.
Logging for the proxy server now lives in this middleware. If the
access_* variables are not set, logging directives from [DEFAULT] without
"access_" will be used.
- use
- Entry point for paste.deploy for the proxy_logging middleware. This is the
reference to the installed python egg. This is normally
egg:swift#proxy_logging. See proxy-server.conf-sample for options
or See proxy-server.conf manpage.
- 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 300.
- auto_create_account_prefix
- The default is ".".
- expiring_objects_account_name
- The default is 'expiring_objects'.
- report_interval
- 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.
- processes
- Processes is how many parts to divide the 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 work. Processes can also be specified on the command
line and will override the config value. The default is 0.
- process
- Process is which of the parts a particular 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 entry in the
queue. The default is 604800 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.
More in depth documentation about the swift-object-expirer 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/