object-expirer.conf(5)

πŸ“¦
version 2.38.2 Β· 3 versions
, in debian trixie, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– object-expirer.conf(5) πŸ’–

okay bestie, so this is object-expirer.conf β€” the config file for the OpenStack Swift object expirer daemon. It's a whole manual page (section 5, the file-formats girlies), and I'm gonna walk you through every single line of it. grab a boba, we're doing this. πŸ§‹βœ¨


🌸 NAME 🌸

object-expirer.conf β€” literally the configuration file for the OpenStack Swift object expirer daemon. that's her. that's the whole vibe. πŸ‘‘


✨ SYNOPSIS ✨

object-expirer.conf

πŸ¦‹ DESCRIPTION πŸ¦‹

so. this is the configuration file that the object expirer daemon reads. and what does that daemon even do, you ask? she queries the internal hidden expiring_objects_account to discover objects that need to be deleted, and then she deletes them. that's it. that's her job. she's the cleanup crew and she ate. πŸ’…

the config file follows python-pastedeploy syntax. it's divided into sections, and sections are enclosed by square brackets. each section holds some number of key/value parameters, which we'll get into below.

any line that begins with a '#' symbol is ignored. (comment queen behavior. we love to see it. πŸ™ˆ)

you can find more info about the python-pastedeploy configuration format at: https://docs.pylonsproject.org/projects/pastedeploy/en/latest/#config-format


🌈 GLOBAL SECTION 🌈

this one is indicated by the section named [DEFAULT]. below are the parameters that are acceptable within this section. πŸ’–

  • swift_dir β€” the Swift configuration directory. default is /etc/swift.
  • user β€” the system user that the object server will run as. default is swift.
  • log_name β€” the label used when logging. default is swift.
  • log_facility β€” the Syslog log facility. default is LOG_LOCAL0.
  • log_level β€” the logging level. default is INFO.
  • log_address β€” the logging address. default is /dev/log.
  • log_max_line_length β€” this one caps the length of log lines to the value given. no limit if set to 0, which is the default.
  • log_custom_handlers β€” a comma separated list of functions to call to set up custom log handlers. the functions get passed: conf, name, log_to_console, log_route, fmt, logger, adapted_logger. default is empty.
  • log_udp_host β€” if set, log_udp_host will override log_address.
  • log_udp_port β€” the UDP log port. default is 514.
  • log_statsd_host β€” the StatsD server. IPv4/IPv6 addresses and hostnames are supported. if a hostname resolves to both an IPv4 and an IPv6 address, the IPv4 address will be used. (ipv4 said pick me 😭)
  • log_statsd_port β€” default is 8125.
  • log_statsd_default_sample_rate β€” default is 1.
  • log_statsd_sample_rate_factor β€” default is 1.
  • log_statsd_metric_prefix β€” default is empty.
  • delay_reaping_account/container β€” normally, the expirer begins reaping expired objects immediately. you can add options prefixed with "delay_reaping_" in the form of "delay_reaping_<ACCT>[/<CNTR>]" to cause the expirer to delay processing of tasks in those account or account/container. the <ACCT>[/<CNTR>] part of the config option names should url-quote the paths. the value is in seconds. the default is no delay for any tasks.
  • round_robin_task_cache_size β€” number of tasks objects to cache before processing.
  • nice_priority β€” modify the 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 the 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. works only with ionice_priority.
  • ionice_priority β€” modify the 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. works only with ionice_class. ignored if IOPRIO_CLASS_IDLE is set.

πŸŽ€ PIPELINE SECTION πŸŽ€

indicated by the section name [pipeline:main]. here's what's acceptable in there:

  • pipeline β€” used when you need to apply a number of filters. it's a list of filters ended by an application. the default should be "catch_errors cache proxy-server".

⭐ APP SECTION ⭐

indicated by the section name [app:object-server]. here's what's acceptable in there:

  • 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 the proxy-server.conf manpage.
  • nice_priority β€” modify the 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 the 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. works only with ionice_priority.
  • ionice_priority β€” modify the 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. works only with ionice_class. ignored if IOPRIO_CLASS_IDLE is set.

🫢 FILTER SECTION 🫢

any section that has its name prefixed by "filter:" is a filter section. filters are used to specify configuration parameters for specific swift middlewares. below are the filters available and their respective acceptable parameters. ✨

[filter:cache]

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 the proxy-server.conf manpage.

[filter:catch_errors]

  • 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 the proxy-server.conf manpage.

[filter:proxy-logging]

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 the proxy-server.conf manpage.

πŸ”₯ OBJECT EXPIRER SECTION πŸ”₯

[object-expirer] β€” the main character section, honestly. πŸ’…

  • 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.
  • 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 to 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 the 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 the 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. works only with ionice_priority.
  • ionice_priority β€” modify the 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. works only with ionice_class. ignored if IOPRIO_CLASS_IDLE is set.

πŸ’œ DOCUMENTATION πŸ’œ

more in depth documentation about the swift-object-expirer and also about 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-proxy-server.conf(5)


πŸ’– and that's the whole page, bestie!! no cap, you now know this manpage better than the girl who wrote it. go forth and expire some objects (responsibly). periodt. πŸ¦‹

this one came from the Linux corner of the world, dated 03/15/2012, and it lives in section object-expirer.conf(5) β€” mwah, iconic, no notes. πŸ’…βœ¨