Commit Graph

82414 Commits

Author SHA1 Message Date
Mike Christie
78e12135ee doc: add esx web based client images
Signed-off-by: Mike Christie <mchristi@redhat.com>
2018-01-11 19:57:54 -06:00
Mike Christie
426b562fdc doc: remove windows based vsphere client images
Signed-off-by: Mike Christie <mchristi@redhat.com>
2018-01-11 19:57:54 -06:00
Mike Christie
480f6a82a2 doc: fix gwcli examples
Signed-off-by: Mike Christie <mchristi@redhat.com>
2018-01-11 19:57:54 -06:00
Mike Christie
f436e993d3 doc: Update ceph iscsi kernel/distro requirements.
Signed-off-by: Mike Christie <mchristi@redhat.com>
2018-01-11 19:57:54 -06:00
Sage Weil
89d0c35796 osd: record final pg_pool_t when a pool is deleted
Also, prevent OSD start if we have a PG whose pool is deleted and no
stored pool info.  (User should downgrade, let PG deletion complete, then
upgrade.)

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:27:45 -06:00
Sage Weil
2c719c8c9d osd/PG: simplify snapmapper init
Use PGPool info; don't look at map (pool may have been deleted).

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:01 -06:00
Sage Weil
c35ee7abf5 osd/PG: drop PGPool auid member
It's at info.auid.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:01 -06:00
Sage Weil
288dcf9aa9 osd: tolerate startup for pg with no pool in osdmap
Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:01 -06:00
Sage Weil
6d004d918a osd/PG: clear requeued peering events
Broken by fffcc8a50e

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 3f07137f5f6b0448271be273db7b375ab1844d38)
2018-01-11 17:07:00 -06:00
Sage Weil
4fb3947ef0 osd/PG: use local_reserver to schedule delete
Use the reserver so that delete competes for the same slot(s) as recovery
and such.

Priority below recovery normally, unless the OSD is getting fullish, in
which case we set a very high priority.  We have to be careful here because
backfill will back off when the OSD gets full(ish) but log recovery does
not.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
b92b91b93c osd: identify splits even if pool is eventually deleted
Previously we wouldn't bother splitting if the pool was going away; now
we walk the pg forward and will process the split even if the pool is
later deleted.  Adjust the loop to terminate gracefully if that happens.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
21e8512b97 osd: clean up pending splits when removing a pg
Say we get an osdmap indicating a pg will split, but the pg is deleting and
finishes its delete before the pg consumes that map.  We need to clean up
the pending split state.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
10b6d61cd5 osd: always call complete_split()
We need to complete the split regardless of whether the pg will get
removed after.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
d153a95bfe osd: do not clean up split state on deleted pools
We want the PGs to get created and then process the newer osdmap(s) to
delete themselves.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
70aacb4a6e osd/PG: start delete after initial delete start info is applied
This allows us to eliminate the flush in _delete_some().

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
24fd1e0087 osd/PG: wait for commit *and* readable before deleting more of PG
For filestore, waiting for onreadable ensures that (1) the backend has done
(all) of the deletion work (we are throttled) and (2) that the flush() will
not block.  So, all good.

For bluestore, onreadable happens at queue time, so the flush() was needed
to throttle progress.  However, we don't want to block the op thread on
flush.  And waiting for commit isn't sufficient because that would not
capture the filestore apply work.

Fix by waiting for both commit and readable before doing more deletion
work.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
d44dcf4e00 osd: document split tracking structures a bit
Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
adbedc9bde osd: drop advance_pg() split_pgs arg
We can do the same work inside the function and simplify the code.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
5668dee0d0 osd/PG: do not publish_stats_to_osd in state exit() methods
exit() can happen due to AdvMap and a peering interval change, but it
runs before we have updated any of our internal state about whether we
are the primary, whether our pool is deleted and the pg no longer exists,
and so on.  The publish depends on (1) being primary, and (2) will crash
if the pool is gone from the OSDMap.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
b0874dca54 osd/PG: drop dup call to publish_stats_to_osd in Active AdvMap handler
Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
e5a56d4238 osd: queue peering events directly, without pg lookup
We do not need to look up the PG in order to queue a peering event now
that the queue is based on spg_t and handles the validity checks (based on
the epoch) for us.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
4a45a4d568 osd/PG: carry pg ref for final pg delete txn
FileStore breaks of the Sequencer is destroyed while the txn is in flight.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
2914e409ca osd: enqueue peering evt with pgid, not PG*
Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
285654c2bc osd: remove old pg removal infrastructure
Another queue bites the dust! \o/

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
d77dd6352e osd: leave PG registered (and stray) during delete; reimplement pg deletion
A lot of awkward complexity is implemented in OSD to handle PGs that aren't in
pg_map and are in the process of being deleted.  This is hard because if the
PG is recreated (or split, or whatever) then we need to stop the deletion and
create a fresh PG referencing the same data.

Instead, leave deleting PGs registered and Stray, with a new peering state
Stray/Deleting.  Let them continue to process OSDMaps, splits, peering intervals,
and so on.  If they are not fully deleted, they'll go back to Reset -> Stray and
so on and the new primary will get the notify and decide what to do with them
(usually instruct them to delete again).

This (1) streamlines and cleans up the code structure, and also (2) gets rid of
the special purpose RemoveWQ and moves the delete work into the main op_wq
where it can get throttled and so on.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
e59e7ad2ff osd/PG: tolerate missing pool
These assertions will soon no longer be valid.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Sage Weil
fc2cd286c9 osd/osd_types: tolerate pool deletion
- the epoch the pool is deleted is an interval change
- no changes are possible after that

Also, use a pg_pool_t pointer to avoid the repeat lookups.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-01-11 17:07:00 -06:00
Patrick Donnelly
4042bec19d
mon: revert mds metadata argument name change
Partial revert of PR #18512: d1877b68d9

Fixes: http://tracker.ceph.com/issues/22527

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2018-01-11 14:47:38 -08:00
Sage Weil
4da29a07cf Merge branch 'wip-names!-in!-space!' of git://github.com/adamemerson/ceph
Reviewed-by: Jesse Williamson <jwilliamson@suse.de>

# Conflicts:
#	src/cls/rbd/cls_rbd.cc
#	src/cls/rbd/cls_rbd_types.cc
2018-01-11 16:14:44 -06:00
Sage Weil
c6d6676422
Merge pull request #19099 from ifed01/wip-ifed-faster-pglog
osd: eliminate ineffective container operations

Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-01-11 15:50:52 -06:00
Sage Weil
c1ec2752ee
Merge pull request #19180 from theanalyst/tools/rados-omap-clear
tools: rados add a cli option to clear omap keys

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-01-11 15:50:12 -06:00
Sage Weil
47c925a765
Merge pull request #19872 from tchaikov/wip-random_shuffle
osd: s/random_shuffle()/shuffle()/

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
2018-01-11 15:49:31 -06:00
Sage Weil
c4a7881876
Merge pull request #19881 from liewegas/wip-kill-crush-location
ceph-crush-location: remove

Reviewed-by: Wido den Hollander <wido@widodh.nl>
2018-01-11 15:48:29 -06:00
Jason Dillaman
ac3855e9cf Merge pull request #11544 from VictorDenisov/consistency_groups_snapshots
librbd: group snapshots

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 15:29:27 -05:00
Jason Dillaman
bbbfd27be9 rbd-mirror: fix valgrind false positive from new boost release
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 15:27:47 -05:00
Casey Bodley
ce8ed30925
Merge pull request #19924 from rzarzynski/wip-rgw-drop-dump_uri_from_state
rgw: drop dump_uri_from_state() which isn't used anymore.

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2018-01-11 12:05:31 -05:00
Jason Dillaman
0088640173 librbd: ensure enums are prefixed w/ RBD_ to avoid collisions
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 11:58:54 -05:00
fang yuxiang
e20987c8e3 rgw: multipart abort if upload meta object doesn't exist
Signed-off-by: fang yuxiang fang.yuxiang@eisoo.com
2018-01-12 00:31:21 +08:00
Jason Dillaman
854b2bbffb librbd: fix false-positive compiler warning
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:52:26 -05:00
Venky Shankar
f3f05b9962 rbd-mirror: rollback state transitions in image policy
Introduce an error path in state transitions for reinitiating
image mapping possibly to a new peer. Also, a minor cleanup
in remove_instances() to check for pending actions if any
(rather than scanning the actions list for possible remove
action).

Signed-off-by: Venky Shankar <vshankar@redhat.com>
2018-01-11 10:47:40 -05:00
Jason Dillaman
072004ad06 test/pybind: corrected failures due to test execution ordering
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
edc3bd7388 librbd: group snapshots should be linked to image pool (not data pool)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
f61cc5741f rbd: restore snap list by image id functionality
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
725722bb5e cls/rbd: combined group_snap_add and group_snap_update
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
7f29a98db5 librbd: fix ImageCtx::get_snap_id method
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
8d68fa2a8e librbd: fixed memory leak and use-after-free in group snap API
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
31a382f1ec rbd: utilize '<name>@<snap>' format when creating/removing group snaps
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
75652b057d pybind/rbd: added snap_get_group_namespace API method
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
2f838104d8 librbd: added missing C API version for rbd_snap_get_group_namespace
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00
Jason Dillaman
d761985269 librbd: moved new snapshot API methods to separate class
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-01-11 10:38:23 -05:00