Sage Weil [Thu, 20 Dec 2018 03:22:35 +0000 (21:22 -0600)]
Merge PR #25360 into master
* refs/pull/25360/head:
qa/workunits/mon/pg_autoscaler: clean up pools afterwards
qa/suites/rados/singletone/all/pg-autoscaler: whitelist health warnings
qa/tasks/ceph: wait for splits/merges before final scrub
mon/OSDMonitor: be tidy with target_size_ratio and pre-nautilus code
mgr/pg_autoscaler: simplify conditions
qa/suites/rados: add simple pg-autoscaler test
qa/workunits/cephtool/test.sh: pg_autoscale_mode=off while testing pg_num etc
doc/rados/operations: document autoscaler and its health warnings
mgr/pg_autoscaler: add pg autoscaler module
pybind/mgr/mgr_util: move format_ helpers out of status module
mon/OSDMonitor: accept optional target_size_{bytes,ratio} to 'osd pool create'
mon/OSDMonitor: remove max_split_count configurable
osd/osd_types: pool_opts_t: int -> int64_t
osd/osd_types: pool_opts: fix whitespace
osd/osd_types: pool_opts_t: make encoding feature-dependent
mgr/devicehealth: pg_num_min 1 for device_health_metrics pool
mon/OSDMonitor: accept optional pg_num_min to 'osd pool create'
mon/OSDMonitor: apply osd_pool_default_pg_autoscale_mode to new pools
pybind/mgr/mgr_module: some accessors
mon/MgrMonitor: enable progress module by default
osd/osd_types: add pool pg_autoscale_mode, pg_num_min, target_size_{bytes,ratio} properties
osdc/Objecter: revise get_latest_version locking
os/memstore: ignore OP_COLL_SET_BITS
qa: generalise REQUIRE_MEMSTORE
mgr: drop GIL in get_config
mon: add 'size' arg to `osd pool create`
mon: use pg_num_target for checks during creation
mgr: revise locking in getter paths
common/options: add `mon_target_pg_per_osd`
mgr: expose OSDMap.pool_raw_used_rate
Florian Haas [Mon, 12 Nov 2018 12:49:15 +0000 (13:49 +0100)]
Improve OpenStack integration and multitenancy docs for radosgw
Add explanatory information on:
* "rgw swift account in url" (including the Swift account in the Swift
API url and Keystone endpoint)
* "rgw swift versioning enabled" (enabling Swift object versioning)
* "rgw s3 auth use keystone" (enabling S3 authentication against
Keystone)
* "rgw keystone implicit tenants" (multi-tenancy via Keystone, including
its implications for the Swift and S3 APIs)
Jeff Layton [Wed, 19 Dec 2018 11:12:02 +0000 (06:12 -0500)]
mgr/orchestrator: fix _list_services display
I see this error when using "ceph orchestrator service ls":
Error EINVAL: Traceback (most recent call last):
File "/usr/lib64/ceph/mgr/orchestrator_cli/module.py", line 318, in handle_command
return self._handle_command(inbuf, cmd)
File "/usr/lib64/ceph/mgr/orchestrator_cli/module.py", line 330, in _handle_command
return self._list_services(cmd)
File "/usr/lib64/ceph/mgr/orchestrator_cli/module.py", line 165, in _list_services
s.config_location))
AttributeError: 'ServiceDescription' object has no attribute 'config_location'
The config_locations field should be rados_config_location.
xie xingguo [Wed, 19 Dec 2018 09:01:23 +0000 (17:01 +0800)]
osd/OSDMap: cancel mapping if target osd is out
Suppose we have a bad pg_upmap_item, say:
```
pg_upmap_items 2.0 [0,8,5,4,6,12]
```
which maps osd.6 to osd.12 that is currently marked as out.
It turns out **maybe_remove_pg_upmaps** can not handle the
above case well because **_apply_upmap** will silently discard
any bad mappings whenver they try to target at some current
__out__ OSDs. So if you call **pg_to_raw_up(2.0)**, you'll probably
get something like: ```up [8,4,6] ``` (e.g., the last mapping pair 6->12
is simply ignored by **_apply_upmap**).
Make **clean_pg_upmaps** do the tidy-up check instead, since it
already has __bare__ access to those pg_upmaps and pg_upmap_items.
Kefu Chai [Wed, 19 Dec 2018 08:37:55 +0000 (16:37 +0800)]
install-deps.sh: skip unavailable repos
as centos-sclo-rh-source leads us to 404 at this moment. and we are not
using the source repo for building ceph. so we can just skip any
unavailable repo.
John Spray [Wed, 26 Sep 2018 16:45:31 +0000 (12:45 -0400)]
mon: use pg_num_target for checks during creation
This way, someone creating pools can proceed
as long as they've decreased the pg_num_target
of other pools, even if the adjustment hasn't
fully completed yet.
John Spray [Wed, 19 Sep 2018 22:09:41 +0000 (18:09 -0400)]
common/options: add `mon_target_pg_per_osd`
This is the partner to mon_max_pg_per_osd, where
this is a more conservative target for PG auto adjustment,
leaving some breathing room for situations where we
might temporarily exceed our target PG count (but not
want to exceed our maximum PG count)
Sage Weil [Tue, 18 Dec 2018 16:47:52 +0000 (10:47 -0600)]
Merge PR #25190 into master
* refs/pull/25190/head:
mgr/prometheus: adjust to new 'df' fields
mon/Monitor: fix newline between df section
doc: update docs for new ceph df output
mon/PGMap: break down RAW usage by device class
mon/PGMap: tweak df headers
mon/PGMap: GLOBAL -> RAW STORAGE in 'df' output
mon/PGMap: dump_fs_stats -> dump_cluster_stats
Sage Weil [Mon, 10 Dec 2018 14:19:27 +0000 (08:19 -0600)]
mon: CephBool -> CephChoices in command map for pre-nautilus mons
If pre-nautilus mons are in quorum, send out a pre-nautilus compatible
set of commands. Although nautilus mons can do this same translation on
the fly for pre-nautilus clients, pre-nautilus mons can't, so do it for
all mons. This means the new CephBool behavior will only start working
once you upgrade all mons to nautilus.
Fixes: http://tracker.ceph.com/issues/37583 Signed-off-by: Sage Weil <sage@redhat.com>
alfonsomthd [Fri, 14 Dec 2018 16:21:42 +0000 (17:21 +0100)]
mgr/dashboard: Add info to Pools table
- Column 'Placement Groups' renamed to 'Pg Status':
It shows PG states.
- Created 'CephSharedModule' for shared services within ceph module.
- Created PgCategoryService & PgCategory model (logic encapsulation).
- Color consistency: PG chart (landing page) and cell text color are similar.
Fixes: https://tracker.ceph.com/issues/36740 Signed-off-by: Alfonso Martínez <almartin@redhat.com>
Kefu Chai [Mon, 10 Dec 2018 14:55:08 +0000 (22:55 +0800)]
cmake: update to accommodate seastar changes
- seastar now works with fmt 5.2.1
- seastar now contains fmt as a submodule, so use it instead of
using our own submodule
- seastar now create include directory under gen/include
- we use std::option<> when using seastar, so enable
Seastar_STD_OPTIONAL_VARIANT_STRINGVIEW accordingly.
Kefu Chai [Mon, 10 Dec 2018 14:59:28 +0000 (22:59 +0800)]
seastar: pickup latest seastar
we have quite a few hacks to get seastar's cmake to play with the distro
we support, and since seastar's cmake now is completely rewritten. we
can now use the upstream's cmake without having to maintain our patches.
Unfortunately, this completely breaks ceph-mgr. Until we can
figure out a better long term solution, this commit removes
cython's subinterpreter check, via some careful abuse of the
C preprocessor.
This works because when cython is invoked, it first generates
some C code, then compiles it. We know it's going to generate
C code including:
int __Pyx_check_single_interpreter(void) { ... }
and:
if (__Pyx_check_single_interpreter())
return NULL;
This replaces the call to __Pyx_check_single_interpreter()
with a literal 0, removing the subinterpreter check.
The void0 dead_function(void) thing is necessary because
the __Pyx_check_single_interpreter() macro also clobbers
that function definition, so we need to make sure it's
replaced with something that works as a function definition.
Fixes: https://tracker.ceph.com/issues/37472 Signed-off-by: Tim Serong <tserong@suse.com>
xie xingguo [Mon, 17 Dec 2018 01:27:40 +0000 (09:27 +0800)]
osd: kill obsolete comments
I added these comments a few years ago.
Since bluestore can read things that aren't committed and
https://github.com/ceph/ceph/pull/20177 should have made it work for
filestore too, this shouldn't matter any more.