当前位置: 首页 > news >正文

EMC PowerStore存储学习之一NVMe磁盘的命名规则

PowerStore的日志中经常会看到类似于/dev/nvme1n1的磁盘,在svc_diag list --show_drives中也可以看到类似这样的输出,如下图:

这里的Drives的显示都是 /dev/nvmeXnY的形式,那么这个磁盘命名规则怎么解读呢?

在Linux系统中,NVMe U.2设备(或其他NVMe设备)通过 /dev/nvmeXnY 的命名方式表示,用于标识和管理设备。这种命名方式反映了NVMe协议的控制器和命名空间(namespace)架构。以下是对 X 和 Y 的详细解释:

1. X - 控制器编号

  • 定义:X 表示NVMe控制器的编号,从 0 开始递增,例如 nvme0、nvme1 等。
  • 作用:每个NVMe设备(例如一块U.2 SSD)通常包含一个或多个控制器,控制器是负责与主机通信的硬件组件。Linux内核为每个检测到的NVMe控制器分配一个唯一的编号。
  • 如何理解
    • 如果系统中有多个NVMe设备(例如两块U.2 SSD),它们会被分配为 nvme0、nvme1 等。
    • 控制器编号是系统自动分配的,通常与设备的物理插槽或PCIe通道相关,但不一定与插槽的物理顺序严格对应。
    • 例如,/dev/nvme0 表示系统中的第一个NVMe控制器,/dev/nvme1 表示第二个控制器。
  • 实际例子
    • 一块U.2 NVMe SSD插入系统,系统检测到它的控制器,分配为 /dev/nvme0。
    • 如果再插入一块U.2 SSD,可能被分配为 /dev/nvme1。
  • 我的理解
    • 这个nvmeX不是slot的number,所以要注意,这个X不是扩展柜里面的slot的顺序号。
    • 这个控制器是NVMe硬盘上的控制器,不要理解为存储的控制器。一个NVMe U.2磁盘通常对应一个NVMe控制器,在Linux中表现为一个 /dev/nvmeX 设备(例如 /dev/nvme0)。

2. Y - 命名空间编号

  • 定义:Y 表示NVMe控制器的命名空间编号,从 1 开始递增,例如 n1、n2 等。
  • 作用:NVMe协议允许一个控制器管理多个命名空间(namespace),每个命名空间可以看作是控制器上的一个逻辑存储区域,类似于传统硬盘的分区,但更灵活。
  • 如何理解
    • 命名空间是NVMe设备提供的逻辑隔离机制,允许将一块物理SSD划分为多个独立的存储区域,每个区域有自己的容量、LBA(逻辑块地址)范围等。
    • 命名空间编号由设备本身定义,Linux内核根据设备报告的命名空间分配对应的 nY。
    • 例如,/dev/nvme0n1 表示第一个控制器(nvme0)上的第一个命名空间(n1),/dev/nvme0n2 表示同一个控制器上的第二个命名空间。
  • 实际例子
    • 一块U.2 NVMe SSD可能只有一个命名空间,命名为 /dev/nvme0n1。
    • 如果SSD配置了多个命名空间(常见于企业级设备),可能会有 /dev/nvme0n1、/dev/nvme0n2 等。
    • 不同控制器的命名空间是独立的,例如 /dev/nvme1n1 表示第二个控制器(nvme1)的第一个命名空间。

3. 命名空间和控制器的关系

  • 一对多关系:一个NVMe控制器(nvmeX)可以支持多个命名空间(nY),但一个命名空间只能属于一个控制器。
  • 用途
    • 命名空间可以用于隔离不同工作负载(例如,一个命名空间用于数据库,另一个用于日志)。
    • 企业级NVMe设备常利用多命名空间来支持虚拟化或多租户环境。
  • 查看方式
    • 使用 lsblk 或 nvme list 命令可以查看系统中NVMe设备的控制器和命名空间:
      $ lsblk

core@607MMF3-B:/ $ lsblk

NAME     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda        8:0    0 223.6G  0 disk

|-sda1     8:1    0   512M  0 part /boot

|-sda2     8:2    0     2M  0 part

|-sda3     8:3    0     3G  0 part /usr

|-sda4     8:4    0     3G  0 part

|-sda6     8:6    0   128M  0 part /usr/share/oem

|-sda7     8:7    0    64M  0 part

`-sda9     8:9    0 216.9G  0 part /

sdb        8:16   0 111.8G  0 disk

|-sdb1     8:17   0  1000M  0 part

|-sdb2     8:18   0     2G  0 part /var/lib/cycrcvycg

|-sdb3     8:19   0  1000M  0 part

|-sdb4     8:20   0  29.3G  0 part

`-sdb5     8:21   0  48.8G  0 part

nvme3n1  259:0    0   3.5T  0 disk

nvme2n1  259:1    0   3.5T  0 disk

nvme7n1  259:2    0   3.5T  0 disk

nvme5n1  259:3    0   7.9G  0 disk

nvme1n1  259:4    0   3.5T  0 disk

nvme6n1  259:5    0   3.5T  0 disk

nvme11n1 259:6    0   7.9G  0 disk

nvme4n1  259:8    0   3.5T  0 disk

nvme9n1  259:10   0   3.5T  0 disk

  • 使用 nvme 命令查看详细信息:
    $ nvme list

core@607MMF3-B:/ $ sudo nvme list

Node                  SN                   Model                                    Namespace Usage                      Format           FW Rev

--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------

/dev/nvme0n1          VXNA0NB07818         PB23F04T                                 1           3.84  TB /   3.84  TB    512   B +  8 B   GPJ99E5Q

/dev/nvme1n1          MVNA0RA01068         P033F04T                                 1           3.84  TB /   3.84  TB    512   B +  0 B   EPK98E5Q

/dev/nvme11n1         1A42F300D7F          MTC_8GB_B                                1           8.48  GB /   8.48  GB    512   B +  0 B   3.1.10.0

/dev/nvme2n1          MVNA0RA01086         P033F04T                                 1           3.84  TB /   3.84  TB    512   B +  0 B   EPK98E5Q

/dev/nvme3n1          VXNA0NB07011         PB23F04T                                 1           3.84  TB /   3.84  TB    512   B +  0 B   GPJ99E5Q

/dev/nvme4n1          VXNA0NB07781         PB23F04T                                 1           3.84  TB /   3.84  TB    512   B +  0 B   GPJ99E5Q

/dev/nvme5n1          1A50F300441          MTC_8GB_B                                1           8.48  GB /   8.48  GB    512   B +  0 B   3.1.10.0

/dev/nvme6n1          MVNA0RA01072         P033F04T                                 1           3.84  TB /   3.84  TB    512   B +  0 B   EPK98E5Q

/dev/nvme7n1          MVNA0RA01091         P033F04T                                 1           3.84  TB /   3.84  TB    512   B +  0 B   EPK98E5Q

/dev/nvme9n1          VXNA0NB07390         PB23F04T                                 1           3.84  TB /   3.84  TB    512   B +  0 B   GPJ99E5Q

4. 常见问题解答

  • 为什么没有 nvme0n0?
    • NVMe协议规定命名空间从 1 开始,因此不会有 n0。
  • 为什么有些设备有多个命名空间?
    • 企业级NVMe设备支持多命名空间,用于逻辑隔离或优化性能。例如,一个U.2 SSD可能为不同虚拟机分配独立的命名空间。
  • 如何确认设备命名?
    • 使用 nvme id-ctrl /dev/nvme0 查看控制器信息,或 nvme id-ns /dev/nvme0n1 查看命名空间信息。

core@607MMF3-B:/ $ sudo nvme id-ctrl /dev/nvme2

NVME Identify Controller:

vid       : 0x144d

ssvid     : 0x1120

sn        : MVNA0RA01086

mn        : P033F04T

fr        : EPK98E5Q

rab       : 8

ieee      : 002538

cmic      : 0x3

mdts      : 0

cntlid    : 0x41

ver       : 0x10300

rtd3r     : 0xd59f80

rtd3e     : 0xa7d8c0

oaes      : 0x300

ctratt    : 0

rrls      : 0

cntrltype : 0

fguid     :

crdt1     : 0

crdt2     : 0

crdt3     : 0

oacs      : 0x1f

acl       : 255

aerl      : 15

frmw      : 0x17

lpa       : 0xe

elpe      : 255

npss      : 3

avscc     : 0x1

apsta     : 0

wctemp    : 345

cctemp    : 358

mtfa      : 20

hmpre     : 0

hmmin     : 0

tnvmcap   : 3840755982336

unvmcap   : 0

rpmbs     : 0

edstt     : 2

dsto      : 1

fwug      : 255

kas       : 0

hctma     : 0

mntmt     : 0

mxtmt     : 0

sanicap   : 0x3

hmminds   : 0

hmmaxd    : 0

nsetidmax : 0

endgidmax : 0

anatt     : 0

anacap    : 0

anagrpmax : 0

nanagrpid : 0

pels      : 0

sqes      : 0x66

cqes      : 0x44

maxcmd    : 768

nn        : 32

oncs      : 0x7f

fuses     : 0

fna       : 0x4

vwc       : 0

awun      : 0

awupf     : 0

icsvscc     : 1

nwpc      : 0

acwu      : 0

sgls      : 0xf0002

mnan      : 0

subnqn    : nqn.1994-11.com.samsung:nvme:PM1733:2.5-inch:MVNA0RA01086

ioccsz    : 0

iorcsz    : 0

icdoff    : 0

fcatt     : 0

msdbd     : 0

ofcs      : 0

ps    0 : mp:25.00W operational enlat:180 exlat:180 rrt:0 rrl:0

          rwt:0 rwl:0 idle_power:7.00W active_power:18.00W

ps    1 : mp:21.00W operational enlat:180 exlat:180 rrt:0 rrl:0

          rwt:0 rwl:0 idle_power:7.00W active_power:18.00W

ps    2 : mp:18.00W operational enlat:180 exlat:180 rrt:1 rrl:1

          rwt:1 rwl:1 idle_power:7.00W active_power:18.00W

ps    3 : mp:14.00W operational enlat:180 exlat:180 rrt:2 rrl:2

          rwt:2 rwl:2 idle_power:7.00W active_power:14.00W

core@607MMF3-B:/ $ sudo nvme id-ns /dev/nvme2n1

NVME Identify Namespace 1:

nsze    : 0x1bf1f72b0

ncap    : 0x1bf1f72b0

nuse    : 0x1bf1f72b0

nsfeat  : 0

nlbaf   : 4

flbas   : 0

mc      : 0x3

dpc     : 0x17

dps     : 0

nmic    : 0x1

rescap  : 0xff

fpi     : 0x80

dlfeat  : 1

nawun   : 0

nawupf  : 0

nacwu   : 0

nabsn   : 0

nabo    : 0

nabspf  : 0

noiob   : 0

nvmcap  : 3840755982336

mssrl   : 0

mcl     : 0

msrc    : 0

anagrpid: 0

nsattr  : 0

nvmsetid: 0

endgid  : 0

nguid   : 204d563052a010860025384100000001

eui64   : 0025389a1100c7b9

lbaf  0 : ms:0   lbads:9  rp:0x1 (in use)

lbaf  1 : ms:8   lbads:9  rp:0x2

lbaf  2 : ms:0   lbads:12 rp:0

lbaf  3 : ms:8   lbads:12 rp:0x2

lbaf  4 : ms:64  lbads:12 rp:0x2

core@607MMF3-B:/ $

总结

  • X(如 nvme0、nvme1)是控制器编号,标识系统中唯一的NVMe控制器。
  • Y(如 n1、n2)是命名空间编号,标识控制器上的逻辑存储区域。
  • 这种命名方式清晰地反映了NVMe设备的层次结构,便于管理和操作,尤其在企业级存储环境中。

相关文章:

  • 预订接口优化:使用本地消息表保证订单生成、库存扣减的一致性
  • 程序员转行酒店用品客户经理
  • MySQL 中的游标(Cursor)
  • [计算机科学#8]:指令与程序的奥秘
  • c语言的常用关键字
  • WebRtc11:SDP详解
  • AE/PR模板 100个现代文字标题动态排版效果动画 Motion Titles
  • C++ unordered_set unordered_map
  • LearningFlow:大语言模型城市驾驶的自动化策略学习工作流程
  • 2023华为od统一考试B卷【二叉树中序遍历】
  • 5.2算法学习笔记(动态规划)
  • 文章七《深度学习调优与超参数优化》
  • 【东枫科技】AMD / Xilinx Alveo™ V80计算加速器卡
  • pip 常用命令及配置
  • SQL语句练习 自学SQL网 在查询中使用表达式 统计
  • 紫荆阁电玩平台环境搭建与系统运行实录(蒙特卡洛系列)
  • 从实列中学习linux shell9 如何确认 服务器反应迟钝是因为cpu还是 硬盘io 到底是那个程序引起的。cpu负载多高算高
  • python如何在深度学习框架目标检测算法使用Yolov8训练道路汽车漆面车漆缺陷数据集 建立基于YOLOv8道路汽车漆面缺陷(划痕)检测系统
  • Linux中的权限
  • spring-ai集成langfuse
  • 五一假期旅游大市党政领导靠前调度,重视解决游客反映的问题
  • 最火“五一”预订!小长假前两日多地接待游客量两位数增长,出境游订单井喷
  • AI世界的年轻人|与总书记交流过的“00后”,渴望紧握时代赋予的接力棒
  • 澳大利亚联邦选举投票正式开始
  • 奥斯卡新规:评委必须看完影片再投票;网友:以前不是啊?
  • 剑指3000亿产业规模,机器人“武林大会”背后的无锡“野望”