Si NVMe-over-Fabrics a fait son chemin ces dernières années dans les infrastructures où il était nécessaire de déployer du stockage via le réseau à haut débit et faible latence, NVMe/TCP démocratise cette pratique. Aucun matériel spécifique n'est en effet nécessaire. Il faut par contre disposer d'un OS compatible. Tour d'horizon.
Comme nous l'avons évoqué à travers de précédents articles, NVMe/TCP est un protocole de NVMe-oF qui se développe à vitesse grand V ces dernières années et plus particulièrement depuis quelques mois. Outre ses soutiens habituels, on a vu des acteurs comme Dell EMC et VMware se positionner.
Son support au sein du noyau Linux a déjà quelques années, mais toutes les distributions n'ont pas activé les modules nécessaires par défaut dans leur configuration du noyau. Suite à quelques demandes pour tel ou tel cas, nous avons mené des essais pour faire un tour d'horizon des bons et moins bons élèves en la matière.
Pour ce faire, nous avons utilisé notre serveur HPE ProLiant DL365 Gen10 Plus v2 avec Proxmox VE 7.0. On peut alors installer différentes distributions en parallèle assez simplement. Nous y avons placé une carte ASUS Hyper M.2 x16 contenant quatre SSD NVMe, que nous pouvons attribuer aux machines virtuelles en passthrough. Cela nous permettra de vérifier que les modules sont actifs, mais également que tout fonctionne sans problème.
L'ajout d'un SSD PCIe (NVMe) dans Proxmox VE 7.0 (à gauche), son partage via NVMe/TCP sous Debian 11 (à droite)
Pour rappel, nous avons publié un script simplifié de création de target NVMe/TCP qui fonctionne pour Debian et ses dérivés tels qu'Ubuntu. N'hésitez pas à l'adapter à vos besoins. La procédure complète est disponible ici.
Voici la liste des distributions pour lesquelles les modules sont actifs et fonctionnels :
- Debian 11.1
- EndeavourOS 2021.08.27
- Fedora 34
- Manjaro-xfce-21.1.5
- openSUSE Leap 15.3
- openSUSE Tumbleweed 20211012
- Rocky Linux 8
- Ubuntu 21.04
Cela semble désormais bien généralisé. Il n'y a finalement qu'un seul cas où les modules n'étaient pas présents :
- Alpine Linux 3.14
Notez que cela ne veut pas dire que NVMe/TCP ne peut fonctionner avec ces distributions, seulement qu'il faut recompiler le noyau en activant les modules désirés, ce qui peut être fastidieux à maintenir sur le long terme.
N'hésitez pas à nous faire part de vos propres tests. Nous mettrons cette liste à jour régulièrement.