Доброго вам дня.
Хотів звернути увагу спільноти на характерну особливість Linux під час роботи з кількома NVMe SSD в одній системі. Особливо актуально буде для тих, хто любить робити з NVMe програмні RAID масиви.
Сподіваюся, що інформація наведена нижче допоможе вберегти ваші дані та позбавить прикрих помилок.
Всі ми звикли до наступної логіки Linux під час роботи з блоковими пристроями:
Якщо пристрій називається /dev/sda, то розділи на ньому будуть /dev/sda1, /dev/sda2, і т.д.
Для перегляду SMART атрибутів ми використовуємо щось на зразок smartctl -a /dev/sda, а форматуємо, і до масивів додаємо вже розділи, на кшталт /dev/sda1.
Всі ми звикли до аксіоми, що /dev/sda1 розміщується на /dev/sda. І, якщо в один день SMART покаже що /dev/sda майже здох, саме /dev/sda1 ми викидатимемо з RAID масиву на заміну.
Виявляється, при роботі з NVMe Namespaces це правило не працює. Пруф:
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
Уважний читач у порівнянні серійних номерів зауважить, що /dev/nvme1n1 насправді розташовується на /dev/nvme2, і навпаки.
Р.S.
Бажаю вам ніколи не видаляти з RAID масиву останній живий NVMe SSD.
Джерело: habr.com