object-expirer.conf(5)
π 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 isswift.log_nameβ the label used when logging. default isswift.log_facilityβ the Syslog log facility. default isLOG_LOCAL0.log_levelβ the logging level. default isINFO.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 to0, 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_hostwill overridelog_address.log_udp_portβ the UDP log port. default is514.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 is8125.log_statsd_default_sample_rateβ default is1.log_statsd_sample_rate_factorβ default is1.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) to19(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 areIOPRIO_CLASS_RT(realtime),IOPRIO_CLASS_BE(best-effort) andIOPRIO_CLASS_IDLE(idle). the default does not modify class and priority. works only withionice_priority.ionice_priorityβ modify the I/O scheduling priority of server processes. I/O niceness priority is a number which goes from0to7. the higher the value, the lower the I/O priority of the process. works only withionice_class. ignored ifIOPRIO_CLASS_IDLEis 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 isegg:swift#proxy. seeproxy-server.conf-samplefor options, or see theproxy-server.confmanpage.nice_priorityβ modify the scheduling priority of server processes. niceness values range from-20(most favorable to the process) to19(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 areIOPRIO_CLASS_RT(realtime),IOPRIO_CLASS_BE(best-effort) andIOPRIO_CLASS_IDLE(idle). the default does not modify class and priority. works only withionice_priority.ionice_priorityβ modify the I/O scheduling priority of server processes. I/O niceness priority is a number which goes from0to7. the higher the value, the lower the I/O priority of the process. works only withionice_class. ignored ifIOPRIO_CLASS_IDLEis 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 isegg:swift#memcache. seeproxy-server.conf-samplefor options, or see theproxy-server.confmanpage.
[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 isegg:swift#catch_errors. seeproxy-server.conf-samplefor options, or see theproxy-server.confmanpage.
[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 normallyegg:swift#proxy_logging. seeproxy-server.conf-samplefor options, or see theproxy-server.confmanpage.
π₯ OBJECT EXPIRER SECTION π₯
[object-expirer] β the main character section, honestly. π
intervalβ replacesrun_pausewith the more standard"interval", which means the replicator won't pause unless it takes less than the interval set. the default is300.report_intervalβ the default is300seconds.request_triesβ the number of times the expirer's internal client will attempt any given request in the event of failure. the default is3.concurrencyβ number of expirer workers to spawn. the default is1.processesβ processes is how many parts to divide the work into, one part per process that will be doing the work. processes set to0means 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 is0.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 to0,1, and2. the default is0.reclaim_ageβ the expirer will re-attempt expiring if the source object is not available up toreclaim_ageseconds before it gives up and deletes the entry in the queue. the default is604800seconds.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) to19(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 areIOPRIO_CLASS_RT(realtime),IOPRIO_CLASS_BE(best-effort) andIOPRIO_CLASS_IDLE(idle). the default does not modify class and priority. works only withionice_priority.ionice_priorityβ modify the I/O scheduling priority of server processes. I/O niceness priority is a number which goes from0to7. the higher the value, the lower the I/O priority of the process. works only withionice_class. ignored ifIOPRIO_CLASS_IDLEis 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. π
β¨
π¦ where this page comes from
- debian trixie: swift-object 2.35.1-0+deb13u3 Β· Apache-2
- debian trixie: swift-object 2.35.1-0+deb13u4 Β· Apache-2
- nixos 26.05: python3.13-swift 2.37.1
- nixos 26.05: python3.14-swift 2.37.1
- nixpkgs unstable: python3.13-swift 2.38.3
- nixpkgs unstable: python3.14-swift 2.38.3
- ubuntu questing: swift-object-expirer 2.36.0-0ubuntu1
- ubuntu questing: swift-object-expirer 2.36.0-0ubuntu1.1
- ubuntu resolute: swift-object-expirer 2.37.1-0ubuntu2 Β· Apache-2
- ubuntu resolute: swift-object-expirer 2.37.1-0ubuntu2.1 Β· Apache-2
- ubuntu stonking: swift-object-expirer 2.38.2-0ubuntu1 Β· Apache-2
- Copyright (c) 2012 OpenStack Foundation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms