account-server.conf(5)
π account-server.conf(5) π
okay bestie, sit down, hydrate, and let's talk about account-server.conf β the configuration file for the OpenStack Swift account server. this is the man page, section 5, and it's giving β¨reference materialβ¨. i got you. π«Ά
πΈ NAME πΈ
account-server.conf β the configuration file for the OpenStack Swift account server. yes, that's literally it. that's the whole name section. iconic brevity. π
π SYNOPSIS π
account-server.conf
no flags, no args, just vibes and a filename. periodt.
π¦ DESCRIPTION π¦
so. this is the config file that the account server uses, plus all its little account background-service besties, namely:
- the replicator
- the auditor
- the reaper
the file follows python-pastedeploy syntax, which basically means it's split into sections wrapped in square brackets [like this], and each section holds a bunch of key/value parameters. those get described below, don't worry, i'm not gonna gatekeep. π§
any line that starts with a # symbol? ignored. straight up ghosted. not read, not parsed, not invited to the party. π
if you want the deep lore on the python-pastedeploy config format, it lives here:
https://docs.pylonsproject.org/projects/pastedeploy/en/latest/#config-format
π GLOBAL SECTION π
this one is signaled by the section named [DEFAULT]. here's everything you're allowed to put in it, no cap:
bind_ipβ the IP address the account server should bind to. default is0.0.0.0, which means bind to literally every available address. all of them. every single one. she's everywhere. πbind_portβ the TCP port the account server binds to. default is6202.keep_idleβ the value to set for socketTCP_KEEPIDLE. default is600.bind_timeoutβ timeout for binding the socket. default is30.backlogβ TCP backlog. the maximum number of allowed pending connections. default is4096.workersβ how many pre-forked processes will accept connections. zero means no fork. default isauto, which makes the server try to match the number of effective cpu cores if python multiprocessing is available (that's included with most python distributions>= 2.6), and otherwise it falls back to one. also worth noting (and it IS worth noting, bestie): individual workers use a whole bunch of eventlet co-routines to service multiple concurrent requests. multitasking queen. πmax_clientsβ the max number of clients one worker can process simultaneously. fun fact, it'll actually callaccept(2)N + 1 times. setting it to one (1) means it only handles one request at a time and won't accept another request concurrently. default is1024.userβ the system user the account server runs as. default isswift.swift_dirβ the Swift configuration directory. default is/etc/swift.devicesβ the parent directory where devices are mounted. default is/srv/node.mount_checkβ whether or not to check if the devices are mounted, so you don't accidentally write to the root device (π imagine). default istrue.disable_fallocateβ disable pre-allocating disk space for a file. default isfalse.log_nameβ the label used when logging. default isswift.log_facilityβ syslog log facility. default isLOG_LOCAL0.log_levelβ logging level. default isINFO.log_addressβ logging address. default is/dev/log.log_max_line_lengthβ this caps the length of log lines to whatever value you give it. no limit if you set it to0, which is the default.log_custom_handlersβ a comma-separated list of functions to call in order 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 you set it,log_udp_hostoverrideslog_address. she said move over. πlog_udp_portβ UDP log port. default is514.log_statsd_hostβ the StatsD server. IPv4/IPv6 addresses and hostnames are both supported. if a hostname resolves to both an IPv4 and an IPv6 address, the IPv4 address gets used.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.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 and decrease fragmentation. default isfalse.eventlet_debugβ debug mode for the eventlet library. default isfalse.fallocate_reserveβ you can setfallocate_reserveto the number of bytes, or a percentage of disk space, that you'd like fallocate to reserve β whether or not there's actually space for the given file size. a percentage gets used if the value ends with a%. default is1%.nice_priorityβ modify the scheduling priority of server processes. niceness values go 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. the I/O niceness class values areIOPRIO_CLASS_RT(realtime),IOPRIO_CLASS_BE(best-effort) andIOPRIO_CLASS_IDLE(idle). the default doesn't modify class and priority. this only works together withionice_priority.ionice_priorityβ modify the I/O scheduling priority of server processes. I/O niceness priority is a number 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 π
signaled by the section name [pipeline:main]. here's what's allowed in there:
pipelineβ used when you need to apply a number of filters. it's a list of filters, ended by an application. the normal pipeline is"healthcheck recon account-server". that's the default lineup, the main cast. β
π₯ APP SECTION π₯
signaled by the section name [app:account-server]. parameters allowed in this section:
useβ entry point for paste.deploy for the account server. this is the reference to the installed python egg. normally it'segg:swift#account.set log_nameβ the label used when logging. default isaccount-server.set log_facilityβ syslog log facility. default isLOG_LOCAL0.set log_levelβ logging level. default isINFO.set log_requestsβ enables request logging. default isTrue.set log_addressβ logging address. default is/dev/log.replication_serverβ the configure parameter for creating a specific server. here's the tea:- to handle all verbs, including replication verbs, don't specify
"replication_server"at all β that's the default. - to only handle replication, set it to a true value (like
"true"or"1"). - to handle only non-replication verbs, set it to
"false".
- to handle all verbs, including replication verbs, don't specify
bestie, listen: unless you have a separate replication network, you should not specify any value for "replication_server". the default is empty.
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 doesn't modify priority.ionice_classβ modify the I/O scheduling class of server processes. the I/O niceness class values areIOPRIO_CLASS_RT(realtime),IOPRIO_CLASS_BE(best-effort) andIOPRIO_CLASS_IDLE(idle). the default doesn't 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 from0to7. higher value = lower I/O priority for the process. works only withionice_class. ignored ifIOPRIO_CLASS_IDLEis set.
π§ FILTER SECTION π§
any section whose name starts with filter: is a filter section. filters are how you specify configuration parameters for specific swift middlewares. below are all the filters available and their respective acceptable parameters. buckle up, there's three. π
β¨ [filter:healthcheck] β¨
useβ entry point for paste.deploy for the healthcheck middleware. this is the reference to the installed python egg. normallyegg:swift#healthcheck.disable_pathβ an optional filesystem path which, if it exists, will cause the healthcheck URL to return"503 Service Unavailable"with a body of"DISABLED BY FILE". dramatic much? π
β¨ [filter:recon] β¨
useβ entry point for paste.deploy for the recon middleware. this is the reference to the installed python egg. normallyegg:swift#recon.recon_cache_pathβ this simply sets the directory where stats for a few items get stored. depending on how you deployed things, you may need to create this directory manually and make sure swift has read/write access. 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. normallyegg:swift#xprofile.profile_moduleβ this option lets you switch profilers, which should inherit from the python standard profiler. currently the supported value can be'cProfile','eventlet.green.profile'etc.log_filename_prefixβ this prefix gets combined with the process ID and a 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 a unique value β like, the default is/var/log/swift/profile/account.profile.dump_intervalβ the profile data gets dumped to local disk based on the above naming rule, in this interval. default is5.0.dump_timestampβ β οΈ be careful, this option enables the profiler to dump data into files with a time stamp, which means there will be lots of files piled up in the directory. the default isfalse.pathβ this is the path of the URL used to access the mini web UI. default is__profile__.flush_at_shutdownβ clear the data when the wsgi server shuts down. default isfalse.unwindβ unwind the iterator of applications. default isfalse.
okay that's the first half bestie, don't go anywhere, there's more coming π
β¨ ADDITIONAL SECTIONS β¨
okay so these next ones? they're not the main character of the account server, but they're the supporting cast that keeps everything cute and functional π They get used by the other swift-account services β the replicator, the auditor and the reaper. iykyk.
πΈ [account-replicator] πΈ
log_nameβ the label that shows up when logging. default isaccount-replicator.log_facilityβ syslog log facility. default isLOG_LOCAL0.log_levelβ logging level. default isINFO.log_addressβ logging address. default is/dev/log.per_diffβ the max number of database rows that get sync'd in one single HTTP replication request. default is1000.max_diffsβ this one caps how long the replicator will spend trying to sync a given database per pass, so that the other databases don't get starved. so considerate of it honestly default is100.concurrencyβ number of replication workers to spawn. default is8.run_pause[deprecated] β time in seconds to wait between replication passes. default is30.intervalβ replacesrun_pausewith the more standard "interval", which means the replicator won't pause unless it takes less than the interval set. default is30.node_timeoutβ request timeout to external services. default is10seconds.conn_timeoutβ connection timeout to external services. default is0.5seconds.reclaim_ageβ time elapsed in seconds before an account can be reclaimed. default is604800seconds.rsync_compressβ lets rsync compress the data that gets transmitted to the destination node during sync. but heads up bestie, this only applies when the destination node is in a different region than the local one. default isfalse.rsync_moduleβ the format of the rsync module where the replicator will send data. peepetc/rsyncd.conf-samplefor some usage examples πrecon_cache_pathβ path to the recon cache directory. default is/var/cache/swift.nice_priorityβ modifies 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β modifies 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β modifies 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.
π¦ [account-auditor] π¦
log_nameβ the label that shows up when logging. default isaccount-auditor.log_facilityβ syslog log facility. default isLOG_LOCAL0.log_levelβ logging level. default isINFO.log_addressβ logging address. default is/dev/log.intervalβ will audit, at most, 1 account per device per interval. default is1800seconds.accounts_per_secondβ maximum accounts audited per second. should be tuned according to individual system specs.0is unlimited. default is200.recon_cache_pathβ path to the recon cache directory. default is/var/cache/swift.nice_priorityβ modifies 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β modifies 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β modifies 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.
π [account-reaper] π
log_nameβ the label that shows up when logging. default isaccount-reaper.log_facilityβ syslog log facility. default isLOG_LOCAL0.log_levelβ logging level. default isINFO.log_addressβ logging address. default is/dev/log.concurrencyβ number of reaper workers to spawn. default is25.intervalβ minimum time for a pass to take. default is3600seconds.node_timeoutβ request timeout to external services. default is10seconds.conn_timeoutβ connection timeout to external services. default is0.5seconds.delay_reapingβ normally the reaper starts deleting account information for deleted accounts immediately, but you can set this to delay its work if you want. the value is in seconds. default is0.
bestie listen π the sum of this value and the container-updater interval should be less than the account-replicator reclaim_age. that's what ensures that once the account-reaper has deleted a container, there's sufficient time for the container-updater to report to the account before the account DB is removed. it's giving β¨timingβ¨.
reap_warn_afterβ if the account fails to be reaped due to a persistent error, the account reaper will log a message such as:
Account <name> has not been reaped since <date>
you can search logs for this message if space is not being reclaimed after you delete account(s). default is 2592000 seconds (30 days). this is in addition to any time requested by delay_reaping.
nice_priorityβ modifies 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β modifies 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β modifies 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 π
want more in-depth tea about the swift-account-server, and also about OpenStack Swift as a whole? it lives here:
go read, you'll be obsessed π
π SEE ALSO π
and that's a wrap on the whole page, bestie!! π«Ά this one's from the Linux collection, dated 8/26/2011, filed under account-server.conf(5) β go forth and configure responsibly, mwah πβ¨
π¦ where this page comes from
- debian trixie: swift-account 2.35.1-0+deb13u3 Β· Apache-2
- debian trixie: swift-account 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 noble: swift-account 2.33.0-0ubuntu1 Β· Apache-2
- ubuntu noble: swift-account 2.33.0-0ubuntu1.1 Β· Apache-2
- ubuntu questing: swift-account 2.36.0-0ubuntu1
- ubuntu questing: swift-account 2.36.0-0ubuntu1.1
- ubuntu resolute: swift-account 2.37.1-0ubuntu2 Β· Apache-2
- ubuntu resolute: swift-account 2.37.1-0ubuntu2.1 Β· Apache-2
- ubuntu stonking: swift-account 2.38.2-0ubuntu1 Β· Apache-2
- Copyright (c) 2010-2012 OpenStack Foundation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms