Volker Theile [Tue, 5 Jun 2018 10:03:16 +0000 (12:03 +0200)]
mgr/dashboard: Get user ID via RGW Admin Ops API.
The RGW API user id (set via 'ceph dashboard set-rgw-api-user-id <xxx>') is optional but the user ID is required internally for some situations. Because of that the user ID is requested via a RGW Admin Ops API call if it is not configured via CLI.
Patrick Donnelly [Fri, 15 Jun 2018 14:05:40 +0000 (07:05 -0700)]
Merge PR #22464 into master
* refs/pull/22464/head:
mds: print dir decay counters on hit
DecayCounter: removed unused velocity
DecayCounter: remove unnecessary delta member
mds: use monotonic time for DecayCounter
This commit has a few side-effects:
- Decaying the DecayCounter is more accurate, we do not need to "skip" decaying
the counter if it's been less than a second since the last decay. The time
delta is now at the granularity of the monotonic clock.
- Any check of the DecayCounter results in updating the current value, even
const checks.
- DecayRate is now established when the DecayCounter is created. There's no longer
a need to pass the DecayRate whenever interacting with the counter.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Lenz Grimmer [Thu, 14 Jun 2018 13:56:39 +0000 (15:56 +0200)]
Merge pull request #22303 from ricardoasmarques/wip-help-menu
mgr/dashboard: Add help menu entry
Reviewed-by: Laura Paduano <lpaduano@suse.com> Reviewed-by: Patrick Nawracay <pnawracay@suse.com> Reviewed-by: Ricardo Dias <rdias@suse.com> Reviewed-by: Stephan Müller <smueller@suse.com> Reviewed-by: Volker Theile <vtheile@suse.com>
Patrick Nawracay [Fri, 18 May 2018 07:38:20 +0000 (09:38 +0200)]
mgr/dashboard: Add token authentication to Grafana proxy
Enables token authentication for the Grafana proxy as additional option
to username/password authentication. The authentication method has to be
set, too.
Erwan Velu [Wed, 13 Jun 2018 12:48:35 +0000 (14:48 +0200)]
tests: Protecting rados bench against endless loop
If the cluster dies during the rados bench, the maximum running time is
no more considered and all emitted aios are pending.
rados bench never quits and the global testing timeout (3600 sec : 1
hour) have to be reach to get a failure.
This situation is dramatic for a background test or a CI run as it locks
the whole job for too long for an event that will never occurs.
This ideal solution would be having 'rados bench' considering a failure
once the timeout is reached when aios are pending.
A possible workaround here is to put use the system command 'timeout'
before calling rados bench and fail if rados didn't completed on time.
To avoid side effects, this patch is doubling rados timeout. If rados
didn't completed after twice the expected time, it have to fail to avoid
locking the whole testing job.
Please find below the way it worked on a real test case.
We can see no IO after t>2 but despite timeout=4 the bench continue.
Thanks to this patch, the bench is stopped at t=8 and return 1.
Erwan Velu [Wed, 13 Jun 2018 12:25:04 +0000 (14:25 +0200)]
qa/standalone/ceph-helpers.sh: Defining custom timeout for wait_for_clean()
The wait_for_clean() is using the default timeout aka 300sec = 5mn.
wait_for_clean() is trying to find a clean status within that timeout
_or_ reset its counter if any progress got made in between loops.
In a case where the cluster is sane, the recovery should be made in
shorter than 5mn but it the cluster died, waiting for 5mn for nothing is
unefficient.
This patch is about defining a custom timeout for a wait_for_clean() not
to wait much more that 1m30 (90sec). If no progress is made in that
period, there is very few chance this will read the a valid state
anyhow.
Kefu Chai [Thu, 14 Jun 2018 01:32:08 +0000 (09:32 +0800)]
cmake: update BuildSPDK for spdk-18.05
in spdk v18.05, libuuid is linked by libspdk_util.a, in which,
it is used by lib/util/uuid.c. and libspdk_vol.a uses the wrapper
function exposed by libspdk_util.a, so update the CMakefile script to
reflect the change.
Kefu Chai [Sat, 26 May 2018 05:35:26 +0000 (13:35 +0800)]
common/Throttle: extract ThrottleInterface
the Message classes are shared by OSD and other components of Ceph,
and the throttle in Policy class is different in seastar and
non-seastar world. we will have different implementations for the
seastar applications and non-seastar apps, to consolidate these
two implementations, we need to introduce a common interface for
them.
Tatjana Dehler [Wed, 23 May 2018 14:35:51 +0000 (16:35 +0200)]
mgr/dashboard: add config options to documentation page
This commit adds the config options stored by the MON database to the
configuration documentation page.
One can filter for these config options by setting the 'Source' filter
to 'mon' on the configuration documentation page.
Venky Shankar [Tue, 29 May 2018 05:45:40 +0000 (01:45 -0400)]
rbd-mirror: schedule rebalancer to level-load instances
Policy implementation takes care of evenly balancing images
across rbd mirror instances. This is done when images are
added to the map and/or instances are added or removed with
the exception of image removal -- removing images does not
reshuffle other (mapped) images which can result in some of
the instances under loaded (in worst case, if one removes
images which all map to a particular instance, that instance
would remain idle until more images are added or a shuffle is
triggered).
We could possibly trigger map shuffle when images are removed,
but that would change the interface between Policy and ImageMap
class (in the form of changes to Policy::remove_images()). Also,
policy (and its implementations) would have to do more work when
the above class method is invoked.
Therefore, an interval based rebalancer is added to ImageMap for
periodic rebalancing of images only if the following conditions
are met:
- policy has been idle for a configured time duration
- no scheduled or in-transit operations
Venky Shankar [Mon, 4 Jun 2018 09:34:58 +0000 (05:34 -0400)]
rbd-mirror: fix state transition table for disassociation
The final state transition when disassociating (removing) images
does not purge the image state map for a given image. This can
also result in uneven balance of images across instances as the
policy implementation relies on this structure to figure out
total number of images tracked.
Kefu Chai [Tue, 13 Mar 2018 02:28:55 +0000 (10:28 +0800)]
src/msg: extract Policy into its own header
and templaterize it. as we need to share Policy between seastar app and
non-seastar apps. and the Throttle interface for seastar is different
from that for non-seastar, so we should templaterize the Policy and
PolicySet.
This patch is about:
- Adding the missing headers from src/messages
- Adding the missing types from the existing headers
- Adding blank lines to keep includes and types in a visual block.
That is much easier to read and keep the same visual as the rest of the file.
Erwan Velu [Mon, 11 Jun 2018 14:22:05 +0000 (16:22 +0200)]
test/encoding/types.h: Adjusting src/cls entries
This patch is about:
- Adding the missing headers from src/cls
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
Erwan Velu [Mon, 11 Jun 2018 14:20:01 +0000 (16:20 +0200)]
test/encoding/types.h: Adjusting src/rgw entries
This patch is about:
- Adding the missing headers from src/rgw
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
Erwan Velu [Mon, 11 Jun 2018 14:09:53 +0000 (16:09 +0200)]
test/encoding/types.h: Adjusting src/mds entries
This patch is about:
- Adding the missing headers from src/mds
- Adding the missing types from the existing headers
- Adding blank lines to keep includes and types in a visual block.
That is much easier to read and keep the same visual as the rest of the file.
Erwan Velu [Mon, 11 Jun 2018 14:04:08 +0000 (16:04 +0200)]
test/encoding/types.h: Adjusting src/os entries
This patch is about:
- Adding the missing headers from src/os
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
Erwan Velu [Mon, 11 Jun 2018 14:01:12 +0000 (16:01 +0200)]
test/encoding/types.h: Adjusting src/osd entries
This patch is about:
- Adding the missing headers from src/osd
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
- Moving crush entries avoid let all the osd entries in a collocated place
Sage Weil [Tue, 12 Jun 2018 13:31:16 +0000 (08:31 -0500)]
Merge PR #21825 into master
* refs/pull/21825/head:
os/bluestore: rename new bitmap allocator class to BitmapAllocator.
os/bluestore: perform allocations aligned with min_length in new bitmap allocator
test/objectstore/unitetest_fastbmap_allocator: replace ASSERT_TRUE with
os/bluestore: respect min_length as allocation granularity for new
os/bluestore: cosmetic new allocator internal method rename.
os/bluestore: properly respect min_length when analysing partially free
os/bluestore: cosmetic cleanup in new bitmap allocator.
os/bluestore: more verbose logging in new bitmap allocator
os/bluestore: default to bitmap allocator for bluestore/bluefs
os/bluestore: remove original bitmap allocator
os/bluestore: align BitMap allocator's init_rm_free/init_add_free parameters with min_alloc_size
os/bluestore: fix improper access to a BitmapFastAllocator::last_pos
test/allocator: move bluestore allocator's benchmarks to a standalone UT
os/bluestore: add new bitmap allocator
test/allocator: get rid off bitmap allocator specifics and introduce new
test/fio: dump mempool on job completion
Reviewed-by: Varada Kari <varadaraja.kari@flipkart.com>
Sage Weil [Tue, 12 Jun 2018 13:27:17 +0000 (08:27 -0500)]
Merge PR #22423 into master
* refs/pull/22423/head:
common/blkdev: fix non-linux build for get_device_id
common/blkdev: do not include vendor in fallback mode
mgr: allow open-ended life expectancy
mgr: use prettified durations for life expectancy
common/ceph_time: very lame timespan_str() helper
mgr: "predicted failure" -> "life expectancy", and as a range
mgr: detailed output for 'ceph device ...'
mgr/DaemonState: skip blank device_ids
osd: skip blank device ids
mgr: track and report device names too
mgr/ActivePyModule: expose 'devices' to python modules
mgr: move dump/print to DeviceState
mgr: implement 'device {set,rm}-predicted-failure' commands
mgr: load persistent device metadata on mgr stat
include/utime: add parse() method
mgr: tolerate racing config-key change during load_store()
mgr: implement 'device {ls,ls-by-daemon,ls-by-host,info}' commands
mgr/DaemonState: populate DeviceState structures
mgr: parse out devids from daemon metadata
common/blkdev: add modelines
osd: include device_ids in metadata
common/blkdev: add get_device_id() helper.
Reviewed-by: Erwan Velu <erwan@redhat.com> Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
Igor Fedotov [Thu, 31 May 2018 13:53:31 +0000 (16:53 +0300)]
os/bluestore: respect min_length as allocation granularity for new
bitmap allocator.
It was used a real minimum threshold before this fix which allowed e.g.
allocated extent length to be equal to min_length + 1.