deb/rpm: add python-six as build-time and run-time dependency
python-six is used by dashboard's controllers. please note,
${python:Depends} is able to fill the installation dependencies for
debian package. so python-six is not added to Requires of ceph-mgr.
Sage Weil [Wed, 4 Jul 2018 19:20:27 +0000 (14:20 -0500)]
Merge PR #22534 into master
* refs/pull/22534/head:
msg/Messenger: use safe_item_history<> for my_addrs
msg/simple: fix set_myaddrs()
msg/Messenger: use mutable_item_history<> for my_addrs
common/item_history: container to support lockless reads, infrequent updates
msg/simple/Accepter: fix my_addr == my_addrs.v[0] constraint
msg/async: track target_addr for each connection
msg/async: mark accepted connections with addr type (legacy or msgr2)
msg/async: mark AsyncConnection with msgr2 flag
msg/async: track connections by addrvec
mon/Session: inst -> name and addrs
osd/OSDMap: don't print hb addrs
msg/DispatchQueue: myaddr -> myaddrs
mgr: myaddr -> myaddrs
msg: make set_addr_unknowns take an addrvec
mon/LogMonitor: myaddr -> myaddrs
librados: myaddr -> myaddrs
common/LogClient: myaddr -> myaddrs
client: myaddr -> myaddrs
osd/OSDMap: is_blacklisted() for addrvecs
osd: populate metadata with all addrs
mds: addr -> addrvec
mon/MonClient: get_myaddrs()
mon/OSDMonitor: addrvec blacklist helper
mds: use new pick_addresses
ceph-osd: use new bindv()
msg/async: bind to multiple addresses
msg/async: (legacy) handshake using legacy addr
msg/async: fix some debug prefixes
msg/async: multiple listening ServerSockets
osd/OSDMap: make cluster addrs addrvecs too
msg/Messenger: my_addr -> my_addrs
msg/Connection: peer_addr -> peer_addrs
msg/msg_types: hash<> for entity_addrvec_t
mgr/DaemonServer: use new bindv() and pick_addresses()
msg/Messenger: new bindv() that takes an addrvec
common/pick_address: fill in ipv4/6 and msgr1/msgr2 via config options
common/pick_addresses: new addrvec-based pick_addresses()
common/pick_addresses: add filtering by ipv4 and ipv6
CEPH_MON_PORT -> CEPH_MON_PORT_LEGACY; define CEPH_MON_PORT_IANA
osd: kill osd_heartbeat_addr option
common/options: add addrvec option type
run-make-check.sh: Adding ccache tuning for the CI
When run-make-check is run by the CI, some tuning can be performed to
speedup the build.
This commit :
- Detect jenkins by searching JENKINS_HOME env variable
- Defines the SOURCE_DATE_EPOCH to enforce a stable date across builds
- Ask cmake not to use the git versioning which adds useless entropy for a temporary build (ENABLE_GIT_VERSION=OFF)
- Define the ccache slopiness to increase efficiency
- Increase the ccache size to save multiple builds to maximise cache hit between PRs
- Print ccache statistics to evaluate ccache efficiency
Jianpeng Ma [Tue, 3 Jul 2018 07:11:07 +0000 (15:11 +0800)]
os/bluestore: set correctly shard for existed Collection.
For existed Collection, the constructor of Collection will be called in _open_collections.
But m_finisher_num can't setup when enable bluestore_shard_finishers.
So move m_finisher_num setup before _open_collections && _kv_start.
Fixes: http://tracker.ceph.com/issues/24761 Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Sage Weil [Tue, 12 Jun 2018 19:35:18 +0000 (14:35 -0500)]
msg/async: track target_addr for each connection
The target_addr is item from peer_addrs that we are using for the
connection. On accept, we learn it during the handshake. On connect,
we choose it early on (first item in addrvec that we understand).
Sage Weil [Mon, 4 Jun 2018 19:23:35 +0000 (14:23 -0500)]
osd/OSDMap: make cluster addrs addrvecs too
This will allow a single-step upgrade from msgr1 to msgr2: as each
nautilus OSD starts up, it will bind to both msgr1 and msgr2 addrs
(assuming it starts up after the mons have been upgraded). Peer OSDs will
use the msgr2 address if they can, or the legacy one if they can't.
Once require_osd_release >= nautilus OSDs will stop binding to msgr1
ports at all.
Sage Weil [Fri, 1 Jun 2018 19:13:29 +0000 (14:13 -0500)]
common/pick_address: fill in ipv4/6 and msgr1/msgr2 via config options
This allows users to simply pass in CLUSTER or PUBLIC and the function
fills in the rest. (Or, if the caller is particular, they can pass in
the other flags too.)
* refs/pull/22165/head:
qa: add one-off clusters to qa/cephfs/clusters
qa: allocate more space for VM disk
qa/cephfs/clusters/*: bigger cinder volumses
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Andrew Schoen [Tue, 3 Jul 2018 11:45:24 +0000 (06:45 -0500)]
ceph-volume: always ignore a missing ceph conf in main.py
Now that we have a nice error message when a ceph.conf is missing
and we try to use values from it, maintaining a list of commands that
don't need ceph.conf isn't as helpful. We had actually missed 'simple
trigger' when we first implemented this causing all our luminous tests
for simple to fail when we backported.
John Spray [Tue, 3 Jul 2018 08:46:07 +0000 (09:46 +0100)]
doc/dashboard: don't advise mgr_initial_modules
This setting tends to confuse people, as it's only respected
on the very first startup of the cluster. Instead, mention
it (with appropriate caveats) on the general mgr admin
page.
Kefu Chai [Fri, 29 Jun 2018 17:33:44 +0000 (01:33 +0800)]
crimson/thread: pin thread pool to given CPU
to take the full advantage of seastar reactor, we need to confine the
alien threads to given CPU core(s). in current setting, it's assumed
that alien threads do not perform CPU-bound tasks, so a single core
would suffice. we can always change the interface to pass a cpu_set_t
or a std::bitset if one CPU core is not enough.
Douglas Fuller [Thu, 28 Jun 2018 14:26:25 +0000 (10:26 -0400)]
osd/filestore: Change default filestore_merge_threshold to -1
Performance evaluations of medium to large size Ceph clusters have
demonstrated negligible performance impact from unnecessarily deep
directory hierarchies but significant performance impact from filestore
split and merge activity. Disable merges by default.
Fixes: http://tracker.ceph.com/issues/24686 Signed-off-by: Douglas Fuller <dfuller@redhat.com>