]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
9 years agorgw: implement Swift-specific authentication engines.
Radoslaw Zarzynski [Wed, 6 Apr 2016 16:56:14 +0000 (18:56 +0200)]
rgw: implement Swift-specific authentication engines.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: implement RGWKeystoneAuthEngine.
Radoslaw Zarzynski [Mon, 11 Apr 2016 18:43:19 +0000 (20:43 +0200)]
rgw: implement RGWKeystoneAuthEngine.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: infrastructure for authentication engine-dependent ACL checks.
Radoslaw Zarzynski [Sat, 23 Apr 2016 14:53:25 +0000 (16:53 +0200)]
rgw: infrastructure for authentication engine-dependent ACL checks.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: share the ACL interpreter across multiple identity appliers.
Radoslaw Zarzynski [Sat, 23 Apr 2016 14:23:09 +0000 (16:23 +0200)]
rgw: share the ACL interpreter across multiple identity appliers.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: infrastructure for object-based Swift authentication.
Radoslaw Zarzynski [Wed, 6 Apr 2016 16:47:29 +0000 (18:47 +0200)]
rgw: infrastructure for object-based Swift authentication.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: use RGWIdentityApplier across ACL implementation.
Radoslaw Zarzynski [Sun, 17 Apr 2016 10:11:35 +0000 (12:11 +0200)]
rgw: use RGWIdentityApplier across ACL implementation.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: enable management of admin privileges.
Radoslaw Zarzynski [Mon, 15 Feb 2016 13:16:58 +0000 (14:16 +0100)]
rgw: enable management of admin privileges.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: decouple system user from admin user.
Radoslaw Zarzynski [Sun, 17 Apr 2016 11:08:48 +0000 (13:08 +0200)]
rgw: decouple system user from admin user.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: split account owner from identity used for authorization.
Radoslaw Zarzynski [Sun, 17 Apr 2016 10:44:44 +0000 (12:44 +0200)]
rgw: split account owner from identity used for authorization.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: make use of RGWIdentityApplier as req_state::auth_identity.
Radoslaw Zarzynski [Sun, 17 Apr 2016 12:34:51 +0000 (14:34 +0200)]
rgw: make use of RGWIdentityApplier as req_state::auth_identity.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: introduce RGWIdentityApplier for representing identities.
Radoslaw Zarzynski [Sun, 17 Apr 2016 12:12:27 +0000 (14:12 +0200)]
rgw: introduce RGWIdentityApplier for representing identities.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: remove get_keystone_{url,admin_token} from RGWSwift.
Radoslaw Zarzynski [Thu, 7 Apr 2016 11:11:46 +0000 (13:11 +0200)]
rgw: remove get_keystone_{url,admin_token} from RGWSwift.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: switch from RGWSwift to KeystoneService admin_token/url.
Radoslaw Zarzynski [Mon, 11 Apr 2016 18:33:55 +0000 (20:33 +0200)]
rgw: switch from RGWSwift to KeystoneService admin_token/url.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: naturalize the transplanted get_keystone_{url,admin_token} in KeystoneService.
Radoslaw Zarzynski [Thu, 7 Apr 2016 10:34:32 +0000 (12:34 +0200)]
rgw: naturalize the transplanted get_keystone_{url,admin_token} in KeystoneService.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: ONLY move RGWSwift::get_keystone_{url,admin_token} to rgw_keystone.cc.
Radoslaw Zarzynski [Wed, 6 Apr 2016 17:43:21 +0000 (19:43 +0200)]
rgw: ONLY move RGWSwift::get_keystone_{url,admin_token} to rgw_keystone.cc.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: rework handling of rgw_keystone_accepted_[admin_]roles.
Radoslaw Zarzynski [Fri, 19 Feb 2016 18:20:31 +0000 (19:20 +0100)]
rgw: rework handling of rgw_keystone_accepted_[admin_]roles.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: cosmetic for RGWKeystoneTokenCache::RevokeThread.
Radoslaw Zarzynski [Tue, 5 Apr 2016 14:50:22 +0000 (16:50 +0200)]
rgw: cosmetic for RGWKeystoneTokenCache::RevokeThread.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: RevokeThread is now a part of RGWKeystoneTokenCache.
Radoslaw Zarzynski [Mon, 4 Apr 2016 17:27:50 +0000 (19:27 +0200)]
rgw: RevokeThread is now a part of RGWKeystoneTokenCache.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: ONLY move parts of KeystoneRevokeThread's code to rgw/rgw_keystone.cc
Radoslaw Zarzynski [Mon, 4 Apr 2016 15:24:59 +0000 (17:24 +0200)]
rgw: ONLY move parts of KeystoneRevokeThread's code to rgw/rgw_keystone.cc

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: implement singleton pattern over RGWKeystoneTokenCache.
Radoslaw Zarzynski [Wed, 6 Apr 2016 16:01:17 +0000 (18:01 +0200)]
rgw: implement singleton pattern over RGWKeystoneTokenCache.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: replace RGWPostHTTPData with RGW[Keystone]HTTPTransceiver.
Radoslaw Zarzynski [Wed, 6 Apr 2016 15:38:53 +0000 (17:38 +0200)]
rgw: replace RGWPostHTTPData with RGW[Keystone]HTTPTransceiver.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: improve encapsulation and const-correctness in the RGWHTTPClient family.
Radoslaw Zarzynski [Tue, 5 Apr 2016 12:05:39 +0000 (14:05 +0200)]
rgw: improve encapsulation and const-correctness in the RGWHTTPClient family.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: ONLY move RGWPostHTTPData's definitions to rgw_http_client.cc.
Radoslaw Zarzynski [Tue, 5 Apr 2016 10:25:41 +0000 (12:25 +0200)]
rgw: ONLY move RGWPostHTTPData's definitions to rgw_http_client.cc.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: ONLY move RGWPostHTTPData to rgw_http_client.h.
Radoslaw Zarzynski [Mon, 4 Apr 2016 17:20:17 +0000 (19:20 +0200)]
rgw: ONLY move RGWPostHTTPData to rgw_http_client.h.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: implement RGWHTTPHeadersCollector.
Radoslaw Zarzynski [Fri, 1 Apr 2016 15:40:19 +0000 (17:40 +0200)]
rgw: implement RGWHTTPHeadersCollector.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: rgw_user can be now explicitly initialized with tenant and ID.
Radoslaw Zarzynski [Tue, 29 Mar 2016 15:22:59 +0000 (17:22 +0200)]
rgw: rgw_user can be now explicitly initialized with tenant and ID.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: improve const-correctness of rgw_open_cms_envelope.
Radoslaw Zarzynski [Tue, 5 Apr 2016 14:49:32 +0000 (16:49 +0200)]
rgw: improve const-correctness of rgw_open_cms_envelope.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: improve const-correctness of rgw_get_user_info_by_swift().
Radoslaw Zarzynski [Mon, 4 Apr 2016 12:56:36 +0000 (14:56 +0200)]
rgw: improve const-correctness of rgw_get_user_info_by_swift().

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: improve const-correctness of RGWHTTPArgs.
Radoslaw Zarzynski [Wed, 23 Mar 2016 14:43:33 +0000 (15:43 +0100)]
rgw: improve const-correctness of RGWHTTPArgs.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: improve const-correctness of KeystoneToken class.
Radoslaw Zarzynski [Sun, 17 Apr 2016 11:12:22 +0000 (13:12 +0200)]
rgw: improve const-correctness of KeystoneToken class.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: improve const-correctness of KeystoneToken.
Radoslaw Zarzynski [Sun, 17 Apr 2016 13:40:15 +0000 (15:40 +0200)]
rgw: improve const-correctness of KeystoneToken.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agorgw: make rgw_get_user_info_by_uid to be const-correct.
Radoslaw Zarzynski [Mon, 18 Jan 2016 12:07:41 +0000 (13:07 +0100)]
rgw: make rgw_get_user_info_by_uid to be const-correct.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
9 years agoMerge pull request #9037 from rzarzynski/wip-rgw-swift-quota
Orit Wasserman [Thu, 2 Jun 2016 12:45:43 +0000 (14:45 +0200)]
Merge pull request #9037 from rzarzynski/wip-rgw-swift-quota

rgw: add support for account and container quotas of Swift API
Reviewed-by" Orit Wasserman <owasserm@redhat.com>

9 years agorgw: reuse populate_with_generic_attrs() across rgw_op.cc.Reviewed-by: Orit Wasserman...
Orit Wasserman [Thu, 2 Jun 2016 09:20:55 +0000 (11:20 +0200)]
rgw: reuse populate_with_generic_attrs() across rgw_op.cc.Reviewed-by: Orit Wasserman <owasserm@redhat.com>

rgw: reuse populate_with_generic_attrs() across rgw_op.cc.
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
9 years agoMerge pull request #9367 from Yan-waller/yj-wip-rgwfixhextobuf
Orit Wasserman [Thu, 2 Jun 2016 09:19:05 +0000 (11:19 +0200)]
Merge pull request #9367 from Yan-waller/yj-wip-rgwfixhextobuf

rgw/common: fix error return value of hex_to_buf.
Reviewed by: Orit Wasserman <owasserm@redhat.com>

9 years agoMerge pull request #9438 from ceph/wip-cmake
Kefu Chai [Thu, 2 Jun 2016 07:41:21 +0000 (15:41 +0800)]
Merge pull request #9438 from ceph/wip-cmake

cmake: rbd_mirror not linking rbd_test_mock

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agoMerge pull request #9060 from mikulely/fix-rgw-multiste-doc
Yehuda Sadeh [Thu, 2 Jun 2016 05:52:42 +0000 (08:52 +0300)]
Merge pull request #9060 from mikulely/fix-rgw-multiste-doc

doc: fix rgw multiste config

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
9 years agoMerge pull request #9392 from yehudasa/wip-16072 9369/head
Yehuda Sadeh [Thu, 2 Jun 2016 05:46:04 +0000 (08:46 +0300)]
Merge pull request #9392 from yehudasa/wip-16072

rgw/rgw_common.cc: modify the end check in RGWHTTPArgs::sys_get

Tested-by: Orit Wasserman <owasserm@redhat.com>
http://pulpito.ceph.com/owasserm-2016-06-01_20:43:36-rgw:verify-wip-orit-testing---basic-mira/

9 years agocmake: rbd_mirror not linking rbd_test_mock 9438/head
Ali Maredia [Thu, 2 Jun 2016 03:28:38 +0000 (23:28 -0400)]
cmake: rbd_mirror not linking rbd_test_mock

Added rbd_test_mock lib, also changed name of
journal_test to journal_test_mock to mimic
automake naming.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
9 years agoMerge pull request #9209 from yehudasa/wip-15939
Matt Benjamin [Wed, 1 Jun 2016 22:11:53 +0000 (18:11 -0400)]
Merge pull request #9209 from yehudasa/wip-15939

rgw: aws4 fixes

verified

9 years agoMerge pull request #9084 from dzafman/wip-dz-misc
Samuel Just [Wed, 1 Jun 2016 21:16:32 +0000 (14:16 -0700)]
Merge pull request #9084 from dzafman/wip-dz-misc

Wip dz misc

Reviewed-by: Samuel Just <sjust@redhat.com>
9 years agoMerge pull request #9426 from linuxbox2/cmake-mds
Casey Bodley [Wed, 1 Jun 2016 18:07:59 +0000 (14:07 -0400)]
Merge pull request #9426 from linuxbox2/cmake-mds

cmake: change libmds back to a static library

Reviewed-by: Casey Bodley <cbodley@redhat.com>
9 years agocmake: restore static linkage (libmds) 9426/head
Matt Benjamin [Wed, 1 Jun 2016 17:25:19 +0000 (13:25 -0400)]
cmake: restore static linkage (libmds)

Required by ceph-mds.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agoMerge pull request #9385 from ceph/wip-cmake-kefu
Matt Benjamin [Wed, 1 Jun 2016 16:42:52 +0000 (12:42 -0400)]
Merge pull request #9385 from ceph/wip-cmake-kefu

cmake: more fixes

fixes make install workflow

9 years agoMerge pull request #9228 from liewegas/wip-bluestore-write
Sage Weil [Wed, 1 Jun 2016 16:29:49 +0000 (12:29 -0400)]
Merge pull request #9228 from liewegas/wip-bluestore-write

os/bluestore: new write path (checksums and compression)

Reviewed-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoMerge pull request #9106 from SUSE/wip-15869
Nathan Cutler [Wed, 1 Jun 2016 16:14:38 +0000 (18:14 +0200)]
Merge pull request #9106 from SUSE/wip-15869

rpm: unconditionally set ceph user's primary group to ceph (SUSE)

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
9 years agocmake: install cython modules 9385/head
Kefu Chai [Wed, 1 Jun 2016 05:38:05 +0000 (13:38 +0800)]
cmake: install cython modules

* fix CYTHON_ADD_MODULE() macro. because python_add_module() offered by
  FindPythonLibs.cmake creates a target with name of ${name}, which conflicts
  with existing targets like "rbd" or "rados". so we can not reuse the
  name in ${name}.pyx. and instead, we should specify the target name
  explicitly.
* add distutils_install_cython_module() function to build and install
  cython modules.
* we can split build and install of cython module, but the install phase
  always tries to build the module. so keep it this way. will look at it
  later on.
* move the variables initializations into the Distutils.cmake module.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: install compressor plugins into ${pkglibdir/compressor
Kefu Chai [Wed, 1 Jun 2016 03:25:11 +0000 (11:25 +0800)]
cmake: install compressor plugins into ${pkglibdir/compressor

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: install erasure plugins into ${pkglibdir}/erasure-code
Kefu Chai [Wed, 1 Jun 2016 03:14:49 +0000 (11:14 +0800)]
cmake: install erasure plugins into ${pkglibdir}/erasure-code

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: remove duplicated file from ceph-osd
Kefu Chai [Sat, 28 May 2016 21:19:23 +0000 (05:19 +0800)]
cmake: remove duplicated file from ceph-osd

objclass/class_api.cc is already included in libosd

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: fix dependencies on tracing headers
Kefu Chai [Sat, 28 May 2016 16:23:22 +0000 (00:23 +0800)]
cmake: fix dependencies on tracing headers

group the header dependencies by its tp .so, so the traced target can
depend on them by the name of ${name}-tp.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: libradosstriper's OUTPUT_NAME should be radosstriper
Kefu Chai [Sat, 28 May 2016 16:22:31 +0000 (00:22 +0800)]
cmake: libradosstriper's OUTPUT_NAME should be radosstriper

and s/libradosstriper/radosstriper/ otherwise the created .so
filename would be liblibradosstriper.so with the default prefix.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: install the artifacts the packaging requires
Kefu Chai [Sat, 28 May 2016 07:42:33 +0000 (15:42 +0800)]
cmake: install the artifacts the packaging requires

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: install init script to etc/init.d
Kefu Chai [Sat, 28 May 2016 13:59:14 +0000 (21:59 +0800)]
cmake: install init script to etc/init.d

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: add the autoconf path variables back
Kefu Chai [Sat, 28 May 2016 09:09:37 +0000 (17:09 +0800)]
cmake: add the autoconf path variables back

* partially revert 7a602ec.
* the directory variables created by automake, like "prefix", "bindir",
  and "libdir", are used for generating configuration_file() for substitution,
  and they should have the same names with ones from autotools.
* also fix the ${pkglibdir}, it should be the ${libdir}/${PACKAGE}. so
  the plugins are not installed into ${libdir}, in which the installed shared
  objects are supposed to be shared with other applications.
* install shared libraries into ${CMAKE_INSTALL_LIBDIR} instead of
  ${prefix}/lib. this complies to what ceph.spec.in requires:
  ceph.spec.in expects the shared libraries to be installed into
  ${_libdir}, and ${_libdir} is /usr/lib64 on an amd64 machine.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: install ceph-post-file
Kefu Chai [Sat, 28 May 2016 09:03:08 +0000 (17:03 +0800)]
cmake: install ceph-post-file

and related pubkey for sftp

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: add ceph-brag
Kefu Chai [Sat, 28 May 2016 08:53:36 +0000 (16:53 +0800)]
cmake: add ceph-brag

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: project name should be "ceph"
Kefu Chai [Sat, 28 May 2016 08:38:09 +0000 (16:38 +0800)]
cmake: project name should be "ceph"

so it would be easier to figure out paths, also
CMAKE_INSTALL_DOCDIR is composed using the PROJECT_NAME also.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: install ceph-{detect-init,disk}
Kefu Chai [Sat, 28 May 2016 07:44:36 +0000 (15:44 +0800)]
cmake: install ceph-{detect-init,disk}

add a cmake module named Distutils.cmake for setting up python modules
using setup.py.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: add ceph_rgw_{json,multi}parser
Kefu Chai [Sat, 28 May 2016 08:18:54 +0000 (16:18 +0800)]
cmake: add ceph_rgw_{json,multi}parser

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: compile and install ceph-bluefs-tool
Kefu Chai [Sat, 28 May 2016 08:18:31 +0000 (16:18 +0800)]
cmake: compile and install ceph-bluefs-tool

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: s/ceph_test_xattr_bench/ceph_xattr_bench/
Kefu Chai [Sat, 28 May 2016 07:44:17 +0000 (15:44 +0800)]
cmake: s/ceph_test_xattr_bench/ceph_xattr_bench/

to match with automake and packager

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: rename ceph-psim to ceph_psim
Kefu Chai [Sat, 28 May 2016 07:43:34 +0000 (15:43 +0800)]
cmake: rename ceph-psim to ceph_psim

to match with automake and packager

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: fix bash_completion install path
Kefu Chai [Sat, 28 May 2016 05:20:35 +0000 (13:20 +0800)]
cmake: fix bash_completion install path

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agoos/bluestore: fsck: check for dup overlay keys 9228/head
Sage Weil [Tue, 31 May 2016 19:26:14 +0000 (15:26 -0400)]
os/bluestore: fsck: check for dup overlay keys

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fsck: use common helper to verify blobs and refs
Sage Weil [Tue, 31 May 2016 19:17:51 +0000 (15:17 -0400)]
os/bluestore: fsck: use common helper to verify blobs and refs

The checks are the same (or should be--we had missed a few).

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: add FLAG_NOCACHE flag; do not cache unbuffered writes
Sage Weil [Tue, 31 May 2016 18:18:31 +0000 (14:18 -0400)]
os/bluestore: add FLAG_NOCACHE flag; do not cache unbuffered writes

Add a Buffer flag to mark that a buffer should not be cached once it is
stable.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: do not use buffered bdev in write path
Sage Weil [Tue, 31 May 2016 17:49:34 +0000 (13:49 -0400)]
os/bluestore: do not use buffered bdev in write path

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: do not rely on bdev buffered reads in read path
Sage Weil [Tue, 31 May 2016 17:48:13 +0000 (13:48 -0400)]
os/bluestore: do not rely on bdev buffered reads in read path

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: no buffered write in wal path
Sage Weil [Tue, 31 May 2016 17:47:57 +0000 (13:47 -0400)]
os/bluestore: no buffered write in wal path

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: populate buffer cache on read
Sage Weil [Tue, 31 May 2016 17:43:25 +0000 (13:43 -0400)]
os/bluestore: populate buffer cache on read

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: keep intrusive_list of WRITING buffers
Sage Weil [Tue, 31 May 2016 17:35:10 +0000 (13:35 -0400)]
os/bluestore: keep intrusive_list of WRITING buffers

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: simple per-collection lru for buffers
Sage Weil [Tue, 31 May 2016 18:35:29 +0000 (14:35 -0400)]
os/bluestore: simple per-collection lru for buffers

Size these using a global config.  This is only a starting point--we'll
obviously have to rework this to share memory across collections.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: use bufferptr for csum_data
Sage Weil [Tue, 31 May 2016 16:40:16 +0000 (12:40 -0400)]
os/bluestore: use bufferptr for csum_data

encode/decode of vector<char> is not optimized.  Bufferptr is a more
natural type here anyway.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoceph_test_objecstore: Adds a test case for compression stuff verification (incomplete)
Igor Fedotov [Fri, 27 May 2016 17:05:21 +0000 (20:05 +0300)]
ceph_test_objecstore: Adds a test case for compression stuff verification (incomplete)

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: Fixes configuration observation.
Igor Fedotov [Fri, 27 May 2016 17:04:56 +0000 (20:04 +0300)]
os/bluestore: Fixes configuration observation.

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: Cosmetic fixes in bluestore logging
Igor Fedotov [Tue, 24 May 2016 13:41:48 +0000 (16:41 +0300)]
os/bluestore: Cosmetic fixes in bluestore logging

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: Enables cow for cloning at bluestore for store test
Igor Fedotov [Tue, 24 May 2016 12:55:41 +0000 (15:55 +0300)]
os/bluestore: Enables cow for cloning at bluestore for store test

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: Fixes Bnode serialization/deserialization and removes legacy Bnode...
Igor Fedotov [Tue, 24 May 2016 12:52:15 +0000 (15:52 +0300)]
os/bluestore: Fixes Bnode serialization/deserialization and removes legacy Bnode::ref_map

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoceph_test_objectstore: extends SimpleObjectTest with the case where write happens...
Igor Fedotov [Fri, 27 May 2016 14:19:59 +0000 (17:19 +0300)]
ceph_test_objectstore: extends SimpleObjectTest with the case where write happens for neighboring csum blocks to verify for potential alignment issue

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: Removes legacy block_size retrieval
Igor Fedotov [Fri, 27 May 2016 12:46:02 +0000 (15:46 +0300)]
os/bluestore: Removes legacy block_size retrieval

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: use WriteContext and do_alloc_write for _do_write_small
Sage Weil [Thu, 26 May 2016 15:11:55 +0000 (11:11 -0400)]
os/bluestore: use WriteContext and do_alloc_write for _do_write_small

Kill some mostly-duplicated code

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: consolidate WriteContext items into a write_item
Sage Weil [Thu, 26 May 2016 15:10:31 +0000 (11:10 -0400)]
os/bluestore: consolidate WriteContext items into a write_item

Also include b_off in there.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: avoid unnecessary write_onode calls
Sage Weil [Thu, 26 May 2016 14:02:44 +0000 (10:02 -0400)]
os/bluestore: avoid unnecessary write_onode calls

_wctx_finish callers always write the onode; we only need to worry about
our changes to the bnode.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: drop unused _pad_* methods
Sage Weil [Tue, 31 May 2016 18:33:55 +0000 (14:33 -0400)]
os/bluestore: drop unused _pad_* methods

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: drop unused _pad_zeros args
Sage Weil [Tue, 31 May 2016 18:33:46 +0000 (14:33 -0400)]
os/bluestore: drop unused _pad_zeros args

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix offset skew check
Sage Weil [Thu, 26 May 2016 12:59:30 +0000 (08:59 -0400)]
os/bluestore: fix offset skew check

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: ~0x -> ~
Sage Weil [Mon, 23 May 2016 19:16:38 +0000 (15:16 -0400)]
os/bluestore: ~0x -> ~

e.g., 0x432da000~1000 instead of 0x432da000~0x1000

I think it's sufficiently clear that the value after ~ should have the same
base as the first bit, and it's easier to read.  And less text.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agocompressor: Extends decompressor interface to be able to provide compressed data...
Igor Fedotov [Tue, 24 May 2016 17:05:14 +0000 (20:05 +0300)]
compressor: Extends decompressor interface to be able to provide compressed data length.

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: compress on write
Sage Weil [Mon, 23 May 2016 19:04:46 +0000 (15:04 -0400)]
os/bluestore: compress on write

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: do not partially deallocate compressed blobs
Sage Weil [Mon, 23 May 2016 19:04:31 +0000 (15:04 -0400)]
os/bluestore: do not partially deallocate compressed blobs

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: _do_write_big: limit size of blobs based on compression mode
Sage Weil [Mon, 23 May 2016 19:04:11 +0000 (15:04 -0400)]
os/bluestore: _do_write_big: limit size of blobs based on compression mode

We may want to compress in smaller chunks based on hints/policy.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: track new compression config options
Sage Weil [Mon, 23 May 2016 19:03:18 +0000 (15:03 -0400)]
os/bluestore: track new compression config options

Class-wide Compressor, compression mode, and options.  For now these are
global, although later we'll do them per-Collection so they can be pool-
specific.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: add length to the compression_header_t
Sage Weil [Mon, 23 May 2016 19:01:40 +0000 (15:01 -0400)]
os/bluestore/bluestore_types: add length to the compression_header_t

Snappy fails to decompress if there are extra zeros in the input buffer.
So, store the length explicitly in the header to avoid feeding them into
the decompressor.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix BufferSpace::read()
Sage Weil [Mon, 23 May 2016 18:59:18 +0000 (14:59 -0400)]
os/bluestore: fix BufferSpace::read()

- we weren't reading from 'clean' buffers
- restructured loop a bit chasing another bug (but it ended up being
  in the caller)

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agolibrados: add COMPRESSIBLE and INCOMPRESSIBLE alloc hints
Sage Weil [Fri, 20 May 2016 18:26:33 +0000 (14:26 -0400)]
librados: add COMPRESSIBLE and INCOMPRESSIBLE alloc hints

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agocompressor: add a get_type() method to Compressor interface
Sage Weil [Fri, 20 May 2016 18:18:52 +0000 (14:18 -0400)]
compressor: add a get_type() method to Compressor interface

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix _do_read cached vs read result assembly
Sage Weil [Mon, 23 May 2016 19:00:37 +0000 (15:00 -0400)]
os/bluestore: fix _do_read cached vs read result assembly

We weren't handling the case of

 read block 0~300
 cache bloc 100~100

where the result is read(head) + cached + read(tail). Restructure the
loop to handle this.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix _do_read read out of buffer cache
Sage Weil [Mon, 23 May 2016 18:59:36 +0000 (14:59 -0400)]
os/bluestore: fix _do_read read out of buffer cache

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix up _set_csum helper
Sage Weil [Fri, 20 May 2016 18:23:55 +0000 (14:23 -0400)]
os/bluestore: fix up _set_csum helper

- make it thread-safe
- call during mount

Signed-off-by: Sage Weil <sage@redhat.com>