规划实验室

当您准备在测试实验室中广泛使用 Lab Management 时,可能会考虑以下几个问题:

  • 我需要多少物理服务器?

  • 我应该购买哪种类型的服务器?

  • 我需要多大的存储容量?

  • 是否可将 SAN 用于存储?

  • 是否可以在一台功能强大的计算机上安装所有内容?

  • 如何建立独立实验室?

本主题介绍了有关对使用 Visual Studio 实验室管理工具版时需要的物理服务器、虚拟机 (VM) 和控制器的数量和类型进行评估的一般准则。 通常,服务器数量没有每台服务器的容量重要。 例如,与使用单核处理器的服务器相比,使用双核或四核处理器的服务器将能够支持更多 VM。 同样,与只有 8GB RAM 的服务器相比,具有 32 GB RAM 的服务器可以同时承载更多 VM。

容量规划

以下各节包含的准则可帮助您为虚拟测试实验室提供足够容量。 这些准则表示为您在获取或配置硬件时或是安装和配置所需软件时应执行的操作(应该)和不应执行的操作(不应该)。

规划 Team Foundation Server

不应该

  • **在一台计算机中安装所有内容。**仅当您将一台计算机仅用于演示或概念证明之用时,才应在一台计算机中安装所有组件。

  • **如果您的 Team Foundation Server 实例使用多台服务器来运行逻辑应用层,并且您将使用 Visual Studio 的实验室管理工具版功能,请将 NetworkService 帐户用作 Team Foundation Server 的服务帐户。**使用 NetworkService 帐户需要以后执行更多手动工作以维护虚拟环境的物理主机计算机。 需要这一额外工作是因为,必须将每台新应用层计算机的 NetworkService 帐户添加到每台物理主机计算机上的本地管理员组。 例如,如果您运行具有 20 台物理主机的虚拟实验室,并添加或替换一台应用层计算机,则必须使用新应用层计算机的名称来更新所有 20 台主机计算机并分配权限。 应对 TFSservice 帐户使用标准域用户帐户和密码,而不是使用 NetworkService 帐户。 这样就会在对物理主机进行初始配置时添加一次域用户帐户,随后的每台应用层计算机都将使用同一个帐户。 有关 NetworkService 帐户限制的更多信息,请参见 NetworkService Account(NetworkService 帐户)。

规划 System Center Virtual Machine Manager

不应该

  • **在虚拟机中安装 SCVMM。**在虚拟机中安装 SCVMM 会更加难以管理运行虚拟机的物理主机,并且会在同一虚拟机中设置库时降低库的性能。

  • **将群集用于 SCVMM 2008 R2 库服务器。**Lab Management 只支持群集在 SCVMM 2012 环境中,SCVMM 2008 R2 则不行。

  • **设置网络适配器的虚拟 LAN ID。**Lab Management 不支持在 System Center Virtual Machine Manager 中设置和使用虚拟 LAN ID。 如果为虚拟机手动设置网络适配器上的 VLAN ID,然后将该虚拟机存储在 SCVMM 库中,则 VLAN ID 将在部署虚拟机时清除。 有关如何使用 VLAN ID 的更多信息,请参见 Configuring Virtual Networks in VMM(在 VMM 中配置虚拟网络)。

应该

  • **为 SCVMM 计算机提供足够资源。**如果您预期实验室中的 VM 数量少于 50,则运行 SCVMM 的计算机至少应具有:

    • 64 位处理器

    • 4 GB 内存

    • 300 GB 硬盘驱动器

    • Windows Server 2008 R2 操作系统

    如果您预期 VM 数量多于 50,请增加上述资源。 如果您计划将 SCVMM 及其他一些软件安装在同一台计算机上,请为 SCVMM 服务器提供本主题前面介绍的资源量。 但是,请务必在扣除其他软件的资源消耗后确定数量。 例如,如果要在运行 Team Foundation Server 的计算机中安装 SCVMM,请将要求添加到 Team Foundation Server 的要求中,然后确保计算机具有足够容量。

  • **为运行库的服务器在硬盘驱动器上提供至少 200GB 的可用空间。**在默认安装中,确保库共享使用的驱动器具有 200GB 以上的可用空间。

  • **在 D: 而不是 C: 中创建默认库共享。**默认情况下,SCVMM 将在所处的同一计算机中创建库共享并在 C: 驱动器中创建库。 将默认库共享更改为 D: 可在以后更加方便地升级计算机。

  • **对库使用具有足够速度的硬盘驱动器。**如果您计划极少使用库,则具有足够速度的硬盘便足矣。 如果计划以中等频率使用库,请使用具有 6 到 12 个磁盘的 RAID 5 磁盘配置,以实现更好的吞吐量。 如果计划大量使用库,请使用多个库服务器。 您可以使用直接连接存储或 SAN。 使用 SAN 时,请创建一个专用于库计算机的 LUN。

  • **在常规域用户帐户而非网络服务帐户下运行 Team Foundation Server。**如果将 Team Foundation Server 和 SCVMM 放置在同一计算机上,则必须这样做。

  • **如果 SCVMM 安装在 Hyper-V 主机上,请将承载 Hyper-V 的虚拟机存储在与 SCVMM 库不同的硬盘驱动器上。**例如,将一个磁盘中的 C: 用于库,将另一个磁盘中的 D: 用于 Hyper-V 虚拟机。 在此情况下,SCVMM 服务器将在 Hyper-V 的主操作系统中运行。 这样可确保在加载主操作系统时,会影响所有来宾操作系统(在 Hyper-V 中部署的虚拟机)。 若要减少这一影响,请通过向前面所述的 SCVMM 计算机要求中添加 Hyper-V 主机预留(在下面进行了介绍),来为该计算机配置主机预留。 主机预留可以使用 SCVMM 管理员控制台进行配置。

  • 在 SCVMM 与 Team Foundation Server、主机和其他库服务器之间提供视距网络路由。

  • **使用所有最新的 Windows 更新来更新 SCVMM 计算机并确保自动应用这些更新。**如果此做法不可行,则应计划跟踪 Windows 和 SCVMM 更新,并在这些更新可用时手动应用。

规划 Hyper-V 主机

不应该

  • **在物理主机计算机上安装其他任何软件,如 Team Foundation Server。**如果您具有功能足够强大的主机(超过虚拟机监控程序和虚拟机的总需求),则可以使 SCVMM 或库服务器位于同一主机上,前提是您还要考虑这些服务器的资源限制。 例如,如果要在 Hyper-V 主机计算机中安装 SCVMM,则添加主机要求、虚拟机要求和 SCVMM 要求,然后确保计算机具有足够容量。

  • **将群集用于 Hyper-V 主机服务器。**Lab Management 支持群集在 SCVMM 环境中。

  • **同时安排数十个 VM 部署。**限制对主机的并发环境部署数。

  • **使用与库服务器在不同地理位置的物理主机。**如果您必须使用与 SCVMM 库服务器在不同地理位置的主机,则 SCVMM 与主机之间的网络速度应至少为 100 Mbps,并且不能承受高延迟。

  • **在连接到特定网络的虚拟机上创建多个网络适配器。**Lab Management 将覆盖此配置并创建两个适配器。 其中一个适配器连接到实验室网络,另一个适配器处理虚拟机之间的内部通信。

  • **配置在网络隔离环境中使用的网络适配器上的 MAC 地址。**Lab Management 将在创建网络隔离环境时清除 MAC 地址。

应该

  • **为主机计算机提供足够资源并对其进行正确配置。**Hyper-V 主机的数量和每台主机的容量取决于实验室中承载的 VM 的数量。 如果您决定建立比较小的实验室,请在具有以下配置的计算机上安装 Hyper-V 角色:

    • 两个支持 Hyper-V 的双核 64 位处理器

    • 16 GB 内存

    • 300 GB 硬盘空间

    • Windows Server 2008 R2 操作系统

    • Windows 操作系统的最新更新。

    如果虚拟机数量比较多,并且您决定设置几台强大的主机,请对每台主机进行如下配置:

    • 两个支持 Hyper-V 的四核 64 位处理器

    • 64 GB 内存

    • 1 TB 硬盘空间

    • Windows Server 2008 R2 操作系统

    • Windows 操作系统的最新更新。

  • **在主机中预留足够 RAM 内存。**为使虚拟机监控程序平稳运行,除了上面列出的主机容量要求外,还必须预留以下资源。 对于 16GB 主机,预留 20% 的 CPU 和 2 GB 内存。 对于 64 GB 主机,预留 30% 的 CPU 和 4 GB 内存。 这些主机预留必须在 SCVMM 管理员控制台的主机属性窗格中配置。 只有扣除主机预留后剩余的主机资源才能用于虚拟机。

  • **为虚拟机提供足够存储。**用于虚拟机存储的磁盘分区应与 Hyper-V 服务器的主分区不同。 例如,将 D: 用于虚拟机存储,将 C: 用于虚拟机监控程序的主分区。 在决定虚拟机存储位置后,请在 Hyper-V 管理器中或使用 SCVMM 管理员控制台来配置该位置。 在 Hyper-V 管理器中,更改虚拟硬盘文件夹和虚拟机文件夹。 在 SCVMM 管理员控制台中,更改主机属性下的放置路径。

  • **为主机提供快速硬盘驱动器并正确配置驱动器。**用于主机的磁盘类型:需要具有良好速度的磁盘。 强烈建议使用配置了 RAID 5 的磁盘。 用于主机的存储可以来自直接连接存储或来自 SAN。 但是,如果您为了满足空间和可靠性需求而决定使主机的磁盘来自 SAN 驱动器,则必须将独立的 LUN 映射到每台主机。 假如 Visual Studio 实验室管理工具版不利用任何 SAN 功能,则即使这些 LUN 由同一控制器管理,也会通过 LAN 网络一直从库到主机执行虚拟机部署过程中的基础 BITS 复制。

  • 若要在 Hyper-V 主机上安装 SCVMM,强烈建议用于存储承载 Hyper-V 的虚拟机的硬盘驱动器应与用于库的磁盘不同。 在此情况下,SCVMM 服务器将在 Hyper-V 的主操作系统中运行。 因此,加载主操作系统时,会对所有来宾操作系统(在 Hyper-V 中部署的 VM)产生性能影响。 若要减小这一影响,请通过向前面所述的 SCVMM 计算机要求中添加 Hyper-V 计算机的主机预留,来为该计算机配置主机预留。 主机预留可以使用 SCVMM 管理员控制台进行配置。

  • 若要将 Hyper-V 主机也用作库服务器,该计算机中必须具有多个磁盘。 应对虚拟机和库存储使用主机中的不同硬盘。

  • 为 Hyper-V 主机提供与 Team Foundation Server、SCVMM 和其他库服务器的视距联网。

  • 如果 Hyper-V 主机位于不同的地理位置,则每个位置还会有一台本地库服务器。

  • **定期更新主机。**Hyper-V 主机应位于可以自动应用操作系统更新的网络中。 如果此做法不可行,则应计划跟踪 Windows 和 SCVMM 更新,并在这些更新可用时手动应用。

规划控制器和代理

不应该

  • **在环境内安装测试控制器。**生成、测试和实验室代理只应安装在环境内的虚拟机上。

应该

  • **在生成和部署用于测试的应用程序时使用多个生成控制器。**第一个控制器供生成过程使用,不会大量使用。 第二个控制器用于将生成部署到虚拟机并运行测试;因此,如果您的实验室中有许多虚拟机,则会大量使用该控制器。 第二个控制器还用于获取环境的快照。

  • **在与 Team Foundation Server 相同的域中使用测试控制器。**如果 esprtfs 和测试控制器位于工作组或不受信任的域中,则必须创建一个在两台计算机上具有相同用户名和密码的本地用户帐户,在 Team Foundation Server 中将此用户添加到“[项目集合]\项目集合测试服务帐户”安全组,然后使用此本地帐户向团队项目集合注册测试控制器。

规划拓扑

应该

  • 使用千兆网络将安装 SCVMM 的服务器连接到库服务器和 Hyper-V 主机。

  • 在运行 Team Foundation Server、测试控制器、生成控制器、SCVMM 和虚拟机的物理主机的域之间建立完全的双向信任关系。

在为测试应用程序而设置实验室管理时可以使用若干种拓扑。 使用实验室管理的最简单拓扑只需要两台服务器:将所有 Team Foundation Server 组件安装在同一台服务器上,将所有 SCVMM 2008 组件安装在另一台服务器上。 或者,您的网络拓扑要求也可能比较复杂,限制了 Team Foundation Server、SCVMM、Hyper-V 主机和运行受测应用程序的虚拟机所在的网络。 在另一种方法中,您可能要为 Team Foundation Server 配置网络负载平衡。 下面的列表建议了拓扑的几种可能维度以及每种维度内的变体。

网络

  • DNS

  • 防火墙

  • 威胁管理网关

  • 单向信任

  • 双向信任

  • 无信任

Team Foundation Server 逻辑应用层

  • 单服务器

  • 无网络负载平衡的多台服务器

  • 带网络负载平衡的多台服务器

Team Foundation Server 逻辑数据层

  • 单服务器

  • 无群集的多台服务器

  • 带群集的多台服务器

测试

  • 在环境内

  • 在环境外

以下四个示例拓扑是如何根据测试需要设置上述维度组合的示例。

示例拓扑 1

Team Foundation Server 逻辑应用层在多台服务器上运行,这些服务器由一个网络负载平衡器控制。 还有一个独立的测试网络,其防火墙设置可控制进出域网络的测试流量。 下图演示拓扑 1。

加入企业网络的所有计算机

有关设置此拓扑的说明,请参见 Setting up various topologies to test with Visual Studio Lab Management – Part 1(设置各种拓扑以测试 Visual Studio 实验室管理工具版 – 第 1 部分)。

示例拓扑 2

Team Foundation Server 逻辑应用层和数据层在多台服务器上运行,但这些服务器不受负载平衡器控制。 还有一个独立测试网络,具有基于 SAN 的库和主机。 下图演示拓扑 2。

没有负载平稳器但有 SAN 的计算机

有关设置此拓扑的说明,请参见 Setting up various topologies to test with Visual Studio Lab Management – Part 2(设置各种拓扑以测试 Visual Studio 实验室管理工具版 – 第 2 部分)。

示例拓扑 3

Team Foundation Server 逻辑应用层在多台服务器上运行,这些服务器由一个网络负载平衡器控制。 还有一个独立的测试网络。 所测试的应用程序会调用虚拟环境外的数据库。 下图演示拓扑 3。

包含环境外数据库的计算机

有关设置此拓扑的说明,请参见 Setting up various topologies to test with Visual Studio Lab Management – Part 3(设置各种拓扑以测试 Visual Studio 实验室管理工具版 – 第 3 部分)。

示例拓扑 4

Team Foundation Server 逻辑应用层和数据层在多台服务器上运行,这些服务器由一个网络负载平衡器控制。 测试网络和环境位于不同的域中。 下图演示拓扑 4。

两个域内的计算机

有关设置此拓扑的说明,请参见 Setting up various topologies to test with Visual Studio Lab Management – Part 4(设置各种拓扑以测试 Visual Studio 实验室管理工具版 – 第 4 部分)。

请参见

概念

Team Foundation Server 体系结构

配置和管理实验室管理工具版

其他资源

简单拓朴示例

中等复杂程度的拓扑的示例

复杂拓扑示例