Mike Christie [Tue, 14 May 2019 03:57:41 +0000 (22:57 -0500)]
rbd nbd: add support for netlink interface
This adds support for mapping and unmapping using the netlink
interface. If the user passes in --try-netlink during mapping then we
will try to use the netlink interface and if that is not supported use
the ioctl interface. For unmap we will always try netlink and if that is
not supported drop down to the ioctl.
Signed-off-by: Mike Christie <mchristi@redhat.com>
Mike Christie [Wed, 5 Jun 2019 04:42:40 +0000 (23:42 -0500)]
cmake and build: add netlink lib requirement detection
The next patch adds netlink support to rbd-nbd. This patch just adds the
build related changes to bring in the netlink lib and test and build
against it.
Signed-off-by: Mike Christie <mchristi@redhat.com>
Mike Christie [Tue, 4 Jun 2019 18:32:09 +0000 (13:32 -0500)]
cmake: Move WITH_RBD option earlier
The next patch will add a WITH_RBD check to the LINUX check block so we
only check for the netlink libs when those 2 conditions are met, so this
moves the WIT_RBD option setup to before the LINUX check.
Signed-off-by: Mike Christie <mchristi@redhat.com>
Mike Christie [Tue, 30 Apr 2019 22:24:07 +0000 (17:24 -0500)]
rbd nbd: Add cond to signal nbd disconnection
With the ioctl interface we know when a disconnect has been executed
because the NBD_DO_IO ioctl will return. The netlink interface returns
after the nl connect cmd call has completed, so this patch adds a cond
that signals when a nl disconnect/NBD_DISCONNECT has been executed and
the server thread has handled the resulting NBD_CMD_DISC.
Signed-off-by: Mike Christie <mchristi@redhat.com>
Mike Christie [Wed, 1 May 2019 01:14:31 +0000 (20:14 -0500)]
rbd nbd: move server startup code to function
The netlink connect cmd interface requires the server to be running when
the connect call completes or commands will timeout/fail. This breaks the
server code to 2 functions so we can control when it starts and runs.
Right now it looks odd in that start_server will allocate and return
the server only for it be freed after run, and it is not touched. The
netlink enablement patch at the end will use the returned server.
Signed-off-by: Mike Christie <mchristi@redhat.com>
Zack Cerza [Tue, 22 Jan 2019 00:30:44 +0000 (17:30 -0700)]
mgr/dashboard: Push Grafana dashboards on startup
Because we didn't have viable way to populate Grafana dashboards in a
fully containerized context, we needed a different method. This will
work in packaged and containerized deployments.
We provide three methods to push the dashboard JSON files to the Grafana
instance: a command (ceph dashboard update-grafana-dashboards); an API
endpoint (/api/grafana/update_dashboards); and an automatic on-startup
feature that is disabled by default (ceph dashboard
set-grafana-update-dashboards true). The on-startup method will also
retry periodically to avoid racing with the startup of Grafana itself.
Ramana Raja [Mon, 3 Jun 2019 09:46:18 +0000 (15:16 +0530)]
mgr/volumes: fix subvolume creation with quota
A quota is set on a subvolume by setting a quota virtual
xattr on a fs subdirectory. The value of the quota xattr
should be a bytes object. The quota value wasn't correctly
converted to a bytes object. Fix this.
Fixes: http://tracker.ceph.com/issues/40152 Signed-off-by: Ramana Raja <rraja@redhat.com>
Kefu Chai [Tue, 4 Jun 2019 12:59:24 +0000 (20:59 +0800)]
cmake: extract rgw_*_scheduler.cc into rgw_schedulers
i was running into following issue:
../../../lib/libradosgw_a.a(rgw_loadgen_process.cc.o): In function
`RGWLoadGenProcess::run()':
/home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_loadgen_process.cc:102:
undefined reference to `signal_shutdown()'
collect2: error: ld returned 1 exit status
signal_shutdown() is only used by rgw_main.cc to notify the main thread,
but we don't need this facility in unit test exercising the schedulers,
so, in this change, rgw schedulers are extracted into librgw_schedulers,
so this library can be consumed by the unit test.
Sage Weil [Mon, 3 Jun 2019 20:45:42 +0000 (15:45 -0500)]
Merge PR #26547 into master
* refs/pull/26547/head:
Added validation of zabbix_host to support hostnames, IPv4 and IPv6.
mgr/zabbix: Documentation added.
mgr/zabbix: Adds possibility to send data to multiple zabbix servers.
Kefu Chai [Mon, 3 Jun 2019 08:36:12 +0000 (16:36 +0800)]
cmake: link rgw tests against ${rgw_libs}
if `WITH_RADOSGW_AMQP_ENDPOINT` is enabled, we should always link rgw
applications against `RabbitMQ::RabbitMQ` or `amqp_mock`, so, to
simplify the linkage dependencies, we should just use `${rgw_libs}`
instead of using `rgw_a` directly.
Casey Bodley [Tue, 20 Feb 2018 17:28:24 +0000 (12:28 -0500)]
qa/rgw: rgw task can override --rgw-dns-name on the command line
the value for rgw_dns_name isn't known until a machine is assigned, so
it can't be set via 'override: conf:'. add a per-client config option
to the rgw task so it can add the endpoint's hostname and/or s3website
hostname on the radosgw command line
Kefu Chai [Mon, 3 Jun 2019 07:02:51 +0000 (15:02 +0800)]
cmake: link libkv against common_prioritycache_obj
as both `kv/rocksdb_cache/BinnedLRUCache.cc` and
`kv/rocksdb_cache/ShardedCache.cc` uses `PriorityCache` which is in turn
offered by common_prioritycache_obj, we need to link libkv against the
latter.
libos uses `PriorityCache` as well, but since libos links against
libkv, so it's safe.
Kefu Chai [Mon, 3 Jun 2019 05:27:57 +0000 (13:27 +0800)]
cmake: remove kv_objs target
libkv is better than kv_objs, as it is able to bring more
properties with with it, for instance, the public include
directories, the public/private libraries it is linked against.
Kefu Chai [Fri, 31 May 2019 18:35:16 +0000 (02:35 +0800)]
tools/ceph-dencoder: split types.h into smaller pieces
instead of putting all types in a single compilation unit, split them
into smaller groups, in hope to reduce the memory footprint of compiler
when compiling ceph_dencoder.cc.
sometimes, GCC just fails to compile this source file.
Samuel Just [Thu, 30 May 2019 00:31:48 +0000 (17:31 -0700)]
osd/: clarify rebuilt_missing_with_deletes and set in init
Updates PeeringState::init to set may_include_deletes_in_missing when
possible to avoid needlessly rebuilding the missing set on the next map.
The previous behavior was also subtly wrong as until the the next map
the osd would be possibly adding deletes to the missing set without the
flag having been set in the missing set on disk
This patch also renames the flag to reflect the fact that it simply
denotes wheter the may_include_deletes_in_missing omap entry needs to be
written out. This may happen during rebuild_missing_set_with_deletes,
but it'll also happen more commonly during init now.
Samuel Just [Thu, 30 May 2019 00:32:17 +0000 (17:32 -0700)]
crimson: hook PeeringState into pg
This patch:
1) Adds partially implemented stubs for PeeringState::PeeringListener
2) Revamps the message handling to batch the peering events from
a single message.
3) Replaces the message handling with hand-offs to PeeringState
4) Adds support for MOSDPGCreate2 enabling creation of pgs.
5) Introduces ShardServices for exposing osd machinery to the pgs.