KR102467522B1 - 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템 - Google Patents

클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템 Download PDF

Info

Publication number
KR102467522B1
KR102467522B1 KR1020220108507A KR20220108507A KR102467522B1 KR 102467522 B1 KR102467522 B1 KR 102467522B1 KR 1020220108507 A KR1020220108507 A KR 1020220108507A KR 20220108507 A KR20220108507 A KR 20220108507A KR 102467522 B1 KR102467522 B1 KR 102467522B1
Authority
KR
South Korea
Prior art keywords
virtual machine
virtualization
data
cluster
resource
Prior art date
Application number
KR1020220108507A
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 KR1020220108507A priority Critical patent/KR102467522B1/ko
Application granted granted Critical
Publication of KR102467522B1 publication Critical patent/KR102467522B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Hardware Redundancy (AREA)

Abstract

클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템은 CPU 사용 예측을 통한 클러스터 자원 할당에 관한 것으로 특정 가상화 클러스터에 장애가 발생하면, 전체 가상화 클러스터를 탐색하고 인공지능으로 CPU 사용 예측을 하고 이를 통해 최적의 대상 가상화 클러스터를 선택하여 가상머신의 마이그레이션(Migration)을 지원한다.
본 발명은 장애로 인해 발생하는 가상머신의 중단 시간을 최소화하고, 서비스의 안정성을 보장하는 효과가 있다.

Description

클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템{High Availability System of Global Sharing Virtualization Resource for Cloud Infrastructure}
본 발명은 클라우드 데이터 센터와 같은 다중 클러스터 운영 환경에서의 가용성 시스템의 효율성을 증대시키는 기술 방식 및 시스템에 관한 것으로서, 더욱 상세하게는 하나의 클러스터에 장애가 발생하면, 클라우드 데이터 센터 내에 구축되어 있는 다른 모든 클러스터를 대상으로 자원 재배치를 가능하게 하는 것으로 특정 가상화 클러스터에 장애가 발생하면, 전체 클라우드 데이터 센터 내의 가상화 클러스터를 탐색하고 인공지능을 활용한 CPU 사용 예측을 통한 최적의 대상 가상화 클러스터를 선택하여 가상머신의 마이그레이션(Migration)을 지원하는 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템에 관한 것이다.
기업들은 디지털 환경이 가속화함에 따라 IT 전문 기업뿐 아니라 다양한 분야의 기업들에서도 클라우드(Cloud) 환경을 도입하여 비지니스 적시성을 달성하는데 적극적으로 활용하고 있다.
2021년 시장 조사 기관인 한국 IDC에서 발표한 향후 2025년까지의 한국의 클라우드 IT 인프라 시장에 대한 전망 예측에서 매년 평균 15%씩 성장하여 2025년에 2조 2,189억원 규모로 매년 지속해서 성장할 것으로 전망하였다.
다수의 기업들에서 외부 고객을 대상으로 하는 커스터머 서비스는 Public Cloud 모델을 적용하고, 내부 직원용 및 경영 관리를 위한 서비스들은 서버 가상화를 지원하는 기술인 Hypervisor에 기반한 Private Cloud 모델을 적용하는 이원화 전략을 구사하고 있다.
기업들은 날로 엄격해지는 기업 내 산업기밀 보호와 정부의 개인정보보호 및 데이터 위치 투명성 요구 등의 정부 요구에 맞추기 위해 다수의 가상화 클러스터(Virtualization Clusters, VCs)를 운용할 수밖에 없는 상황에 놓여있다.
Private Cloud 운용 모델을 기업 내에서 구축 운용하게 될 때 직면하는 문제는 업무 연속성 계획을 수립하고, 이를 만족하는 고가용성(High Availability, HA) 수준을 구현하기 위한 구축 비용과 라이선스 유지비 등 연간 운용 비용이 추가로 발생하는 문제이다.
고가용성 비용은 고가용성 수준을 높일수록 기업의 투자 규모가 기하급수적으로 증가하게 되는 문제점이 있다.
이렇게 구축된 고가용성 자원의 단점은 비용 대비 효율성의 문제이다. 고비용의 고가용성 자원을 도입하였으나, 소속된 가상화 클러스터에서만 사용할 수 있는 독점 고가용성(Private High Availability, PHA) 자원으로만 사용할 수 있으며, 장애 등 긴급 상황에 대비한 투자로 평소에는 활용하지 못하는 예비 자원으로 확보하고 있어야 하므로 활용도도 매우 낮을 수밖에 없다.
그러나 이러한 고가용성 자원의 고비용 저효율의 단점에도 불구하고, 클러스터를 구성하는 호스트 노드(Host Node) 서버에서 발생할 수 있는 예기치 못한 장애에 대비하거나 또는 계획된 하드웨어 유지 보수 같은 상황에서도 해당 클러스터 내 서비스의 연속성을 보장하기 위해서 고가용성 자원은 필수적으로 구축해야 하는 요소이기도 하다.
이러한 PHA 자원의 특성으로 인하여 일부 경영자층에게는 고비용, 저효율의 낭비 요소로 인식되어 IT 투자 비용 조달 시 커다란 걸림돌이 되고 있다.
한국 등록번호 제10-1569038호
이와 같은 문제점을 해결하기 위하여, 본 발명은 종래의 고가용성 기술이 배치된 단일 클러스터 내부에서만 사용될 수밖에 없었던 한계점을 극복하고자, 자원 재배치를 위한 고가용성 자원을 클라우드 데이터센터에 구성된 전체 클러스터에서 상호 활용하며 공유할 수 있도록 고안한 전역 고가용성 시스템에 관한 것으로, 특정 가상화 클러스터에 소속된 인프라 장비(호스트 노드)에서 장애가 발생하면, 전체 가상화 클러스터를 대상으로 현 시점에서 여유 자원이 있는 클러스터를 탐색하고, 탐색된 클러스터에 인공지능 알고리즘으로 계산된 하드웨어 리소스(CPU, 메모리 등)의 미래 필요량을 예측한 정보를 제공하여 관리자가 최적의 대상 가상화 클러스터를 선정할 수 있도록 돕는다.
이를 통해 신속한 가상머신의 마이그레이션(Migration)을 지원하는 클러스터 데이터 센터 내의 전역 클러스터 간의 가상화 리소스를 공유하는 가용성 시스템을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 특징에 따른 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템은,
전체 가용 자산을 하나로 묶는 클러스터링(Clustering) 기법을 적용하여 가상화 클러스터를 각각 구성하고,
상기 각각의 가상화 클러스터는 여러 대의 서버와 가상화 클러스터에 속한 각각의 서버들의 가상머신 이미지를 저장하는 이미지 저장소 및 시스템 자원 현황을 모니터링하는 에이전트 가상머신(Agent Virtual Machine)를 탑재하고,
전체 가상화 클러스터의 자원 사용 현황을 모니터링하고, 특정한 가상화 클러스터에 속한 서버에 장애가 발생하는 경우, 나머지 가상화 클러스터에 속한 서버들의 앞으로의 시간대별 CPU 사용률을 예측하는 기능을 탑재하고, 이를 기초로 자원 여유가 있는 가상화 클러스터에 속한 서버로 자원을 이동하는 매니저 가상머신(Manager Virtual Machine)과 매니저 가상머신과 연동되고 가상 이미지 데이터를 저장하는 이미지 이동 저장부를 포함한다.
매니저 가상머신은 상기 리소스 모니터링부로부터 명령을 수신한 후, 대상 가상머신의 이미지 데이터를 이동시키는 이미지 이동부; 및
상기 리소스 모니터링부로부터 각 클러스터에 소속된 인프라 서버 자원 현황 데이터를 수신하여 저장 및 로딩 후, 딥러닝을 이용하여 상기 타임스탬프와 상기 CPU 사용량을 최적 자원 할당 모델에 입력 데이터로 하고, 상기 최적 자원 할당 모델의 출력 데이터로 CPU 자원 소요 예측 정보를 출력하는 인공지능 엔진부를 더 포함한다.
인공지능 엔진부에서 출력한 CPU 자원 소요 예측 정보를 이용하여 각 클러스터가 조회 시점부터 향후 추가로 필요로 하는 CPU 사용률 등의 자원 예측 정보를 사용자에게 제시하여 최적의 가상화 클러스터를 선택하게 하고, 상기 선택된 가상화 클러스터에 속한 서버에 장애가 발생한 서버의 가상머신 이미지를 이동시켜 장애가 발생한 가상머신을 재배치하여 자원 할당을 수행하는 자원 할당부를 더 포함한다.
자원 할당부는 사용자가 선택한 목표 클러스터에 속한 서버에게 장애가 발생한 서버의 가상머신 이미지를 이동시켜 장애가 발생한 가상머신을 재배치하는 기능을 포함한다.
따라서 자원 할당부는 상기 최적의 가상화 클러스터로 가상머신의 이미지 데이터를 이동시켜 서비스가 시작되도록 지원한다.
본 발명의 자원 할당부는 매니저 가상머신처럼 가상화 리소스 공유 시스템(VR-SAS)에 포함되는 독립적 구성이나, 장애 복구시 가상머신을 재배치하는 프로세스에서 매니저 가상머신과 상호 관련하여 기능을 수행한다는 점에서 매니저 가상머신에 포함되는 구성으로도 볼 수 있다.
전술한 구성에 의하여, 본 발명은 하드웨어의 장애로 인해 발생하는 가상머신의 중단 시간을 최소화하고, 서비스의 안정성을 보장하는 효과가 있다.
본 발명은 종래의 단일 클러스터의 가용성 구성을 넘어서 복수개의 클러스터를 활용한 클라우드 데이터센터의 가용성 구성에 관한 것으로, 추가적인 투자없이 기존에 구축된 클러스터들을 가상화 자원으로 활용하므로 비용대비 효율성 높은 가용성 수준을 구축할 수 있는 효과가 있다.
또한, 본 발명은 최적의 대상 가상화 클러스터로의 마이그레이션(Migration)을 수행 시 인공지능 기반 CPU 사용 예측을 통해 대상을 선정하도록 지원하여 마이그레이션된 가상머신의 안정적 서비스 제공을 보장하기 위한 생명(수명) 주기에 대한 고려 및 이동 대상으로 선정된 서버에서 운영 중이던 다른 서비스에 미치는 영향을 최소화할 수 있는 서비스 연속성 보장의 효과가 있다.
도 1은 본 발명의 실시예에 따른 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 에이전트 가상머신을 구성하는 설치와 함께 환경 설정 순서를 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 매니저 가상머신을 구성하는 설치와 환경 설정 순서를 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 매니저 가상머신의 내부 구성을 간략하게 나타낸 블록도이다.
도 5는 본 발명의 실시예에 따른 인공지능 엔진부의 내부 구성을 간략하게 나타낸 블록도이다.
도 6은 본 발명의 실시예에 따른 장애 복구 시나리오를 나타낸 도면이다.
도 7 내지 도 8은 본 발명의 실시예에 따른 CPU 사용 예측을 나타낸 도면이다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
고가용성 수준 대비 투자를 높은 순서로 나열하면, 센터 Redundancy, 자원 Redundancy, 서비스 Redundancy 순으로 높은 투자 비용이 요구된다.
본 발명은 자원 Redundancy를 이용한 고가용성 수준 구현에 초점을 맞추고 있다. 자원 측면에서 고가용성을 구현하기 위해서는 전체 가용 자산을 하나로 묶는 클러스터링(Clustering) 기법을 적용하여 가상화 클러스터를 구성한다.
본 발명은 데이터 센터 내에 Cloud를 구축하며, 클러스터 단위로 도입되어 구성된 여러 독점 가용성 자원(Private High Availability, PHA)들의 활용성을 향상시켜 비용을 절감하되 서비스 안정성 달성을 높이는 것을 목적으로 한다.
각 가상화 클러스터에 소속된 PHA 자원을 가상화 클러스터(Virtualization Clusters, VCs) 간에 공동으로 사용할 수 있도록 공유 가용성(Shared High Availability, SHA) 자원으로 활용하는 시스템 모델을 제안한다.
PHA 자원은 하나의 클러스터에서 가용성을 지원하는 용도로 할당한 물리적, 논리적인 자원을 의미한다.
가용성은 클러스터보다는 하나의 서비스에 포커스를 한다. 예를 들면, 회사에서 그룹웨어 서비스를 운용하는 경우, 다중 장비로 Active-Standby를 구성해서 문제가 발생할 때, Standby로 그룹웨어 서비스를 수행하는 형태를 가용성 구성의 일례로 들 수 있다.
가용성은 하나의 서비스가 그 기능을 상실하지 않도록 유지하기 위해 준비하는 일련의 인프라 자원들의 확장 구성 또는 중복 구성을 의미한다.
클러스터 내의 가용성 구성은 필수적이며, 독점 고가용성(Private High Availability, PHA)은 고립된 하나의 단일 클러스터 내 서비스의 연속성을 보장하기 위해 사용한다.
본 발명은 클러스터 내의 가용성을 하나의 클러스터를 벗어나 데이터 센터라는 커다란 군집에서 바라보는 것이다.
본 발명은 각각의 클러스터에 분산되어 있는 PHA 자원들을 서로 하나로 다시 묶어(논리적으로 클러스터링 하여) 가용성을 지원하는 전역 HA 클러스터를 형성한다. 이를 공유 가용성 자원(Shared High Availability, SHA)이라 명명한다.
PHA는 고립된 클러스터 내에 있어야 한다. 클러스터에는 클러스터 내에 고가용성을 지원하는 하드웨어와 상용 솔루션이 필요하며, 이 고가용성 자원은 클러스터에 종속되는 한계를 가지고 있다. 이러한 문제를 해결하기 위해 고안한 것이 본 발명의 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템이다.
본 발명의 클라우드 인프라 환경에서 전역 가용성 시스템은 데이터 센터 내의 여러 클러스터들과 연결되어 문제가 발생하면, 클러스터에서 다른 클러스터로 가용성 자원을 옮기는 역할을 수행한다.
도 1은 본 발명의 실시예에 따른 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템의 구성을 나타낸 도면이다.
가상머신(Virtual Machine, VM)은 컴퓨팅 환경을 소프트웨어로 구현한 것이다. 가상머신은 하드웨어와 독립적인 프로그램 실행 환경과 추상화를 제공하도록 설계된다. 가상머신에 운영체제 또는 애플리케이션을 설치하고 실행할 수 있다.
서버(111)는 가상화 환경으로 설정되어 있다. 서버(111)에 설치된 가상머신은 365일 24시간 가동되면서 CPU, Memory, Disk I/O, Network I/O 등의 자원을 사용한다.
본 발명은 다수의 테넌트(Tenant)들에게 다양한 애플리케이션을 온라인으로 제공하는 SaaS(Soft-as-a-service) 플랫폼 기술을 포함한다.
SaaS라 함은 소프트웨어의 기능 중에서 고객이 필요로 하는 것만을 서비스로서 배포하여 이용 가능하도록 한 소프트웨어의 배포 형태이다. 서비스형 소프트웨어(Service-as-a-Software)로 불리며, 서버(111)의 컴퓨터상에 소프트웨어를 설치해 두고 고객은 웹 브라우저를 통해 사용한 만큼 비용을 지불하고 소프트웨어를 서비스로 이용하는 방식이다.
따라서, SaaS 플랫폼은 하나의 소프트웨어 코드 이미지를 이용하여 다수의 고객(또는 테넌트)의 요구 사항에 대한 서비스를 온라인으로 제공하는 멀티테넌시(Multi-Tenancy) 기능을 지원하여야 한다.
SaaS 플랫폼은 멀티테넌시 기능 구현에 특화된 가상머신을 추가로 포함할 수 있다.
클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템(100)은 Tenant VC-A(110a), Tenant VC-B(110b) 등으로 이루어진 Tenant VC-N(110n)과, 매니저 가상머신(Manager Virtual Machine)(130), 자원 할당부(150) 및 이미지 이동 저장부(151)를 포함한다.
자원 할당부(150)는 매니저 가상머신(130)처럼 가상화 리소스 공유 시스템(VR-SAS)에 포함되는 독립적 구성이나, 가상머신을 재배치하는 프로세스에서 매니저 가상머신(130)의 결과와 상호 관련하여 기능을 수행한다는 점에서 매니저 가상머신(130)에 포함되는 구성으로도 볼 수 있다
각각의 가상화 클러스터(Virtualization Cluster, VC)는 여러 대의 서버(111)와 이미지 저장소(112)를 포함한다. 각각의 가상화 클러스터에는 에이전트 가상머신(Agent Virtual Machine)(120)이 탑재된다. 서버(111)들은 호스트 노드일 수 있다.
이미지 저장소(112)는 가상화 클러스터에 속한 각각의 서버(111)들의 가상머신 이미지를 저장하고 있다. 예를 들어, 서버 A를 위한 가상머신 이미지, 서버 B를 위한 가상머신 이미지 등을 들 수 있다.
각각의 가상화 클러스터는 서비스용 네트워크를 통해 연결한다.
에이전트 가상머신(120)은 개별 테넌트 가상화 클러스터에 배치한 후, 평시에 시스템 자원 현황을 모니터링한다.
에이전트 가상머신(120)은 각 테넌트 가상화 클러스터에 탑재되어 자원 모니터링 기능과 VM 이미지(Virtual Machine Image) 파일이 위치한 스토리지 자원 접근을 지원한다.
에이전트 가상머신(120)은 운영 체제를 구동하는 하이퍼바이저(Hypervisor)의 운영체제로 동작되는 소프트웨어로 구성된 가상의 컴퓨터를 나타낸다.
하이퍼바이저는 Linux OS가 탑재된 에이전트 가상머신(120)과 매니저 가상머신(Manager Machine Image)(130)을 생성한다.
에이전트 가상머신(120)은 SSHFS(Secure SHell FileSystem)로 각 하이퍼바이저 솔루션의 가상머신 이미지를 저장하는 이미지 저장소(112)를 연결하여 필요시 접근할 수 있도록 한다. 여기서, SSHFS(Secure SHell FileSystem)는 SFTP(Secure File Transfer Protocol)로 파일을 전송하는 클라이언트이다.
도 2에 도시된 바와 같이, 에이전트 가상머신(120)을 구성하는 설치와 함께 환경 설정 순서는 다음과 같다.
에이전트 가상머신(120)들을 생성하고(S100), 리눅스 운영체제의 환경을 설정한다(S101).
에이전트 가상머신(120)은 클러스터에 소속된 IP 주소를 할당하고(S102), 호스트명 설정 및 인터페이스를 재 시작한다(S103).
에이전트 가상머신(120)은 이미지 저장소(112)에서 SSHFS(Secure SHell FileSystem) 설치하고(S104), 이미지 볼륨을 연결 포인트를 구성한다(S105).
에이전트 가상머신(120)은 이미지 저장소(112)를 이미지 볼륨에 적재하고(S106), 이미지 저장소(112)의 접근 권한을 검증한다(S107).
매니저 가상머신(130)은 각 가상화 클러스터에서 연결하고 있는 SSHFS를 통해 이미지 저장소(112)에 원격 연결하여 재배치를 위한 준비를 한다.
도 3에 도시된 바와 같이, 매니저 가상머신(130)을 구성하는 설치와 환경 설정 순서는 다음과 같다.
매니저 가상머신(130)을 생성하고(S200), 리눅스 운영체제의 환경을 설정한다(S201).
매니저 가상머신(130)은 클러스터에 소속된 IP 주소를 할당하고(S202), 호스트명 설정 및 인터페이스를 재 시작한다(S203).
매니저 가상머신(130)은 이미지 저장소(112)에서 SSHFS(Secure SHell FileSystem) 설치하고(S204), 이미지 볼륨을 연결 포인트를 구성한다(S205).
매니저 가상머신(130)은 에이전트 경로를 에이전트 이미지 볼륨에 적재하고(S206), 에이전트 이미지 볼륨의 접근 권한을 검증한다(S207). S205내지 S207를 에이전트 수만큼 반복한다.
매니저 가상머신(130)은 모든 에이전트 가상머신(120)의 각각의 이미지 저장소(112)에 연결하고 있는 점이 에이전트 가상머신(120)과 다른 특징이다.
도 4는 본 발명의 실시예에 따른 매니저 가상머신의 내부 구성을 간략하게 나타낸 블록도이다.
본 발명의 실시예에 따른 매니저 가상머신(130)은 리소스 모니터링부(131), 이미지 이동부(132) 및 인공지능 엔진부(140)를 포함한다.
개별 가상화 클러스터의 서버(111)에는 자원 사용 현황을 모니터링 할 수 있도록 자원 현황을 수집하는 리소스 모니터링 에이전트 모듈을 등록하여 사용한다.
리소스 모니터링부(131)는 시스템 자원 사용률을 수집하기 위해서 리소스 모니터링 에이전트를 활용하여 각 가상화 클러스터의 자원 정보를 수집한다.
아래 소스코드는 리소스 모니터링부(131)의 모니터링 에이전트에서 각 시스템의 상태를 추출하는 예시이다. CPU와 메모리 총량 및 사용현황을 GHz와 GByte단위로 변환하여 ETL(Extract, Transform, Load)하기 위한 데이터 형태로 처리한다.
Figure 112022090571516-pat00001
리소스 모니터링부(131)는 개별 가상화 클러스터에 등록된 서버에 모듈을 설치한 후, 윈도우, 리눅스 등의 운용체제 위에 설치되어 분 단위로 동작하도록 등록하고, 서버(111)의 자원 현황을 수집하여 ETL하기 적합한 형태의 JSON (JavaScript Object Notation) 형식의 데이터로 추출한다.
데이터에는 서버를 식별하기 위한 IP 주소와, 데이터를 추출한 타임스탬프(Timestamp)와, CPU와 메모리의 총량 및 사용량을 저장한다.
타임스탬프는 추출한 시각을 나타내거나 기록하는 문자열이다.
여기서, ETL은 추출(Extract), 변환(Transform), 로드(Load)의 기능을 나타내고, 다양한 원본에서 데이터를 수집하는데 사용되는 데이터 파이프라인이다. 그런 다음 비즈니스 규칙에 따라 데이터를 변환하고, 데이터를 대상 데이터 저장소로 로드한다.
ETL의 변환 작업은 리소스 모니터링부(131)의 서버 측에서 발생하며 변환되어 궁극적으로 대상에 로드 될 때 데이터를 임시로 유지하기 위해 스테이징 테이블을 사용한다.
ETL은 기존 데이터를 저장하거나 집계하여 분석하고, 이를 비즈니스 결정에 활용할 수 있다.
추출은 온라인, 온프레미스 (on-premise), 기존 소스, SaaS 등 하나 이상의 소스에서 데이터를 가져오는 프로세스이고, 추출이 완료된 후에는 데이터가 스테이징 영역에 로드된다.
변환은 데이터를 가져와서 정리하고 대상 데이터베이스, 데이터 저장소, 데이터 웨어하우스(data warehouse) 또는 데이터 레이크(Data lake)에 저장할 수 있도록 공통된 형식으로 만드는 작업이 포함된다. 정리는 일반적으로 중복되거나 불완전하거나 명백히 잘못된 레코드를 제거하는 작업이 포함된다.
로드는 형식이 지정된 데이터를 대상 데이터베이스, 데이터 저장소, 데이터 웨어하우스 또는 데이터 레이크에 삽입하는 프로세스이다.
리소스 모니터링부(131)는 서버(111)의 자원 현황을 모니터링하기 위한 데이터 구조 설계를 다음의 표 1과 같이 나타낸다.
Figure 112022090571516-pat00002
이미지 이동부(132)는 목적 리소스 모니터링부(131)로부터 수신한 데이터인 VM 자원을 대상 서버의 타겟 리소스 모니터링부(131)로 이동시킨다.
인공지능 엔진부(140)는 리소스 모니터링부(131)로부터 데이터를 수신하여 로딩 후, 데이터 전처리(Preprocessing)를 수행한다.
로딩된 데이터 중에서 딥러닝에 사용될 데이터는 날짜와 시간인 타임스탬프(Timestamp)와, CPU 등의 자원 사용 현황 정보이다.
매니저 가상머신(130)은 평시에는 생성되고 수집된 에이전트 리소스 상태를 모니터링하여 수집과 저장을 반복하다가 장애발생으로 자원재배치의 예측이 필요할 시 도4의 화살표 방향처럼 리소스 모니터링부(131)가 로드되어 인공지능엔진부(140)가 분석과 예측을 하면 이미지이동부(132)에서 이미지를 복제하고 전송하는 순서의 흐름을 갖는다.
도 5는 본 발명의 실시예에 따른 인공지능 엔진부의 내부 구성을 간략하게 나타낸 블록도이고, 도 6은 본 발명의 실시예에 따른 장애 복구 시나리오를 나타낸 도면이다.
본 발명의 실시예에 따른 인공지능 엔진부(140)는 제어부(141), 데이터 변환부(142), 패턴 확인부(143), 데이터 분리부(144), 데이터 전처리부(145), 학습 모델부(160) 및 인공 신경 처리망(170)을 포함한다.
데이터 변환부(142)는 로딩된 데이터에서 연산에 필요한 항목만을 선택하여 데이터프레임(Dataframe)으로 변환한다.
다시 말해, 데이터 변환부(142)는 수치적인 연산을 위해 날짜와 시간 데이터를 하나의 필드로 묶어 날짜형 변수 타입으로 치환하며, CPU 사용률을 실수형 변수 타입으로 변환한다.
패턴 확인부(143)는 전처리된 데이터가 의도한 데이터를 확인한다. 패턴 확인부(143)는 테스트 세트(Test set)로 사용할 데이터의 이전 자원 사용률 데이터를 그래프로 출력하여 적합한 패턴인지 확인한다.
패턴 확인부(143)는 ETL된 데이터 중 최신 일정기간 데이터를 그래프로 출력하여 데이터의 패턴을 확인할 수 있도록 제공한다.
데이터 분리부(144)는 전체 데이터를 Train set(학습 세트)과 Test set으로 나누는 과정이다. 장애가 발생한 시점 이전까지 저장된 데이터를 Train set으로 하고 이후 데이터를 예측하도록 구성되어 있다.
Validation set(검증 세트)은 전체 Train set 중에서 약 25 내지 30%를 분리하여 모델의 학습 결과 검증에 활용해야 한다는 이론에 따라 총 25%의 데이터를 저장하였다.
다시 말해, 데이터 분리부(144)는 전체 Train set 중에서 Validation set을 Train set으로 데이터를 7.5(Train set) 대 2.5(Validation set)로 구분하여 그래프를 이용해서 데이터 패턴을 검증한다.
데이터 전처리부(145)는 데이터 연산 처리 속도 향상을 위해 0 내지 100까지의 CPU 사용률을 0.0 내지 1.0까지의 실수형 변수로 변형하는 데이터 스케일링(Data Scaling)을 수행하면, 수치의 범위가 줄어 연산을 더 빠르게 할 수 있는 장점이 있다.
다음은 시프트(Shift)를 정의하고, 타당하지 않은 값을 제거하는 소스 코드를 나타낸다.
Figure 112022090571516-pat00003
윈도우 사이즈는 시프트를 정의하는데 인자로 사용되며, 정의 후 비어 있는 값(NaN; Not-A-Number)을 삭제하여 오류 발생을 제거하고, 예측을 윈도우 사이즈만큼 앞당기는데 사용한다.
데이터 전처리부(145)는 데이터프레임에서 윈도우 사이즈를 정의하고, NaN을 삭제하면, 불완전한 앞쪽과 뒤쪽의 데이터가 삭제되게 되므로 이를 고려한 충분한 데이터의 확보가 중요하다.
다시 말해, 데이터 전처리부(145)는 데이터 처리와 분석을 위해 윈도우 사이즈에 맞춘 데이터프레임(Dataframe) 형태로 변환하고, NaN 데이터를 제거한다.
인공지능 엔진부(140)는 데이터 전처리를 처리한 데이터(타임스탬프(Timestamp)와, CPU 사용량)로 학습 모델부와 인공 신경 처리망을 이용하여 딥러닝(Deep Learning)을 수행한다.
학습 모델부(160)는 RNN 분석을 위한 3D 벡터 형태로 변환된 데이터를 LSTM 모델(이하의 최적 자원 할당 모델)을 로딩하여 옵티마이저(Optimizer, 최적화)(Adam 사용)을 적용한 후 피팅(Fitting)하는 순서로 수행한다.
에포크(Epoch)는 최적을 탐색하기 위해 1000부터 시작한 후 손실 함수의 피팅 결과를 확인하며, 수를 조정하여 최적의 하이퍼라파미터(Hyper Parameter)를 결정하는 과정이다.
딥러닝에서 하이퍼파라미터는 최적의 훈련 모델을 구현하기 위해 모델에 설정하는 변수로 학습률(Learning Rate), 에포크 수(훈련 반복 횟수), 가중치 초기화 등을 결정할 수 있다. 또한 하이퍼파라미터 튜닝 기법을 적용하여 훈련 모델의 최적 값들을 찾을 수 있다. 하이퍼라미터 튜닝 기법은 그리드 탐색, 랜덤 탐색, 베이지안 최적화, 휴리스틱 탐색 등을 들 수 있다.
하이퍼파라미터는 학습 알고리즘 자체의 파라미터로 최적 자원 할당 모델이 새로운 샘플에 잘 일반화되도록 최적 값을 찾는 것이다.
하이퍼파라미터는 최적 자원 할당 모델의 매개 변수를 추정하는데 도움이 되는 프로세스에서 사용되고, 학습 알고리즘의 샘플에 대한 일반화를 조절한다.
하이퍼파라미터의 예는 학습률, 손실 함수, 일반화 파라미터, 미니배치 크기, 에포크 수, 가중치 초기화, 은닉층의 개수 등을 예시할 수 있다.
학습 모델부(160)는 이와 함께 윈도우 사이즈와 배치 사이즈(Batch Size)를 조정하며 추가적인 결과를 확인하는 과정을 수행한다.
다음은 학습 모델부(160)에서 LSTM (Long Short Term Memory)모델을 피팅하는 과정을 나타낸 소스코드이다.
Figure 112022090571516-pat00004
데이터 분리부(144)에 저장된 데이터 세트는 훈련 세트와 테스트 세트로 나뉜다. 훈련 세트는 머신 러닝 또는 딥 러닝 모델에 제공된다.
학습 모델부(160)는 학습부(162), 분류부(163) 및 출력부(164)를 포함한다.
인공 신경 처리망(170)은 입력층(171), 컨볼루션 레이어부(Convolution layer)(173), 풀링 레이어부(Pooling layer)(174) 및 풀리 커넥티드 레이어부(fully connected layer)(175)로 이루어진 은닉층(172), 출력층(176)을 포함한다.
제어부(141)는 RNN(Recurrent Neural Networks)분석을 위한 3D 벡터 형태로 데이터(타임스탬프와 CPU 사용량)를 변환한다.
데이터 분리부(144)는 타임스탬프와 CPU 사용량으로 이루어진 훈련 세트(Train Set)를 수신하여 인공 신경 처리망(170)로 전송한다. 훈련 세트는 학습 데이터를 나타낸다.
데이터 분리부(144)는 제어부(141)로부터 데이터 세트에서 각각의 타임스탬프와 CPU 사용량으로 이루어진 훈련 세트(Train Set)를 수신하여 인공 신경 처리망(170)로 전송한다.
데이터 분리부(144)는 제어부(141)로부터 데이터 세트에서 각각의 타임스탬프와 CPU 사용량으로 이루어진 테스트 세트(Test Set)를 수신하여 분류부(163)로 전송한다.
데이터 분리부(144)는 분산 병렬 처리가 가능한 데이터베이스부로 형성될 수 있다.
인공 신경 처리망(170)은 각각의 타임스탬프와 CPU 사용량으로 이루어진 훈련 세트(Train Set)를 인공 신경 처리망(170)에 입력하여 적용시켜 오류를 수정하고, 수정된 오류를 이용하여 CPU 자원 소요 예측 정보를 출력한다.
인공 신경 처리망(170)은 각각의 타임스탬프와 CPU 사용량으로 이루어진 훈련 세트(Train Set)를 인공 신경 처리망(170)에 입력하여 적용시켜 오류를 수정하고, 수정된 오류를 이용하여 각각의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보를 출력한다.
이때, 인공 신경 처리망(170)은 심층 컨볼루션 신경망(Deep Convolutional Neural Neworks, CNNs)을 이용하고, 입력층(171), 은닉층(172), 출력층(176)을 포함할 수 있다.
인공 신경 처리망(170)은 예측 분석을 위해 신경망 기반 모델을 사용한다.
인공 신경 처리망(170)은 입력층(171) x, 출력층(176) y 및 4개의 뉴런을 포함하는 임의의 양의 은닉층(172)을 포함한다.
각 레이어는 출력층(176)을 제외하고 밴드 W로 표시되는 편향 및 가중치 세트로 구성된다. 각 은닉층의 활성화 함수로 시그모이드(Sigmoid)함수를 사용한다. 모델의 예측 점수를 향상시키기 위해 입력 데이터의 편향 및 가중치 미세 조정이 수행된다. 훈련 과정에서 각 반복에는 다음 단계가 포함된다.
예측된 출력층(176) y의 계산을 포함하는 피드포워드(Feed-forward)와, 가중치와 편향을 업데이트하는 역전파(Back-propagation)의 두 단계로 구성된 신경망 모델의 훈련 과정을 수행한다.
인공 신경 처리망(170)은 예측 손실의 오차를 측정하기 위해 역전파가 수행하고, 예측 오차(손실)를 측정한다.
편향과 가중치에 대한 손실 함수의 미분은 가중치와 편향을 조정하기 위해 사용된다.
입력층(171)은 데이터 분리부(144)에 저장된 학습 데이터를 획득하고, 획득한 학습 데이터를 특징맵을 가지는 레이어로 저장한다. 여기서, 특징맵은 다수의 노드들이 2차원으로 배열된 구조를 가짐으로써 후술되는 은닉층(172)과의 연결을 용이하게 할 수 있다.
은닉층(172)은 상위 계층에 위치한 레이어의 특징맵을 획득하고, 획득한 특징맵으로부터 점차 높은 수준의 특징을 추출한다. 은닉층(172)은 하나 또는 그 이상으로 형성될 수 있으며 컨볼루션 레이어부(173), 풀링 레이어부(174) 및 풀리 커넥티드 레이어부(175)를 포함한다.
컨볼루션 레이어부(173)는 학습 데이터로부터 컨볼루션 연산을 수행하는 구성으로서, 복수의 입력 특징맵과 연결되는 특징맵을 포함한다.
풀링 레이어부(174)는 컨볼루션 레이어부(173)의 출력을 입력으로 받아 컨볼루션 연산, 즉 서브 샘플링 연산을 수행하는 구성이고, 은닉층(172)의 하위 계층에 위치한 컨볼루션 레이어부(173)가 가지는 입력 특징맵의 수와 동일한 수의 특징맵을 포함하며, 각각의 특징맵은 입력 특징맵과 일대일로 연결된다.
풀리 커넥티드 레이어부(175)는 컨볼루션 레이어부(173)의 출력을 입력으로 받아 출력층(130)에서 출력되는 각 카테고리별 출력에 맞게 학습하는 구성이고, 학습된 국소적 정보, 즉 특징들을 종합하여 추상적인 내용을 학습한다.
이때, 은닉층(172)이 풀링 레이어부(174)를 구비할 경우, 풀링 커넥티드 레이어부(175)는 풀링 레이어부(174)와 연결되며, 풀링 레이어부(174)의 출력으로부터 특징들을 종합하여 추상적인 내용을 학습한다.
출력층(176)은 소프트 맥스(soft-max) 등의 함수를 이용하여 분류하고자 원하는 각 카테고리별 출력을 확률 값으로 매핑한다. 이때, 출력층(176)에서 출력된 결과는 학습부(162) 또는 분류부(163)로 전달되어 오류역전파를 수행하거나 응답 데이터로 출력될 수도 있다.
학습부(162)는 지도 학습을 수행하는 것으로, 지도 학습은 학습 데이터에 기계학습 알고리즘을 적용하여 함수를 추론하고, 그 추론된 함수를 통해 해답을 찾는다.
학습부(162)는 지도 학습을 통해서 학습 데이터를 대표하는 선형 모델을 생성하고, 그 선형 모델을 통해 미래의 사건을 예측할 수 있다.
학습부(162)는 이전까지 학습된 데이터를 근거로 새로운 데이터가 기존에 학습된 데이터에 어떻게 분류되는지 판단한다.
학습부(162)는 데이터 분리부(144)로부터 데이터 세트에서 벡터화된 타임스탬프와 CPU 사용량으로 이루어진 훈련 세트(Train Set)를 인공 신경 처리망(170)의 학습을 수행하고, 유형별 딥러닝 특징 값을 이용하여 각각의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보를 학습한다.
학습부(162)는 유형별 딥러닝 특징 값을 이용하여 각각의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보를 인공 신경 처리망(170)에서 학습한다.
본 발명의 일실시예에서 인공 신경 처리망(170)의 학습은 지도 학습(supervised-learning)으로 이루어진다.
지도 학습은 학습 데이터와 그에 대응하는 출력 데이터를 함께 인공 신경 처리망(170)에 입력하고, 학습 데이터에 대응하는 출력 데이터가 출력되도록 연결된 간선들의 가중치를 업데이트 하는 방법이다. 일 예로, 본 발명의 인공 신경 처리망(170)은 델타 규칙 및 오류역전파 학습 등을 이용하여 인공뉴런들 사이의 연결 가중치를 업데이트 할 수 있다.
오류역전파(Error-back-propagation) 학습은 주어진 학습 데이터에 대해 전방계산(Feed-Forward)으로 오류를 추정한 후, 출력 레이어에서 시작하여 은닉층(172)과 입력층(171) 방향인 역방향으로 추정한 오류를 전파하고, 오류를 줄이는 방향으로 인공 뉴런들 사이의 연결 가중치를 업데이트한다.
인공 신경 처리망(170)은 입력층(171) - 은닉층(172) - 풀링 커넥티드 레이어부(175) - 출력층(176)을 통해 획득된 결과로부터 오차를 계산하고, 계산된 오차를 보정하기 위해 다시 출력층(176) - 풀링 커넥티드 레이어부(175) - 은닉층(172) - 입력층(171)의 순서로 오류를 전파하여 연결 가중치를 업데이트할 수 있다.
학습부(162)는 각각의 타임스탬프와 CPU 사용량으로 이루어진 훈련 세트(Train Set)를 입력 벡터가 되며, 입력층(171), 은닉층(172), 출력층(176)을 통과하면, 각각의 복수의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보를 출력 벡터로 생성하도록 지도 학습을 통해 학습된다.
학습부(162)는 인공 신경 처리망(170)을 이용하여 입력되는 각각의 타임스탬프와 CPU 사용량의 특징 값들이 입력 벡터가 되며, 입력층(171), 은닉층(172), 출력층(176)을 통과하면, 각각의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보를 출력 벡터로 생성하도록 지도 학습을 통해 학습된다.
학습부(162)는 각각의 복수의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보를 학습 데이터로 하여 인공 신경 처리망(170)과 연동하여 인공지능에 학습한다.
학습부(162)는 각각의 복수의 타임스탬프와 CPU 사용량에 대응하여 CPU 자원 소요 예측 정보를 예측하는 최적 자원 할당 모델을 기계 학습의 학습 데이터 셋으로 이용할 수 있다.
학습부(162)는 최적 자원 할당 모델을 메모리부(미도시)로 불러와서 각각의 타임스탬프와 CPU 사용량의 특징 벡터를 입력 데이터로 하여 추천 무릎 운동 각도를 예측하는 기계 학습한다.
인공 신경 처리망(170)은 입력값(각각의 타임스탬프와 CPU 사용량)이 입력되면, 출력값(각각의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보이 나와야 하는지 미리 알고 있다.
분류부(163)는 학습부(162)에서의 오류역전파를 통해 업데이트된 연결 가중치를 가지는 인공 신경 처리망(170)의 출력 데이터를 응답 데이터로 출력할 수 있다.
분류부(163)는 업데이트된 연결 가중치를 가지는 인공 신경 처리망(170)에 학습 데이터, 테스트 데이터 또는 학습에 사용되지 않은 새 데이터가 입력되면, 입력층(171) - 은닉층(172) - 풀링 커넥티드 레이어부(175) - 출력층(176)을 통해 출력된 결과를 획득하여 응답 데이터로 출력할 수 있다.
인공 신경 처리망(170)은 입력된 각각의 타임스탬프와 CPU 사용량에 대응하는 CPU 자원 소요 예측 정보를 최적화를 통해 딥러닝 기반 최적 자원 할당 모델을 생성한다.
학습부(162)는 복수의 타임스탬프와 CPU 사용량에 따라 인공 신경 처리망 내 레이어들 및 레이어들 간의 연결 강도에 관한 개별 요소 가중치를 다르게 적용할 수 있다.
학습부(162)는 CPU 자원 소요 예측 정보 결과를 출력 벡터로 생성하도록 지도 학습을 통해 학습되고, 입력층(171)에서 출력층(176)으로 방향으로 계산하고, 반대로 출력층(176)에서 입력층(171) 방향으로 계산하는 작업을 반복하면서 가중치를 수정하여 오차를 최소화한다.
분류부(163)는 테스트 데이터인 입력된 각각의 타임스탬프와 CPU 사용량을 인공 신경 처리망(170)의 최적 자원 할당 모델을 이용하여 응답 데이터의 결과값(CPU 자원 소요 예측 정보)으로 출력한다.
분류부(163)는 벡터화된 각각의 타임스탬프와 CPU 사용량에 대응하여 CPU 자원 소요 예측 정보를 출력한다.
분류부(163)는 테스트 데이터인 입력된 각각의 타임스탬프와 CPU 사용량을 인공 신경 처리망(170)의 최적 자원 할당 모델을 이용하여 CPU 자원 소요 예측 정보를 출력한다.
출력부(164)는 분류부(163)로부터 수신된 CPU 자원 소요 예측 정보를 화면에 표시한다.
제어부(141)는 출력부(164)로부터 CPU 자원 소요 예측 정보를 수신하여 자원 할당부(150)로 전송한다.
자원 할당부(150)는 인공지능엔진부(140)의 출력데이터인 CPU 자원 소요 예측 정보를 이용하여 최적의 타겟 가상화 클러스터를 선택한다.
매니저 가상머신(130)은 각 가상화 클러스터에서 동작 중인 서버에 하드웨어 장애가 발생하면, 이미지 이동부(132)에서 리소스 모니터링부(131)를 통해 수신한 가상머신 이미지 데이터를 목표 서버로 이동시키기 위해, 이미지 이동 저장부(151)에 저장한다.
매니저 가상머신(130)의 인공지능 엔진부(140)는 리소스 모니터링부(131)를 통해 에이전트 가상머신(120)으로부터 주기적으로 수집된 각각의 타임스탬프와 CPU 사용량을 최적 자원 할당 모델에 입력 데이터로 하고, 최적 자원 할당 모델의 출력 데이터로 CPU 자원 소요 예측 정보를 자원할당부(150)로 출력한다.
자원 할당부(150)는 인공지능 엔진부(140)의 출력데이터인 CPU 자원 소요 예측 정보를 이용하여 최적의 가상화 클러스터를 선택하고, 선택된 가상화 클러스터에 속한 서버의 에이전트 가상머신에게 이미지 이동부(132)를 통해 이미지 이동부(151)에 저장된 가상머신 이미지를 이동시켜 장애가 발생한 가상머신을 재배치하는 자원 할당을 수행한다. 재배치는 마이그레이션(Migration)과 동일한 용어이다.
최적의 가상화 클러스터의 선택은 마이그레이션하여 이동하려는 타겟 가상화 클러스터에서는 장애 시점 이후부터 조치 완료 후 복원할 때까지 최소 2 내지 4시간 동안 이동 후에도 안정적으로 운영될 수 있음이 보장되어야 한다. 타겟 가상화 클러스터에서 이미 동작 중인 서비스들이 자원 확장(Scale Out)하려 할 때, 마이그레이션으로 인한 자원 부족으로 기존 서비스들까지 파급 장애가 발생하지 않도록 기존 자원의 확장을 위한 미래 여유 공간도 확보해야 한다.
최적의 가상화 클러스터를 선택하는데 이용되는 CPU 자원 소요 예측 정보는 장애 시점 이후부터 조치 완료 후 복원할 때까지 CPU 자원 소요에 대한 미래 여유 공간 정보를 표시한다.
클라우드 시스템의 장점인 Scale-Out을 고려하면 장애시점에서 자원이 여유가 있는 가상화 클러스터보다 장애가 복구되어 원래 시스템으로 복원할 수 있을 때까지 가변 상황에도 안정적으로 자원을 사용할 수 있는 가상화 클러스터를 선택하는 것이 더욱 중요한 고려 사항이다.
도 6은 본 발명에 따른 장애복구 시나리오를 보여주는 개괄도이다.
매니저 가상머신(130)과 자원할당부(150)와 이미지저장부(151)를 포함한 VR-SAS는 각 가상화 클러스터에서 동작 중인 제1 서버(111a)에 하드웨어 장애가 발생하면, 해당 가상화 클러스터의 이미지 저장소(112)에 저장된 가상머신 이미지의 디스크 파일을 각 가상화 클러스터에서 동작 중인 제2 서버(111b)의 에이전트 가상머신(120)을 통해 다른 가상화 클러스터로 가상머신 마이그레이션(Migration)을 수행하여 자원의 재배치 서비스가 개시됨을 보여주고있다.
그런데 전역 가상화 리소스를 단순하게 재배치함에 있어서는 한계점이 발견될 수도 있다.
예를 들어, 통상적인 그룹웨어는 아침 출근시간, 점심시간 전후 그리고 퇴근시간 전후에는 모든 직원들이 접속하여 메일과 공지사항 등을 확인한다. 그리고 특별한 이슈(인사발령 등)가 발생하지 않으면, 부분적으로만 그룹웨어를 사용하는 특성이 있다.
이에 따라 그룹웨어 관점에서는 자원이 평소 대기 시간을 1이 필요하고, 출근 시간을 10이 필요하며, 그 외 시간에는 2~5가 필요하게될 때 자원 사용의 효율성을 갖기위해 외부 클러스터의 자원의 마이그레이션으로 자원 재배치를 시도하고자 하게된다.
그러나 위와 같은 그룹웨어 클러스터의 예처럼 하나의 클러스터는 목적에 맞추어 자원을 구성했는데, 단순히 외부 클러스터의 마이그레이션만으로 자원을 점유하게 된다면, 오히려 문제가 유발하는 원인이 된다.
왜냐하면 현재는 자원이 1처럼 보이지만, 2시간 후에 10이 필요한데, 이러한 고려없이 9가 비어 있다는 단순 이유만으로 이 클러스터에 장애가 발생한 서버의 자원을 재배치한다면 후속의 상황에 대처할 수 없는 경우가 발생하기 때문이다.
따라서 본 발명에서는 이러한 문제점에 대처하기 위하여 CPU 데이터를 활용하여 자원 소요를 예측하기 위한 구성까지도 고려하였다.
특히 본 발명의 실시예에서는 CPU 자원 소요 예측 정보가 자원의 미래 사용계획까지 예측하여 다른 클러스터로의 마이그레이션을 정확하게 판단할 수 있도록 인공 지능을 도입 활용하였다.
본 발명에서는 가상화 클러스터의 선택시 마이그레이션하여 이동하려는 타겟 가상화 클러스터에서는 장애 시점 이후부터 장애 조치 완료 후, 복원할 때까지 최소 2시간 내지 4시간 동안 안정적으로 운영될 수 있어야 하며, 타겟 가상화 클러스터에서 이미 동작 중인 서비스들을 늘리는 Scale Out하려 할 때, 마이그레이션으로 인한 자원 부족으로 인해 파급 장애가 발생하지 않도록 기존 자원의 미래 여유 공간도 확보해야 하는 다방면의 문제까지 고려하도록 했다.
CPU 사용량 자원 데이터는 저장 기록되어 딥러닝 시 사용하는 기초 정보가 된다. 이렇듯 딥러닝의 인공지능을 이용하는 이유는 단순한 통계에 의한 자원 데이터가 아닌 정확한 분석과 예측 의한 자원 재배치 데이터를 생성 활용하기 위해서 이다.
도 7 내지 도 8은 본 발명의 실시예에 따른 CPU 사용 예측을 나타낸 도면이다.
파란색은 0분부터 700분까지의 CPU 사용량이다.
오렌지 색은 딥러닝을 통해 0분부터 700분까지의 CPU 사용 예측을 몇 분 먼저 예측해 본 데이터이다.
장애가 발생한 시점은 0분이고, 해당 가상화 서버를 다른 가상화 서버로 옮기는데 해당 가상화 서버는 0분 시점에 30%의 CPU 사용율을 보이지만, 100분 후에 90% 이상 사용하게 되는 예시이다.
즉, 0분 시점에는 약 70%의 여유율이지만 100분 뒤에는 여유율이 없다는 의미를 나타낸다.
만약, 0분 시점에서 해당 가상화 서버로 20% 정도 사용하는 가상화 서버를 재배치시켰다면, 그 서버는 100분 뒤에 서비스 장애가 발생하게 된다.
이러함은 재배치한 가상화 서버와 원래 가상화 서버들 모두에서 발생하게 되어 최악의 선택이 되는 것이다.
즉, 0분 시점에서는 이 서버가 재배치할 수 있는 서버로 보이지만, 100분 뒤에 이 서버는 재배치할 수 없는 서버라는 의미이다.
2시간 내지 4시간을 기준하면 120분에서 240분을 버텨야 하는데, 이 서버는 대상에서 제외되었어야 하는 것을 의미한다. 미래 여유 공간이라는 것은 이런 의미이다. 정리하면, 딥러닝을 통해 0분부터 240분 이후의 CPU 사용 변화를 예측할 수 있으면(미래 여유 공간을 알 수 있으면) 최적의 서버를 선택하는데 확실하게 도움이 될 수 있다.
따라서 인공지능을 활용한 본 발명은 CPU 사용 예측을 통해 최적의 대상 가상화 클러스터를 선택하여 최적의 가상머신의 마이그레이션(Migration)을 확실하게 지원할 수 있는 효과를 갖게 된다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 가용성 시스템 110a: Tenant VC-A
110b: Tenant VC-B 110n: Tenant VC-N
111: 서버 112: 이미지 저장소
120: 에이전트 가상머신 130: 매니저 가상머신
131: 리소스 모니터링부 132: 이미지 이동부
140: 인공지능 엔진부 141: 제어부
142: 데이터 변환부 143: 패턴 확인부
144: 데이터 분리부 145: 데이터 전처리부
150: 자원 할당부 151: 이미지 이동 저장부
160: 학습 모델부 170: 인공 신경 처리망

Claims (7)

  1. 전체 가용 자산을 하나로 묶는 클러스터링(Clustering) 기법을 적용하여 가상화 클러스터를 각각 구성하고,
    상기 각각의 가상화 클러스터는 여러 대의 서버와 가상화 클러스터에 속한 각각의 서버들의 가상머신 이미지를 저장하는 이미지 저장소 및 시스템 자원 현황을 모니터링하는 에이전트 가상머신(Agent Virtual Machine)를 탑재하고,
    데이터 센터 내의 여러 대의 가상화 클러스터의 자원 사용 현황을 모니터링하고, 특정한 가상화 클러스터에 속한 서버에 장애가 발생하는 경우, 나머지 가상화 클러스터에 속한 서버들의 앞으로의 시간대별 CPU 사용률을 예측하는 기능을 탑재하고, 이를 기초로 자원 여유가 있는 가상화 클러스터에 속한 서버로 자원을 이동하는 매니저 가상머신(Manager Virtual Machine)과 매니저 가상머신과 연동되고 가상 이미지 데이터를 저장하는 이미지 이동 저장부를 포함하며,
    상기 매니저 가상머신은 상기 각각의 가상화 클러스터 등록된 서버들에 에이전트 모듈을 설치한 후, 운용체제 환경에서 분 단위로 동작하도록 등록하고, 서버의 자원 현황을 추출(Extract), 변환(Transform), 로드(Load)의 기능을 수행하여 JSON 형식의 데이터로 추출하는 리소스 모니터링부를 더 포함하고,
    상기 리소스 모니터링부로부터 각 클러스터에 소속된 인프라 서버 자원의 현황 데이터를 수신하여 저장 및 로딩 후, 딥러닝을 이용하여 타임스탬프와 상기 CPU 사용량을 최적 자원 할당 모델에 입력 데이터로 하고, 상기 최적 자원 할당 모델의 출력 데이터로 CPU 자원 소요 예측 정보를 출력하는 인공지능 엔진부를 더 포함하고,
    상기 인공지능 엔진부에서 출력한 CPU 자원 소요 예측 정보를 이용하여 최적의 가상화 클러스터를 선택하고, 상기 선택된 가상화 클러스터에 속한 서버에 장애가 발생한 서버의 가상머신 이미지를 이동시켜 장애가 발생한 가상머신을 재배치하여 자원의 할당을 수행하는 자원 할당부를 더 포함하고,
    상기 최적의 가상화 클러스터를 선택하는데 이용되는 CPU 자원 소요 예측 정보에는 장애 시점 이후부터 조치 완료 후 복원할 때까지 CPU 자원 소요에 대한 미래 여유 공간 정보가 표시되는 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템.
  2. 청구항 1에 있어서,
    상기 매니저 가상머신은 상기 각 가상화 클러스터에서 동작 중인 제1 서버에 하드웨어 장애가 발생하면, 해당 가상화 클러스터의 이미지 저장소에 저장된 가상머신 이미지의 디스크 파일을 상기 각 가상화 클러스터에서 동작 중인 제2 서버의 에이전트 가상머신을 통해 다른 가상화 클러스터로 가상머신 마이그레이션(Migration)을 수행하여 서비스를 개시하는 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템.
  3. 청구항 1에 있어서,
    상기 데이터에는 상기 서버를 식별하기 위한 IP 주소와, 데이터를 추출한 특정한 시각을 나타내는 타임스탬프(Timestamp)와, CPU와 메모리의 총량 및 사용량을 저장하고 있는 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템.
  4. 청구항 3에 있어서,
    상기 매니저 가상머신은 상기 리소스 모니터링부로부터 명령을 수신한 후, 대상 가상머신의 이미지 데이터를 이동시키는 이미지 이동부를 더 포함하는 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 자원 할당부는 상기 최적의 가상화 클러스터로 가상머신의 이미지 데이터를 이동시켜 서비스를 시작하도록 지원하는 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템.
  7. 삭제
KR1020220108507A 2022-08-29 2022-08-29 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템 KR102467522B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220108507A KR102467522B1 (ko) 2022-08-29 2022-08-29 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220108507A KR102467522B1 (ko) 2022-08-29 2022-08-29 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템

Publications (1)

Publication Number Publication Date
KR102467522B1 true KR102467522B1 (ko) 2022-11-17

Family

ID=84233233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220108507A KR102467522B1 (ko) 2022-08-29 2022-08-29 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템

Country Status (1)

Country Link
KR (1) KR102467522B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130083032A (ko) * 2011-12-28 2013-07-22 대전대학교 산학협력단 클라우드 환경에서 서비스품질 보장을 위한 서비스수준협약 관리방법
KR101569038B1 (ko) 2013-10-30 2015-11-13 에스코어 주식회사 가상 머신이 자동으로 확장 및 축소되는 클러스터에 대한 고가용성 부하 분산 방법 및 고가용성 부하 분산 장치
KR20180062403A (ko) * 2016-11-30 2018-06-08 제주대학교 산학협력단 가상머신의 마이그레이션을 수행하기 위한 방법 및 장치
KR20200102011A (ko) * 2019-01-31 2020-08-31 금오공과대학교 산학협력단 가상화 기반 고가용성 클러스터의 라이브 마이그레이션 최소화 방법
KR20210083465A (ko) * 2019-12-26 2021-07-07 연세대학교 산학협력단 가상머신 워크로드 클러스터링 예측을 활용한 높은 전력 효율성을 제공하는 다중 서버 관리 방법
KR20210149576A (ko) * 2019-04-30 2021-12-09 인텔 코포레이션 에지 컴퓨팅 배치에서 다중 엔티티 자원, 보안 및 서비스 관리

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130083032A (ko) * 2011-12-28 2013-07-22 대전대학교 산학협력단 클라우드 환경에서 서비스품질 보장을 위한 서비스수준협약 관리방법
KR101569038B1 (ko) 2013-10-30 2015-11-13 에스코어 주식회사 가상 머신이 자동으로 확장 및 축소되는 클러스터에 대한 고가용성 부하 분산 방법 및 고가용성 부하 분산 장치
KR20180062403A (ko) * 2016-11-30 2018-06-08 제주대학교 산학협력단 가상머신의 마이그레이션을 수행하기 위한 방법 및 장치
KR20200102011A (ko) * 2019-01-31 2020-08-31 금오공과대학교 산학협력단 가상화 기반 고가용성 클러스터의 라이브 마이그레이션 최소화 방법
KR20210149576A (ko) * 2019-04-30 2021-12-09 인텔 코포레이션 에지 컴퓨팅 배치에서 다중 엔티티 자원, 보안 및 서비스 관리
KR20210083465A (ko) * 2019-12-26 2021-07-07 연세대학교 산학협력단 가상머신 워크로드 클러스터링 예측을 활용한 높은 전력 효율성을 제공하는 다중 서버 관리 방법

Similar Documents

Publication Publication Date Title
US9542296B1 (en) Disk replacement using a predictive statistical model
Liu et al. Using proactive fault-tolerance approach to enhance cloud service reliability
EP3550426B1 (en) Improving an efficiency of computing resource consumption via improved application portfolio deployment
US10033570B2 (en) Distributed map reduce network
US9612767B2 (en) Context aware dynamic composition of migration plans to cloud
US9852230B2 (en) Asynchronous message passing for large graph clustering
CN101256516B (zh) 网格环境中的数据分布和任务实例
JP7223007B2 (ja) 学習済み動的制御複合システムを制御する方法
Tuli et al. Pregan: Preemptive migration prediction network for proactive fault-tolerant edge computing
Ragmani et al. Adaptive fault-tolerant model for improving cloud computing performance using artificial neural network
US11080159B2 (en) Monitor-mine-manage cycle
Yang et al. Computing at massive scale: Scalability and dependability challenges
US10936361B2 (en) Cloud and datacenter migration wave planning using analytics and flow modeling
US11409453B2 (en) Storage capacity forecasting for storage systems in an active tier of a storage environment
US11550672B1 (en) Machine learning to predict container failure for data transactions in distributed computing environment
Gomes et al. Cloud storage availability and performance assessment: a study based on NoSQL DBMS
Daradkeh et al. Modeling and optimizing micro-service based cloud elastic management system
CA3132644C (en) System and method of detecting application affinity using network telemetry
KR102467522B1 (ko) 클라우드 인프라 환경에서 전역 가상화 리소스를 공유하는 가용성 시스템
US10176441B2 (en) Intelligent spatial enterprise analytics
Balicki et al. Harmony search to self-configuration of fault-tolerant grids for big data
WO2020139072A1 (en) A method of migrating virtual machines
Ever Performability modelling of homogenous and heterogeneous multiserver systems with breakdowns and repairs
Singh et al. Resource grouping in grid environment towards the availability and reliability of computing service
Tuli et al. PreGAN+: semi-supervised fault prediction and preemptive migration in dynamic mobile edge environments

Legal Events

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