]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
6 years agomon/MonClient: respect priority in SRV
Kefu Chai [Fri, 22 Mar 2019 11:32:32 +0000 (19:32 +0800)]
mon/MonClient: respect priority in SRV

before this change, we always choose the monitors with the lowest
priority and ignore the ones with higher priorty. but per
https://www.ietf.org/rfc/rfc2782.txt

> A client MUST attempt to contact the target host with the
> lowest-numbered priority it can reach

so, if a monitor is not reachable, we should try the ones with the
lowest ones *reachable*.

after this change, MonClient will memorize the monitors have been
contacted. and will continue hunting the ones not tried if the last
batch fail.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #25545 from zhouyuan/wip-ceph-immutable-obj-cache-daemon
Jason Dillaman [Fri, 22 Mar 2019 12:21:50 +0000 (08:21 -0400)]
Merge pull request #25545 from zhouyuan/wip-ceph-immutable-obj-cache-daemon

tools: adding ceph level immutable obj cache daemon

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Mykola Golub <mgolub@suse.com>
6 years agoMerge pull request #26675 from trociny/wip-rbd-io-simple-scheduler
Jason Dillaman [Fri, 22 Mar 2019 12:19:27 +0000 (08:19 -0400)]
Merge pull request #26675 from trociny/wip-rbd-io-simple-scheduler

librbd: simple scheduler plugin for object dispatcher layer

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
6 years agoMerge pull request #27098 from ming416/master
Lenz Grimmer [Fri, 22 Mar 2019 10:30:03 +0000 (11:30 +0100)]
Merge pull request #27098 from ming416/master

mgr/dashboard: auth ttl expired error

Reviewed-by: Ricardo Dias <rdias@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
6 years agoMerge PR #27070 into master
Sage Weil [Fri, 22 Mar 2019 10:07:37 +0000 (05:07 -0500)]
Merge PR #27070 into master

* refs/pull/27070/head:
osd/OSDMap: add 'zone' to default crush map

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agoMerge PR #27020 into master
Sage Weil [Fri, 22 Mar 2019 09:52:25 +0000 (04:52 -0500)]
Merge PR #27020 into master

* refs/pull/27020/head:
common/blkdev: handle devices with ID_MODEL as "LVM PV ..." but valid ID_MODEL_ENC

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge PR #27021 into master
Sage Weil [Fri, 22 Mar 2019 09:42:29 +0000 (04:42 -0500)]
Merge PR #27021 into master

* refs/pull/27021/head:
msg: remove XioMessenger
qa/suites/rados/thrash-old-clients: add nautilus
qa/suites/rados/thrash-old-clients: add mimic v1 variant
qa/suites/rados/thrash-old-clients: add mimic
qa/suites/rados/thrash-old-clients: collapse msgr and client choice
qa: remove simplemessenger tests
ceph_test_msgr: remove simple
msg: remove SimpleMessenger

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge PR #27101 into master
Sage Weil [Fri, 22 Mar 2019 09:29:03 +0000 (04:29 -0500)]
Merge PR #27101 into master

* refs/pull/27101/head:
mon/MgrStatMonitor: ensure only one copy of initial service map

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agomgr/dashboard: auth ttl expired error 27098/head
ming416 [Fri, 22 Mar 2019 08:56:10 +0000 (16:56 +0800)]
mgr/dashboard: auth ttl expired error

Fixes: https://tracker.ceph.com/issues/38428
Signed-off-by: ming416 <geenature@163.com>
6 years agoMerge pull request #26940 from xiexingguo/wip-monc-add-con
Kefu Chai [Fri, 22 Mar 2019 07:43:04 +0000 (15:43 +0800)]
Merge pull request #26940 from xiexingguo/wip-monc-add-con

mon/MonClient: weight-based mon selection

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #26955 from liewegas/wip-slow-add
Kefu Chai [Fri, 22 Mar 2019 07:42:13 +0000 (15:42 +0800)]
Merge pull request #26955 from liewegas/wip-slow-add

crush: various fixes for weight-sets, the osd_crush_update_weight_set option, and tests

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #26950 from xiexingguo/wip-mgr-fixes
Kefu Chai [Fri, 22 Mar 2019 07:39:11 +0000 (15:39 +0800)]
Merge pull request #26950 from xiexingguo/wip-mgr-fixes

mgr/Mgr: kill redundant sub_unwant call

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27068 from hjwsm1989/upmap-filter-out-underfull-buckets
Kefu Chai [Fri, 22 Mar 2019 07:36:30 +0000 (15:36 +0800)]
Merge pull request #27068 from hjwsm1989/upmap-filter-out-underfull-buckets

crush: add root_bucket to identify underfull buckets

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #27067 from SUSE/wip-fix-38788
Kefu Chai [Fri, 22 Mar 2019 07:31:53 +0000 (15:31 +0800)]
Merge pull request #27067 from SUSE/wip-fix-38788

cmake: remove cython 0.29's subinterpreter check during install

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #26923 from majianpeng/msg-optimize-check-loopback-con
Kefu Chai [Fri, 22 Mar 2019 07:31:07 +0000 (15:31 +0800)]
Merge pull request #26923 from majianpeng/msg-optimize-check-loopback-con

msg/async/AsyncConnection: optimize check loopback connection.

Reviewed-by: Ricardo Dias <rdias@suse.com>
6 years agoMerge pull request #27076 from MariusSchiffer/ceph-mgr-python3-fix
Kefu Chai [Fri, 22 Mar 2019 07:28:49 +0000 (15:28 +0800)]
Merge pull request #27076 from MariusSchiffer/ceph-mgr-python3-fix

mgr/balancer: Python 3 compatibility fix

Reviewed-by: Kai Wagner <kwagner@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27106 from dalgaaf/dalgaaf-wip-fix-lrc-doc
Kefu Chai [Fri, 22 Mar 2019 05:40:15 +0000 (13:40 +0800)]
Merge pull request #27106 from dalgaaf/dalgaaf-wip-fix-lrc-doc

doc: fix LRC documentation

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27071 from tchaikov/wip-crimson-osd-peering
Kefu Chai [Fri, 22 Mar 2019 05:37:01 +0000 (13:37 +0800)]
Merge pull request #27071 from tchaikov/wip-crimson-osd-peering

crimson/osd: add minimal state machine for PG peering

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
6 years agocrimson/osd: add minimal PG recovery FSM 27071/head
Kefu Chai [Mon, 25 Feb 2019 16:26:36 +0000 (00:26 +0800)]
crimson/osd: add minimal PG recovery FSM

after this change, PG is able to go clean as primary

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: advance pg in consume_map()
Kefu Chai [Fri, 8 Mar 2019 13:01:07 +0000 (21:01 +0800)]
crimson/osd: advance pg in consume_map()

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd/pg: update info.stats
Kefu Chai [Fri, 8 Mar 2019 03:45:20 +0000 (11:45 +0800)]
crimson/osd/pg: update info.stats

PG.info.stats is sent to mgr periodically for PG stats reporting,
also, it is sent to peer OSD in MOSDPGLog message when PG performs
peering. we need to keep it updated.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: add more peering facilities
Kefu Chai [Mon, 4 Mar 2019 02:58:12 +0000 (10:58 +0800)]
crimson/osd: add more peering facilities

* add PG::should_restart_peering() for telling if we should start
  a peering at seeing a new mapping
* add PG::start_peering_interval() for starting a peering
* add PG::activate() for activating a PG
* add PG::on_activated() to be called once a PG is activated
* add PG::send_to_osd() for sending message to given OSD

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: add operator<< for PG
Kefu Chai [Tue, 12 Mar 2019 12:26:25 +0000 (20:26 +0800)]
crimson/osd: add operator<< for PG

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd/pg: add peer_activated
Kefu Chai [Tue, 5 Mar 2019 12:55:45 +0000 (20:55 +0800)]
crimson/osd/pg: add peer_activated

add facilities for updating peer_activated. it is used for tracking the
peers has activated and committed. once all of them ack the activation
proposed by primary, the PG is considered activated.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: add facilities for sending notify
Kefu Chai [Mon, 4 Mar 2019 02:47:21 +0000 (10:47 +0800)]
crimson/osd: add facilities for sending notify

we need to notify the primary osd that a PG hosted by it has changed,
and it needs to start peering for it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: maintain PG::want_acting
Kefu Chai [Sun, 3 Mar 2019 16:13:09 +0000 (00:13 +0800)]
crimson/osd: maintain PG::want_acting

* add PG::choose_acting()
* add PG::proc_replica_info()

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: add PG::is_{acting,up}()
Kefu Chai [Sat, 2 Mar 2019 05:18:28 +0000 (13:18 +0800)]
crimson/osd: add PG::is_{acting,up}()

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: wait osdmap before processing peering evt
Kefu Chai [Thu, 28 Feb 2019 10:13:12 +0000 (18:13 +0800)]
crimson/osd: wait osdmap before processing peering evt

the constraint that

> peering messages/events from peers must remain ordered by peer

is still enforced. because, the peering message from a certain peer
will block the succeeding messages from this peer, if the latest osdmap
possessed by OSD is not new enough.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: add OSD::_send_active()
Kefu Chai [Wed, 27 Feb 2019 14:59:09 +0000 (22:59 +0800)]
crimson/osd: add OSD::_send_active()

so PG can request monitor to update the OSD's up_thru in osdmap

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: handle MOSDPGLog in OSD
Kefu Chai [Fri, 15 Mar 2019 09:00:38 +0000 (17:00 +0800)]
crimson/osd: handle MOSDPGLog in OSD

will handle it in PG in follow-up changes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: handle MOSDPGQuery in OSD
Kefu Chai [Tue, 12 Mar 2019 12:22:57 +0000 (20:22 +0800)]
crimson/osd: handle MOSDPGQuery in OSD

will handle it in PG in follow-up changes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: handle MOSDPGInfo in OSD
Kefu Chai [Tue, 5 Mar 2019 09:32:11 +0000 (17:32 +0800)]
crimson/osd: handle MOSDPGInfo in OSD

will handle it in PG in follow-up changes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: handle MOSDPGNotify in OSD
Kefu Chai [Mon, 25 Feb 2019 13:42:09 +0000 (21:42 +0800)]
crimson/osd: handle MOSDPGNotify in OSD

will handle it in PG in follow-up changes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/osd: keep track of last_peering_reset
Kefu Chai [Sat, 2 Mar 2019 04:55:01 +0000 (12:55 +0800)]
crimson/osd: keep track of last_peering_reset

last_peering_reset is used to track the epoch when the most recent peering
started. it is used to tell if a message is targeting a changed PG. the
sender of a peering message will attach it. and the recipient will check
it against its own last_peering_reset. for instance, if a message claims
that that its map epoch is 16, while our last_peering_reset is 18, we will
consider this message stale, and probably drop it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agodoc: fix LRC documentation 27106/head
Danny Al-Gaaf [Fri, 22 Mar 2019 00:37:56 +0000 (01:37 +0100)]
doc: fix LRC documentation

Recovery from a failure in jerasure need only k reads and
not k+m-1.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
6 years agocommon/blkdev: handle devices with ID_MODEL as "LVM PV ..." but valid ID_MODEL_ENC 27020/head
Sage Weil [Fri, 15 Mar 2019 22:12:34 +0000 (17:12 -0500)]
common/blkdev: handle devices with ID_MODEL as "LVM PV ..." but valid ID_MODEL_ENC

Some devices appear like so:

E: ID_MODEL=LVM PV LUClYG-Oyte-jcM6-npfZ-ncsl-ycL0-bkOH0m on /dev/sdn
E: ID_MODEL_ENC=WDC\x20WDS200T2B0A-00SM50\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
E: ID_SERIAL=WDC_WDS200T2B0A-00SM50_183503800168
E: ID_SERIAL_SHORT=183503800168

To avoid upsetting our prioritization, defer to ID_MODEL_ENC over ID_MODEL
if ID_MODEL has "LVM PV" in it (as opposed to just using ID_SERIAL).

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoMerge PR #27044 into master
Sage Weil [Thu, 21 Mar 2019 17:04:59 +0000 (12:04 -0500)]
Merge PR #27044 into master

* refs/pull/27044/head:
common: add bool log_to_file option

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoosd/OSDMap: add 'zone' to default crush map 27070/head
Sage Weil [Wed, 20 Mar 2019 09:29:23 +0000 (04:29 -0500)]
osd/OSDMap: add 'zone' to default crush map

This lets use have a root -> region -> zone -> host hierarchy, like you
will see in the public cloud.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/MgrStatMonitor: ensure only one copy of initial service map 27101/head
Sage Weil [Thu, 21 Mar 2019 16:58:29 +0000 (11:58 -0500)]
mon/MgrStatMonitor: ensure only one copy of initial service map

It's possible for create_pending to be called multiple times.

Fixes: http://tracker.ceph.com/issues/38839
Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoMerge PR #27048 into master
Sage Weil [Thu, 21 Mar 2019 16:48:29 +0000 (11:48 -0500)]
Merge PR #27048 into master

* refs/pull/27048/head:
doc: add changelog for nautilus

Reviewed-by: Sage Weil <sage@redhat.com>
6 years agotest/librbd: sequential write aio test 26675/head
Mykola Golub [Wed, 27 Feb 2019 15:45:10 +0000 (15:45 +0000)]
test/librbd: sequential write aio test

Signed-off-by: Mykola Golub <mgolub@suse.com>
6 years agotools: move options parsing into ObjectCacheStore for immutable obj cache daemon 25545/head
Yuan Zhou [Thu, 21 Mar 2019 11:08:54 +0000 (19:08 +0800)]
tools: move options parsing into ObjectCacheStore for immutable obj cache daemon

This makes the options parsing more easy to read. SimplePolicy will get those
options from ObjectCacheStore.

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agobuilding: adding missing ceph-immtable-object-cache-dbg rule
Yuan Zhou [Thu, 21 Mar 2019 09:17:22 +0000 (17:17 +0800)]
building: adding missing ceph-immtable-object-cache-dbg rule

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: fix SimplyPolicy memory leak
shangdehao1 [Thu, 14 Mar 2019 19:23:28 +0000 (03:23 +0800)]
tools: fix SimplyPolicy memory leak

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: cleanup code style and delete useless data
shangdehao1 [Thu, 14 Mar 2019 18:05:05 +0000 (02:05 +0800)]
tools: cleanup code style and delete useless data

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: new cache sub-dir rule for immutable obj cache daemon
Yuan Zhou [Wed, 13 Mar 2019 03:31:42 +0000 (11:31 +0800)]
tools: new cache sub-dir rule for immutable obj cache daemon

do not use static sub-dirs for cache, instead we create the sub-dir
dynamically with the first two charactor of crc32(file_name)

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: cleanup RO
shangdehao1 [Fri, 8 Mar 2019 00:35:02 +0000 (08:35 +0800)]
tools: cleanup RO

- replace useless callback with bind function.
- remove session_id and m_session_map.
- fixed memory leak when session occur error
- change type conversion.
- add prefix

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: eliminate session_map race between CacheSession
shangdehao1 [Thu, 7 Mar 2019 18:35:15 +0000 (02:35 +0800)]
tools: eliminate session_map race between CacheSession

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: make cache file dir number configurable
shangdehao1 [Thu, 7 Mar 2019 00:31:29 +0000 (08:31 +0800)]
tools: make cache file dir number configurable

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: make cache watermark configurable
shangdehao1 [Thu, 7 Mar 2019 00:06:12 +0000 (08:06 +0800)]
tools: make cache watermark configurable

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: make dedicated thread configurable for RO
shangdehao1 [Wed, 6 Mar 2019 23:11:53 +0000 (07:11 +0800)]
tools: make dedicated thread configurable for RO

At cache client side of RO, make dedicated woker thread configurable
Also, cleanup useless member of CacheClient class

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: adjust code style of RO
shangdehao1 [Wed, 6 Mar 2019 22:24:16 +0000 (06:24 +0800)]
tools: adjust code style of RO

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: clean up data structure of immutable obj cache daemon
Yuan Zhou [Thu, 28 Feb 2019 08:51:41 +0000 (16:51 +0800)]
tools: clean up data structure of immutable obj cache daemon

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: refactor ObjectCacheRequest of RO
shangdehao1 [Tue, 26 Feb 2019 17:18:37 +0000 (01:18 +0800)]
tools: refactor ObjectCacheRequest of RO

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: return real cache status on lookup in immutable obj cache
Yuan Zhou [Mon, 25 Feb 2019 03:31:46 +0000 (11:31 +0800)]
tools: return real cache status on lookup in immutable obj cache

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: fix librados compatibility
Yuan Zhou [Fri, 22 Feb 2019 04:06:46 +0000 (12:06 +0800)]
tools: fix librados compatibility

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: clean up cache dir for immutable obj cache
Yuan Zhou [Fri, 22 Feb 2019 03:52:04 +0000 (11:52 +0800)]
tools: clean up cache dir for immutable obj cache

- user defined full path for cache dir
- hash objects into subfolders with crc32 of its name

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: maintain cache size counter for immutable obj cache daemon
Yuan Zhou [Fri, 22 Feb 2019 02:44:04 +0000 (10:44 +0800)]
tools: maintain cache size counter for immutable obj cache daemon

Do not assume 4M object size since we allow to cache any-sized objects.

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: templatize create_rados_callback
shangdehao1 [Sun, 17 Feb 2019 20:30:28 +0000 (04:30 +0800)]
tools: templatize create_rados_callback

Also cleanup unused template codes

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: use specific message for different ops in immutable obj cache daemon
Yuan Zhou [Wed, 13 Feb 2019 14:24:58 +0000 (22:24 +0800)]
tools: use specific message for different ops in immutable obj cache daemon

use different types of message for different ops to be more efficient

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: cleanup IPC message for immutable obj cache daemon
Yuan Zhou [Mon, 11 Feb 2019 12:30:37 +0000 (20:30 +0800)]
tools: cleanup IPC message for immutable obj cache daemon

using ceph serialization(encode/decode) framework instead of building
new data structure

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: set namespace & snap_id before promote from RADOS in immutable obj cache
Yuan Zhou [Thu, 31 Jan 2019 14:49:32 +0000 (22:49 +0800)]
tools: set namespace & snap_id before promote from RADOS in immutable obj cache

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: format code and clean up
Yuan Zhou [Thu, 31 Jan 2019 06:39:44 +0000 (14:39 +0800)]
tools: format code and clean up

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: adding signal handling for immutable obj cache daemon
Yuan Zhou [Thu, 31 Jan 2019 06:24:05 +0000 (14:24 +0800)]
tools: adding signal handling for immutable obj cache daemon

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotests: reduce testing resources occupied for immutable obj cache
Yuan Zhou [Wed, 30 Jan 2019 14:12:01 +0000 (22:12 +0800)]
tests: reduce testing resources occupied for immutable obj cache

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: follow current codes to modify UT
shangdehao1 [Sat, 26 Jan 2019 20:53:15 +0000 (04:53 +0800)]
tools: follow current codes to modify UT

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: release dedicated thread resource
shangdehao1 [Thu, 24 Jan 2019 19:35:58 +0000 (03:35 +0800)]
tools: release dedicated thread resource

Addtional, enable all UT

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: add connect fails to fault
shangdehao1 [Thu, 24 Jan 2019 19:31:23 +0000 (03:31 +0800)]
tools: add connect fails to fault

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: clean up object cache request struture
Yuan Zhou [Thu, 24 Jan 2019 13:38:59 +0000 (21:38 +0800)]
tools: clean up object cache request struture

adding version and compat_version info for serailization

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agocommon/buffer: assign error message to caller on short read in pread_file
Yuan Zhou [Thu, 24 Jan 2019 06:05:44 +0000 (14:05 +0800)]
common/buffer: assign error message to caller on short read in pread_file

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: add m_cache_path
shangdehao1 [Wed, 23 Jan 2019 20:52:36 +0000 (04:52 +0800)]
tools: add m_cache_path

1) : enable ObjectCacheRequest.m_data.m_cache_path
2) : add generate_cache_file_path to create cache_path
    , which will be used by CacheClient.

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: clean up dead code in immutable obj cache
Yuan Zhou [Wed, 23 Jan 2019 16:19:14 +0000 (00:19 +0800)]
tools: clean up dead code in immutable obj cache

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: kill ObjectCacheFile in immutable obj cache
Yuan Zhou [Wed, 23 Jan 2019 15:48:44 +0000 (23:48 +0800)]
tools: kill ObjectCacheFile in immutable obj cache

instead we could use bufferlist::write_file/pread_file to write/read on cache

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: clean up immutable obj cache
Yuan Zhou [Wed, 23 Jan 2019 15:36:57 +0000 (23:36 +0800)]
tools: clean up immutable obj cache

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agocommon/options: move immutable obj cache options out of rbd section
Yuan Zhou [Wed, 23 Jan 2019 15:15:16 +0000 (23:15 +0800)]
common/options: move immutable obj cache options out of rbd section

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agocommon/buffer: return 0 on short read in pread_file
Yuan Zhou [Wed, 23 Jan 2019 15:54:33 +0000 (23:54 +0800)]
common/buffer: return 0 on short read in pread_file

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: some modification at RO
shangdehao1 [Tue, 22 Jan 2019 01:39:37 +0000 (09:39 +0800)]
tools: some modification at RO

1) : add new data member to ObjectCacheRequest,
     including m_pool_namepace, m_pool_id, m_snap_id,
     m_cache_path
2) : add some log at CacheSession
3) : change pool name to pool_nspace + poo_id + snap_id
4) : change cache file name
5) : add generate_cache_file_name method
6) : modify UT interface

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotool: break down receive_message implements
shangdehao1 [Sun, 20 Jan 2019 18:19:04 +0000 (02:19 +0800)]
tool: break down receive_message implements

Also, enable fault at CacheClient side.

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agocommon/buffer: fix pread_file to generate local bufferlist
Yuan Zhou [Fri, 18 Jan 2019 06:26:25 +0000 (14:26 +0800)]
common/buffer: fix pread_file to generate local bufferlist

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: clean up types for immutable obj cache daemon
Yuan Zhou [Thu, 17 Jan 2019 16:10:33 +0000 (00:10 +0800)]
tools: clean up types for immutable obj cache daemon

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: refuse to start if obj cache daemon fail to initialize cache dir
Yuan Zhou [Thu, 17 Jan 2019 15:37:12 +0000 (23:37 +0800)]
tools: refuse to start if obj cache daemon fail to initialize cache dir

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotest: enable asio tests for immutable obj cache controller
Yuan Zhou [Thu, 17 Jan 2019 05:47:31 +0000 (13:47 +0800)]
test: enable asio tests for immutable obj cache controller

cleanups for immutable obj cache controller

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: immutable_object_cache code format cleanup
Yuan Zhou [Wed, 16 Jan 2019 16:02:48 +0000 (00:02 +0800)]
tools: immutable_object_cache code format cleanup

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agocommon/buffer: adding pread_file method
Yuan Zhou [Wed, 16 Jan 2019 15:38:26 +0000 (23:38 +0800)]
common/buffer: adding pread_file method

pread_file allows to read length of contents at a given offset

using pread_file instead of read_file to reduce extra reads in ObjectCacheFile

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: refactor asio domain socket of RO
shangdehao1 [Sun, 13 Jan 2019 22:46:19 +0000 (06:46 +0800)]
tools: refactor asio domain socket of RO

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: fix redudent updates on cache metdata
Yuan Zhou [Wed, 9 Jan 2019 14:36:27 +0000 (22:36 +0800)]
tools: fix redudent updates on cache metdata

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agobuild/ops: adding build spec for immutable object cache daemon
Yuan Zhou [Sat, 29 Dec 2018 08:50:44 +0000 (16:50 +0800)]
build/ops: adding build spec for immutable object cache daemon

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotest: add object cache message unite test
shangdehao1 [Sun, 13 Jan 2019 22:34:37 +0000 (06:34 +0800)]
test: add object cache message unite test

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: add new object cache message
shangdehao1 [Sun, 13 Jan 2019 22:31:22 +0000 (06:31 +0800)]
tools: add new object cache message

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: use bufferlist to implement ObjectCacheFile
shangdehao1 [Tue, 25 Dec 2018 22:53:35 +0000 (06:53 +0800)]
tools: use bufferlist to implement ObjectCacheFile

1) : modify unite testing of object cache file
2) : remove open and create internface
3) : use bufferlist interface to read/write file

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotest: add ObjectCacheStore unit test
shangdehao1 [Mon, 24 Dec 2018 04:12:41 +0000 (12:12 +0800)]
test: add ObjectCacheStore unit test

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotest: add multi-session unit testing
shangdehao1 [Mon, 24 Dec 2018 03:36:00 +0000 (11:36 +0800)]
test: add multi-session unit testing

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotest: move WaitEvent class to test_common.h file
shangdehao1 [Mon, 24 Dec 2018 03:01:51 +0000 (11:01 +0800)]
test: move WaitEvent class to test_common.h file

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
6 years agotools: fix immutable obj cache max size
Yuan Zhou [Fri, 21 Dec 2018 02:56:19 +0000 (10:56 +0800)]
tools: fix immutable obj cache max size

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: remove RBD specific logic in immutable obj cache
Yuan Zhou [Fri, 21 Dec 2018 02:41:32 +0000 (10:41 +0800)]
tools: remove RBD specific logic in immutable obj cache

Make the daemon more generic(pool name + object id) so it
can service both RBD and RGW.
Also supports caching partial object(even empty), the caller
needs to append_zero to read buffer if read on those objects.

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: remove background eviction
Yuan Zhou [Fri, 21 Dec 2018 01:20:07 +0000 (09:20 +0800)]
tools: remove background eviction

do eviction check in promotion callback simply

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: format headers for object cache daemon
Yuan Zhou [Thu, 20 Dec 2018 13:21:58 +0000 (21:21 +0800)]
tools: format headers for object cache daemon

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: create local utils for object cache daemon
Yuan Zhou [Thu, 20 Dec 2018 10:30:19 +0000 (18:30 +0800)]
tools: create local utils for object cache daemon

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: clean up immutable object cache
Yuan Zhou [Thu, 20 Dec 2018 08:20:37 +0000 (16:20 +0800)]
tools: clean up immutable object cache

- drop "ceph_" prefix
- prefix all options with immutable_object_cache_
- adding configurable immutable_object_cache_max_inflight_ops

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
6 years agotools: adding ceph level immutable obj cache daemon
Yuan Zhou [Thu, 13 Dec 2018 21:36:36 +0000 (05:36 +0800)]
tools: adding ceph level immutable obj cache daemon

The daemon is built for future integration with both RBD and RGW cache.
The key components are:
- domain socket based simple IPC
- simple LRU policy based promotion/demotion for the cache
- simple file based caching store for RADOS objs with sync IO interface
- systemd service/target files for the daemon

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>