Top Banner
ISSN 2383-6318(Print) / ISSN 2383-6326(Online) KIISE Transactions on Computing Practices, Vol. 21, No. 9, pp. 587-595, 2015. 9 http://dx.doi.org/10.5626/KTCP.2015.21.9.587 논문수정 : 2015527이 연구는 2015년 미래창조과학부의 재원으로 한국천문연구원 달 및 태양계 소천 체 형성과 진화연구 사업과 2015 년도 KISTI 기관 주요 사업(K-15-L01-C01-S01) 의 지원을 받아 수행되었습니다. (Revised 27 May 2015) 심사완료 : 2015610(Accepted 10 June 2015) †† 정 회 원 비 회 원 : : 한국과학기술정보연구원 슈퍼컴퓨팅융합연구센터 (KISTI) [email protected] (Corresponding author) 한국과학기술정보연구원 슈퍼컴퓨팅서비스센터 [email protected] Copyright2015 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작물 의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위 를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회 컴퓨팅의 실제 논문지 제21권 제9(2015. 9) 논문접수 : 201547(Received 7 April 2015) 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 (Container-based Cluster Management System for User-driven Distributed Computing) 박주원 함재균 †† (Ju-Won Park) (Jaegyoon Hahm) 전통적으로 고에너지 물리, 해양, 기상, 천문 우주 등 다양한 과학 분야에서 수천 코어 이상의 CPU를 사용하는 대규모 워크플로우 지원을 요구하고 있으며 이를 위해 대부분 슈퍼컴퓨터와 같은 클러스 터 기반의 대용량 시스템이 활용되고 있다. 이러한 시스템은 다수의 사용자 및 기관에 의해 공유되고 있 으며, 사용자들의 다양한 요구 사항으로 인해 시스템 운영 및 관리에 많은 어려움이 있다. 본 논문에서는 가상화로 인한 성능 저하 문제를 최소화하고 사용자가 원하는 환경을 동적으로 제공하기 위해 컨테이너 기반 클러스터 관리 플랫폼 방안을 제시하고 구축 사례를 소개한다. 본 논문의 의의는 다음 3가지로 볼 수 있다. 먼저, 컨테이너 기반 가상화 기술과 스케줄러 기능을 연동하여 큰 성능 저하 없이 대규모의 과학 워크플로우 지원을 위한 클러스터 구성 및 관리 방안을 제시하였다. 둘째, Docker HTCondor를 활용 하여 제시된 방안을 손쉽게 구축한 사례를 소개하였다. 셋째, 널리 활용되는 벤치마크 툴을 이용하여 Docker 성능을 검증하였으며, 다양한 프로그램 언어로 구현된 몬테카를로 시뮬레이션을 통해 과학 워크플 로우 지원 예제를 제시하였다. 키워드: 컨테이너 기반 가상화 기술, 분산 컴퓨팅, 사용자 맞춤형, HTCondor, docker Abstract Several fields of science have traditionally demanded large-scale workflow support, which requires thousands of central processing unit (CPU) cores. In order to support such large-scale scientific workflows, large-capacity cluster systems such as supercomputers are widely used. However, as users require a diversity of software packages and configurations, a system administrator has some trouble in making a service environment in real time. In this paper, we present a container-based cluster management platform and introduce an implementation case to minimize performance reduction and dynamically provide a distributed computing environment desired by users. This paper offers the following contributions. First, a container-based virtualization technology is assimilated with a resource and job management system to expand applicability to support large-scale scientific workflows. Second, an implementation case in which docker and HTCondor are interlocked is introduced. Lastly, docker and native performance comparison results using two widely known benchmark tools and Monte-Carlo simulation implemented using various programming languages are presented. Keywords: Container-based virtualization, distributed computing, user-driven, HTCondor, docker
9

사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

Aug 25, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

ISSN 2383-6318(Print) / ISSN 2383-6326(Online)

KIISE Transactions on Computing Practices, Vol. 21, No. 9, pp. 587-595, 2015. 9

http://dx.doi.org/10.5626/KTCP.2015.21.9.587

논문수정 : 2015년 5월 27일․이 연구는 2015년 미래창조과학부의 재원으로 한국천문연구원 달 태양계 소천

체 형성과 진화연구 사업과 2015년도 KISTI 기 주요 사업(K-15-L01-C01-S01)

의 지원을 받아 수행되었습니다.

(Revised 27 May 2015)

심사완료 : 2015년 6월 10일

(Accepted 10 June 2015)†

††

정 회 원

비 회 원

:

:

한국과학기술정보연구원 슈퍼컴퓨 융합연구센터

(KISTI)

[email protected]

(Corresponding author임)

한국과학기술정보연구원 슈퍼컴퓨 서비스센터

[email protected]

CopyrightⒸ2015 한국정보과학회ː개인 목 이나 교육 목 인 경우, 이 작물

의 체 는 일부에 한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때,

사본은 상업 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처를 반드시

명시해야 합니다. 이 외의 목 으로 복제, 배포, 출 , 송 등 모든 유형의 사용행

를 하는 경우에 하여는 사 에 허가를 얻고 비용을 지불해야 합니다.

정보과학회 컴퓨 의 실제 논문지 제21권 제9호(2015. 9)논문 수 : 2015년 4월 7일

(Received 7 April 2015)

사용자 맞춤형 분산 컴퓨 을 한 컨테이 기반 클러스터 리 시스템(Container-based Cluster Management System

for User-driven Distributed Computing)

박 주 원† 함 재 균

††

(Ju-Won Park)    (Jaegyoon Hahm)

요 약 통 으로 고에 지 물리, 해양, 기상, 천문 우주 등 다양한 과학 분야에서 수천 코어 이상의

CPU를 사용하는 규모 워크 로우 지원을 요구하고 있으며 이를 해 부분 슈퍼컴퓨터와 같은 클러스

터 기반의 용량 시스템이 활용되고 있다. 이러한 시스템은 다수의 사용자 기 에 의해 공유되고 있

으며, 사용자들의 다양한 요구 사항으로 인해 시스템 운 리에 많은 어려움이 있다. 본 논문에서는

가상화로 인한 성능 하 문제를 최소화하고 사용자가 원하는 환경을 동 으로 제공하기 해 컨테이

기반 클러스터 리 랫폼 방안을 제시하고 구축 사례를 소개한다. 본 논문의 의의는 다음 3가지로 볼

수 있다. 먼 , 컨테이 기반 가상화 기술과 스 러 기능을 연동하여 큰 성능 하 없이 규모의 과학

워크 로우 지원을 한 클러스터 구성 리 방안을 제시하 다. 둘째, Docker 와 HTCondor를 활용

하여 제시된 방안을 손쉽게 구축한 사례를 소개하 다. 셋째, 리 활용되는 벤치마크 툴을 이용하여

Docker 성능을 검증하 으며, 다양한 로그램 언어로 구 된 몬테카를로 시뮬 이션을 통해 과학 워크

로우 지원 제를 제시하 다.

키워드: 컨테이 기반 가상화 기술, 분산 컴퓨 , 사용자 맞춤형, HTCondor, docker

Abstract Several fields of science have traditionally demanded large-scale workflow support,

which requires thousands of central processing unit (CPU) cores. In order to support such large-scale

scientific workflows, large-capacity cluster systems such as supercomputers are widely used. However,

as users require a diversity of software packages and configurations, a system administrator has some

trouble in making a service environment in real time. In this paper, we present a container-based

cluster management platform and introduce an implementation case to minimize performance reduction

and dynamically provide a distributed computing environment desired by users. This paper offers the

following contributions. First, a container-based virtualization technology is assimilated with a resource

and job management system to expand applicability to support large-scale scientific workflows.

Second, an implementation case in which docker and HTCondor are interlocked is introduced. Lastly,

docker and native performance comparison results using two widely known benchmark tools and

Monte-Carlo simulation implemented using various programming languages are presented.

Keywords: Container-based virtualization, distributed computing, user-driven, HTCondor, docker

Page 2: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

588 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 9 호(2015. 9)

1. 서 론

통 으로 고에 지 물리, 해양, 기상, 천문 우주등

다양한 과학 분야에서는 수천 코어 이상의 CPU를 사용

하는 규모의 워크 로우(workflow) 지원을 요구하고

있다[1,2]. 이러한 워크 로우에는 수만에서 수십만 개의

순차 작업이 조합된 형태인 HTC(High Throughput

Computing)부터 수천에서 수만 코어에서 MPI(Message

Passing Interface)를 통해 병렬 처리되는 작업 형태인

HPC(High Performance Computing)까지 다양하게 존

재한다. 이러한 과학 분야의 워크 로우를 지원하기

해서 부분 슈퍼컴퓨터와 같은 클러스터 기반의 용량

컴퓨터를 이용하며 작업 스 러(job scheduler)을 통

해 다수의 사용자에게 계산 자원을 제공하고 있다. 그러

나 다수의 사용자 기 에 의해 자원이 공유되기 때문

에 많은 제약(challenges)이 존재한다. 그 가장 큰 어

려움은 사용자마다 필요로 하는 소 트웨어 패키지

설정이 다르다는 이다. 이러한 어려움으로 인해 실제

서비스 환경에서는 한번 설치된 운 체제 소 트웨어

스택은 변경 하지 않고 그 로 유지하여 사용한다[3]. 이

로 인해 새로운 기술 개발 활용에 많은 어려움이 있다.

이러한 자원 활용의 문제 을 극복하고 사용자에게

좀더 유연한 서비스 환경을 제공하기 해 Xen, KVM

과 같은 하이퍼바이 기반 가상화 기술을 활용하여 클

러스터를 구성하고 사용자에게 자원을 제공하기 한

많은 연구가 진행되었다[4-6]. 실제로 많은 과학자들은

아마존 웹 서비스(AWS)에서 제공하는 가상 머신을 통

해 연구를 진행하고 있다[7-9]. 최근 들어 하이퍼바이

의 기술 향상 passthrough 방식과 같은 다양한 기법

을 통해 많은 성능 향상이 이루어지고 있으나 하이퍼바

이 로 인한 성능 하 문제는 불가피하다[10].

본 논문에서는 성능 하 문제를 최소화하고 사용자

가 원하는 분산 컴퓨 환경을 동 으로 제공하기 해

컨테이 기반 클러스터 리 랫폼 방안을 제시하고

구축 사례를 소개한다. 컨테이 기반의 가상화 방식은

하이퍼바이 기반 가상화 방식에 비해 우수한 성능을

제공한다[10-12]. 본 논문이 가지는 의의는 다음 세 가

지로 볼 수 있다. 먼 , 컨테이 기반 가상화 방식과

작업 스 러 기능을 연동하여 큰 성능 하 없이

규모의 과학 워크 로우를 지원하기 한 클러스터

리 방안을 제시한다. 기존 컨테이 기반 가상화 연구는

하나의 컴퓨터에서 다수의 서비스 실행 환경을 제공하

기 한 방안에 집 되어 있어 규모 클러스터 자원을

활용하는 과학 워크 로우 지원에는 합하지 않다. 둘

째, 커 수정이 필요하지 않는 LXC(LinuX Containers)

기반의 가상화 방식인 Docker[13]와 HTC 분야에서 많

이 활용되는 스 러인 HTCondor[14]를 연동하여 제

시된 방안을 손쉽게 구축한 사례를 제시하 다. 셋째,

리 활용되는 벤치마크 툴(unixbench[15], sysbench[16])

을 활용하여 Docker 사용했을 경우와 사용하지 않은 경

우(Native)의 성능 비교 결과를 제시하 고 HTCondor

와 Docker가 연동된 환경에서 다양한 로그램 언어로

구 된 몬테카를로 시뮬 이션 결과를 제시하 다.

본 논문의 구성은 다음과 같다. 먼 , 제2 에서는 본 연

구가 필요한 배경과 련 연구를 서술하고, 제3 에서는 제

안한 임워크와 구축 사례를 자세히 기술한다. 제4 에

서는 실험 결과를 제시하고 제5 에서 결론을 제시한다.

2. 배경

2.1 필요성

슈퍼컴퓨터와 같은 부분의 규모 클러스터 자원은

다수의 사용자 기 이 서로 공유하여 사용하고 있다.

이러한 환경에서 사용자가 원하는 서비스 환경(요구되는

운 체제, 소 트웨어 패키지, 설정)이 매우 상이하기 때

문에 사용자의 요구 조건을 모두 충족시키기에는 많은

어려움이 있다. 특히 과학자들이 자체 개발한 코드의 경

우 특정 운 체제 라이 러리 버 을 요구하기 때문

에 이에 한 지원이 매우 어렵다.

이러한 어려움으로 인해 PLSI[17]에서는 각 클러스터

에서 지원하는 컴 일러, 병렬/수학 라이 러리, 설치

경로 등을 홈페이지를 통해 사용자에게 제공하고 사용

자는 자신의 코드를 컴 일 할 수 있는 클러스터를 찾

아 속하여 컴 일 후 실행해야 한다. 이러한 서비스

환경에서는 리자, 사용자 모두 어려움이 있다.

∙ 리자 입장의 어려움: 사용자가 필요한 패키지 설치

를 요청할 경우 리하는 모든 컴퓨 노드에 패키지

를 설치해야 한다. 리 클러스터의 규모가 크고 수많

은 라이 러리 버 을 존재한다는 을 감안하면

이러한 리 방법은 매우 어려운 작업이다. 한 사용

자가 시스템에 설치된 운 체제와 다른 종류의 운 체

제를 원하거나 다른 커 버 을 요청할 경우에는 지

원이 불가능하다. 이러한 문제로 인하여 부분 보안

련 업데이트를 제외하고 업그 이드나 큰 설정 변경

없이 서비스를 제공하고 있다. 이러한 자원 운 방식

으로는 새로운 기술 개발 활용에 어려움이 있다.

∙사용자 입장의 어려움: 사용자는 사용하기 에 자신

이 필요한 패키지가 있는지 항상 확인하고 필요한 소

트웨어 패키지가 없을 경우 리자에게 요청해야 한

다. 특히 PLSI와 같이 다 클러스터가 연동되어 있

는 환경에서는 클러스터마다 리자가 서로 다르기 때

문에 다수의 리자에게 필요한 소 트웨어 패키지 설

치를 요청해야 한다. 한, 사용자는 자신이 원하는 실

행 환경을 실시간으로 제공 받기 어렵다. 이러한 문제

Page 3: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

사용자 맞춤형 분산 컴퓨 을 한 컨테이 기반 클러스터 리 시스템 589

그림 1 컨테이 기반 클러스터 리 랫폼 아키텍쳐

Fig. 1 Container-based cluster management platform architecture

로 인하여 많은 과학자들이 아마존 EC2와 같은 공용

(public) 클라우드 서비스를 이용하여 자신의 응용

로그램을 실행하고 있다. 그러나 이 경우에도 하이퍼

바이 로 인한 성능 하 문제가 발생한다.

와 같은 리자, 사용자 모두의 입장을 고려하여 사

용자가 원하는 서비스 환경을 실시간으로 제공할 수 있

는 방안이 필요하다.

2.2 련 연구

최근 클라우드 환경에서의 성능과 련한 많은 연구

가 이루어지고 있다[7-9,18]. Walker[7]은 표 인 공

용 클라우드인 아마존 EC2에서 벤치마크 툴을 이용하

여 HPC의 성능을 측정하는 연구를 진행했으며 [8]에서

는 아마존 EC2를 포함하여 GoGrid, IBM 클라우드 등

다양한 클라우드 랫폼에서 벤치마크를 실행, 결과를

비교 분석하 다. Jackson[9]은 EC2에서 벤치마크 방식

이 아닌 미국의 슈퍼컴퓨터 센터 하나인 NERSC에

서 사용하는 실제 과학 워크 러우를 분석하여 성능 측

정하 으며 Iosup[18]의 경우에는 규모 계산 작업의

고성능 처리를 요구하는 MTC(Many Task Compu-

ting) 사용자의 워크 로우를 상으로 클라우드 환경에

서 성능 분석을 진행하 다. 이러한 많은 연구에서 확인

할 수 있듯이 클라우드 환경에서의 작업 실행은 하이퍼

바이 로 인한 성능 하 문제를 수반한다.

최근에는 하이퍼바이 로 인한 성능 하 문제를 해결

하기 해 경량화된 가상화 계층(OS-level virtualiza-

tion layer)인 컨테이 기반 가상화 방식(Linux VServer,

OpenVZ, Linux Container)에 한 연구가 많이 진행되

고 있다[10-12]. [10]에서는 OpenVZ, KVM, Xen 등 다

양한 가상화 기술을 통해 구축된 시스템에서 HPC 작업

을 실행한 결과를 비교 분석하 다. 실험 결과 컨테이

기반 가상화 방식인 OpenVZ에서 최 의 성능을 보이는

것으로 나타났다. [11]에서도 다양한 컨테이 기반 가상

화 방식을 통해 HPC 작업을 실행한 결과를 비교 설명하

다. 모든 경우에서 컨테이 기반 가상화 방식이 더 우

수한 성능을 보 다. 특히, HPC 작업을 해서는 LXC

방식의 가상화 기술이 가장 합한 것으로 나타났다[12].

최근에는 강력한 컨테이 기반 가상화 기술인 Docker

[13]에 한 심이 증 되고 있다. Docker는 containers,

cgroup, namspace와 같은 커 벨의 기능을 리하

기 한 API를 제공한다. 이를 통해 개발자는 자신의

응용 로그램을 컨테이 기반으로 실행할 수 있도록

구 할 수 있으며 쉽게 배포도 가능하다.

3. 컨테이 기반 클러스터 리 랫폼

3.1 제안 방식

그림 1은 컨테이 기반 클러스터 리 랫폼을 보

Page 4: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

590 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 9 호(2015. 9)

그림 2 컨테이 기반 클러스터 리 랫폼 구

Fig. 2 Implementation of the proposed approach

여 다. 일반 으로 과학 워크 로우를 지원하기 한

클러스터 시스템은 사용자로부터 작업을 요청 받아 컴

퓨 자원을 할당하는 론트 노드(Front-end node)와

실제 작업을 실행하는 다수의 계산 노드(execute nodes)

로 구성된다. 사용자는 작업을 론트 노드로 제출하고

실제 작업은 다수의 계산 노드에서 실행된다. 계산 노드

는 자원의 상태 작업 상태를 주기 으로 측정하여

론트 노드에 보고한다. 론트 노드에서는 가용 자원

이 있을 경우 FIFO, round-robin, priority-based preem-

tive와 같은 다양한 스 링 알고리즘에 따라 작업을

큐에서 할당 받고(dispatch) 이를 가용 자원과 매치매이

킹(matchmaking)함으로써 자원을 할당한다. 자원 할당

이 완료되면 실제 작업 수행을 해 필요한 일들을

계산 노드로 송한다. 계산 노드에서는 론트 노드로

부터 실행할 작업을 할당 받아 컨테이 기반 가상화

방식으로 응용 로그램을 실행한다. 작업이 완료되면

결과를 론트 노드로 송하여 사용자에게 달된다.

3.2 구 방안

본 논문의 구축 사례에서는 작업 스 러로 HTCondor

를 사용하 으며 컨테이 기반 가상화 방식으로 Doc-

ker를 이용하 다. 본 구축 사례의 하드웨어 사양과 소

트웨어 사양은 표 1에서 보는 바와 같다.

표 1 하드웨어 소 트웨어 사양

Table 1 Hardware and software specifications

Hardware Specification

CPUIntel(R) Xeon(R) CPU

[email protected] * 2 ea

Memory 32GB

HDDWestern Digital WD Blue

WD5000AAKX 500GB 7200 RPM

Software Specification

OS CentOS release 6.5 Final

Job scheduler HTCondor (version 8.0.7)

OS-level virtualization Docker (version 1.1.2)

Image management Docker registry (version 0.6.8)

HTCondor와 Docker를 통해 구축된 클러스터 시스템

에서 사용자가 원하는 서비스 환경을 동 으로 구축하는

방법은 다음과 같다. 먼 , 그림 2에서 보는 바와 같이

사용자는 응용 로그램 실행에 필요한 환경(e.g. 운 체제,

실행 일 라이 러리 등)을 패킹하여 Dockerized

이미지를 만들고 이를 Docker 지스트리(registry)에

장한다. 이 게 사 에 응용 로그램의 실행에 필요

한 환경을 패킹하여 지스트리에 장함으로써 계산 노

드에서는 응용 로그램 실행에 필요한 환경을 구축할

필요없이 지스트리에서 Dockerized 이미지를 다운로

Page 5: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

사용자 맞춤형 분산 컴퓨 을 한 컨테이 기반 클러스터 리 시스템 591

드 받아 바로 작업을 실행할 수 있다. 다음 를 통해

살펴보자. 사용자는 최근 데이터 분석에서 많이 활용되

는 R[19]을 이용하여 Random Forest 기법을 사용한다

고 가정하자. 이를 해서는 모든 클러스터 계산 노드에

R과 randomForest 패키지를 설치해야 한다. 그러나 사

용자가 사 에 R과 randomForest 패키지를 Dockerized

이미지로 만들어 지스트리에 장할 경우 모든 클러스

터 계산 노드에 R과 randomForest 패키지를 설치할 필

요 없이 장된 Dockerized 이미지를 다운로드 받아 컨

테이 로 실행함으로써 바로 실행할 수 있다.

와 같이 Dockerized 이미지를 등록한 후 사용자는

계산 노드에서 Dockerized 이미지를 실행(launch)하기

해 그림 3과 같이 쉘 스크립트(launch_docker.sh)를

작성해야 한다. 이때 가장 주의해야 할 은 실행 일

( 의 제에서 R로 로그래 된 일)을 컨테이 안

으로 달하는 것이다. 이를 해 본 논문에서는 Doc-

ker의 -v 옵션을 이용하여 호스트의 특정 디 트리를

컨테이 로 마운트하는 방법을 이용하 다.

작업 실행에 필요한 Dockerized 이미지와 실행 일이

비되었다면 그림 4와 같이 간단한 작업 스크립트

일을 작성하여 HTCondor SCHEDD에 제출한다.

HTCondor의 경우 STARTD 데몬은 계산 노드의 자

원 상태를, SCHEDD 데몬은 작업 큐의 상태를 일정한

주기로 ClassAD 형식으로 COLLECTOR 데몬에게

송한다[14]. NEGOTIATOR 데몬은 COLLECTOR 데

몬에서 수집된 정보를 바탕으로 작업 ClassAD와 자원

ClassAD를 매치매이킹 하여 작업이 실행될 계산 노드

를 결정한다. NEGOTIATOR 데몬에서 매치매이킹을

통해 작업이 실행될 계산 노드가 결정되면, SCHEDD

데몬에서는 SHADOW 데몬을, STARTD에서는 STAR-

TER 데몬을 각각 실행하고 두 데몬 사이에 세션이 설

그림 3 Docker 실행을 한 쉘 스크립트

Fig. 3 Launch_docker.sh

그림 4 HTCondor 작업 스크립트 일

Fig. 4 HTCondor job script file

정된다. 이 게 생성된 세션을 통해 launch_docker.sh

일과 실제 작업 실행 일(execute_file)이 송되고

STARTER 데몬은 launch_docker.sh 스트립트 일을

실행한다. 이때 STARTER 데몬이 실행 인 노드에

Dockerized 이미지가 없을 경우 지스트리에서 사용자

가 사 에 장한 이미지를 다운로드 받은 후 launch_

docker.sh을 실행된다. 작업이 완료되면 결과 일은

SHADOW 데몬을 통해 사용자에게 달된다.

이 게 HTCondor와 Docker를 통해 클러스터 시스

템을 구성하면 다음 두 가지의 장 이 있다. 먼 , 커

수정 없이 손쉽게 본 논문에서 제시한 컨테이 기반

클러스터 리 랫폼을 구 할 수 있다. Docker는

OpenVZ, Linux-VServer와 달리 커 컴 일 없이 사

용이 가능하여 재 운 인 클러스터 시스템에 바로

용할 수 있다. 한 이미지 지스트리, Docker hub

등 편리한 리 툴을 제공한다.

둘째, PLSI와 같은 다수의 클러스터가 연동되어 있는

환경에서 효율 으로 사용자 맞춤형 과학 워크 로우

지원이 가능하다. PLSI는 지리 으로 분산되어 있는 슈

퍼컴퓨 자원을 필요한 연구자들에게 효율 으로 제공

하기 한 단일 활용 체계로, 재 한국과학기술정보연

구원(KISTI)를 비롯하여 KSCA 회원 기 18개의 기

이 참여하여 1.1PFlops 계산 자원을 제공하고 있다

[17]. 이러한 멀티 클러스터 환경에서 HTCondor를 활

용할 경우 다수 클러스터 자원에서 하나의 과학 워크

로우를 효율 으로 지원할 수 있으며 실시간으로 사용

자 맞춤형 실행 환경을 제공할 수 있다.

4. 실험결과

본 에서는 컨테이 기반 클러스터 리 랫폼의

성능을 살펴본다. 먼 , 컨테이 기반 가상화 방식인

Docker의 성능을 분석해 보고 HTCondor와 Docker를

통해 구축된 클러스터 시스템의 성능을 살펴본다.

4.1 Docker 성능 측정

Docker의 성능을 확인하기 해 Docker를 이용한 경

우와 이용하지 않은 경우(native)로 나 어 실행한 벤치

마크(unixbench, sysbench) 실행 결과를 제시한다.

∙unixbench: unixbench는 시스템의 반 인 성능을

측정하는 벤치마크 툴로 Whetstone, Drystone, file

copy, pipe throughput 등 다양한 성능 측정 결과를

제공한다. 그림 5는 unixbench 툴을 통해 측정된 각

항목별 세부 결과를 보여 다. Pipe-based context

switching을 제외한 나머지 항목은 native 비 Docker

의 측정 결과가 90% 이상임을 보여 다. Pipe-based

context switching 테스트는 두 개의 로세스 사이에

서 정수를 증가시킴으로써 측정한 값으로 실제 응용

Page 6: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

592 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 9 호(2015. 9)

그림 5 Unixbench 성능 측정 결과

Fig. 5 Unixbench results

그림 6 시스템 벤치마크 인덱스 수

Fig. 6 System benchmark index score

로그램과 매우 유사한 방식이다. 본 항목에서 Doc-

ker는 native 성능 비 75%의 성능을 보 다. 그림 6

은 세부 인 측정 항목을 종합하여 시스템 반의 성

능을 수치화한 값으로 native와 Docker에서 각각

5699.5와 5492.7로 측정되어 Docker의 성능이 native

비 96%임을 확인할 수 있다.

∙sysbench: Sysbench는 다양한 시나리오를 통해 CPU,

memory, File I/O의 성능 측정 결과를 제공하는 툴이

다. 표 2는 sysbench로 측정한 Docker와 native 상태

에서 측정한 결과를 비교한 표이다. 먼 , CPU 성능은

소수를 이용한 연산으로 10000번의 이벤트를 처리하는

데 걸린 시간을 측정한다. Docker와 native가 동일함

을 확인할 수 있다. 둘째, 메모리 성능은 메모리 버퍼

를 할당하고 할당된 버퍼에서 순차 는 랜덤으로

읽고 쓰면서 측정한 성능으로 기록된다. 이 지표의 경

우 Docker가 native보다 3~5% 정도 성능이 좋은 것

으로 측정되었다. File I/O는 1 GB 일 128 개를 로

표 2 Sysbench 측정 결과

Table 2 Sysbench results

Test item Option Docker Native Ratio

CPU Total Time 24.5 sec 24.5 sec 1

Memory

Sequence write 2.21 GB/sec 2.14 GB/sec 1.03

Random write 3.41 GB/sec 3.25 GB/sec 1.03

Sequence read 3.82 GB/sec 3.63 GB/sec 1.05

Random read 3.67 GB/sec 3.50 GB/sec 1.05

File I/O

Sequence write 104.8 MB/sec 105.2 MB/sec 0.99

Sequence read 91.7 MB/sec 91.7 MB/sec 1

Combined R/W 1.5 MB/sec 1.5 MB/sec 1

컬 디스크에 생성한 후 생성된 일을 순차 는

랜덤으로 읽고 쓰면서 측정한 결과로 native와 거의

동일한 성능을 보인 것으로 측정되었다.

와 같이 두 가지의 리 활용되는 벤치마크 툴킷을

사용하여 측정된 결과를 비교해 보면 Docker로 인한 성

능 하는 하이퍼바이 에 의한 성능 하에 비해 크지

않음을 확인할 수 있다.

4.2 컨테이 기반 클러스터 리 시스템 성능

본 에서는 3.2 에서 제시한 방법으로 컨테이 기

반 리 시스템을 구축하고 이를 통해 몬테카를로 시뮬

이션을 실행한 결과를 제시한다. 먼 , 그림 7에서 보는

바와 같이 앙 리 노드(central manager node) 1

와 계산 노드(execute node) 3 로 구성된 HTCondor

pool을 구성하고 앙 리 노드에 Docker 지스트리

를, 계산 노드에는 Docker 엔진을 설치했다. 다양한 실

행 환경을 동 으로 요구하는 경우를 가정하기 해 다

양한 로그래 언어(C, JAVA, Python, R)로 몬테카

를로 기반 원주율 계산 로그램을 구 하여 실행하

다. 한 다수의 작업을 가정하기 해 동일한 작업을

100 번 실행하는 워크 로우를 HTCondor 스 러에

제출하여 수행된 시간을 비교하 다.

그림 8은 몬테카를로 시뮬 이션을 100 번 실행한 결

과를 보여 다. 그림에서 확인할 수 있듯이 구 된 로

그래 언어에 따라 Docker와 native 상태에서 실행 시

간에 차이가 발생함을 알 수 있다. 본 시뮬 이션은 동

일한 작업을 100 번 실행한 결과이기 때문에 좀더 자세

한 분석을 해 표 3에서 보는 바와 같이 몬테카를로

시뮬 이션 1 번을 실행한 결과를 살펴보자.

Docker를 통해 응용 로그램을 실행한 경우 실행

단계를 다음 2단계로 나 어 볼 수 있다. 먼 , Docker

이미지를 이용하여 컨테이 를 생성하는 단계이다. 표 4

에서 보는 바와 같이 Docker 이미지 일의 크기는 설

치된 로그램 패키지에 따라 470.7 MB에서 1.13 GB

까지 증가한다. 그러나 컨테이 생성 시간은 평균 181

ms에서 210 ms까지 거의 유사한 것을 확인할 수 있다.

Page 7: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

사용자 맞춤형 분산 컴퓨 을 한 컨테이 기반 클러스터 리 시스템 593

그림 7 HTCondor와 Docker로 구 된 클러스터 시스템

Fig. 7 Implemented cluster system using HTCondor and Docker

그림 8 몬테카를로 시뮬 이션 결과(100 번 실행)

Fig. 8 Monte Carlo simulation results (100 times)

표 3 몬테카를로 시뮬 이션 결과(1 번 실행)

Table 3 Monte Carlo simulation results (single time)

C JAVA Python R

Native 0.298 sec 0.563 sec 10.26 sec 61.092 sec

Docker 1.172 sec 3.885 sec 11.171 sec 62.858 sec

Diff. 0.874 sec 3.322 sec 0.911 sec 1.766 sec

두 번째 단계는 생성된 컨테이 에서 응용 로그램

을 실행하는 단계이다. 본 단계에서는 구 된 로그래

언어에 따라 실행 시간에 차이가 있음을 표 3에서

확인할 수 있다. 즉, C와 python의 경우에는 Docker와

표 4 Docker 이미지 크기 컨테이 생성 시간

Table 4 Size of Docker images and container creation time

Item OS OS + java OS + python OS + R

Size 212.5 MB 470.7 MB 261.2 MB 1.13 GB

Average 0.1812 sec 0.1912 sec 0.2098 sec 0.2099 sec

Std. dev 0.0119 sec 0.0135 sec 0.0392 sec 0.0549 sec

native 상태에서 실행한 결과의 시간 차이가 1 이내

임을 확인할 수 있다. 그러나 JAVA와 R의 경우에는

3.322 와 1.766 로 증가한다. 이는 몬테카를로 시뮬

이션 구 시 사용한 난수 발생 함수와 메모리 사용

량 등 다양한 원인이 있지만 이에 한 자세한 분석은

본 논문의 논지를 벗어나므로 향후에 다루기로 한다.

5. 결 론

통 으로 여러 과학 분야의 규모의 워크 로우를

수행하기 해서 부분 슈퍼컴퓨터와 같은 클러스터 기

반의 용량 컴퓨터를 이용하고 있다. 그러나 시스템의

운 리의 어려움으로 인해 한번 설치된 운 체제

소 트웨어 스택은 변경 하지 않고 그 로 유지된다.

이러한 자원 활용의 문제 을 극복하고 사용자에게

유연한 서비스 환경을 제공하기 해 본 논문에서는 컨

테이 기반 클러스터 리 랫폼을 제시하 다. 한

HTCondor와 Docker를 이용하여 커 수정 없이 쉽게

용할 수 있는 방안을 제시하 다. 가상화 방식의 가장

Page 8: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

594 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 9 호(2015. 9)

큰 문제인 성능 하를 확인하기 해 리 활용되는

벤치마크 툴인 unixbench와 sysbench를 이용하여 Doc-

ker가 용된 경우와 용되지 않은 경우에서의 성능을

측정하여 비교함으로써 성능 하가 크지 않음을 확인

할 수 있었다.

그러나 sysbench를 이용한 메모리 성능 측정 결과에

서 Docker를 사용한 경우의 결과가 사용하지 않는 것에

비해 오히려 3~5% 정도 우수한 성능을 보 다. 이는

추가 인 가상화 계층으로 성능 하가 있을 것이라는

일반 인 직 과 상반된 결과이다. 메모리 측정 결과는

다른 로그래 언어에 비해 메모리를 많이 사용하는

JAVA와 R의 실행 시간 증가와도 련성이 있어 보이

므로 향후에 Docker에서 메모리의 사용 방식에 따른 자

세한 성능 분석이 필요하다.

References

[ 1 ] E. Deelman, D. Gannon, M. Shields, and I. Taylor,

"Workflows and e-science: An overview of work-

flow system features and capabilities," Future Gene-

ration Computer Systems, Vol. 25, No. 5, pp. 528-

540, 2009.

[ 2 ] Y. Gil, E. Deelman, M. Ellisman, T. Fahringer, G.

Fox, D. Gannon, C. Goble, M. Livny, L. Moreau,

and J. Myers, "Examining the challenges of scien-

tific workflows," IEEE Computer, Vol. 40, No. 12,

pp. 24-32, Dec. 2007.

[ 3 ] K. Chen, J. Xin, and W. Zheng, "Virtualcluster:

Customizing the cluster environment through vir-

tual machines," Proc. of IEEE/IFIP International

Conference on Embedded and Ubiquitous Compu-

ting, 2008, Vol. 2, pp. 411-416, Dec. 2008.

[ 4 ] P. Ruth, P. McGachey, and D. Xu, "Viocluster:

Virtualization for dynamic computational domains,"

Proc. of IEEE International Cluster Computing,

2005, pp. 1-10, Sep. 2005.

[ 5 ] M. A. Murphy, B. Kagey, M. Fenn, and S. Goas-

guen, "Dynamic provisioning of virtual organization

clusters," Proc. of the 9th IEEE/ACM International

Symposium on Cluster Computing and the Grid,

Washington, DC, USA, pp. 364-371, 2009.

[ 6 ] P. Marshall, K. Keahey, and T. Freeman, "Elastic

site: Using clouds to elastically extend site resour-

ces," Proc. of the 10th IEEE/ACM International

Conference on Cluster, Cloud and Grid Computing,

Washington, DC, USA, pp. 43-52, 2010.

[ 7 ] E. Walker, "Benchmarking amazon EC2 for high-

performance scientific computing," LOGIN, Vol. 33,

pp. 18-23, 2008.

[ 8 ] Q. He, S. Zhou, B. Kobler, D. Duffy, and T.

McGlynn, "Case study for running HPC appli-

cations in public clouds," Proc. of the 19th ACM

International Symposium on High Performance

Distributed Computing, pp. 395-401, 2010.

[ 9 ] K. Jackson, L. Ramakrishnan, K. Muriki, S. Canon,

S. Cholia, J. Shalf, H. J. Wasserman, and N.

Wright, "Performance analysis of high performance

computing applications on the amazon web services

cloud," Proc. of IEEE Second International Con-

ference on Cloud Computing Technology and Sci-

ence (CloudCom), pp. 159-168, Nov. 2010.

[10] N. Regola and J.-C. Ducom, "Recommendations for

virtualization technologies in high performance

computing," Proc. of IEEE Second International

Conference on Cloud Computing Technology and

Science (CloudCom), pp. 409-416, Nov. 2010.

[11] S. Soltesz, H. Potzl, M. E. Fiuczynski, A. Bavier,

and L. Peterson, "Container-based operating system

virtualization: A scalable, high performance alter-

native to hypervisors," SIGOPS Oper. Syst. Rev.,

Vol. 41, No. 3, pp. 275-287, Mar. 2007.

[12] M. Xavier, M. Neves, F. Rossi, T. Ferreto, T.

Lange, and C. De Rose, "Performance evaluation of

container-based virtualization for high performance

computing environments," Proc. of 21st Euromicro

International Conference on Parallel, Distributed and

Network-Based Processing (PDP), 2013, pp. 233-

240, Feb. 2013.

[13] J. Fink, "Docker: a software as a service, operating

system-level virtualization framework," Code4Lib

Journal, Vol. 25, 2014.

[14] D. Thain, T. Tannenbaum, and M. Livny, "Distri-

buted computing in practice: the condor experi-

ence," Concurrency - Practice and Experience,

Vol. 17, No. 2-4, pp. 323-356, 2005.

[15] B. Smith, R. Grehan, T. Yager, and D. C. Niemi,

"Byte-unixbench: a unix benchmark suite," [Online].

Available: https://code.google.com/p/byte-unixbench/

(accessed 2015, May 26)

[16] A. Kopytov, "SysBench: a system performance bench-

mark," [Online]. Available: http://sysbench.source-

forge.net/index.html (accessed 2015, May 26)

[17] Korea Institute of Science and Technology, "PLSI:

Partnership & leadership for the nationwide super-

computing infrastructure," [Online]. Available: http://

www.plsi.or.kr (accessed 2015, May 26) (in Korean)

[18] A. Iosup, S. Ostermann, M. N. Yigitbasi, R. Prodan,

T. Fahringer, and D. H. Epema, "Performance ana-

lysis of cloud computing services for many-tasks

scientific computing," IEEE Transactions on Parallel

and Distributed Systems, Vol. 22, No. 6, pp. 931-

945, 2011.

[19] R. Ihaka and R. Gentleman, "R: A language for

data analysis and graphics," Journal of Computa-

tional and Graphical Statistics, Vol. 5, No. 3, pp. 299-

314, Sep. 1996.

Page 9: 사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템 · 심사완료:2015년 6월10일 (Accepted 10 June 2015) † †† 정 회 원 비

사용자 맞춤형 분산 컴퓨 을 한 컨테이 기반 클러스터 리 시스템 595

박 주 원

2002년 8월 한국항공 학교, 항공통신

정보공학과(학사). 2004년 8월 주과학

기술원, 정보통신공학과(석사). 2010년 8

월 주과학기술원, 정보통신공학과(박

사). 2010년 9월~2013년 7월 KT 유무

선네트워크 연구소. 2013년 8월~ 재

한국과학기술정보연구원 선임연구원. 심분야는 고성능 컴

퓨 , 작업 스 러, 컨테이 기반 가상화 기술

함 재 균

1999년 남 학교, 산학과(학사). 2002년

한국과학기술원, 산학과(석사). 2002년~

재 한국과학기술 정보연구원 선임연구

원. 심분야는 고성능 컴퓨 , 클라우드

컴퓨 , 데이터 인텐시 컴퓨 , 과학

데이터 리