Commit Graph

20132 Commits

Author SHA1 Message Date
Samuel Just
8ade74b241 ReplicatedPG: remove faulty scrub assert in sub_op_modify_applied
This assert assumed that all ops submitted before MOSDRepScrub was
submitted were processed by the time that MOSDRepScrub was
processed.  In fact, MOSDRepScrub's scrub_to may refer to a
last_update yet to be seen by the replica.

Bug #2693

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-07-03 11:30:08 -07:00
John Wilkins
09dd8cad36 doc: Updating Getting Started with 5-minute quick start.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-07-03 11:21:43 -07:00
John Wilkins
da24208dcd Merge branch 'master' of github.com:ceph/ceph 2012-07-03 11:18:11 -07:00
John Wilkins
8c95b5c8ae doc: restructuring quick start section.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-07-03 11:17:50 -07:00
Samuel Just
4bd7c05b84 IoCtxImpl: pass objver pointer to aio_operate_read
Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-07-03 11:10:54 -07:00
Tommi Virtanen
4e774fbcb3 ceph-disk-prepare: Take fsid from config file.
Closes: #2546.

Signed-off-by: Tommi Virtanen <tv@inktank.com>
2012-07-03 09:24:09 -07:00
John Wilkins
6bb19e74c0 doc: Cleaned up rbd snapshots.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-07-03 08:46:14 -07:00
Sage Weil
14ec778263 client: improve dump_cache output
Hunting #1737.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 21:08:27 -07:00
Sage Weil
8b462019f2 doc: release notes for 0.48
Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 20:20:14 -07:00
Sage Weil
562cad6666 doc: 'Configuring a Storage Cluster' -> 'Configuration'
Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 20:18:51 -07:00
Sage Weil
d347cc8942 v0.48argonaut
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJP8iluAAoJEH6/3V0X7TFtnFsQAI9z65MWcZNi0nbXmLRudBfM
 0IrcP8bmDAY9D9F45jVxhnJlumxv1FJFBNYXwNkFC/+6jhhevsnIstjYzactPyGt
 C52gapsgjW5S5BSZBAZjyE0zfP9Iu0s7UhxhdABsRkcOnHFJdrXebkNWL4x7I3st
 Sok5LyL6EyIcTNDFYGajOARMbNSi71j8Ys67onPMJaGFenQD0mcgd9bJMmun99Xt
 DQEMOFRXEQydjbO9tAiWLWN6ws/nugcsdJggGqny2Z0AqqiHRejOPyVovsVX63jK
 r9psFdPDMGFWXa11KIj3mihRXQZoSlqbibYhGBgOYtfsaAkegOmoyS/YNcumDY0G
 2w+6azQkmKqRMytgPD1tBCZV6pLoPtROUBXoKn4Enul41FWKzPidGsqKh7mSZSaz
 7/Zl0Y7Blgtbtfh6V2kJwKpoeNNVhXsXRFnlyKnH+SszUOdzsLVZHoH5GwptpCD/
 dxeeXXjmK1J87p08Ze/hy7GqFlEam8yRHukzF9G4V62Yggy/ZIi75uoyxydBWbxr
 mOpbNGl5Ckl925LAMSTu3Dkj1n1C0gJUe+OJHUof6F2Dncczhr1Cjtgq/Fp0YXYz
 8XyPhjN43HnkIgW/ogRtPnJVjHv7Z4HMFUfRS3szWzWp7wZABe7ULRvnZcCDaPb0
 O04ycKNKttq0YAOzNM5M
 =DzUX
 -----END PGP SIGNATURE-----

Merge tag 'v0.48argonaut'

v0.48argonaut
2012-07-02 21:24:56 -07:00
Sage Weil
030478e299 Merge branch 'wip-msgr' 2012-07-02 17:54:35 -07:00
Sage Weil
b5287c19d4 lockdep: enable in common_init
Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:26 -07:00
Sage Weil
f7d4e39740 msgr: restart_queue when replacing existing pipe and taking over the queue
The queue may have been previously stopped (by discard_queue()), and needs
to be restarted.

Fixes consistent failures from the mon_recovery.py integration tests.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
5dfd2a512d msgr: choose incoming connection if ours is STANDBY
If the connect_seq matches, but our existing connection is in STANDBY, take
the incoming one.  Otherwise, the other end will wait indefinitely for us
to connect but we won't.

Alternatively, we could "win" the race and trigger a connection by sending
a keepalive (or similar), but that is more work; we may as well accept the
incoming connection we have now.

This removes STANDBY from the acceptable WAIT case states.  It also keeps
responsibility squarely on the shoulders of the peer with something to
deliver.

Without this patch, a 3-osd vstart cluster with
'ms inject socket failures = 100' and rados bench write -b 4096 would start
generating slow request warnings after a few minutes due to the osds
failing to connect to each other.  With the patch, I complete a 10 minute
run without problems.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
b7007a159f msgr: preserve incoming message queue when replacing pipes
If we replace an existing pipe with a new one, move the incoming queue
of messages that have not yet been dispatched over to the new Pipe so that
they are not lost.  This prevents messages from being lost.

Alternatively, we could set in_seq = existing->in_seq - existing->in_qlen,
but that would make the other end resend those messages, which is a waste
of bandwidth.

Very easy to reproduce the original bug with 'ms inject socket failures'.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
1f3a722e15 msgr: move dispatch_entry into DispatchQueue class
A bit cleaner.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
03445290da msgr: move incoming queue to separate class
This extricates the incoming queue and its funky relationship with
DispatchQueue from Pipe and moves it into IncomingQueue.  There is now a
single IncomingQueue attached to each Pipe.  DispatchQueue is now no
longer tied to Pipe.

This modularizes the code a bit better (tho that is still a work in
progress) and (more importantly) will make it possible to move the
incoming messages from one pipe to another in accept().

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
0dbc541695 msgr: make D_CONNECT constant non-zero, fix ms_handle_connect() callback
A while ago we inadvertantly broke ms_handle_connect() callbacks because
of a check for m being non-zero in the dispatch_entry() thread.  Adjust the
enums so that they get delivered again.

This fixes hangs when, for example, the ceph tool sends a command, gets a
connection reset, and doesn't get the connect callback to resend after
reconnecting to a new monitor.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
2429556a51 msgr: fix pipe replacement assert
We may replace an existing pipe in the STANDBY state if the previous
attempt failed during accept() (see previous patches).

This might fix #1378.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
204bc594be msgr: do not try to reconnect con with CLOSED pipe
If we have a con with a closed pipe, drop the message.  For lossless
sessions, the state will be STANDBY if we should reconnect.  For lossy
sessions, we will end up with CLOSED and we *should* drop the message.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:54:00 -07:00
Sage Weil
e6ad6d25a5 msgr: move to STANDBY if we replace during accept and then fail
If we replace an existing pipe during accept() and then fail, move to
STANDBY so that our connection state (connect_seq, etc.) is preserved.
Otherwise, we will throw out that information and falsely trigger a
RESETSESSION on the next connection attempt.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 17:53:59 -07:00
Sage Weil
c2b20ca742 v0.48argonaut 2012-07-02 16:06:01 -07:00
Holger Macht
b5098b38f9 ceph.spec.in: Change license of base package to GPL and use SPDX format
LGPLv2 in spec file is not correct, because some of the included
packages/binaries are GPLv2. For example:

 src/mount/mtab.c     -> package ceph, binary mount.ceph
 src/common/fiemap.cc -> package ceph, binary rbd

Also use SPDX format (http://www.spdx.org/licenses) for the sub-package
licenses.

Signed-off-by: Holger Macht <hmacht@suse.de>
2012-07-02 16:06:01 -07:00
Sage Weil
a1fe589209 mon: initialize quorum_features
This could cause us to incorrectly encode new features into the monstore
that an old mon won't understand.

This is overly conservative; we probably need to persist the set of quorum
features that are supported and use those.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 16:05:16 -07:00
John Wilkins
2628530e0b doc: fixed --cap error and a few additional bits of cleanup.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-07-02 13:05:26 -07:00
Samuel Just
2472034c4f OSD::do_command: unlock pg only if we had it
Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-07-02 09:51:37 -07:00
Samuel Just
841451f2fe MOSDSubOp: set hobject_incorrect_pool in decode_payload
Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-07-02 09:49:52 -07:00
John Wilkins
b91becadf8 doc: Added sudo and cleaner instruction for unmap.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-07-02 08:55:36 -07:00
John Wilkins
f16a9c46ea doc: updated usage on RBD kernel object commands.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-07-02 08:35:10 -07:00
John Wilkins
82abe00ed1 Merge pull request #15 from fghaas/wip-rgw-doc
radosgw documentation improvements
2012-07-02 08:07:23 -07:00
Sage Weil
e1a385bb07 Merge pull request #17 from fghaas/rgw-manpage
doc: drop mention of MDS capabilities from radosgw man page
2012-07-02 08:03:33 -07:00
Florian Haas
e18601348f doc: drop mention of MDS capabilities from radosgw man page
Signed-off-by: Florian Haas <florian@hastexo.com>
2012-07-02 16:54:08 +02:00
Sage Weil
deceb709ea filestore: initialize m_filestore_do_dump
Signed-off-by: Sage Weil <sage@inktank.com>
2012-07-02 07:10:33 -07:00
Josh Durgin
31ad2639b2 doc: add design doc for rbd layering
I'm still not sure about the names for the command line
operations, but they can be changed later if better ones
come up.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-06-30 21:45:28 -07:00
Sage Weil
398a229c0e filestore: set min flush size
If a write is smaller than some threshold, do not bother to flush it; let
the fs do that (efficiently, we hope) at commit time.  Focus on the big
writes.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-06-30 10:31:25 -07:00
Sage Weil
0810ab6de6 osdmap: check new pool name on rename
Ensure the new pool name doesn't already exist, both in the current and
project map.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-29 19:56:07 -07:00
Sage Weil
5a93550912 osd: handle pool name changes properly
* Remove the old name from the name->id map.

Fixes: #2676
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-29 19:54:35 -07:00
Samuel Just
cc4955a5f9 PG: reset_recovery_pointers in activate if missing is empty
Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-29 15:49:51 -07:00
Dan Mick
657e86c5d0 vstart.sh: don't clobber keyring if not -n
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2012-06-29 15:25:52 -07:00
Sage Weil
a8d7fd959d mon: 'osd pool rename <oldname> <newname>'
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-29 14:51:32 -07:00
Sage Weil
02f1b0a692 doc: document new 'osd crush move ...' command
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-29 14:22:14 -07:00
Sage Weil
f5e3a6752c mon: fix 'osd crush move <item> <loc ...>'
- fix arg count check
 - avoid updating crush map if it is already correct

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-29 14:16:05 -07:00
Sage Weil
8d53965a26 Merge branch 'wip-crushwrapper2'
Reviewed-by: Sage Weil <sage@inktank.com>
2012-06-29 12:34:13 -07:00
Sage Weil
5e454bbde7 mon: add 'osd crush move <name> <loc ...>' command
Move an existing bucket to a new position in the hierarchy.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-29 12:33:00 -07:00
Caleb Miles
a2d0cff1b0 crush: add move_bucket() method
Move an existing bucket to a new location in the hierarchy.

Signed-off-by: Caleb Miles <caselim@gmail.com>
2012-06-29 12:32:33 -07:00
Caleb Miles
d22529d143 crush: get_loc -> get_immediate_parent
Signed-off-by: Caleb Miles <caselim@gmail.com>
2012-06-29 12:32:07 -07:00
Samuel Just
d7c18c137d PG::merge_old_entry: handle clone prior_version case
A clone can have a prior_version after log_tail and still not have
a corresponding log entry since the prior_version would be the
head object.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-29 11:08:40 -07:00
Samuel Just
b907c881ea ReplicatedPG: adjust log.complete_to based on rmissing
log.complete_to can actually move backwards due to objects
missing because of divergent entries.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-29 11:06:15 -07:00
Samuel Just
143afcf9f6 ReplicatedPG: clear peer_(missing|log)_requested in check_recovery_sources
Otherwise, we might fail to re-request the information from a
previously down osd.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-29 11:05:33 -07:00