Je fais ce sujet pour présenter cette carte d’extension NVME PCI-Express v4.0 pour pouvoir ajouter jusqu’à 4 unités de stockage NVME.
Cela fait suite à un problème avec mes unités de stockage WD Blue et mon RAID5 ( https://fr.wikipedia.org/wiki/RAID_(informatique) ).
Bien que le problème ne soit pas à chercher du coté physique, mais plus du coté micro-logiciel (firmware) qui rencontre un bogue par moment qui fait qu’un des disques est sortie du RAID 5. Après plus de 5 années de bons et loyaux service, je préfère remplacer car cela entraine pas mal de problèmes de performances et de fiabilités.

Du coup je vais parler de la carte d’extension qui est un modèle PH44 en version 2.x (je vous laisse chercher la référence, car je tombe surtout sur des sites de marchand en ligne…).

C’est une carte fille PCI-Express en version 4.0 (vous pouvez l’utiliser sur d’autres version, mais cela limitera les performances) utilisant jusqu’à 16 ligne (4×4 lignes).

Pour ce test, j’ai ajouté une unité de stockage WesternDigital Black SN770 ( https://www.westerndigital.com/fr-fr/products/internal-drives/wd-black-sn770-nvme-ssd )dépourvu de cache mémoire, mais utilisant une partie en SLC pour la remplacer.

  • Pour l’installer, vous avez juste à brancher votre SSD NVME et surtout vérifier que vos options du bios soient bien configurés, car il peut y avoir des problèmes avec l’utilisation du mode “REBAR” ou “smart access memory”, utile uniquement pour l’utilisation avec une carte graphique fille.
  • Il est nécessaire de brancher vos unités de stockage en commençant par le port “1” et rajouter les autres en suivant l’ordre.

Niveau performance générique, vous pouvez utiliser l’utilitaire “hdparm” comme ce qui suit (avec résultat chez moi) avec par exemple nvme0n1 (à adapter) avec un bus en PCI-E 3.0 (à cause du processeur ryzen 5600G) :

sudo hdparm -tT /dev/nvme0n1

/dev/nvme0n1:
 Timing cached reads:   43044 MB in  1.97 seconds = 21837.69 MB/sec
 Timing buffered disk reads: 6422 MB in  3.00 seconds = 2140.04 MB/sec

Ce test est réalisé sur :

  • carte mère Asrock a chipset B550
  • Processeur AMD 5600G
  • 64Go de RAM Crucial 3200 DDR4 PRO
  • WD SN770 de 2To
  • Samsung 970 EVO de 500Go
  • Samsung 850 EVO 250Go

Du coup niveau performance, nous sommes du niveau du port intégré à la carte mère (exemple avec le 970 EVO) :

hdparm -tT /dev/nvme1n1

/dev/nvme1n1:
 Timing cached reads:   40308 MB in  1.97 seconds = 20433.63 MB/sec
 Timing buffered disk reads: 6116 MB in  3.00 seconds = 2038.30 MB/sec

Je n’ai pas la possibilité de tester en PCI-express 4, je vous laisse en chercher des tests sans doute plus complet avec votre moteur de recherche favori.

En tout cas c’est parfaitement supporté par Fedora (ici en version F39) 🙂 .

Reste à ajouter une solution de refroidissement (ce modèle de carte d’extension le supporte, mais je n’ai pas encore trouvé ce qu’il fallait) pour évité les problèmes de surchauffe. (Il est possible de rajouter des radiateurs individuellement sur chaque SSD). Lors d’un test de charge, je n’ai pas dépassé les 70°C.

Faire quand même bien attention, toutes les cartes mères/Processeurs ne permettent pas l’utilisation de plus d’un NVME. Bien régler dans le bios le mode de gestion du port PCI-Express (exemple 8x+8x ne permet qu’une unité NVME , 8x+4x+4× 2 unités, 4x+4x+4x+4× 4 unités). Voir les différentes réponses!

    VINDICATORs Merci pour ce retour et test matériel.
    Toujours bien d’avoir une solution pour faire évoluer sa configuration machine.

    Tu as ça aussi qui évite le voisinage d’autres cartes PCI, et qui peut se ventiler. Et n’occupe que la place d’un disque 3,5 "

      nouvo09 oui mais là faut souligner que le SATA vas fortement limiter les performances et avantage du nvme sur PCI express. Et n’empêchera pas les soucis que l’on peut avoir selon l’usage, donc le besoin de rajouter de quoi améliorer le refroidissement.

      Je rajoute que j’ai eu un seul bémol avec cette carte, à savoir la led d’état qui est bien trop lumineuse! Du coup c’est dérangeant selon l’endroit où est mis la machine et le type de boitier.

      Un petit cache épais auto-collant un peut transparent pour atténuer la luminosité et c’est bon.
      Il y a d’autres méthodes, mais là c’est la plus simple et économique que je donne.
      Perso j’ai prit un bout de ruban adhésif épais double face qui sert pour coller des objets (comme mon nounours Fedora collé au mur 😛 ). Cela atténue bien tout en laissant la lumière passer un minimum.

      2 mois plus tard

      Bon test avec 2 NVME branché (identique au premier) et le second n’est pas visible… Donc soit cela vient de la carte mère (réglage bios à revoir? En tout cas je n’ai pas trouvé de réglage qui peut correspondre…), soit cela vient du contrôleur. Il faut peut être utiliser le mode “RAID”. J’en ai profité pour limiter le bus au PCI-e 3.0 vu que le processeur ne supporte que cette version (après il doit y avoir, sauf erreur dans mes recherches, 20 lignes comme le 5800x, qui est lui en pci-e 4.0).

      Je ferais un test pratique sur mon pc principale avec le 5800X qui est plus costaud et avec une carte mère plus complète niveau connectique que celui là. Par contre pas avant la fin du mois (pas d’urgence, le ssd nvme secondaire semble bon, sans compter que j’ai encore de l’espace disque de disponible) vu que je déménage…

      Je ferais quand même faire attention, car le premier nvme contient des données assez sensible (mais je synchronise ailleurs automatiquement et en cas d’interventions).

      Il semblerait que l’utilisation de la puce graphique intégré (mode multi-GPU activé, donc sans doute du 8×4×4 ou dans le genre… avec les 8 lignes pour l’APU) ne permet pas d’utiliser les 16 lignes PCI-express du port (sans doute limité à 4 lignes du coup). Cela doit entrainer certaines limitations dans l’exploitation de la carte d’extention qui les demandent (les deux SSD réclament 2×4 lignes).

      A voir si en désactivant il voit l’autre unité de stockage ou si il faut chercher ailleurs… Voir en déportant le ssd nvme de la carte mère sur la carte.

      Les joies de sortir des sentiers battus 😛. Et des limitations en lignes PCI-Express que l’on se tappe depuis des années sur les processeurs grand public…

      Histoire de préciser :
      Bon c’est bien une limitation de la carte mère. A voir sur une autre le comportement histoire de mettre un avertissement en condition réel.
      Normalement elle doit avoir les 16 lignes dédié au port, mais il semble bien qu’elle partage les lignes avec la puce graphique intégré, le nvme de la carte mère (bon là suffira juste de le débrancher pour confirmer) et le port 16x.
      Du coup l’on doit se retrouver en 8 lignes pour la puce intégré, 4 pour le nvme de la carte mère et 4 pour le port 16x.

      Par contre je n’ai pas trouvé le moyen de désactiver la puce graphique du processeur dans le bios pour confirmer. Donc à voir si c’est possible coté linux.

      Édit : bon désactiver l’igpu dans le bios semble faire planter le boot… Du coup faudra voir pourquoi et si ce n’est pas juste lui laisser le temps de continuer…

      9 jours plus tard

      Test sans le ssd nvme sur la carte mère et toujours le même problème 🙁. Du coup voir les options coté bios. Il faut peut être désactiver quelque chose en lien avec les lignes PCI-express dédié (branché directement sur les lignes du processeur) du port NVME.

      Je vois la semaine prochaine pour prendre le temps de faire un test sur une carte mère plus complète. Voir sur mon pc sans carte graphique avec le R7 2700+ sur chipset B450. Sinon je testerai sur le R7 5800x sur chipset X470.

      J’ai l’impression qu’il n’y a pas de lignes supplémentaire coté chipset qui peut prendre le relai. Du coup cela limite fortement les possibilités 🙁. Je regarderai du coté de l’igpu pour voir si l’on peut quand même booter sans, mais il semble que la machine refuse de démarrer sans GPU.

      Si il est possible de désactiver l’igpu, cela ne me dérange pas trop. Sauf qu’en cas de besoin il est nécessaire de faire un reset du bios et rien n’est prévu pour le faire simplement (il faut faire court circuit de 2 pin à coté du connecteur USB3 en façade sur la carte mère…).

      Pourtant d’après les spécifications du chipset cela ne devrait pas poser de problème :
      https://www.amd.com/fr/products/processors/chipsets/am4.html
      Du coup c’est bien plus coté igpu que cela bloque dans ce cas là…

      Normalement sur le R7 2700x, sans carte graphique, il devrait être possible d’utiliser les 4 ssd nvme et sur R7 5800x au moins (8lignes carte graphique+8lignes sur la carte d’extension nvme).

      3 mois plus tard

      Je reviens quelques temps après avec un test sur une autre machine disposant d’une carte mère acceptant, sans doute, plus d’options possible.

      Du coup en x4+x4(donc x8) sur le port de la carte graphique et x4+x4 (donc x8) sur ma 470 pro carbon de MSI, les 4 unités de stockage NVMe sont visible et exploitable.

      Pour le test 2 unités de stockage sont sur la carte mère (/dev/ng0n1 et /dev/ng3n1 les deux autres sur la carte fille (/dev/ng1n1 et /dev/ng2n1)

      nvme list
      Node                  Generic               SN                   Model                                    Namespace  Usage                      Format           FW Rev  
      --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- --------
      /dev/nvme0n1          /dev/ng0n1            PNY21102103040XXXXXX PNY CS3030 1TB SSD                       0x1          1.00  TB /   1.00  TB    512   B +  0 B   CS303320
      /dev/nvme1n1          /dev/ng1n1            PNY21102103040XXXXXX PNY CS3030 1TB SSD                       0x1          1.00  TB /   1.00  TB    512   B +  0 B   CS303320
      /dev/nvme2n1          /dev/ng2n1            S466NX0K7XXXXXX      Samsung SSD 970 EVO 500GB                0x1          4.51  GB / 500.11  GB    512   B +  0 B   2B2QEXE7
      /dev/nvme3n1          /dev/ng3n1            S4EWNX1W5XXXXXX      Samsung SSD 970 EVO Plus 1TB             0x1        658.77  GB /   1.00  TB    512   B +  0 B   2B2QEXM7

      A savoir que le /dev/ng3n1 utilise les lignes PCI-express v2 du chipset.

      Mais bon cela ne résout pas l’utilisation que j’aimerai avec cette carte, à savoir pouvoir l’exploiter sur mon petit serveur… Je relance le test sur mon autre machine d’appoint sans carte graphique pour voir.
      Est ce une limitation du chipset B550 par rapport au X470? A voir, j’ai un A320 pour tester (couplé à un amd A6 9500), voir un B450 sur l’autre machine d’appoint (couplé à un ryzen 1+ R7 2700+).

      Mais bon en l’état la carte fonctionne très bien.
      Il faut juste veiller à la compatibilité et si l’on dispose d’assez de lignes PCI-express 🙂.

      Reste à tester avec les 4 ports de la carte fille d’utilisé, mais bon je pense que la limitation viendra de comment est réglé le port PCI-Express, car il lui faut du 16 lignes (x16) exclusivement…

        VINDICATORs T’as envie de lui faire cracher ses tripes 😉

        Effectivement il y a des chances que selon les chipsets tu ais des comportements différents.

          Nicosss

          Bah j’aimerais pouvoir utiliser au moins 3 nvme, car c’est pour mettre sur une ITX et je n’ai plus de ports NVME de dispo sinon 🙁.

          Test sur le A320 + A6 9500 concluant, mais il faut bien configuré un fractionnement du port x16 en x4+x4 pour que les deux unités de stockage nvme soient visible.

          Donc c’est plus comment est fractionné le port x16 qui compte. Comme je n’ai que 8 lignes qui sont alloué au port x16 max, il ne peux fractionner qu’en x4+x4 ou en x8 (limitation du A6).

          Je n’ai pas eu la possibilité de tester avec l’autre machine (B450 + R7 2700X) n’ayant pas de carte graphique, pour reconfigurer le bios, disponible 🙁.

          Reste à voir si le bios de l’Asrock B550 peut au moins fractionner en x4+x4, cela permettrait d’utiliser la carte à moité.

          Édit : Bon sur la B550 les options de fractionnement du port PCI-E x16 sont :

          x16 lignes
          x8+x8 lignes
          x8+x4+x4 lignes

          Par contre l’aide parle bien d’un autre mode “J10 : x4+x4+x4+x4” qui serait donc plus adapté. Mais pas d’option pour le régler… Soit c’est le R5 5600G qui ne le supporte pas (possible), soit le bios n’est pas complet de ce coté là…
          Donc je relancerai des tests pour voir si il peut au moins voir les 2 unités de stockages de test.

          10 jours plus tard

          Bon c’est normalement confirmé (à voir avec au moins une autre unité de stockage NVME), sur la carte mère de mon R7 2700x il y a l’option 4×4×4×4 dans le bios pour le port x16, donc les 4 emplacements NVME de la carte fille doivent être prit en compte (je peux booter sans carte graphique sur cette machine 🙂).

          La carte mère est une ASRock model: B450M-HDV R4.0 micro ATX.

          Donc faites bien attention avant de partir sur une carte de ce style 😉.

          Je mettrais les recommandations à jours sur le sujet de tête 😉.