KR101474872B1 - 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템 - Google Patents

클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템 Download PDF

Info

Publication number
KR101474872B1
KR101474872B1 KR20140002895A KR20140002895A KR101474872B1 KR 101474872 B1 KR101474872 B1 KR 101474872B1 KR 20140002895 A KR20140002895 A KR 20140002895A KR 20140002895 A KR20140002895 A KR 20140002895A KR 101474872 B1 KR101474872 B1 KR 101474872B1
Authority
KR
South Korea
Prior art keywords
virtual
host
node
cluster
hosts
Prior art date
Application number
KR20140002895A
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 KR20140002895A priority Critical patent/KR101474872B1/ko
Application granted granted Critical
Publication of KR101474872B1 publication Critical patent/KR101474872B1/ko

Links

Images

Classifications

    • 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/1827Management specifically adapted to NAS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 클라우드 관리 서버 장치는 적어도 하나의 물리 노드를 가지는 호스트들 및 스토리지를 포함하는 클라우드 시스템을 위한 클라우드 관리 서버 장치로서, 호스트들 상에서 구동된 가상 노드들이 클라우드 환경 내에서 가상 클러스터를 구성하도록 설정하고, 가상 클러스터를 구성하는 가상 노드들에 관한 클러스터 구성 정보를 관리하며, 가상 클러스터에 가상 노드가 추가적으로 필요할 경우에, 클라우드 관리부에 가상 노드 추가 요청 및 클러스터 구성 정보를 전송하는 가상 클러스터 관리부 및 호스트들 및 스토리지의 자원을 통합적으로 관리하여 클라우드 환경을 제공하고, 각각의 호스트에서 구동하는 가상 노드들에 관한 호스트 구동 정보를 관리하며, 가상 클러스터 관리부로부터 가상 노드 추가 요청이 있을 경우에, 클러스터 구성 정보 및 호스트 구동 정보에 따라 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 클라우드 관리부를 포함할 수 있다.

Description

클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템{METHOD FOR ELASTIC VIRTUAL CLUSTER MANAGEMENT FOR EFFICIENT CONSTRUCTION OF VIRTUAL CLUSTERS ON CLOUD, APPARATUS FOR ELASTIC VIRTUAL CLUSTER MANAGEMENT AND CLOUD SYSTEM USING THE SAME}
본 발명은 클라우드 기술에 관한 것으로, 더욱 상세하게는, 클라우드 상의 가상 클러스터 관리 기술에 관한 것이다.
클라우드(Cloud)는 내부적으로 네트워크로 긴밀하게 연결된 대규모 컴퓨팅 자원을 사용자에게 서비스 형태로 제공하는 기법 또는 그러한 시스템 자체를 의미한다. 각각의 사용자는 필요할 때에 클라우드 시스템에 접속하여 필요한 컴퓨팅 자원을 활용할 수 있기 때문에 항상 필요하지는 않은 컴퓨팅 자원을 직접 보유하여야 하는 부담에서 벗어날 수 있다.
특히 클라우드 기법과 가상 머신(Virtual Machine, VM) 기술이 결합되면서, 클라우드 기반의 가상화된 분산 인프라스트럭처가 가능하게 되었다. 사용자가 클라우드에 컴퓨팅 자원의 제공을 요청하면 클라우드는 가상화된 분산 인프라스트럭처 상에 사용자가 요구하는 상황에 따라 적절한 규모의 컴퓨팅 자원이 할당되고 또한 컴퓨팅 자원의 할당량이 조절되는 가상 클러스터(Virtual Cluster)를 사용자를 위해 제공할 수 있다.
현실의 물리적인 컴퓨터 클러스터(Computer Cluster)가 복수의 물리적 머신들(physical machines) 또는 물리적 노드들(physical nodes)이 네트워크로 연결되어 하나의 시스템처럼 동작하는 집합적 시스템이듯이, 가상 클러스터는 클라우드 상에서 생성되고 관리되는 복수의 가상 머신들을 연결하여 하나의 서브시스템처럼 동작시킬 수 있는 가상 머신들의 집합을 의미한다. 이때, 클라우드 자체는 수많은 실제의 물리적 머신들이 묶여 가상으로 하나의 거대한 시스템처럼 동작되는 시스템이다.
다시 말해, 수많은 물리적 머신들을 가상화 기술로 하나의 시스템처럼 동작시키는 클라우드가 제공되고, 클라우드 상에서 다시 가상 머신들을 구동시키는 식이다.
이에 따라, 가상 클러스터에 가상 머신들을 추가하거나 제거하는 절차만으로 대단히 유연한 컴퓨팅 자원 관리가 가능하게 되었지만, 이러한 가상 클러스터 환경은 가상화 지원, 분산된 자원 관리, 능동적인 성능 할당 등으로 인해 발생하는 오버헤드로 인하여, 상황에 따라서는 기존의 고성능 그리드 시스템에 비해 오히려 작업 처리량(throughput) 측면에서 불리할 수 있다.
예를 들어, A. Raveendran 등이 소개한 가상 머신 관리 기법은 클라우드에서 병렬 처리 어플리케이션을 실행할 때에 발생할 수 있는 성능 저하를 해결하고자, MPI(Message passing interface) 워크로드(workload)에 대한 시간 비용과 성능 비용을 예측하고, 가상 머신의 수를 탄력적으로 조정 및 관리하는 기법이다. 이 기법은 가상 머신의 수를 조정하고, 새로운 가상 머신을 할당하거나 또는 기존의 가상 머신을 해제하며, 작업을 재배포하는 등의 역할을 담당하는 계층들(layer)을 이용하는데, 사용자가 자원 관리를 위해 개입해야 하는 등의 문제가 있다.
P. Patchin 등이 제안한 상용 가상 머신 관리 프로그램인 SnowFlock™은 클라우드 환경에서 가상 머신과 MPI 워크로드를 관리하는 응용 프로그램으로서, 가상 머신의 빠른 복제(fast cloning) 기법과 MPI 어플리케이션의 수정을 통해 확장성 있는 클러스터 관리 기법을 제시하지만, 자체적으로 발생하는 오버헤드가 오히려 MPI 워크로드 처리 속도의 성능 저하를 일으키는 문제가 있다.
이러한 문제점으로 인하여, 클라우드에서 처리량과 자원 효율성을 높이기 위해 좀더 지능적이고 효과적인 가상 머신 자원 관리 기법이 요구되고 있다.
A. Raveendran, T. Bicer, and G. Agrawal, "A Framework for Elastic Execution of Existing MPI Programs," In Proceedings of the 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and PhD Forum, pp. 940-947, 2011 P. Patchin, H. A. Lagar-Cavilla, Eyal de Lara and M. Brudno, "Adding the easy button to the cloud with SnowFlock and MPI," In Proceedings of the 3rd ACM Workshop on System-level Virtualization for High Performance Computing, pp. 1-8, 2009
본 발명이 해결하고자 하는 과제는 클라우드 상에 가상 클러스터들의 효율적 운영을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 클라우드 상에서 생성된 각각의 가상 클러스터의 처리량을 최대화하고, 가상 클러스터 내의 가상 머신들 사이의 트래픽이 일으키는 부하를 최적화할 수 있는 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 복잡하고 정교하여 그 자체로 오버헤드를 일으키는 방식이 아닌, 단순하고 직관적이어서 오버헤드가 거의 없는 방식으로써 클라우드 상에 가상 클러스터들의 효율적 운영을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 기존의 클라우드 가상 클러스터 환경에 용이하게 적용할 수 있는 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템을 제공하는 데에 있다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확히 이해될 수 있을 것이다.
본 발명의 일 측면에 따른 클라우드 관리 서버 장치는, 적어도 하나의 물리 노드를 가지는 호스트들 및 스토리지를 포함하는 클라우드 시스템을 위한 클라우드 관리 서버 장치로서,
상기 호스트들 상에서 구동된 가상 노드들이 클라우드 환경 내에서 가상 클러스터를 구성하도록 설정하고, 가상 클러스터를 구성하는 가상 노드들에 관한 클러스터 구성 정보를 관리하며, 가상 클러스터에 가상 노드가 추가적으로 필요할 경우에, 클라우드 관리부에 가상 노드 추가 요청 및 클러스터 구성 정보를 전송하는 가상 클러스터 관리부; 및
상기 호스트들 및 스토리지의 자원을 통합적으로 관리하여 상기 클라우드 환경을 제공하고, 각각의 호스트에서 구동하는 가상 노드들에 관한 호스트 구동 정보를 관리하며, 상기 가상 클러스터 관리부로부터 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 따라 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 클라우드 관리부를 포함할 수 있다.
일 실시예에 따라, 가상 클러스터를 구성하는 가상 노드들 중 적어도 하나는 가상 클러스터 헤드 노드이고,
상기 가상 클러스터 헤드 노드는 사용자로부터 요청된 작업을 수행할 가상 노드가 더 필요할 경우에 가상 노드 추가 요청을 생성하여 상기 가상 클러스터 관리부에 전송하는 가상 클러스터 관리자 클라이언트를 포함할 수 있다.
일 실시예에 따라, 상기 클라우드 관리부는,
상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여 호스트마다 적합도를 산출하고, 새로 가상 머신을 구동할 자원을 가진 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하도록 동작할 수 있다.
일 실시예에 따라, 상기 적합도는 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드들 중에서 각 호스트에서 구동 중인 가상 노드들의 수일 수 있다.
일 실시예에 따라, 상기 클라우드 관리부는,
상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여, 새로 가상 머신을 구동할 자원을 가진 호스트들을 새로운 가상 노드의 생성에 상대적으로 적합한 적합 호스트 또는 상대적으로 부적합한 부적합 호스트 중 어느 하나로 분류하고, 적합 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하도록 동작할 수 있다.
일 실시예에 따라, 상기 클라우드 관리부는,
만약 적합 호스트가 없으면 부적합 호스트들 중에 소정 조건에 상응하는 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하도록 동작할 수 있다.
일 실시예에 따라, 상기 클라우드 관리부는,
가상 노드 추가 요청이 있을 때에, 적합 호스트 리스트와 부적합 호스트 리스트를 초기화하고, 새로 가상 머신을 구동할 자원을 가진 호스트들의 가용 호스트 리스트를 생성하며,
상기 가용 호스트 리스트 중의 각각의 호스트가 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드를 실행하는 중이면 적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제하고 그렇지 않으면 부적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제하며,
상기 가용 호스트 리스트가 비워지면, 상기 적합 호스트 리스트 내에서 적합도가 가장 높은 적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하도록 동작할 수 있다.
일 실시예에 따라, 상기 클라우드 관리부는,
만약 상기 선택된 적합 호스트가 실제로 가상 머신을 추가로 구동할 수 있는 상태인 경우에 상기 선택된 적합 호스트를 가상 노드가 새로 생성될 호스트로 최종적으로 선택하고,
만약 선택된 적합 호스트가 실제로 가상 머신을 추가 구동할 수 없는 상태인 경우에는, 상기 선택된 적합 호스트를 상기 적합 호스트 리스트에서 제거하고, 다음으로 적합도가 높은 적합 호스트를 선택하도록 동작할 수 있다.
일 실시예에 따라, 상기 클라우드 관리부는,
만약 상기 적합 호스트 리스트가 비어 있는 경우에는, 상기 부적합 호스트 리스트 내에서 여유 자원이 가장 많은 부적합 호스트, 또는 기존의 가상 클러스터에 대한 네트워크 지연이 가장 적은 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하도록 동작할 수 있다.
본 발명의 다른 측면에 따른 가상 클러스터 관리 방법은, 적어도 하나의 물리 노드를 가지는 호스트들 및 스토리지를 포함하는 클라우드 시스템을 통해 사용자에게 클라우드 환경을 제공하기 위한 클라우드 관리 서버를 이용한 가상 클러스터 관리 방법으로서,
상기 클라우드 관리 서버가,
상기 호스트들 상에서 구동된 가상 노드들이 클라우드 환경 내에서 가상 클러스터를 구성하도록 설정하고, 가상 클러스터를 구성하는 가상 노드들에 관한 클러스터 구성 정보를 관리하는 단계; 및
상기 호스트들 및 스토리지의 자원을 통합적으로 관리하여 상기 클라우드 환경을 제공하고, 각각의 호스트에서 구동하는 가상 노드들에 관한 호스트 구동 정보를 관리하며, 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 따라 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계를 포함할 수 있다.
일 실시예에 따라, 가상 클러스터를 구성하는 가상 노드들 중 적어도 하나는 가상 클러스터 헤드 노드이고,
상기 가상 클러스터 헤드 노드가 사용자로부터 요청된 작업을 수행할 가상 노드가 더 필요할 경우에 가상 노드 추가 요청을 생성하도록 동작할 수 있다.
일 실시예에 따라, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여 호스트마다 적합도를 산출하고, 새로 가상 머신을 구동할 자원을 가진 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 적합도는 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드들 중에서 각 호스트에서 구동 중인 가상 노드들의 수일 수 있다.
일 실시예에 따라, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여, 새로 가상 머신을 구동할 자원을 가진 호스트들을 새로운 가상 노드의 생성에 상대적으로 적합한 적합 호스트 또는 상대적으로 부적합한 부적합 호스트 중 어느 하나로 분류하고, 적합 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
만약 적합 호스트가 없으면 부적합 호스트들 중에 소정 조건에 상응하는 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
가상 노드 추가 요청이 있을 때에, 적합 호스트 리스트와 부적합 호스트 리스트를 초기화하고, 새로 가상 머신을 구동할 자원을 가진 호스트들의 가용 호스트 리스트를 생성하는 단계;
상기 가용 호스트 리스트 중의 각각의 호스트가 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드를 실행하는 중이면 적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제하고 그렇지 않으면 부적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제하는 단계;
상기 가용 호스트 리스트가 비워지면, 상기 적합 호스트 리스트 내에서 적합도가 가장 높은 적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
만약 상기 선택된 적합 호스트가 실제로 가상 머신을 추가로 구동할 수 있는 상태인 경우에 상기 선택된 적합 호스트를 가상 노드가 새로 생성될 호스트로 최종적으로 선택하는 단계; 및
만약 선택된 적합 호스트가 실제로 가상 머신을 추가 구동할 수 없는 상태인 경우에는, 상기 선택된 적합 호스트를 상기 적합 호스트 리스트에서 제거하고, 다음으로 적합도가 높은 적합 호스트를 선택하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
만약 상기 적합 호스트 리스트가 비어 있는 경우에는, 상기 부적합 호스트 리스트 내에서 여유 자원이 가장 많은 부적합 호스트, 또는 기존의 가상 클러스터에 대한 네트워크 지연이 가장 적은 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하는 단계를 더 포함할 수 있다.
본 발명의 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템에 따르면, 클라우드 상에서 가상 클러스터들을 효율적 운영할 수 있다.
본 발명의 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템에 따르면, 클라우드 상에서 생성된 각각의 가상 클러스터의 처리량을 최대화하고, 가상 클러스터 내의 가상 머신들 사이의 트래픽이 일으키는 부하를 최적화할 수 있다.
본 발명의 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템에 따르면, 복잡하고 정교하여 그 자체로 오버헤드를 일으키는 방식이 아닌, 단순하고 직관적이어서 오버헤드가 거의 없는 방식으로 구현될 수 있다.
본 발명의 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템에 따르면, 기존의 클라우드 가상 클러스터 환경에 용이하게 적용할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 클라우드 환경에 기반한 가상 클러스터 관리 장치 및 클라우드 시스템을 예시한 개념도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 클라우드 시스템에서 가상 노드들과 호스트들의 상관 관계에 따른 성능 상의 차이를 예시적으로 설명하기 위한 개념도들이다.
도 4는 본 발명의 일 실시예에 따른 탄력적 가상 클러스터 관리 방법을 예시한 순서도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명의 명세서 전반에 걸쳐 노드(node)는 네트워크를 구성하는 단위 요소로서, 가상 노드(virtual node)는 가상 클러스터(virtual cluster)를 구성하는 각각의 가상 머신(virtual machine)이며, 물리 노드(physical node)는 클라우드 시스템(cloud system)을 구성하는 각각의 물리적 머신(physical machine)을 의미한다. 달리 정의되지 않는 한, "가상 머신" 용어와 "가상 노드" 용어, 그리고 "물리 머신", "물리 노드", "물리적 머신"과 "물리적 노드"는 맥락에 따라 각각 혼용될 수 있다. 다만, "노드"는 가상 클러스터에 포함되거나 또는 네트워크에 의해 다른 자원과 연결되는 경우에 주로 사용될 수 있고, "머신"은 그러한 제한이 없이 사용될 수 있다.
본 발명의 명세서 전반에 걸쳐 호스트(host)는 가상 머신을 구현할 수 있는 기반이 되는 하드웨어, 즉 물리적 머신을 의미할 수 있다. 이러한 맥락에서, 달리 정의되지 않는 한, "물리 머신", "물리 노드", "물리적 머신", "물리적 노드"와 "호스트"는 혼용될 수 있다.
다만, "호스트"는 복수의 연산 장치들(CPU) 또는 코어들을 가질 수 있고, 각각의 CPU 또는 코어가 "물리 머신" 또는 "물리 노드"에 상응할 수 있으므로, 이러한 맥락에서는, "호스트"는 "복수의 물리 머신들" 또는 "복수의 물리 노드들"을 포함하는 개념이다.
도 1은 본 발명의 일 실시예에 따른 클라우드 환경에 기반한 가상 클러스터 관리 장치 및 클라우드 시스템을 예시한 개념도이다.
도 1을 참조하면, 클라우드 시스템(10)은 적어도 하나의 물리 노드(111)를 가지는 호스트들(110), 스토리지(120) 및 클라우드 관리 서버(200)를 포함할 수 있다. 호스트들(110), 스토리지(120) 및 클라우드 관리 서버(200)는 네트워크로 연결된다.
호스트들(110)은 클라우드 관리 서버(200)의 제어에 따라 가상 머신들을 구동할 수 있고, 물리 노드(111)로서 복수의 CPU 또는 복수의 코어들을 가질 수 있다.
클라우드 관리 서버(200)는 클라우드 관리부(210) 및 가상 클러스터 관리부(Virtual Cluster Manager, VCM Server)(220)를 포함할 수 있다.
한편, 각각의 가상 클러스터(300)가 포함하는 복수의 가상 노드들(310, 320) 중 적어도 하나의 가상 노드(310)는 가상 클러스터 헤드 노드(head node)이고 나머지 가상 노드들(320)은 워커 노드들(worker nodes)이다.
클라우드 관리부(210)는 호스트들(110)과 스토리지(120)가 하나의 클라우드 환경을 구현하도록 호스트들(110) 및 스토리지(120)의 연산 자원을 통합적으로 관리하고, 가상 클러스터 관리부(220)의 가상 노드 추가 요청 또는 가상 노드 제거 요청에 따라 호스트들(110) 상에 가상 머신들을 구동하거나 종료하여 클라우드 환경에 편입하거나 제거함으로써 가상 노드들(310, 320)을 동적으로 생성 또는 종료하며, 각각의 호스트(110)에서 구동하는 가상 노드들(310, 320)에 관한 호스트 구동 정보를 관리할 수 있다. 호스트 구동 정보는 각 호스트에서 어떤 가상 노드들을 구동하는지에 관한 정보이다.
구체적으로, 클라우드 관리부(210)는 가상 클러스터 관리부(220)를 통해 가상 노드 추가 요청이 수신되면, 가상 클러스터 관리부(220)를 통해 전달된 클러스터 구성 정보 및 호스트 구동 정보에 기초하여 선택된 호스트(110)에서 우선적으로 새로운 가상 노드(320)를 생성할 수 있다.
이때, 후술하듯이, 새로 가상 노드(320)가 우선적으로 생성되는 호스트(110)는 추가적인 가상 노드가 필요한 가상 클러스터(300)에 이미 소속해 있는 가상 노드들(310, 320) 중 적어도 어느 하나가 구동되고 있는 호스트(110)이다.
실시예에 따라, 클라우드 관리부(210)는 가상 노드 추가 요청이 있을 때에 비로소 새로 가상 머신을 구동하고 구동된 가상 머신을 클라우드 환경에 편입시킴으로써 가상 노드를 추가로 생성할 수도 있지만, 이러한 경우에 가상 머신의 부팅 등의 기동에 다소 시간이 소요될 수 있다. 따라서 다른 실시예에서는 클라우드 관리부(210)는 호스트에서 미리 다수의 가상 머신들을 구동하되 대기(suspended) 상태로 두었다가, 가상 노드 추가 요청이 있을 때에 일시 정지인 가상 머신을 즉각적으로 재가동(wake-up)하여 클라우드 환경에 편입시킴으로써 가상 노드를 거의 실시간적으로 추가시킬 수 있다.
또한 클라우드 관리부(210)는, 예를 들어 작업이 완료되는 등의 상황에 따라, 불필요하게 된 가상 노드(310, 320)에 해당하는 가상 머신을 종료시켜 연산 자원을 회수할 수 있다.
이 경우에도, 클라우드 관리부(210)는 불필요한 가상 노드를 클라우드 환경에서 제거하되, 제거되는 가상 노드에 상응하는 가상 머신을 완전히 종료(power-off)할 수도 있고, 대기 상태로 만들어 둘 수도 있다.
가상 클러스터 관리부(220)는 호스트들(110) 상에서 구동된 가상 노드들(310, 320)이 가상 클러스터(300)를 구성하도록 설정하고, 가상 클러스터(300)를 구성하는 가상 노드들(310, 320)에 관한 클러스터 구성 정보를 관리할 수 있다. 클러스터 구성 정보는 어떤 가상 클러스터가 어떤 가상 노드들로 구성되는지에 관한 정보이다.
구체적으로, 가상 클러스터 관리부(220)는 새로 가상 클러스터(300)를 생성할 경우에, 클라우드 관리부(210)에 가상 노드 추가 요청을 전송하고, 가상 노드 추가 요청에 따라 클라우드 관리부(210)에 의해 새로 생성된 가상 노드(310)를 가상 클러스터 헤드 노드로 설정할 수 있다.
또한 가상 클러스터 관리부(220)는 가상 클러스터(300)에서 작업을 수행하기 위해 추가적으로 워커 노드가 필요할 경우에, 클라우드 관리부(210)에 가상 노드 추가 요청을 전송하고, 가상 노드 추가 요청에 따라 클라우드 관리부(210)에 의해 새로 생성되는 가상 노드(320)를 추가적인 가상 노드가 필요한 가상 클러스터(300)에 워커 노드로서 소속되도록 설정할 수 있다. 이 경우에, 만약 필요하면, 가상 클러스터 관리부(220)는, 기존의 가상 클러스터(300) 내의 기존의 가상 노드들(310, 320)이 새로 추가된 가상 노드(320)를 가상 클러스터(300)의 새 워커 노드로 인식할 수 있도록, 각각의 가상 노드들(310, 320)을 재설정할 수 있다.
이때, 후술하듯이, 새로 추가된 가상 노드(320)는 추가적인 가상 노드가 필요한 가상 클러스터(300)에 이미 속해 있는 가상 노드들(310, 320) 중 적어도 어느 하나가 구동되는 호스트(110) 상에서 우선적으로 새로 생성된다.
또한, 예를 들어 작업이 완료되는 등의 상황에 따라, 가상 클러스터(300) 자체가 또는 가상 클러스터(300) 내의 특정 워커 노드가 불필요하게 될 경우에는, 가상 클러스터 관리부(220)는 불필요한 가상 노드들(310, 320)에 관하여 가상 노드 제거 요청을 클라우드 관리부(210)에 전송할 수 있다.
예를 들어, 가상 클러스터 관리부(220)는 기존의 가상 클러스터(300) 내의 기존의 가상 노드들(310, 320)이 제거된 가상 노드(320)를 워커 노드로 더 이상 인식하지 않도록, 나머지 가상 노드들(310, 320)을 재설정할 수 있다.
이러한 가상 노드의 추가 또는 제거를 위해, 가상 클러스터 관리부(220)는 각 가상 클러스터(300)를 구성하는 가상 노드들(310, 320)에 관한 클러스터 구성 정보를 관리하고, 각 가상 클러스터(300) 내의 가상 클러스터 헤드 노드(310)로부터 가상 노드 추가 요청 또는 가상 노드 제거 요청이 수신되면, 가상 노드 추가 요청 또는 가상 노드 제거 요청과 클러스터 구성 정보를 클라우드 관리부(210)에 전송할 수 있다.
한편, 가상 클러스터(300)의 동작을 내부적으로 조율하는 가상 클러스터 헤드 노드(310)는 가상 클러스터(300)의 작업 스케줄링을 수행하고, 가상 클러스터(300)에 대한 사용자가 요청한 작업에 따라 가상 노드 추가 요청 또는 가상 노드 제거 요청을 클라우드 관리 서버(200) 내의 가상 클러스터 관리부(220)에 전송한다.
가상 클러스터 헤드 노드(310)는, 작업 스케줄링을 위해서, 예를 들어 PBS(Portable Batch System)과 같은 작업 스케줄러(311)를 포함할 수 있고, 가상 노드 추가 요청 또는 가상 노드 제거 요청을 위해 가상 클러스터 관리자 클라이언트(Virtual Cluster Manager Client, 또는 VCM Client)(312)를 포함할 수 있다.
작업 스케줄러(311)는 수행하여야 할 작업들을 가상 클러스터 내의 컴퓨터 자원들, 즉 워커 노드들(320)에 시간적으로 분배 및 할당한다.
워커 노드들(320)은 가상 클러스터(300) 내에서 가상 클러스터 헤드 노드(310)의 작업 스케줄러(311)에 의해 작업들을 할당받아 수행하는 가상 노드들이다.
통상적으로 클러스터는 단일 사용자가 사용하는 시스템이 아니기 때문에, 여러 사용자들이 동시적으로 클러스터의 연산 자원에 접근할 수 있다. 클러스터 환경이 아닌 개인용 컴퓨터 운영체제는 기존에 실행되던 작업의 자원을 빼앗아 새 작업에 투입하기 때문에 수행 시간이 늘어날 뿐 별다른 문제가 없다. 그러나, 클러스터 환경에서는, 작업들이 여러 노드들에 분산되도록 관리하기 때문에, 분산 처리 중에 새 사용자가 요청한 작업이 이미 작업을 할당받은 특정 노드에 함께 할당되면 그 특정 노드는 느려질 것이고 특정 노드에서 기존에 할당된 작업이 끝날 때까지 나머지 노드들은 대기하여야 한다. 이러한 비효율을 막기 위해 통상적으로 작업 스케줄러는 어느 한 순간에 한 노드가 한 작업만 수행하도록, 작업 명령들을 대기열에 두고 가용 노드가 발생하면 노드 단위로 작업을 분배한다.
주로 병렬 프로그래밍으로 구현되는 시뮬레이션의 경우에, 작업들은 병렬로 처리되고 작업 도중에 간간히 각 태스크들 사이에서 정보를 공유하는 방식으로 수행된다. 다시 말해, 각각의 작업은 연산 구간과 동기화 구간의 반복이라 할 수 있다. 연산 구간 동안에 각 태스크들이 각각의 노드에서 집중적으로 연산되고, 동기화 구간 동안에 각 태스크들의 결과를 노드들이 네트워크를 통해 공유한다.
이러한 구조에 따라, 클러스터의 성능은 가장 느린 노드의 성능에 의해 결정되거나 또는 노드들의 성능이 엇비슷하다면 네트워크의 성능에 따라 많은 영향을 받는다.
이러한 관점에서 가상 클러스터의 성능은 서로 태스크 결과를 공유하여야 하는 가상 노드들(310, 320)을 호스팅하는 호스트들(110)의 성능 또는 호스트들(110) 사이의 네트워크의 성능에 의해 많은 영향을 받는다는 점을 알 수 있다.
만약, 서로 데이터를 주고받아야 하는 가상 노드들(310, 320)이 하나의 호스트(110) 내에서 가상화된 가상 머신들이라면, 가상 노드들(310, 320) 사이의 데이터 전송은 실질적으로 캐시 또는 메모리에 대한 읽기/쓰기만으로 이루어질 것이고 따라서 대단히 빠르게 처리될 것이다.
반면에, 서로 데이터를 주고받아야 하는 가상 노드들(310, 320)이 서로 다른 호스트들(110)에서 각각 가상화된 가상 머신들이라면, 가상 클러스터(300) 내의 가상 노드들(310, 320) 사이의 데이터 전송은 현실의 네트워크 자원들을 거쳐 이루어질 것이고 따라서 상대적으로 느리게 처리될 것이다.
또한, 동기화 구간에 네트워크의 사용이 집중된다는 점에서, 현실의 네트워크 자원들을 거쳐야 하는 데이터들이 많을수록 네트워크에서 일어나는 지연은 급격히 심해질 수 있다.
따라서, 만약 동기화 구간에 현실의 네트워크 자원들에 대한 수요를 줄일 수 있다면 성능 향상을 기대할 수 있다.
이를 도식적으로 설명하기 위해 도 2 및 도 3을 참조하면, 도 2 및 도 3은 본 발명의 일 실시예에 따른 클라우드 시스템에서 가상 노드들과 호스트들의 상관 관계에 따른 성능 상의 차이를 예시적으로 설명하기 위한 개념도들이다.
설명의 편의를 위해, 도 2 및 도 3에서, 세 개의 호스트들(H1 내지 H3)이 하나의 클라우드 환경을 구성하는데, 각 호스트는 네 개의 물리 노드들을 포함하며, 각 물리 노드가 하나의 가상 노드를 구동하고 있다고 가정한다. 이에 따라 12 개의 물리 노드들(N1 내지 N12)이 하나의 클라우드 환경을 제공하고, 클라우드 환경에 12 개의 가상 노드들(VN1 내지 VN12)이 존재한다. 이러한 12 개의 가상 노드들이 몇 개의 가상 클러스터들(C1 내지 C3)로 분할되어 있다.
도 2에서, 가상 클러스터들(C1 내지 C3)은 각자 서로 다른 호스트들에서 구동되는 가상 노드들을 포함한다. 따라서, 동기화 구간마다, 각 호스트들 사이에서 네트워크 자원에 대한 수요가 급증하고 네트워크 지연에 의해 클러스터 성능이 저하된다.
반면에, 도 3에서, 각각의 가상 클러스터들은 동일한 호스트 내에서 구동되는 가상 노드들만을 포함한다. 따라서, 동기화 구간마다, 각 호스트들 사이에서 네트워크 자원에 대한 수요가 전혀 없고, 네트워크 지연이 없으므로 클러스터 성능이 저하되지 않는다.
이러한 관찰에 따라, 본 발명의 클라우드 시스템(10)의 클라우드 관리부(210)는 동일한 가상 클러스터(300)에 속하는 가상 노드들(310, 320)이 최대한 하나의 호스트(110)에서 구동되도록, 다시 말해, 하나의 호스트(110)가 동일한 가상 클러스터(300)에 속하는 가상 노드들(310, 320)을 가능한 한 많이 구동하도록, 가상 노드 추가 요청이 있을 때에 가상 노드가 새로 생성될 호스트(110)를 클러스터 구성 정보 및 호스트 구동 정보를 기초로 선택한다.
클러스터 구성 정보는 가상 클러스터에 포함되는 가상 노드들을 식별하고, 호스트 구동 정보는 각 호스트 상에서 구동되는 가상 노드들을 식별하므로, 클러스터 구성 정보 및 호스트 구동 정보를 대비하면, 새로 가상 노드를 추가하려는 가상 클러스터에 기존에 포함된 가상 노드들이 구동되는 호스트들이 식별될 수 있다.
다시 말해, 클라우드 관리부(210)는 가상 노드 추가 요청이 있을 경우에, 클러스터 구성 정보 및 호스트 구동 정보에 기초하여 호스트마다 적합도를 산출하고, 새로 가상 머신을 구동할 자원을 가진 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택할 수 있다.
실시예에 따라, 적합도는 가상 노드의 추가를 요청한 가상 클러스터(300)에 속하는 가상 노드들(310, 320) 중에서 각 호스트(110)에서 구동 중인 가상 노드들(310, 320)의 수이다.
구체적으로, 클라우드 관리부(210)는 가상 노드 추가 요청이 있을 경우에, 클러스터 구성 정보 및 호스트 구동 정보에 기초하여, 새로 가상 머신을 구동할 자원을 가진 호스트들(110)을 새로운 가상 노드의 생성에 상대적으로 적합한 호스트, 즉 적합 호스트(attractive host) 또는 상대적으로 부적합한 호스트, 즉 부적합 호스트(unattractive host) 중 어느 하나로 분류하고, 적합 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택한다. 만약 적합 호스트가 없으면 클라우드 관리부(210)는 부적합 호스트 중에 소정 조건에 상응하는 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택할 수 있다.
좀더 구체적으로, 일 실시예에서, 클라우드 관리부(210)는 가상 노드 추가 요청이 있을 때에, 적합 호스트 리스트와 부적합 호스트 리스트를 초기화하고, 새로 가상 머신을 구동할 자원을 가진 호스트들(110)의 가용 호스트 리스트를 생성한다.
이어서, 클라우드 관리부(210)는 가용 호스트 리스트 중의 각각의 호스트(110)가 가상 노드의 추가를 요청한 가상 클러스터(300)에 속하는 가상 노드(310, 320), 즉 협동 가상 노드(cooperative virtual node)를 실행하는 중이면 적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제하고 그렇지 않으면 부적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제한다.
다시 말해, 가용 호스트 리스트 내의 각각의 호스트는 적합 호스트 리스트 또는 부적합 호스트 리스트 중 어느 한 리스트로 이동하고, 가용 호스트 리스트로부터 제거된다. 이에 따라, 모든 가용 호스트가 적합 호스트 또는 부적합 호스트 중 어느 하나로 분류되면, 가용 호스트 리스트는 비워진다.
클라우드 관리부(210)는 가용 호스트 리스트가 비워지면, 적합 호스트 리스트 내에서 적합도가 가장 높은 적합 호스트, 즉 가상 노드의 추가를 요청한 가상 클러스터(300)에 속하는 가상 노드(310, 320)의 수가 가장 많은 적합 호스트를 가상 노드가 새로 생성될 호스트로 선택할 수 있다.
다만, 클라우드 관리부(210)는 선택된 적합 호스트가 실제로 가상 머신을 추가로 구동할 수 있는지 더 살펴볼 수 있다. 이에 따라, 만약 선택된 적합 호스트가 실제로 가상 머신을 추가 구동할 수 있는 상태인 경우에 선택된 적합 호스트를 가상 노드가 새로 생성될 호스트로 최종적으로 선택할 수 있다. 나아가, 만약 선택된 적합 호스트가 실제로 가상 머신을 추가 구동할 수 없는 상태인 경우에는, 선택된 적합 호스트를 적합 호스트 리스트에서 제거하고, 다음으로 적합도가 높은 적합 호스트를 선택할 수 있다.
한편 클라우드 관리부(210)는, 만약 적합 호스트 리스트가 비어 있는 경우에는, 부적합 호스트 리스트 내에서 소정 조건에 따라, 예를 들어, 여유 자원이 가장 많은 부적합 호스트, 또는 기존의 가상 클러스터(300)에 대한 네트워크 지연이 가장 적은 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택할 수 있다.
이어서, 클라우드 관리부(210)는 선택된 호스트에서 가상 노드를 생성한다. 이때, 클라우드 관리부(210)는 선택된 호스트에서 가상 머신을 새로 구동하고 구동된 가상 머신을 클라우드 환경에 가상 노드로 편입시킬 수도 있지만, 선택된 호스트에서 대기 상태에 있는 가상 머신을 재가동하고 재가동된 가상 머신을 클라우드 환경에 가상 노드로 편입시킬 수도 있다.
도 4는 본 발명의 일 실시예에 따른 가상 클러스터 관리 방법을 예시한 순서도이다.
본 발명의 가상 클러스터 관리 방법은 호스트들(110), 스토리지(120) 및 클라우드 관리 서버(200)를 포함하는 클라우드 시스템(10)을 위한 가상 클러스터 관리 방법으로서, 단계(S41)에서, 클라우드 관리 서버(200)가 가상 노드 추가 요청이 있을 때에, 적합 호스트 리스트와 부적합 호스트 리스트를 초기화하고, 새로 가상 머신을 구동할 자원을 가진 호스트들(110)의 가용 호스트 리스트를 생성한다.
이어서, 단계(S42)에서, 클라우드 관리 서버(220)는 가용 호스트 리스트 중의 각각의 호스트(110)가 가상 노드의 추가를 요청한 가상 클러스터(300)에 속하는 가상 노드(310, 320), 즉 협동 가상 노드를 실행하는 중인지 여부를 판정하고 판정 결과에 따라 단계(S43) 또는 단계(S44)로 진행한다.
만약 판정 결과가 긍정적이면, 단계(S43)에서, 호스트를 적합 호스트 리스트에 등록하고 가용 호스트 리스트에서 삭제한다.
만약 판정 결과가 부정적이면, 단계(S44)에서, 호스트를 부적합 호스트 리스트에 등록하고 가용 호스트 리스트에서 삭제한다.
다시 말해, 가용 호스트 리스트 내의 각각의 호스트는 적합 호스트 리스트 또는 부적합 호스트 리스트 중 어느 한 리스트로 옮겨지고, 가용 호스트 리스트로부터 제거된다.
단계(S45)에서, 가용 호스트 리스트 내에 호스트가 남아 있으면 단계(S42)로 진행하고, 그렇지 않고 가용 호스트 리스트가 비워지면 단계(S46)으로 진행한다.
단계(S42)와 단계(S43) 또는 단계(S44) 그리고 단계(S45)가 가용 호스트 리스트 내의 모든 호스트들에 대해 반복되면, 모든 가용 호스트가 적합 호스트 또는 부적합 호스트 중 어느 하나로 분류되고, 최종적으로 가용 호스트 리스트는 비워진다.
가용 호스트 리스트가 비워지면, 단계(S46)에서, 클라우드 관리 서버(200)가 적합 호스트 리스트 내에서 적합도가 가장 높은 적합 호스트를 가상 노드가 새로 생성될 호스트로 선택한다.
이때, 실시예에 따라, 적합도는 가상 노드의 추가를 요청한 가상 클러스터(300)에 속하는 가상 노드(310, 320)의 수이다.
이어서, 선택적 단계(S47)에서, 클라우드 관리 서버(200)는 선택된 적합 호스트가 실제로 가상 머신을 추가로 구동할 수 있는지 판정하고, 판정 결과에 따라 단계(S48) 또는 단계(S50)로 진행한다.
만약 단계(S47)에서, 선택된 적합 호스트가 실제로 가상 머신을 추가 구동할 수 있다고 판정된 경우에는, 단계(S50)으로 진행한다.
만약 단계(S47)에서, 선택된 적합 호스트가 실제로 가상 머신을 추가 구동할 수 없는 상태인 경우에는, 단계(S48)로 진행하여, 클라우드 관리 서버(200)는 선택된 적합 호스트를 적합 호스트 리스트에서 제거하고, 단계(S46)으로 돌아가서, 다음으로 적합도가 높은 적합 호스트를 선택할 수 있다.
실시예에 따라, 단계(S46)에서 선택적 단계(S47)을 거치지 않고 단계(S50)로 진행할 수 있다.
단계(S46)에서 만약 적합 호스트 리스트가 비어 있는 경우에는, 클라우드 관리 서버(200)는, 단계(S49)에서, 부적합 호스트 리스트 내에서 소정 조건에 따라 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택할 수 있다.
실시예에 따라, 클라우드 관리 서버(200)가 부적합 호스트 리스트 내에서 부적합 호스트를 선택하는 조건은 여유 자원이 가장 많은 조건, 또는 기존의 가상 클러스터(300)에 대한 네트워크 지연이 가장 적은 조건일 수 있다.
이어서, 단계(S50)에서, 클라우드 관리 서버(200)는 선택된 호스트에서 가상 노드를 생성한다. 이때, 클라우드 관리 서버(200)는 선택된 호스트에서 가상 머신을 새로 구동하고 구동된 가상 머신을 클라우드 환경에 가상 노드로 편입시킬 수도 있지만, 선택된 호스트에서 대기 상태에 있는 가상 머신을 재가동하고 재가동된 가상 머신을 클라우드 환경에 가상 노드로 편입시킬 수도 있다.
이에 따라, 새로 가상 클러스터(300)에 소속되는 가상 노드(320)는 가상 클러스터(300) 내의 다른 가상 노드들(320)과 데이터를 교환하기 위해 네트워크 자원을 필요로 할 가능성이 적다. 따라서, 본 발명의 가상 클러스터 관리 방법을 통해 선택된 호스트 상에서 구동되는 가상 노드들(320)로 이루어진 가상 클러스터(300)는 최대한 많은 가상 노드들이 하나의 호스트 상에서 동작하게 되므로 동기화 구간에서 성능 저하를 최소화할 수 있다.
본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.
또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
10 클라우드 시스템
110 호스트
111 물리 노드
120 스토리지
200 클라우드 관리 서버
210 클라우드 관리부
220 가상 클러스터 관리부
300 가상 클러스터
310 가상 클러스터 헤드 노드
311 작업 스케줄러
312 가상 클러스터 관리자 클라이언트
320 워커 노드

Claims (20)

  1. 적어도 하나의 물리 노드를 가지는 호스트들 및 스토리지를 포함하는 클라우드 시스템을 위한 클라우드 관리 서버 장치로서,
    상기 호스트들 상에서 구동된 가상 노드들이 클라우드 환경 내에서 가상 클러스터를 구성하도록 설정하고, 가상 클러스터를 구성하는 가상 노드들에 관한 클러스터 구성 정보를 관리하며, 가상 클러스터에 가상 노드가 추가적으로 필요할 경우에, 클라우드 관리부에 가상 노드 추가 요청 및 클러스터 구성 정보를 전송하는 가상 클러스터 관리부; 및
    상기 호스트들 및 스토리지의 자원을 통합적으로 관리하여 상기 클라우드 환경을 제공하고, 각각의 호스트에서 구동하는 가상 노드들에 관한 호스트 구동 정보를 관리하며, 상기 가상 클러스터 관리부로부터 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 따라 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 클라우드 관리부를 포함하는 클라우드 관리 서버 장치.
  2. 청구항 1에 있어서, 가상 클러스터를 구성하는 가상 노드들 중 적어도 하나는 가상 클러스터 헤드 노드이고,
    상기 가상 클러스터 헤드 노드는 사용자로부터 요청된 작업을 수행할 가상 노드가 더 필요할 경우에 가상 노드 추가 요청을 생성하여 상기 가상 클러스터 관리부에 전송하는 가상 클러스터 관리자 클라이언트를 포함하는 것을 특징으로 하는 클라우드 관리 서버 장치.
  3. 청구항 1에 있어서, 상기 클라우드 관리부는,
    상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여 호스트마다 적합도를 산출하고, 새로 가상 머신을 구동할 자원을 가진 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하도록 동작하는 것을 특징으로 하는 클라우드 관리 서버 장치.
  4. 청구항 3에 있어서, 상기 적합도는 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드들 중에서 각 호스트에서 구동 중인 가상 노드들의 수인 것을 특징으로 하는 클라우드 관리 서버 장치.
  5. 청구항 3에 있어서, 상기 클라우드 관리부는,
    상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여, 새로 가상 머신을 구동할 자원을 가진 호스트들을 새로운 가상 노드의 생성에 상대적으로 적합한 적합 호스트 또는 상대적으로 부적합한 부적합 호스트 중 어느 하나로 분류하고, 적합 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하도록 동작하는 것을 특징으로 하는 클라우드 관리 서버 장치.
  6. 청구항 5에 있어서, 상기 클라우드 관리부는,
    만약 적합 호스트가 없으면 부적합 호스트들 중에 소정 조건에 상응하는 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하도록 동작하는 것을 특징으로 하는 클라우드 관리 서버 장치.
  7. 청구항 6에 있어서, 상기 클라우드 관리부는,
    가상 노드 추가 요청이 있을 때에, 적합 호스트 리스트와 부적합 호스트 리스트를 초기화하고, 새로 가상 머신을 구동할 자원을 가진 호스트들의 가용 호스트 리스트를 생성하며,
    상기 가용 호스트 리스트 중의 각각의 호스트가 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드를 실행하는 중이면 적합 호스트 리스트에 등록하면서 상기 가용 호스트 리스트에서 삭제하며, 그렇지 않으면 부적합 호스트 리스트에 등록하면서 상기 가용 호스트 리스트에서 삭제하며,
    상기 가용 호스트 리스트가 비워지면, 상기 적합 호스트 리스트 내에서 적합도가 가장 높은 적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하도록 동작하는 것을 특징으로 하는 클라우드 관리 서버 장치.
  8. 청구항 7에 있어서, 상기 클라우드 관리부는,
    만약 상기 선택된 적합 호스트가 가상 머신을 추가로 구동할 수 있는 상태인 경우에 상기 선택된 적합 호스트를 가상 노드가 새로 생성될 호스트로 최종적으로 선택하고,
    만약 선택된 적합 호스트가 가상 머신을 추가 구동할 수 없는 상태인 경우에는, 상기 선택된 적합 호스트를 상기 적합 호스트 리스트에서 제거하고, 다음으로 적합도가 높은 적합 호스트를 선택하도록 동작하는 것을 특징으로 하는 클라우드 관리 서버 장치.
  9. 청구항 7에 있어서, 상기 클라우드 관리부는,
    만약 상기 적합 호스트 리스트가 비어 있는 경우에는, 상기 부적합 호스트 리스트 내에서 연산 자원이 가장 많은 부적합 호스트, 또는 기존의 가상 클러스터에 대한 네트워크 지연이 가장 적은 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하도록 동작하는 것을 특징으로 하는 클라우드 관리 서버 장치.
  10. 컴퓨터를 청구항 1 내지 청구항 9 중 어느 한 청구항에 따른 클라우드 관리 서버 장치로 구현할 수 있는 컴퓨터 프로그램이 기록된 컴퓨터로 독출될 수 있는 기록 매체.
  11. 적어도 하나의 물리 노드를 가지는 호스트들 및 스토리지를 포함하는 클라우드 시스템을 통해 사용자에게 클라우드 환경을 제공하기 위한 클라우드 관리 서버를 이용한 가상 클러스터 관리 방법으로서,
    상기 클라우드 관리 서버가,
    상기 호스트들 상에서 구동된 가상 노드들이 클라우드 환경 내에서 가상 클러스터를 구성하도록 설정하고, 가상 클러스터를 구성하는 가상 노드들에 관한 클러스터 구성 정보를 관리하는 단계; 및
    상기 호스트들 및 스토리지의 자원을 통합적으로 관리하여 상기 클라우드 환경을 제공하고, 각각의 호스트에서 구동하는 가상 노드들에 관한 호스트 구동 정보를 관리하며, 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 따라 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계를 포함하는 가상 클러스터 관리 방법.
  12. 청구항 11에 있어서, 가상 클러스터를 구성하는 가상 노드들 중 적어도 하나는 가상 클러스터 헤드 노드이고,
    상기 가상 클러스터 헤드 노드가 사용자로부터 요청된 작업을 수행할 가상 노드가 더 필요할 경우에 가상 노드 추가 요청을 생성하도록 동작하는 것을 특징으로 하는 가상 클러스터 관리 방법.
  13. 청구항 11에 있어서, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
    상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여 호스트마다 적합도를 산출하고, 새로 가상 머신을 구동할 자원을 가진 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함하는 것을 특징으로 하는 가상 클러스터 관리 방법.
  14. 청구항 13에 있어서, 상기 적합도는 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드들 중에서 각 호스트에서 구동 중인 가상 노드들의 수인 것을 특징으로 하는 가상 클러스터 관리 방법.
  15. 청구항 13에 있어서, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
    상기 가상 노드 추가 요청이 있을 경우에, 상기 클러스터 구성 정보 및 상기 호스트 구동 정보에 기초하여, 새로 가상 머신을 구동할 자원을 가진 호스트들을 새로운 가상 노드의 생성에 상대적으로 적합한 적합 호스트 또는 상대적으로 부적합한 부적합 호스트 중 어느 하나로 분류하고, 적합 호스트들 중에서 적합도가 가장 높은 적합 호스트를 우선적으로 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함하는 것을 특징으로 하는 가상 클러스터 관리 방법.
  16. 청구항 15에 있어서, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
    만약 적합 호스트가 없으면 부적합 호스트들 중에 소정 조건에 상응하는 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함하는 것을 특징으로 하는 가상 클러스터 관리 방법.
  17. 청구항 16에 있어서, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
    가상 노드 추가 요청이 있을 때에, 적합 호스트 리스트와 부적합 호스트 리스트를 초기화하고, 새로 가상 머신을 구동할 자원을 가진 호스트들의 가용 호스트 리스트를 생성하는 단계;
    상기 가용 호스트 리스트 중의 각각의 호스트가 가상 노드의 추가를 요청한 가상 클러스터에 속하는 가상 노드를 실행하는 중이면 적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제하고, 그렇지 않으면 부적합 호스트 리스트에 등록하면서 가용 호스트 리스트에서 삭제하는 단계;
    상기 가용 호스트 리스트가 비워지면, 상기 적합 호스트 리스트 내에서 적합도가 가장 높은 적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하는 단계를 포함하는 것을 특징으로 하는 가상 클러스터 관리 방법.
  18. 청구항 17에 있어서, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
    만약 상기 선택된 적합 호스트가 가상 머신을 추가로 구동할 수 있는 상태인 경우에 상기 선택된 적합 호스트를 가상 노드가 새로 생성될 호스트로 최종적으로 선택하는 단계; 및
    만약 선택된 적합 호스트가 가상 머신을 추가 구동할 수 없는 상태인 경우에는, 상기 선택된 적합 호스트를 상기 적합 호스트 리스트에서 제거하고, 다음으로 적합도가 높은 적합 호스트를 선택하는 단계를 더 포함하는 것을 특징으로 하는 가상 클러스터 관리 방법.
  19. 청구항 17에 있어서, 상기 선택된 호스트에서 우선적으로 새로운 가상 노드를 생성하는 단계는,
    만약 상기 적합 호스트 리스트가 비어 있는 경우에는, 상기 부적합 호스트 리스트 내에서 연산 자원이 가장 많은 부적합 호스트, 또는 기존의 가상 클러스터에 대한 네트워크 지연이 가장 적은 부적합 호스트를 가상 노드가 새로 생성될 호스트로 선택하는 단계를 더 포함하는 것을 특징으로 하는 가상 클러스터 관리 방법.
  20. 컴퓨터에서 청구항 11 내지 청구항 19 중 어느 한 청구항에 따른 가상 클러스터 관리 방법을 구현할 수 있는 컴퓨터 프로그램이 기록된 컴퓨터로 독출될 수 있는 기록 매체.
KR20140002895A 2014-01-09 2014-01-09 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템 KR101474872B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20140002895A KR101474872B1 (ko) 2014-01-09 2014-01-09 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20140002895A KR101474872B1 (ko) 2014-01-09 2014-01-09 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템

Publications (1)

Publication Number Publication Date
KR101474872B1 true KR101474872B1 (ko) 2014-12-19

Family

ID=52679492

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140002895A KR101474872B1 (ko) 2014-01-09 2014-01-09 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템

Country Status (1)

Country Link
KR (1) KR101474872B1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104900074A (zh) * 2015-05-25 2015-09-09 青岛中兴智能交通有限公司 基于云架构的移动终端路口辅助系统
KR20160114280A (ko) * 2015-03-24 2016-10-05 건국대학교 산학협력단 가상 클러스터 구동 시간 스케줄링 방법 및 장치
KR101807806B1 (ko) 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
KR101865994B1 (ko) 2015-03-24 2018-07-04 건국대학교 산학협력단 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
KR101916809B1 (ko) 2015-03-24 2018-11-08 건국대학교 산학협력단 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치
KR20190074717A (ko) * 2017-12-20 2019-06-28 주식회사 케이티 클라우드 컴퓨팅 환경에서 클러스터 구성 및 관리 시스템 및 그 방법
US10474491B2 (en) 2017-07-21 2019-11-12 Tmaxsoft. Co., Ltd. Method and apparatus for managing cloud server in cloud environment
KR20200103181A (ko) * 2019-02-13 2020-09-02 한국전자통신연구원 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
CN112291081A (zh) * 2020-09-29 2021-01-29 新华三信息安全技术有限公司 云管理平台审计控制器集群数据的方法、系统及存储介质
WO2022050541A1 (ko) * 2020-09-02 2022-03-10 삼성전자 주식회사 복수의 vnf(virtualized network function)에 대한 컴퓨팅 자원의 할당을 조정하는 방법 및 그 서버

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160114280A (ko) * 2015-03-24 2016-10-05 건국대학교 산학협력단 가상 클러스터 구동 시간 스케줄링 방법 및 장치
KR101865994B1 (ko) 2015-03-24 2018-07-04 건국대학교 산학협력단 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
KR101916809B1 (ko) 2015-03-24 2018-11-08 건국대학교 산학협력단 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치
KR101947221B1 (ko) 2015-03-24 2019-02-12 건국대학교 산학협력단 가상 클러스터 구동 시간 스케줄링 방법 및 장치
CN104900074A (zh) * 2015-05-25 2015-09-09 青岛中兴智能交通有限公司 基于云架构的移动终端路口辅助系统
KR101807806B1 (ko) 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
WO2018203635A1 (ko) * 2017-05-02 2018-11-08 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
US10474491B2 (en) 2017-07-21 2019-11-12 Tmaxsoft. Co., Ltd. Method and apparatus for managing cloud server in cloud environment
KR20190074717A (ko) * 2017-12-20 2019-06-28 주식회사 케이티 클라우드 컴퓨팅 환경에서 클러스터 구성 및 관리 시스템 및 그 방법
KR102617686B1 (ko) 2017-12-20 2023-12-22 주식회사 케이티 클라우드 컴퓨팅 환경에서 클러스터 구성 및 관리 시스템 및 그 방법
KR20200103181A (ko) * 2019-02-13 2020-09-02 한국전자통신연구원 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
KR102456023B1 (ko) 2019-02-13 2022-10-19 한국전자통신연구원 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
US11650855B2 (en) 2019-02-13 2023-05-16 Electronics And Telecommunications Research Institute Cloud computing-based simulation apparatus and method for operating the same
WO2022050541A1 (ko) * 2020-09-02 2022-03-10 삼성전자 주식회사 복수의 vnf(virtualized network function)에 대한 컴퓨팅 자원의 할당을 조정하는 방법 및 그 서버
US11757790B2 (en) 2020-09-02 2023-09-12 Samsung Electronics Co., Ltd. Method and server for adjusting allocation of computing resources to plurality of virtualized network functions (VNFs)
CN112291081A (zh) * 2020-09-29 2021-01-29 新华三信息安全技术有限公司 云管理平台审计控制器集群数据的方法、系统及存储介质
CN112291081B (zh) * 2020-09-29 2022-06-28 新华三信息安全技术有限公司 云管理平台审计控制器集群数据的方法、系统及存储介质

Similar Documents

Publication Publication Date Title
KR101474872B1 (ko) 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템
Gu et al. Tiresias: A {GPU} cluster manager for distributed deep learning
CN107025205B (zh) 一种分布式系统中的训练模型的方法及设备
US9621654B2 (en) Intelligent data propagation using performance monitoring
JP6005795B2 (ja) 仮想マシンの信頼性のある決定論的ライブ移行
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
Sotomayor et al. Capacity leasing in cloud systems using the opennebula engine
US9268836B2 (en) Intelligent data propagation in a highly distributed environment
US8838801B2 (en) Cloud optimization using workload analysis
CN107231815B (zh) 用于图形渲染的系统和方法
JP5577412B2 (ja) 計算機システム、マイグレーション方法及び管理サーバ
JP5370946B2 (ja) リソース管理方法及び計算機システム
JP6190969B2 (ja) マルチテナントリソース調停方法
WO2017045576A1 (en) System and method for resource management
Sharma et al. A comparative analysis of min-min and max-min algorithms based on the makespan parameter
US20130167152A1 (en) Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method
JP2008226181A (ja) 並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法
Yang et al. A dynamic resource allocation model for virtual machine management on cloud
US10831525B2 (en) Intelligent assignment of virtual machines to compute only or hyper converged nodes
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
CN107528871B (zh) 存储系统中的数据分析
JP2014067322A (ja) 仮想サーバの負荷分散システム、および負荷分散方法
Keller et al. Dynamic management of applications with constraints in virtualized data centres
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
Valencia et al. Combining VM preemption schemes to improve vertical memory elasticity scheduling in clouds

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170922

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191106

Year of fee payment: 6