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>