[go: up one dir, main page]

KR101540631B1 - 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체 - Google Patents

가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체 Download PDF

Info

Publication number
KR101540631B1
KR101540631B1 KR1020120156929A KR20120156929A KR101540631B1 KR 101540631 B1 KR101540631 B1 KR 101540631B1 KR 1020120156929 A KR1020120156929 A KR 1020120156929A KR 20120156929 A KR20120156929 A KR 20120156929A KR 101540631 B1 KR101540631 B1 KR 101540631B1
Authority
KR
South Korea
Prior art keywords
virtual cluster
resource
type
cluster
virtual
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020120156929A
Other languages
English (en)
Other versions
KR20140086436A (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 KR1020120156929A priority Critical patent/KR101540631B1/ko
Priority to PCT/KR2013/011694 priority patent/WO2014104634A1/en
Priority to US14/141,784 priority patent/US9571561B2/en
Publication of KR20140086436A publication Critical patent/KR20140086436A/ko
Application granted granted Critical
Publication of KR101540631B1 publication Critical patent/KR101540631B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

복수의 가상 머신으로 구성되는 가상 클러스터를 가상 클러스터의 자원 여유도 및 가상 클러스터의 타입에 기반하여 동적으로 확장하는 가상 클러스터 동적 확장 방법이 제공된다. 본 발명에 따른 가상 클러스터 동적 확장 방법은 가상 클러스터 서비스 시스템이, 하나 이상의 가상 머신을 포함하는 대상 가상 클러스터의 자원 여유도를 측정하는 단계, 상기 가상 클러스터 서비스 시스템이, 상기 자원 여유도를 바탕으로 하여 상기 대상 가상 클러스터의 확장 여부를 결정하는 단계, 및 상기 결정하는 단계에서 확장을 수행하는 것으로 결정된 경우, 상기 가상 클러스터 서비스 시스템이, 하나 이상의 가상 머신 인스턴스를 상기 대상 가상 클러스터에 추가 할당하는 단계를 포함한다. 이 때, 상기 추가 할당하는 단계는, 상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계, 및 상기 결정된 타입의 가상 머신 인스턴스를, 상기 결정된 개수만큼 상기 대상 가상 클러스터에 추가 할당하는 단계를 포함한다.

Description

가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체{System, method and recording medium recording the program thereof for dynamic expansion of the virtual cluster}
본 발명은 가상 클러스터의 동적 확장 방법, 시스템 및 그 프로그램이 저장된 기록매체에 관한 것이다. 보다 자세하게는, 가상 클러스터를 가상 클러스터 사용자의 설정 변경 없이도 가상 클러스터 자원 사용량에 따라 가상 클러스터 관리 시스템이 동적으로 확장하는 방법, 시스템과, 상기 동적으로 확장하는 방법을 실행하는 프로그램이 저장된 기록매체에 관한 것이다.
하이퍼바이저(hypervisor) 기술이 제공되면서 하나의 물리적인 서버에 복수의 가상 머신(virtual machine; VM)이 생성되어 복수의 가상 서버를 제공할 수 있게 되었다. 이러한 기술은 예를 들어 클라우드 컴퓨팅(cloud computing) 분야에 적용될 수 있다. 예를 들어 클라우드 컴퓨팅 서비스 사용자는 서비스 운영자가 제공하는 물리적인 서버 장치에 자신의 필요에 맞는 리소스를 할당 받은 가상 머신을 설립함으로써 서버 운영 비용을 절감할 수 있다. 하이퍼바이저는 하드웨어(H/W)를 가상화한 리소스(resource)를 관리하며, 상기 리소스 중 일부를 이용하여 가상 머신을 프로비저닝(provisioning) 한다. 가상 머신을 프로비저닝 하는 것은 가상 머신 인스턴스(VM instance)에 상기 가상 머신에 할당된 리소스를 연결해주는 것을 의미할 수 있다.
한편, 클라우드 컴퓨팅 서비스 제공자는 각각의 가상 머신 인스턴스 단위로 사용자에게 서비스를 제공할 수도 있으나, 복수의 가상 머신 인스턴스로 구성된 가상 클러스터 단위로 사용자에게 서비스를 제공할 수도 있다. 상기 가상 클러스터를 사용하게 되는 사용자는 가상의 서버 풀(server pool)을 운영하는 효과를 거둘 수 있으며, 물리적인 서버 풀을 운영하는 것에 비하여 관리 비용을 절감할 수 있고, 각각의 가상 머신 단위로 서비스를 이용하는 것에 비하여 대규모 연산 능력을 보유할 수 있으므로, 상기 가상 클러스터 서비스는 소위 빅데이터(big data)의 처리를 위한 적합한 형태의 클라우드 서비스이다.
가상 클러스터를 사용자에게 서비스 형태로 제공하는 솔루션이 제공되고 있다. 이러한 솔루션들은 가상화 인프라 자원을 활용하여 대규모 데이터를 수집 및 처리할 수 있는 하둡(Hadoop) 클러스터라는 가상 클러스터를 구축하여 사용자에게 제공한다. 그러나 제공되는 솔루션은 클라우드 인프라에서 제공되는 가상 머신들과 클라우드 스토리지를 활용하여 사용자 요구에 따라 가상 클러스터의 구축이 가능하나, 한번 구축된 다음에는 가상 클러스터의 크기 제어가 불가능하다는 문제점을 가진다.
한편, 일부 솔루션의 경우, 구축된 이후 사용자의 설정 수동 변경을 통하여 가상 서버 인스턴스의 추가 및 삭제가 가능하나, 처리해야 할 데이터 또는 작업량이 증가할 경우 가상 클러스터 크기에 대한 자동적인 확장이 이루어지지 않아 작업 처리 속도가 지연되거나 작업이 중단되어 데이터 손실이 발생하고 사용자 서비스 수준을 만족시키지 못하는 문제점이 있다.
가상화 기반 자원 관리 장치 및 방법과 가상화 기반 자원 관리가 가능한 컴퓨팅 시스템과 관련하여 한국 공개 특허 제2010-0073959호가 공개되어 있다. 그러나, 상기 공개 특허에는 가상 클러스터가 아닌 단일 가상 머신 기준의 자원 관리에 관한 구성만이 기재되어 있으며, 가상 머신 모니터링의 정보 역시 관리용 가상 머신의 네트워크 트래픽을 기준으로 시간 비용을 계산하여 관리용 가상 머신이 담당하는 가상 머신 자원의 규모를 결정하는 것에 불과하여, 가상 클러스터의 동적 확장과 관련된 문제점은 상기 특허에 의하여도 여전히 해결되지 못하고 있다.
본 발명이 해결하고자 하는 기술적 과제는 복수의 가상 머신으로 구성되는 가상 클러스터를 가상 클러스터의 자원 여유도 및 가상 클러스터의 타입에 기반하여 동적으로 확장하는 가상 클러스터 동적 확장 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 복수의 가상 머신으로 구성되는 가상 클러스터를 가상 클러스터의 자원 여유도 및 가상 클러스터의 타입에 기반하여 동적으로 확장하는 가상 클러스터 동적 확장 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 복수의 가상 머신으로 구성되는 가상 클러스터를 가상 클러스터의 자원 여유도 및 가상 클러스터의 타입에 기반하여 동적으로 확장하는 가상 클러스터 동적 확장 기능을 제공하는 컴퓨터 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.
상기 언급된 기술적 과제들을 해결하기 위한, 본 발명의 일 태양(ASPECT)에 따른 가상 클러스터 동적 확장 시스템은 하나 이상의 가상 머신을 포함하는 대상 가상 클러스터의 자원 여유도를 측정하여 확장 제어부에 제공하는 모니터부; 상기 자원 여유도를 바탕으로 하여 상기 대상 가상 클러스터의 확장 여부를 결정하며, 상기 대상 가상 클러스터의 확장을 결정한 경우, 상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 상기 대상 가상 클러스터에 추가 할당되어야 할 가상 머신 인스턴스의 타입 및 개수를 결정하는 확장 제어부; 및 상기 확장 제어부에 의하여 결정된 타입의 가상 머신 인스턴스가 상기 확장 제어부에 의하여 결정된 개수만큼 상기 대상 가상 클러스터에 추가 할당되도록 상기 대상 가상 클러스터에 대한 프로필 정보를 수정하는 가상 클러스터 구성부를 포함한다.
상기 가상 클러스터 동적 확장 시스템은 가상 클러스터 서비스를 제공하는 클라우드 서비스 관리 시스템 내에 구비될 수 있다.
일 실시예에 따르면, 상기 모니터부는, 상기 대상 가상 클러스터 시스템의, 제1 내지 n 자원 사용률(U_1 내지 U_n)을 측정하고, 상기 제1 내지 n 자원 사용률을 이용하여 상기 자원 여유도(U_AVG)를 측정하되, U_AVG = a1*(1 - U_1) + a2*(1 - U_2) + … + an*(1 - U_n), 단 a1+a2+…+an=1일 수 있다. 예를 들어, 상기 제1 자원은 CPU, 제2 자원은 메모리, 제3 자원은 스토리지 일 수 있다. 즉, 본 실시예에 따르면, 상기 자원 여유도는 대상 가상 클러스터의 타입에 따라 각 자원별 가중치를 달리하여 합산됨으로써, 측정될 수 있다.
일 실시예에 따르면, 상기 확장 제어부는 상기 대상 가상 클러스터에 포함된 가상 머신 인스턴스의 개수와, 상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율과, 상기 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율 중 적어도 하나를 반영하여, 상기 대상 가상 클러스터에 대한 한계치(Threshold value; TH)를 자동 조정하는 한계치 조정 모듈과, 상기 제공받은 자원 여유도와 상기 한계치를 비교하여, 상기 자원 여유도가 상기 한계치에 미달하는 경우 상기 대상 가상 클러스터를 확장하는 것으로 결정하는 확장 결정 모듈을 포함할 수 있다. 즉, 상기 대상 가상 클러스터에 대한 한계치는 자동 조정될 수 있다.
일 실시예에 따르면, 상기 모니터부는 상기 대상 가상 클러스터 시스템의 제1 자원 사용률(U_1) 및 제2 자원 사용률(U_2)을 더 측정하여 상기 확장 제어부에 더 제공하고, 동시에 상기 확장 제어부는 상기 확장 결정 모듈에 의하여 확장이 결정된 경우, 제1 자원에 대한 추가 필요 자원량(ADD_1)과, 제2 자원에 대한 추가 필요 자원량(ADD_2)을 연산하는 필요 자원량 연산 모듈을 더포함할 수 있다. 이 때, ADD_1 = (TH - U_AVG) * (1 - U_1) * (1+a), ADD_2 = (TH - U_AVG) * (1 - U_2) * (1+b)이고, a는 상기 대상 가상 클러스터의 타입이 제1 자원 중심 타입인 경우에만 0 초과의 기 설정된 값이고, b는 상기 대상 가상 클러스터의 타입이 제2 자원 중심 타입인 경우에만 0 초과의 기 설정된 값일 수 있다. 즉, 상기 대상 가상 클러스터의 타입은 필요 자원량의 연산 시에도 특정 자원에 대한 가중치로써 반영될 수 있다.
물론, 모니터링 대상 자원이 3개인 경우, 상기 필요 자원량 연산 모듈은 제3 자원에 대한 추가 필요 자원량(ADD_3)을 더 연산할 수 있다. 이 때, ADD_3 = (TH - U_AVG) * (1 - U_3) * (1+c), c는 상기 대상 가상 클러스터의 타입이 제3 자원 중심 타입인 경우에만 0 초과의 기 설정된 값일 수 있다.
일 실시예에 따르면, 상기 확장 제어부는 상기 필요 자원량 연산 모듈에 의하여 생성된 ADD_1, ADD_2를 만족시키도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하되, 추가되는 전체 가상 머신 인스턴스의 개수가 최소가 되고, 상기 대상 가상 클러스터의 타입에 대응하는 타입의 가상 머신 인스턴스가 최대로 포함되도록 결정하는 가상 머신 선택 모듈을 더 포함할 수 있다. 즉, 상기 대상 가상 클러스터의 타입은 추가 할당되는 가상 머신 인스턴스의 타입을 결정하는 데에도 반영될 수 있다.
상기 언급된 기술적 과제들을 해결하기 위한, 본 발명의 다른 태양(ASPECT)에 따른 컴퓨터로 읽을 수 있는 기록매체는, 하나 이상의 가상 머신을 포함하는 대상 가상 클러스터의 자원 여유도를 측정하는 단계, 상기 자원 여유도를 바탕으로 하여 상기 대상 가상 클러스터의 확장 여부를 결정하는 단계, 및 상기 결정하는 단계에서 확장을 수행하는 것으로 결정된 경우, 하나 이상의 가상 머신 인스턴스를 상기 대상 가상 클러스터에 추가 할당하는 단계를 실행하되, 상기 추가 할당하는 단계에서는, 상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계 및 상기 결정된 타입의 가상 머신 인스턴스를, 상기 결정된 개수 만큼 상기 대상 가상 클러스터에 추가 할당하는 단계를 실행하는 컴퓨터 프로그램을 기록한 것이다.
상기 언급된 기술적 과제들을 해결하기 위한, 본 발명의 또 다른 태양(ASPECT)에 따른 컴퓨터로 읽을 수 있는 기록매체는, 가상 클러스터 서비스 시스템이, 하나 이상의 가상 머신을 포함하는 대상 가상 클러스터의 자원 여유도를 측정하는 단계와, 상기 가상 클러스터 서비스 시스템이, 상기 자원 여유도를 바탕으로하여 상기 대상 가상 클러스터의 확장 여부를 결정하는 단계와 상기 결정하는 단계에서 확장을 수행하는 것으로 결정된 경우, 상기 가상 클러스터 서비스 시스템이, 하나 이상의 가상 머신 인스턴스를 상기 대상 가상 클러스터에 추가 할당하는 단계를 포함한다. 이 때, 상기 추가 할당하는 단계는 상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계, 및 상기 결정된 타입의 가상 머신 인스턴스를, 상기 결정된 개수만큼 상기 대상 가상 클러스터에 추가 할당하는 단계를 포함한다.
일 실시예에 따르면, 상기 자원 여유도를 측정하는 단계는, 상기 대상 가상 클러스터 시스템의, 제1 내지 n 자원 사용률(U_1 내지 U_n)을 측정하는 단계, 상기 자원 여유도(U_AVG)를 측정하되, U_AVG = a1*(1 - U_1) + a2*(1 - U_2) + … + an*(1 - U_n)이고, a1+a2+…+an=1인 단계를 포함한다. 이 때, 상기 (a1, a2, … , an)는 상기 대상 가상 클러스터의 타입에 대응하는 가중치 셋일 수 있다.
일 실시예에 따르면, 상기 대상 가상 클러스터의 확장 여부를 결정하는 단계는, 상기 가상 클러스터 서비스 시스템이, 상기 대상 가상 클러스터에 포함된 가상 머신 인스턴스의 개수와, 상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율과, 상기 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율 중 적어도 하나를 반영하여, 상기 대상 가상 클러스터에 대한 한계치를 자동 조정하는 단계 및 상기 측정된 자원 여유도가 상기 자동 조정된 한계치보다 작은 경우, 상기 대상 가상 클러스터를 확장하는 것으로 결정하는 단계를 포함할 수 있다. 즉, 상기 한계치는 자동 조정되는 값일 수 있다.
이 때, 상기 한계치를 자동 조정하는 단계는, 상기 가상 클러스터에 포함된 가상 머신 인스턴스의 개수를 반영하여 상기 한계치를 자동 조정하는 경우, 기 지정된 한계치 기본 값에 제1 가중치를 반영하여 상기 한계치를 증가 시키는 단계를 포함하되, 상기 제1 가중치는 (VM_MAX - VM_USER) / (VM_MAX - VM_MIN)가 증가할 수록 증가하는 값이고, VM_MAX는 상기 가상 클러스터 서비스 시스템에 의하여 서비스 되는 가상 클러스터 중, 가장 많은 가상 머신을 포함하는 가상 클러스터의 가상 머신 수이고, VM_MIN은 상기 가상 클러스터 서비스 시스템에 의하여 서비스 되는 가상 클러스터 중, 가장 적은 가상 머신을 포함하는 가상 클러스터의 가상 머신 수이며, VM_USER는 상기 대상 가상 클러스터에 포함된 가상 머신의 수일 수 있다.
이 때, 상기 한계치를 자동 조정하는 단계는, 상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율을 반영하여 상기 한계치를 자동 조정하는 경우, 기 지정된 한계치 기본 값에 제2 가중치를 반영하여 상기 한계치를 증가 시키는 단계를 포함하되, 상기 제2 가중치는 "접속 합산 시간/대상 가상 클러스터의 활성화 기간"이 증가할 수록 증가하는 값이고, 상기 접속 합산 시간은, 상기 대상 가상 클러스터의 사용자 계정의 상기 가상 클러스터 서비스 시스템에 대한 세션 연결 시간의 합산이고, 상기 대상 가상 클러스터의 활성화 기간은, 상기 대상 가상 클러스터가 최초 생성된 후 현재 시점까지의 기간일 수 있다.
이 때, 상기 한계치를 자동 조정하는 단계는, 상기 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율을 반영하여 상기 한계치를 자동 조정하는 경우, 기 지정된 한계치 기본 값에 제3 가중치를 반영하여 상기 한계치를 감소 시키는 단계를 포함할 수도 있다.
일 실시예에 따르면, 상기 자원 여유도를 측정하는 단계는, 상기 대상 가상 클러스터의 제1 자원 사용률 및 제2 자원 사용률을 각각 측정하는 단계; 및 상기 제1 자원 사용률 및 제2 자원 사용률을 이용하여 상기 대상 가상 클러스터의 자원 여유도를 연산하는 단계를 포함하고, 상기 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계는, 상기 자원 여유도 및 상기 제1 자원 사용률을 이용하여 제1 자원에 대한 추가 필요 자원량을 연산한 후, 상기 제1 자원에 대한 추가 필요 자원량을 상기 대상 가상 클러스터의 타입에 따른 제1 자원 가중치를 반영하여 조정하는 단계; 및 상기 자원 여유도 및 상기 제1 자원 사용률을 이용하여 제2 자원에 대한 추가 필요 자원량을 연산한 후, 상기 제2 자원에 대한 추가 필요 자원량을 상기 대상 가상 클러스터의 타입에 따른 제2 자원 가중치를 반영하여 조정하는 단계; 및 상기 제1 자원에 대한 추가 필요 자원량 및 제2 자원에 대한 추가 필요 자원량을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계는, 상기 자원 여유도를 이용하여 추가 필요 자원량을 연산하는 단계; 및 상기 추가 필요 자원량을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하되, 추가되는 전체 가상 머신 인스턴스의 개수가 최소가 되도록 결정하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계는, 상기 측정된 자원 여유도를 이용하여 추가 필요 자원량을 연산하는 단계; 상기 대상 가상 클러스터의 타입에 대응하는 타입의 가상 머신 인스턴스를 추가 할당될 가상 머신 인스턴스의 타입으로 결정하는 단계; 및 상기 추가 필요 자원량을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 개수를 결정하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 대상 가상 클러스터의 확장 여부를 결정하는 단계는, 상기 측정된 자원 여유도를 주기적으로 축적하는 단계와, 상기 주기적으로 축적된 자원 여유도를 바탕으로 기 지정된 수의 주기 이후에 자원 여유도의 한계치 초과 여부를 예측하는 단계와, 상기 예측 결과, 기 지정된 수의 주기 이후에 자원 여유도가 상기 한계치에 미달할 것으로 예측된 경우, 상기 대상 가상 클러스터의 확장을 수행하는 것으로 결정하는 단계를 포함할 수 있다. 즉, 자원 여유도를 주기적으로 축적하여, 자원 여유도의 추이를 통계적으로 추정함에 따라, 기 지정된 주기 이후에 자원이 부족할 것으로 예측된 경우, 미리 가상 클러스터에 가상 머신 인스턴스를 추가 할당할 수 있다.
상기와 같은 본 발명에 따르면, 가상 클러스터 사용자가 직접 설정을 변경하지 않고도, 가상 클러스터 서비스 시스템이 가상 클러스터에 포함된 각 가상 머신의 자원 사용률을 모니터 함으로써, 가상 클러스터의 자원이 부족한 경우, 자원을 스스로 확장해줄 수 있는 효과가 있다.
또한, 가상 클러스터의 자원 여유도와 비교되는 한계치가 시스템에 의하여 자동 조정됨으로써, 고정된 한계치와 비교되는 방식에 비하여 보다 적절한 시점에 자원 확장이 이뤄지는 효과가 있다.
또한, 가상 클러스터의 타입에 따른 각 자원 별 가중치가 적용되어 상기 자원 여유도가 연산됨으로써, 가상 클러스터의 타입에 따라 적절한 시점에 자원을 확장할 수 있는 효과가 있다.
또한, 자원 확장을 결정한 경우, 추가 필요한 자원량 및 가상 클러스터 확장에 투입되는 가상 머신의 타입도 상기 가상 클러스터의 타입에 따라 결정되므로, 가상 클러스터 타입에 따라 적절한 확장이 이뤄지는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템을 포함하는 가상 클러스터 서비스 환경의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템에서 관리하는 가상 클러스터의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템에서 관리하는 가상 클러스터의 개념을 보다 자세하게 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템의 블록 구성도이다.
도 5는 도 4에 도시된 가상 클러스터 동적 확장 시스템의 일부 모듈에 대한 상세 블록 구성도이다.
도 6은 본 발명의 다른 실시예에 따른 가상 클러스터 동적 확장 방법의 순서도이다.
도 7은 도 6의 일부 동작을 상세 설명하기 위한 순서도이다.
도 8은 도 6에 도시된 순서도와 적어도 일부 다른 동작을 수행하는 가상 클러스터 동적 확장 방법의 순서도이다.
도 9는 도 8에 도시된 가상 클러스터 동적 확장 방법을 설명하기 위한 개념도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 설명한다. 본 발명에 따른 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체는 설명된 실시예들을 참조하여 이해될 수 있을 것이다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
본 명세서에서 사용되는 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
먼저, 도 1을 참조하여 가상 클러스터 서비스 환경을 설명한다. 도 1의 가상 클러스터 서비스 환경(1)은 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템(10)을 포함하여 구성된다.
가상 클러스터 서비스 환경(1)은 복수의 물리 서버를 포함하는 서버 풀(20)에 구비된 서버 자원을 이용하여 가상 클러스터 서비스를 제공한다. 이미 설명한 바와 같이, 가상 클러스터 서비스는 복수의 가상 머신 인스턴스로 구성된 가상 클러스터 단위로 서비스가 제공되는 것으로, 상기 가상 클러스터를 사용하게 되는 사용자는 가상의 서버 풀(server pool)을 운영하는 효과를 거둘 수 있으며, 물리적인 서버 풀을 운영하는 것에 비하여 관리 비용을 절감할 수 있다.
사용자는 네트워크를 통하여 자신의 단말(30)으로 서버 풀(20)에 접속하여, 자신의 가상 클러스터에 대한 세션을 연결한다. 사용자는 자신의 가상 클러스터에서 실행될 프로그램들에 대한 설치, 설정 변경, 재구성 등의 작업을 상기 세션을 통하여 수행할 수 있다.
가상 클러스터 동적 확장 시스템(10)은 서버 풀(20)에 연결되어 가상 클러스터의 크기를 동적으로 확장한다. 이 때, 확장 시점은 각 가상 클러스터의 자원 여유도를 기준으로 결정될 수 있으며, 자원 여유도가 한계치에 못 미치는 경우, 소정의 가상 머신이 해당 가상 클러스터에 추가 할당될 수 있다.
가상 클러스터 동적 확장 시스템(10)은 가상 클러스터의 사용자로부터 동적 확장 기능을 이용할 것인지에 대한 확인을 받은 후에는, 사용자의 조작이 없더라도 가상 클러스터의 크기를 스스로 확장시킬 수 있다.
이하, 본 발명에서 가상 클러스터의 크기를 확장시키는 것은, 가상 클러스터에 가상 머신을 추가 할당함으로써, 가상 클러스터에 할당된 가상 하드웨어 자원을 늘리는 것을 의미한다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템에서 관리하는 가상 클러스터의 개념을 설명하기 위한 도면이다. 도 2에 따르면, 예를 들어, 서버 풀(20)에 포함된 물리 서버들을 이용하여 5개의 가상 클러스터(21, 22, 23, 24, 25)가 서비스 될 수 있다. 도 2에는 하나의 물리 서버가 둘 이상의 가상 클러스터에 속하게 되는 경우가 도시되어 있는데, 이는 도 3에 도시된 바와 같이, 하나의 물리 서버에 포함된 하드웨어 자원을 이용하여 2 이상의 가상 머신이 프로비저닝 될 수 있고, 각각의 가상 머신이 서로 다른 가상 클러스터에 속할 수 있기 때문이다.
즉, 도 2 내지 3을 참조하면, 각 가상 클러스터는 복수의 가상 머신으로 구성될 수 있으며, 하나의 가상 클러스터에서 사용할 수 있는 전체 시스템 자원은 상기 가상 클러스터에 포함된 가상 머신 각각이 할당 받은 시스템 자원의 크기 또는 상기 가상 클러스터에 포함된 가상 머신의 개수에 의하여 결정될 수 있는 점을 이해할 수 있을 것이다.
이하, 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템의 구성 및 동작에 대하여 도 4 내지 5를 참조하여 설명하기로 한다. 도 4는 본 발명의 일 실시예에 따른 가상 클러스터 동적 확장 시스템(10)의 블록 구성도이다. 도 4에 도시된 바와 같이, 본 실시예에 따른 가상 클러스터 동적 확장 시스템(10)은 확장 제어부(102), 모니터부(104), 가상 클러스터 구성부(106) 및 가상 머신 프로비저닝부(108)를 포함할 수 있다.
서버 풀(20)에 연결된 가상 클러스터 동적 확장 시스템(10)은, 서버 풀(20)에 구성된 각각의 가상 클러스터(21, 22, 23, 24, 25)에 대하여 자원 사용량을 연산한다. 또한, 가상 클러스터 동적 확장 시스템(10)은 상기 자원 사용량을 바탕으로 자원 여유도를 연산한다.
또한 가상 클러스터 동적 확장 시스템(10)은 각각의 가상 클러스터(21, 22, 23, 24, 25)에 대하여 자원 여유도를 기준으로 가상 클러스터의 확장 여부를 결정한다. 특정 가상 클러스터에 대하여 확장이 결정된 경우, 하나 이상의 가상 머신이 확장이 결정된 가상 클러스터에 추가 할당 되는데, 이 때 추가 할당될 가상 머신 인스턴스의 타입 및 개수는 상기 가상 클러스터의 타입과 상기 자원 여유도를 반영하여 결정한다.
이하, 본 발명에서 언급되는 "가상 클러스터의 타입"의 의미에 대하여 설명한다. 가상 클러스터 사용자는 가상 클러스터의 생성을 요청하면서, 가상 클러스터의 타입을 지정할 수 있다. 상기 타입은, 예를 들어 생성될 가상 클러스터를 통하여 수행될 프로그램의 특성과 관련된 것이다. 예를 들어, 상기 수행될 프로그램이 주로 CPU 연산을 요하는 것이라면 상기 가상 클러스터의 타입은 CPU 위주 타입으로 지정될 수 있을 것이고, 상기 수행될 프로그램이 많은 메모리 저장 영역을 필요로 하는 것이라면 상기 가상 클러스터의 타입은 메모리 위주 타입으로 지정될 수 있을 것이며, 상기 수행될 프로그램이 많은 스토리지 공간을 필요로 하는 것이라면 상기 가상 클러스터의 타입은 스토리지 위주 타입으로 지정될 수 있을 것이다. 즉, 상기 타입은 생성될 가상 클러스터가 어떤 하드웨어 자원을 강화시킨 것인지를 의미할 수 있다.
"하드웨어 자원을 강화"시킨 것은, 표준 하드웨어 구성에 비하여 특정 하드웨어 자원의 성능이 나머지 하드웨어 자원의 성능보다 비교적 더 뛰어난 점을 의미한다. 예를 들어, CPU 자원이 강화된 타입의 가상 클러스터는 표준 가상 머신 사양에 비하여 많은 가상 CPU 코어를 할당 받은 가상 머신들을 포함하여 구성될 수 있을 것이고, 스토리지 자원이 강화된 타입의 가상 클러스터는 표준 가상 머신 사양에 비하여 많은 가상 스토리지를 할당 받은 가상 머신들을 포함하여 구성될 수 있을 것이다.
일부 실시예에 따르면, 2 이상의 하드웨어 자원을 동시에 강화시킨 가상 클러스터 타입도 존재할 수 있다. 예를 들어, CPU 및 메모리 자원을 동시에 강화시킨 타입, CPU 및 스토리지 자원을 동시에 강화시킨 타입 및 메모리 및 스토리지 자원을 동시에 강화시킨 가상 클러스터 타입도 존재할 수 있다.
이하, 설명의 편의를 위하여, 제n 자원을 강화시킨 가상 클러스터의 타입을 "제n 자원 중심 타입"으로 지칭하기로 한다.
가상 클러스터 타입의 의미를 반영하면, 본 실시예에 따른 가상 클러스터 동적 확장 시스템(10)은 가상 클러스터의 크기를 자원 여유도에 따라 동적으로 확장시킴에 있어서, 상기 가상 클러스터가 어떠한 시스템 자원을 위주로 하는 것인지를 반영하는 특징을 이해할 수 있을 것이다. 이하, 본 실시예에 따른 가상 클러스터 동적 확장 시스템(10)의 각 구성요소들의 동작에 대하여 설명한다. 이하, 설명의 편의를 위하여, 서버 풀(20)에 포함된 전체 가상 클러스터 중, 모니터링 대상이 되는 하나의 가상 클러스터를 "대상 가상 클러스터"라 지칭하여, 나머지 가상 클러스터와 구분하기로 한다.
모니터부(104)는 대상 가상 클러스터의 자원 여유도(U_AVG)를 측정하여 확장 제어부(102)에 제공한다. 자원 여유도(U_AVG)는 상기 대상 가상 클러스터 전체적으로 여유 자원이 어느 정도 되는지를 나타내는 퍼센트 단위의 값일 수 있다.
모니터부(104)는 대상 가상 클러스터 전체에 대한 상기 자원 여유도 뿐만 아니라, 대상 가상 클러스터의 각 자원별 사용률(U_1, U_2, … , U_n)을 측정하여 확장 제어부(102)에 더 제공할 수도 있다. 도 4에는 제n 자원의 사용률이 U_n의 형태로 표시되어 있다. 예를 들어, CPU의 사용률이 U_1이고, 메모리의 사용률이 U_2이며, 스토리지의 사용률이 U_3일 수 있다.
모니터부(104)는 U_n을 아래와 같이 측정한다.
Figure 112012109266214-pat00001
상기 RESn_i는 가상 머신 i의 제n 자원에 대한 사용률(%)을 의미하고, #VM은 대상 가상 클러스터에 포함된 가상 머신 수를 의미한다. 따라서, U_n은 대상 가상 클러스터 내의 제n 자원에 대한 각 가상 머신 별 평균 사용률을 의미한다.
모니터부(104)는 자원 여유도(U_AVG)를 U_n을 바탕으로 아래와 같이 측정할 수 있다.
U_AVG = a1*(1 - U_1) + a2*(1 - U_2) + … + an*(1 - U_n), 단, a1+a2+…+an=1
a1, a2, a3, … ,an은 가상 클러스터의 타입에 따라 정해지는 가중치이다. 즉, (a1, a2, … , an)는 상기 대상 가상 클러스터의 타입에 대응하는 가중치 셋이다. 예를 들어, CPU의 사용률이 U_1이고, 메모리의 사용률이 U_2이며, 스토리지의 사용률이 U_3인 경우, U_AVG = a1*(1 - U_1) + a2*(1 - U_2) + a3*(1 - U_3)인데, 대상 가상 클러스터가 CPU 강화 타입인 경우, a1이 다른 가중치(a2, a3)에 비하여 높을 것이고, 대상 가상 클러스터가 메모리 강화 타입인 경우, a2가 다른 가중치(a1, a3)에 비하여 높을 것이며, 대상 가상 클러스터가 스토리지 강화 타입인 경우, a3가 다른 가중치(a1, a2)에 비하여 높을 것이다.
확장 제어부(102)는 상기 측정된 자원 여유도를 제공받고, 상기 자원 여유도를 바탕으로 하여 상기 대상 가상 클러스터의 확장 여부를 결정하며, 상기 대상 가상 클러스터의 확장이 결정된 경우, 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하고, 결정된 타입의 가상 머신 인스턴스를 결정된 개수만큼 프로비저닝하도록 가상 머신 프로비저닝부(108)를 제어하고, 프로비저닝된 가상 머신 인스턴스를 상기 대상 가상 클러스터에 추가 할당하도록 가상 클러스터 구성부(106)를 제어한다.
가상 머신 프로비저닝부(108)는 상기 확장 제어부의 제어에 따라 지정된 타입의 가상 머신 인스턴스를 지정된 개수만큼 종래 기술에 따라 프로비저닝 하여, 프로비저닝된 가상 머신 인스턴스에 대한 정보를 제공한다. 가상 머신 프로비저닝부(108)는 서버 풀(20)의 사용 가능한 잔여 하드웨어 리소스를 조회하여, 생성되어야 할 가상 머신에 할당되어야 할 리소스가 남아 있는지 체크한다. 만약 충분한 리소스가 남아 있다면, 가상 머신 프로비저닝부(108)는 종래 기술에 따라 가상 머신을 프로비저닝 한다.
가상 클러스터 구성부(106)는 서버 풀(20)에 포함된 각 가상 클러스터의 프로필 정보를 관리한다. 상기 프로필 정보는 적어도 각 가상 클러스터에 포함되는 가상 머신 인스턴스에 대한 정보를 포함할 수 있다. 상기 프로필 정보는 각 가상 클러스터에 포함되는 가상 머신 인스턴스의 연결 순서 정보를 더 포함할 수도 있다.
가상 클러스터 구성부(106)는 확장 제어부(102)의 제어에 따라, 상기 가상 머신 프로비저닝부로부터 제공받은 프로비저닝된 가상 머신 인스턴스에 대한 정보를 참조하여, 상기 프로비저닝된 가상 머신 인스턴스가 상기 대상 가상 클러스터에 추가 할당되도록 상기 대상 가상 클러스터에 대한 프로필 정보를 수정한다.
이하, 도 5를 참조하여 확장 제어부(102)의 상세 구성에 대하여 보다 자세히 설명한다. 도 5에 도시된 바와 같이, 확장 제어부(102)는 한계치 조정 모듈(120), 확장 결정 모듈(122), 필요 자원량 연산 모듈(124), 가상 머신 선택 모듈(126)을 포함할 수 있다.
먼저, 확장 결정 모듈(122)은 모니터부(104)에서 제공받은 자원 여유도(U_AVG)와 한계치(TH)를 비교하여, 상기 자원 여유도가 상기 한계치에 미달하는 경우 상기 대상 가상 클러스터를 확장하는 것으로 결정한다.
한계치 조정 모듈(120)은 상기 한계치를 상황에 따라 자동 조정하는 모듈이다. 한계치 조정 모듈(120)은 상기 대상 가상 클러스터에 포함된 가상 머신 인스턴스의 개수와, 상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율과, 상기 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율 중 적어도 하나를 반영하여, 상기 대상 가상 클러스터에 대한 한계치(TH)를 자동 조정한다.
이하, 한계치 조정 모듈(120)의 동작에 대하여 보다 자세히 설명한다.
먼저, 한계치 조정 모듈(120)은 기 설정된 한계치 기본 값(TH_BASE)을 상기 한계치(TH)로 초기 세팅 한다. 상기 한계치 기본 값은 시스템 관리자에 의하여 설정된 값일 수 있다.
한계치 조정 모듈(120)은 상기 한계치 기본 값에 제1 가중치(th1)를 반영하여 상기 한계치를 증가 시킬 수 있다. 상기 제1 가중치는 (VM_MAX - VM_USER) / (VM_MAX - VM_MIN)가 증가할 수록 증가하는 값이다. 이 때, VM_MAX는 상기 가상 클러스터 서비스 시스템에 의하여 서비스 되는 가상 클러스터 중, 가장 많은 가상 머신을 포함하는 가상 클러스터의 가상 머신 수이고, VM_MIN은 상기 가상 클러스터 서비스 시스템에 의하여 서비스 되는 가상 클러스터 중, 가장 적은 가상 머신을 포함하는 가상 클러스터의 가상 머신 수이며, VM_USER는 상기 대상 가상 클러스터에 포함된 가상 머신의 수이다.
한계치 조정 모듈(120)이 상기 한계치 기본 값에 제1 가중치(th1)를 반영하는 이유는 이미 많은 가상 머신을 포함하는 가상 클러스터보다는 적은 가상 머신을 포함하는 가상 클러스터에 더 많은 자원을 할당하여, 서비스 사용자간의 형평성을 도모하기 위함이다.
한계치 조정 모듈(120)은 상기 한계치 기본 값에 제2 가중치(th2)를 반영하여 상기 한계치를 증가 시킬 수도 있다. 상기 제2 가중치는 "접속 합산 시간/대상 가상 클러스터의 활성화 기간"이 증가할 수록 증가하는 값이다. 이 때, 상기 접속 합산 시간은, 상기 대상 가상 클러스터의 사용자 계정의 상기 가상 클러스터 서비스 시스템에 대한 세션 연결 시간의 합산이고, 상기 대상 가상 클러스터의 활성화 기간은, 상기 대상 가상 클러스터가 최초 생성된 후 현재 시점까지의 기간이다.
한계치 조정 모듈(120)이 상기 한계치 기본 값에 제2 가중치(th2)를 반영하는 이유는 사용자가 접속되어 있는 시간이 긴 가상 클러스터일수록 활성화된 클러스터인 것으로 보아 더 많은 자원을 할당하기 위함이다.
한계치 조정 모듈(120)은 상기 한계치 기본 값에 제3 가중치(th3)를 반영하여 상기 한계치를 감소 시킬 수도 있다. 상기 제3 가중치는 서버 풀(20)이 제공할 수 있는 가상 머신 인스턴스 전체 개수(VM_TOTAL)에 대한 기 할당된 사용 가상 머신 인스턴스 수(VM_USED)의 비율을 반영한다. 상기 제3 가중치는 "VM_USED/VM_TOTAL"에 비례한다.
한계치 조정 모듈(120)이 상기 한계치 기본 값에 제3 가중치(th3)를 반영하는 이유는, 서버 풀(20)의 자원이 얼마 남지 않은 경우, 가상 클러스터의 확장을 억제하여, 서버 풀(20)의 자원이 고갈되는 것을 최대한 방지하기 위함이다.
한계치 조정 모듈(120)은 상기 제1 내지 3 가중치 중 하나 이상을 상기 한계치 기본 값에 반영할 수 있다. 예를 들어, 상기 제1 내지 3 가중치를 동시에 반영하는 경우, 한계치 조정 모듈(120)에 의하여 자동 조정된 이후의 한계치(TH)는 도 5에 도시된 바와 같이, 아래와 같이 연산될 것이다.
TH = TH_BASE * (1+th1) * (1+th2) * (1-th3)
필요 자원량 연산 모듈(124)은 확장 결정 모듈에 의하여 확장이 결정된 경우, 제1 자원에 대한 추가 필요 자원량(ADD_1)과, 제2 자원에 대한 추가 필요 자원량(ADD_2)을 연산한다. 제1 내지 2 자원 뿐만 아니라, 제3 내지 n 자원에 대한 추가 필요 자원량(ADD_3, ADD_4, … , ADD_n)도 연산될 수 있다. 이 때, ADD_1 = (TH - U_AVG) * (1 - U_1) * (1+a), ADD_2 = (TH - U_AVG) * (1 - U_2) * (1+b)이고, a는 상기 대상 가상 클러스터의 타입이 제1 자원 중심 타입인 경우에만 0 초과의 기 설정된 가중치로 지정되고, b는 상기 대상 가상 클러스터의 타입이 제2 자원 중심 타입인 경우에만 0 초과의 기 설정된 가중치로 지정될 것이다. 마찬가지로, 제3 자원에 대한 추가 필요 자원량(ADD_3)이 연산되어야 하는 경우, ADD_2 = (TH - U_AVG) * (1 - U_3) * (1+c)이고, c는 상기 대상 가상 클러스터의 타입이 제3 자원 중심 타입인 경우에만 0 초과의 기설정된 가중치로 지정될 것이다.
제n 자원에 대한 추가 필요 자원량(ADD_n)은 각 자원 종류 별로 지정된 단위로 연산될 수 있다. 예를 들어, CPU는 1GHz 클럭을 가진 한 개의 코어를 1 단위로 할 수 있고, 메모리는 1G 바이트를 1 단위로 할 수 있으며, 스토리지는 1T 바이트를 1 단위로 할 수 있다.
가상 머신 선택 모듈(126)은 필요 자원량 연산 모듈(124)에 의하여 생성된 ADD_1, ADD_2, ADD_3, … , ADD_n을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정한다.
이 때, 가상 머신 선택 모듈(126)은, 추가되는 전체 가상 머신 인스턴스의 개수가 최소가 되도록 결정할 수 있다.
가상 머신 인스턴스 타입 CPU 메모리 스토리지
CPU 중심 타입 CPU 4개 X 4코어 X 2GHz 8GB 500GB
메모리 중심 타입 CPU 2개 X 2코어 X 2GHz 32GB 500GB
스토리지 중심 타입 CPU 2개 X 2코어 X 2GHz 8GB 4TB
예를 들어, 상기 표 1과 같이 가상 머신 인스턴스 타입이 제공되는 경우이고, 필요 자원량 연산 모듈(124)에 의하여 생성된 ADD_CPU(CPU 필요자원량)가 32 단위, ADD_MEM(메모리 필요자원량)이 8단위, 스토리지 0.5 단위인 경우, 가상 머신 선택 모듈(126)은 CPU 중심 타입을 하나 선택하는 것만으로 상기 ADD_CPU를 만족시킬 수 있다. 참고로, CPU 중심 타입의 CPU는 4X4X2 = 32 단위이다.
한편, 가상 머신 선택 모듈(126)은 대상 가상 클러스터의 타입에 대응하는 타입의 가상 머신 인스턴스가 최대로 포함되도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정할 수도 있다. 예를 들어, 대상 가상 클러스터의 타입이 CPU 중심 타입인 경우에는, 추가 할당되는 가상 머신 인스턴스 역시 CPU 중심 타입인 것이 바람직하다.
가상 머신 선택 모듈(126)은 CPU 중심 타입의 가상 머신 인스턴스를 우선하여 추가 할당하고, CPU 중심 타입의 가상 머신 인스턴스가 더 이상 생성될 수 없거나, CPU 중심 타입의 가상 머신 인스턴스에 의하여 ADD_CPU이 모두 채워졌으나 다른 자원을 더 채워야 하는 경우 등의 예외 사항이 발생했을 때, CPU 중심 타입 이외의 가상 머신 인스턴스를 추가 할당할 수 있다.
이하, 본 발명의 다른 실시예에 따른 가상 클러스터 동적 확장 방법에 대하여 도 6 내지 8을 참조하여 설명한다. 본 실시예에 따른 가상 클러스터 동적 확장 방법은 가상 클러스터 동적 확장 시스템(10)에 의하여 수행될 수 있으나, 꼭 수행 주체가 가상 클러스터 동적 확장 시스템(10)으로 한정되지는 않는다.
먼저, 도 6을 참조하여 본 실시예에 따른 가상 클러스터 동적 확장 방법에 대하여 설명한다.
먼저, 대상 가상 클러스터(VC)에 대하여, 대상 가상 클러스터에 포함된 각 VM의 각 자원 별 자원 사용률을 모니터링 한다(S100). 각 VM의 자원 사용률은 서버 풀(20)에 포함된 각 물리 서버의 하이퍼바이저로부터 얻을 수 있다.
다음으로, 대상 가상 클러스터(VC)의 자원 여유도(U_AVG)를 연산한다(S110). 자원 여유도를 연산하는 것은, 대상 가상 클러스터의 각 자원 별 사용률(U_n)을 측정하고, 그 후에 상기 각 자원 별 사용률을 이용하여 상기 자원 여유도를 연산하는 것을 포함할 수 있다. 이 때, 각 자원 별 사용률에 대하여 상기 대상 가상 클러스터의 타입에 따른 가중치가 부여될 수 있다. 상기 자원 여유도 연산 수식은 아래와 같다.
(1) U_AVG = a1*(1 - U_1) + a2*(1 - U_2) + … + an*(1 - U_n), 단, a1+a2+…+an=1 (a1, a2, a3, … ,an은 가상 클러스터의 타입에 따라 정해지는 가중치)
(2)
Figure 112012109266214-pat00002
단, RESn_i는 대상 가상 머신에 포함된 가상 머신 i의 자원 n 사용률(%), #VM은 대상 가상 클러스터 내의 가상 머신 수
다음으로, 상기 자원 여유도를 바탕으로 상기 대상 가상 클러스터의 확장 여부를 결정한다(S120).
도 7을 참조하여 보다 자세하게 설명하면, 먼저 한계치는 시스템에 의하여 자동 조정된다(S122). 상기 한계치는 상기 대상 가상 클러스터에 포함된 가상 머신 인스턴스의 개수를 반영한 제1 가중치와, 상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율을 반영한 제2 가중치와, 상기 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율을 반영한 제3 가중치 중 적어도 하나를 반영하여, 자동 조정될 수 있다.
예를 들어, 상기 한계치(TH)는 기 설정된 한계치 기본 값(TH_BASE)으로 초기 세팅된 후, 제1 가중치(th1)를 반영하여 증가되고, 제2 가중치(th2)를 반영하여 다시 증가되며, 제3 가중치(th3)를 반영하여 감소될 수 있다.
다음으로, 상기 자원 여유도가 상기 한계치(TH) 미만인 경우, 상기 대상 가상 클러스터를 확장하는 것으로 결정한다(S124).
다시 도 6으로 돌아와서 설명하면, 상기 대상 가상 클러스터의 확장이 필요한 것으로 결정된 경우, 각 하드웨어 자원 별로 추가적으로 필요한 자원량을 연산한다(S140). 기본적으로, 추가 필요한 자원량은 상기 한계치(TH)와 상기 자원 여유도(U_AVG)의 차이값에 (1 - 각 자원 별 사용률)을 곱한 값으로 연산된다. 다만, 상기 대상 가상 클러스터의 타입에 따른 가중치가 추가 적용될 수 있다.
예를 들어, 제1 자원에 대한 추가 필요 자원량(ADD_1)과, 제2 자원에 대한 추가 필요 자원량(ADD_2)을 연산하는 경우, ADD_1 = (TH - U_AVG) * (1 - U_1) * (1+a), ADD_2 = (TH - U_AVG) * (1 - U_2) * (1+b)일 수 있다.
이 때, a는 상기 대상 가상 클러스터의 타입이 제1 자원 중심 타입인 경우에만 0이 아닌 기 설정된 가중치로 지정되고, 상기 대상 가상 클러스터의 타입이 제1 자원 중심 타입이 아닌 경우에는 0으로 지정될 수 있다. 또한, b는 상기 대상 가상 클러스터의 타입이 제2 자원 중심 타입인 경우에만 0이 아닌 기 설정된 가중치로 지정되고, 상기 대상 가상 클러스터의 타입이 제2 자원 중심 타입이 아닌 경우에는 0으로 지정될 수 있다.
다음으로, 상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 추가 할당되어야 할 가상 머신 인스턴스의 타입 및 개수가 선택된다(S150). 이 때, 추가 필요 자원량을 만족시키도록 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하되, 추가되는 전체 가상 머신 인스턴스의 개수가 최소가 되도록 결정할 수 있다. 일 실시예에 따르면, 상기 추가 필요 자원량을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 개수를 결정할 수도 있다.
다음으로, 추가 할당될 가상 머신 인스턴스의 프로비저닝이 수행되고(S160), 프로비저닝된 가상 머신 인스턴스는 대상 가상 클러스터에 추가 할당된다(S170). 그 결과 상기 대상 가상 클러스터는 더 많은 시스템 자원을 사용할 수 있게 되므로, 상기 자원 여유도가 증가하게 될 것이다.
도 8은 도 6에 도시된 순서도와 적어도 일부 다른 동작을 수행하는 가상 클러스터 동적 확장 방법의 순서도이다. 본 실시예에 따르면, 자원 여유도 값이 주기적으로 연산되고(S110), 주기적으로 연산된 자원 여유도 값이 축적되고 그 추이가 통계적으로 분석된다(S112). 다음으로, 상기 자원 여유도 값의 예측 결과를바탕으로 상기 대상 가상 클러스터의 확장 여부가 결정된다(S114).
통계적 분석(S112)의 결과로, 예를 들어, 상기 대상 가상 클러스터의 자원 여유도 값이 도 9에 도시된 것과 같이 선형(linear)으로 감소하는 것으로 분석될 수 있을 것이다. 최근의 자원 여유도 측정이, 제5 주기의 것이었다면, 통계적 분석 결과, 적어도 제8 주기 시점에는 자원 여유도 값이 한계치인 30% 미만으로 떨어질 것이 예측된다. 본 실시예에 따르면, 미리 상기 대상 가상 클러스터를 확장하여 자원 여유도 값이 한계치 밑으로 떨어지지 않도록 미리 대응할 수 있다.
본 실시예에 따르면, 상기 예측 결과 "기 지정된 수"의 주기 이후에 자원 여유도가 상기 한계치에 미달할 것으로 예측된 경우, 상기 대상 가상 클러스터의 확장을 수행하는 것으로 결정함에 있어서, 상기 "기 지정된 수"는 시스템 관리자가 설정할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
가상 클러스터 동적 확장 시스템 10
서버 풀 20
단말 30

Claims (17)

  1. 하나 이상의 가상 머신을 포함하는 대상 가상 클러스터의 자원 여유도를 측정하여 확장 제어부에 제공하는 모니터부;
    상기 자원 여유도를 바탕으로 하여 상기 대상 가상 클러스터의 확장 여부를 결정하며, 상기 대상 가상 클러스터의 확장을 결정한 경우, 상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 상기 대상 가상 클러스터에 추가 할당되어야 할 가상 머신 인스턴스의 타입 및 개수를 결정하는 확장 제어부; 및
    상기 확장 제어부에 의하여 결정된 타입의 가상 머신 인스턴스가 상기 확장 제어부에 의하여 결정된 개수만큼 상기 대상 가상 클러스터에 추가 할당되도록 상기 대상 가상 클러스터에 대한 프로필 정보를 수정하는 가상 클러스터 구성부를 포함하되,
    상기 대상 가상 클러스터의 타입은 상기 대상 가상 클러스터가 어떤 하드웨어 자원을 강화시킨 것인지를 의미하는 가상 클러스터 동적 확장 시스템.
  2. 제1 항에 있어서,
    상기 모니터부는,
    상기 대상 가상 클러스터의, 제1 내지 n 자원 사용률(U_1 내지 U_n)을 측정하고, 상기 제1 내지 n 자원 사용률을 이용하여 상기 자원 여유도(U_AVG)를 측정하되,
    U_AVG = a1*(1 - U_1) + a2*(1 - U_2) + … + an*(1 - U_n), 단 a1+a2+…+an=1이고, a1, a2, …, an은 상기 제1 내지 n 자원 각각에 대한 가중치인,
    가상 클러스터 동적 확장 시스템.
  3. 제1 항에 있어서,
    상기 확장 제어부는,
    상기 대상 가상 클러스터에 포함된 가상 머신 인스턴스의 개수와, 상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율과, 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율 중 적어도 하나를 반영하여, 상기 대상 가상 클러스터에 대한 한계치(TH)를 자동 조정하는 한계치 조정 모듈; 및
    상기 제공받은 자원 여유도와 상기 한계치를 비교하여, 상기 자원 여유도가 상기 한계치에 미달하는 경우 상기 대상 가상 클러스터를 확장하는 것으로 결정하는 확장 결정 모듈을 포함하는 가상 클러스터 동적 확장 시스템.
  4. 제3 항에 있어서,
    상기 모니터부는 상기 대상 가상 클러스터의 제1 자원 사용률(U_1) 및 제2 자원 사용률(U_2)을 더 측정하여 상기 확장 제어부에 더 제공하고,
    상기 확장 제어부는,
    상기 확장 결정 모듈에 의하여 확장이 결정된 경우, 제1 자원에 대한 추가 필요 자원량(ADD_1)과, 제2 자원에 대한 추가 필요 자원량(ADD_2)을 연산하는 필요 자원량 연산 모듈을 더 포함하되,
    ADD_1 = (TH - U_AVG) * (1 - U_1) * (1+a), 단, a는 상기 대상 가상 클러스터의 타입이 제1 자원 중심 타입인 경우 0 초과의 기 설정된 값으로 지정되고, 상기 대상 가상 클러스터의 타입이 제1 자원 중심 타입이 아닌 경우 0으로 지정되며,
    ADD_2 = (TH - U_AVG) * (1 - U_2) * (1+b), 단, b는 상기 대상 가상 클러스터의 타입이 제2 자원 중심 타입인 경우 0 초과의 기 설정된 값으로 지정되고, 상기 대상 가상 클러스터의 타입이 제2 자원 중심 타입이 아닌 경우 0으로 지정되는,
    가상 클러스터 동적 확장 시스템.
  5. 제4 항에 있어서,
    상기 확장 제어부는,
    상기 필요 자원량 연산 모듈에 의하여 생성된 ADD_1, ADD_2를 만족시키도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하되, 추가되는 전체 가상 머신 인스턴스의 개수가 최소가 되고, 상기 대상 가상 클러스터의 타입에 대응하는 타입의 가상 머신 인스턴스가 최대로 포함되도록 결정하는 가상 머신 선택 모듈을 더 포함하는 가상 클러스터 동적 확장 시스템.
  6. 가상 클러스터 서비스 시스템이, 하나 이상의 가상 머신을 포함하는 대상 가상 클러스터의 자원 여유도를 측정하는 단계;
    가상 클러스터 서비스 시스템이, 상기 자원 여유도를 바탕으로 하여 상기 대상 가상 클러스터의 확장 여부를 결정하는 단계; 및
    가상 클러스터 서비스 시스템이, 상기 결정하는 단계에서 확장을 수행하는 것으로 결정한 경우, 하나 이상의 가상 머신 인스턴스를 상기 대상 가상 클러스터에 추가 할당하는 단계를 실행하되,
    상기 추가 할당하는 단계에서는,
    상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계; 및
    상기 결정된 타입의 가상 머신 인스턴스를, 상기 결정된 개수만큼 상기 대상 가상 클러스터에 추가 할당하는 단계를 실행하되,
    상기 대상 가상 클러스터의 타입은 상기 대상 가상 클러스터가 어떤 하드웨어 자원을 강화시킨 것인지를 의미하는 컴퓨터 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  7. 가상 클러스터 서비스 시스템이, 하나 이상의 가상 머신을 포함하는 대상 가상 클러스터의 자원 여유도를 측정하는 단계;
    상기 가상 클러스터 서비스 시스템이, 상기 자원 여유도를 바탕으로 하여 상기 대상 가상 클러스터의 확장 여부를 결정하는 단계; 및
    상기 결정하는 단계에서 확장을 수행하는 것으로 결정한 경우, 상기 가상 클러스터 서비스 시스템이, 하나 이상의 가상 머신 인스턴스를 상기 대상 가상 클러스터에 추가 할당하는 단계를 포함하되,
    상기 추가 할당하는 단계는,
    상기 자원 여유도 및 상기 대상 가상 클러스터의 타입을 반영하여 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계; 및
    상기 결정된 타입의 가상 머신 인스턴스를, 상기 결정된 개수만큼 상기 대상 가상 클러스터에 추가 할당하는 단계를 포함하되,
    상기 대상 가상 클러스터의 타입은 상기 대상 가상 클러스터가 어떤 하드웨어 자원을 강화시킨 것인지를 의미하는 가상 클러스터 동적 확장 방법.
  8. 제7 항에 있어서,
    상기 자원 여유도를 측정하는 단계는,
    상기 대상 가상 클러스터의 제1 내지 n 자원 사용률(U_1 내지 U_n)을 측정하는 단계;
    상기 자원 여유도(U_AVG)를 측정하되, U_AVG = a1*(1 - U_1) + a2*(1 - U_2) + … + an*(1 - U_n)이고, a1+a2+…+an=1인 단계를 포함하는,
    가상 클러스터 동적 확장 방법.
  9. 제8 항에 있어서,
    상기 (a1, a2, … , an)는 상기 대상 가상 클러스터의 타입에 대응하는 가중치 셋인 가상 클러스터 동적 확장 방법.
  10. 제7 항에 있어서,
    상기 대상 가상 클러스터의 확장 여부를 결정하는 단계는,
    상기 가상 클러스터 서비스 시스템이, 상기 대상 가상 클러스터에 포함된 가상 머신 인스턴스의 개수와, 상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율과, 상기 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율 중 적어도 하나를 반영하여, 상기 대상 가상 클러스터에 대한 한계치를 자동 조정하는 단계; 및
    상기 측정된 자원 여유도가 상기 자동 조정된 한계치보다 작은 경우, 상기 대상 가상 클러스터를 확장하는 것으로 결정하는 단계를 포함하는 가상 클러스터 동적 확장 방법.
  11. 제10 항에 있어서,
    상기 한계치를 자동 조정하는 단계는,
    상기 가상 클러스터에 포함된 가상 머신 인스턴스의 개수를 반영하여 상기 한계치를 자동 조정하는 경우, 기 지정된 한계치 기본 값에 제1 가중치를 반영하여 상기 한계치를 증가 시키는 단계를 포함하되,
    상기 제1 가중치는 (VM_MAX - VM_USER) / (VM_MAX - VM_MIN)가 증가할 수록 증가하는 값이고,
    VM_MAX는 상기 가상 클러스터 서비스 시스템에 의하여 서비스 되는 가상 클러스터 중, 가장 많은 가상 머신을 포함하는 가상 클러스터의 가상 머신 수이고,
    VM_MIN은 상기 가상 클러스터 서비스 시스템에 의하여 서비스 되는 가상 클러스터 중, 가장 적은 가상 머신을 포함하는 가상 클러스터의 가상 머신 수이며,
    VM_USER는 상기 대상 가상 클러스터에 포함된 가상 머신의 수인,
    가상 클러스터 동적 확장 방법.
  12. 제10 항에 있어서,
    상기 한계치를 자동 조정하는 단계는,
    상기 대상 가상 클러스터의 활성화 기간에 대한 접속 합산 시간 비율을 반영하여 상기 한계치를 자동 조정하는 경우, 기 지정된 한계치 기본 값에 제2 가중치를 반영하여 상기 한계치를 증가 시키는 단계를 포함하되,
    상기 제2 가중치는 "접속 합산 시간/대상 가상 클러스터의 활성화 기간"이 증가할 수록 증가하는 값이고,
    상기 접속 합산 시간은, 상기 대상 가상 클러스터의 사용자 계정의 상기 가상 클러스터 서비스 시스템에 대한 세션 연결 시간의 합산이고,
    상기 대상 가상 클러스터의 활성화 기간은, 상기 대상 가상 클러스터가 최초 생성된 후 현재 시점까지의 기간인,
    가상 클러스터 동적 확장 방법.
  13. 제10 항에 있어서,
    상기 한계치를 자동 조정하는 단계는,
    상기 가상 클러스터 서비스 시스템에 포함된 서버 풀이 제공할 수 있는 가상 머신 인스턴스 전체 개수에 대한 기 할당된 사용 가상 머신 인스턴스 수의 비율을 반영하여 상기 한계치를 자동 조정하는 경우, 기 지정된 한계치 기본 값에 제3 가중치를 반영하여 상기 한계치를 감소 시키는 단계를 포함하는 가상 클러스터 동적 확장 방법.
  14. 제7 항에 있어서,
    상기 자원 여유도를 측정하는 단계는,
    상기 대상 가상 클러스터의 제1 자원 사용률 및 제2 자원 사용률을 각각 측정하는 단계; 및
    상기 제1 자원 사용률 및 제2 자원 사용률을 이용하여 상기 대상 가상 클러스터의 자원 여유도를 연산하는 단계를 포함하고,
    상기 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계는,
    상기 자원 여유도 및 상기 제1 자원 사용률을 이용하여 제1 자원에 대한 추가 필요 자원량을 연산한 후, 상기 제1 자원에 대한 추가 필요 자원량을 상기 대상 가상 클러스터의 타입에 따른 제1 자원 가중치를 반영하여 조정하는 단계; 및
    상기 자원 여유도 및 상기 제1 자원 사용률을 이용하여 제2 자원에 대한 추가 필요 자원량을 연산한 후, 상기 제2 자원에 대한 추가 필요 자원량을 상기 대상 가상 클러스터의 타입에 따른 제2 자원 가중치를 반영하여 조정하는 단계; 및
    상기 제1 자원에 대한 추가 필요 자원량 및 제2 자원에 대한 추가 필요 자원량을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계를 포함하는 가상 클러스터 동적 확장 방법.
  15. 제7 항에 있어서,
    상기 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계는,
    상기 자원 여유도를 이용하여 추가 필요 자원량을 연산하는 단계; 및
    상기 추가 필요 자원량을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 타입 및 개수를 결정하되, 추가되는 전체 가상 머신 인스턴스의 개수가 최소가 되도록 결정하는 단계를 포함하는 가상 클러스터 동적 확장 방법.
  16. 제7 항에 있어서,
    상기 가상 머신 인스턴스의 타입 및 개수를 결정하는 단계는,
    상기 측정된 자원 여유도를 이용하여 추가 필요 자원량을 연산하는 단계;
    상기 대상 가상 클러스터의 타입에 대응하는 타입의 가상 머신 인스턴스를 추가 할당될 가상 머신 인스턴스의 타입으로 결정하는 단계; 및
    상기 추가 필요 자원량을 만족시키도록, 추가 할당될 가상 머신 인스턴스의 개수를 결정하는 단계를 포함하는 가상 클러스터 동적 확장 방법.
  17. 제7 항에 있어서,
    상기 대상 가상 클러스터의 확장 여부를 결정하는 단계는,
    상기 측정된 자원 여유도를 주기적으로 축적하는 단계;
    상기 주기적으로 축적된 자원 여유도를 바탕으로 기 지정된 수의 주기 이후에 자원 여유도의 한계치 초과 여부를 예측하는 단계; 및
    상기 예측 결과, 기 지정된 수의 주기 이후에 자원 여유도가 상기 한계치에 미달할 것으로 예측된 경우, 상기 대상 가상 클러스터의 확장을 수행하는 것으로 결정하는 단계를 포함하는 가상 클러스터 동적 확장 방법.
KR1020120156929A 2012-12-28 2012-12-28 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체 Active KR101540631B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120156929A KR101540631B1 (ko) 2012-12-28 2012-12-28 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체
PCT/KR2013/011694 WO2014104634A1 (en) 2012-12-28 2013-12-17 System and method for dynamically expanding virtual cluster and recording medium on which program for executing the method is recorded
US14/141,784 US9571561B2 (en) 2012-12-28 2013-12-27 System and method for dynamically expanding virtual cluster and recording medium on which program for executing the method is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120156929A KR101540631B1 (ko) 2012-12-28 2012-12-28 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체

Publications (2)

Publication Number Publication Date
KR20140086436A KR20140086436A (ko) 2014-07-08
KR101540631B1 true KR101540631B1 (ko) 2015-07-30

Family

ID=51018563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120156929A Active KR101540631B1 (ko) 2012-12-28 2012-12-28 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체

Country Status (3)

Country Link
US (1) US9571561B2 (ko)
KR (1) KR101540631B1 (ko)
WO (1) WO2014104634A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102289100B1 (ko) * 2020-05-07 2021-08-11 한전케이디엔주식회사 빅데이터 분석을 위한 컨테이너 기반의 클러스터 구축 방법 및 클러스터 장치

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800650B2 (en) * 2014-03-10 2017-10-24 Vmware, Inc. Resource management for multiple desktop configurations for supporting virtual desktops of different user classes
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9032081B1 (en) * 2014-05-29 2015-05-12 Signiant, Inc. System and method for load balancing cloud-based accelerated transfer servers
EP2955631B1 (en) * 2014-06-09 2019-05-01 Nokia Solutions and Networks Oy Controlling of virtualized network functions for usage in communication network
US11474874B2 (en) * 2014-08-14 2022-10-18 Qubole, Inc. Systems and methods for auto-scaling a big data system
US9473567B2 (en) * 2014-08-20 2016-10-18 At&T Intellectual Property I, L.P. Virtual zones for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US10291689B2 (en) 2014-08-20 2019-05-14 At&T Intellectual Property I, L.P. Service centric virtual network function architecture for development and deployment of open systems interconnection communication model layer 4 through layer 7 services in a cloud computing system
US9742690B2 (en) 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
US9800673B2 (en) 2014-08-20 2017-10-24 At&T Intellectual Property I, L.P. Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US9749242B2 (en) 2014-08-20 2017-08-29 At&T Intellectual Property I, L.P. Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
WO2016121066A1 (ja) * 2015-01-29 2016-08-04 株式会社日立製作所 ストレージシステム
US11436667B2 (en) 2015-06-08 2022-09-06 Qubole, Inc. Pure-spot and dynamically rebalanced auto-scaling clusters
US9864640B2 (en) * 2015-08-14 2018-01-09 International Business Machines Corporation Controlling virtual machine density and placement distribution in a converged infrastructure resource pool
KR102518269B1 (ko) * 2015-10-12 2023-04-06 주식회사 엘지유플러스 트래픽 유실 방지장치 및 그 트래픽 유실 방지방법
US10261782B2 (en) 2015-12-18 2019-04-16 Amazon Technologies, Inc. Software container registry service
US10831465B2 (en) 2016-02-12 2020-11-10 Nutanix, Inc. Virtualized file server distribution across clusters
US10069869B2 (en) 2016-05-17 2018-09-04 Amazon Technologies, Inc. Versatile autoscaling
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US11080207B2 (en) 2016-06-07 2021-08-03 Qubole, Inc. Caching framework for big-data engines in the cloud
KR101695238B1 (ko) * 2016-06-29 2017-01-11 한국과학기술정보연구원 다중 컴퓨팅 자원을 이용한 작업 스케줄링 시스템 및 방법
US10606664B2 (en) 2016-09-07 2020-03-31 Qubole Inc. Heterogeneous auto-scaling big-data clusters in the cloud
US10409642B1 (en) 2016-11-22 2019-09-10 Amazon Technologies, Inc. Customer resource monitoring for versatile scaling service scaling policy recommendations
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
KR20180086791A (ko) 2017-01-23 2018-08-01 한국전자통신연구원 빅 데이터 처리 지원을 위한 클라우드 시스템 및 그 운영 방법
US10733024B2 (en) 2017-05-24 2020-08-04 Qubole Inc. Task packing scheduling process for long running applications
CN107544848B (zh) * 2017-08-30 2019-10-25 深圳云天励飞技术有限公司 集群扩展方法、装置、电子设备及存储介质
CN107861790B (zh) * 2017-10-27 2020-05-15 新华三云计算技术有限公司 虚拟机磁盘空间扩展方法、装置、宿主机及可读存储介质
US11228489B2 (en) 2018-01-23 2022-01-18 Qubole, Inc. System and methods for auto-tuning big data workloads on cloud platforms
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
KR101987661B1 (ko) * 2018-07-19 2019-06-11 나무기술 주식회사 클라우드 플랫폼에서의 클러스터 리소스 할당 및 관리 방법
KR101998564B1 (ko) * 2018-07-19 2019-07-10 나무기술 주식회사 클라우드 플랫폼에서의 멀티 클러스터 프로비저닝 및 관리 방법
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
CN111371583B (zh) * 2018-12-26 2022-09-23 中兴通讯股份有限公司 服务器的扩容方法及装置、服务器、存储介质
US11144360B2 (en) 2019-05-31 2021-10-12 Qubole, Inc. System and method for scheduling and running interactive database queries with service level agreements in a multi-tenant processing system
US11704316B2 (en) 2019-05-31 2023-07-18 Qubole, Inc. Systems and methods for determining peak memory requirements in SQL processing engines with concurrent subtasks
US11669365B1 (en) 2019-08-26 2023-06-06 Amazon Technologies, Inc. Task pool for managed compute instances
KR102331347B1 (ko) * 2019-10-29 2021-11-25 (주)한국플랫폼서비스기술 클라우드 기반 분산 딥러닝 정보 분석관리를 이용한 객체추출 시스템
KR102284264B1 (ko) * 2019-11-14 2021-08-02 에스피테크놀러지 주식회사 클라우드 시스템 및 그 제어방법
US11847503B2 (en) * 2020-01-28 2023-12-19 Hewlett Packard Enterprise Development Lp Execution of functions by clusters of computing nodes
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN114064256A (zh) * 2020-07-31 2022-02-18 伊姆西Ip控股有限责任公司 分配计算资源的方法、电子设备和计算机程序产品
KR20220030050A (ko) 2020-09-02 2022-03-10 삼성전자주식회사 복수의 vnf(virtualized network function)에 대한 컴퓨팅 자원의 할당을 조정하는 방법 및 그 서버
CN111966502B (zh) * 2020-09-21 2024-06-28 北京百度网讯科技有限公司 用于调整实例数的方法、装置、电子设备及可读存储介质
US12248435B2 (en) 2021-03-31 2025-03-11 Nutanix, Inc. File analytics systems and methods
EP4268073A4 (en) * 2020-12-23 2024-12-25 Services Pétroliers Schlumberger APPLICATION DISTRIBUTION VIA ON-DEMAND VIRTUAL MACHINE SYSTEM
US12131192B2 (en) 2021-03-18 2024-10-29 Nutanix, Inc. Scope-based distributed lock infrastructure for virtualized file server
US12242455B2 (en) 2021-03-31 2025-03-04 Nutanix, Inc. File analytics systems and methods including receiving and processing file system event data in order
US12248434B2 (en) 2021-03-31 2025-03-11 Nutanix, Inc. File analytics systems including examples providing metrics adjusted for application operation
US12197398B2 (en) 2021-03-31 2025-01-14 Nutanix, Inc. Virtualized file servers and methods to persistently store file system event data
US12164383B2 (en) 2021-08-19 2024-12-10 Nutanix, Inc. Failover and failback of distributed file servers
US12117972B2 (en) 2021-08-19 2024-10-15 Nutanix, Inc. File server managers and systems for managing virtualized file servers
CN114356557B (zh) * 2021-12-16 2022-11-25 北京穿杨科技有限公司 一种集群扩容方法及装置
US12153690B2 (en) 2022-01-24 2024-11-26 Nutanix, Inc. Consistent access control lists across file servers for local users in a distributed file server environment
US12182264B2 (en) 2022-03-11 2024-12-31 Nutanix, Inc. Malicious activity detection, validation, and remediation in virtualized file servers
US12189499B2 (en) 2022-07-29 2025-01-07 Nutanix, Inc. Self-service restore (SSR) snapshot replication with share-level file system disaster recovery on virtualized file servers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070062607A (ko) * 2004-10-15 2007-06-15 이엠씨 코포레이션 가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링및/또는 관리
JP2011258119A (ja) * 2010-06-11 2011-12-22 Hitachi Ltd クラスタ構成管理方法、管理装置及びプログラム
KR20120063662A (ko) * 2010-12-08 2012-06-18 텔코웨어 주식회사 로드 밸런서 및 이를 이용한 부하 분산 관리 방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513024B1 (en) * 1999-03-16 2003-01-28 Chou H. Li Self-optimization with interactions
US6668340B1 (en) * 1999-12-10 2003-12-23 International Business Machines Corporation Method system and program for determining a test case selection for a software application
US6505249B1 (en) * 1999-12-28 2003-01-07 Bellsouth Intellectual Property Corporation Method for optimizing end-to-end processing performance by selecting optimal values after running benchmarks repeatedly with different values
US7840652B2 (en) * 2001-03-21 2010-11-23 Ascentive Llc System and method for determining network configuration settings that provide optimal network performance
US7124401B2 (en) * 2002-09-03 2006-10-17 Sap Aktiengesellschaft Testing versions of applications
US7305659B2 (en) * 2002-09-03 2007-12-04 Sap Ag Handling parameters in test scripts for computer program applications
US20040128651A1 (en) * 2002-12-31 2004-07-01 Michael Lau Method and system for testing provisioning and interoperability of computer system services
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7246254B2 (en) * 2003-07-16 2007-07-17 International Business Machines Corporation System and method for automatically and dynamically optimizing application data resources to meet business objectives
US7139846B1 (en) * 2003-09-30 2006-11-21 Veritas Operating Corporation Computer system and method for performing low impact backup operations
US7577959B2 (en) * 2004-06-24 2009-08-18 International Business Machines Corporation Providing on-demand capabilities using virtual machines and clustering processes
ES2666563T3 (es) * 2005-03-16 2018-05-07 Iii Holdings 12, Llc Transferencia automática de carga a un centro bajo demanda
US8104033B2 (en) * 2005-09-30 2012-01-24 Computer Associates Think, Inc. Managing virtual machines based on business priorty
US20070143827A1 (en) * 2005-12-21 2007-06-21 Fiberlink Methods and systems for intelligently controlling access to computing resources
US7761538B2 (en) * 2006-08-30 2010-07-20 Microsoft Corporation Dynamically configuring, allocating and deploying computing systems
DE602006012492D1 (de) * 2006-10-06 2010-04-08 Hewlett Packard Development Co Verwaltung von Einstellungsdaten in einem Datenverarbeitungsbetriebsystem
US8103363B2 (en) * 2007-01-31 2012-01-24 Hewlett-Packard Development Company, L.P. Device control system
US8924352B1 (en) * 2007-03-31 2014-12-30 Emc Corporation Automated priority backup and archive
US8065676B1 (en) * 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
US8887158B2 (en) * 2008-03-07 2014-11-11 Sap Se Dynamic cluster expansion through virtualization-based live cloning
US8769048B2 (en) * 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US8141097B2 (en) * 2008-12-10 2012-03-20 International Business Machines Corporation Test management system and method
KR101259548B1 (ko) 2008-12-22 2013-04-30 한국전자통신연구원 가상화 기반 자원 관리 장치 및 방법과 가상화 기반 자원 관리가 가능한 컴퓨팅 시스템
FR2948209A1 (fr) * 2009-07-15 2011-01-21 Raphael Douady Simulation d'un agregat evolutif du monde reel, notamment pour gestion de risque
US8478878B2 (en) * 2010-03-11 2013-07-02 International Business Machines Corporation Placement of virtual machines based on server cost and network cost
EP2583211B1 (en) * 2010-06-15 2020-04-15 Oracle International Corporation Virtual computing infrastructure
TWI476586B (zh) * 2011-07-13 2015-03-11 Inst Information Industry 以雲端技術為基礎之測試系統、方法以及其電腦可讀取記錄媒體
US8825550B2 (en) * 2012-08-23 2014-09-02 Amazon Technologies, Inc. Scaling a virtual machine instance
WO2015065383A1 (en) * 2013-10-30 2015-05-07 Intel Corporation Processing of messages using theme and modality criteria

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070062607A (ko) * 2004-10-15 2007-06-15 이엠씨 코포레이션 가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링및/또는 관리
JP2011258119A (ja) * 2010-06-11 2011-12-22 Hitachi Ltd クラスタ構成管理方法、管理装置及びプログラム
KR20120063662A (ko) * 2010-12-08 2012-06-18 텔코웨어 주식회사 로드 밸런서 및 이를 이용한 부하 분산 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102289100B1 (ko) * 2020-05-07 2021-08-11 한전케이디엔주식회사 빅데이터 분석을 위한 컨테이너 기반의 클러스터 구축 방법 및 클러스터 장치

Also Published As

Publication number Publication date
WO2014104634A1 (en) 2014-07-03
US9571561B2 (en) 2017-02-14
KR20140086436A (ko) 2014-07-08
US20140189109A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
KR101540631B1 (ko) 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체
US11714667B2 (en) Automated scaling of application in virtual data centers
Amini et al. A Dynamic SLA Aware Heuristic Solution For IaaS Cloud Placement Problem Without Migration
Fernandez et al. Autoscaling web applications in heterogeneous cloud infrastructures
US9298512B2 (en) Client placement in a computer network system using dynamic weight assignments on resource utilization metrics
US9178763B2 (en) Weight-based collocation management
Amini et al. A Dynamic SLA Aware Solution For IaaS Cloud Placement Problem Using Simulated Annealing
Tian et al. A dynamic and integrated load-balancing scheduling algorithm for cloud datacenters
US10798018B2 (en) Method for operating a virtual network infrastructure
KR101941282B1 (ko) 가상 데스크톱 서비스 제공 방법 및 장치
US20120221730A1 (en) Resource control system and resource control method
KR101287448B1 (ko) 퍼지 제어 기반 가상 머신 스케일링 시스템 및 방법
WO2016134542A1 (zh) 虚拟机的迁移方法、装置及设备
US20050154576A1 (en) Policy simulator for analyzing autonomic system management policy of a computer system
US20160316003A1 (en) Balancing resources in distributed computing environments
KR101883599B1 (ko) 클라우드 컴퓨팅 환경에서 가상화 자원 분배 방법 및 장치
CN103856337B (zh) 资源占用率获取方法、提供方法、系统及服务器
US20140196054A1 (en) Ensuring performance of a computing system
US20140244844A1 (en) Control device and resource control method
CN112261120B (zh) 一种配电物联网云边协同任务卸载方法及装置
Gkatzikis et al. Mobiles on cloud nine: Efficient task migration policies for cloud computing systems
Tighe et al. Topology and application aware dynamic vm management in the cloud
CN107220108A (zh) 一种实现云数据中心负载均衡的方法和系统
CN105528283A (zh) 一种移动应用检测负载均衡算法中计算负载值的方法
CN109960565A (zh) 云平台、基于云平台的虚拟机调度方法及装置

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20121228

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20131111

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20121228

Comment text: Patent Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20150109

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20150717

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20150724

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20150727

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20180625

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20190701

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20200629

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20210623

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20220620

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20240625

Start annual number: 10

End annual number: 10