規劃您的實驗室
當您準備在測試實驗室中大規模使用 Lab Management 時,可能要考量幾個問題:
我需要多少部實體伺服器?
我應該購買哪些種類的伺服器?
我需要多少儲存容量?
我可以使用 SAN 儲存嗎?
我可以在一部功能強大的機器上安裝所有元件嗎?
我要如何設定隔離的實驗室?
本主題提供用來評估使用 Visual Studio Lab Management 所需之實體伺服器、虛擬機器 (VM) 和控制器數目與類型的一般方針。 一般來說,伺服器的數目不如每一部伺服器的容量來得重要。 例如,使用雙核心或四核心處理器的伺服器所能支援的 VM 將多於使用單核心處理器的伺服器。 同樣地,具有 32 GB RAM 的伺服器能夠在同時間裝載的 VM 將多於只有 8 GB RAM 的伺服器。
容量規劃
下列各節包含的方針可幫助您為虛擬測試實驗室提供足夠的容量。 當您取得或設定硬體或是安裝及設定必要軟體時,這裡的方針會表示為應該做的事 (該做的事) 和不應該做的事 (不該做的事)。
規劃 Team Foundation Server
不該做的事
**在單一機器上安裝所有元件。**只有當您要使用單一機器進行示範或是證明概念時,才應該在單一機器上安裝所有元件。
如果您的 Team Foundation Server 執行個體使用一部以上的伺服器來執行邏輯應用程式層,而且您使用 Visual Studio 的 Lab Management 功能時,請使用 NetworkService 帳戶當做 Team Foundation Server 的帳戶。使用 NetworkService 帳戶時,日後將需要更多的手動工作來維護虛擬環境的實體主機。 這是必要的額外工作,因為每一部新應用程式層機器的 NetworkService 帳戶都必須加入至每一部實體主機的本機 Administrator 群組中。 例如,如果您所執行的虛擬實驗室包含 20 部實體主機,而且您加入或取代應用程式層機器,則需要將這 20 部主機的每一部都更新為新的應用程式層機器名稱,並指派權限。 與其使用 NetworkService 帳戶,不如為 TFSservice 帳戶使用標準的網域使用者帳戶和密碼。 如此一來,進行實體主機的初始組態設定時便會加入一次網域使用者帳戶,而後續每一部應用程式層機器都會使用相同的帳戶。 如需 NetworkService 帳戶限制的詳細資訊,請參閱 NetworkService 帳戶 (英文)。
規劃 System Center Virtual Machine Manager
不該做的事
**在虛擬機器上安裝 SCVMM。**在虛擬機器上安裝 SCVMM 將會更難管理該虛擬機器執行所在的實體主機,而且如果您在同一部虛擬機器上設定程式庫,也會讓程式庫的效能變得更慢。
**搭配 SCVMM 2008 R2 程式庫伺服器使用叢集。**當使用SCVMM 2012,而不是使用 SCVMM 2008 R2 時, Lab Management 只支援 SCVMM 環境的叢集。
**設定網路介面卡的虛擬 LAN ID。**Lab Management 不支援在 System Center Virtual Machine Manager 中設定和使用虛擬 LAN ID。 如果您針對虛擬機器手動設定網路介面卡的 VLAN ID,然後將虛擬機器儲存在 SCVMM 程式庫中,當您部署虛擬機器時,系統就會清除 VLAN ID。 如需如何使用 VLAN ID 的詳細資訊,請參閱在 VMM 中設定虛擬網路。
該做的事
**請為 SCVMM 機器提供足夠的資源。**如果您預期實驗室中的虛擬機器數目少於 50,則執行 SCVMM 的機器至少應該有:
64 位元處理器
4 GB 的記憶體
300 GB 的硬碟
Windows Server 2008 R2 作業系統
如果您預期虛擬機器的數目多於 50,請增加這些資源。 如果您打算在同一部機器上安裝 SCVMM 連同一些其他軟體,請為 SCVMM 伺服器提供本主題稍早所述的資源數量。 但是,請務必判定扣除其他軟體的資源消耗量之後的數量。 例如,如果您想要在執行 Team Foundation Server 的機器上安裝 SCVMM,請在這些 Team Foundation Server 需求中加入需求,然後確保該機器有足夠的容量。
**至少為執行程式庫的伺服器提供 200 GB 的可用硬碟空間。**在預設安裝中,請確定程式庫共用所使用的磁碟機有 200 GB 以上的可用空間。
**在 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、主機和其他程式庫伺服器之間的直視性 (Line-of-Sight,LOS) 網路路由。
**使用所有最新的 Windows 更新來更新 SCVMM 機器,並確保這些更新會自動套用。**如果這樣不可行,您應該計畫追蹤 Windows 更新和 SCVMM 更新,並在這些更新可用時手動加以套用。
規劃 Hyper-V 主機
不該做的事
**在實體主機上安裝任何其他軟體,例如 Team Foundation Server。**如果您有功能夠強大的主機 (超出 Hypervisor 和虛擬機器的整體需求),您可以讓 SCVMM 或程式庫伺服器位於主機上,前提是您也要交代這些伺服器的資源限制。 例如,如果您想要在 Hyper-V 主機上安裝 SCVMM,則請加入主機需求、虛擬機器需求和 SCVMM 需求,然後確保該機器有足夠的容量。
**搭配 Hyper-V 主機伺服器使用叢集。**Lab Management 支援 SCVMM 環境的叢集。
**同時排程數十個虛擬機器部署。**限制主機上並行環境部署數目。
**使用位於與程式庫伺服器不同之地理位置中的實體主機。**如果您必須使用的主機位於與 SCVMM 程式庫伺服器不同的地理位置,則 SCVMM 與主機之間的網路速度至少必須是 100 Mbps 而且不受限於高延遲。
**在連接至特定網路的虛擬機器上建立多張網路介面卡。**Lab Management 會覆寫這項組態並建立兩張介面卡。 第一張介面卡會連接至實驗室網路,而另一張介面卡則處理虛擬機器之間的內部通訊。
**設定用於網路隔離環境之網路介面卡的 MAC 位址。**Lab Management 會在建立網路隔離的環境時清除 MAC 位址。
該做的事
**為主機提供足夠的資源並正確加以設定。**Hyper-V 主機數目及每一部主機的容量取決於您在實驗室中裝載的虛擬機器數目。 如果您決定設定相當小的實驗室,請使用以下組態在機器上安裝 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 記憶體。**除了上面所列的主機容量需求以外,您也必須安排以下的資源,好讓 Hypervisor 能夠順利運作。 如果是 16 GB 的主機,請安排 20% 的 CPU 和 2 GB 的記憶體。 如果是 64 GB 的主機,請安排 30% 的 CPU 和 4 GB 的記憶體。 這些主機保留必須在 SCVMM 系統管理員主控台的主機屬性窗格中設定。 只有扣除主機保留之後在主機上剩餘的資源才可以用於虛擬機器。
**請為虛擬機器提供足夠的儲存體。**您應該針對虛擬機器儲存體使用與 Hyper-V 伺服器的主要磁碟分割不同的磁碟分割。 例如,將 D: 用於虛擬機器儲存體,並將 C: 用於 Hypervisor 的主要磁碟分割。 當您決定虛擬機器儲存體位置之後,請使用 Hyper-V 管理員或 SCVMM 系統管理員主控台來設定該位置。 在 Hyper-V 管理員中,變更 [虛擬硬碟] 資料夾和 [虛擬機器] 資料夾。 在 SCVMM 系統管理員主控台中,變更主機屬性底下的放置路徑。
**為主機提供快速硬碟機,並正確設定這些磁碟機。**主機的磁碟類型:必須有速度良好的磁碟。 強烈建議您使用 RAID 5 設定的磁碟。 主機的儲存體可以來自直接連接的儲存裝置或 SAN。 但是,如果您為了空間和可靠性需求而決定讓主機的磁碟來自 SAN 磁碟機,您必須擁有對應至每一部主機的個別 LUN。 即使 LUN 是由相同的控制器所管理,因為 Visual Studio Lab Management 並不會利用任何 SAN 功能,所以虛擬機器部署期間的基礎 BITS 複製將會透過您的 LAN 網路從程式庫一路進行到主機。
如果是要安裝在 Hyper-V 主機上的 SCVMM,強烈建議用於儲存 Hyper-V 裝載之虛擬機器的硬碟要與用於程式庫的硬碟不同。 在此情況下,SCVMM 伺服器將會在 Hyper-V 的主要作業系統中執行。 因此,當載入主要作業系統時,所有客體作業系統 (在 Hyper-V 中部署的虛擬機器) 的效能都會受到影響。 為了減少這樣的影響力,請為該機器設定主機保留,其方式是在之前所述的 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 上的這位使用者加入至 "[專案集合]\Project Collection Test Service Accounts" 安全性群組,然後使用這個本機帳戶向 Team 專案集合註冊此測試控制器。
規劃拓撲
該做的事
使用 Gigabit 網路連接伺服器,其中會將 SCVMM 安裝到程式庫伺服器和 Hyper-V 主機。
在 Team Foundation Server、測試控制器、組建控制器、SCVMM 及虛擬機器之實體主機執行所在的網域之間建立完整的雙向信任關係。
當您設定 Lab Management 來測試應用程式時,可以使用幾個拓撲。 使用 Lab Management 的最簡單拓撲只需要兩部伺服器:在同一部伺服器上安裝所有 Team Foundation Server 元件以及在另一部伺服器上安裝所有 SCVMM 2008 元件。 另外,您可能會有複雜的網路拓撲需求,這些需求會限制 Team Foundation Server、SCVMM、Hyper-V 主機以及執行待測應用程式的虛擬機器所在的網路。 在另一個替代方式中,您可能會想要為您的 Team Foundation Server 設定網路負載平衡。 下列清單建議拓撲的幾個可能維度以及每一個維度中的變化。
網路
DNS
防火牆
Threat Management Gateway
網域
單向信任
雙向信任
不信任
Team Foundation Server 邏輯應用程式層
單一伺服器
無網路負載平衡的多部伺服器
有網路負載平衡的多部伺服器
Team Foundation Server 邏輯資料層
單一伺服器
無叢集的多部伺服器
有叢集的多部伺服器
測試
在環境內
在環境外
以下四個範例拓撲可為您示範如何根據測試需求來設定上述維度的組合。
範例拓撲 1
Team Foundation Server 邏輯應用程式層會在幾部伺服器上執行,而這些伺服器是由網路負載平衡器所控制。 也有個別的測試網路包含防火牆設定,這些設定會控制從網域網路出入的測試流量。 下列圖表說明拓撲 1。
如需設定此拓撲的指示,請參閱設定要使用 Visual Studio Lab Management 測試的各種拓撲 -- 第 1 部分 (英文)。
範例拓撲 2
Team Foundation Server 邏輯應用程式層和資料層會在幾部伺服器上執行,但是這些伺服器並不是由網路負載平衡器所控制。 也有個別的測試網路,其中包含以 SAN 為基礎的程式庫和主機。 下列圖表說明拓撲 2。
如需設定此拓撲的指示,請參閱設定要使用 Visual Studio Lab Management 測試的各種拓撲 -- 第 2 部分 (英文)。
範例拓撲 3
Team Foundation Server 邏輯應用程式層會在幾部伺服器上執行,而這些伺服器是由網路負載平衡器所控制。 也有個別的測試網路。 正在測試的應用程式會呼叫虛擬環境外的資料庫。 下列圖表說明拓撲 3。
如需設定此拓撲的指示,請參閱設定要使用 Visual Studio Lab Management 測試的各種拓撲 -- 第 3 部分 (英文)。
範例拓撲 4
Team Foundation Server 邏輯應用程式層和資料層會在幾部伺服器上執行,而且這些伺服器是由網路負載平衡器所控制。 測試網路和環境位於個別的網域中。 下列圖表說明拓撲 4。
如需設定此拓撲的指示,請參閱設定要使用 Visual Studio Lab Management 測試的各種拓撲 -- 第 4 部分 (英文)。