hpc 클러스터 구현...

22
15/37 HPC 클러스터 구현 이슈

Upload: others

Post on 28-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

15/37

HPC 클러스터 구현 이슈

Page 2: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

16/37

전통적인 HPC 클러스터성능요인•컴퓨팅노드성능

– 프로세서 성능: Clock speed / processor type (CISC, RISC, Multi-Core)

– GPGPU

– 메모리 성능: Cache memory size / Memory Bandwidth

•네트워크성능– 네트워크 속도: Latency and bandwidth

– 네트워크 종류: TCP-IP / RDMA

– 네트워크 스위치 성능: Backplane Bandwidth / Interconnection Performance

•컴파일러– GNU / PGI / Intel / Microsoft

• Message Passing Library

– Open MPI / Intel MPI

• Job Scheduler

– LSF / PBS / Open PBS / Torque / SGE

•병렬파일시스템및스토리지– Lustre / GPFS / Gluster / IBRIX

Page 3: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

17/37

실제연구생산성에영향을미치는요인•멀티코어 CPU

– 멀티 코어 CPU 발전으로 subdomain 수 증가 -> Interconnection Network 성능 이슈 발생

• Pre/Post Processing 이슈– 계산 문제가 대형화 됨에 따라, Pre-processing 및 Post-processing 을 위한 고성능 Workstation 필요– 초대형 문제의 Input 및 Output 데이터를 처리할 수 있는 Workstation의 용량은?

– 사용자 Workstation에서의 처리를 위해 데이터를 가공해야만 하는가?

•대형계산문제의 input 및 output 데이터전송시간– 클러스터에서 데이터를 직접 Pre/Post Processing 수행?

– Pre/Post Processing은 사용자 Workstation에서 수행, 클러스터에서는 계산만 수행?

• Job Scheduler 성능이슈– 실제 계산 시간 vs 작업 대기 시간 vs Interactive 작업 요청

•스토리지성능이슈– 대용량 데이터 저장 vs 소량 다수 파일 저장

Page 4: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

18/37

사용자관점에서의 HPC 성능이슈포인트

Enterprise Network

Private Network

Application Network

WAN

AD1

AD2HEAD NODE

COMPUTE NODESShared File Server

Workstations

Terminal

Server

Data Center사용자 1

2

3

4

5

1 컴퓨팅 노드 성능2 Job Scheduler 성능3 스토리지 성능4 Terminal Server 성능5 WAN 구간 데이터 전송 성능

Root-Cause

파악High

Productivity Computing

Page 5: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

19/37

클라우드 컴퓨팅 기술의 HPC 적용

Page 6: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

20/37

클라우드인프라와 HPC 인프라구성비교

HPC 클라우드구성 요소 특징 구성 요소 특징로그인 노드 사용자 로그인 및 작업 실행Scheduler / 인증 등 관리서버 사용자 로그인 및 자원 요청웹 / DB 등컴퓨팅 노드 HPC 전용 OS 및 라이브러리연산 작업 수행멀티 코어 / 대용량 메모리 가상화 서버 하이퍼바이저 설치가상 머신 실행멀티 코어 / 대용량 메모리공유 스토리지 계산 결과 저장NFS / 병렬 파일 시스템 공유 스토리지 가상 머신 이미지 저장NFS / 분산 파일 시스템관리 네트워크 HPC 관리 관리 네트워크 클라우드 관리컴퓨팅 네트워크 컴퓨팅 노드간 연산 데이터 전송 / 인피니밴드 / 10Gbps VM 네트워크 가상 머신 간 통신 수행 / 10Gbps

Page 7: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

21/37

하이퍼바이저비교

•Hypervisor를 통해서 Guest OS들이하드웨어 자원을 공유함• Hypervisor의 중재를 통해 보호를받는 특정 명령어 들은 VMM내에서Trapping 되거나 handle 되어야 함•실제 하드웨어 성능보다는 성능 저하

•Hypervisor를 이용하여 하드웨어에 액세스 하지만, 가상화 인식 코드를 Guest OS로 통합함•트래핑 등이 필요 없으나 가상화 인식코드가 Guest OS에 통합되어야 함으로, Guest OS 들이 Hypervisor에 맞게 수정되어야 함•하드웨어에 가까운 성능을 보임

•리눅스 커널을 커널 모듈을 사용하는 하이퍼바이저로 전환한다는 점에서 전체 가상화의 일종•KVM 모듈을 통해 Guest OS들이 호스트리눅스 커널의 User Space에서 실행됨•KVM 모듈은 /dev/kvm 캐릭터 장치를통해 가상화된 하드웨어를 Guest OS에서억세스•QEMU 프로세스를 사용해서 KVM 모듈과 인터페이스 함

Linux KVMParavirtualizationFull Virtualization

Page 8: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

22/37

가상머신에서의 CPU 성능비교테스트 환경

XEN HYPER-V 물리적서버CPU Quad vCPU Quad vCPU Intel Xeon 3.1GHz Quad

Memory 2048 MB Static 2048 MB Static 4GB

HDD 48GB LVM Differential 48GB VHD Differential SATA2 250GB

NIC vNIC vNIC 1GB Onboard NIC

OS Windows HPC 2008R2 SP1 Windows HPC 2008R2 SP1 Windows HPC 2008R2 SP1

PassMark Rating

XEN HYPER-V 물리적서버PassMark Rating 1257.9 1250.6 1370.5

- CPU Mark 6319.3 6556.9 6654.3

- 2D Graphics Mark 367.4 366.6 379.1

- Memory Mark 997.5 1035.7 1452.5

- Disk Mark 364.9 348 370.2

(높을 수록 좋음)

MG-ALFA

Var_Cluster_Run XEN HYPER-V 물리적서버1회 9:34 10:52 11:49

2회 11:51 10:15 13:20

3회 10:01 9:48 8:54

4회 10:13 11:53 12:16

5회 11:03 10:40 8:15

(분/ 낮을 수록 좋음)

OpenMP CFD

XEN HYPER-V 물리적서버small 46.05 46.38 42.3

medium 78.42 76.47 79.37

large 96.77 92.72 89.08

(초/ 낮을 수록 좋음)

MPI Test

XEN HYPER-V 물리적서버4 Proc 51.137 52.066 49.452

Startup 0.094 0.25 0.093

Exec 50.871 51.659 49.172

Post 0.172 0.157 0.187

(초/ 낮을 수록 좋음)

Page 9: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

23/37

하이퍼바이저 I/O 가상화

Hypervisor-based device emulation User space device emulation

Device Pass-through

•Hypervisor-based Device Emulation– 하이퍼바이저에서 Guest OS의 디바이스 드라이버를 에뮬레이션– 물리적 하드웨어에 상관없이 Guest OS에서 지원•User space device emulation– 하이퍼바이저에서 물리적인 디바이스 드라이버 제공– Guest OS에서는 Para-virtualized driver 지원•Device Pass-through– Guest OS에서 물리적인 디바이스를 직접 억세스– Near-native performance 지원– Guest OS 들이 Pass-through Device를 공유할 수 없음

Page 10: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

24/37

Xen I/O 와 KVM I/O 비교

•Guest OS에서 발생한 I/O는 Guest OS의 Front-end Driver를 통해 dom0의 Back-end Driver를거쳐 I/O Proxy (qemu)를 거쳐 하드웨어의Native 드라이버를 통해 전송됨• I/O Proxy에서는 Context Switching이 발생하고여기에서 Overhead가 발생함

•KVM은 Hypervisor가 Kernel 모듈로 OS의scheduler가 관리함•KVM에서의 I/O Path는 Guest OS의 드라이버를거쳐 I/O Proxy를 통해 Host OS의 Native Driver로 전송됨•일반적으로 Xen에 비해 I/O 단계가 적음

Page 11: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

25/37

GPU Pass-through in Citrix XenServer

• Citrix XenServer GPU Pass-through

– 데스크탑 가상화 VM에서 3D 가속 지원– HDX 3D 프로토콜을 통해 원격에서 3D 환경 지원

GPU Pass-through Video 드라이버

Quadro FX2000 2GB on XenDesktop VMnVidia FX380m 512MB on Elite 8440W

Page 12: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

26/37

SR-IOV (Single Root IO Virtualization)

• SR-IOV

– 단일 서버의 PCIe 디바이스를 복수의 VM이 공유– I/O 디바이스의 Virtual Function을 Guest OS에서 억세스– 하이퍼바이저는 디바이스의 Virtual Function을 VM에 매핑– Native Performance 구현

Page 13: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

27/37

Moving Cluster Application to the Cloud (by NASA)

• NASA’s Flexible Cloud Fabric: Moving Cluster Applications to the Cloud

– http://www.intelethernet-dell.com/tag/case-study/feed/

– NASA Nebula Cloud : Eucalyptus on the XEN and KVM

Page 14: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

28/37

데스크탑클라우드스토리지구성• VDI의 일반적인 시스템 구성에서는 공유 (Shared) 스토리지 구성이 필수적임• VDI에서 제공되는 가상데스크탑 OS의 구성내역은 다음과 같음

– VM OS & Application 영역: Windows XP3 의 경우 일반적으로 16GB, Windows 7의 경우 30GB 를 권장함– 사용자 Profile 및 데이터 영역: 정책적으로 할당

• 1000 User VDI의 경우 전체 Storage 용량은 다음과 같음 (Windows 7 예)

– Dedicated VM: ( OS 영역 30GB + 사용자 영역 70GB ) x 1000 = 100 TB Usable

– Pooled VM: OS 영역 30GB + 사용자 영역 70GB x 1000 = 70TB Usable

• OS 용 공유 스토리지(FC/iSCSI/NAS)와 사용자 데이터용 공유 스토리지(NAS)의 분리가 권장됨

LocalStorage가상화Host#1 가상화Host#2 가상화Host#3

OS 영역30 TB(Usable) Data 영역70 TB(Usable)관리용서버#1 관리용서버#2

LocalStorage

Desktop 가상화 Pool

고성능 FC / iSCSI / NAS 대용량 NAS

Bottleneck은 OS 영역과Data 영역에서 동시에발생한다.

Page 15: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

29/37

VDI 를위한 I/O 성능산정•VDI의 원활한 성능을 위해서는 I/O 성능 산정이 필수적임

– VDI의 VM의 I/O 성능 요구치를 OS 영역의 경우 40 IOPS, 데이터 영역을 20 IOPS 라고 할 경우 총 I/O 는 다음과 같이 산정함– 1000 User 서비스를 위해, 서버당 40개의 VM, 총 25대의 서버로 산정 (Hypervisor Overhead 및 RAID Overhead는 고려하지 않음)

VM 1

OS 1

Data 1

Hypervisor 1

VM 2

OS 2

Data 2

VM 40

OS 40

Data 40

40 IOPS 20 IOPS

VM 1

OS 1

Data 1

Hypervisor M

VM 2

OS 2

Data 2

VM 40

OS 40

Data 40

40 IOPS 20 IOPS

OS 스토리지 사용자 데이터스토리지① 서버당 OS I/O ① 서버당 사용자 I/O② OS 스토리지 총 I/O ② OS 스토리지 총 IO

서버당 OS IOPS = 40 IOPS * 40 = 1600 IOPS (32KB * 1600 = 50 MB/s = 400 Mbps)

OS 스토리지 총 IOPS = 1600 * 25 = 40000 IOPS ( 50 MB/s * 25 = 1250 MB/s = 10 Gbps)

서버당 사용자 IOPS = 20 IOPS * 40 = 800 IOPS

사용자 스토리지 총 IOPS = 800 * 25 = 20000 IOPS예시임 15K SAS HDD : 180 IOPS

Page 16: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

30/37

VDI I/O 성능개선방안 – Storage Tiering 구성• VDI의 성능 개선을 위해 고성능 Steering Storage를 도입

• 서버의 I/O 성능 확보를 위해 HBA 또는 10G NIC를 복수로 장착• 스토리지 I/O 성능 확보를 위해 스토리지 Controller에 충분한 대역폭 확보• 스토리지 자체에 SSD / FC 드라이브 / SAS Disk 를 계층적으로 구성하여, I/O 성능이 필요한 OS 영역은 SSD에 저장• Tiering Storage와 함께 NAS Gateway 로 Scale out NAS 구성

SSDFC 드라이브SAS Disk

ControllerHypervisor 1

VM 1

OS 1

Data 1

VM N

OS N

Data N Steering Storage

Hypervisor M

VM 1

OS 1

Data 1

VM N

OS N

Data N

Page 17: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

31/37

클라우드 환경과 HPC 환경의 융합

Page 18: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

32/37

데스크탑가상화환경와 HPC 통합 – VDI를프론트엔드시스템으로통합

Page 19: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

33/37

데스크탑가상화환경와 HPC 통합 –사용자데이터사용

Page 20: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

34/37

VDI 환경에서의 Financial HPC 구현•다량의분산컴퓨팅(Distributed Computing) 자원이특정시기에필요•한번의연산은일정시간동안수행•각연산노드간에는네트워크통신이불필요•병렬파일시스템이필요하지않은결과값만저장

Page 21: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

35/37

맺음말

Page 22: HPC 클러스터 구현 이슈gotocloud.co.kr/wp-content/uploads/2013/12/클라우드-컴퓨팅... · 데스크탑클라우드스토리지구성 •VDI 의일반적인시스템구성에서는공유(Shared)

36/37

클라우드환경과 HPC의융합• HPC 클러스터는고성능컴퓨팅을서비스형태로제공•클라우드컴퓨팅은유연성향상을목적으로함•클라우드컴퓨팅환경에서 HPC 구현을위한성능고려사항

– 프로세스 성능 : 가상 머신에서의 CPU 프로세스 오버헤드 감소– 네트워크 I/O : PCI Pass-through 및 SR-IOV를 통한 네트워크 오버헤드 절감– GPU Pass-through 를 이용한 VM에서의 GPU 억세스– 스토리지 Tiering 및 Scale-out NAS를 통한 고속 및 대용량 파일 I/O 지원– Live Migration 및 VM Provisioning 을 통한 HPC VM 실시간 생성 및 사용– Job Scheduler와 VM Provisioning의 결합

• VDI 및클라우드스토리지를이용한 HPC 접속환경개선– VDI를 이용한 Pre-processing 및 Post Processing 효율성 개선– 클라우드 스토리지를 이용한 사용자 Input / Output 결과 업/다운로드 효율성 개선