KR20190109795A - 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체 - Google Patents

유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체 Download PDF

Info

Publication number
KR20190109795A
KR20190109795A KR1020180031279A KR20180031279A KR20190109795A KR 20190109795 A KR20190109795 A KR 20190109795A KR 1020180031279 A KR1020180031279 A KR 1020180031279A KR 20180031279 A KR20180031279 A KR 20180031279A KR 20190109795 A KR20190109795 A KR 20190109795A
Authority
KR
South Korea
Prior art keywords
cluster
node
computer
idle computing
program
Prior art date
Application number
KR1020180031279A
Other languages
English (en)
Inventor
김현우
홍석희
김수리
김성겸
김창권
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020180031279A priority Critical patent/KR20190109795A/ko
Publication of KR20190109795A publication Critical patent/KR20190109795A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 단일 컴퓨팅 자원으로 동작 시키기 무거운 소프트웨어를 여러 대의 유휴 컴퓨팅 자원을 활용하여 효과적으로 동작 시킬 수 있는 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법에 관한 것으로, 유휴 컴퓨팅 자원(Idle Computing Resource)을 확보하는 단계; 유휴 컴퓨팅 자원에 포함된 각 컴퓨터를 메인 노드로 사용할 컴퓨터 또는 클라이언트 노드로 사용할 컴퓨터로 구분하는 단계; 이동식 저장장치에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계; 상기 메인 노드에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계; 상기 클라이언트 노드에 운영체제 및 프로그램을 설치하는 단계; 및 상기 메인 노드 또는 상기 클라이언트 노드에 상기 이동식 저장장치를 연결 시켜 클러스터를 구성하는 단계를 포함한다.

Description

유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체{Device and Method for Cluster Configuration Using Idle Computing Resource, Recording Medium for Performing the Method}
본 발명은 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체에 관한 것으로, 더욱 상세하게는 단일 컴퓨팅 자원으로 동작 시키기에 로드가 큰 소프트웨어를 여러 대의 유휴 컴퓨팅 자원을 활용하여 효과적으로 동작 시킬 수 있는 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체에 관한 것이다.
클러스터형 컴퓨터 시스템은, 상호 연결된 완전한 컴퓨터 시스템들(whole computer systems)의 집합(collection)으로 이루어져 있는 병렬 또는 분산된 형태의 시스템이며, 통합된 단일 계산 자원(computing resource)처럼 사용된다.
여기서 "완전한 컴퓨터"라는 용어는, 독립적으로 사용 가능한 컴퓨터(stand-alone, usable computer)를 구성하는 일반 구성요소 즉, 하나 이상의 프로세서(processor), 허용 가능한(acceptable) 용량의 메모리, 입/출력 설비, 및 운영 체제(operating system)가 조합(combination) 된 것을 의미한다.
클러스터와 일반 분산 시스템 간의 차이는 요소들(parts) 간의 관계와 관련이 있다. 최신 분산 시스템은 피어 투 피어(peer-to-peer)인 하층 통신층(underlying communication layer)을 사용한다. 고유 계층(intrinsic hierarchy)이나 다른 구성은 존재하지 않고 통신 엔티티들(communicating entity)의 플랫 리스트(flat list)만이 존재한다. 그러나 추상적인 개념(abstraction)의 좀 더 상위 레벨에서, 통신 엔티티들은 일반적으로 클라이언트-서버 패러다임(client-server paradigm)으로 조직된다. 이것은 시스템의 복잡성을 가치 있게 감소 시키는 결과를 초래한다. 전형적으로 클러스터는 피어 투 피어의 관계를 갖는다.
컴퓨터 클러스터는, 일반적으로 단일 컴퓨터보다 더 뛰어난 성능과 안정성을 제공하며, 비슷한 성능과 안정성을 제공하는 단일 컴퓨터보다 비용 면에서 훨씬 더 효율적인 측면에서 널리 사용되고 있다.
클러스터 설계에 있어서 각각의 컴퓨터(노드)들의 밀접한 연결 및 빈번한 통신이 중요한 문제점으로 나타나며, 이에 따라 독립된 네트워크를 사용하여 동일한 아키텍처, 동일 기종의 컴퓨터(노드)들이 밀도 있게 설치되어야 한다.
종래의 개발된 컴퓨터 클러스터는 위와 같은 문제점을 해결하기 위하여, 네트워크를 기반으로 한 클라이언트/서버 구조의 클러스터 형태를 구성하였지만, 이는 고성능의 서버 및 네트워크를 구성하기 위하여 추가 비용과 설치 및 복구가 어려운 문제점을 가지고 있었다.
한국등록특허 제10-0368078호 한국등록특허 제10-1374120호
본 발명의 일측면은 유휴 컴퓨팅 자원을 활용하기 위해 USB(Universal Serial Bus) 포트에 연결 가능한 저장장치로 간단하게 클러스터를 구성할 수 있는 병렬 컴퓨팅 기술로서, 단일 컴퓨팅 자원으로 동작 시키기 무거운 소프트웨어를 여러 대의 유휴 컴퓨팅 자원을 활용하여 효과적으로 동작 시킬 수 있는 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체를 제공한다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법은, 클러스터(Cluster)를 구성하기 위한 유휴 컴퓨팅 자원(Idle Computing Resource)을 확보하는 단계; 확보된 유휴 컴퓨팅 자원에 포함된 각 컴퓨터를 메인 노드로 사용할 컴퓨터 또는 클라이언트 노드로 사용할 컴퓨터로 구분하는 단계; 컴퓨터에 연결 가능한 저장장치인 이동식 저장장치에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계; 상기 메인 노드에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계; 상기 클라이언트 노드에 저장장치 간의 복사를 통해 운영체제 및 프로그램을 설치하는 단계; 및 운영체제 및 클러스터 구성에 필요한 프로그램이 설치된 상기 메인 노드 또는 상기 클라이언트 노드에 상기 이동식 저장장치를 연결 시켜 클러스터를 구성하는 단계를 포함한다.
일 실시예에서, 상기 컴퓨터에 연결 가능한 저장장치인 이동식 저장장치에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계는, 상기 이동식 저장장치에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치한 후, 확보된 유휴 컴퓨팅 자원에 할당된 IP 주소를 설정할 수 있다.
일 실시예에서, 상기 클러스터 구성에 필요한 프로그램은, NFS(Network File System) 또는 MPI(Message Passing Interface)를 포함할 수 있다.
일 실시예에서, 유휴 컴퓨팅 자원을 이용하여 실행할 복수 개의 작업에 대응하여 복수 개의 메인 노드를 작업별로 매칭 시켜 구분하는 단계를 더 포함할 수 있다.
일 실시예에서, 작업별로 매칭 시켜 구분된 메인 노드는, 자신에게 매칭된 작업에 필요로 하는 자원을 가지고 있는 클라이언트 노드를 탐색할 수 있다.
일 실시예에서, 상기 메인 노드는, 탐색된 클라이언트 노드를 가용 자원이 큰 노드부터 순위를 매겨 노드 리스트를 생성할 수 있다.
일 실시예에서, 상기 메인 노드는, 상기 노드 리스트에서 순위가 높은 클라이언트 노드부터 자신의 클라이언트 노드로 우선적으로 종속 시킬 수 있다.
일 실시예에서, 상기 메인 노드는, 작업 실행 시 상기 노드 리스트에서 순위가 높은 클라이언트 노드부터 작업을 실행 시킬 수 있다.
본 발명의 다른 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
본 발명의 일 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치는, 클러스터(Cluster)를 구성하는 유휴 컴퓨팅 자원(Idle Computing Resource)을 확보하는 자원 확보부; 상기 자원 확보부에서 확보된 유휴 컴퓨팅 자원에 포함된 각 컴퓨터를 메인 노드로 사용할 컴퓨터 또는 클라이언트 노드로 사용할 컴퓨터로 구분하는 노드 구분부; 컴퓨터에 연결 가능한 저장장치인 이동식 저장장치, 상기 메인 노드 및 상기 클라이언트 노드에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 프로그램 설치부; 및 운영체제 및 클러스터 구성에 필요한 프로그램이 설치된 상기 메인 노드 또는 상기 클라이언트 노드에 상기 이동식 저장장치를 연결 시켜 클러스터를 구성하는 클러스터 구성부를 포함한다.
상술한 본 발명의 일측면에 따르면, 여러 대의 유휴 컴퓨팅 자원을 활용하여 클러스터를 구성함으로써, 통신 양이 적고 필요 연산 양이 매우 큰 병렬화 가능한 프로그램을 동작 시킬 경우에도, 단독으로 동일한 프로그램을 동작 시킬 때보다 높은 효율성을 얻어 낼 수 있다.
상술한 본 발명의 일측면에 따르면, 기존 시스템의 저장장치를 변경하지 않고 해당 시스템의 연산장치만을 이용함으로써, 설치와 복구를 간편하게 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치의 개략적인 구성이 도시된 도면이다.
도 2는 본 발명의 일 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법을 설명하는 순서도이다.
도 3은 본 발명에 의한 컴퓨터 클러스터의 구성을 설명하는 도면이다.
도 4는 본 발명의 다른 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법을 설명하는 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치의 개략적인 구성이 도시된 도면이다.
도 1을 참조하면, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치는, 자원 확보부(100), 노드 구분부(200), 프로그램 설치부(300) 및 클러스터 구성부(400)를 포함한다.
컴퓨터 클러스터(Computer Cluster)라 함은, 컴퓨터들이 연결된 집합으로, 여러 대의 컴퓨터가 하나의 시스템으로 간주될 수 있도록 동작하는 것을 지칭하며, 클러스터의 각 노드(각각의 컴퓨터)는 동일한 작업을 수행하도록 설정되고, 소프트웨어에 의해 제어된다.
클러스터링은, 일반적으로 빠른 LAN(Local Area Network)을 통해 다수의 즉시 이용 가능한 컴퓨팅 노드(예를 들면, 서버로 사용되는 컴퓨터)를 연결하며, 컴퓨팅 노드의 동작은 노드 상단에 있는 소프트웨어 계층인 "클러스터링 미들웨어(Clustering Middleware)"에 의해 제어된다.
클러스터링은, 노드를 공유 서버로 사용할 수 있게 하는 중앙 집중 관리 방식을 사용하며, 노드는 단순히 두 대의 컴퓨터를 연결하는 2-노드 시스템일 수도 있고, 많은 컴퓨터를 연결한 빠른 슈퍼컴퓨터일 수도 있다. 따라서 클러스터는 단순한 네트워크로 연결된 소수의 개인용 컴퓨터로 구성될 수 있으며, 비교적 낮은 비용으로 고성능을 달성할 수 있다.
자원 확보부(100)는, 상술한 바와 같은 클러스터(Cluster)를 구성하는 유휴 컴퓨팅 자원(Idle Computing Resource)(즉, 여러 대의 컴퓨터)을 확보한다.
여기서, 유휴 컴퓨팅 자원(Idle Computing Resource)이라 함은, 네트워크로 연결된 컴퓨터들 중에서 현재 정보 처리 등의 작업에 사용되지 않는 컴퓨터를 말한다.
일 실시예에서, 자원 확보부(100)는, 유휴 컴퓨팅 자원을 확보하기 위해 네트워크로 연결된 컴퓨터 중에서 무작위로 기 설정된 개수 또는 사용자의 요청에 따른 개수를 본 발명에서 사용할 유휴 컴퓨팅 자원으로 확보할 수 있다.
이때, 자원 확보부(100)는, 수행할 작업에 필요로 하는 자원(예를 들어, 연산량이 많은 작업의 경우에는 CPU 또는 그래픽 작업인 경우에는 GPU 등)을 많이 가지고 있는 컴퓨터를 유휴 컴퓨팅 자원으로 우선적으로 포함시킬 수 있다.
일 실시예에서, 자원 확보부(100)는, 확보될 유휴 컴퓨팅 자원으로서 일반적으로 사용되는 개인 컴퓨터를 확보하는 것이 가용성과 비용적인 측면에서 바람직하다.
일 실시예에서, 자원 확보부(100)는, 유휴 컴퓨팅 자원이 확보되면, 각각의 컴퓨터의 IP 주소(Internet Protocol Address)를 확인하게 된다.
노드 구분부(200)는, 자원 확보부(100)에서 확보된 유휴 컴퓨팅 자원에 포함된 각 컴퓨터를 메인 노드로 사용할 컴퓨터 또는 클라이언트 노드로 사용할 컴퓨터로 구분한다.
일 실시예에서, 노드 구분부(200)는, 유휴 컴퓨팅 자원으로 확보된 컴퓨터 중 자신이 임의적으로 선택하여 메인 노드 또는 클라이언트 노드로 구분하거나, 수행할 작업에 필요로 하는 자원을 가장 많이 가지고 있는 컴퓨터를 메인 노드로 선택하고 나머지 컴퓨터를 클라이언트 노드로 구분할 수 있다.
프로그램 설치부(300)는, 컴퓨터에 연결 가능한 저장장치인 이동식 저장장치, 메인 노드 및 클라이언트 노드에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치한다.
여기서 이동식 저장장치라 함은, USB 포트에 연결 가능한 저장장치로서, USB 포트에 꽂아 사용하며 문서, 음악, 인증서 등을 메모리에 저장하여 편리하게 사용 가능한 휴대형 메모리의 한 종류인 USB 메모리가 될 것이나, 이에 한정되는 것은 아니하며 기타 SD 메모리 카드 또는 MICRO SD 메모리 카드 등으로 형성되어도 무방하다.
프로그램 설치부(300)는, 운영체제 및 클러스터 구성에 필요한 프로그램을 설치함에 있어, 메인 노드 및 클라이언트 노드에 설치함에 앞서, 이동식 저장장치(USB 포트에 연결 가능한 저장장치)에 사용할 운영체제를 설치하고, 해당 운영체제의 설치가 완료되면 클러스터를 구성하기 위해서 요구되는 프로그램(예를 들어, MPI 또는 NFS 등)을 설치하고, 확보된 유휴 컴퓨팅 자원에 할당된 IP 주소를 설정한다.
여기서, MPI(Message Passing Interface)는, 메시지 패싱 병렬 프로그래밍을 위해 표준화된 데이터 통신 라이브러리를 의미한다. 하나의 작업을 다수의 프로세스에 나누어 실행 시키는 병렬 연산에서는 필연적으로 프로세스들 사이의 통신이 필요하다. 메시지 패싱이란 지역적으로 메모리를 따로 가지는 프로세스들이 데이터를 공유하기 위해 메시지(데이터)를 송신, 수신하여 통신하는 방식을 의미한다.
MPI는 하나의 컴퓨터에서 스레드(Thread)를 사용하여 병렬성을 부여하는 스레드 수준의 병렬성보다 상위 수준인 프로세스 수준의 높은 병렬성을 제공한다. 병렬화를 위한 작업 할당, 데이터 분배, 통신의 운용 등 모든 것을 프로그래머가 담당해야 하기 때문에 어렵지만 유용성이 좋다. 또한, 다양한 하드웨어 플랫폼(분산 메모리 다중 프로세서 시스템, 공유 메모리 다중 프로세서 시스템, 단일 프로세서 시스템)에서 구현이 가능한 장점이 있다.
여기서, NFS(Network File System)는, 1984년 Sun Microsystems가 개발한 프로토콜로서, 클라이언트 컴퓨터의 사용자가 네트워크 상의 파일을 직접 연결된 저장소에 접근하는 방식과 비슷한 방식으로 접근하도록 도와준다. 다른 수많은 프로토콜과 마찬가지로 Open Network Computing 원격 프로시저 호출(ONC RPC) 시스템을 기반으로 하며, 프로토콜을 사용하면 통신망을 통해 저장된 컴퓨터에서 다른 컴퓨터의 디스크를 간단한 방법으로 접근할 수 있다.
따라서 NFS를 이용하면 클러스터를 구성하고 있는 각각의 시스템들이 하나의 저장소를 손쉽게 공유할 수 있다. 통신망을 통해 디스크를 접근하려면 디스크는 반드시 사용자의 로컬 컴퓨터 상에서 마운트 된 통신망 파일 시스템이어야 한다.
다음으로, 프로그램 설치부(300)는, 이동식 저장장치에 운영체제 및 프로그램의 설치가 완료되면, 메인 노드에 운영체제 및 요구되는 프로그램을 설치한 후, 나머지 클라이언트 노드를 위한 운영체제 및 요구되는 프로그램은 사용하는 클라이언트 노드 개수와 무관하게 저장장치 간의 복사를 통해 설치할 수 있다.
클러스터 구성부(400)는, 운영체제 및 클러스터 구성에 필요한 프로그램이 설치된 메인 노드 또는 클라이언트 노드에 이동식 저장장치를 연결 시켜 클러스터를 구성 시켜, 본 발명에 의한 유휴 컴퓨팅 자원을 이용한 클러스터를 구축하게 된다.
상술한 바와 같은 구성을 가지는 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치는, 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 상기 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.
상술한 바와 같은 구성을 가지는 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치에 의한 클러스터 구축 방법은 도 2 이하의 방법 설명에서 후술한다.
도 2는 본 발명의 일 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법을 설명하는 순서도이다.
도 2를 참조하면, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법은, 먼저 클러스터(Cluster)를 구성하기 위한 유휴 컴퓨팅 자원(Idle Computing Resource)을 확보한다(S210).
도 3을 참조하면, 실선으로 표시된 컴퓨터가 확보된 컴퓨팅 자원으로서, 실선으로 표시된 컴퓨터 A, B, C, D는 본 발명에 의한 클러스터가 사용하고 있는 컴퓨터 자원이고, 점선으로 표시된 컴퓨터는 현재 사용하지 않고 있는 유휴 컴퓨팅 자원을 나타낸다.
상술한 단계 S210에서 유휴 컴퓨팅 자원이 확보되면, 확보된 유휴 컴퓨팅 자원에 포함된 각 컴퓨터를 메인 노드로 사용할 컴퓨터 또는 클라이언트 노드로 사용할 컴퓨터로 구분한다(S220).
일 실시예에서, 상술한 단계 S220에 따른 노드의 구분의 경우, 유휴 컴퓨팅 자원으로 확보된 컴퓨터 중 임의적으로 선택하여 메인 노드 또는 클라이언트 노드로 구분하거나, 수행할 작업에 필요로 하는 자원을 가장 많이 가지고 있는 컴퓨터를 메인 노드로 선택하고 나머지 컴퓨터를 클라이언트 노드로 구분할 수 있다.
도 3을 참조하면, 상술한 단계 S220에서, 현재 구성된 컴퓨터 클러스터의 메인 노드인 컴퓨터 A와, 현재 구성된 컴퓨터 클러스터의 클라이언트 노드인 컴퓨터 B, C 및 D로 확보된 컴퓨팅 자원을 구분할 수 있다.
상술한 단계 S220에서 메인 노드와 클라이언트 노드의 구분이 완료되면, 먼저 이동식 저장장치에 운영체제 및 프로그램을 설치하게 된다(S230).
상술한 단계 S230에서는, 이동식 디스크(USB 포트에 연결 가능한 저장장치)에 사용할 운영체제를 설치하고 나면 클러스터를 구성하기 위해서 요구되는 프로그램(예를 들어, NFS 또는 MPI 등)을 설치하고 확보된 유휴 컴퓨팅 자원에 할당된 IP 주소를 설정하게 된다.
상술한 단계 S231에서 이동식 저장장치에 운영체제 및 프로그램의 설치가 완료되면, 메인 노드에 운영체제 및 프로그램을 설치하게 된다(S240).
상술한 단계 S240에서 메인 노드에 운영체제 및 프로그램의 설치가 완료되면, 클라이언트 노드에 저장장치 간의 복사를 통해 운영체제 및 프로그램을 설치한다(S250).
본 발명에 의한 클러스터는 크게 메인 노드와 클라이언트 노드들로 구성이 되는데, 간단하게 메인 노드에 먼저 운영체제 및 요구되는 프로그램을 설치한 뒤(S240), 나머지 클라이언트 노드를 위한 운영체제 및 요구되는 프로그램은 사용하는 클라이언트 노드 개수와 무관하게 저장장치 간의 복사를 통해 설치(S250)할 수 있다.
일 실시예에서, 상술한 클러스터 구성에 필요한 프로그램은, NFS(Network File System) 또는 MPI(Message Passing Interface)를 포함할 수 있다.
상술한 단계 S230 내지 S250에 따라 각각에 운영체제 및 프로그램의 설치가 완료되면, 운영체제 및 클러스터 구성에 필요한 프로그램이 설치된 메인 노드 또는 클라이언트 노드에 이동식 저장장치를 연결 시켜 클러스터를 구성한다(S260).
도 3을 참조하면, USB 포트에 사용 가능한 저장장치를 통하여 유휴 컴퓨팅 자원을 사용하는 모습을 나타내고 있다. A, B, C, D는 각각 USB 포트에 연결된 저장장치로, 사용하고자 하는 컴퓨터 자원에 연결하여 해당 연산 자원을 사용할 수 있다.
도 3의 실선으로 표시된 컴퓨터 자원은 클러스터가 사용하고 있는 컴퓨터 자원이고, 점선으로 표시된 컴퓨터 자원은 현재는 사용하지 않고 있는 유휴 컴퓨팅 자원을 나타낸다.
또한, 도 3의 컴퓨터 A는 현재 구성된 컴퓨터 클러스터의 메인 노드를 나타낸다. 현재 사용하지 않는 유휴 컴퓨팅 자원은 USB 포트에 저장장치를 연결함으로써 기존에 구성한 클러스터에 언제든지 포함될 수 있다.
다만, 메인 노드는 도 3에서와 같이 하나로 설정될 수 있을 뿐만 아니라, 도 4에서 후술하는 바와 같이 복수 개로 형성될 수도 있다.
상술한 바와 같은 단계를 가지는 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법은, 유휴 컴퓨팅 자원을 활용하기 위해 USB(Universal Serial Bus) 포트에 연결 가능한 저장장치로 간단하게 클러스터를 구성할 수 있는 병렬 컴퓨팅 기술로서, 단일 컴퓨팅 자원으로 동작 시키기 무거운 소프트웨어를 여러 대의 유휴 컴퓨팅 자원을 활용하여 효과적으로 동작 시킬 수 있는 클러스터 구성의 효율적인 장치를 제공할 수 있다.
또한, 일반적인 유휴 컴퓨팅 자원을 저비용으로 클러스터 구성을 할 수 있도록 활용함으로써, 저가의 이동식 디스크와 NFS 프로토콜을 사용하여 기존 컴퓨팅 자원의 저장장치를 변경하지 않고, 클러스터를 구성하는 방법을 제공하며, 구성된 클러스터는 연산에 있어 각각의 컴퓨터 자원이 가진 성능에 비해 훨씬 월등한 성능을 제공할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법을 설명하는 순서도이다.
도 4를 참조하면, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법은, 유휴 컴퓨팅 자원을 이용하여 실행 작업의 개수가 복수 개인 경우(S270의 Yes의 경우), 도 2에서 설명한 S210 내지 S260 단계 이후에 유휴 컴퓨팅 자원을 이용하여 실행할 복수 개의 작업에 대응하여 복수 개의 메인 노드를 작업별로 매칭 시켜 구분한다(S280).
일 실시예에서, 상술한 단계 S220에서는, 메인 노드를 구분함에 있어 복수 개의 작업에 매칭 시킬 복수 개의 메인 노드를 설정할 수 있다.
예를 들어, 실행하여야 할 작업이 A, B 및 C의 세 개라고 할 경우, 메인 노드 역시 세 개를 설정한 후, 각각의 메인 노드에 작업 A, B 또는 C를 매칭 시켜 구분할 수 있다.
상술한 단계 S280에서 작업별로 매칭 시켜 구분된 각각의 메인 노드는, 자신에게 매칭된 작업에 필요로 하는 자원을 가지고 있는 클라이언트 노드를 탐색한 후, 해당 탐색된 클라이언트 노드를 가용 자원이 큰 노드부터 순위를 매겨 노드 리스트를 생성한다(S290).
작업을 할당받은 메인 노드는, 자신에게 할당된 작업에 필요로 하는 자원을 가지고 있는 클라이언트 노드를 유휴 컴퓨팅 자원 내에서 탐색한 후, 탐색된 클라이언트 노드를 자신에게 할당된 작업에 필요로 하는 자원을 가장 많이 가진 클라이언트 노드로부터 순위를 매겨 노드 리스트를 생성할 수 있다.
예를 들어, 메인 노드에 할당된 작업이 그래픽 작업인 경우, 그래픽 작업에 필요로 하는 자원인 고성능의 그래픽 카드(graphic card)를 보유한 클라이언트 노드를 탐색한 후, 탐색된 클라이언트 노드를 그래픽 카드의 성능별로 순위를 매겨 노드 리스트를 생성할 수 있다.
각각의 메인 노드는, 상술한 단계 S290에서 생성한 노드 리스트에서 순위가 높은 클라이언트 노드부터 자신의 클라이언트 노드로 우선적으로 종속시킨다(S300).
일 실시예에서, 메인 노드는, 작업 실행 시 상술한 단계 S290에서 생성한 노드 리스트에서 순위가 높은 클라이언트 노드부터 작업을 실행 시킬 수 있다.
일 실시예에서, 메인 노드는, 자신에게 종속된 클라이언트 노드 중에서, 자신이 수행하여야 할 작업에 필요로 하는 자원을 가장 많이 가지고 있는 클라이언트 노드를 우선적으로 작업에 투입함으로써, 작업의 효율성을 보다 향상 시킬 수 있다.
상술한 바와 같은 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법은, 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CDROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경 시킬 수 있음을 이해할 수 있을 것이다.
본 발명에 따르면, 일반적으로 사용되는 컴퓨터 한 대의 성능으로 동작 시키기 어려운 프로그램들을 유휴 컴퓨팅 자원을 사용하여 효과적으로 동작 시킬 수 있는 기술을 USB 포트에 연결 가능한 저장장치를 통해 제공할 수 있다.
또한, 클러스터의 구성과 기존 설치된 시스템으로의 복구가 간편하기 때문에 연산량이 큰 해결과제를 함에 있어서 저비용으로 유휴자원을 효율적으로 사용할 수 있다.
100: 자원 확보부
200: 노드 구분부
300: 프로그램 설치부
400: 클러스터 구성부

Claims (10)

  1. 클러스터(Cluster)를 구성하기 위한 유휴 컴퓨팅 자원(Idle Computing Resource)을 확보하는 단계;
    확보된 유휴 컴퓨팅 자원에 포함된 각 컴퓨터를 메인 노드로 사용할 컴퓨터 또는 클라이언트 노드로 사용할 컴퓨터로 구분하는 단계;
    컴퓨터에 연결 가능한 저장장치인 이동식 저장장치에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계;
    상기 메인 노드에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계;
    상기 클라이언트 노드에 저장장치 간의 복사를 통해 운영체제 및 프로그램을 설치하는 단계; 및
    운영체제 및 클러스터 구성에 필요한 프로그램이 설치된 상기 메인 노드 또는 상기 클라이언트 노드에 상기 이동식 저장장치를 연결 시켜 클러스터를 구성하는 단계를 포함하는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  2. 제1항에 있어서, 상기 컴퓨터에 연결 가능한 저장장치인 이동식 저장장치에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 단계는,
    상기 이동식 저장장치에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치한 후, 확보된 유휴 컴퓨팅 자원에 할당된 IP 주소를 설정하는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  3. 제1항에 있어서, 상기 클러스터 구성에 필요한 프로그램은,
    NFS(Network File System) 또는 MPI(Message Passing Interface)를 포함하는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  4. 제1항에 있어서,
    유휴 컴퓨팅 자원을 이용하여 실행할 작업이 복수 개인 경우, 복수 개의 메인 노드를 작업별로 매칭 시켜 구분하는 단계를 더 포함하는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  5. 제4항에 있어서,
    작업별로 매칭 시켜 구분된 메인 노드는, 자신에게 매칭된 작업에 필요로 하는 자원을 가지고 있는 클라이언트 노드를 탐색하는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  6. 제5항에 있어서,
    상기 메인 노드는, 탐색된 클라이언트 노드를 가용 자원이 큰 노드부터 순위를 매겨 노드 리스트를 생성하는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  7. 제6항에 있어서,
    상기 메인 노드는, 상기 노드 리스트에서 순위가 높은 클라이언트 노드부터 자신의 클라이언트 노드로 우선적으로 종속 시키는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  8. 제7항에 있어서,
    상기 메인 노드는, 작업 실행 시 상기 노드 리스트에서 순위가 높은 클라이언트 노드부터 작업을 실행 시키는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법.
  9. 제1항 내지 제8항 중 어느 하나의 항에 따른 유휴 컴퓨팅 자원을 이용한 클러스터 구축 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  10. 클러스터(Cluster)를 구성하는 유휴 컴퓨팅 자원(Idle Computing Resource)을 확보하는 자원 확보부;
    상기 자원 확보부에서 확보된 유휴 컴퓨팅 자원에 포함된 각 컴퓨터를 메인 노드로 사용할 컴퓨터 또는 클라이언트 노드로 사용할 컴퓨터로 구분하는 노드 구분부;
    컴퓨터에 연결 가능한 저장장치인 이동식 저장장치, 상기 메인 노드 및 상기 클라이언트 노드에 운영체제 및 클러스터 구성에 필요한 프로그램을 설치하는 프로그램 설치부; 및
    운영체제 및 클러스터 구성에 필요한 프로그램이 설치된 상기 메인 노드 또는 상기 클라이언트 노드에 상기 이동식 저장장치를 연결 시켜 클러스터를 구성하는 클러스터 구성부를 포함하는, 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치.
KR1020180031279A 2018-03-19 2018-03-19 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체 KR20190109795A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180031279A KR20190109795A (ko) 2018-03-19 2018-03-19 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180031279A KR20190109795A (ko) 2018-03-19 2018-03-19 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체

Publications (1)

Publication Number Publication Date
KR20190109795A true KR20190109795A (ko) 2019-09-27

Family

ID=68097016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180031279A KR20190109795A (ko) 2018-03-19 2018-03-19 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체

Country Status (1)

Country Link
KR (1) KR20190109795A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102289100B1 (ko) * 2020-05-07 2021-08-11 한전케이디엔주식회사 빅데이터 분석을 위한 컨테이너 기반의 클러스터 구축 방법 및 클러스터 장치
KR102488270B1 (ko) * 2022-08-09 2023-01-18 주식회사 데이터스트림즈 효율적인 스파크 잡 실행을 위한 하이브리드 스파크 클러스터 관리 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368078B1 (ko) 1999-01-29 2003-01-15 인터내셔널 비지네스 머신즈 코포레이션 멀티 클러스터형 컴퓨터 시스템을 구축하고 관리하기 위한방법 및 장치
KR101374120B1 (ko) 2012-05-31 2014-03-13 삼성에스디에스 주식회사 분석 작업 실행 이력을 이용한 가상 클러스터 구축 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368078B1 (ko) 1999-01-29 2003-01-15 인터내셔널 비지네스 머신즈 코포레이션 멀티 클러스터형 컴퓨터 시스템을 구축하고 관리하기 위한방법 및 장치
KR101374120B1 (ko) 2012-05-31 2014-03-13 삼성에스디에스 주식회사 분석 작업 실행 이력을 이용한 가상 클러스터 구축 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102289100B1 (ko) * 2020-05-07 2021-08-11 한전케이디엔주식회사 빅데이터 분석을 위한 컨테이너 기반의 클러스터 구축 방법 및 클러스터 장치
KR102488270B1 (ko) * 2022-08-09 2023-01-18 주식회사 데이터스트림즈 효율적인 스파크 잡 실행을 위한 하이브리드 스파크 클러스터 관리 방법 및 시스템

Similar Documents

Publication Publication Date Title
US11399072B2 (en) System and method for intent-based service deployment
US8972986B2 (en) Locality-aware resource allocation for cloud computing
US8327350B2 (en) Virtual resource templates
US10303450B2 (en) Systems and methods for a policy-driven orchestration of deployment of distributed applications
US8656412B2 (en) Pipeline across isolated computing environments
US10445122B2 (en) Effective and efficient virtual machine template management for cloud environments
RU2571366C2 (ru) Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин
US10387179B1 (en) Environment aware scheduling
US20080282253A1 (en) Method of managing resources within a set of processes
KR102318533B1 (ko) Gpu기반 임베디드 에지 서버 구성과 신경망 서비스 활용 방법 및 시스템
Singh et al. Analyzing performance of Apache Tez and MapReduce with hadoop multinode cluster on Amazon cloud
US8087015B2 (en) Assignment of application models to deployment targets
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
Chen et al. Federation in cloud data management: Challenges and opportunities
KR20190109795A (ko) 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체
Malyshkin et al. Scalable distributed data allocation in LuNA fragmented programming system
Zarrin et al. Dynamic, scalable and flexible resource discovery for large-dimension many-core systems
Sharma et al. New efficient Hadoop scheduler: Generalized particle swarm optimization and simulated annealing‐dominant resource fairness
US11190565B2 (en) Operator to processing element assignment in an active stream processing job
KR20210096259A (ko) 컴퓨팅 리소스 할당
KR101841847B1 (ko) 가상 디스크 프로비저닝 관리 방법 및 장치
Heidari et al. Cost‐efficient and network‐aware dynamic repartitioning‐based algorithms for scheduling large‐scale graphs in cloud computing environments
US10095849B1 (en) Tag-based programming interface authentication
US11586626B1 (en) Optimizing cloud query execution
Aruna et al. Distributed data analysis with docker swarm using r

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application