]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
13 years agoosd: add incomplete, backfill states; simplify calculation
Sage Weil [Wed, 7 Dec 2011 00:00:48 +0000 (16:00 -0800)]
osd: add incomplete, backfill states; simplify calculation

Set/clear states in peering state machine state ctor/dtors where possible.

Set degraded if the number of non-backfilling replicas is lower than the
target replication factor.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agohobject_t: fix hobject(sobject_t) constructor
Sage Weil [Tue, 6 Dec 2011 23:38:00 +0000 (15:38 -0800)]
hobject_t: fix hobject(sobject_t) constructor

Initialize max

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: more backfill changes
Sage Weil [Tue, 6 Dec 2011 23:27:39 +0000 (15:27 -0800)]
osd: more backfill changes

Always ship log for updates to backfill targets to preserve the repgather
ordering.

Fix up recover_backfill() bounds.  Re-scan the local collect on every pass
in case there were concurrent modifications.  (This could be optimized.)

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: observe last_backfill in merge_log() and helpers
Sage Weil [Tue, 6 Dec 2011 23:25:03 +0000 (15:25 -0800)]
osd: observe last_backfill in merge_log() and helpers

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoobjectstore: make list by hash *next > instead of >=
Sage Weil [Tue, 6 Dec 2011 23:21:15 +0000 (15:21 -0800)]
objectstore: make list by hash *next > instead of >=

This means we should set it to a hash boundary or the last item of our
result set (not the next item we didn't include).

It means that during backfill we can set our last_backfill to the last
object we did recover and be sure that any new files locally will be
included in the next result set, and we can bound that result set by that
last object recovered and not include it in the resulting range.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: initialize repop gather set in issue_repop instead of new_repop
Sage Weil [Tue, 6 Dec 2011 17:15:44 +0000 (09:15 -0800)]
osd: initialize repop gather set in issue_repop instead of new_repop

Simpler.  It will also make the last_backfill correction live in one
place.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: implement PG::copy_range()
Sage Weil [Tue, 6 Dec 2011 16:48:55 +0000 (08:48 -0800)]
osd: implement PG::copy_range()

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoRevert "osd: don't keep push state on replicas"
Sage Weil [Tue, 6 Dec 2011 16:18:01 +0000 (08:18 -0800)]
Revert "osd: don't keep push state on replicas"

This reverts commit 69c77e33f8530993dbc280525bd21218ea6f9ddb.

sub_op_pull() calls send_push_op directly, does not pass push_start().

13 years agoosd: make backfill (basically) work again
Sage Weil [Tue, 6 Dec 2011 01:25:21 +0000 (17:25 -0800)]
osd: make backfill (basically) work again

Still need to handle concurrent updates, log recovery vs backfill, etc.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: keep backfill targets in acting set
Sage Weil [Mon, 5 Dec 2011 23:35:34 +0000 (15:35 -0800)]
osd: keep backfill targets in acting set

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: advance last_backfill by keys only
Sage Weil [Mon, 5 Dec 2011 23:24:01 +0000 (15:24 -0800)]
osd: advance last_backfill by keys only

This ensures that transactions are never split by last_backfill.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agohobject_t: fix sorting by hash key
Sage Weil [Mon, 5 Dec 2011 23:21:59 +0000 (15:21 -0800)]
hobject_t: fix sorting by hash key

Use get_effective_key() to return key (if explicit) or object name.  Sort
by that within each hash value.

Clean up operator<< so that it prints things in sort order.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: osd_kill_backfill_at
Sage Weil [Mon, 5 Dec 2011 23:15:35 +0000 (15:15 -0800)]
osd: osd_kill_backfill_at

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: track backfill with last_backfill, not interval_set<>
Sage Weil [Mon, 5 Dec 2011 19:38:12 +0000 (11:38 -0800)]
osd: track backfill with last_backfill, not interval_set<>

We always fill from the bottom up anyway.  Using an hobject_t also gives us
a precise bound.  It also makes things conceptually simpler: last_complete
and last_backfill bounding each of the two dimensions of updatedness.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: pg whitespace
Sage Weil [Sat, 3 Dec 2011 22:41:54 +0000 (14:41 -0800)]
osd: pg whitespace

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: kill unused PG::trim_write_ahead
Sage Weil [Sat, 3 Dec 2011 22:29:44 +0000 (14:29 -0800)]
osd: kill unused PG::trim_write_ahead

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: kill unused PG::Log::copy_after_unless_divergent
Sage Weil [Sat, 3 Dec 2011 22:29:15 +0000 (14:29 -0800)]
osd: kill unused PG::Log::copy_after_unless_divergent

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: cleanup lingering backlog refs
Sage Weil [Sat, 3 Dec 2011 00:35:04 +0000 (16:35 -0800)]
osd: cleanup lingering backlog refs

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: cleanup
Sage Weil [Sat, 3 Dec 2011 00:34:52 +0000 (16:34 -0800)]
osd: cleanup

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: kill unused PG_STATE_SCANNING
Sage Weil [Sat, 3 Dec 2011 00:34:34 +0000 (16:34 -0800)]
osd: kill unused PG_STATE_SCANNING

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: remove recovery-from-backlog kludge last_update
Sage Weil [Sat, 3 Dec 2011 00:33:35 +0000 (16:33 -0800)]
osd: remove recovery-from-backlog kludge last_update

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: kill PG::Info::backlog
Sage Weil [Sat, 3 Dec 2011 00:16:12 +0000 (16:16 -0800)]
osd: kill PG::Info::backlog

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: remove backlog case from clean_up_local
Sage Weil [Sat, 3 Dec 2011 00:16:04 +0000 (16:16 -0800)]
osd: remove backlog case from clean_up_local

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: remove log_backlog from PG::Info
Sage Weil [Sat, 3 Dec 2011 00:01:57 +0000 (16:01 -0800)]
osd: remove log_backlog from PG::Info

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: state machine whitespace
Sage Weil [Fri, 2 Dec 2011 23:50:53 +0000 (15:50 -0800)]
osd: state machine whitespace

I feel better now

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: strip backlog logic out of PG::activate()
Sage Weil [Fri, 2 Dec 2011 23:47:20 +0000 (15:47 -0800)]
osd: strip backlog logic out of PG::activate()

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: kill backlog_requested
Sage Weil [Fri, 2 Dec 2011 23:44:35 +0000 (15:44 -0800)]
osd: kill backlog_requested

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: strip backlog case out of merge_log
Sage Weil [Fri, 2 Dec 2011 23:43:33 +0000 (15:43 -0800)]
osd: strip backlog case out of merge_log

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: strip out some backlog logic
Sage Weil [Sat, 3 Dec 2011 00:20:54 +0000 (16:20 -0800)]
osd: strip out some backlog logic

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: kill PG::Log::copy_non_backlog
Sage Weil [Fri, 2 Dec 2011 21:58:14 +0000 (13:58 -0800)]
osd: kill PG::Log::copy_non_backlog

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: remove Query::BACKLOG processing
Sage Weil [Fri, 2 Dec 2011 18:47:44 +0000 (10:47 -0800)]
osd: remove Query::BACKLOG processing

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: simplify replica queries for finding divergent objects
Sage Weil [Fri, 2 Dec 2011 18:45:12 +0000 (10:45 -0800)]
osd: simplify replica queries for finding divergent objects

No need to request backlog here, clearly, since those don't exist anymore.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: remove backlog generation code
Sage Weil [Fri, 2 Dec 2011 18:36:49 +0000 (10:36 -0800)]
osd: remove backlog generation code

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: do not read backlog off disk
Sage Weil [Fri, 2 Dec 2011 18:31:55 +0000 (10:31 -0800)]
osd: do not read backlog off disk

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: add Incomplete peering state
Sage Weil [Fri, 2 Dec 2011 04:46:12 +0000 (20:46 -0800)]
osd: add Incomplete peering state

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotest_backfill.sh
Sage Weil [Thu, 1 Dec 2011 18:28:14 +0000 (10:28 -0800)]
test_backfill.sh

13 years agoosd: recover discontiguous peers using backfill instead of backlog
Sage Weil [Fri, 2 Dec 2011 17:39:17 +0000 (09:39 -0800)]
osd: recover discontiguous peers using backfill instead of backlog

Instead of generating a huge list of objects to recover, and then pushing
them, iterate over the collection and copy objects as we go.

Disable various bits of backlog code; it will all get ripped out shortly.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: add MOSDPGBackfill message
Sage Weil [Fri, 2 Dec 2011 00:56:27 +0000 (16:56 -0800)]
osd: add MOSDPGBackfill message

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agotypes: operator<< for multimaps
Sage Weil [Thu, 1 Dec 2011 19:30:24 +0000 (11:30 -0800)]
types: operator<< for multimaps

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: implement do_scan
Sage Weil [Fri, 2 Dec 2011 04:59:21 +0000 (20:59 -0800)]
osd: implement do_scan

Handle MOSDPGScan messages to request or send a digest of a range of
objects in a collection, sorted in hobject_t (hash) order.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: implement ReplicatedPG::scan_range
Sage Weil [Fri, 2 Dec 2011 05:03:28 +0000 (21:03 -0800)]
osd: implement ReplicatedPG::scan_range

Scan a range of the local collection.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: implement ReplicatedPG::_lookup_object_context
Sage Weil [Fri, 2 Dec 2011 05:01:40 +0000 (21:01 -0800)]
osd: implement ReplicatedPG::_lookup_object_context

Look up an existing ObjectContext without taking a reference.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: add PG::BackfillInterval type
Sage Weil [Fri, 2 Dec 2011 05:00:50 +0000 (21:00 -0800)]
osd: add PG::BackfillInterval type

Describe a range of objects for the purposes of backfilling a PG.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: MOSDPGScan
Sage Weil [Fri, 2 Dec 2011 04:55:05 +0000 (20:55 -0800)]
osd: MOSDPGScan

Message to query hash ranges of a PG.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoosd: rewrite choose_acting process
Sage Weil [Fri, 2 Dec 2011 04:54:10 +0000 (20:54 -0800)]
osd: rewrite choose_acting process

Consolidate callers, eliminate obsolete backlog ones.

New process:
 - pick best log, with preferences for those that might end up primary
 - pick best primary that is log-contiguous with best log, with preference
   for longer tails that will result in more acting osds.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: don't keep push state on replicas
Sage Weil [Wed, 30 Nov 2011 01:04:52 +0000 (17:04 -0800)]
osd: don't keep push state on replicas

Primaries need this, but replicas don't: the primary will explicitly pull
the pieces of the object that it wants.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoosd: fix push_to_replica typo
Sage Weil [Wed, 30 Nov 2011 00:44:17 +0000 (16:44 -0800)]
osd: fix push_to_replica typo

We are always pushing soid.  If we are missing snapdir locally, that means
we can't do an informed efficient clone, and should push the whole
object... NOT that we should push snapdir!

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoMerge branch 'wip_pgls'
Samuel Just [Fri, 9 Dec 2011 23:23:32 +0000 (15:23 -0800)]
Merge branch 'wip_pgls'

13 years agopybind: add object locator support to pybind pool listing
Samuel Just [Fri, 9 Dec 2011 22:42:21 +0000 (14:42 -0800)]
pybind: add object locator support to pybind pool listing

list_objects returns Object().  Object therefore now has an optional
locator_key parameter which will set up the object locator on Object()
methods to allow objects returned from list_objects with locator keys to
be used normally.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agorados.cc: add --object-locator and object locator output to ls
Samuel Just [Thu, 8 Dec 2011 01:06:01 +0000 (17:06 -0800)]
rados.cc: add --object-locator and object locator output to ls

--object-locator locator causes io to use the specified locator.  For
objects with non-empty locators, rados pool ls will output the locator
as well.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agoReplicatedPG: collection_list_handle_t is now an hobject_t
Samuel Just [Sat, 3 Dec 2011 01:06:59 +0000 (17:06 -0800)]
ReplicatedPG: collection_list_handle_t is now an hobject_t

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agoosd: delay pg list on a snapid until missing is empty
Samuel Just [Fri, 2 Dec 2011 23:42:01 +0000 (15:42 -0800)]
osd: delay pg list on a snapid until missing is empty

We cannot determine from the missing set whether an object existed
at a given snap.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agomsgr: turn up socket debug printouts
Greg Farnum [Fri, 9 Dec 2011 01:45:47 +0000 (17:45 -0800)]
msgr: turn up socket debug printouts

These shouldn't be too common and will help in debugging
socket leaks.

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
13 years agoudev: drop device number from name
Josh Durgin [Fri, 9 Dec 2011 00:36:45 +0000 (16:36 -0800)]
udev: drop device number from name

The device number depends on how many rbd images have been
mapped. Removing it makes the name determined solely by the name,
image, and snapshot that are mapped, for ease of scripting or persistence
across reboots.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agopybind: trivial fix of missing argument
Henry C Chang [Thu, 8 Dec 2011 14:35:07 +0000 (22:35 +0800)]
pybind: trivial fix of missing argument

Signed-off-by: Henry C Chang <henry.cy.chang@gmail.com>
13 years agoclient: trim lru after flushing dirty data
Sage Weil [Thu, 8 Dec 2011 05:16:18 +0000 (21:16 -0800)]
client: trim lru after flushing dirty data

Shouldn't matter, but it would be interesting to see if this affects
#1737.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoclient: unmount cleanup
Sage Weil [Thu, 8 Dec 2011 05:05:40 +0000 (21:05 -0800)]
client: unmount cleanup

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoclient: wait for sync writes even with cache enabled
Sage Weil [Thu, 8 Dec 2011 05:01:48 +0000 (21:01 -0800)]
client: wait for sync writes even with cache enabled

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoclient: send umount warnings to log, not stderr
Sage Weil [Thu, 8 Dec 2011 04:59:25 +0000 (20:59 -0800)]
client: send umount warnings to log, not stderr

stderr isn't usually open anyway.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoObjectStore,ReplicatedPG: remove old collection_list_partial
Samuel Just [Fri, 2 Dec 2011 21:27:43 +0000 (13:27 -0800)]
ObjectStore,ReplicatedPG: remove old collection_list_partial

No need for the old collection_list_partial instance: it's cleaner to
just use an hobject_t as the collection list handle.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agolibrados,Objecter,PG: list objects now includes the locator key
Samuel Just [Thu, 1 Sep 2011 21:56:01 +0000 (14:56 -0700)]
librados,Objecter,PG: list objects now includes the locator key

Previously, there was no way to recover the locator key used to create
and object.  Now, rados_objects_list_next and ObjectIterator will return
the key as well as the object name.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agohobject_t: encode max properly
Sage Weil [Mon, 5 Dec 2011 19:25:09 +0000 (11:25 -0800)]
hobject_t: encode max properly

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agohobject_t: make filestore_hobject_key_t 64 bits
Sage Weil [Thu, 1 Dec 2011 21:12:43 +0000 (13:12 -0800)]
hobject_t: make filestore_hobject_key_t 64 bits

So we can return 0x100000000 when max=true.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoos/HashIndex: some minimal debug output
Sage Weil [Thu, 1 Dec 2011 19:30:50 +0000 (11:30 -0800)]
os/HashIndex: some minimal debug output

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoObjectStore: Add collection_list_partial for hash order
Sage Weil [Fri, 2 Dec 2011 04:57:23 +0000 (20:57 -0800)]
ObjectStore: Add collection_list_partial for hash order

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agohobject_t: define explicit hash, operator<<; drop implicit sobject_t()
Sage Weil [Thu, 1 Dec 2011 18:58:37 +0000 (10:58 -0800)]
hobject_t: define explicit hash, operator<<; drop implicit sobject_t()

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agoobject.h: Sort hobject_t by nibble reversed hash
Samuel Just [Wed, 30 Nov 2011 18:38:09 +0000 (10:38 -0800)]
object.h: Sort hobject_t by nibble reversed hash

To match the HashIndex ordering, we need to sort hobject_t by the nibble
reversed hash.  We store objects in the filestore in a directory tree
with the least significant nibble at the top and the most at the bottom
to facilitate pg splitting in the future.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agohobject_t: sort by (max, hash, oid, snap)
Sage Weil [Fri, 2 Dec 2011 04:57:09 +0000 (20:57 -0800)]
hobject_t: sort by (max, hash, oid, snap)

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agohobject_t: define max value
Sage Weil [Fri, 2 Dec 2011 04:56:50 +0000 (20:56 -0800)]
hobject_t: define max value

Create a max value that is greater than all other values.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agogitignore: Ignore src/keyring, as created by vstart.sh
Tommi Virtanen [Tue, 6 Dec 2011 23:22:16 +0000 (15:22 -0800)]
gitignore: Ignore src/keyring, as created by vstart.sh

Commit 86c34ba9ee8c883b71a8449c3c261154365c35ae changed
the filename but not .gitignore.

Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
13 years agoReplicatedPG: don't crash on empty data_subset in sub_op_push
Samuel Just [Tue, 6 Dec 2011 21:23:03 +0000 (13:23 -0800)]
ReplicatedPG: don't crash on empty data_subset in sub_op_push

If data_subset is empty (i.e., the data we pulled is no longer useful),
we should mark complete false and continue rather than fail the
assert in range_end().

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
13 years agoworkunits: fix secret file and temp file removal for kernel rbd
Josh Durgin [Tue, 6 Dec 2011 22:19:19 +0000 (14:19 -0800)]
workunits: fix secret file and temp file removal for kernel rbd

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agoReplicatedPG: do not ->put() scrub messages when adding to a WorkQueue.
Greg Farnum [Tue, 6 Dec 2011 22:24:08 +0000 (14:24 -0800)]
ReplicatedPG: do not ->put() scrub messages when adding to a WorkQueue.

This function is passing a reference from PG::active_rep_scrub to
the req_scrub_wq, not eliminating the reference (and the WorkQueue
doesn't grab a new reference itself, either).
The other alternative is to convert the WorkQueue to grab a
reference, but since they can cycle through the WorkQueue more than
once, and need to be ->put() outside the WorkQueue, I don't like
that option.
This should fix #1758.

Also add an assert to PG::_request_scrub_map to check on the other
possible cause of this bug (and fix the indentation).

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
13 years agoworkunits: make rbd kernel workunit executable
Josh Durgin [Tue, 6 Dec 2011 21:36:51 +0000 (13:36 -0800)]
workunits: make rbd kernel workunit executable

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agodoc: Reorganize pip calls to use a requirements file.
Tommi Virtanen [Tue, 6 Dec 2011 20:13:03 +0000 (12:13 -0800)]
doc: Reorganize pip calls to use a requirements file.

The conditional before running pip install was unnecessary,
"pip install" on already installed packages is fast (as long
as it's not --upgrade), and --quiet makes it not spam the
console.

Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
13 years agodoc: Switch diagram tools from dia to ditaa.
Tommi Virtanen [Tue, 6 Dec 2011 20:04:03 +0000 (12:04 -0800)]
doc: Switch diagram tools from dia to ditaa.

Now you can create diagrams easily with the ".. ditaa::"
directive in the Sphinx documents.

admin/build-doc now checks for debs required for building
the documentation, or just lists commands missing for hosts
not using dpkg.

For more on Ditaa, see http://ditaa.sourceforge.net/

Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
13 years agofilestore: send back op error to log, not stderr
Sage Weil [Tue, 6 Dec 2011 18:46:27 +0000 (10:46 -0800)]
filestore: send back op error to log, not stderr

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agodoc: fix typo
Sage Weil [Tue, 6 Dec 2011 18:39:49 +0000 (10:39 -0800)]
doc: fix typo

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoworkunits: add some tests for kernel rbd
Josh Durgin [Tue, 6 Dec 2011 18:31:17 +0000 (10:31 -0800)]
workunits: add some tests for kernel rbd

This covers some snapshot and resize functions that aren't tested by fs benchmarks.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agorbd: the showmapped command shouldn't connect to the cluster
Josh Durgin [Wed, 30 Nov 2011 18:26:22 +0000 (10:26 -0800)]
rbd: the showmapped command shouldn't connect to the cluster

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agoceph-rbdnamer: include snapshot name if present
Josh Durgin [Tue, 29 Nov 2011 01:24:25 +0000 (17:24 -0800)]
ceph-rbdnamer: include snapshot name if present

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agorbd, mount.ceph: use pre-stored secret if available
Josh Durgin [Tue, 29 Nov 2011 01:02:15 +0000 (17:02 -0800)]
rbd, mount.ceph: use pre-stored secret if available

If a secret is specified, store and use it, but otherwise
check for a pre-existing secret to use.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agosecret: add is_kernel_secret function
Josh Durgin [Tue, 29 Nov 2011 00:54:27 +0000 (16:54 -0800)]
secret: add is_kernel_secret function

This will let us know whether we can add a key mount option
if no secret is specified.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agosecret: fix error check
Josh Durgin [Tue, 29 Nov 2011 00:52:19 +0000 (16:52 -0800)]
secret: fix error check

add_key will return -1 when an error occurs, which should be handled at a higher level and not printed here.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agorbd: allow snapshots to be mapped
Josh Durgin [Wed, 23 Nov 2011 21:54:08 +0000 (13:54 -0800)]
rbd: allow snapshots to be mapped

unmap and showmapped already support snapshots. map should too.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agotest_rados.py: clean up after EEXIST test
Josh Durgin [Tue, 6 Dec 2011 16:34:19 +0000 (08:34 -0800)]
test_rados.py: clean up after EEXIST test

This extra pool caused subsequent pool tests to fail.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agoMerge remote branch 'gh/stable'
Sage Weil [Tue, 6 Dec 2011 01:33:57 +0000 (17:33 -0800)]
Merge remote branch 'gh/stable'

13 years agodoc: fix rst syntax
Sage Weil [Tue, 6 Dec 2011 00:16:35 +0000 (16:16 -0800)]
doc: fix rst syntax

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agodoc: document monitor cluster expansion/contraction
Sage Weil [Mon, 5 Dec 2011 22:07:44 +0000 (14:07 -0800)]
doc: document monitor cluster expansion/contraction

Pretty sure my rst syntax is wrong.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agocephtool: fix shutdown
Sage Weil [Mon, 5 Dec 2011 21:38:02 +0000 (13:38 -0800)]
cephtool: fix shutdown

Fix 'ceph -w' brokenness from commit ad13d0b7.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
13 years agofilejournal: make FileJournal::open() arg slightly less weird
Sage Weil [Mon, 5 Dec 2011 17:36:54 +0000 (09:36 -0800)]
filejournal: make FileJournal::open() arg slightly less weird

Pass in fs_op_seq (last_committed_seq), not the next expected seq, so we
can avoid subtracting and adding 1 in odd places.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoMerge branch 'stable'
Sage Weil [Mon, 5 Dec 2011 19:21:08 +0000 (11:21 -0800)]
Merge branch 'stable'

13 years agovstart.sh: .ceph_keyring -> keyring
Sage Weil [Mon, 5 Dec 2011 17:23:56 +0000 (09:23 -0800)]
vstart.sh: .ceph_keyring -> keyring

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agofilejournal: remove bogus check in read_entry
Sage Weil [Mon, 5 Dec 2011 18:52:24 +0000 (10:52 -0800)]
filejournal: remove bogus check in read_entry

It is perfectly fine to read events that are older than the fs's seq from
the journal; open() will skip them when positioning the read pointer on
open.

Also, this code is nonsensical; it always failed the assertion.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agofilejournal: set last_committed_seq based on fs, not journal
Sage Weil [Mon, 5 Dec 2011 17:34:44 +0000 (09:34 -0800)]
filejournal: set last_committed_seq based on fs, not journal

last_committed_seq is the last seq committed to the fs, not the journal.
Set it when we begin replay with the fs provided value, not from the newest
entry in the journal.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agomon: stub perfcounters for monitor, cluster
Sage Weil [Fri, 2 Dec 2011 23:35:38 +0000 (15:35 -0800)]
mon: stub perfcounters for monitor, cluster

The 'mon' perfcounter is for the local daemon and is always registered.

The 'cluster' perfcounter is for cluster state, and is only registered
(and thus only shows up via the admin socket) when the current daemon is
part of the cluster quorum.

No actual counters yet.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoosd: safely requeue waiting_for_ondisk waiters on_role_change
Sage Weil [Fri, 2 Dec 2011 23:25:37 +0000 (15:25 -0800)]
osd: safely requeue waiting_for_ondisk waiters on_role_change

This could conceivably cause the reply ordering mismatch seen in bug
#1490.  Not sure why we didn't also fix this caller when we fixed that
bug last time :).

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agoosd: rename {take -> requeue}_object_waiters
Sage Weil [Fri, 2 Dec 2011 23:24:00 +0000 (15:24 -0800)]
osd: rename {take -> requeue}_object_waiters

It calls osd->requeue_ops(), so make naming more consistent and avoid
confusing people like me.

Signed-off-by: Sage Weil <sage@newdream.net>
13 years agorados.py: add list_pools method
Josh Durgin [Fri, 2 Dec 2011 21:17:34 +0000 (13:17 -0800)]
rados.py: add list_pools method

Signed-off-by: Eric Chen <Eric_YH_Chen@wistron.com>
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
13 years agoMerge branch 'stable'
Sage Weil [Fri, 2 Dec 2011 20:06:50 +0000 (12:06 -0800)]
Merge branch 'stable'