Suite à l’examen du SSD Corsair MP700 PCIe 5.0 NVMe sous Linux avec de nombreux lecteurs surpris par des erreurs de système de fichiers lorsqu’ils n’ajoutent pas de refroidissement supplémentaire comme le dissipateur thermique passif M.2 de la carte mère et étant moi-même curieux de la situation, voici d’autres tests pour savoir comment cela le lecteur rencontrera de manière fiable les erreurs de système de fichiers en trois minutes ou moins sans refroidissement supplémentaire.
Après avoir éliminé les tests Linux de base pour le Corsair MP700 2 To, j’ai effectué d’autres tests en examinant les erreurs du système de fichiers lors de l’exécution sans aucun refroidissement supplémentaire. Puisque, après tout, on supposerait normalement que le disque SSD NVMe s’étranglerait avant d’arriver carrément au point d’erreurs du système de fichiers s’il y avait une chaleur excessive.
Comme mentionné dans l’examen, je rencontrais des erreurs de système de fichiers simplement lors de l’installation de tests après une installation propre d’Ubuntu 23.04 et je n’arrivais même pas à stresser le lecteur NVMe avec des repères. J’étais donc assez curieux de voir combien de temps le disque durerait sous les charges de travail d’analyse comparative du disque lorsqu’il était exécuté sans aucun refroidissement après-vente. Pour faire court, il a fallu moins de 3 minutes dans des bottes propres avant de faire des erreurs de manière fiable.
Lors de la collecte à distance des journaux dmesg, généralement dans les 180 secondes suivant un démarrage et en démarrant simplement un serveur MariaDB et en exécutant mysqlslap pour exercer le serveur de base de données, il y aurait des erreurs de système de fichiers. En répétant cela plusieurs fois, cela se produirait toujours dans les trois minutes et la température du lecteur NVMe signalée via les sysfs NVMe HWMON était toujours d’environ 87 degrés. Pour ce que ça vaut, le Les spécifications techniques du MP700 décrivent une plage de température de-40 C à 85 C.
A partir des logs collectés, au moins sous Linux il semble que le contrôleur NVMe tombe en panne, ce qui entraîne des erreurs de système de fichiers EXT4. Par exemple :
[ 177.187278] nvme nvme0 : le contrôleur est en panne ; réinitialisera : CSTS=0xffffffff, PCI_STATUS=0xffff
[ 177.187283] nvme nvme0 : votre appareil a-t-il activé un mode d’économie d’énergie défectueux ?
[ 177.187285] nvme nvme0 : essayez”nvme_core.default_ps_max_latency_us=0 pcie_aspm=off”et signalez un bogue
[ 177.235051] nvme 0000:19:00.0 : impossible de modifier l’état d’alimentation de D3cold à D0, périphérique inaccessible
[ 177.235151] nvme nvme0 : Désactivation de l’appareil après un échec de réinitialisation :-19
[ 177.251298] nvme0n1 : changement de capacité détecté de 3907029168 à 0
[ 177.251308] Avertissement EXT4-fs (appareil nvme0n1p2) : ext4_end_bio:343: Erreur d’E/S 10 en écriture sur l’inode 55194516 bloc de démarrage 125091905)
[ 177.251310] Erreur d’E/S de tampon sur l’appareil nvme0n1p2, bloc logique 129128830
[ 177.251312] Avertissement EXT4-fs (appareil nvme0n1p2) : ext4_end_bio : 343 : Erreur d’E/S 10 en écriture sur l’inode 55193889, bloc de démarrage 273991222)
[ 177.251316] Erreur d’E/S de tampon sur l’appareil nvme0n1p2, bloc logique 124816449
[ 177.251317] Erreur d’E/S de tampon sur l’appareil nvme0n1p2, bloc logique 273715 766
[ 177.251322] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 29884642 bloc de démarrage 129404287)
[ 177.251327] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343: Erreur d’E/S 10 en écriture sur l’inode 55194516 bloc de démarrage 125091902)
[ 177.251327] Avertissement EXT4-fs (appareil nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 29884642 bloc de démarrage 129404288)
[ 177. 251329 ] Erreur d’E/S de tampon sur l’appareil nvme0n1p2, bloc logique 124816446
[ 177.251331] Avertissement EXT4-fs (appareil nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 30164735 bloc de démarrage 129396193)
[ 177.2 51331 ] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : Erreur d’E/S 10 en écriture sur l’inode 55194516, bloc de démarrage 125091875)
[ 177.251332] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 129120737
[ 177.2 51333 ] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 124816419
[ 177.251334] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194516 bloc de démarrage 125091852)
[ 177.2 51336 ] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 124816396
[ 177.251336] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 30164735 bloc de démarrage 129396194)
[ 177.2 51338 ] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : Erreur d’E/S 10 en écriture sur l’inode 55194516, bloc de démarrage 125091849)
[ 177.251339] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 124816393
[ 177.2 51341 ] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 124816371
[ 177.251343] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 124816353
[ 177.251345] Abandon du journal sur le périphérique nvme0n1p2-8.
[ 177.251353] Erreur EXT4-fs (périphérique nvme0n1p2) dans ext4_reserve_inode_write:5906 : le journal a été abandonné
[ 177.251358] Erreur EXT4-fs (périphérique nvme0n1p2) : ext4_journal_check_start:83 : comm kworker/u64:9 : Détecter ed abandonné journal
[ 177.251359] Erreur d’E/S de tampon sur dev nvme0n1p2, bloc logique 220726066, écriture de page asynchrone perdue
[ 177.251360] Erreur d’E/S de tampon sur dev nvme0n1p2, bloc logique 243826688, écriture de page de synchronisation perdue
[ 177.251362] Erreur EXT4-fs (périphérique nvme0n1p2) : ext4_dirty_inode:6110 : inode #55194516 : comm systemd-journal : erreur mark_inode_dirty
[ 177.251365] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 121147 223, écriture de page asynchrone perdue
[ 177.251366] JBD2 : erreur d’E/S lors de la mise à jour du superbloc de journal pour nvme0n1p2-8.
[ 177.251367] Erreur EXT4-fs (périphérique nvme0n1p2) dans ext4_dirty_inode:6111 : le journal a été abandonné
[ 177.251369] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 121141967, écriture de page asynchrone perdue
[ 177.251 372 ] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 121110852, écriture de page asynchrone perdue
[ 177.251373] Erreur EXT4-fs (périphérique nvme0n1p2) dans ext4_reserve_inode_write:5906 : le journal a été abandonné
[ 177.251375] E/S de tampon erreur sur dev nvme0n1p2, bloc logique 121110544, écriture de page asynchrone perdue
[ 177.251376] Erreur EXT4-fs (périphérique nvme0n1p2) : ext4_dirty_inode:6110 : inode #55193889 : comm rs:main Q:Reg : erreur mark_inode_dirty
[ 177.251376] Erreur EXT4-fs (périphérique nvme0n1p2) : ext4_journal_check_start:83 : comm mariadbd : Journal abandonné détecté
[ 177.251377] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 121110529, écriture de page asynchrone perdue
[ 177. 251378] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 177.251379] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 120587356, écriture de page asynchrone perdue
[ 177.251381] E/S de tampon erreur sur dev nvme0n1p2, bloc logique 58, écriture de page asynchrone perdue
[ 177.251384] Erreur EXT4-fs (périphérique nvme0n1p2) dans ext4_dirty_inode:6111: le journal a été abandonné
[ 177.251386] EXT4-fs (nvme0n1p2): précédent I/O erreur de superbloc détectée
[ 177.251386] Erreur EXT4-fs (périphérique nvme0n1p2) : ext4_journal_check_start:83 : comm systemd-journal : Journal abandonné détecté
[ 177.251391] Erreur EXT4-fs (périphérique nvme0n1p2) : ext4_journal_check_start : 83 : comm rs:main Q:Reg : Journal abandonné détecté
[ 177.251399] EXT4-fs (nvme0n1p2) : erreur d’E/S précédente vers le superbloc détectée
[ 177.251406] EXT4-fs (nvme0n1p2) : E/S erreur lors de l’écriture du superbloc
[ 177.251407] EXT4-fs (nvme0n1p2): Remontage du système de fichiers en lecture seule
[ 177.251409] EXT4-fs (nvme0n1p2): échec de la conversion des étendues non écrites en étendues écrites–perte de données potentielle ! (inode 29884642, erreur-30)
[ 177.251413] EXT4-fs (nvme0n1p2) : échec de la conversion des étendues non écrites en étendues écrites–perte de données potentielle ! (inode 30164735, erreur-30)
[ 177.251415] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 177.251415] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 177.251417] EXT4-fs (nvme0n1p2) : erreur d’E/S précédente détectée sur le superbloc
[ 177.251420] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 186.476141] Erreur EXT4-fs ( Appareil nvme0n1p2): __ext4_find_entry: 1663: Inode # 63307794: Comm Apport: Reading Directory LBLOCK 0
[186.476151] Buffer_IO_ERROR: 4 CAPPRESS sync page write
[ 186.476154] EXT4-fs : 2 rappels supprimés
[ 186.476154] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 186.476170] Erreur EXT4-fs (device nvme0n1p2): __ext4_find_entry:1663 : inode #63307794 : comm apport : lecture du répertoire lblock 0
[ 186.476174] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 186.476174] EXT4-fs (nvme0n1p2 ) : erreur d’E/S lors de l’écriture du superbloc
[ 186.476184] Erreur EXT4-fs (périphérique nvme0n1p2) : __ext4_find_entry:1663 : inode #63307794 : comm apport : lecture du répertoire lblock 0
[ 186.476187] Erreur d’E/S du tampon sur dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 186.476188] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 186.476197] Erreur EXT4-fs (périphérique nvme0n1p2) : __ext4_find_entry:1663: inode #63307794 : comm apport : lecture du répertoire lblock 0
[ 186.476199] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 186.476200] EXT4-fs (nvme0n1p2) : I/O erreur lors de l’écriture du superbloc
Le lecteur NVMe était occupé par des tâches MariaDB, il n’aurait donc pas dû essayer de passer dans un état de gestion de faible consommation d’énergie-à court de limitation thermique… Je l’ai donc fait aussi essayez les options de noyau”nvme_core.default_ps_max_latency_us=0 pcie_aspm=off”recommandées dans la sortie dmesg. mais finalement aucune de ces options pour désactiver la gestion de l’alimentation à l’état actif PCI Express (ASPM) ou la modification de la latence maximale NVMe n’a été utile.
[ 164.581235] nvme nvme0 : le contrôleur est en panne ; réinitialisera : CSTS=0xffffffff, PCI_STATUS=0xffff
[ 164.581240] nvme nvme0 : Votre appareil a-t-il un mode d’économie d’énergie défectueux activé ?
[ 164.581241] nvme nvme0 : Essayez”nvme_core.default_ps_max_latency_us=0 pcie_aspm=off”et signalez un bogue
[ 164.641482] nvme0n1 : I/O Cmd(0x2) @ LBA 203495560, 32 blocs, erreur d’E/S (sct 0x3/sc 0x71)
[ 164.641490] Erreur d’E/S, dev nvme0n1, secteur 203495560 op 0x0 :(READ) flags 0x80700 phys_seg 4 prio class 2
[ 164.669173] nvme 0000:19:00.0 : Un capable pour changer l’état d’alimentation de D3cold à D0, périphérique inaccessible
[ 164.669278] nvme nvme0 : Désactivation du périphérique après un échec de réinitialisation :-19
[ 164.693186] Erreur d’E/S, dev nvme0n1, secteur 3089104896 op 0x1 :(WRITE) flags 0x0 phys_seg 1 prio class 2
[ 164.693195] Avertissement EXT4-fs (appareil nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123 bloc de démarrage 386138112)
[ 164.693198] nvme0n1 : changement de capacité détecté de 3907029168 à 0
[ 164.693200] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 385862656
[ 164.693211] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55 194123 bloc de démarrage 129390649)
[ 164.693213] Erreur d’E/S de tampon sur l’appareil nvme0n1p2, bloc logique 129115193
[ 164.693213] Avertissement EXT4-fs (appareil nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 2988 4650 bloc de démarrage 273996343)
[ 164.693215] Erreur d’E/S de tampon sur l’appareil nvme0n1p2, bloc logique 129115194
[ 164.693217] Erreur d’E/S de tampon sur l’appareil nvme0n1p2, bloc logique 129115195
[ 164.693219] B supporter les E/S erreur sur le périphérique nvme0n1p2, bloc logique 129115196
[ 164.693220] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123 bloc de démarrage 129390653)
[ 164.693224] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123, bloc de démarrage 129390637)
[ 164.693226] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 129115181
[ 164.693228] EXT4-fs avertissement (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123 bloc de démarrage 129390598)
[ 164.693229] Erreur d’E/S de tampon sur le périphérique nvme0n1p2, bloc logique 129115142
[ 164.693231] Buffer I/O erreur sur le périphérique nvme0n1p2, bloc logique 129115143
[ 164.693232] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123 bloc de démarrage 129390595)
[ 164.693234] B supporter les E/S erreur sur le périphérique nvme0n1p2, bloc logique 129115139
[ 164.693235] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123 bloc de démarrage 129390578)
[ 164.693236] B supporter les E/S erreur sur le périphérique nvme0n1p2, bloc logique 129115122
[ 164.693238] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123 bloc de démarrage 129390566)
[ 164.693240] Avertissement EXT4-fs (périphérique nvme0n1p2) : ext4_end_bio:343 : erreur d’E/S 10 en écriture sur l’inode 55194123 bloc de démarrage 129390563)
[ 164.693278] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 120619365, écriture de page asynchrone perdue
[ 164.693 285 ] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 127926285, écriture de page asynchrone perdue
[ 164.693293] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 62, écriture de page asynchrone perdue
[ 164.693302] EXT4-fs erreur (appareil nvme0n1p2) : ext4_check_bdev_write_error : 223 : comm mariadbd : erreur lors de la réécriture asynchrone des métadonnées
[ 164.693323] Annulation du journal sur l’appareil nvme0n1p2-8.
[ 164.693329] Erreur EXT4-fs (périphérique nvme0n1p2) dans ext4_dirty_inode:6111 : échec d’E/S
[ 164.693329] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 243826688, écriture de page de synchronisation perdue
[ 164.69333 4] JBD2 : erreur d’E/S lors de la mise à jour du superbloc de journal pour nvme0n1p2-8.
[ 164.693334] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 164.693336] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 164.693340] Buffer Erreur d’E/S sur le dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 164.693341] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 164.693353] Erreur EXT4-fs (périphérique nvme0n1p2): ext4_journal_check_start:83 : comm rs:main Q:Reg : Journal abandonné détecté
[ 164.693364] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 164.693368] EXT4-fs (nvme0n1p2 ) : erreur d’E/S lors de l’écriture du superbloc
[ 164.693369] Erreur EXT4-fs (appareil nvme0n1p2) : ext4_journal_check_start:83 : comm mariadbd : journal interrompu détecté
[ 164.693370] EXT4-fs (nvme0n1p2) : remontage de la lecture du système de fichiers-only
[ 164.693378] Erreur d’E/S de tampon sur le dev nvme0n1p2, bloc logique 0, écriture de page de synchronisation perdue
[ 164.693380] EXT4-fs (nvme0n1p2) : erreur d’E/S lors de l’écriture du superbloc
[ 164.693455 ] EXT4-fs (nvme0n1p2): ext4_do_writepages: jbd2_start: 13262 pages, ino 55194123 ; err-30
[ 164.727715] Le processus 10715(apport) a RLIMIT_CORE défini sur 1
[ 164.727716] Abandon du cœur
[ 164.915069] Le processus 10732(apport) a RLIMIT_CORE défini sur 1
[ 164.915071] Abandon core
[ 164.947259] Le processus 10736(apport) a RLIMIT_CORE défini sur 1
[ 164.947261] Abandon du noyau
[ 164.981899] Le processus 10747(apport) a RLIMIT_CORE défini sur 1
I Have Je n’ai pas du tout vu ce comportement avec le SSD Inland TD510 PCIe 5.0 NVMe, mais encore une fois, ce lecteur est équipé d’un dissipateur thermique actif par défaut.
Après avoir corrigé les erreurs du système de fichiers EXT4 et attaché un dissipateur thermique NVMe passif au MP700, j’ai lancé 24 heures de benchmarks d’E/S exigeants avec MariaDB, PostgreSQL, FIO, ClickHouse et d’autres charges de travail et tout s’est déroulé sans problème…. Toujours assez chaud dans les années 80, mais jamais d’erreurs de système de fichiers ou de rapports de contrôleur NVMe dans le journal du noyau. Il sera cependant intéressant de voir si ce comportement se produit également sous Windows ou si une différence de pilote NVMe affecte la situation.
Dans tous les cas, je vous recommande d’attendre la mise à niveau vers le stockage grand public PCIe 5.0 NVMe jusqu’à ce qu’il existe des options plus convaincantes disponibles, plus rapides, plus fiables et que les prix aient commencé à mieux concurrencer PCIe 4.0 Tarification des disques NVMe. Si vous optez pour un SSD PCIe 5.0 NVMe dès maintenant, mais en tant que premier utilisateur, je vous recommande de vous assurer que vous disposez d’un refroidissement adéquat.
“Après avoir examiné attentivement les récents rapports de TechPowerUp et Phoronix, Phison Nous tenons à souligner le problème rencontré dans les avis sur les produits utilisant le nouveau contrôleur Phison PS5026-E26. Nous prenons ce problème au sérieux et nous nous engageons à le résoudre rapidement.
Nos équipes d’ingénieurs en micrologiciel ont déjà isolé le problème et pris les mesures nécessaires ajustements à la courbe d’accélération thermique dans les heures suivant le rapport. Cependant, le nouveau micrologiciel doit subir le processus de validation strict de Phison avant que nos partenaires puissent le publier aux clients. Soyez assuré que nos partenaires informeront les utilisateurs finaux dès que la mise à jour validée sera disponible.
Il est important de noter que tous les SSD E26 livrés sans dissipateur thermique sont destinés à être utilisés avec un dissipateur thermique. La plupart des cartes mères livrées avec PCIe Gen5 activé incluent également un refroidissement spécialement conçu pour les SSD Gen5. Nous proposons l’option « disque nu » pour permettre aux clients d’utiliser leurs produits de refroidissement existants.
Nous tenons à souligner notre engagement à fournir des produits et des solutions de haute qualité à nos clients et nous continuerons à travailler avec diligence pour garantir leur satisfaction. Merci pour votre patience et votre compréhension au cours de ce processus.”
Donc, cela devrait être résolu avec une mise à jour du micrologiciel. Maintenant, pour voir à quel point ces mises à jour du micrologiciel fonctionnent pour les utilisateurs de Linux… la gestion de la mise à jour du micrologiciel NVMe amorçable tandis que seuls quelques privilégiés font un effort supplémentaire avec la prise en charge de LVFS + Fwupd pour en faire un processus facile pour les utilisateurs de Linux.