Guten Tag.
Ich möchte die Community auf eine charakteristische Eigenschaft von Linux aufmerksam machen, wenn es um den Umgang mit mehreren NVMe SSDs in einem System geht. Dies ist besonders relevant für diejenigen, die Software-RAID-Arrays aus NVMe erstellen möchten.
Ich hoffe, dass die nachfolgenden Informationen Ihnen helfen, Ihre Daten zu schützen und lästige Fehler zu vermeiden.
Wir sind alle an die folgende Logik von Linux gewöhnt, wenn es um Blockgeräte geht:
Wenn ein 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, formatieren und fügen dann Partitionen wie /dev/sda1 zu den Arrays hinzu.
Wir sind alle an die Axiomatik gewöhnt, dass /dev/sda1 sich auf /dev/sda befindet. Und wenn eines Tages SMART anzeigt, dass /dev/sda fast ausgefallen ist, werden wir genau /dev/sda1 aus dem RAID-Array entfernen und ersetzen.
Es stellt sich heraus, dass diese Regel bei der Verwendung von NVMe-Namespaces nicht gilt. 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
Serial Number: S466NX0K72XX06M
Serial Number: S466NX0K72XX01A
Serial Number: S466NX0K43XX48W
Aufmerksame Leser werden an den Seriennummern feststellen, dass /dev/nvme1n1 tatsächlich auf /dev/nvme2 und umgekehrt angeordnet ist.
P.S.
Ich wünsche Ihnen, dass Sie nie die letzte funktionierende NVMe SSD aus dem RAID-Verbund löschen.
Quelle: habr.com
