KR101613513B1 - 네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템 - Google Patents

네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템 Download PDF

Info

Publication number
KR101613513B1
KR101613513B1 KR1020140192368A KR20140192368A KR101613513B1 KR 101613513 B1 KR101613513 B1 KR 101613513B1 KR 1020140192368 A KR1020140192368 A KR 1020140192368A KR 20140192368 A KR20140192368 A KR 20140192368A KR 101613513 B1 KR101613513 B1 KR 101613513B1
Authority
KR
South Korea
Prior art keywords
virtual machine
network
bandwidth
physical server
cpu utilization
Prior art date
Application number
KR1020140192368A
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 KR1020140192368A priority Critical patent/KR101613513B1/ko
Application granted granted Critical
Publication of KR101613513B1 publication Critical patent/KR101613513B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템에 관한 것으로서, 보다 바람직하게는 물리서버 내 탑재되어 네트워크상의 컴퓨팅 자원을 가상화한 가상머신들을 복수의 사용자에게 제공하는 클라우드 컴퓨팅 환경 내 네트워크 대역폭 및 CPU 이용률을 고려하여 가상머신을 배치하는 방법은 모니터링부가 가상머신이 사용하고자 하는 네트워크의 대역폭 및 드라이버 도메인의 가용 CPU 이용률을 실시간으로 모니터링하는 단계; 및 가상머신배치부가 모니터링한 네트워크 링크에 남아있는 대역폭 및 상기 가용 CPU 이용률에 기초하여 상기 가상머신을 물리서버 내 배치하는 단계;를 포함하는 것을 특징으로 한다.
이러한 구성에 의해, 본 발명의 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템은 가상머신이 사용하고자 하는 네트워크 대역폭 및 가상머신의 가용 CPU 이용률을 실시간으로 모니터링하고, 모니터링 결과에 기초하여 상기 가상머신을 다른 물리 서버로 재배치함으로써, 네트워크 성능을 보장하며 서비스 품질의 요구를 용이하게 만족시킬 수 있는 효과가 있다.

Description

네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템{Virtual machine placing method and system for guarantee of network bandwidth}
본 발명은 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템에 관한 것으로, 특히 클라우드 컴퓨팅 환경에서 서비스 품질 요구(QoS: Quality of Service)를 만족시키도록 네트워크 성능을 보장할 수 있는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템에 관한 것이다.
클라우드 컴퓨팅(Cloud Computing)이란 정보처리를 자신의 컴퓨터가 아닌 인터넷으로 연결된 다른 컴퓨터로 처리하는 기술을 말한다. 우리가 사용하고 있는 개인용 컴퓨터(PC)에는 필요에 따라 구매한 소프트웨어가 설치되어 있고 동영상과 문서와 같은 데이터도 저장되어 있다. 문서를 작성하려면 자신의 컴퓨터에 저장되어 있는 문서 작성 프로그램을 구동시켜야 한다. 그러나 클라우드 컴퓨팅은 프로그램과 문서를 다른 곳에 저장해 놓고 내 컴퓨터로 인터넷을 통해 프로그램과 문서가 저장된 곳에 접속해서 이용하는 방식이다.
따라서, 필요한 소프트웨어를 내 컴퓨터에 설치할 필요도 없고, 또 주기적으로 업데이트 하지 않아도 되며, 회사 컴퓨터에서 작업을 하던 문서를 따로 저장해서 집으로 가져갈 필요도 없다. 또한 자신의 컴퓨터가 고장을 일으켜도 데이터가 손상될 염려도 없고, 필요한 만큼 쓰고 비용을 지불하면 되므로 사용 빈도가 낮은 소프트웨어를 비싸게 구입할 필요도 없고, 터무니없이 큰 저장장치를 갖추지 않아도 된다.
이러한 클라우드 컴퓨팅 기술에 기반한 응용이 점차 대중화되면서 안정적인 성능 보장이 필요해졌다. 특히, 클라우드의 자원 공유 특성에도 불구하고 CPU, 메모리, 스토리지와 같은 대부분의 클라우드 자원들은 다른 사용자들과 비교적 잘 구분되어 사용되고 있지만, 네트워크 성능에서의 변동으로 인하여 클라우드 기반 응용들의 성능에 대한 변동폭 또한 크다는 문제점이 발생했다.
KR 10-1107056 (클라우드 컴퓨팅 환경에서 가상 머신의 보안 정보 처리 방법, 이니텍(주)) 2012.01.11.
상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 네트워크 링크에 남은 대역폭과 드라이버 도메인의 가용 CPU 이용률을 모니터링한 후, 모니터링 결과에 따라 이용하고자 하는 가상 머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치함으로써, 네트워크 대역폭을 보장할 수 있는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템을 제공하고자 한다.
위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 물리서버 내 탑재되어 네트워크상의 컴퓨팅 자원을 가상화한 가상머신들을 복수의 사용자에게 제공하는 클라우드 컴퓨팅 환경 내 네트워크 대역폭 및 CPU 이용률을 고려하여 가상머신을 배치하는 방법은 모니터링부가 가상머신이 사용하고자 하는 네트워크의 대역폭 및 드라이버 도메인의 가용 CPU 이용률을 실시간으로 모니터링하는 단계; 및 가상머신배치부가 모니터링한 네트워크 링크에 남아있는 대역폭 및 상기 가용 CPU 이용률에 기초하여 상기 가상머신을 물리서버 내 배치하는 단계;를 포함하는 것을 특징으로 한다.
보다 바람직하게는 모니터링한 상기 네트워크를 상기 가상머신이 사용하는데 있어서 대역폭 보장이 불가능하다고 판단한 경우에는 상기 가상머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치하는 것을 더 포함하는 가상머신배치부가 가상머신을 물리서버 내 배치하는 단계를 포함할 수 있다.
특히, Greedy 알고리즘에 기초하여 현재 탑재된 물리서버 내 가상머신을 다른 물리서버로 이주시켜 배치하는 가상머신배치부가 현재 이용중인 가상머신을 다른 물리서버로 이주시켜 배치하는 단계를 포함할 수 있다.
보다 바람직하게는 빈 가상머신의 슬롯의 개수 및 네트워크 토폴로지의 소정의 서브 트리에 연결된 링크에 남은 대역폭에 기초하여 상기 소정의 서브 트리에 할당 가능한 가상머신의 개수를 계산한 후, 계산된 가상머신의 개수를 초과하여 이용하고자 하는 가상머신을 다른 물리서버로 이주시켜 배치하는 가상머신배치부가 현재 이용중인 가상머신을 다른 물리서버로 이주시켜 배치하는 단계를 포함할 수 있다.
보다 바람직하게는 모니터링한 상기 드라이버 도메인의 가용 CPU 이용률을 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값으로 나눈값이 상기 물리서버에 탑재된 가상머신들에 할당된 총 대역폭 보다 작은 경우, 현재 이용 중인 가상머신을 다른 서버로 이주시켜 배치하는 가상머신배치부가 현재 이용중인 가상머신을 다른 서버로 이주시켜 배치하는 단계를 포함할 수 있다.
위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 물리서버 내 탑재되어 네트워크상의 컴퓨팅 자원을 가상화한 가상머신들을 복수의 사용자에게 제공하는 클라우드 컴퓨팅 환경 내 네트워크 대역폭 및 CPU 이용률을 고려하여 가상머신을 배치하는 시스템은 가상머신이 사용하고자 하는 네트워크의 대역폭 및 드라이버 도메인의 가용 CPU 이용률을 실시간으로 모니터링하는 모니터링부; 및 모니터링한 네트워크 링크에 남아있는 대역폭 및 상기 가용 CPU 이용률에 기초하여 상기 가상머신을 물리서버 내 배치하는 가상머신배치부;를 포함하는 것을 특징으로 한다.
보다 바람직하게는 모니터링한 상기 네트워크 대역폭에 대하여 상기 네트워크를 상기 가상머신이 사용하는데 있어서, 대역폭 보장이 불가능하다고 판단한 경우에는 상기 가상머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치하는 것을 더 포함하는 가상머신배치부를 포함할 수 있다.
보다 바람직하게는 빈 가상머신의 슬롯의 개수 및 네트워크 토폴로지의 소정의 서브 트리에 연결된 링크에 남은 대역폭에 기초하여 상기 소정의 서브 트리에 할당 가능한 가상머신의 개수를 계산한 후, 계산된 가상머신의 개수를 초과하여 이용하고자 하는 가상머신을 다른 물리서버로 이주시켜 배치하는 가상머신배치부를 포함할 수 있다.
보다 바람직하게는 모니터링한 상기 드라이버 도메인의 가용 CPU 이용률을 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값으로 나눈값이 상기 물리서버에 탑재된 가상머신들에 할당된 총 대역폭 보다 작은 경우, 현재 이용 중인 가상머신을 다른 서버로 이주시켜 배치하는 가상머신배치부를 포함할 수 있다.
본 발명의 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템은 가상머신이 사용하고자 하는 네트워크 대역폭 및 가상머신의 가용 CPU 이용률을 실시간으로 모니터링하고, 모니터링 결과에 기초하여 상기 가상머신을 다른 물리 서버로 재배치함으로써, 네트워크 성능을 보장하며 서비스 품질의 요구를 용이하게 만족시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 시스템의 블록도이다.
도 2는 본 발명의 다른 실시 예에 따른 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법의 순서도이다.
도 3은 본 발명의 다른 실시 예에 따른 서비스 품질요구 위반이 발생한 가상머신들의 개수의 평균비율을 나타낸 그래프이다.
도 4는 75% 용량의 사용자 요청에 대한 가상머신들의 서비스 품질요구 위반 비율을 나타낸 그래프이다.
도 5는 50% 용량의 사용자 요청에 대한 가상머신들의 서비스 품질요구 위반 비율을 나타낸 그래프이다.
도 6은 25% 용량의 사용자 요청에 대한 가상머신들의 서비스 품질요구 위반 비율을 나타낸 그래프이다.
도 7은 75%, 50%, 25% 용량의 사용자 요청에 대한 가상머신들의 서비스 품질요구 위반 비율에 대한 평균값을 나타낸 그래프이다.
이하, 본 발명을 바람직한 실시 예와 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예에 한정되는 것은 아니다.
아마존 EC2나 GoGrid와 같은 클라우드 서비스 및 클라우드 데이터 센터의 등장으로 인해 멀티미디어 클라우드 기반의 분산 응용들이 널리 확산되고 있다. 상기 클라우드 데이터센터는 공유 자원을 이용하여 클라우드 상에서 다수의 사용자 응용들을 호스팅(hosting)한다.
이러한 멀티미디어 클라우드 컴퓨팅은 멀티미디어 컨텐츠 요청과 전달을 위한 서비스 모듈과 인코딩이나 디코딩 등을 수행하는 가상 맵리듀스(MapReduce) 클러스터로 구성된다. 서비스 품질 요구를 만족시키면서도 스트리밍(streaming)과 같은 멀티미디어 서비스를 제공하기 위해서는 이러한 서비스를 위한 네트워크 대역폭이 보장되어야 한다.
본 발명에서는 클라우드 컴퓨팅 환경과 같이 서비스 품질 요구에 민감한 성능을 만족시키기 위해서 사용자별 네트워크 사용을 구분하도록 클라우드 환경에서 사용자의 네트워크 대역폭 및 CPU 이용률을 이용하여 가상머신을 배치하는 방법 및 시스템에 대하여 자세히 살펴보도록 한다.
본 발명이 적용되는 클라우드 컴퓨팅 환경 내 시스템은 클라우드 시스템과 상기 클라우드 시스템에 접속하는 클라이언트 장치로 구성될 수 있는데, 이때 상기 클라우드 시스템(110)은 복수 개의 물리 서버(112, 114)와 상기 물리 서버(112, 114) 내 탑재되는 가상머신(112a, 112b, 114a, 114b)을 포함한다.
클라우드 시스템(110)은 복수 개의 클라우드 서비스를 제공하기 위한 물리적인 서버의 집합을 의미할 수 있으며, 물리적인 서버 상에서 구현된 복수 개의 가상머신이 제공되는 환경을 나타낼 수도 있다.
이러한 각각의 가상머신(112a, 112b, 114a, 114b)은 스토리스 서비스 또는 데이터 분석 서비스 등을 제공한다.
클라이언트 장치는 예를 들어 유선 또는 무선통신모듈을 포함하는 장치로서, 클라우드 시스템(110)에 접속하여 소정의 작업을 수행하는 장치일 수 있다.
클라이언트 장치의 종류에는 제한이 없으며, 예를 들어 일반적인 데스크탑 PC이거나 휴대가 가능하고 무선 인터넷 또는 휴대 인터넷을 통하여 클라우드(200) 시스템을 제공하는 클라우드 서버와 통신 가능한 셀룰러폰(Cellular phone), 피씨에스폰(PCS phone: Personal Communications Services phone), 동기식/비동기식 IMT-2000(International Mobile Telecommunication-2000) 등 이동 단말을 포함하고, 이외에도 팜 PC(Palm Personal Computer), 개인용 디지털 보조기(PDA: Personal Digital Assistant), 스마트폰(Smart phone), 왑폰(WAPphone: Wireless application protocol phone), 모바일 게임기(mobile play-station)장치 또는, 랩탑 컴퓨터, 태블릿 컴퓨터, 네비게이션 시스템 등 일 수 있다.
이러한 클라이언트 장치와 클라우드 시스템을 연결하는 네트워크는 유선 또는 무선 인터넷일 수도 있고, 이외에도 유선 공중망, 무선 이동 통신망, 또는 휴대 인터넷 등과 통합된 코어망일 수도 있고, TCP/IP 프로토콜 및 그 상위 계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol) 등을 제공하는 개방형 컴퓨터 네트워크 구조를 의미할 수 있다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 네트워크 대역폭 및 CPU 이용률을 고려하여 가상머신을 배치하는 시스템에 대하여 자세히 살펴보도록 한다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 대역폭 및 CPU 이용률을 고려하여 가상머신을 배치하는 시스템의 블록도이다.
도 1에 도시된 바와 같이, 본 발명의 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 시스템(100)은 모니터링부(120), 가상머신배치부(130)를 포함한다.
모니터링부(120)는 가상머신이 스토리지 서비스 또는 데이터 분석 서비스 등을 제공하기 위해, 사용하고자 하는 네트워크의 대역폭을 실시간으로 모니터링한다. 또한 상기 모니터링부(120)는 드라이버 도메인이 가상머신들의 네트워크 중계에 사용할 수 있는 가용 CPU 이용률을 실시간으로 연속하여 모니터링하는 것을 더 포함할 수 있다.
가상머신배치부(130)는 모니터링한 네트워크 링크에 남아있는 대역폭 및 상기 가용 CPU 이용률에 기초하여 상기 가상머신을 물리서버 내 배치한다. 이때, 상기 모니터링한 네트워크 링크에 남아있는 대역폭에 대하여 상기 가상머신의 사용 시, 대역폭 보장이 불가능하다고 판단한 경우에는 상기 가상머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치한다. 이러한 가상머신배치부(130)는 빈 가상머신의 슬롯의 개수 및 네트워크 토폴로지의 소정의 서브 트리에 연결된 링크에 남은 대역폭에 기초하여 상기 소정의 서브 트리에 할당 가능한 가상머신의 개수를 계산한 후, 계산된 가상머신의 개수를 초과하는 가상머신을 현재 탑재된 물리 서버가 아닌 다른 물리서버로 이주시켜 배치할 수 있다.
이러한 가상머신배치부(130)는 모니터링한 드라이버 도메인의 가용 CPU 이용률을 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값으로 나눈값이 상기 물리서버에 탑재된 가상머신들에 할당된 총 대역폭 보다 작은 경우, 이용하고자 하는 가상머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치할 수 있다.
이하, 도 2를 참조하여, 본 발명의 다른 실시 예에 따른 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법에 대하여 자세히 살펴볼 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법의 순서도이다.
도 2에 도시된 바와 같이, 물리서버 내 탑재되어 네트워크 상의 컴퓨팅 자원을 가상화한 가상머신들을 복수의 사용자에게 제공하는 컴퓨팅 환경에서의 본 발명의 네트워크 대역폭을 보장하는 가상머신 배치 방법은 모니터링부(120)가 가상머신이 사용하고자 하는 네트워크의 대역폭을 실시간으로 모니터링한다(S210).
이어서, 상기 모니터링부(120)가 드라이버 도메인의 가용 CPU 이용률을 실시간으로 연속하여 모니터링할 수 있다(S220). 특히, 상기 드라이버 도메인(Driver Domain)은 가상 머신들의 디스크 입출력 등을 중계하기 위해, CPU를 소모하므로, 가상머신들의 네트워크 중계에 사용할 수 있는 CPU 이용률은 실시간으로 변화한다. 따라서, 드라이버 도메인에 의해 보장될 수 있는 네트워크 대역폭은 항상 동일하지 않으므로, 상기 모니터링부가 네트워크 대역폭을 실시간으로 모니터링한다.
이후, 가상머신배치부(130)가 모니터링한 상기 네트워크를 상기 가상머신이 사용하는데 있어서 대역폭 보장이 가능한지 여부를 판단한다(S230).
이때, 상기 네트워크의 대역폭 보장이 가능하고, 물리서버 내 배치하고자 하는 가상머신이 사용가능한 CPU 량이 존재하는 경우, 상기 가상머신을 물리서버 내 배치하고, 해당 네트워크의 대역폭을 고려하여 스토리지 서비스 또는 데이터 분석 서비스 등을 수행한다(S240).
하지만 이와 달리, 상기 네트워크의 대역폭 보장이 가능하지 않고, 상기 가상머신이 사용가능한 CPU 량이 존재하지 않는 경우, 상기 가상머신배치부(130)가 상기 가상머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치한다(S250). 즉, 네트워크 대역폭 보장이 가능하지 않는 경우에는 서비스 품질요구 위반으로 인해 서비스 성능이 저하되므로, 본 발명에서는 정적 예약(static reservation)을 위한 가상머신을 배치할 수 있다.
이때, 상기 가상머신의 이주 및 배치 과정은 탐욕(Greedy) 알고리즘에 기초하여 이루어질 수 있다.
이러한 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다.
탐욕 알고리즘의 원활한 작동 여부는 대부분 탐욕스런 선택 조건(greedy choice property)과 최적 부분 구조 조건(optimal substructure)이라는 두 가지 조건에 따라 만족된다. 탐욕스런 선택 조건은 앞의 선택이 이후의 선택에 영향을 주지 않는다는 것이며, 최적 부분 구조 조건은 문제에 대한 최적해가 부분문제에 대해서도 역시 최적해라는 것이다. 이러한 조건이 성립하지 않는 경우에는 최적해를 구하지 못하고, 이러한 경우에는 근사 알고리즘을 통해 해를 구할 수 있다.
특히, 빈 가상머신의 슬롯의 개수 및 네트워크 토폴로지의 소정의 서브 트리에 연결된 링크에 남은 대역폭에 기초하여 상기 소정의 서브 트리에 할당 가능한 가상머신의 개수를 계산한 후, 계산된 가상머신의 개수를 초과하는 가상머신을 현재 탑재된 물리 서버에서 다른 물리서버로 이주시켜 배치할 수 있다.
특히, 상기 모니터링부(120)가 드라이버 도메인의 가용 CPU 이용률을 실시간으로 연속하여 모니터링할 때, 모니터링한 상기 드라이버 도메인의 가용 CPU 이용률을 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값으로 나눈값이 상기 물리서버에 탑재된 가상머신들에 할당된 총 대역폭 보다 작은 경우, 현재 이용 중인 가상머신을 다른 서버로 이주시켜 배치할 수 있다.
멀티미디어 클라우드 컴퓨팅과 같은 QoS에 민감한 클라우드 기반 응용은 homogeneous all-to-all communication 패턴을 갖고 있다. 네트워크 대역폭 요구 모델 중 hose 모델은 이러한 패턴을 잘 묘사한다고 알려져 있다. 따라서, 본 발명에서는 사용자 요청을 표현하기 위해 hose 모델을 사용하였다.
Oktopus는 hose 모델과 유사한 가상 클러스터 추상화(Virtual Cluster abstraction을 정의하고 가상머신 배치 알고리즘을 제안한다.
본 발명에서 가용 CPU 이용률을 고려하기 위해서는 Oktopus에 새로운 개념을 정의하여야 한다. 서버의 최대 CPU 용량은
Figure 112014127292428-pat00001
로 정의하고, 총 CPU 사용량은
Figure 112014127292428-pat00002
로 정의한다. 또한, 네트워크 대역폭 보장을 위한 CPU 이용률 양이 아닌 실제 가상머신들의 네트워크 중계를 위해 사용되는 CPU 이용률
Figure 112014127292428-pat00003
양으로 표현하면 하기의 수학식 1과 같이 정의할 수 있다.
Figure 112014127292428-pat00004
이때, 상기
Figure 112014127292428-pat00005
은 서버에서 운영되는 가상머신들의 집합,
Figure 112014127292428-pat00006
Figure 112014127292428-pat00007
는 각각 네트워크를 통한 전송 및 수신 비트(bit)의 수,
Figure 112014127292428-pat00008
Figure 112014127292428-pat00009
는 가상머신 네트워킹을 통해 송수신 시 필요한 CPU 이용률 양을 나타낸다.
또한 가상머신들의 다른 활동을 위해 사용되는 CPU 이용률은 하기의 수학식 2와 같이 표현할 수 있다.
Figure 112014127292428-pat00010
그리고 가상머신들의 네트워킹을 위해 드라이버 도메인에서 사용 가능한 CPU 이용률 양은 하기의 수학식 3을 통해 계산할 수 있다.
Figure 112014127292428-pat00011
특히, 네트워크 토폴로지의 특정 서브 트리 에 할당할 수 있는 가상머신의 수를 계산하기 위해서는 서브 트리에 있는 빈 가상머신 슬롯(slot)의 개수와, 상기 서브 트리에 연결된 링크에 남은 대역폭이다.
이와 같이, 서브 트리
Figure 112014127292428-pat00012
에 할당 가능한 가상머신의 개수는 하기의 수학식 4와 같이, 집합
Figure 112014127292428-pat00013
에 의해 주어진다.
Figure 112014127292428-pat00014
이때,
Figure 112014127292428-pat00015
는 서브 트리
Figure 112014127292428-pat00016
에 있는 빈 가상머신 슬롯의 개수,
Figure 112014127292428-pat00017
은 요청된 가상머신의 개수,
Figure 112014127292428-pat00018
는 각 가상머신에 요청된 대역폭, 그리고
Figure 112014127292428-pat00019
은 링크
Figure 112014127292428-pat00020
에 남은 대역폭이다.
본 발명에 따라 가상머신 배치를 결정할 때, 드라이버 도메인의 가용 CPU 이용률
Figure 112014127292428-pat00021
을 추가적으로 고려한다. 가상머신
Figure 112014127292428-pat00022
에 할당된 대역폭을
Figure 112014127292428-pat00023
라고 하면, 서버에 탑재된 가상머신들에 할당된 총 대역폭 Balloc은 하기의 수학식 5와 같이 표현할 수 있다.
Figure 112014127292428-pat00024
이때, 상기
Figure 112014127292428-pat00025
은 물리 서버에 탑재된 가상머신들의 집합을 의미한다.
따라서, 본 발명에 따른
Figure 112014127292428-pat00026
은 하기의 수학식 6과 같이 정의된다.
Figure 112014127292428-pat00027
이때, 상기
Figure 112014127292428-pat00028
은 해당 서버의 최대 대역폭 용량을 나타낸다.
또한 가상머신의 이주는 각 물리 서버에서
Figure 112014127292428-pat00029
를 지속적으로 관찰하여 하기의 수학식 7에 대한 만족 여부에 따라 수행된다.
Figure 112014127292428-pat00030
본 발명에 따라 가상머신 이주를 결정하면, 하기의 수학식 8을 만족하는 최소 서브셋을 찾는다.
Figure 112014127292428-pat00031
Figure 112014127292428-pat00032
이때, 상기
Figure 112014127292428-pat00033
이고,
Figure 112014127292428-pat00034
은 사용자 t에 할당된 가상머신들의 집합,
Figure 112014127292428-pat00035
는 가상머신 집합
Figure 112014127292428-pat00036
Figure 112014127292428-pat00037
사이의 링크,
Figure 112014127292428-pat00038
는 사용자 t가 요구한 대역폭을 나타낸다.
이하에서는 본 발명에 대한 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템의 성능을 평가하도록 한다.
본 발명의 성능평가를 위해, 본 발명에 따른 가상머신의 배치 방법과 Oktopus 알고리즘을 시뮬레이터로 구현하였다. 3-레벨 심플 트리 토폴로지를 사용하였으며 Top-of-Rack(ToR) 스위치당 10대의 서버를 연결하였다. 네트워크 토폴로지 상의 모든 링크는 각각 1 Gbps 대역폭 용량을 가지고 있으며, 각 사용자 요청의 가상머신 개수와 대역폭 요구량은 랜덤하게 구성된다. 또한 각 서버에서 가상머신 네트워킹을 제외한 다른 활동들을 중계하기 위해 사용되는 CPU 이용률도 랜덤하게 발생시켰으며, 그 외의 다른 변수들은 실제 서버에 맞추어 구성하였다.
또한, 사용자 요청은 그들이 요구한 총 가상머신 개수가 전체 서버 용량의 100%, 75%, 50%, 25%에 도달할 때까지 발생시켰다.
도 3은 모든 요청이 Oktopus에 의해 처리되고 난 이후, 서비스 품질요구 위반이 발생한 가상머신들의 개수의 평균비율을 나타낸 그래프이다.
도 3에 도시된 바와 같이, 사용자 요청의 비율과 무관하게 평균 약 30% 정도의 가상머신들에서 서비스 품질요구 위반이 발생한 것을 알 수 있다. 이러한 드라이버 도메인에서의 CPU 이용률 변화로 인한 것을 알 수 있다.
도 4 내지 도 6은 각각 사용자 요청으로 인해 할당해야 하는 가상머신의 수가 75%, 50%, 25%인 경우, 시뮬레이션 동안 서비스 품질요구 위반이 발생한 가상머신의 비율을 나타낸 것이다.
도 4 내지 도 6에 도시된 바와 같이, 그래프의 x축은 시뮬레이션 시간을 나타내고, y축은 서비스 품질요구 위반이 발생한 가상머신의 비율을 나타낸다.
도 4는 75% 용량의 사용자 요청에 대한 가상머신들의 서비스 품질요구 위반 비율을 나타낸 그래프이다.
도 4에 도시된 바와 같이, 그래프의 초반에는 시뮬레이션 시간이 지날수록 비율이 점차 증가하는 것을 볼 수 있는데, 이러한 결과는 사용자 요청들이 목표 용량에 도달할 때까지 랜덤한 시점에 발생하기 때문이다.
본 발명에서는 드라이버 도메인의 CPU 이용률을 가상머신 배치에 고려하기 때문에, 본 발명에 따라 배치가 할당된 가상머신들이 비교적 적은 서비스 품질요구 위반만을 겪는다. 또한 가상머신 이주를 함께 사용하는 경우, 시뮬레이션 초반에는 가상머신들이 서비스 품질요구 위반을 거의 겪지 않는 것을 볼 수 있고, 목표 용량에 도달한 이후에도 아주 적은 서비스 품질요구 위반을 겪게 되는 것을 그래프에서 볼 수 있다. 이것은 가상머신 이주를 통해 가상머신이 서비스 품질요구 위반에 도달하는 것을 방지하기 때문이다.
도 5 내지 도 6은 사용자 요청이 각각 전체 용량의 50%와 25%까지 도달하는 경우의 그래프이다. 앞서 설명한 도 4와 달리, 도 5 내지 도 6에서는 본 발명에 의해 할당된 가상머신들이 서비스 품질요구 위반을 거의 겪지 않는 것을 알 수 있다. 또한 가상머신의 이주없이 배치만을 고려하였을 때에도 마찬가지로 도 4에 비해 훨씬 적은 서비스 품질요구 위반만을 확인할 수 있었다.
또한 도 6의 Oktopus에 의한 가상머신들의 서비스 품질요구 위반 비율은 상당히 큰 변동폭을 갖고 있는데, 할당하는 가상머신의 수가 적어서 작은 서비스 품질요구 위반도 비율에 큰 변화를 줄 수 있기 때문이다.
도 7은 앞서 실험한 세 가지 알고리즘들에 의해 할당된 가상머신들의 서비스 품질요구 위반 비율의 평균값을 표시한 것이다.
도 7에 도시된 바와 같이, 가상머신 이주를 수행하지 않더라도 본 발명을 통해 가상머신에 서비스 품질요구 위반이 덜 발생하도록 배치하였다. 또한 가상머신 배치 및 이주 알고리즘 전체에 의해 할당된 가상머신들은 거의 대부분 서비스 품질요구 위반을 겪지 않는다는 것을 알 수 있다.
또한, 이러한 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법은 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체에 저장될 수 있다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명의 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법 및 시스템은 가상머신이 사용하고자 하는 네트워크 대역폭 및 가상머신의 가용 CPU 이용률을 실시간으로 모니터링하고, 모니터링 결과에 기초하여 상기 가상머신을 다른 물리 서버로 재배치함으로써, 네트워크 성능을 보장하며 서비스 품질의 요구를 용이하게 만족시킬 수 있는 효과가 있다.
상기에서는 본 발명의 바람직한 실시 예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 본 발명의 기술 사상 범위 내에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 첨부된 특허청구범위에 속하는 것은 당연하다.
110: 클라우드 시스템 120: 모니터링부
130: 가상머신배치부

Claims (10)

  1. 물리서버 내 탑재되어 네트워크상의 컴퓨팅 자원을 가상화한 가상머신들을 복수의 사용자에게 제공하는 클라우드 컴퓨팅 환경 내 네트워크 대역폭 및 CPU 이용률을 고려하여 가상머신을 배치하는 방법에 있어서,
    모니터링부가 가상머신이 사용하고자 하는 네트워크의 대역폭 및 드라이버 도메인의 가용 CPU 이용률을 실시간으로 모니터링하는 단계; 및
    가상머신배치부가 모니터링한 네트워크 링크에 남아있는 대역폭 및 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값과 상기 가용 CPU 이용률에 대한 비율에 기초하여 상기 가상머신을 물리서버 내 배치하는 단계;
    를 포함하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법.
  2. 제1항에 있어서,
    상기 가상머신배치부가 가상머신을 물리서버 내 배치하는 단계는
    모니터링한 상기 네트워크를 상기 가상머신이 사용하는데 있어서 대역폭 보장이 불가능하다고 판단한 경우에는 상기 가상머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치하는 것을 더 포함하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법.
  3. 제2항에 있어서,
    상기 가상머신배치부가 가상머신을 물리서버 내 배치하는 단계는
    탐욕(Greedy) 알고리즘에 기초하여 현재 탑재된 물리서버 내 가상머신을 다른 물리서버로 이주시켜 배치하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법.
  4. 제2항에 있어서,
    상기 가상머신배치부가 가상머신을 물리서버 내 배치하는 단계는
    빈 가상머신의 슬롯의 개수 및 네트워크 토폴로지의 소정의 서브 트리에 연결된 링크에 남은 대역폭에 기초하여 상기 소정의 서브 트리에 할당 가능한 가상머신의 개수를 계산한 후, 계산된 가상머신의 개수를 초과하여 이용하고자 하는 가상머신을 다른 물리서버로 이주시켜 배치하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법.
  5. 제2항에 있어서,
    상기 가상머신배치부가 가상머신을 물리서버 내 배치하는 단계는
    모니터링한 상기 드라이버 도메인의 가용 CPU 이용률을 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값으로 나눈값이 상기 물리서버에 탑재된 가상머신들에 할당된 총 대역폭 보다 작은 경우, 현재 이용 중인 가상머신을 다른 서버로 이주시켜 배치하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 따른 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.
  7. 물리서버 내 탑재되어 네트워크상의 컴퓨팅 자원을 가상화한 가상머신들을 복수의 사용자에게 제공하는 클라우드 컴퓨팅 환경 내 네트워크 대역폭 및 CPU 이용률을 고려하여 가상머신을 배치하는 시스템에 있어서,
    가상머신이 사용하고자 하는 네트워크의 대역폭 및 드라이버 도메인의 가용 CPU 이용률을 실시간으로 모니터링하는 모니터링부; 및
    모니터링한 네트워크 링크에 남아있는 대역폭 및 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값과 상기 가용 CPU 이용률에 대한 비율에 기초하여 상기 가상머신을 물리서버 내 배치하는 가상머신배치부;
    를 포함하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 시스템.
  8. 제7항에 있어서,
    상기 가상머신배치부는
    모니터링한 상기 네트워크 대역폭에 대하여 상기 네트워크를 상기 가상머신이 사용하는데 있어서, 대역폭 보장이 불가능하다고 판단한 경우에는 상기 가상머신을 현재 탑재된 물리서버가 아닌 다른 물리서버로 이주시켜 배치하는 것을 더 포함하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 시스템.
  9. 제8항에 있어서,
    상기 가상머신배치부는
    빈 가상머신의 슬롯의 개수 및 네트워크 토폴로지의 소정의 서브 트리에 연결된 링크에 남은 대역폭에 기초하여 상기 소정의 서브 트리에 할당 가능한 가상머신의 개수를 계산한 후, 계산된 가상머신의 개수를 초과하여 이용하고자 하는 가상머신을 다른 물리서버로 이주시켜 배치하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 시스템.
  10. 제8항에 있어서,
    상기 가상머신배치부는
    모니터링한 상기 드라이버 도메인의 가용 CPU 이용률을 네트워크에서 가상머신이 송수신시 필요한 CPU 이용률의 최대값으로 나눈값이 상기 물리서버에 탑재된 가상머신들에 할당된 총 대역폭 보다 작은 경우, 현재 이용 중인 가상머신을 다른 서버로 이주시켜 배치하는 것을 특징으로 하는 네트워크 대역폭 및 CPU 이용률을 고려한 가상머신 배치 시스템.
KR1020140192368A 2014-12-29 2014-12-29 네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템 KR101613513B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140192368A KR101613513B1 (ko) 2014-12-29 2014-12-29 네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140192368A KR101613513B1 (ko) 2014-12-29 2014-12-29 네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101613513B1 true KR101613513B1 (ko) 2016-04-19

Family

ID=55917172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140192368A KR101613513B1 (ko) 2014-12-29 2014-12-29 네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101613513B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107092551A (zh) * 2017-06-22 2017-08-25 郑州云海信息技术有限公司 一种服务器系统性能优化方法及装置
KR20180096310A (ko) 2017-02-21 2018-08-29 에스케이텔레콤 주식회사 성능 제어 방법 및 이를 위한 장치
CN110851230A (zh) * 2019-06-26 2020-02-28 湘潭大学 一种云计算中基于强化学习的虚拟机放置方法
KR20200129397A (ko) 2019-05-08 2020-11-18 고려대학교 산학협력단 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치
KR20210063988A (ko) 2019-11-25 2021-06-02 경희대학교 산학협력단 분산 클라우드 환경에서의 지능형 서비스 배치 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014049129A (ja) 2012-08-31 2014-03-17 Hon Hai Precision Industry Co Ltd 仮想マシンの負荷管理システム及びその方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014049129A (ja) 2012-08-31 2014-03-17 Hon Hai Precision Industry Co Ltd 仮想マシンの負荷管理システム及びその方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180096310A (ko) 2017-02-21 2018-08-29 에스케이텔레콤 주식회사 성능 제어 방법 및 이를 위한 장치
CN107092551A (zh) * 2017-06-22 2017-08-25 郑州云海信息技术有限公司 一种服务器系统性能优化方法及装置
KR20200129397A (ko) 2019-05-08 2020-11-18 고려대학교 산학협력단 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치
US11429420B2 (en) 2019-05-08 2022-08-30 Korea University Research And Business Foundation Method for controlling performance in virtualized environment and information processing device for the same
CN110851230A (zh) * 2019-06-26 2020-02-28 湘潭大学 一种云计算中基于强化学习的虚拟机放置方法
CN110851230B (zh) * 2019-06-26 2023-08-15 湘潭大学 一种云计算中的基于强化学习的虚拟机放置方法
KR20210063988A (ko) 2019-11-25 2021-06-02 경희대학교 산학협력단 분산 클라우드 환경에서의 지능형 서비스 배치 방법

Similar Documents

Publication Publication Date Title
Alsaffar et al. An architecture of IoT service delegation and resource allocation based on collaboration between fog and cloud computing
US9485197B2 (en) Task scheduling using virtual clusters
US9942273B2 (en) Dynamic detection and reconfiguration of a multi-tenant service
US20230353971A1 (en) Methods and systems for communication management
Kim et al. VNF-EQ: dynamic placement of virtual network functions for energy efficiency and QoS guarantee in NFV
US9038065B2 (en) Integrated virtual infrastructure system
KR101977726B1 (ko) 가상 데스크탑 서비스 방법 및 장치
US9632815B2 (en) Managing virtual machines according to network bandwidth
JP2018198068A (ja) 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証
KR101613513B1 (ko) 네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템
US20150133214A1 (en) Video encoding based on areas of interest
WO2013049079A2 (en) Dynamic request handling using cloud-computing capabilities
US20180109469A1 (en) Systems and methods for controlling process priority for efficient resource allocation
Taherizadeh et al. Auto-scaling applications in edge computing: Taxonomy and challenges
US20140189092A1 (en) System and Method for Intelligent Data Center Positioning Mechanism in Cloud Computing
US10021008B1 (en) Policy-based scaling of computing resource groups
US10148592B1 (en) Prioritization-based scaling of computing resources
KR102389334B1 (ko) 클라우드 서비스를 위한 가상 머신 프로비저닝 시스템 및 방법
CN114296953A (zh) 一种多云异构系统及任务处理方法
US10691700B1 (en) Table replica allocation in a replicated storage system
US10225361B2 (en) Content management in caching services
KR20140097881A (ko) 자원 사용량 예측 기반 부하분산 장치 및 방법
Shishira et al. A comprehensive survey on federated cloud computing and its future research directions
US10158544B2 (en) Selecting communication channels based on categorizations and measurements
Khalaj et al. A proxy-based mobile computing infrastructure

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: 20190325

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200304

Year of fee payment: 5