New in v21.2: CockroachDB automatically creates an emergency ballast file at startup time. The
cockroach debug ballast command is still available but deprecated. For more information about how automatic ballast file creation works, see automatic ballast files.
cockroach debug ballast command creates a large, unused file that you can place in a node's storage directory. In the case that a node runs out of disk space and shuts down, you can delete the ballast file to free up enough space to be able to restart the node.
- Do not run
cockroach debug ballastwith a unix
rootuser. Doing so brings the risk of mistakenly affecting system directories or files.
cockroach debug ballastnow refuses to overwrite the target ballast file if it already exists. This change is intended to prevent mistaken uses of the
ballastcommand. Consider adding an
rmcommand to scripts that integrate
cockroach debug ballast, or provide a new file name every time and then remove the old file.
- In addition to placing a ballast file in each node's storage directory, it is important to actively monitor remaining disk space.
- Ballast files may be created in many ways, including the standard
cockroach debug ballastuses the
fallocatesystem call when available, so it will be faster than
debug subcommands are useful only to CockroachDB's developers and contributors.
Create a ballast file:
$ cockroach debug ballast [path to ballast file] [flags]
$ cockroach debug ballast --help
||The amount of space to fill, or to leave available, in a node's storage directory via a ballast file. Positive values equal the size of the ballast file. Negative values equal the amount of space to leave after creating the ballast file. This can be a percentage (notated as a decimal or with %) or any bytes-based unit, for example:
Create a 1GB ballast file (default)
$ cockroach debug ballast cockroach-data/ballast.txt
Create a ballast file of a different size
$ cockroach debug ballast cockroach-data/ballast.txt --size=2GB