MONMAPTOOL(8)

πŸ’– MONMAPTOOL πŸ’–

okay so bestie, welcome to monmaptool β€” section 8 of the Ceph manuals β€” the ceph monitor cluster map manipulation tool. yes it's a whole mouthful, but honestly? she's iconic and she's here to help you wrangle your monitor map. πŸ—ΊοΈβœ¨


✨ NAME ✨

monmaptool β€” the ceph monitor cluster map manipulation tool. that's it, that's the name, no notes. πŸ’…


🌸 SYNOPSIS 🌸

monmaptool <action> [options] mapfilename

like, you give it an action, maybe some options, and a mapfilename. simple as. πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

so monmaptool is this utility that lets you create, view, and modify a monitor cluster map for the Ceph distributed storage system. and here's the thing, bestie β€” the monitor map specifies the only fixed addresses in the whole entire Ceph distributed system. the only ones. periodt. every single other daemon out here binds to arbitrary addresses and then registers itself with the monitors. main character behavior honestly. ✨

when you create a map with --create, a brand new monitor map is born with a new, random UUID β€” which means a new, empty Ceph cluster too. πŸŽ‰ and you should follow that up with one or more monitor addresses, okay? don't leave her hanging.

the default Ceph monitor port for messenger protocol v1 is 6789, and 3300 for protocol v2. remember those numbers, they come up. πŸ™ˆ

oh and also β€” multiple actions can be performed per invocation. so you can absolutely stack them. go off. πŸ”₯


πŸ’… OPTIONS πŸ’…

  • --print β€” prints a plaintext dump of the map, and it does this after any modifications are made. so you see the finished glow-up, not the before pic. πŸ“Έ
  • --feature-list [plain|parseable] β€” lists the enabled features, plus all the available ones. by default you get a human readable output. cute and legible, we love. ✨
  • --create β€” creates a new monitor map with a new UUID. and with it? a whole new, empty Ceph cluster. it's giving fresh start energy. 🌱
  • --clobber β€” lets monmaptool create a new mapfilename right in place of an existing map. only useful when --create is used, so don't get any ideas otherwise. ⚠️
  • --generate β€” generates a new monmap based on the values on the command line or the ones specified in the ceph configuration. and it does this, in order of preference:
    1. --monmap filename to specify a monmap to load
    2. --mon-host 'host1,ip2' to specify a list of hosts or ip addresses
    3. [mon.foo] sections containing mon addr settings in the config. note that this method is not recommended and support will be removed in a future release. so like, don't get attached. 😭
  • --filter-initial-members β€” filters the initial monmap by applying the mon initial members setting. monitors that aren't in that list get removed, and initial members that aren't in the map get added with dummy addresses. tough love, but it's necessary. πŸ’€
  • --add name ip[:port] β€” adds a monitor with the specified ip:port to the map. and heads up: if the nautilus feature is set, and the port is not, the monitor gets added for both messenger protocols. overachiever. πŸ‘‘
  • --addv name [protocol:ip:port[,...]] β€” adds a monitor with the specified version:ip:port to the map. the v is for ~ version ~ obviously. πŸ’œ
  • --rm name β€” removes the monitor with the specified name from the map. bye bestie, no you can't come back (jk, just --add again). 🫢
  • --fsid uuid β€” sets the fsid to the given uuid. if you don't specify it with --create, a random fsid will be generated for you. surprises are fun. 🎁
  • --feature-set value [--optional|--persistent] β€” enable a feature. ✨
  • --feature-unset value [--optional|--persistent] β€” disable a feature. ✨ but reversed. πŸ™ˆ
  • --enable-all-features β€” enables all supported features. all of them. the whole menu. obsessed. πŸ”₯
  • --set-min-mon-release release β€” sets the min_mon_release. straightforward queen. πŸ‘‘
  • --auth-service-cipher=<cipher> β€” sets the cipher type for rotating service keys. the default is "aes256k". πŸ”
  • --auth-allowed-ciphers=<cipher1,cipher2,...> β€” sets the cipher types permitted for authentication by daemons (yeah, including Monitors) or clients. the default is "aes256k". πŸ”
  • --auth-preferred-cipher=<cipher> β€” sets the preferred cipher key type for new credentials or for key rotations. the default is "aes256k". πŸ”

🌈 EXAMPLE 🌈

to create a new map with three monitors (for a fresh Ceph cluster):

monmaptool --create --add nodeA 192.168.0.10 --add nodeB 192.168.0.11 \
  --add nodeC 192.168.0.12 --enable-all-features --clobber monmap

to display the contents of the map:

monmaptool --print monmap

to replace one monitor:

monmaptool --rm nodeA monmap
monmaptool --add nodeA 192.168.0.9 monmap

see? three monitors, one little glow-up. the way that nodeA got swapped out with zero drama… 🀌✨


🌟 AVAILABILITY 🌟

monmaptool is part of Ceph, a massively scalable, open-source, distributed storage system. please refer to the Ceph documentation at <https://docs.ceph.com> for more information. go read it, bestie, it's free. πŸ“š


πŸ‘€ SEE ALSO πŸ‘€

ceph(8), crushtool(8),

like, her cousins. they're all in the family. 🧚


2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0) πŸ’–


and that's a wrap, my love. this page says it's dev, dated Oct 06, 2026, and it's called MONMAPTOOL(8) β€” so now you know exactly which vibe you're reading. go create some maps. slay. πŸ’…πŸ¦‹βœ¨

πŸ“¦ where this page comes from