Jianpeng Ma [Tue, 24 Oct 2017 14:07:18 +0000 (22:07 +0800)]
osd/PrimaryLogPG: add condition "is_chunky_scrub_active" to check object in chunky_scrub.
Avoid every time call scrubber.write_block_by_scrub. Most time scrubber
is inactive. And compare to write_block_by_scrub, is_chunky_scrub_active
is light.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Jason Dillaman [Thu, 19 Oct 2017 14:37:01 +0000 (10:37 -0400)]
rbd: bench should flush prior to starting a test
For the new read-based bench tests, flushing prior to the start of the test
will result in the exclusive lock being acquired and the object map being
utilized.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The OSD subops were replaced with replication ops (i.e., MSG_OSD_REPOP
and MSG_OSD_REPOPREPLY) in jewel. mClock incorrectly used them as an
op class rather than the newer replication ops. This fixes that and
places eight ops into the repop class -- MSG_OSD_REPOP,
MSG_OSD_REPOPREPLY, MSG_OSD_PG_UPDATE_LOG_MISSING,
MSG_OSD_PG_UPDATE_LOG_MISSING_REPLY, MSG_OSD_EC_WRITE,
MSG_OSD_EC_WRITE_REPLY, MSG_OSD_EC_READ, and MSG_OSD_EC_READ_REPLY.
This alo removes dupliated code related to op classes in
mClockOpClassQueue and mClockClientQueue and combines into
mClockOpClassSupport.
The three configuration options
osd_op_queue_mclock_osd_subop_{res,wgt,lim} have also been replaced
with osd_op_queue_mclock_osd_rep_op_{res,wgt,lim}.
This also removes OpQueueItem::OpQueueable::op_type_t::osd_subop since
it's not a category core ceph recognizes and is instead it's part of
an mclock view of ops.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
d3ac8d18 moves ceph-client-debug from ceph-test to ceph-base without
updating the package relationships between the two involved packages.
which results in:
dpkg: error processing archive /var/cache/apt/archives/ceph-test_12.2.1-241-g43e027b-1trusty_amd64.deb (--unpack):
trying to overwrite '/usr/bin/ceph-client-debug', which is also in package ceph-base 10.2.10-14-gcbaddae-1trusty
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
dpkg: error processing archive /var/cache/apt/archives/ceph-osd_13.0.0-2201-g6cc0b41-1trusty_amd64.deb (--unpack):
trying to overwrite '/usr/bin/ceph-osdomap-tool', which is also in package ceph-test 10.2.10-14-gcbaddae-1trusty
in 40caf6a6, we moves some tools from ceph-test out into ceph-osd,
ceph-mon and ceph-base respectively. but didn't update the relationships
between these packages accordingly. this causes the upgrade failure.
see https://www.debian.org/doc/debian-policy/#document-ch-relationships
for more details on "Breaks" and "Conflicts".
the reason why the package version to be replaced/conflicted is 12.2.2
is that: i assume that this change will be backported to luminous, and
the next release of it will be 12.2.2 .
Sage Weil [Sat, 21 Oct 2017 03:32:33 +0000 (22:32 -0500)]
messages/MOSDMap: do compat reencode of crush map, too
If we are reencoding an incremental, and it embeds a crush map, we need
to reencode that in a compatible way too. This is especially true now
because we have the compat crush weight-sets. Otherwise, a client may
learn the crush map through an incremental but not understand choose_args,
and not see/understand the alternate weight set. It will send requests
to the wrong OSDs where they will just get dropped.
Fixes: http://tracker.ceph.com/issues/21882 Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 20 Oct 2017 21:32:59 +0000 (16:32 -0500)]
ceph_test_objectstore: disable filestore_fiemap for tests
This option was enabled in 87f33376d977962ab7438c46873ea9b6292390d1 but
causes ObjectStore/StoreTest.Synthetic/1 (filestore) to fail. Revert that
bit for now until we fix fiemap properly.
Alfredo Deza [Fri, 20 Oct 2017 12:48:01 +0000 (08:48 -0400)]
ceph-volume api.lvm return result of get_lv when using arguments
If the argument is an absolute path it is fine to just return whatever
get_lv finds since it is a "safe" call, it will return a None if nothing
is found
Jason Dillaman [Fri, 20 Oct 2017 02:13:36 +0000 (22:13 -0400)]
common/common_init: disable ms subsystem log gathering for clients
The log gathering causes large performance degradation to clients
with high message throughputs. This is hopefully a short-term
workaround until per-message logging can be replaced with an
efficient data recording system for post-incident analysis
use-cases.
Fixes: http://tracker.ceph.com/issues/21860 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Sage Weil [Thu, 19 Oct 2017 21:19:35 +0000 (16:19 -0500)]
buffer: remove list _mempool member
This broke the C++ ABI by changing the list structure size. Also, it's
not necessary as we can infer the mempool by looking at the other list
contents. We don't (currently) have a need to map an empty list to a
particular mempool and have that state stick.
Fixes: http://tracker.ceph.com/issues/21573 Signed-off-by: Sage Weil <sage@redhat.com>
it is used by the "repair" feature to dedup the files to be searched for
MANIFEST-* files. the default implementation is the POSIX one, which
tries to look at the local fs, but we should be looking for the files in
the bluefs. in this very use case, wal and db do not share the same device,
so we can just compare the paths. actually, it should aways return
"false". as the files being compared are always "db" and "db.wal".
kungf [Tue, 17 Oct 2017 14:40:43 +0000 (22:40 +0800)]
osd: add scrub week day constraint
if add week day constraint, we can set scrub permit time
more flexible. eg. we can set scurb in Monday-Wednesday 0-12 o'clock
according set this parameter:
osd_scrub_begin_week_day = 1
osd_scrub_end_week_day = 3
osd_scrub_begin_hour = 0
osd_scrub_end_hour = 12
Jason Dillaman [Fri, 20 Oct 2017 02:24:31 +0000 (22:24 -0400)]
osdc/Objecter: skip sparse-read result decode if bufferlist is empty
If the OSD does not execute sub-ops due to errors encountered prior to
the sub-op, the sub-op result remains zeroed with empty out data.
Attempting to decode the empty bufferlist results in large exception
handling CPU overhead.
Fixes: http://tracker.ceph.com/issues/21844 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Adam C. Emerson [Thu, 19 Oct 2017 18:21:30 +0000 (14:21 -0400)]
OSD: Silence unused variable warnings
Even though extending the lifetime of this temporary delays execution
of its destructor, the compiler does not consider the reference to
have a side-effecting constructor.
The compiler is wrong, but we can silence its complaints.
This will cease to be an issue once we adopt C++17, since mandatory
RVO will solve the inability to bind a variable to a returned
move-only object and the need to extend a temporary.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>