- ``balance``: When a replicated pool receives a read request, pick a random
OSD from the PG's acting set to serve it (since 5.8).
+ When an erasure-coded pool receives a read request, pick the shard that
+ stores the data, giving a performance uplift over routing the request via
+ the primary (requires Umbrella server and client; kernel client support is
+ planned for a future release).
+
This mode is safe for general use only since Octopus (i.e. after `ceph osd
require-osd-release octopus`). Otherwise it should be limited to read-only
workloads such as snapshots.
* read_from_replica=balance - When issued a read on a replicated pool, pick
a random OSD for serving it (since 5.8).
+ When issued a read on an erasure-coded pool, pick the shard that stores the
+ data, giving a performance uplift over routing the request via the primary
+ (requires Umbrella server and client; kernel client support is planned for a
+ future release).
+
This mode is safe for general use only since Octopus (i.e. after "ceph osd
require-osd-release octopus"). Otherwise it should be limited to read-only
workloads such as images mapped read-only everywhere or snapshots.
Policy for determining which OSD will receive read operations.
If set to ``default``, each PG's primary OSD will always be used
for read operations. If set to ``balance``, read operations will
- be sent to a randomly selected OSD within the replica set. If set
- to ``localize``, read operations will be sent to the closest OSD
+ be sent to a randomly selected OSD within the replica set for replica
+ pools or directly to the shard storing the data for erasure-coded pools.
+ If set to ``localize``, read operations will be sent to the closest OSD
as determined by the CRUSH map. Unlike ``rbd_balance_snap_reads``
and ``rbd_localize_snap_reads`` or ``rbd_balance_parent_reads`` and
``rbd_localize_parent_reads``, it affects all read operations, not