Stephan Müller [Wed, 21 Aug 2019 08:34:02 +0000 (10:34 +0200)]
mgr/dashboard: CephFS directory component
Now it's possible to list directories of a CephFS in a tree view inside
the dashboard.
Currently the tree is not refreshed every 5 seconds as the listing of
directories is a heavier operation.
When a directory is clicked, the dashboard will fetch it's
subdirectories and the subdirectories of it's subdirectories in order to
show if the subdirectories have subdirectories.
The details of a directory show the full path, it's quota values and
the path they originate from and a list of all snapshots.
Fixes: https://tracker.ceph.com/issues/41575 Signed-off-by: Stephan Müller <smueller@suse.com>
*** WARNING: ./usr/src/debug/ceph-15.0.0-6512.g62bd825.el8.x86_64/src/common/obj_bencher.cc is executable but has empty or no shebang, removing executable bit
*** WARNING: ./usr/src/debug/ceph-15.0.0-6512.g62bd825.el8.x86_64/src/erasure-code/shec/determinant.c is executable but has empty or no shebang, removing executable bit
*** WARNING: ./usr/src/debug/ceph-15.0.0-6512.g62bd825.el8.x86_64/src/os/bluestore/AvlAllocator.cc is executable but has empty or no shebang, removing executable bit
*** WARNING: ./usr/src/debug/ceph-15.0.0-6512.g62bd825.el8.x86_64/src/os/bluestore/AvlAllocator.h is executable but has empty or no shebang, removing executable bit
Sage Weil [Fri, 25 Oct 2019 02:03:34 +0000 (21:03 -0500)]
ceph-daemon: /var/run/ceph -> /var/run/ceph/$fsid
This is better than having a single /var/run/ceph on the host with a
weird naming scheme. Among other things, it means that we can access
the asok for any daemon for a given fsid from any container on the same
host with the same fsid (notably, a shell).
Sage Weil [Thu, 24 Oct 2019 23:56:04 +0000 (18:56 -0500)]
mon: fix tell to hybrid octopus/pre-octopus mons
We can't decide whether to use the new tell command style based on the
monmap.min_mon_release alone because some mons may be octopus even though
that hasn't updated yet. The same goes for if we look at the combined
features for the cluster--the underlying problem is the monmap doesn't
tell us which mons are octopus and which ones aren't, so we don't know
how to behave.
Instead, allow octopus+ mons to advertise the converted tell commands
going forward, for compatibility with pre-octopus clients (who do the old
style of tell) and for octopus+ clients talking to a min_mon_release <
octopus cluster.
Sage Weil [Thu, 24 Oct 2019 13:41:33 +0000 (08:41 -0500)]
ceph-daemon: only set up crash dir mount if it exists
Sometimes we run containers on a host that doesn't have a crash dir set
up (becuase no daemon has been deployed). Examples include shell and
ceph-volume.
David Zafman [Thu, 24 Oct 2019 18:31:52 +0000 (11:31 -0700)]
ceph-objectstore-tool: call collection_bits() crashes on the meta collection
Skip new check for meta collection
test:
Turn off osd_pool_default_pg_autoscale_mode just like bash tests do
Fix test by checking for new error message
Kefu Chai [Thu, 24 Oct 2019 06:14:40 +0000 (14:14 +0800)]
cmake: support `Seastar_DPDK=ON` option
seastar does not build any 3rd party libraries. but we do. currently, we
build DPDK/SPDK when they are enabled for the messenger backend and
bluestore backend.
in this change, the same function is reused for preparing the DPDK
libraries if `Seastar_DPDK` is enabled. probably we should outsource
this work to install-deps.sh in future, but before that, let's keep
this as a builtin "feature".
Kefu Chai [Thu, 24 Oct 2019 09:35:26 +0000 (17:35 +0800)]
cmake: enable Finddpdk to find DPDK to be built
find_package(dpdk...) is used by seastar to find DPDK if Seastar_DPDK is
enabled. but `build_dpdk()` only exposes `dpdk::dpdk`, and it does not
set the variables like `dpdk_INCLUDE_DIRS` and `dpdk_LIBRARIES` when it
gets called. so we need to adapt Finddpdk to query them from `dpdk::dpdk`
target.
Kefu Chai [Thu, 24 Oct 2019 06:10:32 +0000 (14:10 +0800)]
cmake: define dpdk_LIBRARIES properly
dpdk_LIBRARIES should not be a list of dpdk library target, it should be
a list of paths to them. this also align with the definition of
`Finddpdk.cmake` in seastar project. so, if `Seastar_DPDK` is defined,
we should be able to offer the expected `dpdk_LIBRARIES` for seastar, as
our `Finddpdk.cmake` has higher priority than the one in seastar, and is
used when `find_package(dpdk...)` is called.
Kefu Chai [Thu, 24 Oct 2019 06:07:18 +0000 (14:07 +0800)]
cmake: refactor BuildDPDK
* extract `do_export_dpdk()` into a separated function
* no need to check for `dpdk-ext` target before calling `build_dpdk()`,
as the name of this target should be hidden from the caller of this
function.
Kefu Chai [Wed, 23 Oct 2019 08:08:38 +0000 (16:08 +0800)]
crimson: s/ceph/crimson/ in namespace names
to help differentiate the symbols shared by classic and crimson osd,
after this change, all crimson code will live in "crimson::" namespaces.
and in a follow-up change, all classic code used by crimson will live in
"ceph::" namespaces.
so we don't need to include `include/ceph_assert.h` for it. and
presumably, `ceph_assert()` is for fail the application early when it is
not able to recover from a failure, while `assert()` is for debugging.
Sage Weil [Thu, 24 Oct 2019 02:05:42 +0000 (21:05 -0500)]
Merge PR #30859 into master
* refs/pull/30859/head:
auth: EACCES, not EPERM
mon: shunt old tell commands from cli interface to asok
mon: allow mgr to tell mon.foo smart
mon: include quorum features in quorum_status
qa/workunits/mon/caps.sh: fix test
ceph_test_rados_api_cmd: fix MonDescribe test
Merge branch 'vstart-fs-auth' of git://github.com/batrick/ceph into wip-cleanup-mon-asok
test/pybind/test_ceph_argparse: fix tests
vstart: add volume client keys to keyring
vstart: use fs authorize to create master client key
vstart: redirect some output to stderr
vstart: output command strings to stderr
qa/workunits/cephtool/test.sh: fix 'quorum enter' caller
qa: change mon_status calls to quorum_status or tell commands
mon: fix 'heap ...' command
mon: consolidate 'sync force' commands
mon: allow asok commands to return an error code
mon: move 'quorum enter|exit' and 'mon_status' to asok
mon: fix 'smart' asok command
mon: remove old 'config set' and 'injectargs'
Sage Weil [Thu, 24 Oct 2019 00:46:06 +0000 (19:46 -0500)]
Merge PR #31094 into master
* refs/pull/31094/head:
ceph-daemon: remove redundant --privileged
test_ceph_daemon: test unit, enter, shell
ceph-daemon: drop exec
ceph-daemon: fix exit code for run, shell, enter, exec
ceph-daemon: allow optional command for 'enter'
ceph-daemon: fix LANG for 'enter' command
ceph-daemon: allow shell to take optional command
qa/suites/rados/singleton-nomsgr/ceph-daemon: run test_ceph_daemon.sh
qa/standalone/test_ceph_daemon.sh: add new functional tests
test_ceph_daemon.sh: use newer image
ceph-daemon: unconditionally enable and start crash unit
ceph-daemon: fix crash unit cleanup
ceph-daemon: include 'crash' unit/item in 'ls' output
ceph-daemon: fix 'ls'
mgr/orchestrator: s/sdd/ssd/
mgr/ssh: remove stdout/stderr kludges
ceph-daemon: fix ceph-volume command to write stdout to stdout
Samuel Just [Tue, 17 Sep 2019 19:10:52 +0000 (12:10 -0700)]
osd/scheduler: introduce mClockScheduler
mClockScheduler schedules items based on op_scheduler_class
with configured mclock parameters. Items which should be
scheduled immediately (op_scheduler_class::immediate) are placed
into a single queue as it's not clear that there's a reason to
differentiate among them.
A subsequent patch will add support for client provided mclock
params and dmclock request state.