共用方式為


高效能運算

Windows Compute Cluster Server 簡介

John Kelbley and Doug Lindsey

 

摘要:

  • 運用叢集解決複雜問題
  • 運算叢集的一般需求
  • 設定 Windows 架構運算叢集
  • 遠端執行命令

高效能運算 (HPC) 是指集中一部份的應用運算能力,專門用來解決耗用大量運算資源的問題。多年前,HPC (更常被稱為「超級運算能力」) 通常是以

特製大型 (昂貴) 系統為主,而這些系統多半都屬於研究中心所有。不過,隨著小型系統的運算能力日益增強,成本/效能比也跟著改變,而運算工作負載逐漸移往個人電腦等級的系統。

許多耗用大量運算資源的問題都可以經由平行計算的方式獲得解決;也就是說,特定的計算或作業不見得要依靠其他計算或作業的輸出結果來完成。在這種情況下,龐雜的問題可以利用組合成運算叢集的多個小型系統 (節點)。以下試舉出幾個例子來說明能夠利用運算叢集的各種應用程式:

  • 財務模型 — 個別演算法或公式會執行上千次,且每次都具有不同的輸出。
  • 工程 — 模擬各個組件的效果,並在模型上套用材質。
  • 電腦動畫 — 對影片的每個畫面套用材質與光源效果。

運算叢集提供符合經濟效益的方式,在短時間內解決複雜的問題。在本文中您將看到,Microsoft 所推出的 Windows® Compute Cluster Server 2003 可提供關鍵的運算叢集功能與支援。

有一點您必須了解,那就是運算叢集與可用性 (容錯移轉) 叢集是不同的。您可能很熟悉 Exchange、SQL Server® 或 Windows Server® 2003 中的其他應用程式所使用的可用性叢集。這些叢集通常是運用共用存放裝置來達到最長的應用程式執行時間。不過運算叢集的用意並非是在中斷時延續另一個系統的工作,而是讓所有節點都能協力運作。

運算叢集的一般需求

HCP 資源

現代的 HPC 系統都具有一些共通的特性,以便協助處理工作負載。簡單來說,您需要的系統不只一部,另外還需要排程器來協調各個節點間的工作指派。排程器會在主導的節點 (主節點) 上執行,識別可用的資源,指派和分配工作,同時追蹤整體的工作狀態。它可說是系統叢集中各項資源的協調者,而且也是使用者與系統管理員提交處理工作的目標。

叢集需要透過某種方式在節點間進行通訊。視工作類型而定,節點可能需要高速且低延遲的互連機制來彼此傳送訊息以協調處理作業。各個運算節點與主節點至少都必須連線到一個共通的網路上。

在大量的互連系統協力運作來解決複雜問題的情況下,您也必須特別小心維護和保持傳輸狀態。您必須安排作業與工具來準備、監視、管理和維護成千上百的系統,這樣才能確保穩定一致的環境。

最後也是最重要的一點,系統中必須有應用程式能夠利用運算叢集的平行處理能力。如果沒有能夠細分工作好讓工作在多台電腦上執行的應用程式,或是缺少包含「平行偵錯工具」支援的開發工具,那麼所謂的叢集環境也只不過是徒佔電腦室的空間罷了。

Windows Server 架構叢集

為了滿足廣大的 HPC 應用程式需求,Microsoft 於 2006 年推出 Windows Server 2003 Compute Cluster Edition (CCE) 和 Windows Compute Cluster Server 2003 (WCCS)。CCE 和 WCCS 同樣都以您熟知的 Windows Server 2003 為基礎。CCE 是 Windows Server 2003 專為使用 HPC 應用程式而授權的版本。WCCS 與 CCE 相同,但另外還加上 Microsoft® Compute Cluster Pack (CCP)。這表示您可以透過原先用來管理現有 Windows Server 2003 系統的相同工具來部署、管理、監視及維護 Windows Server 架構叢集。

需要注意的是,CCE 和 WCCS 只有 x64 版本 — 這些產品並未提供 32 位元 (x86) 版本。CCE 與 WCCS 的硬體需求與 Windows Server 2003 x64 標準版的硬體需求一樣。除了支援高效能硬體 (64 位元架構) 以外,這些產品還包含高效能互連 (Gigabit Ethernet、InfiniBand、Myrinet 等等) 的遠端直接記憶體存取 (Remote Direct Memory Access,RDMA) 支援。

Compute Cluster Pack

如前所述,運算叢集的某些基本需求可以經由安裝 Compute Cluster Pack 來滿足。CCP 是獨立的安裝套件,其中包括:

  • 整合的工作排程器
  • 業界標準 MPICH2 的訊息傳送介面 (Messaging Passing Interface,MPI) 支援
  • 叢集資源管理和使用者工具

CCE 與 WCCS 之間的關鍵區別正是 CCP。您可能覺得奇怪,運算叢集需要這些元件,但這些元件只包含在 WCCS 而未包含在 CCE 中。原因是某些 HPC 解決方案會使用不同的工作排程器或特製 MPI (或者不需要 MPI 支援),而且只需要在一流的平台上執行 — 也就是 Windows Server 2003。由於 CCP 是獨立套件,您可以在其他 x64 版本的 Windows Server 2003 (CCE、標準版、標準版 R2、企業版及企業版 R2) 上安裝。

具體細節

WCCS 採納主要的 Windows 基本概念 (包括 Active Directory® 和遠端安裝服務 (RIS)) 來簡化 Windows 架構叢集的管理與操作工作。Compute Cluster Server 使用 Active Directory 以明確地管理安全性。藉由 Active Directory,使用者可以將工作提交給主節點 — 使用單一的認證組合,而這個工作可以在數百個伺服器節點上執行。當工作在一或多個運算節點上執行時,是在工作提交時所提供之使用者認證的路徑位置中執行,並就此進行安全快取。WCCS 憑藉 Active Directory 來提供這樣的「單點登入」功能。環境裡面擁有 Active Directory 的另一項好處是,可以透過群組原則來集中管理伺服器與設定原則。

如果您的 IT 組織已經部署 Active Directory,您可以在現有網域中建置叢集來省下大量的時間與系統管理工作。這是建議的做法。

如果您需要在沒有 Active Directory 的環境中部署運算叢集,那麼建議您部署一或多個專用網域控制站來為叢集裝載 Active Directory。將主節點當做 Active Directory 網域控制站的情況並不稀奇,因為無論網路拓撲為何,所有節點都已經具備連接系統的網路。然而,考量到主節點的負載增加,並不建議在大規模叢集中將主節點當做網域控制站。而是應該要遵循 Active Directory 部署與管理的常見做法 (安裝備援網域控制站、適當備份、良好的安全性實務等等)。

遠端安裝服務

WCCS 專為 Microsoft 遠端安裝服務映像部署平台提供整合式前端。RIS 可用來從主節點部署作業系統映像到各個運算節點,換句話說,您可以使用 RIS 來快速安裝新的叢集節點。您不一定要採取這種方式 — 與 WCCS 整合的 RIS 只是為了方便您使用而提供。您也可以使用其他常見的 Windows Server 部署技術,例如 Windows Server 2003 Automated Deployment Services (ADS) 或手動安裝 Windows Server 2003。

若您要使用 RIS,請在主節點上安裝 CCP 之前,先確認至少已有定義兩個邏輯磁碟。RIS 需要一個與作業系統分開的磁碟來存放伺服器映像。您的 RIS 磁碟分割應該具備足夠的可用磁碟空間來放置一或多個完整的 Windows Server 映像複本。

較新的伺服器硬體 (尤其是網路與儲存導向的硬體) 所需的隨插即用驅動程式,可能不包含在預設 Window Server 2003 映像中。此時,您就必須手動將這些驅動程式加入到映像中。您可以在以下網站找到說明此作業程序的文件:support.microsoft.com/kb/254078

安裝叢集

第一個步驟是設定叢集的首腦 — 主節點。首先要安裝之前提到的 x64 版本的 Windows Server 2003。在安裝作業系統的過程中,您得選擇是要讓伺服器加入現有網域 (建議做法),還是要在伺服器上安裝 Active Directory (不建議大規模叢集這麼做)。

安裝作業系統之後,確保您已經下載並安裝 Microsoft Update 建議的所有修正程式。若您打算使用 RIS 來處理運算節點映像,就必須使用 [電腦管理] | [磁碟管理] 系統管理工具來確定至少已定義兩個邏輯磁碟。由於篇幅有限,本文就不在此討論以 RIS 為主的安裝。

當您成功登入和更新伺服器之後,將會執行 CCP 安裝程式。CCP 安裝程式會安裝或指引您完成下載和安裝下列必備檔案及更新:

CCP 安裝程式能夠出色地評估您的系統是否做好安裝準備。它會讓您知道在執行安裝作業中需要使用及安裝哪些元件,並安裝這些元件,如 [圖 1] 所示。

[圖 1] CCP 安裝的必要元件

[圖 1]** CCP 安裝的必要元件 **(按影像可放大)

待辦清單

當 CCP 安裝程式完成時,便會啟動系統管理員主控台,並將焦點放在待辦清單上。如 [圖 2] 所示,待辦清單包含多個窗格,分別處理不同部分,並列出完成叢集設定所需的關鍵任務。

[圖 2] 待辦清單中顯示設定叢集所需的任務

[圖 2]** 待辦清單中顯示設定叢集所需的任務 **(按影像可放大)

待辦清單可讓您輕鬆地實作您所規畫的架構,包括選取和設定網路拓撲、節點安裝程序以及使用者管理模型。每個窗格的任務都列在右邊,而且各項任務都會啟動精靈。依序完成每項任務以便完全設定主節點,好讓主節點將 RIS 映像部署到已知的運算節點集合上,並讓定義好的使用者組合能夠管理和存取主節點。

網路拓撲 WCCS 支援 HPC 中最常使用的五種網路拓撲。所有運算節點與主節點至少都必須共用一個共通網路。這些拓撲支援在節點間有多種互連類型,並具有各自的優點與成本。

您的網路拓撲會取決於叢集的效能、安全性和部署需求。譬如說,針對不想要在企業網路上公開的訊息,您的應用程式可能需要高速互連機制來傳送這些訊息。或者您想要使用以 RIS 為主的整合式自動部署功能。或許您選擇的硬體只能容納單一 NIC,又或者您可能希望主節點執行網際網路連線共用 (ICS) 來管理運算節點的名稱解析和定址。從待辦清單啟動的「設定叢集網路拓撲 (Configure Cluster Network Topology)」精靈會提供一般 HPC 實作支援的五種常見拓撲,並協助您設定網路連線,包括主節點和運算節點上的 Windows 防火牆設定。[圖 3] 顯示其中一種支援的網路拓撲。

[圖 3] 其中一種支援的 WCCS 網路拓撲

[圖 3]** 其中一種支援的 WCCS 網路拓撲 **(按影像可放大)

遠端安裝服務 如前所述,RIS 會啟用叢集節點的自動部署。

節點管理 您能夠指定在此叢集中當做運算節點之伺服器的電腦名稱。在節點上執行 CCP 時,節點所要加入的叢集主節點也是在此時指定。

使用者管理 您可以在此指定要將哪個 Active Directory 使用者帳戶或群組指派為系統管理員和叢集的使用者。

安裝節點

運算節點的部署可以經由 RIS 系統管理公用程式來自動完成,也可以使用其他受支援的部署方法。就像主節點,CCP 也必須安裝各個運算節點上。如 [圖 4] 所示,運算節點的 CCP 安裝設定選項更為簡單,其中包含以下項目:

[圖 4] Compute Cluster Pack 安裝

[圖 4]** Compute Cluster Pack 安裝 **(按影像可放大)

  • 指定伺服器必須是運算節點 (非主節點)。
  • 指定伺服器要加入的叢集的主節點名稱。
  • 指定是否要在運算節點上安裝系統管理與使用者工具。

系統管理員主控台

當您的節點與主節點開始通訊後,所有系統的管理和系統管理工作大多可以透過系統管理員主控台來完成,如 [圖 5] 所示。此主控台為整個叢集提供一種集中檢視的機制,內含所有相關節點的清單、重要系統管理動作的存取以及其他詳細資料。最左邊的窗格提供主控台的高階層巡覽,包括「叢集系統管理員」的存取,當您反白顯示叢集系統管理員時,便會出現顯示叢集狀態與工作統計資料的摘要畫面。此外,所有遠端桌面和系統監視器工作階段的存取都可以在此進行,但是您在叢集管理部分所花的時間將以「節點管理」為主。

[圖 5] 系統管理員主控台提供整體叢集檢視

[圖 5]** 系統管理員主控台提供整體叢集檢視 **(按影像可放大)

您應該自行探索系統管理員主控台,因為在此可以存取集中管理 Windows 與叢集節點所需的主要工具和功能。按一下上半部的中間窗格將填入其他幾個視窗,您可以據此探究節點特定的功能。

按右鍵功能表支援的功能方便您輕鬆地從節點管理來集中管理運算節點。您可以使用節點管理來暫停和繼續節點;在叢集間核准或移除節點;啟動遠端桌面、系統監視器或甚至是檢視器;或是退出光碟托盤 (當您想在大型叢集中實際辨別出單一機器時,這個功能就很有用)。

酷炫的 ClusRun

在這份清單中有一個超酷的功能,那就是「執行命令」,這項功能可以從遠端任意執行任何命令,彷彿您就在目標機器上使用命令提示字元一樣。WCCS 包含命令列版本的「執行命令」功能,稱為 Clusrun.exe,此「ClusRun」可同時用來表示 GUI 與命令列版本。

ClusRun 的公用程式的優點一言難盡 — 在大型叢集上尤其明顯。對於執行重複性高的命令列工作來說,ClusRun 可以節省很多時間,而且往往能夠避免撰寫更複雜的系統管理指令碼。

若要使用此功能,請針對您要執行命令的機器反白顯示這些機器清單,然後按一下滑鼠右鍵,再選取 [執行命令]。[圖 6] 中的對話方塊便會出現。現在只要輸入所要的命令,按一下 [執行],並等待 [結果] 視窗顯示輸出即可。第一次使用 ClusRun 時會出現要求認證的提示,不過您可以選擇快取這些認證以供後續重複使用。

[圖 6] 您可以在多個節點上執行命令。

[圖 6]** 您可以在多個節點上執行命令。 **(按影像可放大)

修補叢集或安裝包含自動安裝常式的程式常用的方法是,將它們放置在檔案共用中,然後使用 ClusRun 來強制所有運算節點叫用該命令。利用單一命令就可以重新啟動整個叢集中的所有運算節點:

CLUSRUN SHUTDOWN –R –F –T 0 

工具組

HPC 小組在 2007 年 5 月發行了 Compute Cluster Pack 工具組 (您可從以下網站取得:windowshpc.net/resources/Pages/default.aspx)。這個工具組包含 Windows PowerShellTM 的支援、用來診斷連線健康狀況的 MPIPingPong 工具,以及一個簡單卻好用的圖形化叢集監視器。

[圖 7] 所示,簡易叢集監視器 (Simple Cluster Monitor) 可以在單一畫面上顯示叢集中的每個節點、各個節點擁有的核心數量、每顆 CPU 的使用率 (以鮮綠色表示)、記憶體使用率 (黃色)、磁碟時間百分比 (紅色),以及網路頻寬使用率 (橘色)。系統管理員只要執行這個超棒的工具,對叢集的運作狀況就可以一目了然。

[圖 7] 使用簡易叢集監視器 (Simple Cluster Monitor) 監視多個節點

[圖 7]** 使用簡易叢集監視器 (Simple Cluster Monitor) 監視多個節點 **(按影像可放大)

這個叢集監視器也包含「可遠端操控」功能。您必須在主節點上執行叢集監視器的第一個執行個體。不過,如果您在主節點的主控台工作階段中執行叢集的執行個體,就有機會從工作站啟動叢集的執行個體,在主節點指向這些執行個體,然後取得相同的顯示畫面。

還等什麼?

您現在已經獲得 HPC 與 Windows Server 2003 Compute Cluster Server 的相關知識,也懂得如何安裝 CCP,您已經見識到全方位的超強主控台,能夠使用一些酷炫的新命令,還有一些圖形化工具能向同事及使用者炫耀。您可以在「HPC 資源」資訊看板找到更多有關高效能運算的資訊來源。

John Kelbley 在 Microsoft 以美國東北部為據點的全球解決方案技術小組 (Global Solutions Technology Team) 擔任技術產品經理。您可以透過電子郵件與 John 聯絡:Johnkel@microsoft.com

Doug Lindsey 是 Microsoft HPC 小組的專案經理,同時也負責管理生產運算叢集 (名列 www.top500.org 的 2007 年 11 月名單的第 116 名)。您可以透過電子郵件與 Doug 聯絡:Dougli@microsoft.com

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.