LUN 对象
[从 Windows 8 和 Windows Server 2012 开始,虚拟磁盘服务 COM 接口被 Windows 存储管理 API取代。
LUN(逻辑单元号)对象为硬件提供程序创建的可寻址存储空间的逻辑单元建模,并由子系统显示。 每个 LUN 至少包含一个 LUN plex,后者又由一个或多个驱动器的盘区组成。
LUN 类型
VDS 支持五种 LUN 类型:简单、跨越、条带化、镜像和带区奇偶校验。 简单、跨屏和条带 LUN 是不可容错的;镜像和奇偶校验 LUN 是容错的。 本部分的其余部分介绍每个 VDS LUN 类型。
- 简单的 LUN 是一个非容错 LUN,它由单个驱动器中的单个连续驱动器范围组成。 连续区可以包含一系列块或多个链接在一起的块范围。
- 跨 LUN 是一个非容错 LUN,由来自多个驱动器的多个不和谐盘区组成。 数据将线性写入第一个驱动器上的每个盘区,直到填充所有第一个驱动器盘区,然后写入第二个驱动器上的每个盘区,依此推。 跨屏 LUN 提供在由各种大小的驱动器组成的子系统中有效使用驱动器空间。
- 条带 LUN 是一个非容错 LUN,由多个驱动器中的多个交错的连续盘区组成。 条带 LUN 使用 RAID-0 配置,使数据在参与驱动器上的盘区之间以循环方式“条带化”。 条带 LUN 最适合大小、型号和制造商的驱动器。
- 镜像 LUN 是容错 LUN,可通过将数据复制到多个 LUN plex 来提供灾难恢复。 镜像 LUN 中的每个 plex 都包含存储在原始 plex 上的数据的副本。 每个 plexes 都驻留在单独的驱动器上。 写入镜像 LUN 的所有数据都将同时写入其每个 plex。 如果其中一个参与驱动器发生故障,该驱动器上的 plex 将变得不可用,但系统将继续使用不受影响的 plex 或 plexes 运行。 镜像 LUN 可以具有任意数量的 plex。
- 使用奇偶校验 LUN 进行条带化是容错 LUN,通过间歇性地跨三个或多个驱动器对奇偶校验数据进行条带化,从而提供灾难恢复。 如果其中一个参与驱动器发生故障,可以从剩余数据和奇偶校验重新创建丢失的数据。
LUN 创建
VDS 支持四种模型,应用程序可以创建 LUN:显式定向、部分定向、自动磁化和特定于供应商的 LUN。 所有硬件提供程序都必须支持显式和部分定向的 LUN 创建,强烈建议支持自动创建 LUN。 (特定于供应商的 LUN 创建超出了本指南的范围。
显式定向 LUN 创建使调用方能够指定 LUN 的所有属性。 部分定向 LUN 创建使调用方只能指定那些特别感兴趣的属性,然后允许提供程序选择其余属性。 自动创建 LUN 涉及使调用方只需指定 LUN 类型和大小以及一组“自动磁提示”(LUN 属性的预定义首选项),然后允许提供程序自动创建 LUN。
LUN 掩码
VDS 支持为提供此功能的子系统取消屏蔽 LUN。 所有 LUN 都会浮出水面到运行提供程序的计算机。 LUN 取消屏蔽允许调用方将所选 LUN“取消屏蔽”到网络上的其他计算机。 如果将 LUN 取消屏蔽到计算机,则计算机有权访问 LUN。 未屏蔽 LUN 的计算机。
未屏蔽的 LUN 会将 IVdsLun 和 IVdsDisk 接口公开到本地主机。 可以使用 IVdsDisk 将 LUN 添加到软件提供程序包、创建和删除卷、分配驱动器号等。 有关对磁盘执行的作的详细信息,请参阅 磁盘对象。
将 LUN 取消屏蔽到目标计算机或从目标计算机掩码后,该计算机上的 LUN 可见性在执行总线重新扫描之前可能不会更改。 目标计算机上的 VDS 应用程序通过调用 IVdsService::Reenumerate来启动总线重新扫描。 总线重新扫描的启动由 VDS 应用程序而不是硬件提供程序负责。
LUN 多路径
支持多路径 I/O(MPIO)的硬件提供程序可以在 LUN 和本地主机之间的路径上设置负载均衡策略。 支持此功能的 LUN 向本地主机公开 IVdsLunMpio 接口。
使用 LUN
使用 IVdsSubSystem::CreateLun 方法创建新的 LUN 对象。 可以通过调用 QueryLuns 方法(IVdsSubSystem公开)来查询特定子系统显示的 LUN。 调用方可以通过从 QueryLuns返回的枚举中选择所需的 LUN 对象来获取指向特定 LUN 的指针。 使用 LUN 对象可以设置 LUN 状态;查询所有活动控制器、plexes 和自动提示;扩展和收缩 LUN;添加和删除 plexes;设置掩码;应用提示;并删除 LUN。
除了对象标识符、名称和序列号之外,LUN 对象属性还包括 LUN 类型、大小、状态、运行状况、转换状态和标志:未屏蔽列表;和重新生成优先级设置。
下表列出了相关的接口、枚举和结构。
类型 | 元素 |
---|---|
此对象始终公开的接口 | IVdsLun |
VDS 1.1 和 2.0 光纤通道提供程序中始终公开的接口 | IVdsLunControllerPorts |
此对象始终在 VDS 1.1 和 2.0 iSCSI 提供程序中公开的接口 | IVdsLunIscsi |
此对象可能公开的接口* |
IVdsMaintenance、IVdsLunMpio、IVdsLunNaming和 IVdsLunNumberWindows Server 2008, Windows Vista 和 Windows Server 2003:不支持IVdsLunNumber 接口。 |
关联的枚举 | VDS_LUN_FLAG 和 VDS_LUN_STATUS,以及 VDS_LUN_TYPE |
关联的结构 | VDS_LUN_INFORMATION、VDS_LUN_PROP和 VDS_LUN_NOTIFICATION |
* 请参阅 磁盘对象 了解其他接口(IVdsDisk),如果 LUN 作为本地主计算机上的磁盘取消屏蔽,则会公开该接口。