High Performance Computing

Windows Compute Cluster Server 소개

John Kelbley and Doug Lindsey

 

한 눈에 보기:

  • 클러스터를 사용하여 복잡한 문제 해결
  • 계산 클러스터의 일반 요구 사항
  • Windows 기반 계산 클러스터 설치
  • 원격으로 명령 실행

HPC(고성능 컴퓨팅)는 계산 성능이 많이 요구되는 문제의 해결에 중점을 둔 응용 컴퓨팅의 한 분야를 말합니다. 수년 전만 해도 HPC는 "슈퍼컴퓨팅"이라 지칭되며

연구소에서 주로 사용되는 대규모의 전문화된 시스템이 주류를 이루었고 가격도 상당히 비쌌습니다. 하지만 소규모 시스템의 컴퓨팅 성능이 좋아지면서 가격 대비 성능 비율이 변하였고 계산 작업을 PC급 시스템에서 처리할 수 있게 되었습니다.

계산 성능이 많이 요구되는 문제 중에는 계산을 병렬로 수행함으로써 해결되는 것들이 많습니다. 즉, 다른 계산이나 프로세스의 출력 없이도 완료할 수 있는 계산이나 프로세스가 있습니다. 이러한 경우 계산 클러스터로 그룹화된 규모가 작은 시스템(노드)을 여러 개 활용하여 문제의 많은 부분을 해결할 수 있습니다. 계산 클러스터의 대표적인 활용 예는 다음과 같습니다.

  • 재무 모델—알고리즘 또는 수식을 입력만 달리하여 수천 회 실행
  • 엔지니어링—모델에 질감을 적용하여 개별 부품에 미치는 영향 시뮬레이트
  • 컴퓨터 애니메이션—동영상의 각 프레임에 질감 및 조명 효과 적용

계산 클러스터는 복잡한 문제를 짧은 시간 내에 효율적으로 해결할 수 있도록 해줍니다. 이 기사에서 살펴보겠지만 Microsoft는 Windows® Compute Cluster Server 2003을 통해 핵심적인 계산 클러스터 기능과 지원을 제공하고 있습니다.

계산 클러스터는 가용성(장애 조치) 클러스터와는 다릅니다. Exchange, SQL Server®의 가용성 클러스터나 Windows Server® 2003의 다른 응용 프로그램에 대해서는 잘 아시리라 생각합니다. 이러한 응용 프로그램은 공유 저장소를 활용하여 응용 프로그램 작동 시간을 최대한으로 유지합니다. 그러나 계산 클러스터는 다른 시스템의 작동이 중지되었을 때 작업을 다시 시작하기 위한 것이 아니라, 모든 노드를 작업에 균형 있게 사용하기 위한 것입니다.

계산 클러스터의 일반 요구 사항

HCP 리소스

최신 HPC 시스템에는 그 종류에 관계없이 작업 처리 성능을 높이기 위한 몇 가지 핵심 요소가 공통적으로 적용됩니다. 먼저, 둘 이상의 시스템이 필요합니다. 또한 노드 간의 작업 할당량을 조정하는 스케줄러가 필요합니다. 스케줄러는 작업을 실제로 담당하는 노드(헤드 노드)에서 실행되며, 사용 가능한 리소스를 파악하고 작업을 할당 및 분배하고 전반적인 작업 상태를 추적합니다. 즉, 시스템 클러스터의 리소스 조정자이자, 사용자와 관리자가 처리할 작업을 전송하는 지점이 됩니다.

클러스터에는 노드 간의 통신 수단이 필요합니다. 작업의 유형에 따라 노드에는 서로 메시지를 전달하여 처리 과정을 조율하기 위해 지연율이 낮은 고속의 상호 연결망이 필요할 수 있습니다. 최소한 각 계산 노드와 헤드 노드는 공용 네트워크에 연결되어 있어야 합니다.

서로 연결된 여러 시스템이 함께 작동하면서 복잡한 문제를 해결하기 위해서는 상당한 수준의 주의와 관리가 필요합니다. 그리고 일관되고 안정적인 환경을 구축하려면 수십 개에서 수백, 수천 개에 이르는 시스템을 구축, 모니터링, 관리 및 유지 관리할 수 있도록 설계된 프로세스와 도구가 필요합니다.

마지막으로, 계산 클러스터의 병렬 처리 기능을 활용할 수 있는 응용 프로그램을 사용하는 것이 중요합니다. 여러 컴퓨터에서 처리할 수 있도록 작업을 분배하는 응용 프로그램이나 "병렬 디버거" 지원이 포함된 개발 도구가 없으면 클러스터는 컴퓨터실 온도만 높이는 무용지물에 불과합니다.

Windows Server 기반 클러스터링

2006년, Microsoft는 광범위한 HPC 응용 프로그램의 요구 사항을 만족시키기 위해 Windows Server 2003 Compute Cluster Edition(CCE)과 Windows Compute Cluster Server 2003(WCCS)을 발표했습니다. CCE와 WCCS는 모두 사용자들에게 익숙한 Windows Server 2003을 기반으로 합니다. CCE는 HPC 응용 프로그램과 함께 사용할 수 있도록 라이선스가 부여된 Windows Server 2003의 한 버전입니다. WCCS는 CCE와 동일하지만 Microsoft® Compute Cluster Pack(CCP)이 추가되었습니다. 이 기능 팩이 추가됨으로써 기존 Windows Server 2003 시스템 관리에 사용하는 것과 동일한 도구를 사용하여 Windows Server 기반 클러스터를 배포, 관리, 모니터링 및 유지 관리할 수 있게 되었습니다.

여기서 한 가지 중요한 점은 CCE와 WCCS가 x64 전용이라는 것입니다. 다시 말해 이들 제품에는 32비트(x86) 버전이 없습니다. WCCS를 비롯하여 CCE의 하드웨어 요구 사항은 Windows Server 2003 Standard x64 Edition의 하드웨어 요구 사항과 동일합니다. 이 제품은 고성능 하드웨어(64비트 아키텍처)는 물론, 고성능 상호 연결망(Gigabit 이더넷, InfiniBand, Myrinet 등)을 위한 RDMA(원격 직접 메모리 액세스)도 지원합니다.

Compute Cluster Pack

앞서 언급했듯이 계산 클러스터에는 몇 가지 기본적인 요구 사항이 있고, 이러한 요구 사항은 Compute Cluster Pack을 설치하면 충족됩니다. CCP는 다음이 포함된 독립 실행형 설치 패키지입니다.

  • 통합 작업 스케줄러
  • 산업 표준 MPICH2를 위한 MPI(Messaging Passing Interface) 지원
  • 클러스터 리소스 관리 및 사용자 도구

CCP는 CCE와 WCCS를 구분하는 가장 핵심적인 요소입니다. 계산 클러스터에 이러한 구성 요소가 필요하다면 왜 WCCS에만 있고 CCE에는 없는지 궁금할 수도 있을 겁니다. 그 이유는 HPC 솔루션에 따라 다른 작업 스케줄러 또는 전문화된 MPI가 사용되거나 MPI가 전혀 필요하지 않아 솔루션을 실행할 뛰어난 플랫폼(예: Windows Server 2003)만 필요할 수도 있기 때문입니다. 그리고 CCP는 독립 실행형 패키지이므로 다른 x64 버전의 Windows Server 2003(CCE, Standard, Standard R2, Enterprise 및 Enterprise R2)에 설치할 수도 있습니다.

작동 방식

WCCS는 Active Directory® 및 RIS(원격 설치 서비스)를 비롯한 핵심 Windows 기본 기술을 활용하여 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를 사용하면 새 클러스터 노드를 빠르게 설치할 수 있습니다. RIS는 WCCS에 간편하게 통합되어 있기 때문에 반드시 이러한 방법으로 배포할 필요는 없습니다. Windows Server 2003 ADS(자동 배포 서비스)나 Windows Server 2003의 수동 설치와 같은 다른 일반적인 Windows Server 배포 기술도 사용될 수 있습니다.

RIS를 사용하려면 헤드 노드에 CCP를 설치하기 전에 논리 디스크가 두 개 이상 정의되어야 합니다. RIS에는 운영 체제 디스크와는 별도로 서버 이미지를 저장하는 데 사용할 디스크가 필요합니다. RIS 파티션에는 Windows Server 이미지의 전체 복사본을 하나 이상 저장하는 데 충분한 디스크 공간이 있어야 합니다.

최신 서버 하드웨어, 특히 네트워킹 및 저장 장치에는 기본 Window Server 2003 이미지에 들어 있지 않은 플러그 앤 플레이 드라이버가 필요할 수 있습니다. 이 경우 이미지에 해당 드라이버를 수동으로 추가해야 합니다. 이미지에 드라이버를 추가하는 절차는 온라인 문서 support.microsoft.com/kb/254078을 참조하십시오.

클러스터 설치

첫 번째 단계는 클러스터의 중추라고 할 수 있는 헤드 노드를 구성하는 것입니다. 먼저 앞서 설명한 Windows Server 2003의 x64 버전 중 하나를 설치합니다. 운영 체제를 설치하는 동안 서버의 기존 도메인 참가(권장) 여부나 서버에 Active Directory를 설치(대규모 클러스터에는 권장되지 않음)할지 여부를 선택합니다.

운영 체제를 설치한 후에는 Microsoft Update를 통해 모든 권장 픽스를 다운로드하여 설치합니다. 계산 노드 이미징에 RIS를 사용하려면 컴퓨터 관리 | 디스크 관리 관리 도구를 사용하여 논리 디스크가 두 개 이상 정의되어 있는지 확인해야 합니다. 지면 관계로 이 기사에서는 RIS 기반 설치에 대해 다루지 않습니다.

성공적으로 로그인하여 서버를 업데이트했으면 CCP 설치 프로그램을 실행합니다. CCP 설치 프로그램은 다음과 같은 필수 파일과 업데이트를 자동으로 설치하거나 다운로드하여 설치하는 과정을 안내합니다.

CCP 설치 프로그램은 시스템의 설치 준비 상태도 효과적으로 평가해 줍니다. 그림 1에 표시된 대로 프로세스를 진행하는 동안 필수적으로 설치되는 구성 요소를 알려 주고 해당 구성 요소를 설치합니다.

그림 1 CCP 설치에 필요한 구성 요소

그림 1** CCP 설치에 필요한 구성 요소 **(더 크게 보려면 이미지를 클릭하십시오.)

To Do List(할 일 목록)

CCP 설치가 완료되면 To Do List(할 일 목록)에 포커스가 있는 상태로 관리자 콘솔이 실행됩니다. 그림 2에 표시된 대로 To Do List(할 일 목록)에는 각각 서로 다른 분야를 다루며 클러스터 구성을 완료하는 데 핵심이 되는 작업을 보여 주는 몇 개의 창이 있습니다.

그림 2 클러스터 구성에 필요한 작업을 보여 주는 To Do List(할 일 목록)

그림 2** 클러스터 구성에 필요한 작업을 보여 주는 To Do List(할 일 목록) **(더 크게 보려면 이미지를 클릭하십시오.)

To Do List(할 일 목록)를 사용하여 네트워크 토폴로지, 노드 설치 프로세스 및 사용자 관리 모델을 선택하고 구성하는 등 설계한 클러스터 아키텍처를 쉽게 구현할 수 있습니다. 각 창의 작업은 오른쪽에 나열되고 작업을 선택하면 마법사가 실행됩니다. 이 마법사를 사용하여 알려진 계산 노드 집합에 RIS 이미지를 배포할 준비가 되어 있고 정의된 사용자 집합이 관리 및 액세스할 수 있는 완벽하게 구성된 헤드 노드에 대해 각각의 작업을 순서대로 완료합니다.

네트워킹 토폴로지 WCCS는 HPC에 가장 많이 사용되는 다섯 가지 네트워크 토폴로지를 지원합니다. 최소한, 모든 계산 노드와 헤드 노드는 공용 네트워크를 공유해야 합니다. 토폴로지에는 노드 사이를 연결하는 각기 별도의 장점과 비용이 있는 여러 종류의 상호 연결망에 대한 지원이 포함되어 있습니다.

네트워크 토폴로지는 클러스터의 성능, 보안 및 배포 요구 사항에 따라 결정됩니다. 예를 들어 사용하는 응용 프로그램에 회사 네트워크에 노출하고 싶지 않은 메시지를 전달하기 위한 고속 상호 연결망이 필요할 수 있습니다. 또한 통합된 RIS 기반의 자동화된 배포 기능을 이용하거나 선택한 하드웨어가 단일 NIC만 지원하거나 헤드 노드에서 ICS(인터넷 연결 공유)를 실행하여 이름 확인과 계산 노드 주소 지정을 관리하기를 원할 수도 있습니다. To Do List(할 일 목록)에서 "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와 같이 관리자 콘솔을 통해 이루어집니다. 관리자 콘솔을 통해 모든 관련 노드의 목록, 핵심 관리 작업에 대한 액세스, 기타 정보를 비롯한 전체 클러스터를 전반적으로 살펴볼 수 있습니다. 맨 왼쪽 창은 콘솔을 통한 상위 탐색 기능을 제공합니다. 그중 "클러스터 관리자"를 선택하면 클러스터 상태와 작업 통계를 보여 주는 요약 화면이 표시됩니다. 모든 원격 데스크톱 및 시스템 모니터링 세션도 여기서 액세스할 수 있지만 대부분의 클러스터 관리 작업은 "Node Management(노드 관리)"를 통해 실행됩니다.

그림 5 전체 클러스터에 대한 보기를 제공하는 관리자 콘솔

그림 5** 전체 클러스터에 대한 보기를 제공하는 관리자 콘솔 **(더 크게 보려면 이미지를 클릭하십시오.)

Windows와 클러스터 노드를 중앙에서 관리하는 데 필요한 주요 도구와 기능은 모두 관리자 콘솔에서 액세스해야 하므로 직접 주의 깊게 살펴보시기 바랍니다. 위쪽 가운데 창에서 클러스터 노드를 한 번 클릭하면 다른 창이 몇 개 나타나고 노드별 기능을 탐색할 수 있게 됩니다.

오른쪽 클릭 메뉴에서 제공하는 기능을 사용하면 Node Management(노드 관리)에서 계산 노드를 중앙 집중식으로 손쉽게 관리할 수 있습니다. Node Management(노드 관리)는 노드를 일시 중지 및 다시 시작하거나 클러스터에서 노드를 승인 또는 제거하거나 원격 데스크톱, 시스템 모니터 또는 이벤트 뷰어를 시작하거나 CD 트레이를 꺼내는 데 사용할 수 있습니다. 특히 CD 트레이를 꺼내는 기능은 대규모 클러스터에서 특정 컴퓨터를 물리적으로 식별할 때 매우 유용합니다.

유용한 ClusRun

이 목록에서 가장 유용한 기능으로는 "실행 명령"을 들 수 있습니다. 마치 대상 컴퓨터의 명령 프롬프트를 사용하는 것처럼 임의의 명령을 원격으로 실행할 수 있습니다. WCCS에는 Clusrun.exe라는 실행 명령 기능의 명령줄 버전이 포함되어 있습니다. "ClusRun"은 GUI와 명령줄 버전을 함께 지칭합니다.

특히 대규모 클러스터에 있어서 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 팀에서 기술 제품 관리자로 일하고 있습니다. John에게 문의 사항이 있으면 Johnkel@microsoft.com으로 연락하십시오.

Doug Lindsey는 Microsoft HPC 팀의 프로그램 관리자로서, 2007년 11월 목록(www.top500.org)의 116번을 비롯한 계산 클러스터의 제작도 관리하고 있습니다. Doug에게 문의 사항이 있으면 Dougli@microsoft.com으로 연락하십시오.

© 2008 Microsoft Corporation 및 CMP Media, LLC. All rights reserved. 이 문서의 전부 또는 일부를 무단으로 복제하는 행위는 금지됩니다..