summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* PGMap: calc_min_last_epoch_clean() will now also use osd_epochswip-5869-DNMSamuel Just2013-09-011-0/+8
| | | | | | | We don't want to trim past the current osd map for any up osd. osd_epochs provides a lower bound for that epoch for each osd. Signed-off-by: Samuel Just <sam.just@inktank.com>
* PGMap: maintain a mapping of osd to epoch of most recent stat messageSamuel Just2013-09-012-2/+43
| | | | | | | Each up osd will have a mapping since out osds are now included as empty stats. Signed-off-by: Samuel Just <sam.just@inktank.com>
* PGMap,PGMonitor: osd_stat will be empty for out osdSamuel Just2013-09-013-17/+46
| | | | | | | | | | | When an osd is marked out, rather than remove it from osd_stat, we instead 0 out the structure. This patch also makes osd_stat_updates and osd_stat_rm private. This should make it simpler to enforce invariants on these mappings. Signed-off-by: Samuel Just <sam.just@inktank.com>
* osdc/Objecter: fix dereference of NULL pg_pool_tSage Weil2013-09-011-4/+7
| | | | | | | | | | | | Make sure we don't dereference a NULL pointer. Note that we check a bit further down if the target pool does not exist and return the proper error. Bug was reliably reproduced by ./ceph_test_rados_api_watch_notify --gtest_filter=LibRadosWatchNotify.WatchNotifyTimeoutTestPP Signed-off-by: Sage Weil <sage@inktank.com>
* Validate S3 tokens against KeystoneRoald J. van Loon2013-08-3110-272/+514
| | | | | | | | | | - Added config option to allow S3 to use Keystone auth - Implemented JSONDecoder for KeystoneToken - RGW_Auth_S3::authorize now uses rgw_store_user_info on keystone auth - Minor fix in get_canon_resource; dout is now after the assignment Reviewed-by: Yehuda Sadeh<yehuda@inktank.com> Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
* Merge pull request #561 from ceph/wip-6178Sage Weil2013-08-311-1/+5
|\ | | | | | | | | os: LevelDBStore: ignore ENOENT files when estimating store size Reviewed-by: Sage Weil <sage@inktank.com>
| * os: LevelDBStore: ignore ENOENT files when estimating store sizeJoao Eduardo Luis2013-08-301-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | While iterating over the store files we race against leveldb, which may be shuffling data around thus removing some files. By ignoring missing files on stat, we'll get to not account those files but that's okay -- this is just an estimate. Fixes: #6178 Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
* | Merge branch 'next'Sage Weil2013-08-316-6/+21
|\ \
| * | mon: fix uninitialized Op fieldRoald J. van Loon2013-08-311-1/+2
| | | | | | | | | | | | | | | | | | - Uninitialized field in MonitorLevelDB::Op causes random build errors. Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
| * | automake cleanup: uninitialized version_tRoald J. van Loon2013-08-311-0/+1
| | | | | | | | | | | | | | | | | | | | | This sometimes gives a completely random uint64_t value, because it is potentially used uninitialized. Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
| * | Merge pull request #530 from ceph/wip-monc-leakJoão Eduardo Luís2013-08-301-0/+6
| |\ \ | | | | | | | | | | | | | | | | mon/MonClient: release pending outgoing messages on shutdown Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
| | * | mon/MonClient: release pending outgoing messages on shutdownSage Weil2013-08-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a small memory leak when we have messages queued for the mon when we shut down. It is harmless except for the valgrind leak check noise that obscures real leaks. Backport: dumpling Signed-off-by: Sage Weil <sage@inktank.com>
| * | | ceph-post-file: use mktemp instead of tempfileSage Weil2013-08-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | tempfile is a debian thing, apparently; mktemp is present everywhere. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | rgw: Fix S3 auth when using response-* query string paramsSylvain Munaut2013-08-291-0/+6
| | | | | | | | | | | | | | | | | | | | Reviewed-by: Yehuda Sadeh <yehuda@inktank.com> Signed-off-by: Sylvain Munaut <s.munaut@whatever-company.com>
| * | | ceph.spec.in: remove trailing paren in previous commitGary Lowell2013-08-291-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
| * | | ceph.spec.in: Don't invoke debug_package macro on centos.Gary Lowell2013-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the redhat-rpm-config package is installed, the debuginfo rpms will be built by default. The build will fail when the package installed and the specfile also invokes the macro. Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
| * | | Merge pull request #548 from dmick/nextSage Weil2013-08-271-1/+2
| |\ \ \ | | | | | | | | | | | | | | | | | | | | ceph.in: add to $PATH if needed regardless of LD_LIBRARY_PATH state Reviewed-by: Sage Weil <sage@inktank.com>
| | * | | ceph.in: add to $PATH if needed regardless of LD_LIBRARY_PATH stateDan Mick2013-08-271-1/+2
| |/ / / | | | | | | | | | | | | Signed-off-by: Dan Mick <dan.mick@inktank.com>
* | | | Merge pull request #541 from ceph/wip-6036Sage Weil2013-08-3016-121/+572
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | osd objecter; copy-get Reviewed-by: Greg Farnum <greg@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
| * | | | osd/ReplicatedPG: do not requeue if not primarySage Weil2013-08-301-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This saves us a bit of work, since we will discard the op anyway if we aren't primary (or even if we become primary again before we get to it). Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd: COPY_GET operationSage Weil2013-08-308-0/+249
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new rados operation to copy all user-visible content for an object in a simple, safe way. Use a new object_copy_cursor_t to keep track of our position. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd/ReplicatedPG: factor {execute,reply}_ctx() out of do_op()Sage Weil2013-08-302-26/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Separate the processing of an OpContext from the preamble and allocation, so that we can delay the execution for some ops (like the COPYFROM operation we're about to add). Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd: feed OSDMaps to the ObjecterSage Weil2013-08-301-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Feed every map message we see (that isn't discarded for some other reason) to the Objecter. It has the same continuity requirements that the OSD has, so it should be satisfied with what we get. It can also request maps via our MonClient. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd: add an Objecter instanceSage Weil2013-08-305-4/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It gets its own lock, timer, and osdmap. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd: discriminate based on connection messenger, not peer typeSage Weil2013-08-301-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace ->get_source().is_osd() checks and instead see if it is the cluster_messenger so that we do not confuse ourselves when we get legit requests from other OSDs on our public interface. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | ceph-osd: rename msgr varsSage Weil2013-08-302-71/+79
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd: add a separate messenger for the ObjecterSage Weil2013-08-303-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We will give the OSD's Objecter its own messenger so that it does not interfere with the OSD when it marks things up or down. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd/ReplicatedPG: add whitespaceSage Weil2013-08-301-0/+10
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd: less whitespaceSage Weil2013-08-301-8/+2
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osdc/Objecter: allow ops to be canceledSage Weil2013-08-302-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful in general, and specifically will be useful for the rados COPY operation. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osdc/Objecter: only request map on startup if epoch == 0Sage Weil2013-08-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normal clients have no map and need one to get started. If we are the OSD, we will already have one and will get fed maps as they come in. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd, objecter: clean up assert_ver()Sage Weil2013-08-304-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a separate union in the args and clean up the code a bit so that this doesn't reuse the (unrelated) watch helpers. No change in protocol. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | osd/ReplicatedPG: drop src_obc.clear() callsSage Weil2013-08-301-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are all about to go out of scope; no need to clear them explicitly. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | os/ObjectStore: add bufferlist variant of setattrsSage Weil2013-08-301-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And hopefully we can kill the bufferptr ones someday! Signed-off-by: Sage Weil <sage@inktank.com>
* | | | | unittest_lfnindex testing older HASH_INDEX_TAGDavid Zafman2013-08-301-5/+15
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switch to work with new HOBJECT_WITH_POOL fixes: #6196 Signed-off-by: David Zafman <david.zafman@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
* | | | doc/rados/operations/pools: remove experimental note about pg splittingSage Weil2013-08-301-6/+0
| | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | | | Merge pull request #560 from ceph/wip-6032-cache-objecterSage Weil2013-08-304-9/+82
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Wip 6032 cache objecter Reviewed-by: Sage Weil <sage@inktank.com>
| * | | | workunits: add a test for caching redirectsGreg Farnum2013-08-301-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This may need to change since it exploits some of the loose consistency we currently have with caching pools, but for now it checks that the Objecter does what we want. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | | | osd_types: note that write_tier wins if read_tier is differentGreg Farnum2013-08-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For pg_pool_t. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | | | Objecter: respect read_tier & write_tier for initial op submissionGreg Farnum2013-08-301-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We overwrite target_oloc.pool with the appropriate [read|write]_tier. write_tier wins if it matches both. We don't handle any sort of redirect yet. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | | | Objecter: be careful about precalculated pgidsGreg Farnum2013-08-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only current user of the precalc_pgid field is list_objects. That's fine, but we don't want new users to inadvertently appear and somehow break the caching/tiering stuff by forcing us to go to the base pool when we should be talking to somebody else. Add an assert to catch these cases. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | | | Objecter: add an Op::target_oloc and use it instead of base_oloc in send_op()Greg Farnum2013-08-302-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For now we simply set target_oloc = base_oloc in recalc_op_target(), but we will shortly be doing more interesting things with it there. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | | | Objecter: rename Op::oloc -> Op::base_olocGreg Farnum2013-08-302-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to be able to target other pools for caching and tiering, so we need to take an oloc from the client and translate it into an actual target. Rename oloc to base_oloc to make clear which one it is. Signed-off-by: Greg Farnum <greg@inktank.com>
* | | | | Merge pull request #554 from ceph/wip-tier-interfaceGregory Farnum2013-08-309-48/+435
|\ \ \ \ \ | |/ / / / | | | | / | |_|_|/ |/| | | | | | | Specify a user and pg_pool_t interface for tiering/caching specifications Reviewed-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
| * | | mon/OSDMonitor: 'osd tier {set,remove}-overlay <pool> [tierpool]'Greg Farnum2013-08-303-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | Also prevent 'osd tier remove ...' if the tierpool is the current overlay. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | qa/workunits/cephtool/test.sh: test osd tier CLIGreg Farnum2013-08-301-0/+15
| | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | | mon/OSDMonitor: 'osd tier cache-mode <pool> <mode>'Sage Weil2013-08-303-0/+45
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com> Signed-off-by: Greg Farnum <greg@inktank.com>
| * | | mon/OSDMonitor: 'osd pool tier <add|remove> <pool> <tierpool>'Sage Weil2013-08-292-1/+85
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com> Signed-off-by: Greg Farnum <greg@inktank.com>
| * | | osd/OSDMonitor: avoid polluting pending_inc on error for 'osd pool set ...'Sage Weil2013-08-292-39/+43
| | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | | osd_types: add pg_pool_t cache-related fieldsSage Weil2013-08-294-8/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We add fields sufficient to specify * many pools have a tiering relationship with pool foo * pool foo is a tier pool for pool bar * the tiering relationship between foo and bar is specified by cache_mode * client reads and writes for pool foo should be directed to pools bar and baz, respectively (where probably, but not necessarily, baz == bar or baz == foo). This lets us specify very sophisticated caching policies on the server side that all clients going forward can handle simply by directing the messages as the read_tier and write_tier flags, and the (not-yet-implemented) redirect replies from OSDs, specify. Signed-off-by: Sage Weil <sage@inktank.com> Signed-off-by: Greg Farnum <greg@inktank.com>