]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Thu, 19 May 2016 11:40:33 +0000 (07:40 -0400)]
unittest_bluestore_types: run csum tests on all algorithms
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 11:40:13 +0000 (07:40 -0400)]
os/bluestore/bluestore_types: blob_t: add xxhash64
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 11:19:36 +0000 (07:19 -0400)]
common/Checksummer: add xxhash64
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:55:43 +0000 (06:55 -0400)]
os/bluestore: drop old Checksummer
blob_t uses it directly via the static methods.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:53:29 +0000 (06:53 -0400)]
os/bluestore: use blob_t csum methods
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:51:09 +0000 (06:51 -0400)]
os/bluestore/bluestore_types: simpler {calc,verify}_csum methods
This keeps the CSUM_* definitions local to blob_t, and avoids passing
arguments around.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:25:23 +0000 (06:25 -0400)]
os/bluestore: defer csum calcuations sometimes
When we are doing a partial chunk overwrite, we need to defer the csum_data
update. Otherwise, another write in the same transaction might need to
read part of the chunk, not find the data in the buffer cache, read it
from disk, and fail the csum check.
This patch defers the calculation until after we've build the transaction
and are about to commit to the kv store.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:25:43 +0000 (06:25 -0400)]
doc/dev/bluestore: update based on Igor's feedback
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Tue, 17 May 2016 15:22:15 +0000 (18:22 +0300)]
os/bluestore: Fixes some issues when using Buffer Cache from _do_read and improves test coverage
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Tue, 17 May 2016 14:58:11 +0000 (17:58 +0300)]
os/bluestore: Fixes invalid assert in Buffer::truncate
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Mon, 16 May 2016 17:55:55 +0000 (20:55 +0300)]
test/objectstore: Adds trivial test case to verify buffer cache use in bluestore
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Mon, 16 May 2016 16:53:37 +0000 (19:53 +0300)]
Adds cached buffer processing for _do_read
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Sage Weil [Thu, 19 May 2016 10:23:39 +0000 (06:23 -0400)]
os/bluestore: add a very simple (incomplete) buffer cache
Attach it to each onode.
There is no trimming yet.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 16 May 2016 00:30:44 +0000 (20:30 -0400)]
os/bluestore: make tail cache a bit smarter
This is really a stop-gap. Since we are doing reads in the pre-commit
write path, we need to have some sort of buffer cache so that a sequence
of writes in the same transaction can remain coherent (the second write
must "read" the first write in order to fill out the chunk).
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 16 May 2016 00:25:54 +0000 (20:25 -0400)]
os/bluestore: dump tail_bl state in _dump_onode
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Mon, 16 May 2016 11:27:24 +0000 (14:27 +0300)]
os/bluestore: Adds lacking methods in bluestore_compression_header_t to fix encoder test build
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Fri, 13 May 2016 15:18:12 +0000 (18:18 +0300)]
os/bluestore: add decompressor call to read path
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Sat, 14 May 2016 12:53:59 +0000 (08:53 -0400)]
os/bluestore/bluestore_types: add bluestore_compression_header_t
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Fri, 13 May 2016 15:16:47 +0000 (18:16 +0300)]
compressor: Refactor to allow bufferlist::iterator as an input
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Sage Weil [Sat, 14 May 2016 12:48:47 +0000 (08:48 -0400)]
os/bluestore: new write path
- simplified wal_op_t. we still have overlays in there, although that
might need to get removed soon too.
- init_csum cleanup
- totally new write path
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:37:16 +0000 (08:37 -0400)]
os/bluestore: verify blob ref_maps during fsck
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:40:54 +0000 (08:40 -0400)]
os/bluestore: return EIO on csum verification error
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:39:45 +0000 (08:39 -0400)]
os/bluestore: simplify _verify_csum
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:39:34 +0000 (08:39 -0400)]
os/bluestore: cleanup _read_extent_sparse
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Sat, 14 May 2016 12:45:47 +0000 (08:45 -0400)]
os/bluetores: fix checksum verification
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Thu, 12 May 2016 13:26:10 +0000 (16:26 +0300)]
os/bluestore: read patch code cleanup
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Thu, 12 May 2016 21:48:59 +0000 (17:48 -0400)]
os/bluestore: replace _do_read with ExtentManager version
Replaces _do_read with he corresponding code from ExtentManager to support csum verification & decompression.
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Sage Weil [Sat, 14 May 2016 12:23:15 +0000 (08:23 -0400)]
doc/dev/bluestore: write path notes
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 21:20:44 +0000 (17:20 -0400)]
ceph_test_objectstore: new test SmallBlockWrites
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 21:41:17 +0000 (17:41 -0400)]
ceph_test_objectstore: add BigWriteBigZero test
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 16:51:28 +0000 (12:51 -0400)]
ceph_test_objectstore: expand SimpleObjectTest a bit
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 12 May 2016 17:31:09 +0000 (13:31 -0400)]
os/bluestore: define min_alloc_size globally
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 12 May 2016 17:30:25 +0000 (13:30 -0400)]
os/bluestore: define block_size, block_mask, block_order globally
These don't change, no need to declare them all over the place.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 12 May 2016 17:28:09 +0000 (13:28 -0400)]
os/bluestore: change block_size -> chunk_size for _pad_zero* methods
The granularity is not the same as block_size.. depends on what the caller
wants. Use a more generic name.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:45:45 +0000 (15:45 -0400)]
os/bluestore: use _txc_finalize_kv for wal allocation updates
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:30:14 +0000 (15:30 -0400)]
os/bluestore: pass txc to _do_wal_op
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:11:13 +0000 (15:11 -0400)]
os/bluestore: rename _txc_update_fm -> _txc_finalize_kv
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:06:21 +0000 (15:06 -0400)]
os/bluestore/BlueStore: break _txc_finalize into _txc_write_nodes
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:32:22 +0000 (08:32 -0400)]
os/bluestore: dump csums in _dump_onode/bnode
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:21:48 +0000 (16:21 -0400)]
os/bluestore: _dump_bnode
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:31:24 +0000 (08:31 -0400)]
os/bluestore/bluestore_types: nicer operator<< for blob_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 21:07:10 +0000 (17:07 -0400)]
os/bluestore/bluestore_types: add onode_t::compress_extent_map()
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:29:42 +0000 (08:29 -0400)]
os/bluestore/bluestore_types: blob_t convenience methods
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:23:50 +0000 (16:23 -0400)]
os/bluestore/bluestore_types: FLAG_IMMUTABLE -> FLAG_MUTABLE
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:24:36 +0000 (16:24 -0400)]
os/bluestore/bluestore_types: blob_t::is_unreferenced() method
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 18:49:15 +0000 (14:49 -0400)]
os/bluestore/bluestore_types: add blob_t::has_any_lextents
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 18:48:40 +0000 (14:48 -0400)]
os/bluestore/bluestore_types: test {find,seek}_lextents
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 17:26:30 +0000 (13:26 -0400)]
os/bluestore/bluestore_types: blob_t csum additions
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 00:34:53 +0000 (20:34 -0400)]
os/bluestore: blob_t::init_csum() helper
Set up the checksum parameters and size csum_data appropriately.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:26:15 +0000 (16:26 -0400)]
os/bluestore: track csum config options
Use global csum_type member to drive new checksum calcuations.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 00:34:26 +0000 (20:34 -0400)]
os/bluestore: instantiate a Checksummer
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 00:34:13 +0000 (20:34 -0400)]
os/bluestore: prototype Checksummer
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 21:36:01 +0000 (17:36 -0400)]
buffer: add buffer::list::iterator::get_ptr_and_advance
Efficiently iterate over buffers in a list, via an iterator.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 21:26:25 +0000 (17:26 -0400)]
os/bluestore/bluestore_types: extent_ref_map_t::intersects
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 21:21:30 +0000 (17:21 -0400)]
os/bluestore/bluestore_types: change extent_ref_map_t
- no more add, or weird add vs get assumptions
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:23:23 +0000 (16:23 -0400)]
os/bluestore/bluestore_types: drop num_refs from blob_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 19:27:00 +0000 (15:27 -0400)]
os/bluestore/bluestore_types: onode_t::punch_hole()
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 16:59:19 +0000 (12:59 -0400)]
os/bluestore: disable clone cow until it works again
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 14:36:14 +0000 (10:36 -0400)]
os/bluestore: fix bad iterator deref in _do_zero_tail_extent
The extent_map may be empty, or not contain anything at this offset.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:41:54 +0000 (14:41 -0400)]
os/bluestore: rename enode -> bnode
We're not refcounting extents anymore; we're storing shared blobs.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:36:33 +0000 (14:36 -0400)]
os/bluestore: use hex almost everywhere
It's like going metric, but even better!
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:36:04 +0000 (14:36 -0400)]
os/bluestore: remove block_map from onode
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:35:49 +0000 (14:35 -0400)]
os/bluestore: convert io path to extent_map
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:30:45 +0000 (14:30 -0400)]
os/bluestore: add get_blob_ptr helpers
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 5 May 2016 17:04:06 +0000 (13:04 -0400)]
os/bluestore/KernelDevice: print extents in hex
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:01:06 +0000 (14:01 -0400)]
ceph_test_objectstore: show start and end offsets for buffer mismatch
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 20:22:56 +0000 (16:22 -0400)]
os/bluestore: add blob_map to enode
We'll remove the old ref_map once the users go away.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 19:43:33 +0000 (15:43 -0400)]
os/bluestore: pass c to _do_read
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 19:07:50 +0000 (15:07 -0400)]
os/bluestore: add blob_map to onode_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 20:22:24 +0000 (16:22 -0400)]
os/bluestore: use pextent_t for releases
Trying to remove the old extent_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 18:25:07 +0000 (14:25 -0400)]
os/bluestore: use pextent for wal_op
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 4 May 2016 18:36:49 +0000 (14:36 -0400)]
os/bluestore: print extents in hex
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:27:41 +0000 (14:27 -0400)]
os/bluestore: fix blob operator<<
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 20:21:48 +0000 (16:21 -0400)]
os/bluestore: keep an extent_ref_map for each blob
This lets us track which portions of a blob are still in use. In some
cases, we may be able to split the blob to deallocate a portion of it.
In other cases, we will want this information to know whether to
recompress the blob (or whatever).
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:25:30 +0000 (14:25 -0400)]
os/bluestore: add map and map_bl methods to blob
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Tue, 3 May 2016 14:24:36 +0000 (10:24 -0400)]
os/bluestore: data structure to support compression/checksum verification. Read handler prototype implementation.
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Sage Weil <sage@redhat.com>
Casey Bodley [Wed, 1 Jun 2016 14:52:24 +0000 (10:52 -0400)]
Merge pull request #9183 from yehudasa/wip-rgw-sync-retry
rgw: sync retry
Reviewed-by: Casey Bodley <cbodley@redhat.com>
John Spray [Wed, 1 Jun 2016 14:37:19 +0000 (15:37 +0100)]
Merge pull request #9073 from ukernel/wip-posixacl-fix
client: fix setting empty default ACL
Reviewed-by: John Spray <john.spray@redhat.com>
Sage Weil [Wed, 1 Jun 2016 14:28:59 +0000 (10:28 -0400)]
Merge pull request #9422 from liewegas/wip-bluefs
os/bluestore/BlueFS: wait for aios on shutdown
Loic Dachary [Wed, 1 Jun 2016 13:39:10 +0000 (15:39 +0200)]
Merge pull request #9343 from dachary/wip-13522-ceph-disk
ceph-disk: workaround gperftool hang
Reviewed-by: Kefu Chai <kchai@redhat.com>
Sage Weil [Wed, 1 Jun 2016 13:14:01 +0000 (09:14 -0400)]
os/bluestore/BlueFS: wait for aios on shutdown
This fixes segv from unittest_bluefs.
Signed-off-by: Sage Weil <sage@redhat.com>
Loic Dachary [Thu, 26 May 2016 10:55:51 +0000 (12:55 +0200)]
ceph-disk: workaround gperftool hang
Temporary workaround: if ceph-osd --mkfs does not
complete within 5 minutes, assume it is blocked
because of https://github.com/gperftools/gperftools/issues/786
References http://tracker.ceph.com/issues/13522
Signed-off-by: Loic Dachary <loic@dachary.org>
Yan, Zheng [Wed, 1 Jun 2016 09:42:24 +0000 (17:42 +0800)]
qa/workunits/fs/misc: test for setting empty ACL
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Yehuda Sadeh [Wed, 1 Jun 2016 09:10:20 +0000 (12:10 +0300)]
Merge pull request #9299 from cbodley/wip-rgw-vstart-valgrind
vstart: add --valgrind_rgw
Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Mykola Golub [Wed, 1 Jun 2016 07:59:57 +0000 (10:59 +0300)]
Merge pull request #9375 from dillaman/wip-14937
rbd-mirror: replicate cloned images
Reviewed-by: Mykola Golub <mgolub@mirantis.com>
xiexingguo [Wed, 1 Jun 2016 07:46:06 +0000 (15:46 +0800)]
Merge pull request #9162 from xiexingguo/xxg-wip-fixbmap
os/bluestore: fix bmap allocator relevant issues
Reviewed-by: Ramesh Chander <Ramesh.Chander@sandisk.com>
Boris Ranto [Wed, 1 Jun 2016 06:57:38 +0000 (08:57 +0200)]
Merge pull request #9415 from ceph/wip-16095-parted
packaging: move parted requirement to -osd subpkg
Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Boris Ranto <branto@redhat.com>
Brad Hubbard [Wed, 1 Jun 2016 05:28:07 +0000 (15:28 +1000)]
Merge pull request #9406 from tchaikov/wip-doc-hyperlink-of-rados_t
doc: add breathe_domain_by_extension to conf.py
xie xingguo [Wed, 18 May 2016 02:34:26 +0000 (10:34 +0800)]
os/bluestore/BitAllocator: set_bits() in batch
Which is simpler and faster.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
xie xingguo [Wed, 18 May 2016 01:57:30 +0000 (09:57 +0800)]
os/bluestore/BitAllocator: fix race condition for check_bit()
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
xie xingguo [Wed, 18 May 2016 01:24:18 +0000 (09:24 +0800)]
os/bluestore/BitAllocator: use std namespace for atomic_*
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
xie xingguo [Tue, 17 May 2016 12:35:16 +0000 (20:35 +0800)]
os/bluestore/BitAllocator: fix is_allocated() may return false positive
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
Jason Dillaman [Thu, 26 May 2016 16:49:45 +0000 (12:49 -0400)]
qa/workunits/rbd: basic cloned image test
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Ken Dreyer [Tue, 31 May 2016 23:50:05 +0000 (17:50 -0600)]
packaging: move parted requirement to -osd subpkg
Prior to this change, ceph-base required the "parted" package, which
meant that any installation of ceph-osd, ceph-mon, or ceph-mds would
pull in the parted package.
Move the parted dependency to ceph-osd, since ceph-disk is the only
thing that uses parted.
The advantage of this change is that Mon and MDS systems will not need
to install the parted package.
Fixes: http://tracker.ceph.com/issues/16095
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Jason Dillaman [Thu, 26 May 2016 12:22:16 +0000 (08:22 -0400)]
rbd-mirror: copy snapshot parent image settings
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Thu, 26 May 2016 16:01:15 +0000 (12:01 -0400)]
cls_rbd: asynchronous helper method to set parent
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Wed, 25 May 2016 21:38:06 +0000 (17:38 -0400)]
rbd-mirror: add support for cloning images from mirrored parent
Fixes: http://tracker.ceph.com/issues/14937
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Wed, 25 May 2016 21:36:06 +0000 (17:36 -0400)]
librbd: extend internal API to clone from open parent image
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Wed, 25 May 2016 21:13:59 +0000 (17:13 -0400)]
cls_rbd: asynchronous helper methods to retrieve mirror image metadata
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Wed, 25 May 2016 19:16:28 +0000 (15:16 -0400)]
rbd-mirror: helper state machine to open remote/read-only images
Signed-off-by: Jason Dillaman <dillaman@redhat.com>