doc: Created a new User Management doc to replace authentication.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Put architectural details of authentication in to architecture doc.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Restructured auth configuration reference.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Removed auth intro and auth docs and added user management to index.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Removed cephx guide. Replaced by user management.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Removed cephx intro. Moved details to user management, config, and architecture.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Added user management link to quick start.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
add calamari to the api/index section

Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
doc: Added a few comments and links to other relevant docs.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Minor changes.

Removed arch-related comments.
Added links to relevant docs.
Moved limitations to user management.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc: Added links. Clarified namespace comments. Added limitations.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
PG: wait until we've build the missing set to discover_all_missing

Fixes: #9179
Backport: firefly
Signed-off-by: Samuel Just <sam.just@inktank.com>
PG::init: clear rollback info for backfill as well

Otherwise, we won't remove the old rollback objects from a resurrected pg.  In
rare cases, this can cause us to get an EEXIST if we happen to reuse the same
rename id on the same object in a subsequent interval.

Fixes: #9293
Related to: 8346e10755027e982f26bab4642334fd91cc31aa
Backport: firefly
Signed-off-by: Samuel Just <sam.just@inktank.com>
osd/osd_types: add num_bytes_hit_set_archive to stats

The tiering agent's life is easier/better if it knows how many bytes these
objects consume (instead of making a conservative guess).

Signed-off-by: Sage Weil <sage@redhat.com>
osd/ReplicatedPG: account for hit_set_archive bytes

Signed-off-by: Sage Weil <sage@redhat.com>
osd/ReplicatedPG: scrub and repair hit_set_archive bytes

Signed-off-by: Sage Weil <sage@redhat.com>
osd/ReplicatedPG: calculate num_user_bytes

This is the bytes stored by the user, excluding hit_sets.

Signed-off-by: Sage Weil <sage@redhat.com>
osd/ReplicatedPG: adjust avg_size calculation in agent_choose_mode

Signed-off-by: Zhiqiang Wang <wonzhq@hotmail.com>
osd/ReplicatedPG: avoid dereferencing iterator at end()

The preceding loop could terminate with p == snapset.clones.end(), which
we assign to dnewest.  We can't dereference the iterator in that case.

For example:

 start_flush ffe627f3/foo/a/test-rados-api-plana05-22080-18/83 v430'42 uv130 blocking
  snapset b=[b,a]:[a,b]+head
 start_flush no older clones

prev_snapc will be 0, oi.snaps will be [a], p will end up at end(), get
assigned to dnewest, and we'll dereference.  It's only sometime harmful
though because we may still take the right (else) branch...

Fixes: #9294
Signed-off-by: Sage Weil <sage@redhat.com>
osd/ReplicatedPG: do not evict blocked objects

If the object is blocked, that means we are either still promoting it, or
we are in the process of doing a blocking flush.  In both cases, do not
evict it just yet.  For the promotion case in particular this can cause a
very long op delay because we'll have to restart the promotion, and this
can potentially loop indefinitely.

For the flush case, flushes are generally only blocking when the user
explicitly requests it.  In that case, we are not particularly concerned
that we may delay the objects eventual eviction as the user is probably
controlling that anyway (and even if they aren't, the agent will still
try this object again later).

Fixes: #9285
Reported-by: Wang, Zhiqiang <zhiqiang.wang@intel.com>
Signed-off-by: Sage Weil <sage@redhat.com>