Commit Graph

78851 Commits

Author SHA1 Message Date
Sage Weil
bf8a109035 Merge pull request #17684 from majianpeng/bluefs-release-extents
os/bluestore/BlueFS: move release unused extents work in _flush_and_syn_log

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Sage Weil <sage@redhat.com>
2017-09-28 09:42:39 -05:00
Sage Weil
4e0a983915 Merge pull request #18020 from theanalyst/doc-changelog-12.2.1
doc: add changelog for 12.2.1

Reviewed-by: Sage Weil <sage@redhat.com>
2017-09-28 08:56:12 -05:00
Abhishek Lekshmanan
fb69ba6f43 doc: add changelog for 12.2.1
Signed-off-by: Abhishek Lekshmanan <alekshmanan@suse.com>
2017-09-28 15:53:35 +02:00
Sage Weil
20b0055e0d Merge pull request #17769 from optimistyzy/97_new_opt
os/bluestore/NVMEDevice: Remove using dpdk thread

Reviewed-by: Haomai Wang <haomai@xsky.com>
2017-09-28 08:30:44 -05:00
Sage Weil
eab91bfdaf Merge pull request #18001 from liewegas/wip-21417
os/bluestore: put cached attrs in correct mempool

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Varada Kari <varada.kari@gmail.com>
2017-09-28 08:30:11 -05:00
Abhishek L
7e253f87e2 Merge pull request #17755 from dillaman/wip-21353
doc/release-notes: ensure RBD users can blacklist prior to upgrade

Reviewed-By: Nathan Cutler <ncutler@suse.com>
2017-09-28 14:56:20 +02:00
Sage Weil
80c60fcde2 os/bluestore: move several buffer{ptr,list}s into cache_other mempool
Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-28 08:17:00 -04:00
Sage Weil
e7762ea147 os/bluestore: put new attrs in correct mempool too
Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-28 08:16:55 -04:00
Xie Xingguo
58f329c056 Merge pull request #17966 from xiexingguo/wip-bluefs-kill-block-total
os/bluestore/BlueFS: several cleanups

Reviewed-by: Sage Weil <sage@redhat.com>
2017-09-28 19:04:31 +08:00
John Spray
0ad7bd0b43 tools: update monstore tool for fsmap, mgrmap
Fixes: http://tracker.ceph.com/issues/21577
Signed-off-by: John Spray <john.spray@redhat.com>
2017-09-28 11:07:56 +01:00
John Spray
61ceafc8bb tools: handle decode errors in monstore tool
Print a single line message instead of dumping
a backtrace.

Signed-off-by: John Spray <john.spray@redhat.com>
2017-09-28 11:07:56 +01:00
Kefu Chai
f2a86506ad ceph-disk: more precise error message when a disk is specified
we raise an exception if the path is not a block device, e.g. /dev/tty,
or it's disk, e.g, /dev/sda.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-09-28 18:03:14 +08:00
John Spray
37f7fb76af Merge pull request #18013 from tchaikov/wip-dashboard-favicon
mgr/dashboard: use rel="icon" for favicon

Reviewed-by: John Spray <john.spray@redhat.com>
2017-09-28 09:32:17 +01:00
Xinze Chi
96a3cb698a osd: using get_rmissing instread of missing as the judgement
the below code using peer_missing iterator

Signed-off-by: Xinze Chi <xinze@xsky.com>
2017-09-28 14:50:07 +08:00
Kefu Chai
af11e5cbf6 Merge pull request #17993 from jcsp/wip-21572
mgr/dashboard: sort servers and OSDs in OSD list

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-28 14:38:26 +08:00
Kefu Chai
6b85a0caaf Merge pull request #17937 from tchaikov/wip-automake-cleanup
automake: remove files required by automake

Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
2017-09-28 14:05:16 +08:00
Kefu Chai
a6e79d91fb mgr/dashboard: use rel="icon" for favicon
shortcut is not a standard compliant link type, see
https://www.w3.org/TR/html5/links.html#linkTypes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-09-28 13:51:27 +08:00
Kefu Chai
cda8d1df20 Merge pull request #17991 from jcsp/wip-21570
mgr/dashboard: handle null in format_number

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-28 13:22:22 +08:00
Kefu Chai
68769fab3d Merge pull request #17986 from tchaikov/wip-doc-rgw-config
doc: fix hyper link to radosgw/config-ref

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-09-28 09:57:07 +08:00
Yuri Weinstein
7b042400a7 Merge pull request #17926 from batrick/ptl-tool
scripts: add ptl-tool for scripting merges

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Yuri Weinstein <yweins@redhat.com>
2017-09-27 15:06:10 -07:00
Adam C. Emerson
79188d679e rgw: Check bucket GetBucketLocation in policy
Add code to check s3:GetBucketLocation against bucket policy.

Fixes: http://tracker.ceph.com/issues/21582
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1493934

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2017-09-27 16:08:56 -04:00
Sage Weil
ef6524436f os/bluestore: put attrs in mempool
Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-27 15:49:18 -04:00
Sage Weil
937379d57a buffer: add ptr::[try_]reassign_to_mempool
Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-27 15:49:17 -04:00
Adam C. Emerson
27eb13fe56 rgw: Check bucket CORS operations in policy
Add code to check s3:GetCORS and s3:PutCORS operations against bucket
policy.

Fixes: http://tracker.ceph.com/issues/21578
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1494140

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2017-09-27 15:42:27 -04:00
Sage Weil
d8c3756d26 osd/PG: handle racy preemption
If we finish recovery/backfill and go active, but also get
preempted at the same time, we can ignore the event.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-27 15:40:18 -04:00
Sage Weil
a8534cce1a osd/PG: allow local recovery reservations to be preempted
If a PG has a higher recovery priority and a lower-priority item is in
progress, allow it to be preempted.  This triggers the RecoveryCancel
or BackfillCancel event with a 0 delay, which means it will immediately
re-request a reservation (and presumably wait).

Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-27 15:40:18 -04:00
Sage Weil
dbc002eaa9 common/AsyncReserver: support preemption
If an (optional) preemption context is provided, use that to preempt
and existing reservation and grant a higher-priority one.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-27 15:40:18 -04:00
David Zafman
14c5c834b9 ceph-objectstore-tool: performance: Add --pgid for faster search for object by name
Fixes: http://tracker.ceph.com/issues/21327

Signed-off-by: David Zafman <dzafman@redhat.com>
2017-09-27 12:35:41 -07:00
Adam C. Emerson
16de0fc1c5 rgw: Check bucket versioning operations in policy
Add code to check s3:GetBucketVersioning and s3:PutBucketVersioning
operations against bucket policy.

Fixes: http://tracker.ceph.com/issues/21389
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1490278

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2017-09-27 14:35:59 -04:00
Adam C. Emerson
f9d1ae1d15 rgw: Check payment operations in policy
Add code to check s3:GetBucketRequestPayment and
s3:PutBucketRequestPayment operations against bucket policy.

Fixes: http://tracker.ceph.com/issues/21389
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1490278

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2017-09-27 13:58:32 -04:00
Sage Weil
2237624846 Merge pull request #17978 from alram/rbdmap-fix
rbdmap: fix umount when multiple mounts use the same RBD

Reviewed-by: Dan Mick <dmick@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2017-09-27 12:57:33 -05:00
Patrick Donnelly
bfc4902495
mds: fix conf types
This correct an assertion failure.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2017-09-27 09:29:39 -07:00
Patrick Donnelly
8a5d71bf45
mds: fix whitespace
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2017-09-27 09:29:23 -07:00
Casey Bodley
f3e0e0171d Merge pull request #17962 from joscollin/wip-test-signed-unsigned-warning
test: silence warnings from -Wsign-compare

Reviewed-by: Amit Kumar <amitkuma@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-09-27 10:26:49 -04:00
John Spray
f409099fa2 mgr/dashboard: sort servers and OSDs in OSD list
Fixes: http://tracker.ceph.com/issues/21572
Signed-off-by: John Spray <john.spray@redhat.com>
2017-09-27 15:14:58 +01:00
Jason Dillaman
16ef97830c librbd: hold cache_lock while clearing cache nonexistence flags
When transitioning from a snapshot that had an associated parent
to a snapshot where the parent was flattened and removed, the cache
was being referenced without holding the required lock.

Fixes: http://tracker.ceph.com/issues/21558
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2017-09-27 09:40:08 -04:00
John Spray
f43859d4dc mgr/dashboard: handle null in format_number
Fixes: http://tracker.ceph.com/issues/21570
Signed-off-by: John Spray <john.spray@redhat.com>
2017-09-27 14:33:58 +01:00
John Spray
409b8923a2 mgr/dashboard: remove ceph.com ref to favicon
We have a local copy referenced in the very next line.

Signed-off-by: John Spray <john.spray@redhat.com>
2017-09-27 14:30:07 +01:00
Yan, Zheng
e515e84f69 mds: open purge queue when transitioning out of standby replay
MDS opens the purge queue when it starts standby replay. This is
wrong because purge queue may change during standby replay.

Fixes: http://tracker.ceph.com/issues/19593
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-09-27 21:07:36 +08:00
Yan, Zheng
82c1f5fcfd mds: always re-probe mds log when standby replay done
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-09-27 21:07:24 +08:00
Jason Dillaman
bc96c53d94 rbd-mirror: ensure forced-failover cannot result in sync state
If the local image already exists and the local image isn't
registered in the remote journal, it should be assumed that
it's already in the replaying state so it can verify the
ancestry to detect split-brains.

Fixes: http://tracker.ceph.com/issues/21559
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2017-09-27 08:19:21 -04:00
Jason Dillaman
e3b5831257 rbd-mirror: forced-promotion should interrupt replay delay to shut down
Fixes: http://tracker.ceph.com/issues/21559
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2017-09-27 08:19:20 -04:00
xie xingguo
076e94d0ca osd/osd_types: kill osd_peer_stat_t
Which currently has no more consumers.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-09-27 18:57:36 +08:00
Matt Boyle
3bae00a033 doc: Fix typos in placement-groups.rst
Signed-off-by: Matt Boyle <matt.boyle@gmail.com>
2017-09-27 11:11:23 +01:00
Jos Collin
4483bc7c61 Merge pull request #17988 from wumingqiao/wip-rados-update
include/rados: fix typo in librados.h

Reviewed-by: Jos Collin <jcollin@redhat.com>
2017-09-27 09:07:29 +00:00
xie xingguo
db20328b45 osd/PrimaryLogPG: kick off recovery on backoffing a degraded object
As we are now blocking frontend ops from accessing that very object!

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-09-27 16:58:19 +08:00
wumingqiao
99d79afe6e include/rados: fix typo in librados.h
opeprate -> operate

Signed-off-by: wumingqiao <wumingqiao@inspur.com>
2017-09-27 16:31:14 +08:00
Kefu Chai
671a4106b3 doc: fix hyper link to radosgw/config-ref
Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-09-27 11:13:35 +08:00
Zac Medico
18cbba4d2d osd/PGPool::update: optimize with subset_of
Replace expensive inverval_set intersection_of and operator==
calls with a single subset_of call. I borrowed this idea from
Piotr Dałek's "osd/PGPool: don't use intermediate interval set"
patch. The following benchmark program demonstrates a 38%
performance increase:

#include <iostream>
#include <chrono>
#include "include/interval_set.h"

#define NANOSECONDS(d) \
    std::chrono::duration_cast<std::chrono::nanoseconds>(d).count()

typedef uint64_t snapid_t;
typedef std::chrono::steady_clock::duration duration;

duration PGPool_update_old(const interval_set<snapid_t> &rs) {
  std::chrono::steady_clock::time_point start, end;
  interval_set<snapid_t> newly_removed_snaps, cached_removed_snaps;

  // initialize state
  cached_removed_snaps = rs;

  // start timed simulation
  start = std::chrono::steady_clock::now();

  {
    newly_removed_snaps = cached_removed_snaps;
    interval_set<snapid_t> intersection;
    intersection.intersection_of(newly_removed_snaps, cached_removed_snaps);

    assert(intersection == cached_removed_snaps);
    cached_removed_snaps.swap(newly_removed_snaps);
    newly_removed_snaps = cached_removed_snaps;
    newly_removed_snaps.subtract(intersection);
  }

  // end timed simulation
  end = std::chrono::steady_clock::now();

  return end - start;
}

duration PGPool_update_new(const interval_set<snapid_t> &rs) {
  std::chrono::steady_clock::time_point start, end;
  interval_set<snapid_t> newly_removed_snaps, cached_removed_snaps;

  // initialize state
  cached_removed_snaps = rs;

  // start timed simulation
  start = std::chrono::steady_clock::now();

  {
    newly_removed_snaps = cached_removed_snaps;

    assert(cached_removed_snaps.subset_of(newly_removed_snaps));
    interval_set<snapid_t> removed_snaps = newly_removed_snaps;
    newly_removed_snaps.subtract(cached_removed_snaps);
    cached_removed_snaps.swap(removed_snaps);
  }

  // end timed simulation
  end = std::chrono::steady_clock::now();

  return end - start;
}

int main(int argc, char *argv[])
{
  assert(argc == 3);
  const int sample_count = std::stoi(argv[1]);
  const int interval_count = std::stoi(argv[2]);
  const int interval_distance = 4;
  const int interval_size = 2;
  const int max_offset = interval_count * interval_distance;
  interval_set<snapid_t> removed_snaps;

  for (int i = 0; i < max_offset; i += interval_distance)
    removed_snaps.insert(i, interval_size);

  duration old_delta(0), new_delta(0);

  for (int i = 0; i < sample_count; ++i) {
    old_delta += PGPool_update_old(removed_snaps);
    new_delta += PGPool_update_new(removed_snaps);
  }

  float ratio = float(NANOSECONDS(old_delta)) / NANOSECONDS(new_delta);

  std::cout << ratio << std::endl;
}

Suggested-by: Piotr Dałek <piotr.dalek@corp.ovh.com>
Signed-off-by: Zac Medico <zmedico@gmail.com>
2017-09-26 18:33:15 -07:00
Zac Medico
5c3775815a inverval_set: optimize subset_of with sequential search
Optimize subset_of to use sequential search when it
performs better than the lower_bound method, for set
size ratios smaller than 10. This is analogous to
intersection_of behavior since commit 825470fcf9.

The subset_of method can be used in some cases as a
less-expensive alternative to the intersection_of
method, since subset_of can return early if any element
of the smaller set is not contained in the larger set,
and intersection_of has the added burden of storing
the intersecting elements.

Signed-off-by: Zac Medico <zmedico@gmail.com>
2017-09-26 17:33:35 -07:00