Commit Graph

27672 Commits

Author SHA1 Message Date
Sage Weil
d36ec78ba1 qa/workunits/cls/test_cls_rgw: add new rgw class tests
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-10 09:30:19 -07:00
Sage Weil
6ddaa26e14 Merge pull request #418 from dalgaaf/wip-da-fix-build-ceph-test
Fix build and packaging of ceph-test package

Reviewed-by: Sage Weil <sage@inktank.com>
2013-07-10 09:21:05 -07:00
Sage Weil
bee4c72f57 Merge pull request #417 from dalgaaf/wip-da-fix-CRYPTO_LIBS
Makefile.am: fix build, use $(CRYPTO_LIBS)

Reviewed-by: Sage Weil <sage@Inktank.com>
2013-07-10 09:20:03 -07:00
Danny Al-Gaaf
2e79f73bd3 ceph.spec.in: add missing %{_libdir}/rados-classes/libcls_* files
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-07-10 18:12:05 +02:00
Danny Al-Gaaf
ff5f25eb24 debian/ceph-test.install: add missing files
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-07-10 17:55:52 +02:00
Danny Al-Gaaf
640d138c80 ceph.spec.in: add some more ceph_test_cls_rgw_* files
Add new ceph_test_cls_rgw_* files to ceph-test package section.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-07-10 17:53:28 +02:00
Danny Al-Gaaf
dfe3c217c8 src/Makefile.am: rename cls_test_rgw_*
Rename files from cls_test_rgw_* to ceph_test_cls_rgw_* to fit the current
naming scheme.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-07-10 17:52:52 +02:00
Danny Al-Gaaf
78bae33f7f ceph.spec.in: add some ceph_test_cls_* files
Add some installed but not packaged ceph_test_cls_* files to
the ceph-test package.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-07-10 17:51:17 +02:00
Danny Al-Gaaf
dc99a23d05 Makefile.am: fix build, use $(CRYPTO_LIBS)
Use $(CRYPTO_LIBS) instead of -lcryptopp to work also with
nss crypto lib.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-07-10 17:15:00 +02:00
Sage Weil
8fd870930f Merge pull request #400 from ceph/wip-mon-newsync
simpler mon sync

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-07-09 17:12:28 -07:00
David Zafman
51dbc389c4 Merge branch 'wip-4982-4983-oloc-rebase'
fixes: #4982
fixes: #4983

Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
2013-07-09 16:24:53 -07:00
Sage Weil
aa7448cd17 Merge pull request #415 from ceph/rgw-next 2013-07-09 15:34:05 -07:00
Sage Weil
00ae543b3e mon: do not scrub if scrub is in progress
This prevents an assert from unexpected scrub results from the previous
scrub on the leader.

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 14:12:15 -07:00
Sage Weil
8638fb64b1 unittest_pglog: fix unittest
This was broken by the pg_stat_t::reported cleanup.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 14:12:07 -07:00
David Zafman
b10848e212 Merge branch 'master' into wip-4982-4983-oloc-rebase 2013-07-09 14:10:42 -07:00
Samuel Just
c4870143c9 librados/misc.cc: reverse offset and length on write call
Signed-off-by: Samuel Just <sam.just@inktank.com>
2013-07-09 14:09:25 -07:00
David Zafman
bad317b96f osd: Add namespace to dump_watchers output
Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:25 -07:00
David Zafman
f03cdf559f osd: Clean-up redundant use of object_locator_t
Remove locator arg from get_object_context()/find_object_context()
Remove locator from object_info_t but retain encode format
Remove locator from object_info_t dump output
Remove OLOC_BLANK

Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:25 -07:00
David Zafman
8c501651f9 osd: Add the ability to set capabilities on namespaces
Parse namespace spec in osd caps and use in is_match()
Add test cases to unit test

feature: #4983 (OSD: namespaces pt 2 (caps))

Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:25 -07:00
David Zafman
71295640ff osd: Prepare for nspace match with simpler is_match_all()
Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:24 -07:00
David Zafman
6eb88a1399 test: Add namespace list test cases to librados test
Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:24 -07:00
David Zafman
fddfdebf9a test: Add namespace test cases to librados tests
Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:24 -07:00
David Zafman
94ccfac41e rados: Add namespace arg (--namespace, -N) to rados command
Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:24 -07:00
David Zafman
69af60db73 librados: Add operate()/operate_read() log messages
Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:24 -07:00
David Zafman
e761e4e55f librados, os, osd, osdc, test: Add support for client specified namespaces
Add rados_ioctx_namespace_set_key() and librados::IoCtx::namespace_set_key()
Add namespace to admin-daemon operations
Support namespace in osd map command
Add namespace to object_locator_t and hobject_t
Add random namespaces to psim program

Feature: #4982 (OSD: namespaces pt 1 (librados/osd, not caps))

Signed-off-by: David Zafman <david.zafman@inktank.com>
2013-07-09 14:09:02 -07:00
Sage Weil
ae866426ca Merge branch 'wip-mon-osdmap-trim'
Reviewed-by: Samuel Just <sam.just@inktank.com>
2013-07-09 13:43:25 -07:00
Sage Weil
8e075146f9 osd: change pg_stat_t::reported from eversion_t to a pair of fields
This rarely represents an actual eversion_t as the epoch and seq values are
bumped semi-independently to ensure it is always unique.  Break it into
two separate fields to avoid confusion.

Drop now-unused and slightly curious inc() method.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 13:42:34 -07:00
Sage Weil
cc0006deee mon: be smarter about calculating last_epoch_clean lower bound
We need to take PGs whose mapping has not changed in a long time into
account.  For them, the pg state will indicate it was clean at the time of
the report, in which case we can use that as a lower-bound on their actual
latest epoch clean.  If they are not currently clean (at report time), use
the last_epoch_clean value.

Fixes: #5519
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 13:42:34 -07:00
Sage Weil
da81228cc7 osd: report pg stats to mon at least every N (=500) epochs
The mon needs a moderately accurate last_epoch_clean value in order to trim
old osdmaps.  To prevent a PG that hasn't peered or received IO in forever
from preventing this, send pg stats at some minimum frequency.  This will
increase the pg stat report workload for the mon over an idle pool, but
should be no worse that a cluster that is getting actual IO and sees these
updates from normal stat updates.

This makes the reported update a bit more aggressive/useful in that the epoch
is the last map epoch processed by this PG and not just one that is >= the
currenting interval.  Note that the semantics of this field are pretty useless
at this point.

See #5519

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 13:42:34 -07:00
Sage Weil
449283f802 mon/OSDMonitor: allow osdmap trimming to be forced via a config option
In certain cases the admin may know that it is safe to trim old osdmaps but
a bug or other issue is preventing the Monitor from deciding on its own.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 13:42:34 -07:00
Sage Weil
18a624fd8b mon/OSDMonitor: make 'osd crush rm ...' slightly more idempotent
This particular failure is easily triggered by the crush_ops.sh
workunit.  Make it a bit less likely to fail.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-07-09 12:24:19 -07:00
Sage Weil
c5157dde9f doc/release-notes: v0.66
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:45:34 -07:00
Sage Weil
8bdd86a12d Merge branch 'wip-mon-trim'
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-07-09 11:10:30 -07:00
Sage Weil
8799872d0e mon/PaxosService: update docs a bit
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:09:46 -07:00
Sage Weil
44db2ac548 mon/PaxosService: inline trim()
This is now trivial; pull it into the caller.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:09:46 -07:00
Sage Weil
cab8eeecd1 mon/PaxosService: move paxos_service_trim_max into caller, clean up
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:09:46 -07:00
Sage Weil
d97f31424e mon/PaxosService: simplify paxos_service_trim_min check
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:09:46 -07:00
Sage Weil
da248a9e1d mon: make service trim_to stateless
Call get_trim_to() when we need to know how much to trim (if any), and
calculate it then.  No need to keep this in a hidden trim_version
variable and remember to update it.  This drops several helpers and
accessors and makes get_trim_to() a single method that services need to
override.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:09:46 -07:00
Sage Weil
886b637b64 mon/PaxosService: pass trim target into encode_trim()
This will help us in a few patches...

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:09:44 -07:00
Sage Weil
8b866d2e34 mon: preserve last_committed_floor across sync
Add a paranoid check to prevent us from forgetting how far ahead our
last_committed was when we sync.  This prevents an i'll-timed forced-sync
from allowing paxos to warp back in time.

This should never happen unless there is a perfect storm of bad admin
decisions and/or bugs, but we guard against it anyway.

See: #5256
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:49 -07:00
Sage Weil
1f5e6c2254 mon: no need to reset sync state on restart
If we are in or forcing a sync, we can leave these there until the sync
completes.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:48 -07:00
Sage Weil
bbfb5b41b6 mon: drop single-use is_sync_on_going() check
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:48 -07:00
Sage Weil
a4d0ccf68c mon: rev the internal mon protocol
This captures the new sync.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:48 -07:00
Sage Weil
9fc4e4f337 mon/MonitorDBStore: drop unused single prefix synchronizer
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:48 -07:00
Sage Weil
45907dc1ba mon: add --force-sync startup option
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:48 -07:00
Sage Weil
af3b49f606 mon/Paxos: move consistent check into Paxos::init()
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:48 -07:00
Sage Weil
ccceeee57b mon/Paxos: remove unnecessary trim enable/disable
The sync no longer cares if we trim Paxos versions as we go, as long as we
don't trim so fast that we fall behind between GET_CHUNK messages, which
we can consider a tuning problem.

Remove this extra complexity!

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:48 -07:00
Sage Weil
aa33bc88aa mon/Paxos: config min paxos txns to keep separately
We were using paxos_max_join_drift to control the minimum number of
paxos transactions to keep around.  Instead, make this explicit, and
separate from the join drift.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:47 -07:00
Sage Weil
da0aff28ab mon: implement a simpler sync
The previous sync implementation was highly stateful and very complex.
This made it very hard to understand and to debug, and there were bugs
still lurking in the timeout code (at least).

Replace it with something much simpler:

 - sync providers are almost stateless.  they keep an iterator, identified
   by a unique cookie, that times out in a simple way.
 - sync requesters sync from whomever they fancy.  namely anyone with newer
   committed paxos state.

There are a few extra fields that might allow sync continuation later, but
this is complex and not necessary at this point.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 11:05:47 -07:00
Sage Weil
f326c4dcef mon/PGMonitor: cleanup: use const strings for pgmap prefixes
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-09 10:42:16 -07:00