在 Windows Server 中添加对八个以上的 LUN 的支持

本文介绍 Windows Server 产品中对大量逻辑单元号的支持 (LUN) 。

重要

本文包含有关如何修改注册表的信息。 修改注册表之前,一定要先进行备份。 并且一定要知道在发生问题时如何还原注册表。 有关如何备份、还原和修改注册表的详细信息,请参阅 高级用户的 Windows 注册表信息

适用于:Windows Server 2012 R2、Windows Server 2016
原始 KB 编号: 310072

摘要

本文介绍 Windows Server 产品中对大量逻辑单元号的支持 (LUN) 。 配置具有 8 个以上的 LUN 的服务器时,必须让硬件供应商参与规划和配置。 可以通过几种不同的方法实现所需的配置:硬件供应商最有能力提供必要的信息。 本文并非包罗万象,因为硬件供应商可以使用各种实现。 请与硬件制造商联系,以确定硬件是否以及如何支持 8 个以上的 LUN。

Windows Server 2008 和 Windows Server 2008 R2 最高支持:

  • 每个适配器八个总线
  • 每个总线 128 个目标 ID
  • 每个目标 ID 255 LUN

Windows Server 2012及更高版本的 Windows 支持,最高支持:

  • 每个适配器 255 条总线
  • 每个总线 128 个目标 ID
  • 每个目标 ID 255 LUN

更多信息

警告

如果使用注册表编辑器或使用其他方法错误地修改了注册表,则可能会发生严重问题。 这些问题可能需要重新安装操作系统。 Microsoft 不能保证可以解决这些问题。 修改注册表的风险由您自行承担。

本文中使用的术语

  • 主机总线适配器 (HBA) :这是连接到存储设备的控制器。 它可能是 SCSI 或光纤控制器,因为这两种拓扑都可以支持 8 个以上的 LUN。
  • 存储设备:这是 HBA 附加到的数组中的控制器。 这是控制驱动器的设备。
  • 大型 LUN:这是支持 8 个以上 LUN 的做法的常用术语。

Windows Server 支持大型 LUN,但启用它的方法取决于硬件实现和驱动程序。 如果存储设备在其标准查询数据中报告 HiSupport 位,则 Windows 会自动启用大型 LUN,而无需任何手动注册表项。 请联系硬件供应商,以确定存储设备是否报告 HiSupport 位。 硬件驱动程序还可以在其安装例程期间启用大型 LUN 支持。

如果硬件未报告 HiSupport 位,或驱动程序未启用大型 LUN 支持,则需要手动注册表项。 仅当存储设备支持 SCSI REPORT LUNS 命令时,此功能才有效。 请注意,编辑注册表以启用大型 LUN 需要详细了解设备的硬件 ID 和注册表项;这是最不首选的方法。 有关其他信息,请联系硬件供应商。 按照以下步骤配置所需的注册表项:

  1. 查找存储设备的硬件 ID。 若要查找硬件 ID,请执行以下操作:

    1. 启动 Regedit.exe,然后找到并单击以下位置: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI
    2. 列出了系统枚举的磁盘和存储设备。 要启用 LargeLU 的存储设备应显示在从磁盘&Ven_ 开始的列表中。 磁盘&Ven_ 文本后应可识别存储设备的名称。
    3. 若要查找正确存储设备的硬件 ID,请打开不同的磁盘&Ven_ 键以显示存储设备的不同实例。 每个实例下方会显示一个标有 FriendlyName 的值,其中右侧有说明。
    4. 找到存储设备后,双击“hardwareID”获取其中一个实例名称。 这通常列在 FriendlyName 值下。
    5. 值数据列出了存储设备的硬件 ID。 通常,会列出多个硬件 ID。 仅复制其中一个硬件 ID。 请确保仅将“SCSI\”后面的值部分复制到剪贴板。

    注意

    同一设备可能有多个硬件 ID。 出现这种情况的原因是,对于同一设备的不同固件修订版,可能会以不同的方式检测设备。 可能需要在以下步骤中尝试每个不同的硬件 ID。 如果对此有任何疑问,请联系存储设备硬件制造商。

  2. 使用前面步骤中的硬件 ID,按照后续步骤为相应的存储设备启用大型 LUN 支持:

    1. 找到并单击注册表中的以下项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ScsiPort\SpecialTargetList

    2. 在“编辑”菜单上指向“新建”,然后单击“项”

    3. 将创建名为 “新建密钥 #1”的新密钥 。 右键单击“ 新建密钥 #1”,然后单击“ 粘贴 ”粘贴之前复制的硬件 ID。

      注意

      右键单击“ 新建密钥#1 ”还会显示“重命名”命令,如果“新建密钥#1”不处于正确状态,可以使用该命令再次尝试粘贴数据。

    4. 创建新密钥后,创建名为 LargeLuns 且值为 1 的新 DWORD 值。

      注意

      “LargeLuns”是复数形式。

  3. 重新启动计算机。

手动启用大型 LUN 支持所涉及的问题

启用大型 LUN 支持后,可能会出现重复磁盘。 如果 HBA 驱动程序以专有方式启用大型 LUN 支持,并结合手动注册表项,则可能会出现这种情况。 如果同时启用了 Windows LargeLuns 功能和 HBA 的 LargeLuns 功能,则会出现此问题。

如果逻辑单元 0 不存在,则无法将 REPORT LUNS 命令发送到目标设备。 Windows 仅枚举八个逻辑单元,即使磁盘阵列中存在更多单元。 若要支持大型配置,需要最小化确定大小配置所需的时间。 由于某些系统上的逻辑单元数可能高达 255, (0 - 254) ,因此可能需要花费大量时间将查询命令发送到不存在的逻辑单元。 请注意,从存储返回的任何 LUN 编号都应在 0 - 254 的范围内。

Windows 操作系统无法识别 LUN 编号大于 254 的任何 LUN。 请咨询硬件制造商,了解应用于特定硬件的不同参数。

即使 Windows 可以访问大型 LUN,也可能需要考虑其他环境变量。

SpecialTargetList 键的其他参数

对于 Windows Server,可以在 SpecialTargetList 键下使用多个附加参数。 具体包括:

  • SparseLun - 允许不连续的 LUN 列表。
  • OneLun - 仅扫描 LUN 零。
  • LargeLuns - 设备支持 7 个以上的 LUN。
  • SetLunInCdb - 设备需要发送的 CDB 中的 LUN。
  • NonStandardVPD - 设备支持 VPD 0x83但不支持0x80。
  • BinarySN - 设备返回二进制序列号。

这些键按其列出顺序进行检查;每个级别的信息在逻辑上都与上一个级别的信息“OR'ed”。