Joseph Sawaya [Tue, 3 Aug 2021 14:02:30 +0000 (10:02 -0400)]
mgr/rook: update DefaultFetcher device path to look at local and fix bug
This commit updates the DefaultFetcher device method's way of getting a device
path to look at the PV's local attribute. It also fixes a bug related to a PV
not having annotations.
Joseph Sawaya [Fri, 9 Jul 2021 20:36:36 +0000 (16:36 -0400)]
mgr/rook: create KubernetesCustomResource class to fetch CRs
This commit creates the KubernetesCustomResource class that inherits from
KubernetesResource to be able to fetch CRs using the CustomObjectsApi
in a cleaner way. It replaces previous try-except pattern.
Joseph Sawaya [Thu, 8 Jul 2021 13:08:08 +0000 (09:08 -0400)]
mgr/rook: fix device ls error handling
This commit removes the check for too many SCs in the cluster
matching the storage class specified in the module option,
which can never happen. It also changes the log.exception
calls to log.error calls.
Joseph Sawaya [Wed, 30 Jun 2021 20:51:21 +0000 (16:51 -0400)]
mgr/rook: fix typing errors related to storage_class_name and device ls
This commit fixes a couple of typing issues related to the updating of
the storage_class_name module option and the get_discovered_devices
function called when a user does ceph orch device ls.
Joseph Sawaya [Wed, 30 Jun 2021 20:06:08 +0000 (16:06 -0400)]
mgr/rook: add mgr/rook/storage_class_name to ceph config
This commit adds a storage_class_name Option for the Rook Module
so the user can specify a storage class that the orchestrator
will look at to gather inventory.
Joseph Sawaya [Mon, 28 Jun 2021 15:48:59 +0000 (11:48 -0400)]
mgr/rook: ceph orch device ls fetch and display info about PVs
This commit makes it so `ceph orch device ls` displays as much information
as it can get about the PVs in the Kubernetes cluster it is running on,
using info on the PV objects and fetched from the LSO's discovery result CRs.
Sage Weil [Tue, 13 Jul 2021 16:04:38 +0000 (12:04 -0400)]
Merge PR #42014 into master
* refs/pull/42014/head:
mon/LogMonitor: make 'ceph log last' work with new storage
mon/LogMonitor: transition log entries on upgrade to quincy
mon/LogMonitor: store logentries in separate keys
mon/LogMonitor: replace semi-broken pending_summary with pending_keys
mon/LogMonitor: externally log events from when we were out of quorum
mon/LogMonitor: factor logging to file out of update_from_paxos
mon: funnel SIGHUP handler through handle_mon_signal
common/LogEntry: add some constness
mon/LogMonitor: log mkfs in cluster channel
common/LRUSet: combine lru and hash-based lookup
mon/LogMonitor: remove stray derr
mgr/dashboard: remove usage of 'rgw_frontend_ssl_key'
Fixes: https://tracker.ceph.com/issues/51643 Signed-off-by: Avan Thakkar <athakkar@redhat.com>
Removing the usage of rgw_frontend_ssl_key from the rgw service form.
crimson/tools/store_nbd: handle ECONNABORTED returned by accept()
if we abort accept() call, an ECONNABORTED is expected. and we should
handle it, otherwise unhandled exception will be noticed by seastar's
reactor. and it complains in that case.
crimson/tools/store_nbd: call segment_manager->close() after tm->close()
TransactionManager::close() calls into journal->close(), which in turn
calls BlockSegmentManager::segment_close(). and
SegmentStateTracker::write_out() is then called by
BlockSegmentManager::segment_close().
but BlockSegmentManager::close() closes the underlying seastar::file,
we are not able to write to the file after closing it.
in this change, to ensure that we can close a segment correctly in
TMDriver::close(), tm->close() is called before
segment_manager->close().
In days of yore, the Developer Guide linked to the
IRC page at ceph.io. After the 2021 rewriting of
ceph.io, a new era began, and that page was no
longer easily accessible (it could still be found
at old.ceph.com, but this was deprecated).
Anyway, that IRC information should be included in
the docs. This PR makes sure that the IRC
information is included in the docs.
Yin Congmin [Wed, 30 Jun 2021 08:56:23 +0000 (16:56 +0800)]
common/buffer: fix SIGABRT in rebuild_aligned_size_and_memory
There is such a bl, which needs to satisfy two conditions:
1)all ptrs' length sum except last ptr is aligned with 4K;
2)the length of last ptr is 0.
This bl will cause stack corruption when calling
bufferlist::rebuild_aligned_size_and_memory().
Deal with this special scenario in rebuild_aligned_size_and_memory() to
solve the bug. And added a specialtest-case to reproduce this scenario.
This wouldn't cause issues if the tests are run individually. But when
running all the tests in the files mentioned above, it could introduce
unexpected test failures down the line. For e.g., multiple tests may
create pools with same name and if they are not cleaned up properly, this
could result in unexpected failures in a subsequent test.
tools/kvstore_tool: add "std::" before ostream and string
also use <iosfwd> instead of <iostream> for forward declaration of
std::ostream, so that we don't need to include the whole iostream
header file in kvstore_tool.h.
mon/OSDMonitor: account for PG merging in epoch_by_pg accounting
After a pool has merged PGs, the epoch_by_pg accounting will refer
to osdmap epochs of PGs that no longer exist. We'll never again get
OSD beacons for these PGs, so the min epoch in epoch_by_pg will not
advance until the mon leader has restarted. The effect of this is
that osdmaps are not trimmed after a pool has undergone PG merging,
until the mon leader restarts. To fix, we unconditionally resize
epoch_by_pg to the pg_num of the pool during each beacon report.
Fixes: https://tracker.ceph.com/issues/48212 Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
common/options: global.yaml: change ms_bind_port_max to 7568
If the cluster is set to have very dense nodes (>60 OSDs per host)
we have to make sure to assign sufficient ports for Ceph OSDs. The
current default (6800-7300) currently allows for no more than 62 OSDs
per host. For cluster with dense nodes like this we have to adjust the
setting "ms_bind_port_max" to a suitable value. Each OSD will consume
8 additional ports. For example, given a host that is set to run 96 OSDs,
768 ports will be needed. "ms_bind_port_max" should be set at least to
7568.
Fixes: https://tracker.ceph.com/issues/48292 Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
blk/kernel: Only use file hint capabilities if available.
Without WRITE_LIFE capabilities, only one file is used.
And rocksdb sets this value also to > 0, so we need to catch this here
instead of trusting rocksdb to set write_hint.
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
This is a leading part of the changes to implement bluestore on
FreeBSD. Without this invalid indexing in the descriptor arrays
will occur.
Creates a new enum: `blk_access_mode_t`
to describe `BUFFERED` and `DIRECT `mode access
with `choose_fd()` to get the correct file for the typed access
and adds
a pretty-printer
boolean convertor `blk_access_mode_t::buffermode(bool)`
This PR is a redo for PR #37258, since that one was lost
in rebasing errors. But the review notes are still there.
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
zhipeng li [Mon, 5 Jul 2021 14:15:02 +0000 (22:15 +0800)]
cmake: set denc_plugin_dir with the full path
This commit changes denc_plugin_dir from relative to absolute path, so
that CEPH_DENC_MOD_DIR points to the absolute path and ceph-dencoder
is able to load the shared libraries from the specified path.
Fixes:https://tracker.ceph.com/issues/51519 Signed-off-by: zhipeng li <qiuxinyidian@gmail.com>
crimson/admin: dump DERIVE metrics as signed integer
per include/seastar/core/metrics.hh,
// The value binding data types
enum class data_type : uint8_t {
COUNTER, // unsigned int 64
GAUGE, // double
DERIVE, // signed int 64
ABSOLUTE, // unsigned int 64
HISTOGRAM,
};