swift-dispersion-populate(1)
π swift-dispersion-populate β OpenStack Swift dispersion populate π
okay bestie, pull up a chair, grab a strawberry π, because we're talking about swift-dispersion-populate, aka one of the little swift-dispersion utilities that keeps your whole cluster's vibe in check. it's giving "main character energy" for cluster health, fr fr.
β¨ NAME β¨
swift-dispersion-populate β OpenStack Swift dispersion populate π¦
πΈ SYNOPSIS πΈ
swift-dispersion-populate [--container-suffix-start] [--object-suffix-start]
[--container-only|--object-only] [--insecure] [conf_file]
π DESCRIPTION π
so this is one of the swift-dispersion utilities, and its whole job is helping you evaluate the overall cluster health. how? by checking whether a set of deliberately distributed containers and objects are currently in their proper places within the cluster. like, we put them there on purpose, and now we check on them. iconic behavior honestly. π
for instance, a common deployment has three replicas of each object. the health of that object can be measured by checking if each replica is in its proper place. if only 2 of the 3 is in place, the object's health can be said to be at 66.66%, where 100% would be perfect. and honestly? 66.66% is not slaying. π
we need to place the containers and objects throughout the system so that they are on distinct partitions. the swift-dispersion-populate tool does this by making up random container and object names until they fall on distinct partitions. last, and repeatedly for the life of the cluster, we need to run the swift-dispersion-report tool to check the health of each of these containers and objects. so like, populate once, report forever. the way that population is a one-time thing but reporting never ends? π«Ά
these tools need direct access to the entire cluster and to the ring files. installing them on a proxy server will probably do, or a box used for swift administration purposes that also contains the common swift packages and ring. both swift-dispersion-populate and swift-dispersion-report use the same configuration file, /etc/swift/dispersion.conf. the account used by these tool should be a dedicated account for the dispersion stats and also have admin privileges. admin privileges, dedicated account, no sharing β periodt. π
β¨ OPTIONS β¨
--insecureβ Allow accessing insecure keystone server. The keystone's certificate will not be verified. (ngl, it's literally what it says: no cert verification. the vibes are unverified.)--container-suffix-start=NUMBERβ Start container suffix at NUMBER and resume population at this point; default:0--object-suffix-start=NUMBERβ Start object suffix at NUMBER and resume population at this point; default:0--object-onlyβ Only run object population--container-onlyβ Only run container population--no-overlapβ Increase coverage by amount indispersion_coverageoption with no overlap of existing partitions (if run more than once). lowkey the "don't repeat yourself" button.-P,--policy-nameβ Specify storage policy name
π CONFIGURATION π
here's an example /etc/swift/dispersion.conf, and yes we're copying it exactly because every line matters:
[dispersion]
auth_url = https://127.0.0.1:443/auth/v1.0
auth_user = dpstats:dpstats
auth_key = dpstats
swift_dir = /etc/swift
# project_name = dpstats
# project_domain_name = default
# user_domain_name = default
# dispersion_coverage = 1.0
# retries = 5
# concurrency = 25
# endpoint_type = publicURL
see those # lines? those are commented out, bestie, they're optional until you need them. π
π₯ EXAMPLE π₯
$ swift-dispersion-populate
Created 2621 containers for dispersion reporting, 38s, 0 retries
Created 2621 objects for dispersion reporting, 27s, 0 retries
2621 containers, 2621 objects, 0 retries. we ate that. π
π¦ DOCUMENTATION π¦
more in depth documentation about the swift-dispersion utilities and also OpenStack Swift as a whole can be found at https://docs.openstack.org/swift/latest/admin_guide.html#dispersion-report and https://docs.openstack.org/swift/latest/
π SEE ALSO π
swift-dispersion-report(1), dispersion.conf(5)
β οΈ real talk though: these tools need direct access to the entire cluster and to the ring files, and the account should be a dedicated one with admin privileges. don't just run this anywhere, okay? π«Ά
and that's the whole page, bestie β this one ships on Linux, dated 8/26/2011, and it lives in the swift-dispersion-populate(1) manual page. go forth and populate πβ¨ππ¦πΈπ
π¦ where this page comes from
- debian bookworm: swift 2.30.1-0+deb12u1 Β· Apache-2
- debian bookworm: swift 2.30.1-0+deb12u3 Β· Apache-2
- debian trixie: swift 2.35.1-0+deb13u3 Β· Apache-2
- debian trixie: swift 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 jammy: swift 2.29.1-0ubuntu1 Β· Apache-2
- ubuntu jammy: swift 2.29.2-0ubuntu1.1 Β· Apache-2
- ubuntu noble: swift 2.33.0-0ubuntu1 Β· Apache-2
- ubuntu noble: swift 2.33.0-0ubuntu1.1 Β· Apache-2
- ubuntu questing: swift 2.36.0-0ubuntu1
- ubuntu questing: swift 2.36.0-0ubuntu1.1
- ubuntu resolute: swift 2.37.1-0ubuntu2 Β· Apache-2
- ubuntu resolute: swift 2.37.1-0ubuntu2.1 Β· Apache-2
- ubuntu stonking: swift 2.38.2-0ubuntu1 Β· Apache-2
- Copyright (c) 2010-2011 OpenStack Foundation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms