Kefu Chai [Thu, 14 Jun 2018 01:32:08 +0000 (09:32 +0800)]
cmake: update BuildSPDK for spdk-18.05
in spdk v18.05, libuuid is linked by libspdk_util.a, in which,
it is used by lib/util/uuid.c. and libspdk_vol.a uses the wrapper
function exposed by libspdk_util.a, so update the CMakefile script to
reflect the change.
Venky Shankar [Tue, 29 May 2018 05:45:40 +0000 (01:45 -0400)]
rbd-mirror: schedule rebalancer to level-load instances
Policy implementation takes care of evenly balancing images
across rbd mirror instances. This is done when images are
added to the map and/or instances are added or removed with
the exception of image removal -- removing images does not
reshuffle other (mapped) images which can result in some of
the instances under loaded (in worst case, if one removes
images which all map to a particular instance, that instance
would remain idle until more images are added or a shuffle is
triggered).
We could possibly trigger map shuffle when images are removed,
but that would change the interface between Policy and ImageMap
class (in the form of changes to Policy::remove_images()). Also,
policy (and its implementations) would have to do more work when
the above class method is invoked.
Therefore, an interval based rebalancer is added to ImageMap for
periodic rebalancing of images only if the following conditions
are met:
- policy has been idle for a configured time duration
- no scheduled or in-transit operations
Venky Shankar [Mon, 4 Jun 2018 09:34:58 +0000 (05:34 -0400)]
rbd-mirror: fix state transition table for disassociation
The final state transition when disassociating (removing) images
does not purge the image state map for a given image. This can
also result in uneven balance of images across instances as the
policy implementation relies on this structure to figure out
total number of images tracked.
This patch is about:
- Adding the missing headers from src/messages
- Adding the missing types from the existing headers
- Adding blank lines to keep includes and types in a visual block.
That is much easier to read and keep the same visual as the rest of the file.
Erwan Velu [Mon, 11 Jun 2018 14:22:05 +0000 (16:22 +0200)]
test/encoding/types.h: Adjusting src/cls entries
This patch is about:
- Adding the missing headers from src/cls
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
Erwan Velu [Mon, 11 Jun 2018 14:20:01 +0000 (16:20 +0200)]
test/encoding/types.h: Adjusting src/rgw entries
This patch is about:
- Adding the missing headers from src/rgw
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
Erwan Velu [Mon, 11 Jun 2018 14:09:53 +0000 (16:09 +0200)]
test/encoding/types.h: Adjusting src/mds entries
This patch is about:
- Adding the missing headers from src/mds
- Adding the missing types from the existing headers
- Adding blank lines to keep includes and types in a visual block.
That is much easier to read and keep the same visual as the rest of the file.
Erwan Velu [Mon, 11 Jun 2018 14:04:08 +0000 (16:04 +0200)]
test/encoding/types.h: Adjusting src/os entries
This patch is about:
- Adding the missing headers from src/os
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
Erwan Velu [Mon, 11 Jun 2018 14:01:12 +0000 (16:01 +0200)]
test/encoding/types.h: Adjusting src/osd entries
This patch is about:
- Adding the missing headers from src/osd
- Adding the missing types from the existing headers
- Ordering types to get them in the file's order (that's easier to update)
- Moving crush entries avoid let all the osd entries in a collocated place
Sage Weil [Tue, 12 Jun 2018 13:31:16 +0000 (08:31 -0500)]
Merge PR #21825 into master
* refs/pull/21825/head:
os/bluestore: rename new bitmap allocator class to BitmapAllocator.
os/bluestore: perform allocations aligned with min_length in new bitmap allocator
test/objectstore/unitetest_fastbmap_allocator: replace ASSERT_TRUE with
os/bluestore: respect min_length as allocation granularity for new
os/bluestore: cosmetic new allocator internal method rename.
os/bluestore: properly respect min_length when analysing partially free
os/bluestore: cosmetic cleanup in new bitmap allocator.
os/bluestore: more verbose logging in new bitmap allocator
os/bluestore: default to bitmap allocator for bluestore/bluefs
os/bluestore: remove original bitmap allocator
os/bluestore: align BitMap allocator's init_rm_free/init_add_free parameters with min_alloc_size
os/bluestore: fix improper access to a BitmapFastAllocator::last_pos
test/allocator: move bluestore allocator's benchmarks to a standalone UT
os/bluestore: add new bitmap allocator
test/allocator: get rid off bitmap allocator specifics and introduce new
test/fio: dump mempool on job completion
Reviewed-by: Varada Kari <varadaraja.kari@flipkart.com>
Sage Weil [Tue, 12 Jun 2018 13:27:17 +0000 (08:27 -0500)]
Merge PR #22423 into master
* refs/pull/22423/head:
common/blkdev: fix non-linux build for get_device_id
common/blkdev: do not include vendor in fallback mode
mgr: allow open-ended life expectancy
mgr: use prettified durations for life expectancy
common/ceph_time: very lame timespan_str() helper
mgr: "predicted failure" -> "life expectancy", and as a range
mgr: detailed output for 'ceph device ...'
mgr/DaemonState: skip blank device_ids
osd: skip blank device ids
mgr: track and report device names too
mgr/ActivePyModule: expose 'devices' to python modules
mgr: move dump/print to DeviceState
mgr: implement 'device {set,rm}-predicted-failure' commands
mgr: load persistent device metadata on mgr stat
include/utime: add parse() method
mgr: tolerate racing config-key change during load_store()
mgr: implement 'device {ls,ls-by-daemon,ls-by-host,info}' commands
mgr/DaemonState: populate DeviceState structures
mgr: parse out devids from daemon metadata
common/blkdev: add modelines
osd: include device_ids in metadata
common/blkdev: add get_device_id() helper.
Reviewed-by: Erwan Velu <erwan@redhat.com> Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
Igor Fedotov [Thu, 31 May 2018 13:53:31 +0000 (16:53 +0300)]
os/bluestore: respect min_length as allocation granularity for new
bitmap allocator.
It was used a real minimum threshold before this fix which allowed e.g.
allocated extent length to be equal to min_length + 1.
Mao Zhongyi [Wed, 16 May 2018 05:27:35 +0000 (13:27 +0800)]
rbd: interlock object-map/fast-diff features together
Since we only support Jewel and later releases, which both support
object-map and fast-diff, enabling/disabling object-map should always
enable/disable fast-diff.
Signed-off-by: Mao Zhongyi <maozy.fnst@cn.fujitsu.com>
Sage Weil [Fri, 8 Jun 2018 03:04:09 +0000 (22:04 -0500)]
mgr: allow open-ended life expectancy
If you leave off the second part of the life expectancy interval, it means
"more than". e.g., Setting only the first time to today + one month would
mean "more than one month".
Sage Weil [Fri, 8 Jun 2018 02:22:47 +0000 (21:22 -0500)]
mgr: "predicted failure" -> "life expectancy", and as a range
1- Change terminology from "predicted failure" to "life expectancy", which
has a more intuitive meaning.
2- Change from an expected time stamp to a range. Any expectancy has an
inherent uncertainty, so a single time is not meaningful. Instead, express
as a range, e.g. "4-6 weeks from now", where we record the min and max
date as well as when the prediction was made.
This is still a bit awkward, but I'm not sure what is better. It will
always be a bit awkward to express uncertainty since in precise terms it
is probably a 90% confidence interval or something.
Sage Weil [Mon, 11 Jun 2018 02:41:54 +0000 (21:41 -0500)]
messages/MOSDPGLog: encode epoch for query_epoch for pre-nautilus OSDs
This fix is analogous to d5a3ae6008e4399b336f3a72d8dee328f97a0002. As of 84a1984b7cb70c74eaf517ffc424228fa954ed37 we set query_epoch to a lower
value reliably, but we need to encode the latest epoch for pre-nautilus
OSDs because they do not set last_peering_epoch reliably and havin a lower
query_epoch will cause them to discard this message.
common: use include/types.h early on, otherwise Clang will error.
This is due that FreeBSD does not have loff_t as type.
And with the wrong order of includes the standard linux typedef
is included and used.
In file included from /home/wjw/wip/src/common/buffer.cc:21:
/home/wjw/wip/src/include/buffer_raw.h:92:41: error: unknown type name 'loff_t'; did you mean 'off_t'?
virtual int zero_copy_to_fd(int fd, loff_t *offset) {
^~~~~~
off_t
/usr/include/sys/uio.h:49:17: note: 'off_t' declared here
typedef __off_t off_t;
^
1 error generated.
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>