some of the errnos are not listed in errno.errorcode. if we happen
to run into them, print 'Unknown' instead.
Fixes: #11354
Signed-off-by: Kefu Chai <kchai@redhat.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>
krbd doesn't support fast-diff or deep-flatten yet. Had to do this
with two commits because fast-diff is in next and deep-flatten isn't.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This will allow a user to store binary values within omap. Since
RBD uses binary omap values, this will assist with certain recovery
operations.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The master specfile newly defines a _with_systemd variable that should be true
for the set of distros that are using systemd. Since this set of distros
includes SUSE/openSUSE (at least for the more recent versions where ceph is
supported), this commit sets _with_systemdto true on SUSE/openSUSE.
http://tracker.ceph.com/issues/11610Fixes: #11610
Signed-off-by: Nathan Cutler <ncutler@suse.cz>
If no DESTDIR environment variable is set, just
python setup.py install
instead of setting --root, --prefix or --install-layout. These options
are tested to do the right thing in the context of RPM and deb packaging
but they are presumably not what someone using make install manually
would want.
http://tracker.ceph.com/issues/11598Fixes: #11598
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Instead of
* setting limit
* populate the cache
* check the health warnings
do the following
* populate the cache
* set limits below the content of the cache
* check the health warnings
The problem with the former approach is that the limits stored by the
OSD internally do not exactly match the one set by the user: they are
converted in ratios and there may be rounding errors.
Also replace the busy loop waiting for pg stats to flush with
ceph tell osd.* flush_pg_stats || true
for simplicity.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
On a machine slow enough, the tiering agent can be activated while
testing border cases where the cache is almost full. Prevent that
by deactivating the tiering agent.
http://tracker.ceph.com/issues/11359Fixes: #11359
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Do not re-install all python dependencies if there already exists a
wheelhouse directory. It makes it so running install-deps.sh twice will
only access the network the first time. The directories where the python
dependencies are installed are removed by make clean. Refreshing the
python dependencies cache can be done via make clean ; install-deps.sh
Signed-off-by: Loic Dachary <ldachary@redhat.com>
In most cases, target dentry is pinned by request, so no one will
free the target inode. But for LOOKUP and LOOKUPPARENT requests,
target dentry is not pinned. So we should pin the target inode
Signed-off-by: Yan, Zheng <zyan@redhat.com>
the thrown exception of malformed_input should carry the function name in
which it was thrown. but what we have now is something like:
"buffer::malformed_input: __PRETTY_FUNCTION__ unknown encoding version >
100"
because __PRETTY_FUNCTION__ is not a macro any more. see
- https://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Function-Names.html
- https://gcc.gnu.org/onlinedocs/gcc/Function-Names.html
and it is not a string literal, so neither can we can concat it with
the literal err message.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Now we can drop the ugly rocksdb interpret options, and
have
// rocksdb options that will be used for keyvaluestore(if backend is rocksdb)
OPTION(keyvaluestore_rocksdb_options, OPT_STR, "")
// rocksdb options that will be used for omap(if omap_backend is rocksdb)
OPTION(omap_rocksdb_options, OPT_STR, "")
// rocksdb options that will be used in monstore
OPTION(mon_rocksdb_options, OPT_STR, "")
Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
Now most frequent used options are tested passed.
Known issue:
BackgroundThreads(we may need to interpret by ourselves).
DisableWAL(need to interpret since it's in wopitions).
Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
ISA and Jerasure can be compared for the default stripe width (4KB) and
the two most commonly used Reed Solomon matrices. Comparing the
bandwidth for large chunks (1MB) is not relevant because it is not
commonly used.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The --erased option specifies which chunks are erased when running the
decode workload. It is useful to precisely measure the code path
involved by a given recovery strategy. If only one chunk is missing
the code path won't be the same as if two chunks are missing.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
To display the erased chunk in a way that is human readable. Extract the
helper by refactoring code from --erasures-generation exhaustive
./ceph_erasure_code_benchmark --plugin isa --parameter directory=.libs \
--workload decode --verbose --parameter technique=reed_sol_van \
--parameter k=4 --parameter m=2 --erasures-generation exhaustive
chunks (0) 1 2 3 4 5 (X) is an erased chunk
chunks 0 (1) 2 3 4 5 (X) is an erased chunk
chunks 0 1 (2) 3 4 5 (X) is an erased chunk
chunks 0 1 2 (3) 4 5 (X) is an erased chunk
chunks 0 1 2 3 (4) 5 (X) is an erased chunk
chunks 0 1 2 3 4 (5) (X) is an erased chunk
Signed-off-by: Loic Dachary <ldachary@redhat.com>
If the object didn't exist, the omap clear was failing
and preventing the subsueent omap set header from
executing. Set the FAILOK flag on the omap clear
sub-operation.
Signed-off-by: John Spray <john.spray@redhat.com>
Handle the case where no journal objects exist at all,
rather than just resetting a journal that already exists.
Signed-off-by: John Spray <john.spray@redhat.com>
SnapServer has an encode method defined that
is different to encode_state, whereas in InoTable
the two were synonmous. This code was working
previously for inotable but not for snapserver.
Signed-off-by: John Spray <john.spray@redhat.com>
Similar to what the objecter does for us
when the cluster-wide full flag is set. This
allows us to pick up when the pool isn't full
any more.
Signed-off-by: John Spray <john.spray@redhat.com>