God dag.
Jag ville uppmärksamma samhället på en karakteristisk egenskap hos Linux när jag arbetar med flera NVMe SSD:er i ett system. Det kommer att vara särskilt relevant för dem som gillar att göra mjukvaru-RAID-arrayer från NVMe.
Jag hoppas att informationen nedan kommer att hjälpa till att skydda dina data och eliminera irriterande fel.
Vi är alla vana vid följande Linux-logik när vi arbetar med blockenheter:
Om enheten heter /dev/sda kommer partitionerna på den att vara /dev/sda1, /dev/sda2, etc.
För att se SMART-attribut använder vi något som smartctl -a /dev/sda, och formaterar det och lägger till partitioner till arrayerna, som /dev/sda1.
Vi är alla vana vid axiomet att /dev/sda1 finns på /dev/sda. Och om SMART en dag visar att /dev/sda nästan är död, är det /dev/sda1 som vi kommer att kasta ut från RAID-arrayen för ersättning.
Det visar sig att den här regeln inte fungerar när man arbetar med NVMe-namnområden. Bevis:
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
En skarpsinnig läsare av serienummerjämförelsen kommer att märka att /dev/nvme1n1 faktiskt finns på /dev/nvme2 och vice versa.
P.S.
Jag önskar att du aldrig tar bort den sista levande NVMe SSD:n från RAID-arrayen.
Källa: will.com