Commit Graph

28350 Commits

Author SHA1 Message Date
Sage Weil
ab60b5dac2 Merge pull request #499 from dachary/wip-test_osd_types
remove racy test assertions
2013-08-15 10:46:43 -07:00
Joe Buck
3d7a94954c Renamed filestore_backend test
Renamed filestore_backend to testfilestore_backend in
order to resolve compilation time issue.

Signed-off-by: Joe Buck <jbbuck@gmail.com>
2013-08-15 09:48:22 -07:00
Yan, Zheng
5a15369865 store: Add (experimental) ZFS parallel journal support
This patch adds ZFS parallel journal support. It uses libzfs provided by
zfsonlinux to access ZFS' functionalities. To enable ZFS parallel journal
support, compile ceph by:

  ./configure --with-libzfs LIBZFS_CFLAGS="-I<libzfs header> -I<libspl header>"
  make

Add following line to osd section of ceph.conf

  filestore zfs_snap = 1

Note: ZFS (no mater parallel journal is enabled or not) does not support
direct IO. To use it as backend FS for OSD, you need to add following line
to osd section of ceph.conf

  journal aio = 0
  journal dio = 0

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2013-08-15 09:48:22 -07:00
Yan, Zheng
a25d73effb store: Abstract the underlying filesystem functionality
This patch defines class FileStoreBackend, and use it to abstracts
filesystem's functionalities.

Fiemap() and syncfs() related code is moved into class
GenericFileStoreBackend.

All btrfs specific code is moved into class BtrfsFileStoreBackend.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2013-08-15 09:48:22 -07:00
Li Wang
24ec3201ed Ceph-qa: change the fsx.sh to support hole punching test
This patch change the fsx.sh to pull better fsx.c from xfstests site
to support hole punching test.

Signed-off-by: Yunchuan Wen <yunchuanwen@ubuntukylin.com>
Signed-off-by: Li Wang <liwang@ubuntukylin.com>
2013-08-14 22:50:56 -07:00
John Wilkins
086abe441e doc: Fixed typo.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-08-14 16:53:52 -07:00
Josh Durgin
4422f21a65 rados.py: fix Rados() unicode checking
Check new parameters and check that rados_id is not None again to
catch the empty string.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage.weil@inktank.com>
2013-08-14 16:07:52 -07:00
Josh Durgin
34da9cbc33 rados.py: fix Rados() backwards compatibility
Previously it had no name parameter, so the default will be used by
old clients. However, if an old client set rados_id, a new check that
both rados_id and name are set would result in an error. Fix this by
only applying the default names after the check, and add tests of this
behavior.

This was introduced in 783b7ec847,
so it does not affect cuttlefish.

Fixes: #5970
Reported-by: Michael Morgan <mmorgan@dca.net>
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage.weil@inktank.com>
2013-08-14 16:07:30 -07:00
Sage Weil
2cfcb77c7e mon/PGMap: degraded what?
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-14 15:50:55 -07:00
Sage Weil
49ddecdac1 mon: status: client io, recovery io prefixes
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-14 15:50:54 -07:00
Gregory Farnum
df17d021a6 Merge pull request #500 from ceph/wip-5910
Resolves #5910.

Reviewed-by: Greg Farnum <greg@inktank.com>
2013-08-14 15:34:05 -07:00
Samuel Just
94c3f29a32 OSDMonitor: add 'osd perf' command to dump recent osd perf information
Signed-off-by: Samuel Just <sam.just@inktank.com>
2013-08-14 15:31:44 -07:00
Samuel Just
ebde89d560 ObjectStore: add ObjectStore::get_cur_stats and impl in FileStore
Signed-off-by: Samuel Just <sam.just@inktank.com>
2013-08-14 14:22:41 -07:00
Sage Weil
16ed0b9af8 librados: fix async aio completion wakeup
For aio flush, we register a wait on the most recent write.  The write
completion code, however, was *only* waking the waiter if they were waiting
on that write, without regard to previous writes (completed or not).
For example, we might have 6 and 7 outstanding and wait on 7.  If they
finish in order all is well, but if 7 finishes first we do the flush
completion early.  Similarly, if we

 - start 6
 - start 7
 - finish 7
 - flush; wait on 7
 - finish 6

we can hang forever.

Fix by doing any completions that are prior to the oldest pending write in
the aio write completion handler.

Refs: #5919

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
2013-08-14 09:51:01 -07:00
Josh Durgin
7a52e2ff50 librados: fix locking for AioCompletionImpl refcounting
Add an already-locked helper so that C_Aio{Safe,Complete} can
increment the reference count when their caller holds the
lock. C_AioCompleteAndSafe's caller is not holding the lock, so call
regular get() to ensure no racing updates can occur.

This eliminates all direct manipulations of AioCompletionImpl->ref,
and makes the necessary locking clear.

The only place C_AioCompleteAndSafe is used is in handling
aio_flush_async(). This could cause a missing completion.

Refs: #5919
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
2013-08-14 09:50:12 -07:00
John Wilkins
4f31756cc2 doc: Added dumpling to RPM installation.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-08-14 07:59:24 -07:00
John Wilkins
d38a041f12 doc: Minor tweaks to debian install.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-08-14 07:58:36 -07:00
John Wilkins
456a394c86 doc: Added dumpling installation for Debian/Ubuntu.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-08-14 07:58:03 -07:00
Loic Dachary
dfd58548d9 remove racy test assertions
Do not assert before the loop waiting for the thread to complete the
expected side effect. The whole point of the loop is to make sure
there is no window of opportunity for a race condition and asserting
before it means taking a useless risk. If run enough times, it will
happen.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-08-14 15:13:27 +02:00
Sage Weil
90ccd2676a qa/workunits/fs/multiclient_sync_read_eof.py
Simple test to verify clients behave at EOF.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 21:28:35 -07:00
Gary Lowell
8ff6901141 Merge branch 'next' 2013-08-13 18:59:06 -07:00
Samuel Just
95f3353a6a osd_types: add osd_perf_stat_t type
Signed-off-by: Samuel Just <sam.just@inktank.com>
2013-08-13 17:37:24 -07:00
Sage Weil
d1a8165450 client: add enclosing object for asok dumps
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 17:28:54 -07:00
Sage Weil
0c23633762 pybind/ceph_argparse: GPL -> LGPL2
Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Dan Mick <dan.mick@inktank.com>

both consented to this change via email.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 17:17:54 -07:00
Sage Weil
2206f55761 rbd.cc: relicense as LGPL2
All past authors for rbd.cc have consented to relicensing from GPL to
LGPL2 via email:

---

Date: Sat, 27 Jul 2013 01:59:36 +0200
From: Sylvain Munaut <s.munaut@whatever-company.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I hereby consent to the relicensing of any contribution I made to the
aforementioned rbd.cc file from GPL to LGPL2.1.

(I hope that'll be impressive enough, I did my best :p)

btw, tnt@246tNt.com and s.munaut@whatever-company.com are both me.


Cheers,

    Sylvain

---

Date: Fri, 26 Jul 2013 17:00:48 -0700
From: Yehuda Sadeh <yehuda@inktank.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent.

---

Date: Fri, 26 Jul 2013 17:02:24 -0700
From: Josh Durgin <josh.durgin@inktank.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent.

---

Date: Fri, 26 Jul 2013 18:17:46 -0700
From: Stanislav Sedov <stas@freebsd.org>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent.

Thanks for taking care of it!

---

Date: Fri, 26 Jul 2013 18:24:15 -0700
From: Colin McCabe <cmccabe@alumni.cmu.edu>

I consent.

cheers,
Colin

---

Date: Sat, 27 Jul 2013 07:08:12 +0200
From: Christian Brunner <christian@brunner-muc.de>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent

Christian

---

Date: Sat, 27 Jul 2013 12:17:34 +0300
From: Stratos Psomadakis <psomas@grnet.gr>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

Hi,

I consent with the GPL -> LGL2.1 re-licensing.

Thanks
Stratos

---

Date: Sat, 27 Jul 2013 16:13:13 +0200
From: Wido den Hollander <wido@42on.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent!

You have my permission to re-license the code I wrote for rbd.cc to LGPL2.1

---

Date: Sun, 11 Aug 2013 10:40:32 +0200
From: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Subject: Re: btw

Hi Sage,

I agree to switch the license of ceph_argparse.py and rbd.cc from GPL2
to LGPL2.

Regards

Danny Al-Gaaf

---

Date: Tue, 13 Aug 2013 17:15:24 -0700
From: Dan Mick <dan.mick@inktank.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent to relicense any contributed code that I wrote under LGPL2.1 license.

---

...and I consent too.  Drop the exception from COPYING and debian/copyright
files.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 17:16:08 -07:00
Sage Weil
fbc65ea875 mon/PGMap: make pg state indentation cleaner
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:52:29 -07:00
Sage Weil
6d8d72636c mon: status: only include mdsmap if epoch > 1
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:52:29 -07:00
Sage Weil
a9033eb631 mon: move recovery rate to a separate line
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:52:29 -07:00
Sage Weil
c926d08373 mon: move mdsmap up
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:51:57 -07:00
Sage Weil
eeed33aa4c mon/PGMap: make si modifiers look prettier
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:51:57 -07:00
Sage Weil
ef9c9916a0 mon: make pg info in 'status' more informative and visually parseable
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:51:57 -07:00
Sage Weil
9b94f90e00 types: pretty_si_t
Similar to si_t, but leaves a space between the numbers and the units.  In
the degenerate case (no M, K, etc. modifier) there's simply a trailing
space.  For example,

  out << pretty_si_t(num) << "objects/sec";

will look pretty.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:51:56 -07:00
Sage Weil
1860ed97ef mon/PGMap: break out print_oneline_summary
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:51:38 -07:00
Sage Weil
054fd886d0 mon: expand osd summary (flags on separate line)
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 16:51:38 -07:00
Sage Weil
f417b10196 osdmap: move oneliner summary to separate function
We're about to make print_summary() do something much nicer.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 15:40:53 -07:00
Sage Weil
6f5d8036f3 librados: fix MWatchNotify leak
Do not leak the message if the watcher is not registered.  Also, simplify
this block.

Fixes (part of): #5949
Backport: dumpling, cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2013-08-13 13:21:01 -07:00
Sage Weil
810c52de36 rgw: do not leak handler in get_handler() error path
If we fail to initialize, delete the handler.

Fixes (part of): #5949
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2013-08-13 13:21:01 -07:00
Gary Lowell
e3b7bc5bce v0.67 2013-08-13 10:45:14 -07:00
Sage Weil
e9d4f9b048 Merge pull request #497 from ksperis/rbdmap.init-3
Rbdmap.init 3

Reviewed-by: Sage Weil <sage@inktank.com>
2013-08-13 10:11:39 -07:00
Sage Weil
977b7f5838 doc/release-notes: fix rst
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 09:49:05 -07:00
Sage Weil
f501ec7778 doc/release-notes: upgrade sequence
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 09:40:50 -07:00
Sage Weil
de7bbdbc4c doc/release-notes: roll-up of upgrade/compat notes from cuttlefish to dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 09:27:32 -07:00
Laurent Barbe
6df75da3d1 init-rbdmap: minor fix no rbd exist
Avoid error if stop when no rbd device exist

Signed-off-by: Laurent Barbe <laurent@ksperis.com>
2013-08-13 18:07:46 +02:00
Laurent Barbe
d9cb2ead36 init-rbdmap: fix for recursive umount
Umount is not always done in the correct order.
For exemple in that case :
/dev/rbd1 on /myrbd
/dev/rbd2 on /myrbd/.snapshots/@GMT-2013.08.09-10.14.44
rbd2 should be umounted before rbd1

Signed-off-by: Laurent Barbe <laurent@ksperis.com>
2013-08-13 18:06:14 +02:00
Gary Lowell
b9a5664bbb Makefile.am: fix libglobal.la races
Several targets had libglobal.la in the  _LDFLAGS macro definition
when it should have been in the _LDADD macro.  Remove those occurrance
and add the LIBGLOBAL_LDA macro to the targets _LDADD instead.

See related commit 71f3e56d4b

Signed-off-by: Gary Lowell  <gary.lowell@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
2013-08-12 23:29:46 -07:00
Joao Eduardo Luis
c81edf1ec9 tools: ceph-monstore-tool: allow copying store contents to a new location
Usage:

ceph-monstore-tool --mon-store-path <in-path> --out <out-path> \
                   --command store-copy

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-08-12 16:04:46 -07:00
Yehuda Sadeh
2632846e24 rgw: fix multi delete
Fixes: #5931
Backport: bobtail, cuttlefish

Fix a bad check, where we compare the wrong field. Instead of
comparing the ret code to 0, we compare the string value to 0
which generates implicit casting, hence the crash.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-08-12 14:29:19 -07:00
Christophe Courtaut
c566c03406 doc: complete S3 features status from existing doc page
Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
2013-08-12 10:58:32 +02:00
Sage Weil
ef91c69961 mon: mon_cluster_log_file_level
By popular demand, control the min level of logging that goes to
/var/lib/ceph/ceph.log.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-09 21:57:24 -07:00
Sage Weil
cb50b5a7f1 ceph-disk: fix mount options passed to move_mount
Commit 6cbe0f021f added a mount_options but
in certain cases it may be blank.  Fill in with the defaults, just as we
do in mount().

Backport: cuttlefish
Reviewed-by: Dan Mick <dan.mick@inktank.com>
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-09 21:24:08 -07:00