KR20160025926A - 가상 응용서버들로 부하를 분산하는 장치 및 방법 - Google Patents
가상 응용서버들로 부하를 분산하는 장치 및 방법 Download PDFInfo
- Publication number
- KR20160025926A KR20160025926A KR1020140113432A KR20140113432A KR20160025926A KR 20160025926 A KR20160025926 A KR 20160025926A KR 1020140113432 A KR1020140113432 A KR 1020140113432A KR 20140113432 A KR20140113432 A KR 20140113432A KR 20160025926 A KR20160025926 A KR 20160025926A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual application
- load
- application servers
- service
- virtual
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 네트워크로 연결된 컴퓨터 기반의 서비스 환경에서 동작하는 응용서버들의 부하를 분산하는 장치 및 방법에 관한 것이다.
본 발명에 따른 부하 분산 장치의 부하 분산 방법은 부하 분산 시스템 내의 물리 서버들에 포함된 가상 응용서버들로 부하를 분산시키되, 부하 분산 시스템의 상태정보, 물리서버의 상태정보 또는 가상 응용서버들의 상태정보에 따라, 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계 및 판단한 결과에 따라, 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계를 포함하고, 부하 분산 시스템의 상태정보는 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타낸다.
본 발명에 따른 부하 분산 장치의 부하 분산 방법은 부하 분산 시스템 내의 물리 서버들에 포함된 가상 응용서버들로 부하를 분산시키되, 부하 분산 시스템의 상태정보, 물리서버의 상태정보 또는 가상 응용서버들의 상태정보에 따라, 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계 및 판단한 결과에 따라, 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계를 포함하고, 부하 분산 시스템의 상태정보는 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타낸다.
Description
본 발명은 가상 응용서버들로 부하를 분산하는 장치 및 방법에 관한 것으로서, 더욱 상세하게는 네트워크로 연결된 컴퓨터 기반의 서비스 환경에서 동작하는 가상 응용서버들로 부하를 분산하는 장치 및 방법에 관한 것이다
인터넷, 기업 네트워크 또는 홈 네트워크와 같은 다양한 네트워크 환경들에 대해, 클라이언트-서버 구조를 바탕으로 한 다양한 서비스가 제공되고 있다. 이러한 클라이언트-서버 기반의 서비스에 있어서, 많은 수의 클라이언트를 상대로 서비스를 제공하거나 서비스 제공을 위해 많은 컴퓨팅 및 네트워크 자원이 요구되는 경우, 서비스의 좋은 품질 및 성능을 유지하기 위해 동적으로 서버의 규모를 제어하는 방식이 사용될 수 있다.
이러한 동적 제어 방식에는 대표적으로 서비스에 참여하는 응용서버의 자원을 증가시키는 스케일-업(scale-up) 방식과 서비스에 참여하는 응용서버의 수를 증가시키는 스케일-아웃(scale-out) 방식이 있다.
그 중 스케일-아웃 방식에서는, OSI(Open Systems Interconnection) 모델의 계층-4 또는 계층-7 정보를 바탕으로 하드웨어 또는 소프트웨어로 구성된 부하 분산 장치(load balancer)를 통해 부하 분산을 수행한다. 이때, 부하 분산 장치는 미리 설정된 부하 분산 알고리즘에 따라 클라이언트의 서비스 요청을 서비스 클러스터 내의 응용서버들에게 적절히 분배함으로써, 특정 응용서버에 부하가 집중되는 것을 방지하고 전체적인 서비스의 품질을 향상시킨다.
도 1은 이러한 일반적인 부하 분산 시스템(10)을 나타내는 블록도이다. 도 1을 참조하면, 부하 분산 시스템(10)은 클라이언트들(11), 네트워크(14), 부하 분산 장치(12) 및 서비스 클러스터(13)를 포함한다. 복수의 클라이언트(11_1, 11_2, 11_n)으로부터 네트워크를 통해 특정 인터넷 프로토콜(Virtual Internet Protocol, VIP)을 향한 서비스 요청이 수신되면, 부하 분산 장치(12)는 미리 결정된 부하 분산 알고리즘에 따라 수신된 서비스 요청을 서비스 클러스터(13) 내의 응용서버들(13_1, 13_2, 13_n)에 분산 할당한다. 이때, 수신된 서비스 요청이 증가함으로써 서비스 클러스터(13) 내의 응용서버들(13_1, 13_2, 13_n)의 부하가 폭발적으로 증가하거나 미리 결정된 기준치를 초과하면, 부하 분산 장치(12)는 스케일-아웃 방식을 통해 서비스 클러스터(13)의 처리 용량을 증가시킬 수 있다.
그러나, 이러한 종래의 스케일-아웃 방식에서는 클라이언트(11)의 서비스 요청을 처리할 응용서버가 서비스 클러스터(13) 내에 미리 설정 및 등록되어 있어야 한다. 따라서, 전체적인 서비스 요구량에 대한 사전 예측이 부정확하거나 서비스 요청들이 순간적으로 집중되는 경우, 서비스 클러스터(13) 내에 미리 설정 및 등록된 응용서버만으로는 적절한 서비스 제공이 이루어지지 못하는 문제가 발생한다. 그렇다고 하여, 서비스 클러스터(13) 내에 필요 이상으로 많은 응용서버들을 등록하면, 과잉 구성으로 인한 불필요한 자원 낭비와 비용 발생이 초래될 수 있다.
본 발명의 목적은 외부로부터의 개입 없이, 부하 분산 서비스의 상태에 따라 서비스 클러스터의 처리 용량을 적절하게 제어하는 부하 분산 장치 및 방법을 제공하는 데 있다.
본 발명의 다른 목적은 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화한 부하 분산 장치 및 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서, 서비스 품질의 저하 없이 지속적으로 서비스를 제공하도록 하는 부하 분산 장치 및 방법을 제공하는 데 있다.
본 발명의 실시 예들에 따른, 부하 분산 시스템 내의 물리 서버들에 포함된 가상 응용서버들로 부하를 분산시키는 부하 분산 장치의 부하 분산 방법은, 상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계; 및 상기 판단한 결과에 따라, 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계를 포함하고, 상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타낸다.
실시 예로서, 상기 하나 이상의 가상 응용서버는 상기 물리서버의 하이퍼바이저에 의해 제공되는 가상화 환경상에서 동작하며, 클라이언트로부터 제공되는 서비스 요청을 처리하는 소프트웨어 개체일 수 있고, 상기 물리서버의 상기 가상화 환경상에서 다른 가상 응용서버와 동시에 동작하고, 상기 하나 이상의 가상 응용서버와 상기 다른 가상 응용서버는 각각 서로 상이한 운영체제를 이용하여 동작할 수 있다.
실시 예로서, 상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는, 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치를 초과하면, 상기 부하 분산 시스템이 수신 및 처리중인 부하가 과다한 것으로 판단하는 단계를 포함할 수 있다.
실시 예로서, 상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는, 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치 미만이면, 상기 부하 분산 시스템이 수신 및 처리중인 부하가 과소한 것으로 판단하는 단계를 포함할 수 있다.
실시 예로서, 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값은 상기 부하 분산 시스템이 처리중인 서비스 세션의 개수를 상기 서비스 세션을 처리중인 가상 응용서버의 수로 나눈 값일 수 있다.
실시 예로서, 상기 임계치는 상기 부하 분산 시스템의 부하 분산 서비스 상태 정보와 상기 부하 분산 시스템에 포함된 가상 응용서버 및 물리서버의 모니터링 정보 및/또는 상기 부하 분산 시스템이 수집한 시스템 부하 정보를 참조하여 결정될 수 있다.
실시 예로서, 상기 하나 이상의 가상 응용서버 또는 상기 물리서버는 활성 그룹, 소극적 그룹 및 잠재 그룹 중 어느 하나에 포함될 수 있다.
실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 잠재 그룹에 속한 물리서버 중 적어도 하나의 물리서버에 상기 하나 이상의 가상 응용서버를 생성하는 단계; 및 상기 생성된 하나 이상의 가상 응용서버와 물리서버의 상태를 상기 활성 그룹으로 변경하는 단계를 포함할 수 있다.
실시 예로서, 상기 생성된 하나 이상의 가상 응용서버는 미리 생성된 가상머신 이미지를 이용하여 생성되고, 상기 가상머신 이미지는 상기 생성된 하나 이상의 가상 응용서버를 구동하기 위한 운영체제 등을 포함하는 소프트웨어 이미지 파일로서, 상기 서비스 요청을 처리하는 데 필요한 응용프로그램 및 환경설정을 포함하도록 구성될 수 있다.
실시 예로서, 상기 미리 생성된 가상머신 이미지를 복수의 가상머신 이미지를 포함하는 가상머신 이미지 풀로부터 선택하기 위해 가상머신 템플릿을 참조할 수 있다.
실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 하나 이상의 가상 응용서버의 상태를 상기 소극적 그룹으로부터 상기 활성 그룹으로 상태변경하는 단계를 포함할 수 있다.
실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 하나 이상의 가상 응용서버의 상태를 상기 활성 그룹으로부터 상기 소극적 그룹으로 상태변경하는 단계를 포함할 수 있다.
실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 소극적 그룹으로 상태변경된 상기 하나 이상의 가상 응용서버에 대해서, 처리중인 세션이 완료되었는지 확인하는 단계; 및 상기 확인 결과에 따라, 상기 하나 이상의 가상 응용서버를 중단시키거나 삭제하는 단계를 더 포함할 수 있다.
실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 하나 이상의 가상 응용서버를 포함하는 물리서버에서 실행중인 가상 응용서버가 더 이상 존재하지 않는 경우, 상기 물리서버를 잠재 그룹으로 상태변경하는 단계를 더 포함할 수 있다.
본 발명의 실시 예들에 따른, 클라이언트로부터 수신되는 서비스 요청을 부하 분산 시스템 내의 물리서버에 포함된 가상 응용서버들로 분산 할당하는 부하 분산 장치는, 상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 전송제어부; 및 상기 판단한 결과에 따라, 하나 이상의 가상 응용서버가 생성되거나, 상태변경되거나, 삭제되도록 제어하는 서버 제어부를 포함하고, 상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타낸다.
본 발명의 실시 예들에 따르면, 서비스 관리자나 외부 응용프로그램과 같은 외부로부터의 개입 없이, 부하 분산 시스템의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라, 능동적으로 가상 응용서버를 추가, 상태변경, 또는 제거함으로써, 서비스 클러스터의 처리 용량을 적절하게 제어할 수 있다.
그에 따라, 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화할 수 있으며, 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서 서비스 품질의 저하 없이 지속적으로 서비스를 제공할 수 있다.
도 1은 일반적인 부하 분산 시스템을 나타내는 블록도이다.
도 2는 가상환경에 기반한 일반적인 부하 분산 시스템을 나타내는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른, 부하 분산 시스템을 나타내는 블록도이다.
도 4는 본 발명의 일 실시 예에 따른, 가상 응용서버 또는 물리서버의 상태변경을 구체적으로 설명하기 위한 상태도이다.
도 5는 본 발명의 일 실시 예에 따른, 부하 분산 방법을 나타내는 순서도이다.
도 2는 가상환경에 기반한 일반적인 부하 분산 시스템을 나타내는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른, 부하 분산 시스템을 나타내는 블록도이다.
도 4는 본 발명의 일 실시 예에 따른, 가상 응용서버 또는 물리서버의 상태변경을 구체적으로 설명하기 위한 상태도이다.
도 5는 본 발명의 일 실시 예에 따른, 부하 분산 방법을 나타내는 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다.
또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않는 범위 내에서 다양하게 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 의도된 것이 아니며, 본 발명의 범위는 원칙적으로 첨부한 청구항들에 정해지고, 청구항들에 기재된 것 및 그와 균등한 범위의 가능한 실시 예들을 포괄한다. 유사한 참조부호가 도면들에서 사용되는 경우, 유사한 참조부호는 여러 실시 예들에 대해서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 첨부한 도면들을 참조하여, 구체적인 실시 예를 통해 본 발명의 내용 및 사상을 설명한다.
도 2는 가상환경에 기반한 일반적인 부하 분산 시스템을 나타내는 블록도이다. 도 2를 참조하면, 부하 분산 시스템(20)은 하나 이상의 클라이언트들(21), 네트워크(24), 부하 분산 장치(22) 및 복수의 물리서버(23_1, 23_2, 23_3)를 포함하는 서비스 클러스터(23)를 포함한다.
클라이언트(21)는 네트워크(24)를 통해 부하 분산 장치(22)와 연결되며, 특정 인터넷 프로토콜(VIP, 25)을 향한 서비스 요청을 전송한다. 클라이언트(21)는 하나 이상의 클라이언트 장치들(21_1, 21_2, 21_n)을 포함하며, 각각의 클라이언트 장치들(21_1, 21_2, 21_n)은 동종 또는 이종의 컴퓨터 장치, 모바일 단말기 또는 그 밖의 네트워크(24)를 통해 데이터 통신이 가능한 전자 장치일 수 있다.
네트워크(24)는 클라이언트(21)와 부하 분산 장치(22) 간의 통신 연결을 중개하는 하드웨어 또는 소프트웨어로 구성된 통신망이다. 네트워크(24)는 LAN(Local Area Network), MAN(Metropolitan Area Network), GSM(Global System for Mobile Network), EDGE(Enhanced Data GSM Environment), HSDPA(High Speed Downlink Packet Access), W-CDMA(Wideband Code Division Multiple Access), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), 블루투스(Bluetooth), 지그비(Zigbee), 와이-파이(Wi-Fi), VoIP(Voice over Internet Protocol), LTE Advanced, IEEE802.16m, WirelessMAN-Advanced, HSPA+, 3GPP Long Term Evolution (LTE), Mobile WiMAX (IEEE 802.16e), UMB (formerly EV-DO Rev. C), Flash-OFDM, iBurst and MBWA (IEEE 802.20) systems, HIPERMAN, Beam-Division Multiple Access (BDMA) 및 초음파 활용 통신망으로 구성된 그룹으로부터 선택되는 하나 이상의 통신망 또는 통신 수단을 포함할 수 있다.
서비스 클러스터(23)는 하나 이상의 물리서버(23_1, 23_2, 23_3)를 포함한다. 각 물리서버(23_1, 23_2, 23_3)는 하이퍼바이저(23_1a, 23_2a, 23_3a) 및 가상머신 제어부(23_1b, 23_2b, 23_3b)를 포함한다. 또한, 각 물리서버(23_1, 23_2, 23_3)는 선택적으로 하나 이상의 가상 응용서버(23_1c, 23_1d, 23_2c, 23_3c)를 포함할 수 있다.
하이퍼바이저(23_1a, 23_2a, 23_3a)는 대응하는 물리서버(23_1, 23_2, 23_3)에 가상화 환경을 제공한다. 하이퍼바이저(23_1a, 23_2a, 23_3a)는 프로세서나 메모리와 같은 물리서버(23_1, 23_2, 23_3)에 포함된 다양한 컴퓨팅 자원에 대한 다양한 운영체제의 접근 방법을 통제하는 얇은 계층의 소프트웨어로서, 하이퍼바이저(23_1a, 23_2a, 23_3a)를 통해, 각 물리서버(23_1, 23_2, 23_3) 내에서 상이한 운영체제가 동시에 가동될 수 있다. 하이퍼바이저(23_1a, 23_2a, 23_3a) 및 그것이 제공하는 가상화 환경에 대한 구체적인 내용은 당해 기술 분야에 널리 알려져 있으므로, 여기서는 그에 대한 설명을 생략한다.
가상머신 제어부(23_1b, 23_2b, 23_3b)는 하이퍼바이저(23_1a, 23_2a, 23_3a)의 외부 제어 인터페이스 또는 그것과 연동되는 상위 소프트웨어 라이브러리이다. 가상머신 제어부(23_1b, 23_2, 23_3b)는 각 물리서버(23_1, 23_2, 23_3) 내의 가상 응용서버들(23_1c, 23_1d, 23_2c, 23_3c)에 대한 제어 기능을 제공한다. 예를 들어, 각 물리서버(23_1, 23_2, 23_3)는 가상머신 제어부(23_1b, 23_2b, 23_3b)를 통해 가상 응용서버를 생성, 삭제, 시작, 중단 또는 일시정지시킬 수 있다.
가상 응용서버(23_1c, 23_1d, 23_2c, 23_3c)는 하이퍼바이저(23_1a, 23_2a, 23_3a)에 의해 제공되는 가상화 환경상에서 동작하며, 대응하는 물리서버(23_1, 23_2, 23_3) 내에 포함되고, 부하 분산 장치(22)를 통해 들어오는 서비스 요청을 처리하는 개체이다. 가상 응용서버(23_1c, 23_1d, 23_2c, 23_3c) 각각은 하나의 물리서버 내에서 다른 가상 응용서버와 서로 상이한 운영체제를 이용하여 동작할 수 있고, 부하 분산 장치(22)가 각각에 할당한 서비스 요청을 처리한다. 가상 응용서버(23_1c, 23_1d, 23_2c, 23_3c)는 부하 분산 장치(22)의 제어에 따라 새롭게 생성되거나, 삭제되거나, 중단되거나 일시정지될 수 있다.
도 3은 본 발명의 일 실시 예에 따른, 부하 분산 시스템(100)을 나타내는 블록도이다. 도 3을 참조하면, 부하분산 시스템(100)은 네트워크(140), 부하 분산 장치(120), 복수의 물리서버(131, 132, 133)를 포함하는 서비스 클러스터(130) 및 가상머신 이미지 풀(170)을 포함한다.
도 3에서, 부하 분산 장치(120)는 네트워크(140)를 통해 수신되는 클라이언트(미도시)의 서비스 요청을, 미리 결정된 방법 또는 알고리즘에 따라 각 물리서버(131, 132, 133) 또는 각 가상 응용서버(131c, 132c)에 분산 할당한다. 예를 들어, 클라이언트로부터 특정 인터넷 프로토콜(미도시)을 향한 서비스 요청이 수신되면, 부하 분산 장치(120)는 미리 결정된 부하 분산 알고리즘에 따라 수신된 서비스 요청을 서비스 클러스터(130) 내의 물리서버들(131, 132, 133) 또는 가상 응용서버들(131c, 132c)에 분산 할당한다. 이때, 운용되는 가상 응용서버의 수에 비해 수신된 서비스 요청이 과다하면, 부하 분산 장치(120)는 물리서버(131, 132, 133) 내에 새로운 가상 응용서버를 생성하거나 상태변경(예를 들어, 활성 그룹으로)한다. 반면에, 운용되는 가상 응용서버의 수에 비해 수신된 서비스 요청이 과소하면, 부하 분산 장치(120)는 물리서버(131, 132, 133) 내의 기존의 가상 응용서버 중 적어도 일부를 삭제하거나 중단 또는 상태변경(예를 들어, 소극적 그룹으로)한다.
이와 같이, 서비스 요청량에 따라 서비스 클러스터(130) 내에 있는 가상 응용서버의 수를 제어하는 것은 일반적인 스케일-아웃 방식과 일견 유사할 수 있으나, 본 발명은 부하 분산 서비스의 상태정보, 가상 응용서버의 상태정보 및 물리서버의 상태정보에 기초하여, 서비스의 부하에 따라 동적으로 부하 분산 시스템이 가상 응용서버의 수를 제어한다는 점에서 일반적인 스케일-아웃에 비해 더욱 동적으로 유연하게 클라이언트로부터의 서비스 요청을 처리할 수 있다.
나아가, 본 발명은 가상 응용서버 또는 물리서버의 가능한 상태로서, 활성 상태(서비스 자원을 할당받아 서비스를 처리하는 상태) 및 잠재 상태(서비스 자원을 반납하고 대기중인 상태)외에 소극적 상태라는 과도적인 제3의 상태를 설정함으로써, 가상 응용서버(131c, 132c)의 생성, 수정, 삭제 또는 시작, 일시정지, 중단, 재시작이 더욱 유연하고 신속하게 이루어질 수 있도록 한다.
여기서, 부하 분산 서비스의 상태정보는 부하 분산 시스템(100)의 현재 상태를 나타내는 정보로서, 예를 들어, 부하 분산 시스템(100)이 처리 중인 서비스 세션의 양 또는 규모를 나타내는 정보일 수 있다.
가상 응용서버의 상태정보는 가상 응용서버(131c, 132c)의 현재 상태를 나타내는 정보로서, 예를 들어, 가상 응용서버(131c, 132c)에 가해지는 부하의 정도(예를 들어, 가상 응용서버의 가용 자원 중 몇 퍼센트가 현재 세션 처리에 사용 중인지 등)를 나타내는 정보일 수 있다.
물리서버의 상태정보는 물리 응용서버(131, 132, 133)의 현재 상태를 나타내는 정보로서, 예를 들어, 물리서버에 몇 개의 가상 응용서버가 운용 중인지, 물리서버의 시스템 자원 중 몇 퍼센트가 현재 가상 응용서버에 할당되었는지, 물리서버의 시스템 자원 중 몇 퍼센트가 추가적으로 사용가능한지, 또는 물리서버의 현재 발열상태(즉, 현재 온도)가 몇 도인지 등과 같은 사항을 포함하는 정보일 수 있다.
다만 이는 예시적인 것으로서, 부하 분산 서비스의 상태정보, 가상 응용서버의 상태정보 및 물리서버의 상태정보는 위에서 설명한 정보 외에 추가적으로(additionally) 또는 그것을 대체적으로(alternatively) 다른 정보를 더 포함할 수도 있다.
아래에서는, 부하 분산 장치(120)의 구체적인 구성 및 동작 방법에 더욱 상세히 후술한다.
부하 분산 장치(120)는 전송 처리부(121), 전송 제어부(122), 세션 관리부(123), 응용서버 모니터링부(124, 이하 모니터링부), 서버 제어부(125) 및 서비스 관리부(125)를 포함한다. 부하 분산 장치(120)의 각 구성 요소는 하드웨어 요소 또는 소프트웨어 요소로서 구현될 수 있다.
도 3에서, 부하 분산 장치(120)는 현재 가상 응용서버의 상태 및 서비스 중인 세션 정보를 바탕으로, 가상 응용서버들(131c, 132c)의 규모를 확장 또는 축소시킨다.
전송처리부(121)는 네트워크(140)를 통해 특정 VIP(예를 들어, 도 2의 15)를 목적지 주소로 갖는 서비스 요청을 수신하고, 수신된 서비스 요청을 처리할 가상 응용서버(131c, 132c)로 수신된 서비스 요청을 전달한다(A). 구체적으로, 전송처리부(121)는 사용자 요청으로서 수신된 데이터 패킷의 패킷 정보(예를 들어, 송신자 IP 주소, 송신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 등)를 기초로, 플로우 테이블(미도시)을 참조하여 수신된 데이터 패킷을 전달할 가상 응용서버를 결정한다. 플로우 테이블은 특정 패킷 플로우(또는, 서비스 요청)를 특정 응용서버와 연관짓는 정보를 포함하는 테이블로서, 예를 들어 제 1 패킷 플로우에 속하는 데이터 패킷이 제 1 가상 응용서버로 전달되도록 지정하는 정보를 포함한다.
이때, 수신된 패킷이 부하 분산 장치(120)에 새롭게 전달된 새로운 서비스 요청(또는, 패킷 플로우)에 속하는 경우에는, 수신된 패킷에 대한 패킷 플로우 정보가 플로우 테이블 내에 존재하지 않을 것이다. 이 경우, 전송처리부(121)는 새롭게 수신된 서비스 요청에 대한 처리 정책을 전송제어부(122)에 요청한다. 반대로, 수신된 패킷이 부하 분산 장치(120)가 기수신한 어떤 서비스 요청의 일부인 경우, 전송 처리부(121)의 플로우 테이블에는 수신된 패킷에 대한 패킷 플로우 정보가 존재할 것이다. 따라서, 이 경우 전송처리부(121)는 대응하는 패킷 플로우 정보를 참조하여, 곧바로 수신된 패킷의 네트워크 주소변환을 수행한다.
여기서 네트워크 주소변환은 예를 들면, 송신자 IP 주소 및 포트 번호로서 수신된 클라이언트(예를 들어, 도 2의 11) IP 주소와 포트 번호를 부하 분산 장치(120)의 IP 주소와 포트 번호로 변경하는 송신자 주소변환 또는 수신자 IP 주소와 포트 번호로서 수신된 부하 분산 장치(120)의 IP 주소와 포트 번호를 서비스 요청을 처리할 가상 응용서버의 IP 주소와 포트 번호로 변경하는 수신자 주소변환을 포함할 수 있다. 이때, 전송처리부(121)는 네트워크 주소변환으로서 송신자 주소변환 및 수신자 주소변환을 모두 수행할 수도 있고, 송신자 주소변환을 생략한 채 수신자 주소변환만을 수행할 수도 있다. 또는, 네트워크 주소변환은 그 외에도, 부하 분산 장치(120)와 서비스 요청을 처리할 가상 응용서버 사이에 터널링 방식과 같은 오버레이 네트워크를 구성하여 수신된 패킷의 전송 경로를 지정하는 방법을 포함할 수 있다. 전송처리부(121)는 네트워크 주소변환을 수행한 후, 수신된 패킷을 대응하는 가상 응용서버(즉, 수신된 패킷 또는 그것과 대응하는 서비스 요청을 처리하도록 지정된 가상 응용서버)로 전송한다.
전송제어부(122)는 전송처리부(121)로부터 문의된 서비스 요청에 대한 처리 정책(예를 들어, 특정 서비스 요청에 속하는 데이터 패킷을 어떤 경로 또는 목적지로 전송할 지에 관한 정책)을 결정한다. 이를 위해, 전송제어부(122)는 특정 VIP와 관련되어 존재하는 서비스 클러스터(130) 상의 가상 응용서버들(131c, 132c) 중 어떤 가상 응용서버에 문의된 서비스 요청을 할당할지를 결정한다.
구체적으로, 전송제어부(122)는 미리 결정된 부하 분산 알고리즘(예를 들어, 가상 응용서버를 결정하는 알고리즘 또는 서비스 요청 처리를 스케쥴링하는 알고리즘)에 따라, 문의된 서비스 요청을 처리할 가상 응용서버를 결정한다. 여기서, 사용되는 부하 분산 알고리즘은 VIP에 따라 개별화된 알고리즘으로서, 수신된 서비스 요청의 VIP가 달라지면 사용되는 가상 부하 분산 알고리즘도 달라질 수 있다.
한편, 전송제어부(122)는 서비스 요청을 처리할 가상 응용서버를 결정하는 과정에서, 세션관리부(123)로부터 가상 응용서버들(131c, 132c)의 서비스 처리 상태(예를 들어, 가상 응용서버들(131c, 132c) 각각이 얼마나 많은 양의 서비스를 처리중인지 등)를 나타내는 상태정보를 수신하여 참조할 수 있다.
세션관리부(123)는 현재 사용가능한 가상 응용서버들(131c, 132c)의 부하 처리 정보를 저장 또는 관리하는 모듈로서, 세션관리부(123)에 대한 구체적인 내용은 이후에 다시 설명된다.
실시 예로서, 전송 제어부(122)가 부하 분산 알고리즘으로서 균등 부하 분산(round robin) 알고리즘을 사용하는 경우, 전송제어부(122)는 세션관리부(123)로부터 가상 응용서버들(131c, 132c)의 순차적인 순번 정보를 나타내는 부하 처리 정보를 수신하고, 수신한 부하 처리 정보에 따라 적합한 순번을 갖는(즉, 어떤 가상 응용서버(131c)에 최근에 서비스 요청이 할당되었다면, 다음 차례의 가상 응용서버(132c)가 적합한 순번을 갖게 된다) 가상 응용서버에 사용자 요청을 할당한다. 반면에, 전송 제어부(122)가 부하 분산 알고리즘으로서 최소 연결(least connection) 알고리즘을 사용하는 경우, 전송 제어부(122)는 세션관리부(123)로부터 가상 응용서버들(131c, 132c) 각각이 처리중인 서비스 세션의 수를 나타내는 부하 처리 정보를 수신한 후, 그에 따라 현재 처리중인(또는, 서비스 중인) 서비스 세션의 수가 가장 적은 가상 응용서버를 서비스 요청을 처리할 가상 응용서버로 결정한다.
한편, 일반적인 부하 분산 시스템(10, 20)과 달리, 본 발명에서는 가상 응용서버의 과부하를 예방하고 이를 통해 서비스 품질을 안정적으로 보장하기 위해 상위 임계치(threshold value)와 하위 임계치를 설정하고, 이러한 두 개의 임계치에 기반하여 새로운 서비스 요청이 수신될 때마다 서비스 클러스터(130) 내의 가상 응용서버들의 규모를 조정하는 프로비저닝 단계를 실행한다. 그리고, 미리 결정된 부하 분산 알고리즘에 따라, 프로비저닝 단계를 통해 준비된 가상 응용서버들 중에서 새로운 서비스 요청을 처리할 가상 응용서버를 결정한다.
구체적으로 설명하면, 전송제어부(122)는 세션관리부(123)로부터 수신한 가상 응용서버의 상태정보, 물리서버의 상태정보 또는, 특정 VIP와 관련하여 서비스를 처리중인 부하 분산 시스템의 상태정보(예를 들어, 부하 분산 시스템(100)이 처리중인 서비스 세션의 수 또는 처리량)에 기초하여, 현재 처리중인 서비스 세션의 수가 서비스 클러스터(130)의 용량에 비해 적절한지 판단한다. 즉, 전송제어부(122)는 부하 분산 시스템(100)의 상태정보, 물리서버의 상태정보 또는 가상 응용서버들의 상태정보에 따라, 부하 분산 시스템(100)에서 운용되는 가상 응용서버의 수가 적절한 지 판단한다.
예를 들어, 전송제어부(122)는 현재 처리중인 평균 서비스 세션 수가 미리 결정된 상위 임계치보다 큰지 판단하고, 상위 임계치보다 큰 것으로 판단되면 전송제어부(122)는 가상 응용서버들(131c, 132c)의 과부하를 방지하기 위해 새로운 가상 응용서버를 서비스 클러스터(130)에 추가하는 스케일-아웃을 수행하도록 서버제어부(125)에 요청한다.
반대로 전송제어부(122)는 현재 처리중인 평균 서비스 세션 수가 미리 결정된 하위 임계치보다 작은지 판단한다. 이때, 하위 임계치보다 작은 것으로 판단되면, 전송제어부(122)는 처리하는 서비스 요청의 크기에 비해 과다한 자원이 할당되어 발생하는 자원 낭비를 방지하기 위해, 가상 응용서버들(131c, 132c) 중 적어도 일부를 서비스 클러스터(130)에서 배제 또는 삭제하는 스케일-인(scale-in)을 수행하도록 서버제어부(125)에 요청한다.실시 예로서, 이때 상위 임계치 또는 하위 임계치는 가상 응용서버의 상태정보, 또는 물리서버의 상태정보를 참조하여 결정될 수 있다. 예를 들어, 가상 응용서버의 상태정보를 참조한 결과, 가상 응용서버가 상대적으로 적은 양의 시스템 자원을 점유하고 있는 것으로 판단되면(또는, 사용가능한 시스템 자원의 여유분이 적으면), 상위 임계치 또는 하위 임계치는 하향 조정될 수 있다. 유사한 예로서, 물리서버의 상태정보를 참조한 결과, 각 물리서버가 상대적으로 적은 양의 시스템 자원을 유보하고 있는 것으로 판단되면(즉, 새로운 가상 응용서버를 생성할 여유가 없으면), 상위 임계치 또는 하위 임계치는 상향 조정될 수 있다.
실시 예로서, 상위 임계치 또는 하위 임계치를 결정하기 위해, 가상 응용서버(131c, 132c)의 모니터링 정보가 더 참조될 수 있다. 모니터링 정보에 대한 더욱 구체적인 내용은 모니터링부(124)와 관련한 설명에서 후술된다.
세션관리부(123)는 특정 VIP(150)와 관련하여 수신된 서비스 요청들을 처리중인 가상 응용서버들(131c, 132c)의 UUID(Universally Unique Identification), 고장 여부, 처리중인 서비스 세션의 수, 또는 가상 응용서버의 활성화 상태를 나타내는 상태 정보 등을 VIP별로 관리한다. 이때, 가상 응용서버의 활성화 상태는 예를 들어, 가상 응용서버가 활성그룹(162), 소극적 그룹(161) 및 잠재그룹(163) 중 어느 그룹에 속하는지를 의미한다.
실시 예로서, 세션관리부(123)는 응용서버 모니터링부(124)가 주기적으로 확인하는 가상 응용서버(131c, 132c)의 모니터링 정보를 참조하여, 가상 응용서버(131c, 132c)의 고장 여부를 갱신할 수 있다.
모니터링부(124)는 가상 응용서버(131c, 132c)로부터 모니터링 정보를 수집한다. 예를 들어, 모니터링부(124)는 복수의 가상 응용서버들 중 임의의 가상 응용서버(132c)와 인터페이스하여, 가상 응용서버(132c)로부터 모니터링 정보를 수집할 수 있다. 수집된 모니터링 정보는 앞서 설명한 바와 같이, 세션관리부(123)에 제공될 수 있다.
실시 예로서, 가상 응용서버(131c, 132c)의 모니터링 정보는 가상 응용서버(131c, 132c)의 고장 여부를 나타내는 정보 외에도 가상 응용서버(131c, 132c)의 CPU 성능, CPU 활용률, 메모리 성능, 메모리 활용률 또는 네트워크 성능과 같은 가상 응용서버(131c, 132c)의 시스템 자원 정보를 더 포함할 수 있다.
서버제어부(125)는 전송제어부(122)의 요청에 따라, 물리서버(131, 132, 133)의 시스템 자원 가용 여부 등을 고려한 스케일-아웃 또는 스케일-인을 통해 새로운 가상 응용서버를 서비스 클러스터(130)에 추가하거나, 기존의 가상 응용서버(131c, 132c) 중 적어도 일부를 서비스 클러스터(130)로부터 배제 또는 제거한다.
서버제어부(125)는 외부의 시스템 관리자 또는 다른 외부 응용 프로그램의 도움없이도, 능동적으로 가상 응용서버를 추가 또는 제거할 수 있도록 구성된다. 서버제어부(125)는 가상 응용서버를 추가 또는 제거하기 위해 서비스관리부(126)에 저장된 물리서버 정보 또는 가상머신 템플릿을 참조할 수 있다. 물리서버 정보 또는 가상머신 템플릿은 VIP별로 서비스관리부(126) 내에 미리 정의된 정보 또는 데이터로서, 물리서버 정보는 물리서버들(131, 132, 133)의 UUID, IP 주소, 관리자 계정정보, 시스템 사양 등을 포함할 수 있고, 가상머신 템플릿은 가상머신의 가상 CPU 수, 메모리 용량, 디스크 용량, 네트워크 인터페이스 정보, 가상머신 이미지 정보 등을 포함할 수 있다.
서버제어부(125)가 가상 응용서버를 추가 또는 제거하는 구체적인 방법은 다음과 같다.
서버제어부(125)가 새로운 가상 응용서버를 추가하는 경우, 서버제어부(125)는 새로운 가상 응용서버를 생성할 물리서버를 먼저 결정한다. 이때, 서버제어부(125)는 물리서버의 상태정보에 따라 이용가능한 물리서버들(131, 132, 133) 각각에 선택 우선 순위를 부여하여, 그에 따라 최적의 물리서버를 선택한다. 물리서버의 상태 정보는 앞서 가상 응용서버와 관련하여 설명한 바와 같이, 물리서버의 활성화 상태를 나타내는 정보로서, 물리서버가 활성그룹(162), 소극적 그룹(161) 및 잠재그룹(163) 중 어느 그룹에 속하는지를 나타낸다.
물리서버의 상태 정보는 물리서버가 포함하는 가상 응용서버의 상태정보에 기반하여 변화하거나, 가상 응용서버의 상태정보로 갈음 또는 대체될 수 있다.
새로운 가상 응용서버를 생성할 물리서버(예를 들어, 132)가 선정되면, 서버제어부(125)는 물리서버(132)에 있는 가상머신 제어부(132b)에 서비스관리부(126)로부터 획득한 가상머신 템플릿을 전달하여 VIP(150)에 최적화된 새로운 가상 응용서버를 생성하도록 한다. 이때, 물리서버(132)는 가상머신 템플릿에 정의된 가상머신 이미지 정보(예를 들어, 가상머신 이미지 UUID)를 참조하여 가상머신 이미지풀(170, 후술됨)에 저장된 가상머신 이미지들(171, 172) 중에서 생성될 가상 응용서버에 적합한(또는 대응되는) 하나의 이미지를 선택하고, 선택된 가상머신 이미지를 이용하여 새로운 가상 응용서버를 생성한다. 가상 응용서버 생성에 이용되는 가상머신 이미지는 VIP(150)와 관련된 서비스 요청을 처리하는 데 필요한 응용 프로그램 설치 및 환경 설정이 모두 완료되어 있는 소프트웨어로서 구성된 이미지이다. 따라서, 새롭게 생성된 가상 응용서버는 생성 즉시 곧바로 서비스 요청 처리에 사용될 수 있다.
반대로, 서버제어부(125)가 기존의 가상 응용서버(131c, 132c) 중 적어도 일부를 제거하는 경우, 서버제어부(125)는 미리 결정된 방식으로 지정된 가상 응용서버 또는 임의의 가상 응용서버(예를 들어, 131c)를 선택한 후, 이를 소극적 그룹(161)으로 분류한다. 소극적 그룹(161)에 속한 가상 응용서버(131c)는 현재 처리중인 서비스 세션만 마저 처리하도록 설정되고, 가상 응용서버(131c)에는 추가적인 서비스 세션이 더 이상 할당되지 않는다. 만일, 가상 응용서버(131c)의 상태가 다시 활성 그룹(162)으로 바뀌지 않는다면, 소극적 그룹(161)에 속한 가상 응용서버(131c)는 어느 시점에 더 이상 처리할 서비스 세션이 존재하지 않게 된다. 이 경우, 가상 응용서버(131c)는 동작을 중단(suspend or shutdown)한 후 자신이 사용하던 시스템 자원을 반환하고 삭제된다.
실시 예로서, 가상 응용서버(131c)의 상태변화(예를 들어, 활성 그룹(162)에서 소극적 그룹(161)으로의 변화) 또는 삭제는 가상 응용서버(131c)가 포함된 물리서버(131)의 상태변화에도 영향을 미친다. 예를 들어, VIP와 관련하여 물리서버(131)가 포함하는 모든 가상 응용서버(131c)들이 소극적 그룹(161)에 속하면 물리서버(131)도 해당 VIP에 대해서 소극적 그룹으로 분류되고, VIP와 관련하여 물리서버(131)가 포함하는 모든 가상 응용서버(131c)가 삭제되면 물리서버(131)는 해당 VIP에 대해서 잠재 그룹(163)으로 분류되어 이후의 스케일-아웃에 대비하게 된다.
이와 같이, 활성 그룹(162)과 잠재 그룹(163) 사이에 과도적인 소극적 그룹(161)을 설정하는 것은 가상 응용서버의 서비스 처리 중단이나 서비스 처리 지연과 같은 문제를 발생시키지 않으면서 동적으로 가상 응용서버들의 규모를 확장 또는 축소시킬 수 있도록 하기 위함이다.
서비스관리부(126)는 사용가능한 물리서버(131, 132, 133)의 UUID, 물리서버(131, 132, 133)의 상태 정보, 가상 응용서버(131c, 132c)의 구성 정보(예를 들어, 가상 CPU 수, 메모리 용량, 디스크 용량, 네트워크 인터페이스 정보, 가상머신 이미지 UUID 등)를 포함하는 가상머신 템플릿, 초기의 서비스 요청 처리를 수행할 가상 응용서버의 디폴트(default) 개수, 부하 분산 장치(120)가 이용할 부하 분산 알고리즘, 서비스 세션 관리 정책, 가상 응용서버 규모의 확장 또는 축소에 이용할 상위 임계값과 하위 임계값 등의 정보를 저장 및 관리한다.
한편, 본 발명에 따른 부하 분산 시스템(100)은 하나 이상의 가상머신 이미지(171, 172)를 포함하는 가상머신 이미지 풀(170)을 포함한다.
가상머신 이미지 풀(170)은 부하 분산 장치(120)의 제어에 따라 새로운 가상 응용서버가 생성될 때 사용되는 이미지인 가상머신 이미지(171, 172)를 저장 및 관리한다. 가상머신 이미지(171, 172)는 처리할 서비스 요청과 관련된 VIP(150)에 따라, 생성될 가상 응용서버에 필요한 응용 프로그램의 설치 및 환경설정이 완료된 상태로 저장 및 관리된다. 새로운 가상 응용서버 생성시, 가상머신 이미지 풀(170)은 가상머신 이미지(171, 172)를 모든 설치 및 환경설정이 완료된 상태로 제공함으로써, 생성된 가상 응용서버가 생성 즉시 필요한 서비스 요청을 처리할 수 있도록 돕는다. 나아가, 가상 응용서버들은 VIP별로, 동일한 가상머신 템플릿과 가상머신 이미지(171, 172)를 사용하므로, 특정 VIP(150)와 관련된 서비스 요청을 처리하는 모든 가상 응용서버는 동일한 시스템 형상을 갖게 된다. 따라서, 그에 따라 본 발명에서 제안하는 상위 임계치 및 하위 임계치를 이용한 동적 가상 응용서버 제어가 더욱 효과적으로 적용될 수 있다.
지금까지는 부하 분산 장치(120)의 각 구성 요소에 대해 설명하였다. 설명된 부하 분산 장치(120)에 대한 전체적인 이해를 돕기 위해, 이하에서는 부하 분산 장치(120)의 동작 방법을 구체적이고 상세한 예를 들어 설명한다. 한편, 이 예에서 부하 분산 장치(120)는 각 가상 응용서버들(131c, 132c)이 처리중인 평균 서비스 세션 수에 따라, 가상 응용서버의 수를 제어하는 것으로 가정한다. 부연하면, 평균 서비스 세션 수는 특정 VIP와 관련하여 처리중인 총 서비스 세션 수를 그 서비스 세션들을 처리중인 가상 응용서버의 수로 나눈 값을 의미한다. 그러나, 이는 단지 예시적인 가정일 뿐으로, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 부하 분산 장치(120)는 가상 응용서버들이 처리하는 데이터의 평균 트래픽 양에 기반하여 가상 응용서버의 수를 제어할 수 있다.
먼저, 평균 서비스 세션의 수가 미리 결정된 상위 임계값을 초과하면, 부하 분산 장치(120)는 현재 가상 응용서버의 규모에 비해 부하 분산 서비스가 처리하는 부하(또는, 부하의 크기)가 과다한 것으로 판단한다. 그리고, 부하 분산 장치(120)는 그에 따라 VIP와 관련된 서비스 요청을 분산 처리할 새로운 가상 응용서버를 추가시킨다. 그 결과, 새롭게 추가된 가상 응용서버가 서비스 세션을 분담하여 처리하므로, VIP에 대한 평균 서비스 세션 수는 상위 임계값 이하로 감소하고 클라이언트에게 제공되는 서비스의 품질도 보장된다.
한편, 실시 예로서, 상위 임계값은 처리중인 서비스 요청(또는, 서비스 세션)의 유형(예를 들어, 웹서버 서비스 요청, 데이터베이스 서버 서비스 요청, 응용서버 서비스 요청, 파일서버 서비스 요청, 미디어전송서버 서비스 요청 등)에 따라, 각각의 서비스 요청의 유형별로 상이한 값으로서 미리 결정될 수 있다.
반대로, 평균 서비스 세션의 수가 미리 결정된 하위 임계값 미만이면, 부하 분산 장치(120)는 현재 가상 응용서버의 규모에 비해 서비스 부하가 과소한 것으로 판단한다. 이는 처리중인 서비스 요청에 비해 시스템 자원이 과잉 투입되고 있음을 의미하므로, 부하 분산 장치(120)는 서비스 요청을 처리중인 가상 응용서버들(131c, 132c) 중 적어도 일부를 서비스에서 제외시킨다. 이를 위해, 부하 분산 장치(120)는 먼저 서비스 VIP와 관련된 서비스 요청을 처리중인 가상 응용서버들(131c, 132c) 중에서 처리중인 서비스 세션의 수가 가장 작은 가상 응용서버(예를 들어, 131c)를 선택하고, 선택된 가상 응용서버(131c)를 소극적 그룹(161)으로 분류한다. 소극적 그룹(161)으로 분류된 가상 응용서버(131c)에는 새로운 서비스 세션의 추가적으로 할당되지 않으며, 가상 응용서버(131c)는 현재 처리중인 서비스 세션만을 처리하게 된다. 그리고, 시간이 경과하여 가상 응용서버(131c)가 자신에게 할당된 모든 서비스 세션을 처리하여 더 이상 처리중인 서비스 세션이 존재하지 않게 되면, 소극적 그룹(161) 내의 가상 응용서버(131c)는 일정한 유예 시간의 경과를 기다린 후 동작을 중단(suspend or shutdown) 또는 삭제되고 점유하고 있던 시스템 자원을 반환한다.
실시 예로서, 가상 응용서버의 중단 또는 삭제에 의해, 물리서버(예를 들어, 133) 내에 VIP와 관련된 서비스 요청을 처리하는 가상 응용서버가 하나도 존재하지 않게 되면, 물리서버(133)는 잠재 그룹(163)으로 분류되고 이후 새로운 가상 응용서버의 확장이 필요한 경우를 대비하게 된다.
한편, 클라이언트, VIP, 네트워크(140), 서비스 클러스터(130), 물리서버들(131, 132, 133), 하이퍼바이저(131a, 132a, 133a), 가상머신 제어부(131b, 132b, 133b), 가상 응용서버(131c, 132c)에 대해 여기서 설명된 것 외의 내용은, 도 2의 클라이언트(21), VIP(25), 네트워크(24), 서비스 클러스터(23), 물리서버들 (23_1, 23_2, 23_3), 하이퍼바이저(23_1a, 23_2a, 23_3a), 가상머신 제어부(23_1b, 23_2b, 23_3b) 및 가상 응용서버(23_1c, 23_1d, 23_2c, 23_3c)의 그것과 실질적으로 동일하다.
본 발명의 실시 예들에 따르면, 서비스 관리자나 외부 응용프로그램과 같은 외부로부터의 개입 없이, 부하 분산 시스템의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라, 능동적으로 가상 응용서버를 추가, 상태변경, 또는 제거함으로써, 서비스 클러스터의 처리 용량을 적절하게 제어할 수 있다.
그에 따라, 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화할 수 있으며, 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서 서비스 품질의 저하 없이 지속적으로 서비스를 제공할 수 있다.
도 4는 본 발명의 일 실시 예에 따른, 가상 응용서버 또는 물리서버의 상태변경을 구체적으로 설명하기 위한 상태도이다. 도 4를 참조하면, 가상 응용서버 또는 물리서버는 활성 상태(210), 소극적 상태(220) 및 잠재 상태(230) 중 어느 하나의 상태로 존재한다.
도 4를 참조하면, 본 발명에 따른 부하 분산 시스템의 가상 응용서버(131c, 132c) 또는 물리서버(131, 132, 133)는 반드시 활성 상태(210), 소극적 상태(220), 잠재 상태(230) 중 어느 하나의 상태에 놓이게 된다. VIP과 관련하여 서비스를 제공하기 전에는 모든 물리서버(131, 132, 133)가 잠재 상태(230)에 있으며, VIP와 관련한 서비스 제공(또는, 서비스 요청 처리)을 시작함과 동시에 초기의 서비스 요청 처리를 수행할 가상 응용서버의 디폴트(default) 개수(예를 들어, 서비스관리부(126)에 저장된)만큼의 가상 응용서버(132c)를 생성하여 서비스 요청을 처리한다. 이때 가상 응용서버(132c) 및 가상 응용서버(132c)가 생성된 물리서버(162)는 활성 상태(210)로 천이한다(203). 만일 외부 시스템 관리자에 의해 VIP와 관련한 서비스 제공이 종료되면, 활성 상태(210)에 있는 가상 응용서버(132c)도 종료되고 가상 응용서버(132c)를 운용하던 물리서버(132)도 잠재 상태(230)로 천이한다(205).
한편, 서비스 요청을 처리하고 있던 중에 수신되는 부하 분산 서비스의 부하가 폭증하여 VIP에 대한 평균 서비스 세션 수가 상위 임계값을 초과하면, 새로운 가상 응용서버가 추가로 서비스 요청 처리에 투입되게 된다. 이때, 부하 분산 장치(120)는 우선적으로 소극적 상태(220)에 있는 가상 응용서버(131c)가 존재하는지를 살핀다. 소극적 상태(220)인 가상 응용서버(131c)가 존재하면, 부하 분산 장치(120)는 가상 응용서버(131c)를 활성 상태(210)로 천이시켜 서비스 요청 처리에 투입한다(204). 반대로, 소극적 상태(220)인 가상 응용서버가 존재하지 않으면, 부하 분산 장치(120)는 잠재 상태(230)에 있는 물리서버 중 최적의 물리서버(133)를 선택한 다음, 선택된 물리서버(133) 내에 새로운 가상 응용서버를 생성하고 이를 서비스 요청 처리에 투입한다. 이때, 선택된 물리서버(133) 및 생성된 가상 응용서버는 활성 상태(210)로 천이한다(203).
반대로, 서비스 요청을 처리하고 있던 중에 수신되는 부하 분산 서비스의 부하가 감소하여 VIP에 대한 평균 서비스 세션 수가 하위 임계값 미만이 되면, 동작중인 가상 응용서버 중 적어도 일부가 서비스 요청 처리에서 제외된다. 이때, 부하 분산 장치(120)는 활성 상태(210)에 있는 가상 응용서버 중에서 처리중인 서비스 세션의 수가 가장 작은 가상 응용서버(또는, 다른 선택 방법에 의해 선택된 가상 응용서버)를 소극적 상태(220)로 천이시킨다(201).
이때, 소극적 상태(220)로 천이한 가상 응용서버(131c)에는 더 이상 새로운 서비스 세션이 할당되지 않으며, 소극적 상태(220)로 천이한 가상 응용서버(131c)가 처리중이던 기존의 서비스 세션만을 처리하게 된다. 만일 소극적 상태(220)에 있는 가상 응용서버(131c)가 처리중이던 서비스 세션을 모두 처리하면, 일정한 유예 시간의 경과(time-out)를 기다린 후에 해당 가상 응용서버(131c)는 동작을 중단(suspend or shutdown)하고, 점유하던 모든 시스템 자원을 반환한다.
이와 같은 방법으로, 물리서버(131) 내에 VIP와 관련된 서비스 요청을 처리하는 가상 응용서버가 하나도 존재하지 않게 된 경우, 물리서버(131)는 잠재 상태(230)로 천이하여(205) 이후의 스케일-아웃을 대비한다.
이와 같이 가상 응용서버(131c, 132c) 및 물리서버(131, 132, 133)의 활성화 상태를 활성 상태, 소극적 상태 및 잠재 상태 중 어느 하나로 구분함으로써, 가상 응용서버 및 물리서버는 동적으로 더욱 유연하게 운영되게 된다. 나아가, 가상 응용서버의 규모를 동적으로 확장 또는 축소시키는 경우에도, 클라이언트(110)에 제공되는 서비스가 중단이나 지연되지 않을 수 있으며, 예측 불가능한 서비스 부하의 변동에 대해 외부 시스템 관리자 또는 외부 응용 프로그램의 도움없이도 부하 분산 시스템(100)은 가상 응용서버의 규모를 효과적으로 조정할 수 있게 된다.
도 5는 본 발명의 일 실시 예에 따른, 부하 분산 방법을 나타내는 순서도이다. 도 5를 참조하면, 부하 분산 장치(120)의 부하 분산 방법은 S111 단계 내지 S123 단계를 포함한다.
부하 분산 장치(120)는 네트워크(140)를 통해 특정 VIP를 주소로 하여 수신되는 데이터 패킷을 수신한다. 수신된 데이터 패킷이 기존의 처리중인 서비스 세션에 속하는 경우, 부하 분산 장치(120)는 전송처리부(121)의 플로우 테이블을 참조하여, 기존의 서비스 세션을 처리하는 가상 응용서버로 수신된 패킷을 전달한다. 반면에, 수신된 데이터 패킷이 새로운 서비스 세션에 해당하는 경우, 부하 분산 장치(120)는 전송제어부(122)를 통해 가상 응용서버들의 서비스 처리 상태를 분석하고, 분석 결과에 따라 수신된 새로운 서비스 세션을 처리할 가상 응용서버를 결정하게 된다. 이하에서는, 새로운 서비스 세션이 수신되는 것을 시작점으로 하여 본 발명에 따른 부하 분산 방법을 설명한다.
S111 단계에서, 부하 분산 장치(120)는 네트워크(140)를 통해 클라이언트로부터 특정 VIP와 관련된 새로운 서비스 세션을 수신한다.
S112 단계에서, 부하 분산 장치(120)는 새로운 서비스 세션의 할당을 위해, 동작중인 가상 응용서버들의 서비스 처리 상태를 분석함으로써, 부하 분산 장치(110)는 운용중인 가상 응용서버의 수(또는 규모)가 적절한지 판단한다. 이때, 부하 분산 장치(110)는 부하 분산 서비스(100)의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보를 참조할 수 있다.
예를 들어, 부하 분산 장치(120)는 가상 응용서버들이 처리중인 평균 서비스 세션 수(즉, 처리중인 전체 서비스 세션의 수를 가상 응용서버의 수로 나눈 값)가 상위 임계값을 초과하는지 판단한다. 다만 이는 예시적인 정의로서, 평균 서비스 세션의 수를 대신하여 다른 값(예를 들어, 처리중인 전체 서비스 세션의 수)이 사용될 수 있다.
그리고, 평균 서비스 세션 수가 상위 임계값을 초과하면, 부하 분산 방법은 S113 단계로 진행한다. 그렇지 않으면, 부하 분산 방법은 곧바로 S118 단계로 진행한다.
S113 단계에서, 부하 분산 장치(120)는 서비스 클러스터(130) 내에 소극적 그룹에 속한 가상 응용서버가 존재하는지 판단한다.
S113 단계는 부하 분산 서비스가 처리중인 부하에 비해 운용중인 가상 응용서버가 부족한 경우에 해당하므로, 부하 분산 장치(120)는 서비스 처리에 투입되는 가상 응용서버의 규모를 확장하여(예를 들어, 가상 응용서버의 수를 늘려) 가상 응용서버들의 평균적인 부하를 낮추어야 한다. 이를 위해, S113 단계에서 부하 분산 장치(120)는 우선적으로 현재 물리서버 내에 생성되어 있지만 새로운 서비스 세션을 할당받지 않고 있는, 소극적 상태의 가상 응용서버를 탐지한다.
소극적 그룹의 가상 응용서버가 존재하면, 부하 분산 방법은 S114 단계로 진행한다. 그렇지 않으면, 부하 분산 방법은 S116 단계로 진행한다.
S114 단계에서, 부하 분산 장치(120)는 소극적 그룹의 가상 응용서버들 중에서 활성 그룹으로 상태변경할 가상 응용서버를 결정한다.
실시 예로서, 상태변경할 가상 응용서버는 미리 결정된 기준에 따라 결정될 수도 있다. 예를 들어, 부하 분산 장치(120)는 소극적 그룹의 가상 응용서버들 중에서 가장 많은 서비스 세션을 처리하고 있는 가상 응용서버를 가상 응용서버로서 결정할 수 있다. 일반적으로, 서비스 세션의 수가 적은 가상 응용서버는 그렇지 않은 경우보다 더 이른 시간에 동작 중단 및 시스템 자원 반환이 이루어질 가능성이 높다. 따라서, 위 예에서와 같이, 처리중인 서비스 세션의 수가 적은 가상 응용서버를 소극적 그룹에 더 잘 남겨두면, 상대적으로 가상 응용서버의 자원 회수 및 물리서버의 잠재 그룹으로의 전환이 빨라지므로, 부하 분산 시스템(100)의 시스템 자원 관리에 더욱 효율적일 수 있다.
다만, 이는 예시적인 것으로서, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 부하 분산 장치(120)는 소극적 그룹의 가상 응용서버들 중 임의의 가상 응용서버를 상태변경할 가상 응용서버로 결정할 수도 있다.
상태변경할 가상 응용서버가 결정되면, 부하 분산 방법은 S115 단계로 진행한다.
S115 단계에서, 부하 분산 장치(120)는 S114 단계에서 결정된 가상 응용서버의 상태가 활성 그룹으로 변경되도록, 부하 분산 시스템(100)을 제어한다.
S115 단계가 완료되면, 부하 분산 방법은 S121 단계로 진행한다.
한편, 다시 S113 단계로 돌아가면, S113 단계에서 소극적 그룹에 속한 가상 응용서버가 존재하지 않은 경우, 부하 분산 방법은 S116 단계로 진행한다.
S116 단계에서, 부하 분산 장치(120)는 잠재 그룹의 물리서버 중 적어도 하나의 물리서버에 새로운 가상 응용서버를 생성시킨다. S116 단계는 가상 응용서버의 규모를 확장할 필요가 있지만 소극적 그룹에 속한 가상 응용서버는 존재하지 않는 경우로서, 이러한 경우 새로운 가상 응용서버를 생성하여 서비스 부하 처리를 분담시킬 필요가 있다.
이를 위해, 부하 분산 장치(120)는 잠재 그룹에 속한 물리서버 중 새로운 가상 응용서버를 생성할 최적의 물리서버를 결정하고, 결정된 물리서버에 새로운 가상 응용서버를 생성시킨다. 새로운 가상 응용서버를 생성할 최적의 물리서버는 다양한 기준에 따라 결정될 수 있다. 예를 들어, 잠재 그룹에 속한 물리서버 중 사용가능한 시스템 자원이 가장 풍부한 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있고, 부하 분산 장치(120)와의 인터페이스 속도가 가장 빠른 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있다. 또는, 잠재 그룹에 속한 물리서버 중 임의의 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있다. 또는, 활성 그룹에 속한 물리서버 중 잉여 시스템 자원이 가장 풍부하거나, 시스템 부하가 가장 적은 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있다.
한편, 실시 예로서, 부하 분산 장치(120)는 가상머신 이미지 풀(170)에 저장된 가상머신 이미지(171, 172)를 이용하여 새로운 가상 응용서버가 생성되도록 부하 분산 시스템(100)을 제어할 수 있다. 가상머신 이미지(171, 172)에 대한 구체적인 내용은 앞서 설명한 바와 동일하다.
위와 같은 방법으로 잠재 그룹으로부터 적어도 하나의 물리서버가 결정되고, 결정된 물리서버 내에 가상 응용서버가 생성되면, 부하 분산 방법은 S117 단계로 진행한다.
S117 단계에서, 부하 분산 장치(120)는 S116 단계에서 생성된 가상 응용서버의 상태를 활성 그룹으로 변경시킨다. 실시 예로서, 부하 분산 장치(120)는 생성된 가상 응용서버의 상태변경과 함께, 생성된 가상 응용서버를 포함하는 물리서버의 상태도 활성 그룹으로 변경시킬 수 있다.
S117 단계가 완료되면, 부하 분산 방법은 S121 단계로 진행한다.
한편, 다시 S112 단계로 돌아가서, 가상 응용서버의 처리중인 평균 세션 수가 상위 임계값을 초과하지 않으면, 부하 분산 방법은 S118 단계로 진행한다.
S118 단계에서, 부하 분산 장치(120)는 가상 응용서버들이 처리중인 평균 서비스 세션 수가 하위 임계값 미만인지 판단한다. 다만 이는 예시적인 정의로서, 평균 서비스 세션 수를 대신하여 다른 값(예를 들어, 처리중인 전체 서비스 세션의 수)이 사용될 수 있다.
그리고, 평균 서비스 세션 수가 상위 임계값 미만이면, 부하 분산 방법은 S119 단계로 진행한다. 그렇지 않으면, 부하 분산 방법은 곧바로 S121 단계로 진행한다.
한편, S119 단계로 진행하는 경우는, 처리중인 서비스 세션에 비해 가상 응용서버의 수가 많은 경우이므로, 부하 분산 시스템(100)의 자원 활용률을 높이기 위해 가상 응용서버의 규모를 감소시키는 스케일-인을 수행할 필요가 있다.
S119 단계에서, 부하 분산 장치(120)는 활성 그룹의 가상 응용서버들 중 소극적 그룹으로 상태변경할 가상 응용서버를 결정한다.
실시 예로서, 부하 분산 장치(120)는 활성 그룹의 가상 응용서버들 중에서 처리중인 서비스 세션의 수가 가장 적은 가상 응용서버를 상태변경할 가상 응용서버로 결정할 수 있다. 다만, 이는 예시적인 경우로서, 부하 분산 장치(120) 그외의 다양한 방법 또는 기준에 따라 상태변경할 가상 응용서버를 결정할 수 있다.
S120 단계에서, 부하 분산 장치(120)는 S137 단계에서 결정된 가상 응용서버의 상태를 소극적 그룹으로 변경한다.
한편, 앞서 설명했던 바와 같이, 그리고 이 설명의 말미에 다시 언급되겠지만, 소극적 그룹으로 상태변경된 가상 응용서버는 신규 서비스 세션을 더 이상 할당받지 않으며, 처리중인 서비스 세션의 완료와 함께 자신이 점유하던 시스템 자원을 반환하고 동작 중단 또는 삭제된다.
S120 단계가 완료되면, 부하 분산 방법은 S121 단계로 진행한다.
이상의 S111 단계 내지 S120 단계는 신규 서비스 세션을 할당하기 전에 필요한 가상 응용서버들을 적절한 규모로 준비하는 프로비저닝 단계로서 정의될 수 있다. S111 단계 내지 S120 단계에서, 부하 분산 방법은 부하 분산 서비스의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라 가상 응용서버를 생성, 상태변경 또는 삭제시킴으로써, 가상 응용서버의 수를 적절하게 유지한다.
S121 단계에서, 부하 분산 장치(120)는 전송제어부(122)를 통해, 미리 결정된 부하 분산 알고리즘에 따라 활성 그룹에 속하는 가상 응용서버들 중에서 새로운 서비스 세션을 처리할 가상 응용서버를 결정한다. 실시 예로서, 미리 결정된 부하 분산 알고리즘은 균등 부하 분산(round robin) 알고리즘 또는 최소 연결(least connection) 알고리즘 일 수 있다. 이때, 부하 분산 장치(120)는 세션관리부(123)가 제공하는 부하 처리 정보를 참조하여, 새로운 서비스 세션을 처리할 가상 응용서버를 결정할 수 있다. 예를 들어, 부하 분산 알고리즘이 최소 연결 알고리즘인 경우, 부하 분산 장치(120)는 세션관리부(123)에 저장된 부하 처리 정보 중 가상 응용서버들 각각이 처리중인 서비스 세션의 수를 나타내는 정보를 읽어내고, 읽어낸 정보에 따라 현재 처리중인(또는, 서비스 중인) 서비스 세션의 수가 가장 적은 가상 응용서버를 새로운 서비스 세션을 처리할 가상 응용서버로 결정한다.
S122 단계에서, 부하 분산 장치(120)는 앞서 결정된 가상 응용서버에 새로운 서비스 세션이 할당된 것을 반영하도록, 세션관리부(123)의 부하 처리 정보를 갱신한다.
S123 단계에서, 부하 분산 장치(120)는 전송처리부(121)를 통해, 앞서 결정된 가상 응용서버로 수신된 새로운 서비스 세션을 전송한다.
S121 단계 내지 S123 단계는 프로비저닝 단계를 통해 준비된 가상 응용서버에 실제로 부하를 분산시키는 부하 분산 적용단계로 정의될 수 있다.
한편, 앞서 소극적 그룹으로 상태변경된 가상 응용서버의 처리 방법에 대해 부연하면, 먼저, 부하 분산 장치(120)는 소극적 그룹에 속한 가상 응용서버가 존재하는 지 판단한다. 소극적 그룹에 속한 가상 응용서버가 존재하면, 부하 분산 장치(120)는 소극적 그룹에 속한 가상 응용서버의 처리중인 세션이 모두 완료되었는지 확인하고, 세션의 완료가 확인된 가상 응용서버를 중단시키거나 삭제한다. 이때, 중단 또는 삭제되는 가상 응용서버는 자신이 점유하던 시스템 자원을 부하 분산 시스템(100)에 반환하게 된다.
나아가, 부하 분산 장치(120)는 중단 또는 삭제된 가상 응용서버를 포함하고 있던 물리서버 내에 동작중인(즉, 특정 VIP과 관련한 서비스 세션을 처리중인) 다른 가상 응용서버가 존재하는지 판단한다. 동작 중인 다른 가상 응용서버가 존재하지 않으면(즉, 물리서버 내에 동작중인 가상 응용서버가 없으면), 부하 분산 장치(120)는 해당 물리서버의 상태를 잠재 그룹으로 변경시킨다. 잠재 그룹에 놓여진 물리서버는 이후의 스케일-아웃에 대비하여 유보 또는 준비된다.
한편, 도 5에서 설명되지 않은 부하 분산 장치(120) 및 부하 분산 시스템(100)에 대한 다른 구체적인 내용은 앞서 도 1 내지 도 4에서 설명한 바와 동일하다.
본 발명의 실시 예들에 따르면, 서비스 관리자나 외부 응용프로그램과 같은 외부로부터의 개입 없이, 부하 분산 시스템의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라, 능동적으로 가상 응용서버를 추가, 상태변경, 또는 제거함으로써, 서비스 클러스터의 처리 용량을 적절하게 제어할 수 있다.그에 따라, 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화할 수 있으며, 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서 서비스 품질의 저하 없이 지속적으로 서비스를 제공할 수 있다.
또한, 도 5의 부하 분산 방법은 가상 응용서버의 규모를 확장 또는 축소할 때, 소극적 그룹이라는 하나의 상태 정보에 기초하여 가상 응용서버를 상태변경하거나 새로운 가상 응용서버를 생성한다. 그러한 구성에 따르면, 본 발명의 부하 분산 방법은 새로운 가상 응용서버 생성이나 기존 가상 응용서버의 삭제시, 클라이언트(110)에 제공되는 서비스의 지연이나 중단을 방지하는 효과를 갖는다.
지금까지 본 명세서의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 명세서의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다.
또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 명세서의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 명세서의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 및 그 균등물에 의해 정해져야 한다.
10, 20, 100: 부하 분산 시스템
11, 21: 클라이언트
12, 22, 120: 부하 분산 장치 13, 23, 130: 클러스터
14, 24, 140: 네트워크 15, 25: VIP
13_1, 13_2, 13_n: 응용서버
23_1, 23_2, 23_3, 131, 132, 133: 물리서버
23_1c, 23_1d, 23_2c, 23_3c, 131c, 131d, 132c, 133c: 가상 응용서버
23_1a, 23_2a, 23_3a, 131a, 132a, 133a: 하이퍼바이저
23_1b, 23_2b, 23_3b, 131b, 132b, 133b: 가상머신 제어부
121: 전송 처리부 122: 전송 제어부
123: 세션 관리부 124: 응용서버 모니터링부
125: 서버 제어부 126: 서비스 관리부
170: 가상머신 이미지 풀 171, 172: 가상머신 이미지
12, 22, 120: 부하 분산 장치 13, 23, 130: 클러스터
14, 24, 140: 네트워크 15, 25: VIP
13_1, 13_2, 13_n: 응용서버
23_1, 23_2, 23_3, 131, 132, 133: 물리서버
23_1c, 23_1d, 23_2c, 23_3c, 131c, 131d, 132c, 133c: 가상 응용서버
23_1a, 23_2a, 23_3a, 131a, 132a, 133a: 하이퍼바이저
23_1b, 23_2b, 23_3b, 131b, 132b, 133b: 가상머신 제어부
121: 전송 처리부 122: 전송 제어부
123: 세션 관리부 124: 응용서버 모니터링부
125: 서버 제어부 126: 서비스 관리부
170: 가상머신 이미지 풀 171, 172: 가상머신 이미지
Claims (14)
- 부하 분산 시스템 내의 물리 서버들에 포함된 가상 응용서버들로 부하를 분산시키는 부하 분산 장치의 부하 분산 방법에 있어서,
상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계; 및
상기 판단한 결과에 따라, 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계를 포함하고,
상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는, 부하 분산 장치의 부하 분산 방법.
- 제 1 항에 있어서,
상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는,
상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치를 초과하면, 상기 부하 분산 시스템이 수신 및 처리중인 부하가 과다한 것으로 판단하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
- 제 1 항에 있어서,
상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는,
상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치미만이면, 상기 응용서버의 수가 과다하거나 과잉 투입된 것으로 판단하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
- 제 2 항 또는 제 3 항에 있어서,
상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값은 상기 부하 분산 시스템이 처리중인 서비스 세션의 개수를 상기 서비스 세션을 처리중인 가상 응용서버의 수로 나눈 값인, 부하 분산 장치의 부하 분산 방법.
- 제 2 항 또는 제 3 항에 있어서,
상기 임계치는 상기 부하 분산 시스템에 포함된 가상 응용서버의 모니터링 정보 또는 상기 부하 분산 시스템이 수집한 시스템 부하 정보를 참조하여 결정되는, 부하 분산 장치의 부하 분산 방법.
- 제 1 항에 있어서,
상기 하나 이상의 가상 응용서버 또는 상기 물리서버는 활성 그룹, 소극적 그룹 및 잠재 그룹 중 어느 하나에 포함되는, 부하 분산 장치의 부하 분산 방법.
- 제 6 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 잠재 그룹에 속한 물리서버 중 적어도 하나의 물리서버에 상기 하나 이상의 가상 응용서버를 생성하는 단계; 및
상기 생성된 하나 이상의 가상 응용서버의 상태를 상기 활성 그룹으로 변경하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
- 제 7 항에 있어서,
상기 생성된 하나 이상의 가상 응용서버는 미리 생성된 가상머신 이미지를 이용하여 생성되고,
상기 가상머신 이미지는 상기 생성된 하나 이상의 가상 응용서버를 구동하기 위한 운영체제 등을 포함하는 소프트웨어 이미지 파일로서, 상기 서비스 요청을 처리하는 데 필요한 응용프로그램 및 환경설정을 포함하도록 구성되는, 부하 분산 장치의 부하 분산 방법.
- 제 8 항에 있어서,
상기 미리 생성된 가상머신 이미지를 복수의 가상머신 이미지를 포함하는 가상머신 이미지 풀로부터 선택하기 위해 가상머신 템플릿을 참조하는, 부하 분산 장치의 부하 분산 방법.
- 제 6 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 하나 이상의 가상 응용서버의 상태를 상기 소극적 그룹으로부터 상기 활성 그룹으로 상태변경하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
- 제 6 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 하나 이상의 가상 응용서버의 상태를 상기 활성 그룹으로부터 상기 소극적 그룹으로 상태변경하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
- 제 11 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 소극적 그룹으로 상태변경된 상기 하나 이상의 가상 응용서버에 대해서, 처리중인 세션이 완료되었는지 확인하는 단계; 및
상기 확인 결과에 따라, 상기 하나 이상의 가상 응용서버를 중단시키거나 삭제하는 단계를 더 포함하는, 부하 분산 장치의 부하 분산 방법.
- 제 12 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 하나 이상의 가상 응용서버를 포함하는 물리서버를 잠재 그룹으로 상태변경하는 단계를 더 포함하는, 부하 분산 장치의 부하 분산 방법.
- 클라이언트로부터 수신되는 서비스 요청을 부하 분산 시스템 내의 물리서버에 포함된 가상 응용서버들로 분산 할당하는 부하 분산 장치에 있어서,
상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 전송제어부; 및
상기 판단한 결과에 따라, 하나 이상의 가상 응용서버가 생성되거나, 상태변경되거나, 삭제되도록 제어하는 서버 제어부를 포함하고,
상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는, 클라이언트로부터 수신되는 서비스 요청을 가상 응용서버들로 분산 할당하는 부하 분산 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140113432A KR20160025926A (ko) | 2014-08-28 | 2014-08-28 | 가상 응용서버들로 부하를 분산하는 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140113432A KR20160025926A (ko) | 2014-08-28 | 2014-08-28 | 가상 응용서버들로 부하를 분산하는 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160025926A true KR20160025926A (ko) | 2016-03-09 |
Family
ID=55536408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140113432A KR20160025926A (ko) | 2014-08-28 | 2014-08-28 | 가상 응용서버들로 부하를 분산하는 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20160025926A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180096310A (ko) * | 2017-02-21 | 2018-08-29 | 에스케이텔레콤 주식회사 | 성능 제어 방법 및 이를 위한 장치 |
KR102112047B1 (ko) * | 2019-01-29 | 2020-05-18 | 주식회사 리얼타임테크 | 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법 |
CN112035250A (zh) * | 2020-08-25 | 2020-12-04 | 上海中通吉网络技术有限公司 | 高可用局域网服务管理方法、设备及部署架构 |
WO2022139150A1 (ko) * | 2020-12-24 | 2022-06-30 | (주)비디오몬스터 | 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법 |
-
2014
- 2014-08-28 KR KR1020140113432A patent/KR20160025926A/ko not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180096310A (ko) * | 2017-02-21 | 2018-08-29 | 에스케이텔레콤 주식회사 | 성능 제어 방법 및 이를 위한 장치 |
KR102112047B1 (ko) * | 2019-01-29 | 2020-05-18 | 주식회사 리얼타임테크 | 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법 |
WO2020158968A1 (ko) * | 2019-01-29 | 2020-08-06 | ㈜리얼타임테크 | 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법 |
CN112035250A (zh) * | 2020-08-25 | 2020-12-04 | 上海中通吉网络技术有限公司 | 高可用局域网服务管理方法、设备及部署架构 |
WO2022139150A1 (ko) * | 2020-12-24 | 2022-06-30 | (주)비디오몬스터 | 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112136294B (zh) | 应用功能影响业务路由的消息和系统 | |
US10171567B2 (en) | Load balancing computer device, system, and method | |
US10613883B2 (en) | Managing virtual machine migration | |
US20190028538A1 (en) | Method, apparatus, and system for controlling service traffic between data centers | |
KR101781063B1 (ko) | 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치 | |
EP3338184B1 (en) | Technique for reconfiguring a virtual machine | |
US10993127B2 (en) | Network slice instance management method, apparatus, and system | |
JP2018067959A (ja) | トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法 | |
US10541901B2 (en) | Methods, systems and computer readable media for optimizing placement of virtual network visibility components | |
US20220318071A1 (en) | Load balancing method and related device | |
CN107809495B (zh) | 地址管理方法及装置 | |
EP3113429B1 (en) | Network resource processing device, method and system | |
JP2018527668A (ja) | データトラフィックを制限するための方法及びシステム | |
US8458702B1 (en) | Method for implementing user space up-calls on java virtual machine before/after garbage collection | |
KR20160025926A (ko) | 가상 응용서버들로 부하를 분산하는 장치 및 방법 | |
CN113760549A (zh) | 一种pod部署方法及装置 | |
US10681398B1 (en) | Video encoding based on viewer feedback | |
US12101247B2 (en) | Systems and methods for selecting tunnels for transmitting application traffic by an SD-WAN application | |
JP6488910B2 (ja) | 制御方法、制御プログラム、及び情報処理装置 | |
JP2019028673A (ja) | 管理装置および管理方法 | |
US20230254243A1 (en) | Systems and methods for managing network services by an sd-wan application and an sd-wan device | |
WO2018129957A1 (zh) | vBNG系统多虚拟机负荷分担方法及vBNG系统设备 | |
CN113973092B (zh) | 链路资源调度方法、装置、计算设备及计算机存储介质 | |
CN113535402A (zh) | 基于5g mec的负载均衡处理方法、装置及电子设备 | |
Laha et al. | Dynamic Load Balancing in Cloud Computing: A Review and a Novel Approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |