Commit 508e4641 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Jim Harris
Browse files

doc/nvme_multipath: Add minimum queue depth algorithm for active-active



SPDK NVMe multipath support the minimum queue depth algorithm for the
active-active path selection policy. However, it was not added to the
multipath document.

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I68e15223679243917a8f888e2ac16b4d5f3f4e83
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21559


Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
parent 74185371
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -66,8 +66,11 @@ failback to it is done automatically. The automatic failback can be disabled by
`disable_auto_failback`. In this case, the `bdev_nvme_set_preferred_path` RPC can be used
to do manual failback.

The active-active policy uses the round-robin algorithm and submits an I/O to each I/O path in
circular order.
The active-active policy uses the round-robin algorithm or the minimum queue depth algorithm.
The round-robin algorithm submits an I/O to each I/O path in circular order. The minimum queue depth
algorithm selects an I/O path and submits an I/Os to it according to the number of outstanding I/Os
of each I/O qpair. For these path selection algorithms, the number of I/Os routed to the current I/O
path before switching to another I/O path is configurable.

### I/O Retry

@@ -156,6 +159,15 @@ To monitor the current multipath state, a RPC `bdev_nvme_get_io_paths` are avail
./scripts/rpc.py bdev_nvme_get_io_paths -n Nvme0n1
```

To configure the path selection policy, a RPC `bdev_nvme_set_multipath_policy` is available.
The following is an example for a single NVMe bdev `Nvme0n1` to set the path selection policy to
active-active, set the path selector to round-robin, and set the number of I/Os routed to the
current I/O path before switching to another I/O path to 10.

```bash
./scripts/rpc.py bdev_nvme_set_multipath_policy -b Nvme0n1 -p active_active -s round_robin -r 10
```

## Limitations

SPDK NVMe multipath is transport protocol independent. Heterogeneous multipath configuration (e.g.,