Commit Graph

32698 Commits

Author SHA1 Message Date
Sage Weil
7a49f3da55 lockdep: do not initialize if already started
If we have already registered a cct for lockdep, do not accept another one.
We already check that the cct matches when we shut down.  This we will run
for the life span of a single cct and no longer.

Fixes: #7965
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-02 16:46:30 -07:00
Samuel Just
eae5a37779 Merge pull request #1591 from ceph/wip-7915
mon: bump snap_epoch when adding a tier (fixes 7915)

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-04-02 16:13:59 -07:00
Sage Weil
6bf46e23e0 OSDMap: bump snap_epoch when adding a tier
When we make an existing pool a tier, we start copying the snap metadata
from the base tier.  That includes removed_snaps.  In order for the OSD
to recognize that this value is changing for the first time, we need to
set snap_epoch, or else the OSD doesn't update it's in-memory PGPool
with removed snaps and we eventually hit an assertion failure because
PGPool::cached_remove_snaps is incorrect (e.g., empty).

Fix this by bumping snap_epoch when we add the new tier.

Fixes: #7915
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-02 16:03:37 -07:00
Samuel Just
27e353ccc1 Merge pull request #1580 from ceph/wip-7937
osd: fix scrub logic for snapdir object

Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-02 15:15:56 -07:00
Samuel Just
01445d5c62 ReplicatedPG::_scrub: don't bail early for snapdir
Fixes: #7937
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-02 15:12:41 -07:00
Sage Weil
250a10296b Merge pull request #1590 from ceph/wip-7939
PG: set role for replicated even if role != shard

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-02 10:52:11 -07:00
Samuel Just
d6258b63e5 Merge pull request #1579 from ceph/wip-7907
osd/ReplicatedPG: mark_unrollbackable when _rollback_to head

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-04-02 10:35:38 -07:00
Sage Weil
86a032f2c2 Merge pull request #1586 from ceph/wip-dirfrag
mds: fix check for merging/spliting dirfrag

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-02 08:44:33 -07:00
Sage Weil
84e62e9f0e Merge pull request #1587 from onlyjob/debian
init.d: correcting rbdmap LSB header / init order:

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-02 08:43:02 -07:00
Dmitry Smirnov
1d42de5446 init.d: correcting rbdmap init order:
* Require "$remote_fs" since it guarantees /usr availability
   (rbd executable is in /usr/bin/rbd)
 * Speed-up init.d rbd mapping on machines acting as MON/OSD
   by starting rbdmap after /init.d/ceph (when possible) and
   shutting down rbd before ceph.
 * Map rbd devices before starting X (helpful when /home is mounted from rbd).
2014-04-03 01:25:28 +11:00
Yan, Zheng
771e88a401 mds: fix check for merging/spliting dirfrag
check actual number of items instead of number of cached items

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 15:32:33 +08:00
Sage Weil
edb8a5965e Merge pull request #1583 from ceph/wip-largedir
Wip largedir

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-01 21:47:51 -07:00
Yan, Zheng
43bc39beab mds: ignore CDir::check_rstats() when debug_scatterstat is off
It uses lots of CPU when dirfrag is large

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 12:19:34 +08:00
Yan, Zheng
5a9b99aa91 mds: initialize bloom filter according to dirfrag size
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 12:19:34 +08:00
Yan, Zheng
16af25fba3 mds: add dentries in dirfrag to LRU in reverse order
Files in a dirfrag are usually processed in the order of readdir
results. Files at the beginning of are more likely to be used in
the future than files at the last.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 12:19:26 +08:00
Sage Weil
d351e5fb12 Merge pull request #1584 from ceph/wip-multimds
Wip multimds

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-01 21:01:07 -07:00
Yan, Zheng
06ecb2c74c mds: handle freeze authpin race
For across authority rename, the MDS first freezes the source inode's
authpin. It happens while the source dentry isn't locked. So when the
inode's authpin become frozen, the source dentry may have changed and
be linked to a different inode.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 11:03:11 +08:00
Yan, Zheng
d1967f3251 mds: treat cluster as degraded when there is clientreplay MDS
This forbids exporting subtrees and fragmenting dirfrags when there
is MDS in clientreplay state. During replaying client requests, the
MDS may need to authpin some remote objects. Exporting subtrees and
fragmenting dirfrags slow down replaying client requests.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 11:03:10 +08:00
Yan, Zheng
b65a818407 mds: don't start new segment while finishing disambiguate imports
This avoid inserting ESubtreeMap among EImportFinish events that
finish disambiguate imports. Because the ESubtreeMap reflects the
subtree state when all EImportFinish events are replayed.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 11:03:10 +08:00
Yan, Zheng
ff44a99a59 mds: trim non-auth subtree more aggressively
When a non-auth dirfrag is pinned by uncommitted slave update,
there still can be non-auth child dirfrags that are trimmable.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-04-02 11:03:00 +08:00
Sage Weil
d4d39a01ca osd/ReplicatedPG: mark_unrollbackable when _rollback_to head
We fell into the case in _rollback_to where we just set ctx->modify = true
and don't explicitly mark the ctx and unrollbackable.  Later, we screw up
in proc_replica_log as a result because we think we can rollback this
update to the head when in reality we cannot.

Fixes: #7907
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-01 14:27:31 -07:00
Samuel Just
f0978a823d Merge pull request #1578 from ceph/wip-7437
wip-7437

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-04-01 13:58:10 -07:00
Josh Durgin
a926cd38a8 Merge pull request #1577 from ceph/wip-7935
rgw: reverse logic to identify next part

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-04-01 12:38:46 -07:00
Samuel Just
a76a129f75 PG: set role for replicated even if role != shard
Fixes: #7939
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-01 12:19:57 -07:00
David Zafman
ef94fcd72e test: Add EC testing to ceph_test_rados_api_snaphots
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:51 -07:00
David Zafman
1871fe7970 test: Add EC testing to ceph_test_rados_api_lock
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:51 -07:00
David Zafman
759878c16d test: Add EC testing to ceph_test_rados_api_tier
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:51 -07:00
David Zafman
38b9fe7c9b test: Add EC to ceph_test_rados_api_watch_notify
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
6cedfacd90 test: Add EC testing to ceph_test_rados_api_stat
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
7ccf412988 test: Add EC testing to ceph_test_rados_api_list
Fixes: #7437

Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
ea26e13b6b test: Add EC testing to ceph_test_rados_api_io
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
9bd5821aab test: Add EC test classes RadosTestEC and RadosTestECPP
Fixes: #7437

Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
a4da24d3bc test: Fix ceph_test_rados_list_parallel to clean up test pool
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
966480b271 test: Fix ceph_test_rados_api_aio to clean up all test pools
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
74ed4489d9 test: Cleanup pools when FlushWriteRaces is done
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
c106976fce librados: Add missing C variants for alignment
Add rados_ioctx_pool_requires_alignment()
Add rados_ioctx_pool_required_alignment()

Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
David Zafman
2d7da1d5c0 librados: Add missing rados_wait_for_latest_osdmap()
Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-04-01 11:53:50 -07:00
Sage Weil
dde1c91605 osd/ReplicatedPG: continue scrub logic when snapset.head_exists doesn't match
The 'continue' will cause more damange/noise than continuing because the
next_clone value won't be updated properly.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-01 11:04:50 -07:00
Sage Weil
c2e5a42874 osd/ReplicatedPG: handle snapdir properly during scrub
Handle snapdir similarly to how head is treated when updating the
next_clone info.  Also, add a warning when we have a snapdir object and
head_exists == true (the converse of the existing check).

Fixes: #7937
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-01 11:04:47 -07:00
Yehuda Sadeh
ed5a5e0755 rgw: reverse logic to identify next part
Fixes: #7935
The check that identifies whether we need to move to the next part when
iterating over an object was reversed.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-04-01 10:52:06 -07:00
Sage Weil
87b08b23c3 Merge pull request #1575 from jdurgin/wip-librbd-cp-sparse
librbd: skip zeroes when copying an image

Reviewed-by: Sage Weil <sage@inktank.com>
2014-03-31 18:15:12 -07:00
Sage Weil
5c9b8a2715 osd/PG: debug cached_removed_snaps changes
See #7915.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-31 17:39:52 -07:00
Sage Weil
a4dc6f2bf8 Merge pull request #1574 from mikenel/master
Add ceph-client-debug and jerasure shared objects to RPM spec file.

Reviewed-by: Sage Weil <sage@inktank.com>
2014-03-31 15:19:57 -07:00
Josh Durgin
824da20296 librbd: skip zeroes when copying an image
This is the simple coarse-grained solution, but it works well in
common cases like a small base image resized with a bunch of empty
space at the end. Finer-grained sparseness can be copied by using rbd
{export,import}-diff.

Fixes: #6257
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2014-03-31 15:04:28 -07:00
Sage Weil
70d2e1353e Merge pull request #1573 from ceph/wip-7912
mon/PGMap: clear pool sum when last pg is deleted

Reviewed-by: Greg Farnum <greg@inktank.com>
2014-03-31 14:59:38 -07:00
Sage Weil
5132699145 Merge pull request #1556 from ceph/wip-7888
msgr: add new ping/ping reply to use in place of keepalive

Reviewed-by: Greg Farnum <greg@inktank.com>
2014-03-31 14:57:57 -07:00
Sage Weil
a8eb9b5fcd Merge pull request #1566 from ceph/wip-fuse-access
fuse: implement 'access' low level function

Reviewed-by: Sage Weil <sage@inktank.com>
2014-03-31 14:56:13 -07:00
Sage Weil
e44f85ce18 qa/workunits/cephtool/test.sh: test 'osd pg-temp ...'
Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-31 14:12:51 -07:00
Sage Weil
2d4ec6a166 mon/OSDMonitor: clear primary_temp on osd pg_temp updates
Until the OSD and the MOSDPGTemp messages encode primary_temp updates,
assume that any pg_temp update will clear primary_temp.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-03-31 14:12:27 -07:00
Ilya Dryomov
255f84047e OSDMonitor: add 'mon osd allow primary temp' bool option
By default, we don't send out maps with primary_temp mappings because
there is no infrastructure in place that would make sure that the
entire cluster knows about primary_temp.  Add an option to allow
primary_temp mappings, for development purposes.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2014-03-31 14:12:15 -07:00