Reuse rbd map -o infrastructure to expose rbd unmap options in
a similar fashion. Currently it's just one bool option, but we may
need more in the future.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Currently, we have a bench-write for in rbd tool, but we don't have
a simple bench for read.
This patch add a new subcommand of bench, with an option of --io-type.
Then we can do a simple bench for write or read.
Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
rbd bench-write is going to be deprecated. This patch
makes it invisible in help message and manpage. But it
is still working.
Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
Add a subcommand, rbd snap limit set <image> --limit <integer>, to
limit the number of snapshots that may be made of a given image.
To clear, use rbd snap limit clear <image>. Add an omap
key, 'snap_limit' to the RBD header for implementation. Add object
classes to set and query the limit. Older OSDs will ignore the limit.
Fixes: http://tracker.ceph.com/issues/15706
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
The rbd cli will warn about the deprecation when attempting to create
image format 1 images. librbd will log an error message when opening
a format 1 RBD image.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Object size can be specified when creating an image with the --order option,
as a number of bits in the size.
This patch is adding new option --object-size. This new option will specify
object size directly for example --object-size 2M.
It would be easier to use. --order is still present for backwards compatibility.
For simplicity, we are rounding up the object size to the nearest power of 2.
Fixes#12112
Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
When enabled, all mutable operations against an RBD image
will be recorded to a journal prior to changing the underlying
RBD image.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This patch will provide support for size suffixes for
below given options:
--stripe-unit <size in B/K/M>
--io-size <size in B/K/M/G/T>
--io-total <size in B/K/M/G/T>
Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
"--keyring" has higher priority than "--keyfile".
"--keyfile" option is overridden by "--keyring"
if latter is also specified.
Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
--object-extents is a bit confusing - extent is generally something of
a varying length and here the meaning is "diff whole objects". Rename
it to --whole-object (the name of diff_iterate() parameter).
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Change du to take <image-spec> | <snap-spec> as an argument instead of
going through --image option. The new synopsis is
(du | disk-usage) [<image-spec> | <snap-spec>]
This is to make it look more like the rest of the commands: the only
other command that takes pool as an argument is ls and it can't really
serve as a prototype for du, because the latter has to work on images
and snapshots as well.
Examples:
# stats for pool rbd
$ rbd du
$ rbd -p rbd du
# stats for pool foo
$ rbd -p foo du
# stats for snapshot mysnap of image baz in pool rbd
$ rbd du baz@mysnap
# stats for image bar in pool foo
$ rbd du foo/bar
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Mark those as such in help and clarify what image-spec defaults to.
Related, all command args in our man page are enclosed into brackets.
I suppose the reason is that they are optional in the sense that you
can have commands like
$ rbd clone --pool a --image b --snap -c --dest-pool d --dest e
with no args. Given that we are trying to push people towards
$ rbd clone a/b@c d/e
undo that so that real optional arguments can be marked optional.
While at it, add synopsis for each command and use backticks for
denoting commands more consistently.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This patch changes image-name instances to image-spec and snap-name
instances to snap-spec to try to clarify usage for some commands and
disambiguate the term {image,snap}-name, which has been used to denote
both simple names and compound names (specs).
<image-spec> is [<pool-name>]/<image-name>
<snap-spec> is [<pool-name>]/<image-name>@<snap-name>
This patch also removes duplicate checks for image-name and snap-name.
Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
[idryomov@gmail.com: some commands take either image-spec or snap-spec,
other fixes, formatting, changelog]
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
With "rbd: timeout watch teardown on unmap with mount_timeout" going
into kernel 4.2, document its effect in the man page.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
The new disk usage tool uses the new fast diff object map feature
(when enabled) to quickly calculate the provisioned vs actual usage
of images and associated snapshots within a pool.
Fixes: #7746
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Copy-on-read/write will now use an empty snapshot context to
deep-copy the object through all existing snapshots. With the
deep-flatten feature enabled, the flatten operation will now
disconnect a child image from its parent even if it has existing
snapshots.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Make use of krbd_unmap_by_spec() and allow unmapping by <image-name>
(i.e. pool/image@snap spec) with a bunch of careful adjustments to the
fragile command args/options parsing process to make --pool, --image
and --snap options work as expected for rbd unmap <image-name> case.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
The rbd CLI can now use the object map to compute the diffs between
two snapshots. This option is enabled with the new '--object-extents'
option.
Fixes: #7787
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
sphinx requires that a document tree to be in a single directory,
and the man pages are references by our document. so a simple solution
would be to put all the rst file under a single directory.
Fixes: #11320
Signed-off-by: Kefu Chai <kchai@redhat.com>
* move rst files from doc/man/8 into man/8
* extract man_pages setting for sphinx from doc/conf.py to man/conf.py
* generate all man pages in `make install`
* add python-sphinx to Build-Depends
* check for sphinx-build in `configure`
* run changed rst files through sphinx-build in `make check`
Signed-off-by: Kefu Chai <kchai@redhat.com>
rbd did not previously support specifying striping params
for cloned and imported images. Extend the behavior to
these other CLI commands.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
As it were, the order, stripe_unit and stripe_count options were
followed by descriptions rendered in the same monospace font as the
options themselves. Insert newlines so they are rendered as regular
text, as was the original intention.
Signed-off-by: Florian Haas <florian@hastexo.com>
Utilize the existing rbd_default_features config option to
control whether or not to enable RBD exclusive locking and
object map features by default. Also added a new option to
the rbd cli to specify the image features when creating images.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>