Commit Graph

1051 Commits

Author SHA1 Message Date
Sebastian Wagner
d361f77a78
Merge pull request #26171 from sebastian-philipp/orchestrator-merge-create-add
mgr/orchestrator: Unify `osd create` and `osd add`

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2019-02-01 16:42:36 +01:00
Sebastian Wagner
9e926e9927 mgr/orchestrator: Unify osd create and osd add
Also:

* Added some more tests
* Better validation of drive Groups
* Simplified `TestWriteCompletion`

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2019-02-01 10:10:59 +01:00
Patrick Donnelly
0d26266ccb
Merge PR #26038 into master
* refs/pull/26038/head:
	mds: simplify recall warnings
	mds: add extra details for cache drop output
	qa: test mds_max_caps_per_client conf
	mds: limit maximum number of caps held by session
	mds: adapt drop cache for incremental recall
	mds: recall caps incrementally
	mds: adapt drop cache for incremental trim
	mds: add throttle for trimming MDCache
	mds: cleanup SessionMap init
	mds: cleanup Session init

Reviewed-by: Zheng Yan <zyan@redhat.com>
2019-01-31 12:08:26 -08:00
Patrick Donnelly
c0b3a11484
mds: simplify recall warnings
Instead of a timeout and complicated decisions about whether the client is
releasing caps in an expeditious fashion, just use a DecayCounter that tracks
the number of caps we've recalled. This counter is decremented whenever the
client releases caps. If the counter passes a threshold, then we raise the
warning.

Similar reworking is done for the steady-state recall of client caps. Another
release DecayCounter is added so we can tell when the client is not releasing
any more caps.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-31 12:07:54 -08:00
Casey Bodley
aacd111e39
Merge pull request #26205 from cbodley/wip-38115
qa/mon: fix cluster support for monmap bootstrap

Reviewed-by: Sage Weil <sage@redhat.com>
2019-01-30 13:55:52 -05:00
Casey Bodley
0aebb55af5 qa/mon: fix cluster support for monmap bootstrap
-filter out mons from other clusters
-fix parsing of mon name from role

Fixes: http://tracker.ceph.com/issues/38115

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-01-30 12:24:36 -05:00
alfonsomthd
c094e2d702 mgr/dashboard: fix skipped backend API tests
* When the creation of the cluster is delegated to vstart_runner.py
(--create or --create-target-only) the amount of MGRs required
is calculated by the script so there is no more skipped tests
due to insufficient amount of MGRs.

* Additionally, this issue is not reproducible anymore:
Fixes: https://tracker.ceph.com/issues/37964

* Fixed typo: TEUTHOLOFY_PY_REQS

Signed-off-by: Alfonso Martínez <almartin@redhat.com>
2019-01-30 13:05:02 +01:00
Patrick Donnelly
30aaa884bf
qa: test mds_max_caps_per_client conf
That the MDS will not let a client sit above mds_max_caps_per_client caps.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-29 15:16:31 -08:00
Patrick Donnelly
ef46216d8d
mds: recall caps incrementally
As with trimming, use DecayCounters to throttle the number of caps we recall,
both globally and per-session.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-29 15:16:30 -08:00
Patrick Donnelly
7fa1e3c37f
mds: remove cache drop asok command
`cache drop` is a long running command that will block the asok interface
(while the tell version does not). Attempting to abort the command with ^C or
equivalents will simply cause the `ceph` command to exit but won't stop the
asok command handler from waiting for the cache drop operation to complete.

Instead, just allow the tell version.

Fixes: http://tracker.ceph.com/issues/38020
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-23 06:48:58 -08:00
Matt Benjamin
d4c4082cca
Merge pull request #25774 from yehudasa/wip-rgw-tiering-3
rgw: rados tiering
2019-01-22 12:42:21 -05:00
Patrick Donnelly
47a2c0da21
Merge PR #26012 into master
* refs/pull/26012/head:
	qa: add test that down fs does not ERR
	mon/MDSMonitor: skip offline ERR for down fs

Reviewed-by: Douglas Fuller <dfuller@redhat.com>
2019-01-19 17:21:42 -08:00
Patrick Donnelly
cae0756639
Merge PR #25973 into master
* refs/pull/25973/head:
	qa: use simpler fs fail to bring fs down
	MDSMonitor: add fs fail command

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Douglas Fuller <dfuller@redhat.com>
2019-01-19 17:18:08 -08:00
Patrick Donnelly
f046f14f4a
Merge PR #25971 into master
* refs/pull/25971/head:
	qa: test hex dump_inode
	pybind/ceph_argparse: accept int with non-decimal base

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-01-19 17:17:04 -08:00
Patrick Donnelly
6e1d7c4b39
qa: use simpler fs fail to bring fs down
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-18 23:37:17 -08:00
Patrick Donnelly
cabefdeba0
qa: add test that down fs does not ERR
Also fix other test cases to not rely on health warning.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-17 18:14:10 -08:00
Patrick Donnelly
b62daf3b25
qa: test hex dump_inode
Fixes: http://tracker.ceph.com/issues/24721

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-17 07:38:12 -08:00
Sage Weil
236c8a4528 qa/tasks/ceph.py: bracket addrvecs in mon_host etc
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-16 08:33:03 -06:00
Tim Serong
fa6cd8ae65 mgr/orchestrator_cli: Add service and service-instance start/stop/reload
Signed-off-by: Tim Serong <tserong@suse.com>
2019-01-15 17:11:06 +11:00
Sage Weil
ff67c66ee6 Merge PR #25932 into master
* refs/pull/25932/head:
	qa/tasks/ceph: stop any split/merge activity before scrubbing

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2019-01-14 14:08:25 -06:00
Patrick Donnelly
d6ee4aa0fa
Merge PR #25843 into master
* refs/pull/25843/head:
	qa: fix damage expectation setting
	qa: fix loop variable reference

Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
2019-01-14 11:37:24 -08:00
Yehuda Sadeh
ff458b322d qa/rgw_multi: adjust structure for new zone config
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-14 08:50:23 -08:00
Lenz Grimmer
385e767f5f
Merge pull request #25876 from s0nea/wip-dashboard-rename-config-option-types
mgr/dashboard: config option type names update

Reviewed-by: Stephan Müller <smueller@suse.com>
2019-01-14 15:14:21 +01:00
Sage Weil
54c5202b74 qa/tasks/ceph: stop any split/merge activity before scrubbing
If there are leftover merges at the end of the run they can take a long
time to get through, blowing our timeout for (waiting for pgs to become
active and to stop splitting/merge) and scrubbing pgs.  Stop all of that
at the end of the run so that we don't have to wait so long.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-14 06:51:21 -06:00
Lenz Grimmer
73abdcfd82
Merge pull request #25913 from s0nea/wip-dashboard-test_full_health-fix
mgr/dashboard: Fix test_full_health test

Reviewed-by: Sebastian Wagner <swagner@suse.com>
2019-01-14 10:27:47 +01:00
Lenz Grimmer
9cbf2d9e09
Merge pull request #25905 from s0nea/wip-dashboard-osd-add-flag-fix
mgr/dashboard: Provide all four 'mandatory' OSD flags

Reviewed-by: Patrick Nawracay <pnawracay@suse.com>
Reviewed-by: Ricardo Dias <rdias@suse.com>
2019-01-14 10:27:29 +01:00
Sage Weil
c18a5d2e1c qa/tasks/rebuild_mondb: use monmap to properly name the mons
We used to rely on the monmap bootstrap code to magically create a valid
monmap with named mons because our old-style ceph.conf had mon_addr
values in each mon.foo section.  Instead, just feed it a real monmap
from pre-destruction.

In practice, a user can manually generate this monmap, or rename the
mons after the fact with --inject-monmap, or whatever.  Out of scope
for this test, so we just do the simplest thing to make the rebuild test
work.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-11 16:10:14 -06:00
Yehuda Sadeh
2d6b645d23 qa/rgw: support for storage classes
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-11 08:43:41 -08:00
Tatjana Dehler
146175a872 mgr/dashboard: Fix test_full_health test
Fixes: http://tracker.ceph.com/issues/37872
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2019-01-11 16:12:59 +01:00
Tatjana Dehler
613ea569f3 mgr/dashboard: Provide all four 'mandatory' flags
Fixes: https://tracker.ceph.com/issues/37857
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2019-01-11 10:52:06 +01:00
Lenz Grimmer
7fe4820c60
Merge pull request #25791 from rhcs-dashboard/36740-pool-stats-read-write-columns
mgr/dashboard: add columns to Pools table

Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
2019-01-10 09:58:05 +01:00
Tatjana Dehler
17bdec41fc mgr/dashboard: use new config options type names
Use the new config option type names (given by the cluster) in the
dashboard.

Fixes: http://tracker.ceph.com/issues/37843
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2019-01-10 08:08:54 +01:00
Yehuda Sadeh
83f7af473b qa/ragweed: change the way we determine which ragweed branch to use
- if force-branch, use that
 - otherwise:
    - read default-branch from client config
    - use suite branch or ceph branch if suite branch is not defined
    - if this branch is one of official releases (or master), prefix
      it with 'ceph-'

try to clone branch specified above, if failed (branch doesn't exist probably)
and not force-branch, use default-branch.
Also add an option to override ragweed repo.

Switched all force-branch from ragweed qa suite to default-branch.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-09 11:02:57 -08:00
Patrick Donnelly
360550b1ab
qa: fix damage expectation setting
The purge queue expectation was being ignored.

Fixes: http://tracker.ceph.com/issues/37837

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-09 07:05:01 -08:00
Patrick Donnelly
909d0f1333
qa: fix loop variable reference
Otherwise the Mutation for Truncate is done on obj_id of the last iteration of the previous loop.

Fixes: http://tracker.ceph.com/issues/37836

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-09 07:05:00 -08:00
Lenz Grimmer
26de63e5af
Merge pull request #25813 from rhcs-dashboard/updated-test-full-health
mgr/dashboard: updated health API test
2019-01-09 14:32:40 +01:00
alfonsomthd
d9404d6813 mgr/dashboard: add columns to Pools table
* Added columns:
Usage, Read bytes, Write bytes, Read ops, Write ops.

* TableKeyValueComponent:
Bugfix in method: _insertFlattenObjects

* Updated jest global mock:
Now window.getComputedStyle returns an object
that has getPropertyValue defined
(otherwise jest pool tests involving chart.js threw error). See:
https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle

Fixes: https://tracker.ceph.com/issues/37717
Fixes: https://tracker.ceph.com/issues/34320

Signed-off-by: Alfonso Martínez <almartin@redhat.com>
2019-01-09 08:59:47 +01:00
Patrick Donnelly
03990857fa
Merge PR #25621 into master
* refs/pull/25621/head:
	mds: allow boot on read-only
	mds: setup readonly mode for PurgeQueue
	mds: return string_view for type str
	mds: add missing locks for PurgeQueue methods
	mds: delete on_error context on des

Reviewed-by: Zheng Yan <zyan@redhat.com>
2019-01-08 15:56:16 -08:00
Patrick Donnelly
4e4db26c9c
Merge PR #24556 into master
* refs/pull/24556/head:
	tools/cephfs: make 'cephfs-data-scan scan_links' update snaptable
	tools/cephfs: make 'cephfs-data-scan scan_links' update inotable

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-01-08 15:10:28 -08:00
Sage Weil
78070b96bf qa/tasks/radosbench: default to 64k writes
The default rados bench is 4MB writes, but this tends to fill up our
tiny test clusters.  Use 64KB instead.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-07 07:22:29 -06:00
alfonsomthd
dcf46cfe94 mgr/dashboard: updated health API test
Updated test_full_health to reflect changes in
mgr_map / mon_status payloads.

Signed-off-by: Alfonso Martínez <almartin@redhat.com>
2019-01-07 12:49:25 +01:00
Yan, Zheng
b593e5a881 tools/cephfs: make 'cephfs-data-scan scan_links' update snaptable
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2019-01-07 16:50:04 +08:00
Yan, Zheng
01089652d3 tools/cephfs: make 'cephfs-data-scan scan_links' update inotable
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2019-01-07 16:49:31 +08:00
Sage Weil
251f667ef8 Merge PR #25009 into master
* refs/pull/25009/head:
	librbd: stringify locker name with get_legacy_str()
	osdc/Objecter: fix list_watchers addr rendering to match legacy
	test/crimson: disable unittest_seastar_messenger test
	msg/msg_types: encode entity_addr_t TYPE_ANY as TYPE_LEGACY for pre-nautilus
	client: make blacklist detection handle TYPE_ANY entries
	mon/OSDMonitor: maintain compat output for 'blacklist ls'
	client: maintain compat for {inst,addr}_str in status dump
	qa/tasks/ceph_manager: compare osd flush seq #'s as ints
	qa/suites/fs: make use of simple.yaml where appropriate
	qa/msgr: move msgr factet into generic re-usable dir
	crimson: fix monmap build for seastar
	doc/start/ceph.conf: trim the sample ceph.conf file
	doc/rados/operations: only describe --public-{addr,network} method for adding mons
	PendingReleaseNotes: deprecate 'mon addr'
	doc: fix some 'mon addr' references
	doc/rados/configuration: fix some 'mon addr' references
	doc/rados/configuration/network-config-ref: revise network docs somewhat
	doc/rados/configuration/network-config-ref: remove totally obsolete section
	qa/suites/rados: replace mon_seesaw.py task with a small bash script
	qa/suites/fs/upgrade: don't bind to v2 addrs
	qa/tasks/mon_thrash: avoid 'mon addr' in mon section
	mon/MonClient: disable ms_bind_msgr2 if NAUTILUS feature not set
	osd/OSDMap: maintain compat addr fields
	msg/msg_types: add get_legacy_str()
	mds/MDSMap.h: maintain compat addr field
	mon/MgrMap: maintain compat active_addr field
	mon/MonClient: reconnect to mon if it's addrvec appears to have changed
	qa/tasks/ceph.conf.template: increase mon_mgr_mkfs_grace
	msg/async/ProtocolV2: fill in IP for all peer_addrs
	msg/async: print all addrs on debug lines
	mon/MonMap: no noname- mon name prefix when for_mkfs
	ceph-monstore-tool: print initial monmap
	msg/async/ProtocolV2: advertise ourselves as a v2 addr when using v2 protocol
	msg/async: assert existing protocol matches current protocol
	msg/async: add missing modelines
	mon/MonMap: add missing modeline
	vstart.sh: put mon addrs in mon_host, not 'mon addr'
	msg/async: better debug around conn map lookups and updates
	mon/MonClient: dump initial monmap at debug level 10
	qa/standalone/osd/osd-fast-mark-down: use v1 addr w/ simplemessenger
	qa/tasks/ceph: set initial monmap features with using addrvec addrs
	monmaptool: add --enable-all-features option
	qa/tasks/ceph: only use monmaptool --addv if addr has [,:v]
	qa/tasks/ceph_manager: make get_mon_status use mon addr
	qa/tasks/ceph: keep mon addrs in ctx namespace
	mon/OSDMonitor: log all osd addrs on boot
	msg/simple: behave when v2 and v1 addrs are present at target
	mon/MonClient: warn if global_id changes
	msg/Connection: add warning/note on get_peer_global_id
	mds/MDSDaemon: clean up handle_mds_map debug output a bit
	qa/suites/rados/upgrade: debug mds
	mds/MDSRank: improve is_stale_message to handle addrvecs
	msg/async: make loopback detect when sending to one of our many addrs
	qa/suites/rados/upgrade: no aggressive pg num changes
	mon/OSDMonitor: require nautilus mons for require_osd_release=nautilus
	mon/OSDMonitor: require mimic mons for require_osd_release=mimic
	qa/suites/rados/thrash-old-clients: use legacy addr syntax in ceph.conf
	msg/async: preserve peer features when replacing a connection
	qa/tasks/ceph.py: move methods from teuthology.git into ceph.py directly; support mon bind * options
	mon/MonMap: adjust build_initial behavior for mkfs vs probe
	mon/MonMap: improve ambiguous addr behavior
	qa/suites/rados/upgrade: spread mons a bit
	qa/rados/thrash-old-clients: keep mons on separate hosts
	qa/standalone/mon/misc.sh: tweak test to be more robust
	qa/tasks/mon_seesaw: expect v1/v2 prefix in addr
	osd/OSDMap: fix is_blacklisted() check to assume type ANY
	mon/OSDMonitor: use ANY addr type for blacklisting
	mon/msg_types: TYPE_V1ORV2 -> TYPE_ANY
	qa/workunits/cephtool: fix blacklist test
	qa/suites/upgrade: install old version with only v1 addrs
	common/options: by default, bind to both msgr v1 and v2 addresses
	vstart.sh: add --msgr1, --msgr2, --msgr21 options
	msg/async/ProtocolV2: be flexible with server identity check
	msg/msg_types: fix entity_addrvec_t::parse() with null end arg
	qa/suites/rados/basic/msgr: no msgr2 addrs in initial monmaps
	qa/tasks/ceph: add 'mon_bind_addrvec' and 'mon_bind_msgr2' options
	monmaptool: add --addv argument to pass in addrvec directly
	qa/suites/rados/basic/msgr: do not use msgr2 with simplemessenger
	qa/suites/rados/basic/msgr: async is not experimental
	messages/MOSDBoot: fix compat with pre-nautilus
	mon/MonMap: allow v1 or v2 to be explicitly specified along with part
	msg/msg_types: allow parsing of IPs without assuming v1 vs v2
	msg/msg_types: default parse to v2 addrs
	msg: standarize on v1: and v2: prefixes for *all* entity_addr_t's
	vstart.sh: use msgr2 by default
	mon/MonMap: remove get_addr() methods
	ceph-mon: adjust startup/bind/join sequence to use addrs
	mon: use MonMap::get_addrs() (instead of get_addr())
	mon/MonClient: change pending_cons to addrvec-based map
	mon/MonMap: fix set_addr() caller, kill wrapper
	mon/MonMap: remove addr-based add()
	monmaptool: fix --add to do either legacy or msgr2+legacy
	monmaptool: clean up iterator use a bit
	mon/MonMap: handle ambiguous mon addrs by trying both legacy and msgr
	mon/MonMap: take addrvec for set_initial_members
	mon/MonMap: use addrvecs for test instances
	mon: pass addrvec via MMonJoin
	mon/MonmapMonitor: fix 'mon add' to populate addrvec
	mon/MonMap: addr -> addrvec
	msg/async/ProtocolV2: only update socket_addr if we learned our addr
	osd: go active even if mon only accepted our v1 addr
	test/msgr: add test for msgr2 protocol
	msg/async/ProtocolV2: share socket_addr and all addrs during handshake
	msg/async: print socket_addr for the connection
	msg/async: msgr2 protocol placeholder
	msg/async: move ProtocolV1 class to its own source file
	msg/async: keep listen addr in ServerSocket, pass to new connections
	msg/async/AsyncMessenger: fix set_addr_unknowns

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2019-01-04 13:42:09 -06:00
Ricardo Marques
695976705f
Merge pull request #25210 from dillaman/wip-dashboard-rbd-mirroring
dashboard: support configuring block mirroring pools and peers
2019-01-04 10:39:09 +00:00
Patrick Donnelly
ee7d253494
Merge PR #24635 into master
* refs/pull/24635/head:
	test: add scrub control command tests
	mds: scrub abort/pause/resume/status control commands
	test: switch using "scrub start" tell interface to initiate scrub
	mds: introduce "scrub start" tell interface to initiate scrub
	mds: dump scrub formatted output when context completion
	mds: generate random scrub tag when empty
	mds: introduce C_ExecAndReply context completion class
	mds: use CInode::scrub_is_in_progress() wherever required

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Zheng Yan <zyan@redhat.com>
2019-01-03 10:15:31 -08:00
Sage Weil
0d4c4db3c0 qa/tasks/ceph_manager: compare osd flush seq #'s as ints
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:38 -06:00
Sage Weil
16980bd12f qa/suites/rados: replace mon_seesaw.py task with a small bash script
The teuthology test did not like the change to remove 'mon addr' from
ceph.conf.  The standalone script is easier to test.

Note that it avoids mon names 'a', 'b', 'c' since the MonMap::build_initial
uses those.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
caa3a82ada qa/tasks/mon_thrash: avoid 'mon addr' in mon section
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
c4ae3554e1 qa/tasks/ceph.conf.template: increase mon_mgr_mkfs_grace
The grace starts with the monmap creation stamp, and ceph.py does a lot
of work between creating that map and actually starting daemons (e.g.,
preparing all of the osd devices), leading to occasional MGR_DOWN errors.
Double the grace period.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00