KR20190015817A - 미들웨어를 이용한 모니터링 방법, 장치 및 시스템 - Google Patents

미들웨어를 이용한 모니터링 방법, 장치 및 시스템 Download PDF

Info

Publication number
KR20190015817A
KR20190015817A KR1020170099477A KR20170099477A KR20190015817A KR 20190015817 A KR20190015817 A KR 20190015817A KR 1020170099477 A KR1020170099477 A KR 1020170099477A KR 20170099477 A KR20170099477 A KR 20170099477A KR 20190015817 A KR20190015817 A KR 20190015817A
Authority
KR
South Korea
Prior art keywords
virtual machine
node
information
monitoring
middleware
Prior art date
Application number
KR1020170099477A
Other languages
English (en)
Other versions
KR102367262B1 (ko
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 KR1020170099477A priority Critical patent/KR102367262B1/ko
Publication of KR20190015817A publication Critical patent/KR20190015817A/ko
Application granted granted Critical
Publication of KR102367262B1 publication Critical patent/KR102367262B1/ko

Links

Images

Classifications

    • 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/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

본 발명은 미들웨어를 이용한 모니터링 방법, 장치 및 시스템에 관한 것으로, 클라이언트가 요청한 데이터가 저장된 제1 가상 머신을 포함한 제1 노드로부터 미들웨어와 관련된 형식으로 가공된 가공 정보를 수신하는 단계, 가공 정보로부터 제1 가상 머신이 과부하상태로 확인되면, 제1 노드 및 제2 노드 중 어느 하나의 노드로 제2 가상 머신의 생성을 요청하는 단계 및 어느 하나의 노드에서 생성된 제2 가상 머신으로부터 수신된 데이터를 클라이언트로 전송하는 단계를 포함할 수 있고, 다른 실시 예로도 적용이 가능하다.

Description

미들웨어를 이용한 모니터링 방법, 장치 및 시스템{Method, Apparatus and System for Monitoring Using Middleware}
본 발명은 미들웨어를 이용한 모니터링 방법, 장치 및 시스템에 관한 것으로, 메시지 큐 기반의 미들웨어를 이용한 모니터링을 통해 클라우드 컴퓨팅 내의 트래픽 사용량을 확인하는 미들웨어를 이용한 모니터링 방법, 장치 및 시스템에 관한 것이다.
최근 가상화 기술의 발달과 성능향상 및 대용량의 하드웨어 인프라 구축 기술이 구현됨에 따라, 대표적인 글로벌 기업에서는 가상화 기반의 클라우드 컴퓨팅 서비스를 상용화하고 있는 추세이다. 이러한 클라우드 컴퓨팅 서비스란, 구름(cloud)과 같이 무형의 형태로 존재하는 하드웨어 또는 소프트웨어 등의 컴퓨팅 리소스(resource)를 소비자가 필요한 만큼 빌려쓰고 이에 따른 사용요금을 지급하는 방식의 컴퓨팅 서비스로, 서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합하여 제공하는 기술을 말한다. 클라우드로 표현되는 인터넷상의 서버에서 데이터 저장, 처리, 네트워크, 컨텐츠 사용 등 IT관련 서비스를 한 번에 제공하는 혁신적인 컴퓨팅 기술인 클라우드 컴퓨팅은 인터넷을 이용한 IT리소스의 주문형 아웃소싱 서비스라고 정의되기도 한다.
이러한 클라우드 컴퓨팅을 도입하면, 기업 또는 개인은 컴퓨터 시스템을 유지, 보수, 관리하기 위해 소요되는 비용과, 서버의 구매 및 설치 비용, 업데이트 비용, 소프트웨어 구매 비용 등의 막대한 비용과 시간 및 인력을 줄일 수 있고, 에너지 절감에도 기여할 수 있다. 또한, PC에 자료를 보관할 경우에는 하드디스크 장애 등으로 인해 자료가 손실될 수 있으나, 클라우드 컴퓨팅 환경에서는 외부 서버에 자료들이 저장되기 때문에 안전하게 자료를 보관할 수 있고, 저장 공간의 제약도 극복할 수 있으며, 시간과 장소에 구애받지 않고 자신이 작업한 문서 등을 열람 및 수정할 수 있다.
현재에는 웹 인터페이스를 기반으로 이러한 클라우드 컴퓨팅 리소스의 모니터링을 통해 트래픽 사용량에 따라 컴퓨팅 리소스를 탄력적으로 확장하거나 축소하여 트래픽 사용량에 따른 클라우드 컴퓨팅 환경을 구현한다. 그러나, 클라우드 컴퓨팅 환경에서는 모니터링하는 대상이 불규칙적으로 변화하고, 서로 다른 플랫폼을 갖는 경우가 빈번한 문제점이 있다. 따라서, 웹 인터페이스 기반의 모니터링 방법보다 더 효율적으로 이기종간의 통신을 지원하고, 성능 변화를 최소화할 수 있는 모니터링 방법의 개발이 요구되고 있다.
이러한 종래의 문제점을 해결하기 위한 본 발명의 다양한 실시 예들은 메시지 큐 기반의 미들웨어를 이용하여 클라우드 컴퓨팅 환경을 모니터링하고, 모니터링 결과에 따라 가상머신의 추가여부를 결정하여 클라우드 컴퓨팅 내의 컴퓨팅 리소스를 탄력적으로 사용할 수 있는 미들웨어를 이용한 모니터링 방법, 장치 및 시스템을 제공하는 것이다.
본 발명의 일 실시 예에 따른 미들웨어를 이용한 모니터링 방법은, 클라이언트가 요청한 데이터가 저장된 제1 가상 머신을 포함한 제1 노드로부터 미들웨어와 관련된 형식으로 가공된 가공 정보를 수신하는 단계, 상기 가공 정보로부터 상기 제1 가상 머신이 과부하상태로 확인되면, 상기 제1 노드 및 제2 노드 중 어느 하나의 노드로 제2 가상 머신의 생성을 요청하는 단계 및 상기 어느 하나의 노드에서 생성된 상기 제2 가상 머신으로부터 수신된 상기 데이터를 상기 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 제2 가상 머신의 생성을 요청하는 단계는, 상기 제1 가상 머신에 탑재된 데이터베이스에 저장된 상기 데이터를 상기 제2 가상 머신에 탑재된 데이터베이스로의 복사를 요청하는 단계를 포함하는 것을 특징으로 한다.
또한, 제2 가상 머신으로부터 수신된 상기 데이터를 상기 클라이언트로 전송하는 단계는, 상기 어느 하나의 노드로부터 상기 제2 가상 머신과 관련된 가공 정보를 수신하는 단계를 포함하는 것을 특징으로 한다.
또한, 미들웨어와 관련된 형식으로 가공된 가공 정보를 수신하는 단계는, 상기 제1 가상 머신의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함하는 정보에 상기 제1 가상 머신의 식별정보가 매핑되어 가공된 상기 가공 정보를 수신하는 단계인 것을 특징으로 한다.
또한, 미들웨어와 관련된 형식으로 가공된 가공 정보를 수신하는 단계는, 임계 시간마다 상기 노드로부터 상기 가공 정보를 수신하는 단계인 것을 특징으로 한다.
또한, 어느 하나의 노드로 제2 가상 머신의 생성을 요청하는 단계는, 상기 제1 노드에 상기 제2 가상 머신의 생성이 가능한 것으로 확인되면, 상기 제1 노드로 상기 제2 가상 머신의 생성을 요청하는 단계 및 상기 제1 노드에 상기 제2 가상 머신의 생성이 불가능한 것으로 확인되면, 상기 제1 노드와 임계 거리 내에 위치한 상기 제2 노드로 상기 제2 가상 머신의 생성을 요청하는 단계를 포함하는 것을 특징으로 한다.
아울러, 본 발명의 일 실시 예에 따른 미들웨어를 이용한 모니터링 장치는, 클라이언트가 요청한 데이터가 저장된 제1 가상 머신을 포함한 제1 노드로부터 수신된 가공 정보를 확인하는 미들웨어 및 상기 미들웨어로부터 확인된 상기 가공 정보를 기반으로 상기 제1 가상 머신에 대한 상태가 과부하상태이면, 상기 제1 노드 및 제2 노드 중 어느 하나의 노드로 제2 가상 머신의 생성을 요청하고, 상기 어느 하나의 노드에서 생성된 상기 제2 가상 머신으로부터 수신된 상기 데이터를 상기 클라이언트로 전송하는 오토 스케일링 엔진을 포함하는 것을 특징으로 한다.
또한, 오토 스케일링 엔진은, 상기 가공 정보에서 확인된 상기 제1 가상 머신의 자원 사용량 및 응답시간을 기반으로 상기 제1 가상 머신의 상태가 과부하상태인지 확인하는 모니터링 데몬 및 상기 제1 노드 및 상기 제2 노드 중 어느 하나의 노드로 상기 제2 가상 머신의 생성을 요청하고, 상기 제1 가상 머신에 탑재된 데이터베이스에 저장된 상기 데이터를 제2 가상 머신에 탑재된 데이터베이스로의 복사를 제어하는 로드밸런서를 포함하는 것을 특징으로 한다.
또한, 오토 스케일링 엔진은, 상기 제1 노드로부터 상기 제1 가상 머신과 관련된 가공 정보를 수신하는 것을 특징으로 한다.
또한, 가공 정보는, 상기 제1 가상 머신의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함하는 정보에 상기 제1 가상 머신의 식별정보가 매핑되어 상기 미들웨어와 관련된 형식으로 가공된 정보인 것을 특징으로 한다.
또한, 가공 정보는, 상기 제1 노드로부터 임계 시간마다 수신되는 것을 특징으로 한다.
또한, 로드밸런서는, 상기 제1 노드에 상기 제2 가상 머신의 생성이 가능한 것으로 확인되면, 상기 제1 노드로 상기 제2 가상 머신의 생성을 요청하고, 상기 제1 노드에 상기 제2 가상 머신의 생성이 불가능한 것으로 확인되면, 상기 제1 노드와 임계 거리 내에 위치한 상기 제2 노드로 상기 제2 가상 머신의 생성을 요청하는 것을 특징으로 한다.
아울러, 본 발명의 일 실시 예에 따른 미들웨어를 이용한 모니터링 시스템은, 모니터링 주기가 도래하면, 제1 가상 머신에 대한 정보를 수집하고, 상기 정보를 미들웨어와 관련된 형식으로 가공하여 전송하는 노드 및 상기 가공된 가공 정보로부터 상기 제1 가상 머신이 과부하상태로 확인되면, 상기 노드로 제2 가상 머신의 생성을 요청하는 모니터링 장치를 포함하고, 상기 노드는, 상기 모니터링 장치의 요청에 따라 상기 제2 가상 머신을 생성하고, 상기 제1 가상 머신에 탑재된 데이터베이스에 저장된 데이터를 상기 제2 가상 머신에 탑재된 데이터베이스로 제공하는 것을 포함하는 것을 특징으로 한다.
상술한 바와 같이 본 발명의 미들웨어를 이용한 모니터링 방법, 장치 및 시스템은 메시지 큐 기반의 미들웨어를 이용하여 클라우드 컴퓨팅 환경을 모니터링하고, 모니터링 결과에 따라 가상머신의 추가여부를 결정하여 클라우드 컴퓨팅 내의 컴퓨팅 리소스를 탄력적으로 사용함으로써, 효율적으로 이기종간의 통신을 지원하고, 성능 변화를 최소화할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 모니터링 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시 예에 따른 모니터링 장치의 주요 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 제1 노드의 주요 구성을 나타낸 도면이다.
도 4는 본 발명의 일 실시 예에 따른 미들웨어를 이용한 모니터링 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 모니터링 장치에서의 모니터링 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 제1 노드에서의 모니터링 방법을 설명하기 위한 순서도이다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략할 수 있고, 명세서 전체를 통하여 동일 또는 유사한 구성 요소에 대해서는 동일한 참조 부호를 사용할 수 있다.
본 발명의 일 실시 예에서, “또는”, “적어도 하나” 등의 표현은 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, “A 또는 B”, “A 및 B 중 적어도 하나”는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.
본 발명에서 사용되는 클라우드 컴퓨팅 서비스는 인터넷을 통해 서버, 스토리지 및 네트워크 장비 등의 IT인프라 장치를 빌려서 사용할 수 있는 IaaS(infrastructure as a service)를 의미할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 모니터링 시스템을 나타낸 도면이다.
도 1을 참조하면, 본 발명에 따른 모니터링 시스템(10)은 클라이언트 장치(100), 모니터링 장치(200) 및 노드(300)를 포함한다.
클라이언트 장치(100)는 휴대 전화, 컴퓨터, 노트북, 태블릿 PC, 디지털 텔레비전, 셋톱 박스 등을 포함하는 각종 전자장치일 수 있다. 클라이언트 장치(100)는 클라우드 컴퓨팅 서비스를 제공받기 위해 인터넷을 통해 모니터링 장치(200)에 접속한다.
모니터링 장치(200)는 여러 종류의 클라우드 컴퓨팅 서비스를 관리하는 장치로, 클라이언트 장치(100)의 요청에 대응되는 클라우드 컴퓨팅 서비스를 선택하고 클라이언트 장치(100)로 연결시켜 준다. 이때, 클라우드 컴퓨팅 서비스는, 서버, 스토리지 및 네트워크 장비 등을 빌려 쓰기 위한 요청일 수 있다. 예를 들면, 모니터링 장치(200)는 클라이언트 장치(100)로부터 서버(예컨대, 가상 머신)에 접근하여 가상 머신을 이용하기 위한 요청이 수신되면, 모니터링 장치(200)는 클라이언트 장치(100)의 요청에 대응되는 가상 머신을 클라이언트 장치(100)에게 빌려줄 수 있다. 이를 위해, 모니터링 장치(200)는 인터넷을 통해 가상 머신을 포함하는 노드(300)에 접근한다. 모니터링 장치(200)는 클라이언트 장치(100)와 가상 머신을 포함하는 노드(300)를 인터넷으로 연결하고, 클라이언트 장치(100)가 노드(300)에 포함된 가상 머신을 이용할 수 있도록 지원한다. 데이터는, 운영체제, 응용 프로그램 등 다양한 종류의 데이터일 수 있다.
보다 구체적으로, 모니터링 장치(200)는 클라이언트 장치(100)로부터 복수의 노드(300) 중 제1 노드(300a)에 포함된 가상 머신 예컨대, 제1 가상 머신에 저장된 데이터에 접근하기 위한 요청을 수신할 수 있다. 모니터링 장치(200)는 클라이언트 장치(100)의 데이터 접근 요청에 따라 제1 가상 머신이 포함된 제1 노드(300a)와 클라이언트 장치(100) 사이의 중개 동작을 수행하여, 데이터 접근 요청과 관련된 데이터를 클라이언트 장치(100)로 전송한다.
이를 위해, 모니터링 장치(200)는 제1 노드(300a)로부터 제1 노드(300a)에 포함된 가상 머신들에 대한 수집 정보를 수신한다. 이때, 수집 정보는, 가상 머신들 각각의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함할 수 있다. 자원 사용량은, 서버, 데이터베이스 및 네트워크 장비 등에 대한 사용량일 수 있다. 또한, 수집 정보는, 가상 머신 각각에 할당된 UUID(universally unique identifier), 고유식별이름 등의 식별 정보를 포함할 수 있다. 본 발명의 실시 예에서는 설명의 편의를 위해 제1 노드(300a)에 포함된 가상 머신들에 대한 수집 정보를 수신한다고 기재하고 있으나, 반드시 이에 한정되는 것은 아니며, 모니터링 장치(200)는 제1 노드(300a), 제2 노드(300b) 및 제n 노드(300n)을 포함하는 모든 노드(300)들에 포함된 가상 머신들에 대한 수집 정보를 수신할 수 있다. 아울러, 수집 정보는 모니터링 장치(200)에 적용된 미들웨어의 형식에 대응되도록 가공된 가공 정보이다. 모니터링 장치(200)는 가공 정보로부터 제1 가상 머신의 상태를 확인한다. 모니터링 장치(200)는 제1 가상 머신이 과부하상태가 아니면, 제1 가상 머신과 클라이언트 장치(100)를 연결하여, 클라이언트 장치(100)에서 데이터를 확인할 수 있도록 한다.
모니터링 장치(200)는 가공 정보로부터 제1 가상 머신이 과부하상태인 것으로 확인되면, 제1 노드(300a)로 새로운 가상 머신의 생성을 요청한다. 이때, 새로운 가상 머신을 제2 가상 머신이라 한다. 이때, 모니터링 장치(200)는 제1 노드(300a)에 제2 가상 머신의 생성이 가능한 것으로 판단되면, 제1 노드(300a)로 제2 가상 머신의 생성을 요청할 수 있다. 또한, 모니터링 장치(200)는 제1 노드(300a)에 제2 가상 머신의 생성이 불가능한 것으로 판단되면, 제1 노드(300a)와 근접한 위치에 존재하는 노드(예컨대, 제2 노드(300b))로 제2 가상 머신의 생성을 요청할 수 있다. 이를 위해, 모니터링 장치(200)는 노드(300)의 위치, 노드(300)에 포함된 가상 머신의 개수 등을 실시간 또는 주기적으로 확인할 수 있다.
모니터링 장치(200)는 제1 노드(300a)를 포함하는 노드(300) 중 어느 하나의 노드에서 생성된 제2 가상 머신에 대한 식별 정보를 수신하고, 식별 정보를 기반으로 제2 가상 머신의 위치 및 제2 가상 머신에 탑재된 데이터베이스에 저장된 데이터 등에 대한 정보를 저장할 수 있다.
노드(300)는 제1 노드(300a), 제2 노드(300b), 제n 노드(300n)를 포함하며, 모니터링 장치(200)와 통신을 수행하고, 모니터링 장치(200)를 통해 클라이언트 장치(100)로부터 접근이 요청된 데이터를 추출하여 모니터링 장치(200)를 통해 클라이언트 장치(100)로 전송한다. 노드(300)는 데이터가 저장된 데이터베이스를 탑재한 가상 머신에 과부하가 발생되는지를 확인하기 위해 임계 시간마다 가상 머신의 상태를 모니터링한다. 노드(300)는 모니터링 장치(200)로부터 새로운 가상 머신에 대한 생성 요청 신호가 수신되면, 가상 머신을 생성한다.
보다 구체적으로, 클라이언트 장치(100)가 요청한 데이터가 저장된 데이터베이스를 탑재한 제1 가상 머신을 포함하는 제1 노드(300a)는 모니터링 결과를 가공한 가공 정보를 모니터링 장치(200)로 전송한다. 제1 노드(300a)는 가공 정보에 따라 모니터링 장치(200)로부터 제2 가상 머신에 대한 생성 요청 신호가 수신되면, 제2 가상 머신을 생성한다.
제1 노드(300a)는 제1 가상 머신에 탑재된 데이터베이스에 저장되어 있는 데이터 중 클라이언트 장치(100)가 요청한 데이터를 제2 가상 머신에 탑재된 데이터베이스로 복사한다. 제1 노드(300a)는 제2 가상 머신에 탑재된 데이터베이스에서 데이터를 추출하여 모니터링 장치(200)를 통해 클라이언트 장치(100)로 전송한다. 아울러, 제1 노드(300a)는 제2 가상 머신에 할당된 식별 정보를 모니터링 장치(200)로 전송할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 모니터링 장치의 주요 구성을 나타낸 도면이다.
도 2를 참조하면, 본 발명에 따르면 모니터링 장치(200)는 미들웨어(210), 오토 스케일링 엔진(220)을 포함한다.
미들웨어(210)는 메시지 큐 기반의 메시지 지향 미들웨어로, AMQP(advanced message queuing protocol)일 수 있다. 미들웨어(210)는 노드(300)로부터 미들웨어(210)에서 확인이 가능한 형태로 가공된 가공 정보를 수신할 수 있다. 미들웨어(210)는 가공 정보를 확인하고, 이를 오토 스케일링 엔진(220)으로 제공할 수 있다.
오토 스케일링 엔진(220)은 미들웨어(210)로부터 확인된 가공 정보를 기반으로 통신하고자 하는 가상 머신이 과부하상태인지를 확인한다. 오토 스케일링 엔진(220)은 가상 머신이 과부하 상태이면, 가상 머신을 포함하는 노드 또는 다른 노드로 새로운 가상 머신의 생성을 요청한다. 오토 스케일링 엔진(220)은 새로운 가상 머신과 통신을 수행한다. 이를 위해, 오토 스케일링 엔진(220)은 모니터링 데몬(221) 및 로드 밸런서(222)를 포함한다.
모니터링 데몬(221)은 가상 머신의 상태를 확인하여 이를 로드 밸런서(222)로 제공한다. 로드 밸런서(222)는 확인된 가상 머신의 상태에 따라 가상 머신의 추가, 삭제, 데이터베이스 쿼리의 로드 분배를 수행한다.
보다 구체적으로, 모니터링 데몬(221)은 클라이언트 장치(100)로부터 제1 노드(300a)에 포함된 제1 가상 머신에 저장된 데이터에 접근하기 위한 요청이 수신되면, 제1 노드(300a)에 포함된 복수의 가상 머신 중에서 제1 가상 머신으로의 접근을 요청한다.
모니터링 데몬(221)은 제1 가상 머신으로의 접근을 요청한 이후에, 미들웨어(210)에서 확인된 가공 정보를 수신한다. 이때, 가공 정보는, 제1 노드(300a)에 포함된 가상 머신들에 대한 수집 정보와 가상 머신 각각에 할당된 UUID(universally unique identifier), 고유식별이름 등의 식별 정보를 미들웨어(210)의 형식에 맞게 가공한 정보이다. 수집 정보는, 제1 노드(300a)에 포함된 가상 머신들 각각의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함할 수 있다. 자원 사용량은, 서버, 데이터베이스 및 네트워크 장비 등에 대한 사용량일 수 있다.
모니터링 데몬(221)은 미들웨어(210)에서 확인된 가공 정보로부터 제1 가상 머신의 상태를 확인한다. 이때, 모니터링 데몬(221)은 제1 노드(300a)로부터 수신된 제1 가상 머신의 응답 시간을 확인할 수 있다. 응답 시간은, 클라이언트 장치(100)가 요청한 데이터를 제1 가상 머신에 탑재된 데이터베이스에서 검색하여 데이터베이스 쿼리에 위치시키는 시간까지를 의미할 수 있다. 모니터링 데몬(221)은 확인된 응답 시간이 임계 시간 미만이면, 제1 가상 머신이 과부하상태가 아닌 것으로 확인하고, 이를 로드 밸런서(222)로 제공한다. 로드 밸런서(222)는 데이터베이스 쿼리에 위치된 데이터를 클라이언트 장치(100)로 전송한다.
모니터링 데몬(221)은 확인된 응답 시간이 임계 시간 이상이면, 제1 가상 머신이 과부하상태인 것으로 확인하고, 이를 로드 밸런서(222)로 제공한다. 로드 밸런서(222)는 제1 노드(300a)로 새로운 가상 머신의 생성을 요청한다. 이때, 새로운 가상 머신을 제2 가상 머신이라 한다. 로드 밸런서(222)는 클라이언트 장치(100)가 제1 가상 머신에 요청한 데이터를 제2 가상 머신으로 분배하여 제1 가상 머신에 집중되는 트래픽을 분산시킴으로써 응답 시간의 지연을 방지할 수 있다. 이때, 로드 밸런서(222)는 제1 노드(300a)에 제2 가상 머신의 생성이 가능한 것으로 판단되면, 제1 노드(300a)로 제2 가상 머신의 생성을 요청할 수 있다. 또한, 로드 밸런서(222)는 제1 노드(300a)에 제2 가상 머신의 생성이 불가능한 것으로 판단되면, 제1 노드(300a)와 근접한 위치에 존재하는 노드(예컨대, 제2 노드(300b))로 제2 가상 머신의 생성을 요청할 수 있다. 이를 위해, 모니터링 데몬(221)은 노드(300)의 위치, 노드(300) 각각에 생성된 가상 머신의 개수 등을 실시간 또는 주기적으로 확인하고, 이를 로드 밸런서(222)로 제공할 수 있다.
로드 밸런서(222)는 제2 가상 머신이 생성된 노드를 클라이언트 장치(100)와 연결하여 제2 가상 머신의 데이터베이스 쿼리에 위치된 데이터를 클라이언트 장치(100)로 전송하도록 한다.
도 3은 본 발명의 일 실시 예에 따른 제1 노드의 주요 구성을 나타낸 도면이다.
도 3을 참조하면, 본 발명에 따른 제1 노드(300a)는 복수의 가상 머신(320), 하이퍼바이저(330), Libvirt API(340), 모니터링 모듈(350)을 포함한다. 이때, 제2 노드(300b), 제n 노드(300n) 모두 제1 노드(300a)와 동일한 구성을 포함할 수 있다.
가상 머신(320)은 제1 가상 머신(320a), 제2 가상 머신(320b), 제n 가상 머신(320n)을 포함할 수 있다. 제1 가상 머신(320a)에는 제1 DB(310a)가 탑재되고, 제2 가상 머신(320b)에는 제2 DB(310b)가 탑재되고, 제n 가상 머신(320n)에는 제n DB(310n)가 탑재될 수 있다. 가상 머신(320)은 모니터링 장치(200)를 통해 클라이언트 장치(100)와 인터넷으로 연결되어, 클라이언트 장치(100)의 요청에 따른 데이터를 클라이언트 장치(100)로 제공한다. 가상 머신(320)은 운영체제, 응용 프로그램 등 다양한 종류의 데이터를 클라이언트 장치(100)로 제공하기 위한 서버 등의 가상 머신일 수 있다.
본 발명에서는 설명의 편의를 위해 제1 가상 머신(320a)은 제1 노드(300a)에 기 생성되어 클라이언트 장치(100)가 최초에 접근을 요청한 가상 머신이고, 제2 가상 머신(320b)은 제1 가상 머신(320a)의 과부하로 인해 모니터링 장치(200)에 따라 새롭게 생성되어 클라이언트 장치(100)와 최종적으로 연결되는 가상 머신이라고 기재하기로 한다.
하이퍼바이저(330)는 제1 노드(300a)에 포함된 모든 가상 머신 예컨대, 제1 가상 머신(320a) 및 제n 가상 머신(320n)의 모니터링 정보를 수집하기 위한 것으로, 수집된 정보를 Libvirt API(340)로 제공한다. 또한, 하이퍼바이저(330)는 모니터링 장치(200)로부터 제2 가상 머신(320b)에 대한 생성 요청이 수신되면, 생성 요청에 따라 제2 가상 머신(320b)을 생성한다. 하이퍼바이저(330)는 생성된 제2 가상 머신(320b)의 식별 정보를 확인하여 이를 Libvirt API(340)로 제공한다.
Libvirt API(340)는 하이퍼바이저(330)로부터 수집된 정보를 기반으로 모니터링 장치(200)가 서버, 스토리지 및 네트워크 서버 등과 같은 클라우드 컴퓨팅 자원에 접근하여 이를 조작할 수 있도록 한다. 특히, Libvirt API(340)는 모니터링 장치(200)가 제1 노드(300a)에 접근하여 가상 머신의 생성, 삭제 등을 조작할 수 있도록 한다. 이를 위해, Libvirt API(340)는 모니터링 모듈(350)의 제어에 의해 하이퍼바이저(330)에서 제공된 수집 정보와 식별 정보를 모니터링 장치(200)에 포함된 미들웨어(210)와 관련된 형태로 가공하여 가공 정보를 생성한다. Libvirt API(340)는 가공 정보를 모니터링 모듈(350)로 제공한다. 이때, 수집 정보는, 가상 머신의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함할 수 있다. 아울러, Libvirt API(340)는 가상 머신에 대한 UUID(universally unique identifier), 고유식별이름 등의 식별 정보를 확인할 수 있다. Libvirt API(340)는 가공 정보 생성 시에 가상 머신에 대한 수집 정보를 가상 머신(320)에 대한 식별 정보와 매핑하여 생성할 수 있다.
이를 위해, 모니터링 모듈(350)은 모니터링 주기마다 Libvirt API(340)를 통해 하이퍼바이저(330)에 접근하여 자원 사용량을 모니터링할 수 있다. 특히, 모니터링 모듈(350)은 트래픽 상태에 따른 응답 시간을 측정하도록 Libvirt API(340)를 제어한다. 이때, 응답 시간은, 클라이언트 장치(100)가 제1 가상 머신(320a)에 저장된 데이터로의 접근을 요청한 경우, 데이터를 제1 가상 머신(320a)에 탑재된 데이터베이스에서 검색하여 데이터베이스 쿼리에 위치시키는 시간까지를 의미할 수 있다.
아울러, 모니터링 모듈(350)은 Libvirt API(340)에서 제공된 가공 정보를 모니터링 장치(200)로 전송한다.
도 4는 본 발명의 일 실시 예에 따른 미들웨어를 이용한 모니터링 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 401단계에서 클라이언트 장치(100)는 모니터링 장치(200)로 특정 데이터에 대한 접근을 요청한다. 403단계에서 모니터링 장치(200)는 클라이언트 장치(100)에서 접근을 요청한 데이터와 관련된 가상 머신을 확인한다. 모니터링 장치(200)는 클라이언트 장치(100)가 접근을 요청한 데이터의 저장 위치를 확인할 수 있다. 예컨대, 모니터링 장치(200)는 클라이언트 장치(100)가 접근을 요청한 데이터가 제1 노드(300a)에 포함된 제1 가상 머신(320a)과 관련된 데이터임을 확인할 수 있다.
405단계에서 모니터링 장치(200)는 제1 노드(300a)에 포함된 제1 가상 머신(320a)으로 클라이언트 장치(100)가 접근을 요청한 데이터를 요청한다. 407단계에서 제1 노드(300a)는 제1 가상 머신(320a)에 탑재된 제1 DB(310a)에서 해당 데이터를 추출하고, 409단계를 수행한다. 409단계에서 제1 노드(300a)는 제1 가상 머신(320a)에 대한 모니터링 주기의 도래 여부를 확인한다.
409단계의 확인결과, 모니터링 주기가 도래하지 않으면 제1 노드(300a)는 411단계를 수행한다. 411단계에서 제1 노드(300a)는 추출된 데이터를 모니터링 장치(200)를 통해 클라이언트 장치(100)로 전송한다. 데이터를 수신한 클라이언트 장치(100)는 435단계를 수행한다. 435단계에서 클라이언트 장치(100)는 수신된 데이터를 표시한다.
409단계의 확인결과, 모니터링 주기가 도래하면 제1 노드(300a)는 413단계를 수행한다. 413단계에서 제1 노드(300a)는 제1 노드(300a)에 포함된 가상 머신에 대한 정보를 수집한다. 보다 구체적으로, 제1 노드(300a)에 포함된 Libvirt API(340)는 하이퍼바이저(330)로부터 수집된 정보를 기반으로 모니터링 장치(200)가 서버, 스토리지 및 네트워크 서버 등과 같은 클라우드 컴퓨팅 자원에 접근하여 이를 조작할 수 있도록 한다. 특히, Libvirt API(340)는 모니터링 장치(200)가 제1 노드(300a)에 접근하여 가상 머신의 생성, 삭제 등의 조작을 수행할 수 있도록 한다. 이때, 수집 정보는, 가상 머신의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함할 수 있다. 이때, 응답 시간은, 클라이언트 장치(100)가 제1 가상 머신(320a)에 저장된 데이터로의 접근을 요청한 경우, 데이터를 제1 가상 머신(320a)에 탑재된 데이터베이스에서 검색하여 데이터베이스 쿼리에 위치시키는 시간까지를 의미할 수 있다. 아울러, Libvirt API(340)는 가상 머신에 대한 UUID(universally unique identifier), 고유식별이름 등의 식별 정보를 확인할 수 있다.
415단계에서 제1 노드(300a)는 수집된 수집 정보를 가공한다. 보다 구체적으로, Libvirt API(340)는 모니터링 모듈(350)의 제어에 의해 하이퍼바이저(330)에서 제공된 수집 정보와 식별 정보를 모니터링 장치(200)에 포함된 미들웨어(210)와 관련된 형태로 가공하여 가공 정보를 생성한다. 예를 들어, 모니터링 장치(200)에 구비된 미들웨어(210)가 메시지 큐 기반의 메시지 지향 미들웨어이고, 그 중 AMQP(advanced message queuing protocol)일 수 있다. 이때, Libvirt API(340)는 모니터링 장치(200)에서 가공 정보를 가상 머신별로 구분할 수 있도록, 수집 정보와 식별 정보를 매핑하여 가공 정보를 생성할 수 있다. Libvirt API(340)는 가공 정보를 모니터링 모듈(350)로 제공한다.
417단계에서 제1 노드(300a)는 가공이 완료된 가공 정보를 모니터링 장치(200)로 전송한다. 419단계에서 모니터링 장치(200)는 가공 정보를 확인한다. 421단계에서 모니터링 장치(200)는 확인된 가공 정보를 기반으로 제1 가상 머신(320a)이 과부하상태임을 확인할 수 있다. 보다 구체적으로, 모니터링 장치(200)의 미들웨어(210)는 제1 노드(300a)로부터 수신된 가공 정보에서 가상 머신의 식별 정보를 확인한다. 가상 머신의 식별이 완료되면, 모니터링 데몬(221)은 가공 정보에 포함된 수집 정보를 기반으로 제1 가상 머신(320a)의 자원 사용량 및 트래픽 상태에 따른 응답 시간을 확인할 수 있다. 모니터링 데몬(221)은 제1 가상 머신(320a)의 자원 사용량 및 트래픽 상태에 따른 응답 시간으로 제1 가상 머신(320a)의 과부하 상태여부를 확인할 수 있다.
423단계에서 모니터링 장치(200)는 제1 노드(300a)로 새로운 가상 머신의 생성을 요청한다. 모니터링 장치(200)의 로드 밸런서(222)는 제1 노드(300a)에 가상 머신의 생성이 가능한 것으로 확인되면, 제1 노드(300a)에 새로운 가상 머신을 생성하도록 요청할 수 있다. 또한, 로드 밸런서(222)는 제1 노드(300a)에 가상 머신의 생성이 불가능한 것으로 확인되면, 제1 노드(300a)와 가장 근접한 위치에 존재하는 다른 노드(예컨대, 제2 노드(300b))에 가상 머신의 생성을 요청할 수 있다. 로드 밸런서(222)는 클라이언트 장치(100)가 제1 가상 머신(320a)에 요청한 데이터를 제2 가상 머신(320b)으로 분배하여 제1 가상 머신(320a)에 집중되는 트래픽을 분산시키도록 하여 응답 시간의 지연을 방지할 수 있다. 본 발명에서는 제1 노드(300a)에 새로운 가상 머신의 생성을 요청하는 것을 예로 설명한다.
425단계에서 제1 노드(300a)는 모니터링 장치(200)의 요청에 따라 새로운 가상 머신 예컨대, 제2 가상 머신(320b)을 생성한다. 이때, 제2 가상 머신(320b)에는 제2 DB(310b)도 탑재된다. 427단계에서 제1 노드(300a)는 제1 DB(310a)에 저장된 데이터를 제2 가상 머신(320b)에 탑재된 제2 DB(310b)로 복사한다. 429단계에서 제1 노드(300a)는 제2 가상 머신(320b)의 식별 정보를 확인하고, 431단계에서 제1 노드(300a)는 확인된 식별 정보를 모니터링 장치(200)로 전송한다. 이로 인해, 모니터링 장치(200)는 제2 가상 머신(320b)의 식별 정보, 제2 가상 머신(320b)의 식별 정보로부터 확인된 제2 가상 머신(320b)의 위치 및 제2 가상 머신(320b)에 탑재된 제2 DB(310b)에 저장된 데이터 등에 대한 정보를 저장할 수 있다.
433단계에서 제1 노드(300a)는 제2 가상 머신(320b)에 탑재된 제2 DB(310b)로부터 클라이언트 장치(100)가 접근을 요청한 데이터를 추출하여 모니터링 장치(200)를 통해 클라이언트 장치(100)로 전송한다. 435단계에서 클라이언트 장치(100)는 제1 노드(300a)로부터 수신된 데이터를 표시한다. 이와 같이, 모니터링 장치(200)는 클라이언트 장치(100)와 연결되어 클라이언트 장치(100)로 데이터를 제공해야 하는 제1 가상 머신(320a)에 과부하가 발생하여 클라이언트 장치(100)로의 데이터 전송이 원활하지 않은 것으로 판단되면, 제2 가상 머신(320b)을 새롭게 생성할 수 있다. 모니터링 장치(200)는 생성된 제2 가상 머신(320b)을 클라이언트 장치(100)와 연결하여 클라이언트 장치(100)가 요청한 데이터를 제2 가상 머신(320b)을 통해 수신할 수 있도록 한다.
아울러, 본 발명의 실시 예에서는 설명의 편의를 위해, 클라이언트 장치(100)로부터 데이터가 요청된 이후에 모니터링 주기의 도래 여부를 확인하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니며, 모니터링 주기는 노드(300)에 기 설정된 일정 주기별로 수행된다. 예를 들면, 제1 가상 머신(320a)에서 모니터링 장치(200)를 통해 클라이언트 장치(100)로 데이터를 제공하는 중에 모니터링 주기가 도래할 수도 있다. 제1 가상 머신(320a)의 모니터링 결과, 제1 가상 머신(320a)이 과부하상태이면, 413단계 내지 435단계를 순차적으로 수행하여, 제1 가상 머신(320a)에서 클라이언트 장치(100)로 제공 중이던 데이터를 제2 가상 머신(320b)에 복사할 수 있다. 따라서, 클라이언트 장치(100)는 모니터링 장치(200)를 통해 제2 가상 머신(320b)으로부터 데이터를 연속적으로 제공받을 수 있다.
도 5는 본 발명의 일 실시 예에 따른 모니터링 장치에서의 모니터링 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 501단계에서 모니터링 장치(200)는 임계 시간 마다 제1 노드(300a)로부터 미들웨어(210)에서 확인이 가능한 형태로 가공된 가공 정보의 수신여부를 확인한다. 501단계의 확인 결과, 가공 정보가 수신되면 모니터링 장치(200)는 503단계를 수행한다. 501단계의 확인 결과, 가공 정보가 수신되지 않으면 모니터링 장치(200)는 가공 정보의 수신을 대기한다.
503단계에서 모니터링 장치(200)는 가공 정보를 확인한다. 보다 구체적으로, 모니터링 장치(200)는 가공 정보로부터 노드(300)에 포함된 가상 머신의 식별 정보를 확인한다. 가상 머신의 식별이 완료되면, 모니터링 장치(200)는 가공 정보에 포함된 수집 정보를 기반으로 가상 머신의 자원 사용량 및 트래픽 상태에 따른 응답 시간을 확인할 수 있다. 505단계에서 모니터링 장치(200)는 확인된 가상 머신의 자원 사용량 및 트래픽 상태에 따른 응답 시간을 기반으로 가상 머신의 상태를 확인할 수 있다. 507단계에서 모니터링 장치(200)는 가상 머신의 상태 확인 결과, 클라이언트 장치(100)와 연결되어 클라이언트 장치(100)에서 사용 중인 특정 가상 머신 예컨대, 제1 가상 머신(320a)에 과부하가 발생된 것으로 확인되면 509단계를 수행한다.
507단계에서 모니터링 장치(200)는 제1 가상 머신(320a)에 과부하가 발생되지 않은 것으로 확인되면 515단계를 수행한다. 515단계에서 모니터링 장치(200)는 해당 기능을 수행한다. 이때, 해당 기능은, 클라이언트 장치(100)가 제1 가상 머신(320a)과 연결되어 수행 중이던 기능일 수 있고, 이는 데이터 전송 등의 기능일 수 있다.
509단계에서 모니터링 장치(200)는 제1 가상 머신(320a)이 포함된 노드로 새로운 가상 머신의 생성을 요청할 수 있다. 이때, 제1 가상 머신(320a)이 포함된 노드는 제1 노드(300a)일 수 있고, 새로운 가상 머신은 제2 가상 머신(320b)일 수 있다. 이때, 모니터링 장치(200)는 제1 노드(300a)에 제2 가상 머신(320b)의 추가가 가능한 것으로 판단되면, 제1 노드(300a)에 제2 가상 머신(320b)의 생성을 요청할 수 있다. 또한, 모니터링 장치(200)는 제1 노드(300a)에 제2 가상 머신(320b)의 추가가 불가능한 것으로 판단되면, 다른 노드(예컨대, 제2 노드(300b))로 제2 가상 머신(320b)의 생성을 요청할 수 있다. 이때, 제2 노드(300b)는 제1 노드(300a)와 지리적으로 가장 가까운 위치에 존재하고, 가상 머신의 추가 생성이 가능한 노드일 수 있다. 이를 위해, 모니터링 장치(200)는 노드(300)로부터 실시간 또는 주기적으로 노드(300)의 위치, 노드(300)에 포함된 가상 머신의 개수 등에 대한 정보를 수신하여 확인할 수 있다. 모니터링 장치(200)는 클라이언트 장치(100)가 제1 가상 머신(320a)에 요청한 데이터를 제2 가상 머신(320b)으로 분배하여 제1 가상 머신(320a)에 집중되는 트래픽을 분산시키도록 하여 응답 시간의 지연을 방지할 수 있다. 그러나, 본 발명에서는 제1 노드(300a)에 제2 가상 머신(320b)의 생성을 요청하는 것을 예로 설명하기로 한다.
511단계에서 모니터링 장치(200)는 제2 가상 머신(320b)의 생성 요청에 따라 제1 노드(300a)에 생성된 제2 가상 머신(320b)의 식별 정보를 수신한다. 513단계에서 모니터링 장치(200)는 제2 가상 머신(320b)의 식별 정보를 확인한다. 모니터링 장치(200)는 제2 가상 머신(320b)의 식별 정보로부터 제2 가상 머신(320b)의 위치 및 제2 가상 머신(320b)에 탑재된 제2 DB(310b)에 저장된 데이터 등을 확인하고, 이를 저장할 수 있다. 아울러, 모니터링 장치(200)는 클라이언트 장치(100)와 제2 가상 머신(320b)의 연결이 종료되면, 제1 노드(300a)로 제2 가상 머신(320b)의 삭제를 요청할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 제1 노드에서의 모니터링 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, 601단계에서 제1 노드(300a)는 제1 노드(300a)에 포함된 복수개의 가상 머신에 대한 모니터링 주기의 도래여부를 확인한다. 601단계의 확인 결과, 모니터링 주기가 도래되면 제1 노드(300a)는 603단계를 수행하고, 모니터링 주기가 도래하지 않으면, 제1 노드(300a)는 모니터링 주기의 도래여부를 지속적으로 확인한다.
603단계에서 제1 노드(300a)는 제1 노드(300a)에 포함된 복수개의 가상 머신에 대한 정보를 수집한다. 보다 구체적으로, 제1 노드(300a)에 포함된 Libvirt API(340)는 하이퍼바이저(330)로부터 수집된 정보를 기반으로 모니터링 장치(200)가 서버, 스토리지 및 네트워크 서버 등과 같은 클라우드 컴퓨팅 자원에 접근하여 이를 조작할 수 있도록 한다. 특히, Libvirt API(340)는 모니터링 장치(200)가 제1 노드(300a)에 포함된 가상 머신에 접근하여 가상 머신의 생성, 삭제 등의 조작을 수행할 수 있도록 한다. 이때, 수집 정보는, 복수개의 가상 머신의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함할 수 있다. 아울러, Libvirt API(340)는 복수개의 가상 머신 각각에 대한 UUID(universally unique identifier), 고유식별이름 등의 식별 정보를 확인할 수 있다.
605단계에서 제1 노드(300a)는 수집된 수집 정보를 미들웨어(210)에 맞게 가공한다. 보다 구체적으로, Libvirt API(340)는 모니터링 모듈(350)의 제어에 의해 하이퍼바이저(330)에서 제공된 수집 정보와 식별 정보를 모니터링 장치(200)에 포함된 미들웨어(210)와 관련된 형태로 가공하여 가공 정보를 생성한다. 예를 들어, 모니터링 장치(200)에 구비된 미들웨어(210)가 메시지 큐 기반의 메시지 지향 미들웨어이고, 그 중 AMQP(advanced message queuing protocol)일 수 있다. 이때, Libvirt API(340)는 모니터링 장치(200)에서 가공 정보를 가상 머신별로 구분할 수 있도록, 수집 정보와 식별 정보를 매핑하여 가공 정보를 생성할 수 있다. Libvirt API(340)는 가공 정보를 모니터링 모듈(350)로 제공한다.
607단계에서 제1 노드(300a)의 모니터링 모듈(350)은 가공 정보를 모니터링 장치(200)로 전송한다. 609단계에서 제1 노드(300a)는 모니터링 장치(200)로부터 새로운 가상 머신에 대한 생성 요청 신호가 수신되면 611단계를 수행하고, 생성 요청 신호가 수신되지 않으면 601단계로 회귀하여 상기의 단계들을 재수행할 수 있다.
611단계에서 제1 노드(300a)는 생성 요청 신호에 따라 제1 노드(300a)에 새로운 가상 머신 예컨대, 제2 가상 머신(320b)을 생성하고, 613단계를 수행한다. 613단계에서 제1 노드(300a)는 제2 가상 머신(320a)에 탑재된 제2 DB(310b)에 특정 데이터를 복사할 수 있다. 예컨대, 특정 데이터는, 클라이언트 장치(100)에서 제1 가상 머신(320a)에 탑재된 제1 DB(310a)로 접근을 요청한 데이터일 수 있다. 아울러, 제1 노드(300a)는 제1 DB(310a)에 저장된 데이터를 제2 가상 머신(320b)에 탑재된 제2 DB(310b)에 복사할 수 있다.
615단계에서 제1 노드(300a)는 제2 가상 머신(320b)에 대한 식별 정보를 확인하고, 617단계를 수행한다. 617단계에서 제1 노드(300a)는 확인된 식별 정보를 모니터링 장치(200)로 전송한다. 또한, 제1 노드(300a)는 제2 가상 머신(320b)의 제2 DB(310b)에 복사된 데이터를 모니터링 장치(200)를 통해 클라이언트 장치(100)로 전송한다. 제2 가상 머신(320b)에 대한 식별 정보를 통해 모니터링 장치(200)는 제2 가상 머신(320b)의 위치, 및 제2 가상 머신(320b)에 탑재된 제2 DB(310b)에 저장된 데이터 등에 대한 정보를 저장할 수 있다. 아울러, 제1 노드(300a)는 클라이언트 장치(100)와 제2 가상 머신(320b)의 연결이 종료되어 모니터링 장치(200)로부터 제2 가상 머신(320b)의 삭제가 요청되면, 제2 가상 머신(320b)을 삭제할 수 있다.
본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (13)

  1. 클라이언트가 요청한 데이터가 저장된 제1 가상 머신을 포함한 제1 노드로부터 미들웨어와 관련된 형식으로 가공된 가공 정보를 수신하는 단계;
    상기 가공 정보로부터 상기 제1 가상 머신이 과부하상태로 확인되면, 상기 제1 노드 및 제2 노드 중 어느 하나의 노드로 제2 가상 머신의 생성을 요청하는 단계; 및
    상기 어느 하나의 노드에서 생성된 상기 제2 가상 머신으로부터 수신된 상기 데이터를 상기 클라이언트로 전송하는 단계;
    를 포함하는 것을 특징으로 하는 모니터링 방법.
  2. 제1항에 있어서,
    상기 제2 가상 머신의 생성을 요청하는 단계는,
    상기 제1 가상 머신에 탑재된 데이터베이스에 저장된 상기 데이터를 상기 제2 가상 머신에 탑재된 데이터베이스로의 복사를 요청하는 단계;
    를 포함하는 것을 특징으로 하는 모니터링 방법.
  3. 제2항에 있어서,
    상기 제2 가상 머신으로부터 수신된 상기 데이터를 상기 클라이언트로 전송하는 단계는,
    상기 어느 하나의 노드로부터 상기 제2 가상 머신과 관련된 가공 정보를 수신하는 단계;
    를 포함하는 것을 특징으로 하는 모니터링 방법.
  4. 제2항에 있어서,
    상기 미들웨어와 관련된 형식으로 가공된 가공 정보를 수신하는 단계는,
    상기 제1 가상 머신의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함하는 정보에 상기 제1 가상 머신의 식별정보가 매핑되어 가공된 상기 가공 정보를 수신하는 단계인 것을 특징으로 하는 모니터링 방법.
  5. 제2항에 있어서,
    상기 미들웨어와 관련된 형식으로 가공된 가공 정보를 수신하는 단계는,
    임계 시간마다 상기 노드로부터 상기 가공 정보를 수신하는 단계인 것을 특징으로 하는 모니터링 방법.
  6. 제2항에 있어서,
    상기 어느 하나의 노드로 제2 가상 머신의 생성을 요청하는 단계는,
    상기 제1 노드에 상기 제2 가상 머신의 생성이 가능한 것으로 확인되면, 상기 제1 노드로 상기 제2 가상 머신의 생성을 요청하는 단계; 및
    상기 제1 노드에 상기 제2 가상 머신의 생성이 불가능한 것으로 확인되면, 상기 제1 노드와 임계 거리 내에 위치한 상기 제2 노드로 상기 제2 가상 머신의 생성을 요청하는 단계;
    를 포함하는 것을 특징으로 하는 모니터링 방법.
  7. 클라이언트가 요청한 데이터가 저장된 제1 가상 머신을 포함한 제1 노드로부터 수신된 가공 정보를 확인하는 미들웨어; 및
    상기 미들웨어로부터 확인된 상기 가공 정보를 기반으로 상기 제1 가상 머신에 대한 상태가 과부하상태이면, 상기 제1 노드 및 제2 노드 중 어느 하나의 노드로 제2 가상 머신의 생성을 요청하고, 상기 어느 하나의 노드에서 생성된 상기 제2 가상 머신으로부터 수신된 상기 데이터를 상기 클라이언트로 전송하는 오토 스케일링 엔진;
    을 포함하는 것을 특징으로 하는 모니터링 장치.
  8. 제7항에 있어서,
    상기 오토 스케일링 엔진은,
    상기 가공 정보에서 확인된 상기 제1 가상 머신의 자원 사용량 및 응답시간을 기반으로 상기 제1 가상 머신의 상태가 과부하상태인지 확인하는 모니터링 데몬; 및
    상기 제1 노드 및 상기 제2 노드 중 어느 하나의 노드로 상기 제2 가상 머신의 생성을 요청하고, 상기 제1 가상 머신에 탑재된 데이터베이스에 저장된 상기 데이터를 제2 가상 머신에 탑재된 데이터베이스로의 복사를 제어하는 로드밸런서;
    를 포함하는 것을 특징으로 하는 모니터링 장치.
  9. 제8항에 있어서,
    상기 오토 스케일링 엔진은,
    상기 제1 노드로부터 상기 제1 가상 머신과 관련된 가공 정보를 수신하는 것을 특징으로 하는 모니터링 장치.
  10. 제8항에 있어서,
    상기 가공 정보는,
    상기 제1 가상 머신의 자원 사용량, 트래픽 상태에 따른 응답시간을 포함하는 정보에 상기 제1 가상 머신의 식별정보가 매핑되어 상기 미들웨어와 관련된 형식으로 가공된 정보인 것을 특징으로 하는 모니터링 장치.
  11. 제8항에 있어서,
    상기 가공 정보는,
    상기 제1 노드로부터 임계 시간마다 수신되는 것을 특징으로 하는 모니터링 장치.
  12. 제8항에 있어서,
    상기 로드밸런서는,
    상기 제1 노드에 상기 제2 가상 머신의 생성이 가능한 것으로 확인되면, 상기 제1 노드로 상기 제2 가상 머신의 생성을 요청하고, 상기 제1 노드에 상기 제2 가상 머신의 생성이 불가능한 것으로 확인되면, 상기 제1 노드와 임계 거리 내에 위치한 상기 제2 노드로 상기 제2 가상 머신의 생성을 요청하는 것을 특징으로 하는 모니터링 장치.
  13. 모니터링 주기가 도래하면, 제1 가상 머신에 대한 정보를 수집하고, 상기 정보를 미들웨어와 관련된 형식으로 가공하여 전송하는 노드; 및
    상기 가공된 가공 정보로부터 상기 제1 가상 머신이 과부하상태로 확인되면, 상기 노드로 제2 가상 머신의 생성을 요청하는 모니터링 장치; 를 포함하고,
    상기 노드는,
    상기 모니터링 장치의 요청에 따라 상기 제2 가상 머신을 생성하고, 상기 제1 가상 머신에 탑재된 데이터베이스에 저장된 데이터를 상기 제2 가상 머신에 탑재된 데이터베이스로 제공하는 것을 포함하는 것을 특징으로 하는 모니터링 시스템.
KR1020170099477A 2017-08-07 2017-08-07 미들웨어를 이용한 모니터링 방법, 장치 및 시스템 KR102367262B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170099477A KR102367262B1 (ko) 2017-08-07 2017-08-07 미들웨어를 이용한 모니터링 방법, 장치 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170099477A KR102367262B1 (ko) 2017-08-07 2017-08-07 미들웨어를 이용한 모니터링 방법, 장치 및 시스템

Publications (2)

Publication Number Publication Date
KR20190015817A true KR20190015817A (ko) 2019-02-15
KR102367262B1 KR102367262B1 (ko) 2022-02-24

Family

ID=65367497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170099477A KR102367262B1 (ko) 2017-08-07 2017-08-07 미들웨어를 이용한 모니터링 방법, 장치 및 시스템

Country Status (1)

Country Link
KR (1) KR102367262B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102140220B1 (ko) * 2019-10-31 2020-07-31 숭실대학교산학협력단 복수개의 플랫폼을 포함하는 통합 클라우드 시스템의 실패 복구 방법
KR102482378B1 (ko) * 2021-11-15 2022-12-29 가온플랫폼 주식회사 빅데이터 분석 및 진단 플랫폼 제공 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134206A (ja) * 1997-10-30 1999-05-21 Toshiba Corp 分散共有リソース管理方法ならびに並列処理環境提供システム、及び同方法がプログラムされ記録される記録媒体
KR20050052800A (ko) * 2003-12-01 2005-06-07 김강인 효율적인 로드 밸런싱을 통하여 클라이언트 요청을처리하는 미들웨어 시스템
KR20120122396A (ko) * 2011-04-29 2012-11-07 제주대학교 산학협력단 Rfid 미들웨어의 부하 분산 시스템 및 그 방법
KR20150031124A (ko) * 2013-09-13 2015-03-23 한국전자통신연구원 가상 물리 시스템 및 그의 가상 머신 모니터링 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134206A (ja) * 1997-10-30 1999-05-21 Toshiba Corp 分散共有リソース管理方法ならびに並列処理環境提供システム、及び同方法がプログラムされ記録される記録媒体
KR20050052800A (ko) * 2003-12-01 2005-06-07 김강인 효율적인 로드 밸런싱을 통하여 클라이언트 요청을처리하는 미들웨어 시스템
KR20120122396A (ko) * 2011-04-29 2012-11-07 제주대학교 산학협력단 Rfid 미들웨어의 부하 분산 시스템 및 그 방법
KR20150031124A (ko) * 2013-09-13 2015-03-23 한국전자통신연구원 가상 물리 시스템 및 그의 가상 머신 모니터링 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102140220B1 (ko) * 2019-10-31 2020-07-31 숭실대학교산학협력단 복수개의 플랫폼을 포함하는 통합 클라우드 시스템의 실패 복구 방법
KR102482378B1 (ko) * 2021-11-15 2022-12-29 가온플랫폼 주식회사 빅데이터 분석 및 진단 플랫폼 제공 시스템 및 방법

Also Published As

Publication number Publication date
KR102367262B1 (ko) 2022-02-24

Similar Documents

Publication Publication Date Title
US11729073B2 (en) Dynamic scaling of storage volumes for storage client file systems
EP3667500B1 (en) Using a container orchestration service for dynamic routing
KR101891506B1 (ko) 하나 이상의 클라우드 시스템 상에 애플리케이션들을 이식 가능하게 배치하기 위한 방법들 및 시스템들
JP5288334B2 (ja) 仮想アプライアンス配備システム
US8832130B2 (en) System and method for implementing on demand cloud database
US9794135B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US9858322B2 (en) Data stream ingestion and persistence techniques
US9659038B2 (en) Efficient snapshot read of a database in a distributed storage system
US20150135255A1 (en) Client-configurable security options for data streams
CN103209223A (zh) 分布式应用会话信息共享方法、系统和应用服务器
US10754741B1 (en) Event-driven replication for migrating computing resources
US9591079B2 (en) Method and apparatus for managing sessions of different websites
US8543680B2 (en) Migrating device management between object managers
CN115640110B (zh) 分布式云计算系统调度方法和装置
US11178197B2 (en) Idempotent processing of data streams
JP2006260433A (ja) リソース貸借方法、および、リソース貸借システム
KR102367262B1 (ko) 미들웨어를 이용한 모니터링 방법, 장치 및 시스템
US20230259431A1 (en) Quick disaster recovery in distributed computing environment
CN113765871B (zh) 堡垒机管理的方法和装置
US11157454B2 (en) Event-based synchronization in a file sharing environment
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
US11803448B1 (en) Faster restart of task nodes using periodic checkpointing of data sources
EP3757864B1 (en) Method and system for performing computations in a distributed system
KR101319465B1 (ko) 엔스크린용 파일 제공 시스템
US20230409568A1 (en) Monitoring metadata synchronization and aggregation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant