在 VMM 中为 iSCSI 目标服务器配置 SMI-S 提供程序

 

发布日期: 2016年3月

适用于: System Center 2012 SP1 - Virtual Machine Manager,System Center 2012 R2 Virtual Machine Manager

在 Windows Server 2012 中,Microsoft iSCSI 目标服务器是一种支持将服务器用作存储设备的服务器角色。 本主题提供有关 Microsoft iSCSI 目标服务器的 SMI-S 提供程序的信息。 这是由 Virtual Machine Manager (VMM) 用于管理 iSCSI 目标服务器的提供程序(从 System Center 2012 SP1 开始)。

根据所使用的软件版本,你可能需要首先在 iSCSI 目标服务器上安装此提供程序软件,然后才能开始在 VMM 中管理该服务器。 使用以下列表评估你的环境:

  • 通过 VMM 中的 System Center 2012 SP1,你可以管理运行 Windows Server 2012 的 iSCSI 目标服务器(如果首先在 iSCSI 目标服务器上安装必需的 SMI-S 提供程序)。 此提供程序包含在 VMM 中。 要安装此软件,请参阅本主题后面的准备由 VMM 管理的 iSCSI 目标服务器。

  • 通过 VMM 中的 System Center 2012 R2,你可以管理运行以下任何操作系统版本的 iSCSI 目标服务器:

    • 在 iSCSI 目标服务器上带有 Windows Server 2012:必须首先在 iSCSI 目标服务器上安装必需的 SMI-S 提供程序。 此提供程序包含在 VMM 中。 要安装此软件,请参阅本主题后面的准备由 VMM 管理的 iSCSI 目标服务器。

    • 在 iSCSI 目标服务器上(从 Windows Server 2012 R2 开始):你只需要安装 iSCSI 目标服务器角色。 (无需单独安装提供程序。) 有关安装服务器角色的详细信息,请参阅 Install or Uninstall Roles, Role Services, or Features(安装或卸载角色、角色服务或功能)

有关 iSCSI 目标服务器的详细信息,请参阅Introduction of iSCSI Target in Windows Server 2012(在 Windows Server 2012 中推出的 iSCSI 目标)

本主题包括以下部分:

  • 体系结构设计

  • SMI-S 提供程序中的已知问题

  • 提供程序详细信息

  • 准备由 VMM 管理的 iSCSI 目标服务器

  • 使用 VMM 通过 Windows PowerShell 配置 iSCSI 目标服务器

体系结构设计

SMI-S 提供程序采用“嵌入式”提供程序模型,在该模型中,提供程序安装在 iSCSI 目标服务器计算机上。 下图显示了 SMI-S 提供程序与其他组件的交互方式。 SMI-S 提供程序基于 WMI,并使用 iSCSI 目标 WMI 提供程序管理 iSCSI 目标服务器。

iSCSI

SMI-S 提供程序中的已知问题

此版本的 SMI-S 提供程序中存在以下已知问题:

  • iSCSI 目标服务器支持故障转移群集来提供高可用性 (HA)。 为了通过 SMI-S 提供程序进行管理,每个群集只能支持一个 iSCSI 目标服务器资源组。 此限制是 SMI-S 提供程序中的限制所导致的,该提供程序当前只能处理一个计算机对象。 如果同一群集节点上存在多个 iSCSI 目标资源组,SMI-S 提供程序将无法获取计算机上的准确对象视图。

  • 一台计算机上只能加载一个基于 WMI 的 SMI-S 提供程序。 当前存在两个基于 WMI 的提供程序,并且这两个提供程序都将受此问题影响:

    • iSCSI 目标服务器 SMI-S 提供程序

    • LSI MegaRAID SMI-S 提供程序

    为了避免此问题,你必须使用单独的计算机来承载每个 SMI-S 提供程序。

    此问题将影响以下各节中描述的两个方案。 第一个方案描述了安装在同一计算机上的两个 SMI-S 提供程序,并且两者都用于 VMM 管理。 第二个方案描述了安装在同一计算机上的两个 SMI-S 提供程序,并且只有其中一个提供程序用于 VMM 管理。 在这两个方案中,当两个基于 WMI 的 SMI-S 提供程序安装在一台 iSCSI 目标服务器计算机上时,存储管理服务只会发现其中一个提供程序。

用于 VMM 管理的两个提供程序

如下图所示,两个 SMI-S 提供程序安装在同一计算机上,每个提供程序都针对 VMM 向存储管理服务注册。 由于存储管理服务的已知问题,将只会发现其中一个提供程序。

iSCSI

用于不同存储管理的两个提供程序

两个基于 WMI 的 SMI-S 提供程序安装在同一计算机上。 一个 SMI-S 提供程序用于 VMM 管理,另一个第三方 SMI-S 提供程序用于文件服务器存储管理。 由于存储管理服务中的已知问题,VMM 和文件服务存储管理都只发现一个提供程序,而且该提供程序可能不是应用程序的预期提供程序。

iSCSI

提供程序详细信息

如前面的关系图中所示,SMI-S 提供程序基于 WMI,并将信息从 iSCSI 目标服务传递到 VMM 服务器上的存储管理服务。 向 VMM 注册后,将发送一个完全发现请求,以从 SMI-S 提供程序中检索所有对象及其映射。

在 iSCSI 目标服务器的故障转移群集中,你必须使用 iSCSI 目标资源组(也称为客户端访问点)的网络名称或 IP 地址来注册存储设备。 通过这种方法,无论哪个节点收到故障转移,网络名称或 IP 地址都会保持相同。VMM 可以连接到在故障转移资源组节点上运行的 SMI-S 提供程序。 故障转移事件之后,你必须使用 VMM 执行完全发现。

对象映射

  1. MaskingSet 映射到 iSCSI 目标对象 — 默认情况下,MaskingSet 对象的易记名称使用前缀字符串“SPC:”+ 16 位随机数。 我们建议在创建 MaskingSet 对象时使用易记名称。VMM 使用虚拟化服务器名称或群集名称作为易记名称。 SMI-S 提供程序将使用易记名称,此名称也将成为 iSCSI 目标服务器的 WT_Host 对象的“描述”属性。

  2. StorageVolume 映射到 WT_Disk,即虚拟硬盘 (VHD)。 用户使用 VMM 创建 iSCSI 磁盘时,SMI-S 提供程序使用易记名称作为 VHD 名称。 如果虚拟磁盘在 SMI-S 发现过程中已存在,则提供程序将使用其描述作为易记名称。 如果 VHD 已存在但不具有描述字符串,即描述字符串为空或 NULL,则 VHD 易记名称使用前缀字符串“VirtualDiskIndex:”+ WTD(索引的整数)。

  3. ConcretePool 映射到 WT_Volume — 为 SMI-S 提供程序显示的易记名称为:“iSCSITarget:SubsystemName”+ 第一个装入点字符串。 例如,装入点字符串为“C:”,则其名称为“iSCSITarget:SubsystemName:C:”。 存在一个单一根池,并且其名称固定为“MS iSCSITarget Primordial”。

SMI-S 安装

下面的示例演示如何安装 SMI-S 提供程序。

iSCSI

上图显示了两台计算机:一台计算机用于 VMM 管理服务器,一台计算机用于运行 iSCSI 目标服务器。VMM 管理服务器必须在域中。 iSCSI 目标服务器可位于域或工作组中。

安装 VMM

VMM 具有特定的软件要求(例如对 Microsoft.NET Framework 的要求)。 有关详细信息,请参阅系统要求:System Center 2012 和 System Center 2012 SP1 中的 VMM 管理服务器System Requirements for System Center 2012 R2(System Center 2012 R2 的系统要求)。 基于 Microsoft 标准的存储管理服务是在 VMM 安装过程中启用的。

准备由 VMM 管理的 iSCSI 目标服务器

可通过执行以下步骤来准备由 VMM 管理的 iSCSI 目标服务器:

  1. 安装 iSCSI 目标服务器角色。 执行此操作的一种方法是使用 Windows PowerShell 命令 Install-WindowsFeature FS-iSCSITarget-Server。 iSCSI 目标服务器包括在 Windows Server 2012 及之后的服务器操作系统中。 有关使用 Windows PowerShell 安装角色或功能的详细信息,请参阅 Get-windowsfeatureInstall-windowsfeature

  2. 对于运行 Windows Server 2012 的 iSCSI 目标服务器,继续执行下一步。 否则,跳过此过程的其余部分(例如,对于运行 Windows Server 2012 R2 的服务器)。

  3. 对于运行 Windows Server 2012 的服务器,安装不早于 Windows 8 和 Windows Server 2012 累积更新:2012 年 11 月(Microsoft 知识库文章 2770917)的更新汇总。 更新汇总中的其中一个更新包含对 iSCSI 目标服务器的与 WMI 相关的更改,可提高 VMM 发现程序性能。

  4. 如果 iSCSI 目标服务器运行的是 Windows Server 2012,则必须按以下方式安装 SMI-S 提供程序:

    1. 在下列位置之一中找到安装程序文件:

      • 在以下位置中的 VMM 安装介质上:

        \amd64\Setup\msi\iSCSITargetSMISProvider.msi

      • 在以下位置中的 VMM 服务器上:

        \Program Files\Microsoft System Center 2012\Virtual Machine Manager\Setup\Msi\iSCSITargetProv\iSCSITargetSMISProvider.msi

    2. 在 iSCSI 目标服务器上,运行 .msi 文件以启动 SMI-S 提供程序安装向导。

    3. 完成此向导以安装提供程序。

使用 VMM 通过 Windows PowerShell 配置 iSCSI 目标服务器

可以使用 VMM 通过 Windows PowerShell 配置 iSCSI 目标服务器。 本节列出了一些常见的任务,以及你可以对这些任务使用的 Windows PowerShell 命令示例。 SMI-S 提供程序通过 VMM 支持所有管理任务。

要打开 VMM PowerShell 界面,请使用 Windows PowerShell 菜单,如下图中所示。

iSCSI

添加存储提供程序

按如下方式获取基于用户名和密码的 iSCSI 目标服务器本地管理凭据:

$Cred = Get-Credential

请注意,作为“本地管理员”组成员的任何帐户都已足够。

按如下方式在 VMM 中创建运行方式帐户:

$Runas = New-SCRunAsAccount -Name "iSCSIRunas" -Credential $Cred

按如下方式添加存储提供程序:

Add-SCStorageProvider -Name "Microsoft iSCSI Target Provider" -RunAsAccount $Runas -ComputerName "<computername>" -AddSmisWmiProvider

查看存储属性

按如下方式查看存储阵列属性:

$array = Get-SCStorageArray -Name “<computername>”

按如下方式查看可用存储池:

$array.StoragePools

为 VMM 管理添加 iSCSI 目标服务器中的池

按如下方式获取要添加的特定存储池:

$pool = Get-SCStoragePool -Name "MS iSCSITarget Concrete: D:"

按如下方式创建存储分类(如果不存在):

$class = New-SCStorageClassification -Name “gold”

按如下方式将存储池添加到 VMM:

Set-SCStorageArray -AddStoragePoolToManagement $pool -StorageArray $pool.StorageArray -StorageClassification $class

按如下方式将存储池分配给虚拟化服务器组:

Set-SCStoragePool -StoragePool $pool -AddVMHostGroup (Get-SCVMHostGroup -Name "All Hosts")

创建一个 LUN

按如下方式创建 iSCSI 逻辑单元号 (LUN):

$LUN = New-SCStorageLogicalUnit -Name "iSCSI1" -StoragePool $pool -DiskSizeMB 1000

按如下方式将 LUN 指派给虚拟化服务器组:

Set-SCStorageLogicalUnit -StorageLogicalUnit $LUN -VMHostGroup (Get-SCVMHostGroup -Name "All Hosts")

按如下方式将 LUN 指派给主机组:

$host = Get-SCVMhost -ComputerName <host name>

按如下方式将主机添加到虚拟化服务器组:

Register-SCStorageLogicalUnit -StorageLogicalUnit $LUN -VMHost $host

清理任务

按如下方式删除 LUN:

Remove-SCStorageLogicalUnit -StorageLogicalUnit $LUN

按如下方式删除存储提供程序:

Remove-SCStorageProvider -StorageProvider (Get-SCStorageProvider -Name "Microsoft iSCSI Target Provider")

结论

本文仅演示了一些你可以使用 SMI-S 提供程序通过 VMM 执行的任务。 有关你可以通过 SMI-S 提供程序用于管理存储的其他 Windows PowerShell cmdlet 的信息,请参阅 Cmdlet Reference for Virtual Machine Manager in System Center 2012 R2(System Center 2012 R2 中的 Virtual Machine Manager 的 Cmdlet 参考)

请参阅

在 VMM 中配置存储