Commit Graph

19585 Commits

Author SHA1 Message Date
Sage Weil
515649558d mon: fix mon removal check
Only take our absence from the monmap to mean that we were removed if we
were ever a member in the first places.

This fixes the bootstrap case:

 - create temp_monmap with existing member(s) plus new guy
 - ceph-mon --mkfs --monmap temp_monmap --fsid ...
 - start ceph-mon

Basically, this is just using the seed monmap as a way to tell the new
daemon which ip:port to use.  Specifying mon addr, public network, or
public addr would also work.

Fixes: #2436
Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-16 15:37:34 -07:00
Greg Farnum
48d97fe796 doc: add ioctx parameter to rbd pybind examples.
This parameter is required and was missing. And fix a typo
2012-05-16 13:43:12 -07:00
Josh Durgin
1109c13238 librados: avoid overflow in the return value of reads
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-05-16 13:40:51 -07:00
Josh Durgin
2f1f808811 ObjectCacher: only perfcount reads requested by the client
_readx is called again after each bh is read by C_RetryRead. This
resulted in the read being counted many times for the internal
caller that was just checking whether it was done yet.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-05-16 13:40:43 -07:00
Sage Weil
1c53f34b68 osd: include age in 'slow request' messages
Make log messages easier to interpret, without subtracting timestamps in
your head.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-16 13:07:38 -07:00
Joao Eduardo Luis
2b446620ce workloadgen: Add transaction throughput infos.
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2012-05-16 12:55:32 -07:00
Ross Turk
3d2d0ecd2c Additional documentation theme changes:
1) Adjust h2 tags so that section titles are visually differentiated
2) Add 1.5em of margin to all pre blocks and tables

Signed-off-by: Ross Turk <ross@inktank.com>
2012-05-15 11:16:29 -07:00
Sage Weil
067cd5fb48 monmap: new encoder
Introduce a feature bit so that we can interoperate with older
peers.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-14 21:15:52 -07:00
Sage Weil
31cb3aa6f0 mon: conditonally encode monmap for peer mon during probe
This might be sufficient to let monitors with different versions of the
monmap encoding interoperate, but I'm too lazy to fully test it right now.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-14 21:03:42 -07:00
Sage Weil
a9f5d77406 monmap: use feature bits and single encode() method
Instead of selecting an encode method in the caller, use a normal features
argument to encode() and branch there.

Leave behavior of all callers untouched.  We continue to assume, for
example, that all monitors have the same features, and that
'ceph mon getmap' should return the fully-featured encoding.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-14 21:01:58 -07:00
Sage Weil
31dc3945f5 mon: new encoding for MonCaps
Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-14 20:53:31 -07:00
Sage Weil
5b0c7043ba Merge branch 'stable'
Conflicts:
	src/osdc/Objecter.cc
2012-05-14 20:30:35 -07:00
Josh Durgin
d7343814a0 Objecter: don't throttle resent linger ops
Throttling is intended to stop the caller from submitting too many
requests, not blocking requests that are being resent internally. This
prevents a deadlock when handling an osdmap - previously
handle_osd_map could block when resending linger ops due to the
throttling. This would stop the messenger's dispatch thread from
delivering any subsequest messages, so the throttle budget would never
be replenished.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2012-05-14 20:23:10 -07:00
Yehuda Sadeh
ac85b9e867 objecter: ping connections with lingering ops every tick()
Also, make sure that we initialize linger_op.session once
we have it.

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
2012-05-14 20:22:54 -07:00
Sage Weil
7830f859e0 mon: use external keyring for mon->mon auth
- Feed our keyring into the auth methods.
- Do not fail to build a ticket for type MON when we don't have a cap; it
  won't be in the auth database.  Also, we don't have caps on the monitors
  that are enfoced between each other.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-14 20:13:46 -07:00
Sage Weil
7be78101da mon: keep mon. secret in an external keyring
- Keep the mon. key in a separate keyring files, "keyring", in the mon
  data dir.
- During init, if we don't find that file, copy the key from the keyserver
  database.
- During mkfs, put the mon. key in that file, and remove it from the seed
  file that primes the auth database.

This will allow admins to change the mon. key without bringing the cluster
online and doing something wonky.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-14 20:13:40 -07:00
Ross Turk
784d1d3a11 Documentation theme updates:
1) Background color in navbar
2) Correct body fonts
3) Document pane background (below the content)
2012-05-14 12:57:54 -07:00
Sage Weil
84f335a689 Merge branch 'wip-osdmap'
Reviewed-by: Greg Farnum <greg@inktank.com>
2012-05-14 11:34:03 -07:00
Ross Turk
ab717bc53f Updated link to publications 2012-05-14 11:27:06 -07:00
Sage Weil
5922e2c2b8 crush: pass weight vector size to map function
Pass the size of the weight vector into crush_do_rule() to ensure that we
don't access values past the end.  This can happen if the caller misbehaves
and passes a weight vector that is smaller than max_devices.

Currently the monitor tries to prevent that from happening, but this will
gracefully tolerate previous bad osdmaps that got into this state.  It's
also a bit more defensive.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-14 11:24:32 -07:00
Sage Weil
376f0d509b crush: adjust max_devices appropriately in insert_item()
If we insert a new item, make sure max_devices is still the max id + 1.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-14 11:24:31 -07:00
Sage Weil
320d1ebf9e mon: fail 'osd crush set ...' is osd doesn't exist
If an osd doesn't exist, don't let users add/update it in the crush map.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-14 11:24:28 -07:00
Sage Weil
f2380f4d4f cephfs: pass -1 for old preferred_osd field
Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-12 20:03:53 -07:00
Sage Weil
bb74b8b3aa osdmap: filter out nonexistent osds from map
It is possible that the crush map contains device ids that do not exist as
osds.  Filter them out of the CRUSH result.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-12 14:18:27 -07:00
Sage Weil
80bbe5e4fd keyring: make child of KeyStore
This lets us pass a keyring to the auth methods as a source for keys for
doing the authentication handshaking.  Normally we pass a RotatatingKeyring
or the KeyServer, but for mon->mon we don't use a service key.  This will
let us use a simple KeyRing for that.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-10 10:10:56 -07:00
Sage Weil
7ce157d60f utime_t: no double ctor
error: os/FileJournal.h:48:51: call of overloaded ‘utime_t(int)’ is ambiguous

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-10 10:09:30 -07:00
Sage Weil
90fb40303f objectcacher: make *_max_dirty_age tunables; pass to ctor
This replaces the hard-coded 1 second writeback timer.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-08 16:19:51 -07:00
Sage Weil
82a3600378 librbd: set cache defaults to 32/24/16 mb
Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-08 16:08:22 -07:00
Sage Weil
f9a9888015 Merge branch 'wip-rbd-wt'
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-05-08 16:04:12 -07:00
Sage Weil
d96bf6c95a test_filestore_workloadgen: name the Mutex variable
This is for interpreting lockdep reports.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-07 21:42:51 -07:00
Sage Weil
5c3e985c23 Merge remote branch 'gh/wip-wrkldgen-throughput' 2012-05-07 21:41:46 -07:00
Joao Eduardo Luis
8bacc51b83 workloadgen: time tracking using ceph's utime_t's instead of timevals.
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2012-05-07 19:54:32 -07:00
Joao Eduardo Luis
772276cb30 workloadgen: forcing the user to specify a data and journal.
These default arguments, although handy when we just want to run the test,
just mess things up when we don't actually need them. If we don't specify
them on the CLI, we'll end up using the default ones, and that is just
annoying.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2012-05-07 19:54:32 -07:00
Joao Eduardo Luis
f2a2a6eb4b workloadgen: add option to specify the max number of in-flight txs.
Use '--test-max-in-flight VAL' (default: 50) or check '--help' for more.
Also, allow the test to work even if we don't specify a conf file.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2012-05-07 19:54:32 -07:00
Joao Eduardo Luis
662729f693 workloadgen: Allow finer control over what the generator does.
Allow the user to have more control on:
    - the sizes of the data being written by the operations;
    - which operations are suppressed from execution;
    - view the throughput;
    - specify the periodicity of throughput output.

For the CLI options, '--help' should suffice.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
2012-05-07 19:54:32 -07:00
Sage Weil
ac903210d0 Merge branch 'wip-rgw-bench'
Conflicts:
	debian/rules
2012-05-07 15:57:31 -07:00
Sage Weil
6c2c883c17 libs3: trailing / does strange things to EXTRA_DIST
drwxr-xr-x 1031/1031         0 2012-05-07 11:15 ceph-0.46/src/libs3/inc/
drwxr-xr-x 1031/1031         0 2012-05-04 15:28 ceph-0.46/src/libs3/inc/inc/
-rw-r--r-- 1031/1031      2343 2012-05-04 15:28 ceph-0.46/src/libs3/inc/inc/simplexml.h

etc.  Freaking autotools!

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-07 11:16:43 -07:00
Sage Weil
efc0701cf9 Merge remote-tracking branch 'gh/wip-osd-peering'
Reviewed-by: Sam Just <sam.just@inktank.com>
2012-05-07 09:25:12 -07:00
Sage Weil
e20fbac855 Makefile: drop librgw.so unittests
Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-06 14:52:25 -07:00
Sage Weil
99ee622e67 ceph.spec: kill librgw
Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-06 14:50:39 -07:00
Sage Weil
caab859b6d debian: kill librgw.so
Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-06 14:50:30 -07:00
Sage Weil
17114f266a osd: reset last_peering_interval on replica activate
There was a silent bug in the activate 'acks' that go from the replica back
to the primary.  Prior to 86aa07d7a9, we
were passing same_interval_since to the callback, which mean that
sometimes _activate_committed() would ignore it and we wouldn't update
last_epoch_started.  This was mosty invisible; the next peering event would
just, in some cases, look at more past intervals than it needed to.

In 86aa07d7a9 we fixed this so that the check
is correct.  (We noticed because now we aren't setting the pg CLEAN flag
until after last_epoch_started is updated.)  That, in turn, revealed a
similar bug that we're fixing here: the replica's last_peering_reset could
be lower than the primary's, such that the activate 'ack' info is ignored.

To fix this, simply set last_peering_reset to the current epoch when the
replica activates; this will always be greater than the primary's.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-06 14:18:22 -07:00
Sage Weil
f4befb3978 libs3: dist and distdir make targets
Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-06 13:23:14 -07:00
Sage Weil
a46cc71948 Makefile: include libs3/ contents in dist tarball
Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-06 13:22:40 -07:00
Sage Weil
e2ee1973f9 Makefile: osdc/Journaler is only used by the mds
Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-06 12:53:15 -07:00
Sage Weil
2e7251e7fe Makefile: librgw.la -> librgw.a; and use it
The various rgw tools were all recompiling my_libradosgw_src files over
again.  Instead build a single .a (not .la!) and link that in.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-06 12:48:30 -07:00
Sage Weil
aa782b4671 Makefile: libos.la -> libos.a
There is a -laio associated with this, so use a var instead of referring to
it by name.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-06 09:32:46 -07:00
Sage Weil
938f4ac4c0 Makefile: libosd.la -> libosd.a
Faster build.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-06 09:23:25 -07:00
Sage Weil
d96e084007 Makefile: libmon.la -> libmon.a
Builds >2x as fast.

Signed-off-by: Sage Weil <sage@newdream.net>
2012-05-06 09:22:24 -07:00
Sage Weil
7dbcc1c8d8 libs3: added 'make check' target
Signed-off-by: Sage Weil <sage@inktank.com>
2012-05-06 08:34:01 -07:00