云主机

产品文档

云主机

设备名分配规则

磁盘挂载至实例后将作为实例的一个设备被系统识别,以设备名进行区分不同磁盘,随后经过分区、格式化、实例内挂载(Linux配置挂载点,Windows分配盘符)等操作来实现磁盘在系统内的正确配置和使用。

为了更便捷的管理实例所挂载的磁盘,京东云在控制台涉及磁盘的多项操作中提供设备名的显示,但是由于不同操作系统内核对应不同的存储设备驱动程序,因此磁盘挂载后会以不同的设备名形式被系统识别。Linux系统和Windows系统对设备的命名方式虽然不同,但是具有相同的顺序索引规则(见下表),因此在控制台各项操作中,设备名显示均以Linux系统的形式统一展现,Windows系统可根据映射规则自行推算。

控制台显示 Linux系统显示 Windows系统显示
系统盘设备名 /dev/vda /dev/vda 磁盘0
数据盘设备名 /dev/vdb - /dev/vdm /dev/vdb - /dev/vdm 磁盘1-磁盘12

同时,在对实例进行管理时,有诸多操作会对磁盘设备名的分配及显示有所影响。为了尽可能保证使用整机镜像(私有镜像包含实例挂载数据盘快照信息)创建的实例与原实例具有相同的数据盘挂载情况,我们强烈建议您在完成磁盘挂载后,尽量保证系统内设备名的连续。下面将针对创建实例时数据盘配置的几种不同操作场景,对Linux系统磁盘设备名分配和Windows系统盘符分配做详解说明。

背景知识

您在控制台看到的设备名是平台系统为保证挂载顺序所分配的名称,主要用于磁盘挂载时的相对顺序的控制,在不存在系统内设备名间断的情况下,可以保证控制台显示设备名与实例内部的真实设备名保持一致。如果由于卸载操作导致系统内设备名出现间断,则可能存在控制台显示与系统内显示不一致的情况。

在Linux系统中,由于所有挂载均需要单独配置,因此设备名是磁盘操作中主要关注的信息。Linux系统内部在每次启动时,会跟据磁盘挂载顺序依次不间断的识别设备并分配设备名,如果卸载磁盘导致系统内设备名出现空缺,则实例重启之后,系统会依照原有磁盘的相对顺序向前补位为其重新分配设备名,这将导致原挂载信息失效,如需维持原有挂载配置,需要重新在系统内进行挂载操作。

在Windows系统中,设备名(磁盘0-磁盘8)仅作为系统挂载前的索引,盘符(C-Z)才是磁盘在系统内真正的标识符,并且操作卸载后,重启系统并不会更改盘符,因此对于Windows系统来说,盘符的分配才是磁盘操作中主要关注的信息。Windows系统对完整挂载过的磁盘(初始化、分区且分配过盘符)都会在注册表中添加相关记录,而实例制作镜像和云硬盘制作快照的过程均会保留相关记录和信息,因此在将磁盘挂载至实例时,如果实例注册表的信息与磁盘信息匹配,则会尝试为其分配原盘符,原盘符被占用则会保持脱机状态等待用户手动联机分配盘符;如果实例注册表的信息与磁盘信息不匹配,则会直接为其在可用盘符内顺序分配。所有新盘或未操作过完整挂载流程的磁盘均需要手动联机并分配盘符。

详细说明

  • 创建实例时,基于私有镜像中预设数据盘信息创建的数据盘,设备名处会显示具体的名称,比如“/dev/vdb”,此类盘在下方说明中统称为 默认盘 ;其余新增数据盘,无论是空盘还是手动选择的基于快照创建的盘,设备名处均显示“自动分配设备名”,此类盘在下方说明中统称为 新增盘
  • Windows系统中,如果磁盘曾经操作过完整挂载流程(或创建磁盘所用快照的源盘曾操作过完整挂载流程),包括初始化、分区和分配盘符,下方说明中称这类盘为 有记录盘 ,否则称其为 无记录盘
  • 设备名“/dev/vdx”(x:a-i)以下简写为“vdx”。

规则详解

Linux系统

镜像包含预设数据盘信息

  • 设备名分配

    • 如镜像中所有磁盘(包括系统盘)对应的设备名连续,且基于此镜像创建实例时,不对默认盘配置做部分删减,则默认盘将被分配与显示设备名完全相同的设备名;在此基础上的新增盘,会在剩余可用设备名范围内由系统顺序分配。
    • 如镜像中磁盘所对应的设备名不连续,或基于镜像创建实例时,删减了部分默认配置,导致最终默认盘的设备名不连续。此情况下:
      • 如果不再添加新增盘,平台系统会依照当前显示设备名的相对顺序依次挂载默认盘,而实例内部会根据挂载顺序从b-i不间断的分配设备名;
      • 如果添加新增盘,平台系统会首先为新盘分配空缺处的设备名,当无空缺设备名可补时,顺序在可用设备名中分配,随后按设备名相对顺序进行全部磁盘的挂载,而实例内部同样会根据挂载挂载顺序从b-h不间断的分配设备名
  • 示例

    私有镜像中包含三条数据盘配置信息,快照B、C、D对应的设备名分别是vdb、vdc、vdd,基于此镜像创建实例时:

    • 未做任何默认盘修改,且添加了一块新增盘,则最终创建的四块数据盘在实例内的设备名分别为vdb(快照B)、vdc(快照C)、vdd(快照D)、vde(新增盘)。
    • 删除掉了vdb对应的默认盘,保留了vdc和vdd,且未添加其他新增盘,则最终创建的两块盘在实例内的设备名分别为vdb(快照C)、vdc(快照D)。
    • 删除掉了vdb和vdc对应的数据盘配置,保留了vdd,并且添加了一块新增盘,则最终创建的两块盘在实例内的设备名分别为vdb(新增盘)、vdc(快照D)。

镜像不包含数据盘预设信息

  • 设备名分配

    所有添加的数据盘均为新增盘,设备名由系统按照b-h的顺序不间断分配,实例内分配设备名与系统分配设备名保持一致

  • 示例

    手动添加了四块新增盘,则四块盘按照添加顺序设备名依次为vdb、vdc、vdd、vde,实例内所分配设备名与系统分配情况一致

Windows系统

镜像包含/不包含预设数据盘信息

  • 盘符分配

    基于镜像创建实例时,无论是否包含默认盘配置,或是否对默认盘配置进行删减,只要存在默认盘,其创建后均会自动联机并按原盘符分配,其余新增盘:

    • 如果是无记录盘,则需要进入实例手动联机并分配盘符。
    • 如果是有记录盘,且实例注册表中有挂载记录,则记录中原盘符未被占用时会自动联机并为其分配原盘符;记录中盘符被占用时会保持脱机状态,等待用户手动联机并为其分配盘符。
    • 如果是有记录盘,且实例注册表中没有挂载记录,则会在可用盘符中顺序为其分配盘符。
  • 示例

    私有镜像中包含三条数据盘配置信息,快照d、e、f对应的设备名分别是vdb、vdc、vdd,盘符分别为D、E、F,基于此镜像创建实例时:

    • 未做任何默认盘修改,则最终创建的三块数据盘的盘符分别为D(快照d)、E(快照e)、F(快照f)。
    • 删除掉了vdb对应的默认盘,且未添加其他新增盘,则最终创建的两块数据盘的盘符分别为E(快照e)、F(快照f)。
    • 删除掉了vdb、vdc对应的默认盘,并且添加了一块无记录盘,则默认盘盘符为F(快照f),新增盘需手动联机并分配盘符。
    • 删除掉了vdb、vdc对应的默认盘,并且添加了一块有记录盘,则默认盘盘符为F(快照f),此时对于新增盘:
      • 如果实例注册表中没有挂载信息,则需要手动联机并分配盘符。
      • 如果实例注册表中有挂载信息,且原盘符不是F,则会自动联机并为其分配原盘符。
      • 如果实例注册表中有挂载信息,且原盘符是F,则原盘符占用情况下会自动联机并为其分配盘符D。
更新时间:2019-05-29 15:38:56