Linux 上的 NVMe 设置

今天好。

我想让社区关注 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 几乎失效,我们将从 RAID 阵列中扔掉 /dev/sda1 进行替换。

事实证明,此规则在使用 NVMe 命名空间时不起作用。 证明:

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 上,反之亦然。

RS

我希望你永远不要从 RAID 阵列中删除最后一个活着的 NVMe SSD。

来源: habr.com

添加评论