Probleme mit NVMe unter Linux

Guten Tag.

Ich möchte die Community auf eine charakteristische Eigenschaft von Linux hinweisen, wenn mehrere NVMe-SSDs in einem System verwendet werden. Dies ist besonders relevant für diejenigen, die gerne Software-RAID-Arrays aus NVMe erstellen.

Ich hoffe, dass die nachfolgend bereitgestellten Informationen Ihnen helfen, Ihre Daten zu schützen und unangenehme Fehler zu vermeiden.

Wir sind alle an die folgende Logik von Linux bei der Arbeit mit Blockgeräten gewöhnt:
Wenn das Gerät als /dev/sda bezeichnet wird, sind die Partitionen darauf /dev/sda1, /dev/sda2 usw.
Um die SMART-Attribute anzuzeigen, verwenden wir etwas wie smartctl -a /dev/sda, und formatieren und fügen dann die Partitionen, wie zum Beispiel /dev/sda1, in die Arrays ein.

Wir sind alle an die Axiomatik gewöhnt, dass /dev/sda1 auf /dev/sda liegt. Und wenn eines Tages SMART anzeigt, dass /dev/sda fast tot ist, werden wir gerade /dev/sda1 aus dem RAID-Array zur Ersatzentfernung herausnehmen.

Es stellt sich heraus, dass diese Regel nicht funktioniert, wenn man mit NVMe-Namespaces arbeitet. Beweis:

nvme list && ( smartctl -a /dev/nvme0 && smartctl -a /dev/nvme1 && smartctl -a /dev/nvme2 ) | grep Serial
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     S466NX0K72XX06M      Samsung SSD 970 EVO 500GB                1          96.92  GB / 500.11  GB    512   B +  0 B   1B2QEXE7
/dev/nvme1n1     S466NX0K43XX48W      Samsung SSD 970 EVO 500GB                1          91.00  GB / 500.11  GB    512   B +  0 B   1B2QEXE7
/dev/nvme2n1     S466NX0K72XX01A      Samsung SSD 970 EVO 500GB                1           0.00   B / 500.11  GB    512   B +  0 B   1B2QEXE7
Seriennummer:                      S466NX0K72XX06M
Seriennummer:                      S466NX0K72XX01A
Seriennummer:                      S466NX0K43XX48W

Achtsame Leser werden anhand des Vergleichs der Seriennummern bemerken, dass /dev/nvme1n1 tatsächlich auf /dev/nvme2 liegt und umgekehrt.

P.S.

Ich wünsche Ihnen, dass Sie niemals die letzte funktionierende NVMe-SSD aus dem RAID-Array entfernen müssen.

Quelle: habr.com

60GB SSD 8Gb DDR4