Microsoft HPC 생성하기

HPC(High-Performance Computing)란

복잡한 연산을 풀기 위한 컴퓨터로, 슈퍼컴퓨터 또는 컴퓨터 클러스터를 의미합니다. 본 설치 가이드는 Microsoft에서 제공하는 HPC Pack을 보다 쉽게 설치할 수 있도록 init Script를 이용한 방법을 소개합니다.

구성 시 주의 사항

  • HPC, Active Directory의 모든 노드 간에 통신이 원활해야 합니다.
  • ACG 설정 시 아래의 HPC 서비스에서 사용하는 포트를 참고해 설정해야 합니다.
  • 모든 설치가 완료된 후 init Script에서 Active Directory 계정 관련 정보를 반드시 삭제해야 합니다.

Active Directory 구성하기

  • Windows HPC Pack 2012 R2는 Active Directory를 기반으로 구성됩니다.
  • 사용 중인 Active Directory가 있다면 HPC Service용 계정을 추가한 후 HPC Head 노드 설치하기를 진행합니다.

① Active Directory 설치를 위한 init Script를 등록합니다.

  • 콘솔 화면에서 init Script를 클릭해 신규 init Script를 등록합니다.

② Script 내용에 변수의 값을 적절히 변경해 아래의 내용을 기입합니다.

  • domain: 사용자가 생성하고자 하는 Active Directory Domain Name
  • domain_password: Domain Admin 계정의 Password
  • hpc_user: HPC 서비스에서 사용할 Domain user명
  • hpc_password: HPC 계정의 Password
domain = "ncp.local"
domain_password = "qwer!234"
hpc_user = "ncp\hpcadmin"
hpc_password = "qwer!234"

Dim oFSO
On Error Resume Next
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CreateFolder "C:\Windows\Temp\hpc"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe wget -uri http://init.ncloud.com/hpc/install_ad.ps1 -outfile c:\Windows\Temp\hpc\install_ad.ps1")
WScript.Sleep 60000
command = "powershell.exe -noexit -f c:\windows\temp\hpc\install_ad.ps1 -domain " & domain & " -domain_password " & domain_password & " -hpc_user " & hpc_user & " -hpc_password " & hpc_password
objShell.Run(command)

③ VM 생성 약 10분 후 VM에 접속합니다.

  • Active Directory Users and Computers를 열어 도메인 구성이 정상적으로 완료되었는지 확인합니다.
  • C:\Windows\Temp\Hpc\add_hpcuser.ps1 파워셸 스크립트를 실행해 HPC 서비스 계정 등록 및 권한을 설정 합니다.

HPC Head 노드 설치하기

Head 노드는 Windows HPC에서 job scheduling, deployment, cluster 관리를 담당하고 있습니다.

Head 노드는 단일 노드 구성 또는 여러 노드를 이용해 HA 구성이 가능하며 본 가이드에서는 단일 노드로의 구성 방법을 제공하고 있습니다. HPC의 availability가 중요한 고객께서는 Head 노드의 이중화를 고려해 주시기 바랍니다.

① HPC Head 노드 설치를 위한 init Script 등록

② Script란에 아래 vbs 스크립트의 변수를 적절히 변경해 기입합니다.

  • domain: HPC Head 노드가 가입할 Domain명
  • dns_ip: HPC Head 노드가 가입할 Active Directory 서버의 IP 주소를 기입합니다.
  • domain_user: HPC 설치를 진행할 domain administrator 계정을 기입합니다.(본 가이드에서는 domain administrator 계정을 사용했으나 기존 Active Directory를 이용해 구성하시는 고객께서는 HPC 설치 시 필요한 권한을
              갖는 다른 계정을 사용하셔도 무방합니다.)
    
  • domain_password: hpc 설치를 진행할 domain administrator 권한 계정 Password를 기입합니다.
domain = "ncp.local"
dns_ip = "Active Directory IP 기입(예: 10.10.10.10) "
domain_user = "ncp\administrator"
domain_password = "ncpncp1@"

Dim oFSO
On Error Resume Next
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CreateFolder "C:\Windows\Temp\hpc"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe wget -uri http://init.ncloud.com/hpc/join_headnode.ps1 -outfile c:\Windows\Temp\hpc\join_headnode.ps1")
WScript.Sleep 60000
command = "powershell.exe -noexit -f c:\windows\temp\hpc\join_headnode.ps1 -domain " & domain & " -dns_ip " & dns_ip & " -domain_user " & domain_user & " -domain_password " & domain_password
objShell.Run(command)

③ Active Directory 노드의 Active Directory Users and Computers 도메인 아래의 ComputersHPC-HEAD 객체가 생성된 것을 확인 후 ②번에서 domain_user, domain_password 변수에 설정한 계정 정보를 이용해 Head 노드에 로그인합니다. (예: 계정: ncp\administrator, 서버 패스워드: qwer!234)

④ HPC Pack 설치 진행을 위해 C:\Windows\Temp\Hpc 아래에 install_head.ps1 파워셸 스크립트를 실행합니다.

⑤ 설치가 완료되면 HPC Cluster Manager를 실행해 정상적으로 설치가 완료되었는지 확인합니다.

HPC Broker 노드 설치하기

① HPC Broker 노드 설치를 위한 init Script를 등록합니다.

② Script란에 아래 vbs 스크립트의 변수를 적절히 변경해 기입합니다.

  • node_type: 설치한 노드의 타입을 선택합니다.(broker)
  • Domain: HPC Broker 노드가 가입할 Domain명
  • dns_ip: HPC Broker 노드가 가입할 Domain Controller 서버의 IP 주소를 기입합니다.
  • domain_user: HPC 설치를 진행할 domain administrator 계정을 기입합니다.
  • domain_password: HPC 설치를 진행할 domain administrator 권한 계정 Password를 기입합니다.
  • hpcuser: HPC 서비스 실행 시 사용할 Domain user명
  • hpcpassword: HPC 서비스 실행 시 사용할 Domain user의 Password
node_type = "broker"
domain = "ncp.local"
dns_ip = "Active Directory IP 기입(예: 10.10.10.10) "
headnode = "hpc-head.ncp.local"
domain_user = "ncp\administrator"
domain_password = "ncpncp1@"
hpc_user = "ncp\hpcadmin"
hpc_password = "ncpncp1@"

Dim oFSO
On Error Resume Next
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CreateFolder "C:\Windows\Temp\hpc"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe wget -uri http://init.ncloud.com/hpc/join_domain_others.ps1 -outfile c:\Windows\Temp\hpc\join_domain_others.ps1")
WScript.Sleep 60000
command = "powershell.exe -noexit -f c:\windows\temp\hpc\join_domain_others.ps1 -node_type " & node_type & " -domain " & domain & " -dns_ip " & dns_ip &" -domain_user " & domain_user & " -domain_password " & domain_password & " -headnode "& headnode & " -hpc_user " & hpc_user & " -hpc_password " & hpc_password
objShell.Run(command)

③ VM 생성 약 10분 정도 후에 HPC Head 노드의 HPC Cluster Manager에서 Broker 노드가 정상적으로 등록되었는지 확인합니다.

HPC Compute 노드 설치하기

① HPC Compute 노드 설치를 위한 init Script를 등록합니다.

② Script란에 아래 vbs 스크립트의 변수를 적절히 변경해 기입합니다.

  • node_type: 설치한 노드의 타입을 선택합니다.(compute)
  • Domain: HPC Compute 노드가 가입할 Domain명
  • dns_ip: HPC Compute 노드가 가입할 Domain Controller 서버의 IP 주소를 기입합니다.
  • domain_user: HPC 설치를 진행할 domain administrator 계정을 기입합니다.
  • domain_password: HPC 설치를 진행할 domain administrator 권한 계정 Password를 기입합니다.
  • hpcuser: HPC 서비스 실행 시 사용할 Domain user명
  • hpcpassword: HPC 서비스 실행 시 사용할 Domain user의 Password
node_type = "compute"
domain = "ncp.com"
dns_ip = "Active Directory IP 기입(예: 10.10.10.10) "
headnode = "hpc-head.ncp.com"
domain_user = "ncp\administrator"
domain_password = "qwer!234"
hpc_user = "ncp\hpcadmin"
hpc_password = "qwer!234"

Dim oFSO
On Error Resume Next
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CreateFolder "C:\Windows\Temp\hpc"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe wget -uri http://init.ncloud.com/hpc/join_domain_others.ps1 -outfile c:\Windows\Temp\hpc\join_domain_others.ps1")
WScript.Sleep 10000
command = "powershell.exe -noexit -f c:\windows\temp\hpc\join_domain_others.ps1 -node_type " & node_type & " -domain " & domain & " -dns_ip " & dns_ip &" -domain_user " & domain_user & " -domain_password " & domain_password & " -headnode "& hpc_head & " -hpc_user " & hpc_admin & " -hpc_password " & hpc_password
objShell.Run(command)

③ VM 생성 약 10분 정도 후에 HPC Head 노드의 HPC Cluster Manager에서 Compute 노드가 정상적으로 등록되었는지 확인합니다.

HPC Network Topology 설정하기

HPC Network Topology 종류

본 설치 가이드에서는 전체 노드가 Enterprise Network에 연결되어 있는 구성으로 자동 설정됩니다. Private Subnet 등을 이용하는 고객께서는 아래의 가이드를 참고하여 Head 노드의 Cluster Manager에서 설정을 변경할 수 있습니다.

① Compute nodes isolated on a private network

  • Head 노드의 2개의 Network Adapter는 Enterprise Network, Private Network에 모두 연결되어 있음
  • Compute 노드는 하나의 Network Adapter만 있으며 이 adapter는 Private Network에 연결되어 있음
  • Head 노드와 Compute 노드의 모든 통신은 Private Network를 통해 이뤄짐

② All nodes on enterprise and private networks

  • Head 노드와 그 외에 다른 노드들도 Enterprise Network와 Private Network에 연결된 2개의 Network Adapter를 갖고 있음
  • 모든 노드 간 통신은 Private Network를 통해 이뤄짐
  • Private Network에 연결되지 않은 다른 서버 또는 서비스와의 통신은 Enterprise Network를 통해 이뤄짐

③ Compute nodes isolated on private and application networks

  • Head 노드는 Enterprise Network, Private Network, Application Network(High Performance)에 연결된 3개의 Adapter를 갖고 있음
  • 모든 Compute 노드는 Private Network, Application Network에 각각 연결된 2개의 Network Adapter를 갖고 있음
  • Private Network는 Head와 Compute 노드 간 배포 및 관리 통신을 위해 사용됨
  • Application Network는 클러스터에서 MPI Job 실행 시 높은 성능을 위해 compute 노드 간 통신 시 사용됨

④ All nodes on enterprise, private, and application networks

  • Head 노드는 Enterprise Network, Private Network, Application Network(High Performance)에 연결된 3개의 Adapter를 갖고 있음
  • 모든 Compute 노드는 Private Network, Application Network에 각각 연결된 2개의 Network Adapter를 갖고 있음
  • Private Network는 Head와 Compute 노드 간 배포 및 관리 통신을 위해 사용됨
  • Application Network는 클러스터에서 latency에 민감한 MPI Job 등이 실행될 때 사용됨

⑤ All nodes only on an enterprise network

  • 클러스터 내 모든 노드가 Enterprise Network에 연결된 Network Adapter만 갖고 있으며 이를 통해서만 통신함

참고 URL: https://docs.microsoft.com/en-us/powershell/high-performance-computing/appendix-1-hpc-cluster-networking?view=hpc16-ps

HPC Network Topology 설정 방법

① HPC Headnode의 Cluster Manager 실행 후 Configure your Network 클릭

② Network Topology Selection에서 1. Compute nodes isolated on private network 선택

③ Enterprise 네트워크 확인

④ Private Subnet 네트워크 확인

⑤ NAT와 DHCP 사용 모두 해제

⑥ Private Network에 대한 방화벽 설정 해제

⑦ 최종 확인 후 Configure 클릭

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...