Commit Graph

70663 Commits

Author SHA1 Message Date
Loic Dachary
3f8efee390 mon: implement osd crush class create/rm/ls
Signed-off-by: Loic Dachary <loic@dachary.org>
2017-04-05 09:22:24 +02:00
Loic Dachary
e7d91eb4e8 crush: implement class_is_in_use/remove_class_name
Signed-off-by: Loic Dachary <loic@dachary.org>
2017-04-05 09:22:24 +02:00
Loic Dachary
f94d6b449a mon: osd crush set-device-class
Signed-off-by: Loic Dachary <loic@dachary.org>
2017-04-05 09:22:24 +02:00
Loic Dachary
8131c788b7 crush: implement update_device_class
Change the device class of a given device. The class must already exist.

Signed-off-by: Loic Dachary <loic@dachary.org>
2017-04-05 09:21:50 +02:00
Sarit Zubakov
89dfc561f1 src/msg/async: Update fix broken compilation for Posix
This commit relates to PR#13940

issue: 1010987

Change-Id: I402812adcf816c145356f0b98cfd1869c4cd5400
Signed-off-by: Sarit Zubakov <saritz@mellanox.com>
2017-04-05 06:48:27 +00:00
Sage Weil
fe41eee4f9 os/bluestore/KernelDevice: assume rotational if we can't get devname
Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 23:39:42 -04:00
Kefu Chai
24e69d79e7 Merge pull request #14281 from tchaikov/wip-19429
qa/tasks/workunit.py: use "overrides" as the default settings of workunit

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2017-04-05 10:01:27 +08:00
Haomai Wang
71c78b859a Merge pull request #14297 from Adirl/ibport
msg/async/rdma: Make port number an attribute of the Connection not o…

Reviewed-by: Haomai Wang <haomai@xsky.com>
2017-04-05 07:02:26 +08:00
Sage Weil
fe28add997 Merge pull request #13766 from dachary/wip-18962-ceph-disk-zap
ceph-disk: Write 10M to all partitions before zapping

Reviewed-by: Sébastien Han <seb@redhat.com>
2017-04-04 15:40:53 -05:00
Casey Bodley
5b377188ca Merge pull request #13998 from wangzhengyong/aio_complete
rgw: fix memory leak in delete_obj_aio

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-04-04 16:31:26 -04:00
Jason Dillaman
6be45f804b Merge pull request #12883 from mslovy/wip-rbd-import
rbd: import real thin-provision image

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-04-04 16:12:05 -04:00
Casey Bodley
6cb94d550b Merge pull request #14327 from cbodley/wip-12863
rgw: switch from "timegm()" to "internal_timegm()" for better portability

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-04-04 16:11:12 -04:00
Sage Weil
f907d83140 Merge pull request #14190 from idryomov/wip-respect-epoch-barrier
osdc/Objecter: respect epoch barrier in _op_submit()

Reviewed-by: John Spray <john.spray@redhat.com>
2017-04-04 15:07:29 -05:00
Sage Weil
ad89fd8b3e Merge pull request #14220 from jcsp/wip-19407
mon: update mgrmap when active goes offline

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2017-04-04 15:06:59 -05:00
Sage Weil
f2a44f4160 mgr/Mgr: log something at end of handle_mgr_digest
Saw a run that showed the notify_all pg_summary as the last
message for this thread; hopefully we can see if it is
blocked in notify_all() or not.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 16:05:23 -04:00
Sage Weil
025934423f mgr/Mgr: drop lock while fetching config-keys
This avoids a deadlock if some other message arrives before
the command reply and needs to take the mgr lock in dispatch.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 15:59:05 -04:00
Douglas Fuller
37bafff9f4 qa/cephfs: Add test for rebuilding into an alternate metadata pool
Add a test to validate the ability of cephfs_data_scan and friends to
recover metadata from a damaged CephFS installation into a fresh metadata
pool.

cf: http://tracker.ceph.com/issues/15068
cf: http://tracker.ceph.com/issues/15069
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
2017-04-04 12:29:01 -07:00
Douglas Fuller
cb86740a5f cephfs: Permit recovering metadata into a new RADOS pool
Add a procedure that permits reconstructing metadata in a potentially
damaged cephfs metadata pool and writing the results into a
freshly-initialized pool that refers to the same data pool. Add option
flags to override checks that would ordinarily prevent this and add
options to the recovery tools to write output to a separate pool instead of
the one selected for recovery. See docs/cephfs/disaster-recovery.rst for
details.

Fixes: http://tracker.ceph.com/issues/15068
Fixes: http://tracker.ceph.com/issues/15069
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
2017-04-04 12:29:01 -07:00
Douglas Fuller
8757f603bf mon/cephfs: Warn about overlaying CephFS metadata pools
Don't allow creation of filesystems with overlaying metadata pools unless
the user passes --allow-dangerous-pool-overlay.

Signed-off-by: Douglas Fuller <dfuller@redhat.com>
2017-04-04 12:29:01 -07:00
Casey Bodley
3c9df5582b Merge pull request #12437 from idealguo/remove-duplicate-flush
rgw: remove duplicate flush formatter

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-04-04 14:40:06 -04:00
Casey Bodley
606467bc1b Merge pull request #13934 from chuang-he/fix_copy_obj_data
rgw: fix configurable write obj window size

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-04-04 14:39:28 -04:00
Casey Bodley
1e8b763443 Merge pull request #11963 from zhangsw/fix-rgw-lifecycle-bug
rgw: LCWorker's worktime is not the same as config rgw_lifecycle_work_time.

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2017-04-04 14:31:11 -04:00
Sage Weil
6d5e0132d9 mgr/Mgr: fix map waits in init
If we go active multiple times we may already have an fsmap
subscription registered via MonClient, which means that we
won't receive a net new FSMap during the init phase.  This is
trivial to reproduce; just 'ceph mgr fail x' and when it
activates the second time init() will get stuck waiting.

The core issue is that monc subs are stateful, but we forget
the various maps with the previous Mgr incarnation.  Sipmle
workaround is to reset the mon connection as we init.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 14:27:54 -04:00
Sage Weil
1113eb123b mgr/Mgr: use cond (not context) for FSMap wait
This is simpler.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 14:27:41 -04:00
Rishabh Kumar
a60c3dd995 Switch from "timegm()" to "internal_timegm()"
Changed timegm() to internal_timegm() for better portability

Fixes: http://tracker.ceph.com/issues/12863
Signed-off-by: Rishabh Kumar <kris.kr296@gmail.com>
2017-04-04 14:24:05 -04:00
Casey Bodley
b4c0fc73aa Merge pull request #14042 from pritha-srivastava/wip-rgw-fix-accounting
rgw: Added code to correctly account for bytes sent/ received during a 'PUT' operation.

Reviewed-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-04-04 14:19:27 -04:00
Casey Bodley
484e1a38f7 Merge pull request #14125 from zhangsw/fix-rgw-cache-normalname-bug
rgw: add pool namespace to cache's key so that system obj can have unique key

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-04-04 14:17:51 -04:00
Jason Dillaman
b1f1df4f37 Merge pull request #14072 from trociny/wip-notify
librbd: Notifier::notify API improvement

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-04-04 14:06:05 -04:00
Sage Weil
d88f0fdb39 mon/MgrMonitor: encode MgrMap with mon quroum features
Fixes: http://tracker.ceph.com/issues/19491
Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 13:58:33 -04:00
Casey Bodley
f3d6c28a55 Merge pull request #14160 from Liuchang0812/wip-19363-fix-lc-two-response
rgw/lifecycle: do not send lifecycle rules when GetLifeCycle failed

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-04-04 13:22:15 -04:00
Radoslaw Zarzynski
6f1871bc85 rgw: switch to std::array in RGWBulkUploadOp due to C++11 and FreeBSD.
Before this patch RGWBulkUploadOp::terminal_errors was declared as
std::initializer_list<int>. Unfortunately, a constexpr constructor
for it is available since C++14, not C++11. This was causing build
failures on FreeBSD.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
2017-04-04 18:24:20 +02:00
Sage Weil
f8f9094964 os/bluestore: do not extend blobs with unused bitmap
If we resize the blob we need to adjust the resolution of the
unused bitmap, and that is only possible for some bit patterns.
For now just ignore blobs with unused blocks.

Add an assert in add_tail() so that we don't forget that
add_tail is (probably) where we'd would do that adjustment.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 12:12:26 -04:00
Sage Weil
83e7b81737 os/bluestore: some whitespace
Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 12:12:25 -04:00
Sage Weil
045acc3fb0 os/bluestore: mark_used for wctx->writes
The refactored blob reuse code needs to mark blobs used when
processing wctx->writes.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 12:12:25 -04:00
Anjaneya Chagam
614175b1c0 Bug fix for http://tracker.ceph.com/issues/18576
Refer to http://lttng.org/docs/v2.9/ on dlclose side effects. Workaround is to use
RTLD_NODELETE flag when calling dlopen.

Signed-off-by: Anjaneya Chagam <anjaneya.chagam@intel.com>
2017-04-04 08:56:26 -07:00
Sage Weil
31c550f7bd os/bluestore: prefix fsck errors with 'fsck error:'
Greppable!

Signed-off-by: Sage Weil <sage@redhat.com>
2017-04-04 11:28:29 -04:00
Amir Vadai
af2f1ecd27 msg/async/rdma: Make port number an attribute of the Connection not of the Device
Since multiple connections on different ports could exist, shouldn't use
device->active_port, instead use conn->ibport.
Or in other words, now Device object doesn't have an active_port,
instead every port specific action (create_qp, get_lid, get_gid etc.)
need to specify the port number. The information about the port number
is known to the connection (RDMAConnectedSocket*) who is the caller of
those actions.

Issue: 995322
Change-Id: I482cb87c04ba99845dc44f6dd0547835fe814ebf
Signed-off-by: Amir Vadai <amir@vadai.me>
2017-04-04 17:52:10 +03:00
Kefu Chai
c0e044c1bd Merge pull request #14310 from tchaikov/wip-yield-for-ppc
common/simple_spin: use __ppc_yield() on all powerpc archs

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Tested-by: Andrew Solomon <asolomon@us.ibm.com>
2017-04-04 21:58:30 +08:00
Kefu Chai
ffea11550e Merge pull request #14289 from tchaikov/wip-conditionalize-crc32c
cmake,crc32c: conditionalize crc32c on different archs

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
Tested-by: Andrew Solomon <asolomon@us.ibm.com>
2017-04-04 21:57:22 +08:00
Loic Dachary
9f64925658 Merge pull request #14275 from ceph/evelu-cephdisk-race
ceph-disk: Adding retry loop in get_partition_dev()

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2017-04-04 14:17:18 +02:00
Kefu Chai
06cf99cbcd Merge pull request #14185 from DHB-liuhong/objects
mon/PGMap: make si units more readable in PGMap summary

Reviewed-by: Sage Weil <sage@redhat.com>
2017-04-04 19:10:16 +08:00
Kefu Chai
d7d32be097 Merge pull request #14313 from wjin/clean_mgr
mgr: rm nonused main function

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-04-04 19:01:50 +08:00
Erwan Velu
93e7b95ed8 ceph-disk: Adding retry loop in get_partition_dev()
There is very rare cases where get_partition_dev() is called before the actual partition is available in /sys/block/<device>.

It appear that waiting a very short is usually enough to get the partition beein populated.

Analysis:
update_partition() is supposed to be enough to avoid any racing between events sent by parted/sgdisk/partprobe and
the actual creation on the /sys/block/<device>/* entrypoint.
On our CI that race occurs pretty often but trying to reproduce it locally never been possible.

This patch is almost a workaround rather than a fix to the real problem.
It offer retrying after a very short to be make a chance the device to appear.
This approach have been succesful on the CI.

Note his patch is not changing the timing when the device is perfectly created on time and just differ by a 1/5th up to 2 seconds when the bug occurs.

A typical output from the build running on a CI with that code.
	command_check_call: Running command: /usr/bin/udevadm settle --timeout=600
	get_dm_uuid: get_dm_uuid /dev/sda uuid path is /sys/dev/block/8:0/dm/uuid
	get_partition_dev: Try 1/10 : partition 2 for /dev/sda does not in /sys/block/sda
	get_partition_dev: Found partition 2 for /dev/sda after 1 tries
        get_dm_uuid: get_dm_uuid /dev/sda uuid path is /sys/dev/block/8:0/dm/uuid
	get_dm_uuid: get_dm_uuid /dev/sda2 uuid path is /sys/dev/block/8:2/dm/uuid

fixes: #19428

Signed-off-by: Erwan Velu <erwan@redhat.com>
2017-04-04 12:46:46 +02:00
Wei Jin
3f857b9ae4 mgr: rm nonused main function
Signed-off-by: Wei Jin <wjin.cn@gmail.com>
2017-04-04 17:47:56 +08:00
lvshuhua
7d448b7d8d rgw: add --num-zonegroups option for multi test
Signed-off-by: lvshuhua <lvshuhua@cmss.chinamobile.com>
2017-04-04 17:20:15 +08:00
Nathan Cutler
26c1b4c2d7 Merge pull request #14174 from shinobu-x/wp-sk-typo-osdmonitor-20170328
mon/OSDMonitor: Clean up: delete extra S signature for plural

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-04-04 08:37:09 +02:00
Brad Hubbard
7943ab2e01 ceph-disk: Populate mount options when running "list"
Also tidy up by moving duplicated code into a function

Fixes: http://tracker.ceph.com/issues/17331
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2017-04-04 15:25:48 +10:00
Kefu Chai
7f2ac2334a crc32c,compressor: only compile functions on supported arch
so we can still compile if certain header file (<sys/auxv.h>) used
for detecting cpu capabilities on ppc is missing on x86 host machine.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-04-04 11:38:29 +08:00
Kefu Chai
58e173c54d common/simple_spin: use __ppc_yield() on all powerpc archs
__ppc_yield() is declared in sys/platform/ppc.h by glibc, for better
portability we just use the inlined assembly here. the shared resource
hints are supported by PowerPC ISA 2.06 but on older PowerPC cores, they
are no-ops. so it's fine to do this way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-04-04 11:23:48 +08:00
Ning Yao
5b486d9628 test: add test for rbd import,import-diff,copy with sparse-size option
Signed-off-by: Ning Yao <yaoning@unitedstack.com>
2017-04-04 03:18:52 +00:00