查看块存储序列号

序列号特性可以用于在操作系统内为块存储(包括云盘、弹性临时盘及本地盘)提供唯一身份标识,从而达到识别和区分不同块存储的目的,同时您可通过块存储的序列号可以进一步确定块存储ID。本文介绍如何在Linux和Windows操作系统中查看块存储的序列号以及如何通过块存储的序列号确认块存储设备的ID。

使用限制

序列号特性使用限制说明:

  • 仅支持2020年06月10日及之后新创建的块存储,之前创建的块存储不具有该特性。

  • 仅支持在I/O优化实例上使用该特性。

查看块存储序列号

Linux系统

  1. 远程连接ECS实例。

    关于连接方式的介绍,请参见连接实例

  2. 使用sudo fdisk -lu命令查询ECS实例中块存储的设备名。

    截屏2024-11-28 10

    以上示例表示,该实例有两块块存储设备,系统盘的设备名为/dev/vda,数据盘的设备名为/dev/vdb

  3. 明确块存储设备是否通过NVMe协议挂载。

    • 非NVMe协议挂载的块存储设备名为/dev/vd[a-z],例如/dev/vdb/dev/vdc/dev/vdd等。

    • 通过NVMe协议挂载的块存储设备名为/dev/nvmeXn1,例如/dev/nvme0n1/dev/nvme1n1/dev/nvme2n1,以此类推。关于支持NVMe协议的云盘的更多信息,请参见NVMe协议概述

  4. 查询块存储设备序列号。

    • 非NVMe协议挂载的块存储设备,使用以下命令获取块存储设备的序列号。

      udevadm info --query=all --name=块存储设备名 | grep ID_SERIAL

      以查询/dev/vda设备名为例,示例如下所示,ID_SERIAL即为查询的序列号,即/dev/vda的序列号为bp1d4foh3ef8bntl****。

      [ecs-user@ecs ~]$ udevadm info --query=all --name=/dev/vda | grep ID_SERIAL
      E: ID_SERIAL=bp1d4foh3ef8bntl****

      若udevadm无法获取,您也可以使用以下命令获取非NVMe协议挂载的块存储设备的序列号。

      sudo lsblk --output=NAME,SERIAL | grep 块存储设备名

      以查询/dev/vdb设备为例,示例如下所示,即/dev/vdb的序列号为bp1eu6cpm9msq70b****。

      [ecs-user@ecs ~]$ sudo lsblk --output=NAME,SERIAL | grep vdb
      vdb    bp1eu6cpm9msq70b****
    • 通过NVMe协议挂载的块存储设备,使用以下命令获取块存储设备的序列号。

      1. 运行以下命令,安装nvme-cli工具。 示例如下,请根据不同的系统选择指令。

        Alibaba Cloud Linux 2/3版本、CentOS 6及以上版本

        重要

        由于CentOS 6和CentOS 8结束生命周期(EOL),所以如果您使用的是CentOS 6或者CentOS 8系统的ECS实例,请先切换源地址。具体操作,请参见CentOS 6 EOL如何切换源?CentOS 8 EOL如何切换源?

        sudo yum install nvme-cli -y

        Debian 9及以上版本、Ubuntu14及以上版本

        重要

        由于Debain9和Debain10结束生命周期(EOL),所以如果您使用的是Debain9和Debain10系统的ECS实例,请先切换源地址。具体操作,请参见Debian 9/10 EOL如何切换源?

        sudo apt-get update
        sudo apt-get install nvme-cli -y
      2. 执行以下命令,获取NVMe块存储设备的序列号。

        sudo nvme id-ctrl 块存储设备名 |grep "sn"

        以查询/dev/nvme1n1为例,示例如下所示,sn即为查询的序列号,即/dev/nvme1n1的序列号为bp1bmed6djhiibh*****。

        [ecs-user@ecs ~]$ sudo nvme id-ctrl /dev/nvme1n1 |grep "sn"
        
        sn        : bp1bmed6djhiibh*****

Windows系统

  • 在Windows Server 2012及以上版本操作系统中查看块存储的序列号。

    1. 远程连接ECS实例。

      关于连接方式的介绍,请参见连接实例

    2. 打开Windows PowerShell工具。

      开始菜单旁的搜索栏中,输入PowerShell,然后单击Windows PowerShell

    3. 使用以下命令查看逻辑卷对应的块存储。

      Get-CimInstance -ClassName Win32_LogicalDiskToPartition |select Antecedent, Dependent |fl

      查看逻辑卷对应的Disk Number。示例如下所示,表示盘C对应的Disk Number为0,盘D对应的Disk Number为1。

      PS C:\Users\Administrator> Get-CimInstance -ClassName Win32_LogicalDiskToPartition |select Antecedent, Dependent |fl
      
      Antecedent : Win32_DiskPartition (DeviceID = "Disk #0, Partition #0")
      Dependent  : Win32_LogicalDisk (DeviceID = "C:")
      
      Antecedent : Win32_DiskPartition (DeviceID = "Disk #1, Partition #0")
      Dependent  : Win32_LogicalDisk (DeviceID = "D:")
    4. 使用以下命令判断块存储设备是否通过NVMe协议挂载并获取块存储序列号。

      Get-Disk |select Number, SerialNumber, BusType
      • BusType非NVMe,表示为非NVMe协议挂载的块存储设备,以查询Disk #1为例,示例如下所示,即Disk #1的序列号为bp14dzwwr539hzqi****。

        PS C:\Users\Administrator> Get-Disk |select Number, SerialNumber, BusType
        
        Number SerialNumber         BusType
        ------ ------------         ------- 
             1 bp14dzwwr539hzqi**** SCSI   
             0 bp16htuqeqnvlee8**** SCSI   
      • BusType为NVMe,表示为通过NVMe协议挂载的块存储设备,以查询Disk #1为例,示例如下所示,Disk #1的序列号应为bp1heipctzsr7bhh****。

        PS C:\Users\Administrator> Get-Disk |select Number, SerialNumber
        
        Number SerialNumber                   BusType
        ------ ------------                   -------
             1 bp1heipctzsr7bhh****_00000001. NVMe
             0 bp16q98m9p2tssdt****_00000001. NVMe
        说明

        对于通过NVMe协议挂载的块存储设备,查询得到的信息由serial number和namespace ID(00000001.)组成。

  • 在Windows Server 2012以下版本操作系统中查看块存储序列号。

    1. 远程连接ECS实例。

      关于连接方式的介绍,请参见连接实例

    2. 打开Windows PowerShell工具。

      开始菜单的搜索栏中,输入PowerShell,然后单击Windows PowerShell

    3. 使用以下命令查看逻辑卷对应的块存储。

      Get-WmiObject -Class Win32_LogicalDiskToPartition |select Antecedent, Dependent |fl

      查看逻辑卷对应的Disk Number。示例如下所示,表示盘C对应的Disk Number为0,盘D对应的Disk Number为1。

      PS C:\Users\Administrator> Get-WmiObject -Class Win32_LogicalDiskToPartition |select Antecedent, Dependent |fl
      
      Antecedent : \\ecs\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
      Dependent  : \\ecs\root\cimv2:Win32_LogicalDisk.DeviceID="C:"
      
      
      Antecedent : \\ecs\root\cimv2:Win32_DiskPartition.DeviceID="Disk #1, Partition #0"
      Dependent  : \\ecs\root\cimv2:Win32_LogicalDisk.DeviceID="D:"
    4. 使用以下命令获取块存储序列号。

      Get-WmiObject -Class Win32_PhysicalMedia |select Tag, Serialnumber

      以查询Disk #0为例,示例如下所示,即Disk #0的序列号应为bp1bet4g35opq6vq****。

      PS C:\Users\Administrator> Get-WmiObject -Class Win32_PhysicalMedia |select Tag, Serialnumber
      DeviceID           Serialnumber
      --------           ------------    
      \\.\PHYSICALDRIVE0 bp1bet4g35opq6vq****

通过块存储序列号确认块存储ID

获取块存储序列号后,您可以根据块存储序列号与块存储ID的对应关系(块存储ID = d-{块存储序列号}),在控制台找到对应的块存储设备。

例如,您通过本文查询到的块存储序列号为bp1gks8z0fh3m1z9****,则在控制台显示的块存储ID为d-bp1gks8z0fh3m1z9****

image.png