atunc
2 years agoNovice I
I got the message below from an openstack engineer.
I got the message below from an openstack engineer. They are first time trying external shared storage, before this all they did in internal drives.
now X50 is connected via NVMe-RoCE.
_We suggest that the problem is caused by the multipath._
_We have based our installations on the Pure Storage OpenStack (Zed) Cinder Driver Best Practices document. We also made use of the Linux Recommended Settings document for multipath. However, unlike the RedHat and IBM Suse documents, we could not see the details of Native NVME Multipath in the PureStorage documents. According to other documentation it seems that both native and dm multipath are not running at the same time._
> You can multipath Non-volatile Memory Express™ (NVMe™) devices that are connected to your system over a fabric transport, such as Fibre Channel (FC). You can select between multiple multipathing solutions.
>
> 4.1. Native NVMe multipathing and DM Multipath
> Non-volatile Memory Express™ (NVMe™) devices support a native multipathing functionality. When configuring multipathing on NVMe, you can select between the standard DM Multipath framework and the native NVMe multipathing.
>
> Both DM Multipath and native NVMe multipathing support the Asymmetric Namespace Access (ANA) multipathing scheme of NVMe devices. ANA identifies optimized paths between the controller and the host, and improves performance.
>
> When native NVMe multipathing is enabled, it applies globally to all NVMe devices. It can provide higher performance, but does not contain all of the functionality that DM Multipath provides. For example, native NVMe multipathing supports only the numa and round-robin path selection methods.
When we turned off DM multipath and wanted to proceed natively, we saw that nova did not support it. Because it persistently runs the multipath command and gets an error (Unexpected error while running command. Command: multipathd show status Exit code: 1)
Therefore, we turned off the native multipath with the kernel module parameter (options nvme_core multipath=N) and proceeded. This time, we saw that dm multipath did not automatically detect purestorage disks. (multipath -ll output is empty, but we can see it in nvme list output.) In case both native and dm multipath are turned on, we can see that multipath is working in dm multipath outputs, but in both cases, live migration has i/o problems.
We also looked at the OpenStack Deployment and Operations Guide, one of the more detailed explanation documents on the PureStorage side. (since the zed version is not yet, we looked at the yoga version)
Again, with the guidance of these documents, we looked at the configs in the github purestorage repository for openstack, but unfortunately there are only multipath config examples for RedHat OpenStack (TripleO based installations).
https://github.com/PureStorage-OpenConnect/tripleo-deployment-configs/blob/master/RHOSP17.1/pure-multipath.conf
The version information is as follows:
*OpenStack Host OS*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION=“Ubuntu 20.04.6 LTS”
NAME=“Ubuntu”
VERSION=“20.04.6 LTS (Focal Fossa)”
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME=“Ubuntu 20.04.6 LTS”
VERSION_ID=“20.04”
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
*Kernel*: Linux r2-osp-dev-compute-01.hepsiburada.dmz 5.4.0-153-generic #170-Ubuntu SMP Fri Jun 16 1331 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
*OpenStack*
kolla-ansible *dockerized* installation
*Cinder* Version: 21.3.1
*Nova* Version: 26.2.1
*Multipath*:
nvme native multipath disabled:
root@compute-XX:~# cat /sys/module/nvme_core/parameters/multipath
N
*DM MultiPath:*
multipath-tools v0.8.3 (10/02, 2019)
● multipathd.service - Device-Mapper Multipath Device Controller
Loaded: loaded (/lib/systemd/system/multipathd.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2023-09-01 1708 +03; 2 days ago
● multipathd.service - Device-Mapper Multipath Device Controller
Loaded: loaded (/lib/systemd/system/multipathd.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2023-09-01 1708 +03; 2 days ago
● multipathd.socket - multipathd control socket
Loaded: loaded (/lib/systemd/system/multipathd.socket; disabled; vendor preset: enabled)
Active: active (running) since Fri 2023-09-01 1740 +03; 2 days ago