NVMe not currently handled correctly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kolla |
Triaged
|
Medium
|
Michal Nasiadka |
Bug Description
With the development of NVMe-TCP and NVMe-RoCE external storage for cinder, there is a requirement for the NVMe CLI package to be correctly handled in Kolla.
Currently, the `nvme-cli` package is installed in the kolla images, but this installation creates a /etc/nvme/hostnqn, therefore all containers that use this image have the same NQN - every nova-compute or cinder-volume should have a unique NQN value.
(This is very similar to the way iSCSI IQNs are generated and persisted over container restarts.)
When an NVMe volume is created on a cinder backend it connects to a host using its NQN. If all the nova-computes have the same NQN there is no guarantee which nova-compute will get the volume connection and this could not be the hypervisor the nova instance is running on.
I suggest the solution is to create a new nvme role, similar to the way the iscsi role works - https:/
Also, note that OpenStack currently only supports native nvme multipathing (enabled by default in most modern operating systems) but due to an architectural issue in OpenStack multipathd also needs to be installed, but is not used...
Changed in kolla: | |
status: | New → Triaged |
importance: | Undecided → Medium |
assignee: | nobody → Michal Nasiadka (mnasiadka) |
This bug affects us too.
+1 for Simon's solution suggestion.
If creating a new role cost is too much, kolla-ansible can install **nvme-cli** to the hosts and mount the host **/etc/nvme/** path to the nova_compute containers. We have to keep the **/etc/ nvme/hostnqn* * file is uniqe and persistent for the life of compute host.
As a temporary solution, exec into the all nova_compute containers, purge and reinstall nvme-cli package to get unique hostnqn and hostid files:
```
apt purge nvme-cli
apt install nvme-cli
```