(storage)= # Storage > See also: {ref}`manage-storage` In Juju, **storage** refers to a data volume that is provided by a {ref}`cloud `. Depending on how things are set up during deployment, the data volume can be machine-dependent (e.g., a directory on disk tied to the machine which goes away if the unit is destroyed) or machine-independent (i.e., it can outlive a machine and be reattached to another machine). (storage-constraint)= ## Storage constraint (directive) In Juju, a **storage constraint** is a collection of storage specifications that can be passed as a positional argument to some commands (`add-storage`) or as the argument to the `--storage` option of other commands (`deploy`, `refresh`) to dictate how storage is allocated. ```{important} A *storage constraint* is slightly different from a {ref}`constraint ` -- while the general meaning is similar, the syntax is quite different. For this reason, a storage constraint is sometimes also called a *storage directive*. ``` ```{important} To put together a storage constraint, you need information from both the charm and the {ref}`storage provider ` / {ref}`storage pool `. ``` This constraint has the form `