[go: up one dir, main page]

KR20160025926A - Apparatus and method for balancing load to virtual application server - Google Patents

Apparatus and method for balancing load to virtual application server Download PDF

Info

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
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.)
Withdrawn
Application number
KR1020140113432A
Other languages
Korean (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 KR1020140113432A priority Critical patent/KR20160025926A/en
Publication of KR20160025926A publication Critical patent/KR20160025926A/en
Withdrawn legal-status Critical Current

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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server 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

본 발명은 네트워크로 연결된 컴퓨터 기반의 서비스 환경에서 동작하는 응용서버들의 부하를 분산하는 장치 및 방법에 관한 것이다.
본 발명에 따른 부하 분산 장치의 부하 분산 방법은 부하 분산 시스템 내의 물리 서버들에 포함된 가상 응용서버들로 부하를 분산시키되, 부하 분산 시스템의 상태정보, 물리서버의 상태정보 또는 가상 응용서버들의 상태정보에 따라, 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계 및 판단한 결과에 따라, 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계를 포함하고, 부하 분산 시스템의 상태정보는 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타낸다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and a method for distributing load among application servers operating in a network-connected computer-based service environment.
A load balancing method for a load balancing apparatus according to the present invention is a method for balancing load on virtual application servers included in physical servers in a load balancing system, Determining whether the number of virtual application servers operating in the load balancing system is appropriate according to the information and generating and changing or deleting one or more virtual application servers according to a result of the determination; The state information indicates the size or amount of load the load distribution system is receiving and processing.

Description

가상 응용서버들로 부하를 분산하는 장치 및 방법{APPARATUS AND METHOD FOR BALANCING LOAD TO VIRTUAL APPLICATION SERVER}[0001] APPARATUS AND METHOD FOR BALANCING LOAD TO VIRTUAL APPLICATION SERVER [0002]

본 발명은 가상 응용서버들로 부하를 분산하는 장치 및 방법에 관한 것으로서, 더욱 상세하게는 네트워크로 연결된 컴퓨터 기반의 서비스 환경에서 동작하는 가상 응용서버들로 부하를 분산하는 장치 및 방법에 관한 것이다
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and method for distributing a load to virtual application servers, and more particularly, to an apparatus and a method for distributing a load to virtual application servers operating in a network-

인터넷, 기업 네트워크 또는 홈 네트워크와 같은 다양한 네트워크 환경들에 대해, 클라이언트-서버 구조를 바탕으로 한 다양한 서비스가 제공되고 있다. 이러한 클라이언트-서버 기반의 서비스에 있어서, 많은 수의 클라이언트를 상대로 서비스를 제공하거나 서비스 제공을 위해 많은 컴퓨팅 및 네트워크 자원이 요구되는 경우, 서비스의 좋은 품질 및 성능을 유지하기 위해 동적으로 서버의 규모를 제어하는 방식이 사용될 수 있다. A variety of services based on client-server architecture are being provided for various network environments, such as the Internet, corporate networks or home networks. In such a client-server-based service, when many computing and network resources are required for providing a service to a large number of clients or providing a service, the size of the server is dynamically changed to maintain the good quality and performance of the service Can be used.

이러한 동적 제어 방식에는 대표적으로 서비스에 참여하는 응용서버의 자원을 증가시키는 스케일-업(scale-up) 방식과 서비스에 참여하는 응용서버의 수를 증가시키는 스케일-아웃(scale-out) 방식이 있다. In this dynamic control scheme, there are typically a scale-up scheme for increasing the resources of the application servers participating in the service and a scale-out scheme for increasing the number of application servers participating in the service .

그 중 스케일-아웃 방식에서는, OSI(Open Systems Interconnection) 모델의 계층-4 또는 계층-7 정보를 바탕으로 하드웨어 또는 소프트웨어로 구성된 부하 분산 장치(load balancer)를 통해 부하 분산을 수행한다. 이때, 부하 분산 장치는 미리 설정된 부하 분산 알고리즘에 따라 클라이언트의 서비스 요청을 서비스 클러스터 내의 응용서버들에게 적절히 분배함으로써, 특정 응용서버에 부하가 집중되는 것을 방지하고 전체적인 서비스의 품질을 향상시킨다. In the scale-out method, load balancing is performed through a load balancer composed of hardware or software based on Layer-4 or Layer-7 information of OSI (Open Systems Interconnection) model. At this time, the load balancing apparatus appropriately distributes the client's service request to the application servers in the service cluster according to the preset load distribution algorithm, thereby preventing the load from being concentrated on the specific application server and improving the overall service quality.

도 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)의 처리 용량을 증가시킬 수 있다. 1 is a block diagram illustrating such a general load balancing system 10. 1, the load balancing system 10 includes clients 11, a network 14, a load balancer 12, and a service cluster 13. When a service request directed to a specific Internet Protocol (VIP) is received from a plurality of clients 11_1, 11_2, and 11_n via a network, the load distributing apparatus 12 transmits the received service request To the application servers 13_1, 13_2, and 13_n in the service cluster 13. [ At this time, when the load of the application servers 13_1, 13_2, 13_n in the service cluster 13 explosively increases or exceeds a predetermined reference value due to the increase of the received service request, the load distributing apparatus 12 performs the scale- The processing capacity of the service cluster 13 can be increased.

그러나, 이러한 종래의 스케일-아웃 방식에서는 클라이언트(11)의 서비스 요청을 처리할 응용서버가 서비스 클러스터(13) 내에 미리 설정 및 등록되어 있어야 한다. 따라서, 전체적인 서비스 요구량에 대한 사전 예측이 부정확하거나 서비스 요청들이 순간적으로 집중되는 경우, 서비스 클러스터(13) 내에 미리 설정 및 등록된 응용서버만으로는 적절한 서비스 제공이 이루어지지 못하는 문제가 발생한다. 그렇다고 하여, 서비스 클러스터(13) 내에 필요 이상으로 많은 응용서버들을 등록하면, 과잉 구성으로 인한 불필요한 자원 낭비와 비용 발생이 초래될 수 있다.
However, in this conventional scale-out method, an application server to process a service request of the client 11 must be set and registered in the service cluster 13 in advance. Therefore, if the pre-prediction of the overall service demand is inaccurate or the service requests are instantaneously concentrated, a problem arises that proper service provision can not be provided only by the application servers previously set and registered in the service cluster 13. [ That is, if a number of application servers are registered in the service cluster 13 more than necessary, unnecessary resource waste and cost may be caused due to an excessive configuration.

본 발명의 목적은 외부로부터의 개입 없이, 부하 분산 서비스의 상태에 따라 서비스 클러스터의 처리 용량을 적절하게 제어하는 부하 분산 장치 및 방법을 제공하는 데 있다. It is an object of the present invention to provide a load balancer and a method for appropriately controlling the processing capacity of a service cluster according to the state of the load balancing service without external intervention.

본 발명의 다른 목적은 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화한 부하 분산 장치 및 방법을 제공하는 데 있다.It is another object of the present invention to provide a load balancer and a method for minimizing resource waste and cost due to over-configuration of a service cluster.

본 발명의 또 다른 목적은 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서, 서비스 품질의 저하 없이 지속적으로 서비스를 제공하도록 하는 부하 분산 장치 및 방법을 제공하는 데 있다.
It is still another object of the present invention to provide a load balancer and a method for continuously providing a service without deteriorating service quality in a service environment with a large fluctuation of load amount over time.

본 발명의 실시 예들에 따른, 부하 분산 시스템 내의 물리 서버들에 포함된 가상 응용서버들로 부하를 분산시키는 부하 분산 장치의 부하 분산 방법은, 상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계; 및 상기 판단한 결과에 따라, 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계를 포함하고, 상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타낸다.A load balancing method of a load balancing apparatus that distributes a load to virtual application servers included in physical servers in a load balancing system according to embodiments of the present invention includes a state information of the load balancing system, Determining whether the number of virtual application servers operating in the load balancing system is appropriate according to state information of the virtual application servers; And generating and deleting one or more virtual application servers according to the determination result, wherein the status information of the load distribution system includes at least one of a size and a quantity of the load that the load distribution system is receiving and processing .

실시 예로서, 상기 하나 이상의 가상 응용서버는 상기 물리서버의 하이퍼바이저에 의해 제공되는 가상화 환경상에서 동작하며, 클라이언트로부터 제공되는 서비스 요청을 처리하는 소프트웨어 개체일 수 있고, 상기 물리서버의 상기 가상화 환경상에서 다른 가상 응용서버와 동시에 동작하고, 상기 하나 이상의 가상 응용서버와 상기 다른 가상 응용서버는 각각 서로 상이한 운영체제를 이용하여 동작할 수 있다.As an embodiment, the one or more virtual application servers may be software entities operating in a virtualization environment provided by the hypervisor of the physical server, processing service requests provided by the clients, and in the virtualization environment of the physical server And the one or more virtual application servers and the other virtual application servers may operate using different operating systems.

실시 예로서, 상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는, 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치를 초과하면, 상기 부하 분산 시스템이 수신 및 처리중인 부하가 과다한 것으로 판단하는 단계를 포함할 수 있다.In an embodiment, the step of determining whether the number of virtual application servers to be operated is appropriate may include comparing a value indicating a size or an amount of a load that the load distribution system is receiving and processing with a predetermined threshold, May include determining that the load being received and processed by the load balancing system is excessive if the value indicating the load balancing system exceeds the predetermined threshold.

실시 예로서, 상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는, 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치 미만이면, 상기 부하 분산 시스템이 수신 및 처리중인 부하가 과소한 것으로 판단하는 단계를 포함할 수 있다.In an embodiment, the step of determining whether the number of virtual application servers to be operated is appropriate may include comparing a value indicating a size or an amount of a load that the load distribution system is receiving and processing with a predetermined threshold, Determining that the load being received and processed by the load balancing system is underestimated if the value indicating the load balancing system is less than the predetermined threshold.

실시 예로서, 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값은 상기 부하 분산 시스템이 처리중인 서비스 세션의 개수를 상기 서비스 세션을 처리중인 가상 응용서버의 수로 나눈 값일 수 있다.In an embodiment, the value indicating the size or amount of the load being received and processed by the load balancing system may be a value obtained by dividing the number of service sessions in process by the load balancing system by the number of virtual application servers that are processing the service session.

실시 예로서, 상기 임계치는 상기 부하 분산 시스템의 부하 분산 서비스 상태 정보와 상기 부하 분산 시스템에 포함된 가상 응용서버 및 물리서버의 모니터링 정보 및/또는 상기 부하 분산 시스템이 수집한 시스템 부하 정보를 참조하여 결정될 수 있다.In an embodiment, the threshold refers to load distribution service status information of the load distribution system, monitoring information of a virtual application server and a physical server included in the load distribution system, and / or system load information collected by the load distribution system Can be determined.

실시 예로서, 상기 하나 이상의 가상 응용서버 또는 상기 물리서버는 활성 그룹, 소극적 그룹 및 잠재 그룹 중 어느 하나에 포함될 수 있다.In an embodiment, the one or more virtual application servers or the physical servers may be included in one of an active group, a passive group, and a potential group.

실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 잠재 그룹에 속한 물리서버 중 적어도 하나의 물리서버에 상기 하나 이상의 가상 응용서버를 생성하는 단계; 및 상기 생성된 하나 이상의 가상 응용서버와 물리서버의 상태를 상기 활성 그룹으로 변경하는 단계를 포함할 수 있다. As an embodiment, the step of creating, changing, or deleting one or more virtual application servers may include: creating the one or more virtual application servers in at least one physical server among the physical servers belonging to the potential group; And changing the state of the generated one or more virtual application servers and physical servers into the active group.

실시 예로서, 상기 생성된 하나 이상의 가상 응용서버는 미리 생성된 가상머신 이미지를 이용하여 생성되고, 상기 가상머신 이미지는 상기 생성된 하나 이상의 가상 응용서버를 구동하기 위한 운영체제 등을 포함하는 소프트웨어 이미지 파일로서, 상기 서비스 요청을 처리하는 데 필요한 응용프로그램 및 환경설정을 포함하도록 구성될 수 있다.In an embodiment, the generated one or more virtual application servers are generated using a virtual machine image generated in advance, and the virtual machine image is a software image file including an operating system for driving the generated one or more virtual application servers, , And may be configured to include the application programs and preferences necessary to process the service request.

실시 예로서, 상기 미리 생성된 가상머신 이미지를 복수의 가상머신 이미지를 포함하는 가상머신 이미지 풀로부터 선택하기 위해 가상머신 템플릿을 참조할 수 있다. As an embodiment, the virtual machine template may be referred to in order to select the pre-created virtual machine image from the virtual machine image pool including a plurality of virtual machine images.

실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 하나 이상의 가상 응용서버의 상태를 상기 소극적 그룹으로부터 상기 활성 그룹으로 상태변경하는 단계를 포함할 수 있다.As an embodiment, creating, changing, or deleting the one or more virtual application servers may include changing the state of the one or more virtual application servers from the non-active group to the active group.

실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 하나 이상의 가상 응용서버의 상태를 상기 활성 그룹으로부터 상기 소극적 그룹으로 상태변경하는 단계를 포함할 수 있다. As an embodiment, the step of creating, changing, or deleting the one or more virtual application servers may include changing the state of the one or more virtual application servers from the active group to the passive group.

실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 소극적 그룹으로 상태변경된 상기 하나 이상의 가상 응용서버에 대해서, 처리중인 세션이 완료되었는지 확인하는 단계; 및 상기 확인 결과에 따라, 상기 하나 이상의 가상 응용서버를 중단시키거나 삭제하는 단계를 더 포함할 수 있다.As an embodiment, the step of creating, changing, or deleting one or more virtual application servers may include: checking whether the session being processed is completed for the one or more virtual application servers that have been changed to the passive group; And stopping or deleting the one or more virtual application servers according to the confirmation result.

실시 예로서, 상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는, 상기 하나 이상의 가상 응용서버를 포함하는 물리서버에서 실행중인 가상 응용서버가 더 이상 존재하지 않는 경우, 상기 물리서버를 잠재 그룹으로 상태변경하는 단계를 더 포함할 수 있다.As an embodiment, the step of creating, changing, or deleting the one or more virtual application servers may include: if the virtual application server running on the physical server including the one or more virtual application servers no longer exists, And changing the state of the server into a potential group.

본 발명의 실시 예들에 따른, 클라이언트로부터 수신되는 서비스 요청을 부하 분산 시스템 내의 물리서버에 포함된 가상 응용서버들로 분산 할당하는 부하 분산 장치는, 상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 전송제어부; 및 상기 판단한 결과에 따라, 하나 이상의 가상 응용서버가 생성되거나, 상태변경되거나, 삭제되도록 제어하는 서버 제어부를 포함하고, 상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타낸다.
The load balancer for distributing the service requests received from the client to the virtual application servers included in the physical server in the load balancing system according to the embodiments of the present invention may further include a state information of the load balancing system, A transmission control unit for determining whether the number of virtual application servers operated in the load balancing system is appropriate according to the information or status information of the virtual application servers; And a server control unit for controlling one or more virtual application servers to be created, changed, or deleted according to the determined result, wherein the status information of the load distribution system includes information about a size of a load Or amount.

본 발명의 실시 예들에 따르면, 서비스 관리자나 외부 응용프로그램과 같은 외부로부터의 개입 없이, 부하 분산 시스템의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라, 능동적으로 가상 응용서버를 추가, 상태변경, 또는 제거함으로써, 서비스 클러스터의 처리 용량을 적절하게 제어할 수 있다.According to the embodiments of the present invention, the virtual application server can be actively managed according to the status information of the load balancing system, the status information of the virtual application server, or the status information of the physical server without any intervention from the outside such as a service manager or an external application program By adding, changing state or removing, the processing capacity of the service cluster can be appropriately controlled.

그에 따라, 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화할 수 있으며, 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서 서비스 품질의 저하 없이 지속적으로 서비스를 제공할 수 있다.
Accordingly, it is possible to minimize the resource waste and the cost incurred due to the excessive configuration of the service cluster, and to continuously provide the service without deteriorating the service quality in the service environment where the fluctuation of the load amount with time is large.

도 1은 일반적인 부하 분산 시스템을 나타내는 블록도이다.
도 2는 가상환경에 기반한 일반적인 부하 분산 시스템을 나타내는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른, 부하 분산 시스템을 나타내는 블록도이다.
도 4는 본 발명의 일 실시 예에 따른, 가상 응용서버 또는 물리서버의 상태변경을 구체적으로 설명하기 위한 상태도이다.
도 5는 본 발명의 일 실시 예에 따른, 부하 분산 방법을 나타내는 순서도이다.
1 is a block diagram showing a general load distribution system.
2 is a block diagram illustrating a typical load-balancing system based on a virtual environment.
3 is a block diagram illustrating a load balancing system, in accordance with one embodiment of the present invention.
4 is a state diagram for explaining a state change of a virtual application server or a physical server in detail according to an embodiment of the present invention.
5 is a flow diagram illustrating a load balancing method, in accordance with an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with one embodiment.

또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않는 범위 내에서 다양하게 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 의도된 것이 아니며, 본 발명의 범위는 원칙적으로 첨부한 청구항들에 정해지고, 청구항들에 기재된 것 및 그와 균등한 범위의 가능한 실시 예들을 포괄한다. 유사한 참조부호가 도면들에서 사용되는 경우, 유사한 참조부호는 여러 실시 예들에 대해서 동일하거나 유사한 기능을 지칭한다.It should also be understood that the position or arrangement of the individual components within each disclosed embodiment can be variously modified without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is principally defined by the appended claims, encompassed by the appended claims and their equivalents. Where similar reference numerals are used in the figures, like reference numerals refer to the same or similar functions for various embodiments.

이하에서는, 첨부한 도면들을 참조하여, 구체적인 실시 예를 통해 본 발명의 내용 및 사상을 설명한다.
Hereinafter, the contents and ideas of the present invention will be described with reference to the accompanying drawings.

도 2는 가상환경에 기반한 일반적인 부하 분산 시스템을 나타내는 블록도이다. 도 2를 참조하면, 부하 분산 시스템(20)은 하나 이상의 클라이언트들(21), 네트워크(24), 부하 분산 장치(22) 및 복수의 물리서버(23_1, 23_2, 23_3)를 포함하는 서비스 클러스터(23)를 포함한다.2 is a block diagram illustrating a typical load-balancing system based on a virtual environment. 2, the load balancing system 20 includes a service cluster (not shown) including one or more clients 21, a network 24, a load balancer 22, and a plurality of physical servers 23_1, 23_2, 23).

클라이언트(21)는 네트워크(24)를 통해 부하 분산 장치(22)와 연결되며, 특정 인터넷 프로토콜(VIP, 25)을 향한 서비스 요청을 전송한다. 클라이언트(21)는 하나 이상의 클라이언트 장치들(21_1, 21_2, 21_n)을 포함하며, 각각의 클라이언트 장치들(21_1, 21_2, 21_n)은 동종 또는 이종의 컴퓨터 장치, 모바일 단말기 또는 그 밖의 네트워크(24)를 통해 데이터 통신이 가능한 전자 장치일 수 있다. The client 21 is connected to the load balancer 22 via the network 24 and transmits a service request directed to a specific Internet protocol (VIP) 25. [ The client 21 includes one or more client devices 21_1, 21_2 and 21_n and each of the client devices 21_1, 21_2 and 21_n may be a homogeneous or heterogeneous computer device, a mobile terminal or other network 24, Lt; RTI ID = 0.0 > data communication < / RTI >

네트워크(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) 및 초음파 활용 통신망으로 구성된 그룹으로부터 선택되는 하나 이상의 통신망 또는 통신 수단을 포함할 수 있다.Network 24 is a network of hardware or software that mediates communication connections between client 21 and load balancer 22. The network 24 may be a LAN (Local Area Network), a Metropolitan Area Network (MAN), a Global System for Mobile Network (GSM), an Enhanced Data GSM Environment (EDGE), a High Speed Downlink Packet Access (HSDPA) Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth, Zigbee, Wi-Fi, Voice over Internet Protocol (VoIP) Advanced, IEEE 802.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 systems, HIPERMAN, Beam-Division Multiple Access (BDMA), and ultrasound-enabled communication networks.

서비스 클러스터(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)를 포함할 수 있다.The service cluster 23 includes one or more physical servers 23_1, 23_2, and 23_3. Each of the physical servers 23_1, 23_2, and 23_3 includes hypervisors 23_1a, 23_2a, and 23_3a and virtual machine controllers 23_1b, 23_2b, and 23_3b. In addition, each of the physical servers 23_1, 23_2, and 23_3 may optionally include one or more virtual application servers 23_1c, 23_1d, 23_2c, and 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) 및 그것이 제공하는 가상화 환경에 대한 구체적인 내용은 당해 기술 분야에 널리 알려져 있으므로, 여기서는 그에 대한 설명을 생략한다.The hypervisors 23_1a, 23_2a, and 23_3a provide the virtualization environment to the corresponding physical servers 23_1, 23_2, and 23_3. The hypervisors 23_1a, 23_2a, and 23_3a are thin layer software that controls various operating system access methods for various computing resources included in the physical servers 23_1, 23_2, and 23_3 such as a processor and a memory. The hypervisors 23_1a, , 23_2a, and 23_3a, different operating systems in the physical servers 23_1, 23_2, and 23_3 may be operated simultaneously. The details of the virtualization environment provided by the hypervisors 23_1a, 23_2a, and 23_3a are well known in the art, and a description thereof will be omitted here.

가상머신 제어부(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)를 통해 가상 응용서버를 생성, 삭제, 시작, 중단 또는 일시정지시킬 수 있다. The virtual machine control units 23_1b, 23_2b, and 23_3b are external control interfaces of the hypervisors 23_1a, 23_2a, and 23_3a, or an upper software library linked to the external control interfaces. The virtual machine control units 23_1b, 23_2 and 23_3b provide control functions for the virtual application servers 23_1c, 23_1d, 23_2c and 23_3c in the respective physical servers 23_1, 23_2 and 23_3. For example, each of the physical servers 23_1, 23_2, and 23_3 can create, delete, start, stop, or pause a virtual application server through the virtual machine controllers 23_1b, 23_2b, and 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)의 제어에 따라 새롭게 생성되거나, 삭제되거나, 중단되거나 일시정지될 수 있다.
The virtual application servers 23_1c, 23_1d, 23_2c and 23_3c operate in the virtualization environment provided by the hypervisors 23_1a, 23_2a and 23_3a and are included in the corresponding physical servers 23_1, 23_2 and 23_3, Lt; RTI ID = 0.0 > (22). ≪ / RTI > Each of the virtual application servers 23_1c, 23_1d, 23_2c, and 23_3c can operate using a different operating system from the other virtual application servers in one physical server, and the service requests allocated to the load distributing apparatuses 22 . The virtual application servers 23_1c, 23_1d, 23_2c, and 23_3c may be newly created, deleted, suspended, or paused under the control of the load distributing apparatus 22.

도 3은 본 발명의 일 실시 예에 따른, 부하 분산 시스템(100)을 나타내는 블록도이다. 도 3을 참조하면, 부하분산 시스템(100)은 네트워크(140), 부하 분산 장치(120), 복수의 물리서버(131, 132, 133)를 포함하는 서비스 클러스터(130) 및 가상머신 이미지 풀(170)을 포함한다.3 is a block diagram illustrating a load balancing system 100, in accordance with one embodiment of the present invention. 3, the load balancing system 100 includes a network 140, a load balancer 120, a service cluster 130 including a plurality of physical servers 131, 132, and 133, 170).

도 3에서, 부하 분산 장치(120)는 네트워크(140)를 통해 수신되는 클라이언트(미도시)의 서비스 요청을, 미리 결정된 방법 또는 알고리즘에 따라 각 물리서버(131, 132, 133) 또는 각 가상 응용서버(131c, 132c)에 분산 할당한다. 예를 들어, 클라이언트로부터 특정 인터넷 프로토콜(미도시)을 향한 서비스 요청이 수신되면, 부하 분산 장치(120)는 미리 결정된 부하 분산 알고리즘에 따라 수신된 서비스 요청을 서비스 클러스터(130) 내의 물리서버들(131, 132, 133) 또는 가상 응용서버들(131c, 132c)에 분산 할당한다. 이때, 운용되는 가상 응용서버의 수에 비해 수신된 서비스 요청이 과다하면, 부하 분산 장치(120)는 물리서버(131, 132, 133) 내에 새로운 가상 응용서버를 생성하거나 상태변경(예를 들어, 활성 그룹으로)한다. 반면에, 운용되는 가상 응용서버의 수에 비해 수신된 서비스 요청이 과소하면, 부하 분산 장치(120)는 물리서버(131, 132, 133) 내의 기존의 가상 응용서버 중 적어도 일부를 삭제하거나 중단 또는 상태변경(예를 들어, 소극적 그룹으로)한다. 3, the load balancer 120 distributes a service request of a client (not shown) received via the network 140 to each physical server 131, 132, 133 or each virtual application Distributed to the servers 131c and 132c. For example, when a service request for a specific Internet protocol (not shown) is received from the client, the load balancer 120 transmits the received service request according to a predetermined load balancing algorithm to the physical servers (not shown) in the service cluster 130 131, 132, and 133 or the virtual application servers 131c and 132c. At this time, if the received service request is excessive as compared with the number of operated virtual application servers, the load distributing apparatus 120 creates a new virtual application server in the physical servers 131, 132, and 133 or changes state (for example, Active group). On the other hand, if the received service request is inferior to the number of operated virtual application servers, the load balancer 120 deletes or interrupts at least some of the existing virtual application servers in the physical servers 131, 132, State change (e.g., in a passive group).

이와 같이, 서비스 요청량에 따라 서비스 클러스터(130) 내에 있는 가상 응용서버의 수를 제어하는 것은 일반적인 스케일-아웃 방식과 일견 유사할 수 있으나, 본 발명은 부하 분산 서비스의 상태정보, 가상 응용서버의 상태정보 및 물리서버의 상태정보에 기초하여, 서비스의 부하에 따라 동적으로 부하 분산 시스템이 가상 응용서버의 수를 제어한다는 점에서 일반적인 스케일-아웃에 비해 더욱 동적으로 유연하게 클라이언트로부터의 서비스 요청을 처리할 수 있다. In this way, controlling the number of virtual application servers in the service cluster 130 according to the service request amount can be similar to a general scale-out method. However, Since the load balancing system dynamically controls the number of virtual application servers according to the load of the service based on the state information and the state information of the physical server, the service request from the client is more dynamically flexible than the general scale- Can be processed.

나아가, 본 발명은 가상 응용서버 또는 물리서버의 가능한 상태로서, 활성 상태(서비스 자원을 할당받아 서비스를 처리하는 상태) 및 잠재 상태(서비스 자원을 반납하고 대기중인 상태)외에 소극적 상태라는 과도적인 제3의 상태를 설정함으로써, 가상 응용서버(131c, 132c)의 생성, 수정, 삭제 또는 시작, 일시정지, 중단, 재시작이 더욱 유연하고 신속하게 이루어질 수 있도록 한다. Furthermore, the present invention can be applied to a virtual application server or a physical server as a possible state, in addition to an active state (a state in which a service resource is allocated to service processing) and a latent state (a state in which a service resource is returned and waiting) 3, the creation, modification, deletion, start, pause, stop and restart of the virtual application servers 131c and 132c can be performed more flexibly and promptly.

여기서, 부하 분산 서비스의 상태정보는 부하 분산 시스템(100)의 현재 상태를 나타내는 정보로서, 예를 들어, 부하 분산 시스템(100)이 처리 중인 서비스 세션의 양 또는 규모를 나타내는 정보일 수 있다. Here, the status information of the load balancing service 100 may be information indicating the current status of the load balancing system 100, for example, information indicating the amount or size of the service session being processed by the load balancing system 100. [

가상 응용서버의 상태정보는 가상 응용서버(131c, 132c)의 현재 상태를 나타내는 정보로서, 예를 들어, 가상 응용서버(131c, 132c)에 가해지는 부하의 정도(예를 들어, 가상 응용서버의 가용 자원 중 몇 퍼센트가 현재 세션 처리에 사용 중인지 등)를 나타내는 정보일 수 있다.The status information of the virtual application server is information indicating the current status of the virtual application servers 131c and 132c and is information indicating the degree of load applied to the virtual application servers 131c and 132c What percentage of the available resources are being used for current session processing, etc.).

물리서버의 상태정보는 물리 응용서버(131, 132, 133)의 현재 상태를 나타내는 정보로서, 예를 들어, 물리서버에 몇 개의 가상 응용서버가 운용 중인지, 물리서버의 시스템 자원 중 몇 퍼센트가 현재 가상 응용서버에 할당되었는지, 물리서버의 시스템 자원 중 몇 퍼센트가 추가적으로 사용가능한지, 또는 물리서버의 현재 발열상태(즉, 현재 온도)가 몇 도인지 등과 같은 사항을 포함하는 정보일 수 있다. The status information of the physical server is information indicating the current status of the physical application servers 131, 132, and 133. For example, it is determined how many virtual application servers are operating in the physical server, Whether it is allocated to the virtual application server, what percentage of the system resources of the physical server are additionally usable, or the current temperature of the physical server (i.e., the current temperature), and the like.

다만 이는 예시적인 것으로서, 부하 분산 서비스의 상태정보, 가상 응용서버의 상태정보 및 물리서버의 상태정보는 위에서 설명한 정보 외에 추가적으로(additionally) 또는 그것을 대체적으로(alternatively) 다른 정보를 더 포함할 수도 있다. The status information of the load balancing service, the status information of the virtual application server, and the status information of the physical server may additionally include other information in addition to or in addition to the information described above.

아래에서는, 부하 분산 장치(120)의 구체적인 구성 및 동작 방법에 더욱 상세히 후술한다.Hereinafter, the specific configuration and operation method of the load distributing apparatus 120 will be described in more detail below.

부하 분산 장치(120)는 전송 처리부(121), 전송 제어부(122), 세션 관리부(123), 응용서버 모니터링부(124, 이하 모니터링부), 서버 제어부(125) 및 서비스 관리부(125)를 포함한다. 부하 분산 장치(120)의 각 구성 요소는 하드웨어 요소 또는 소프트웨어 요소로서 구현될 수 있다.The load distributing apparatus 120 includes a transmission processing unit 121, a transmission control unit 122, a session management unit 123, an application server monitoring unit 124 (hereinafter referred to as a monitoring unit), a server control unit 125 and a service management unit 125 do. Each component of the load balancer 120 may be implemented as a hardware component or a software component.

도 3에서, 부하 분산 장치(120)는 현재 가상 응용서버의 상태 및 서비스 중인 세션 정보를 바탕으로, 가상 응용서버들(131c, 132c)의 규모를 확장 또는 축소시킨다. In FIG. 3, the load distributing apparatus 120 enlarges or reduces the sizes of the virtual application servers 131c and 132c, based on the current virtual application server status and service session information.

전송처리부(121)는 네트워크(140)를 통해 특정 VIP(예를 들어, 도 2의 15)를 목적지 주소로 갖는 서비스 요청을 수신하고, 수신된 서비스 요청을 처리할 가상 응용서버(131c, 132c)로 수신된 서비스 요청을 전달한다(A). 구체적으로, 전송처리부(121)는 사용자 요청으로서 수신된 데이터 패킷의 패킷 정보(예를 들어, 송신자 IP 주소, 송신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 등)를 기초로, 플로우 테이블(미도시)을 참조하여 수신된 데이터 패킷을 전달할 가상 응용서버를 결정한다. 플로우 테이블은 특정 패킷 플로우(또는, 서비스 요청)를 특정 응용서버와 연관짓는 정보를 포함하는 테이블로서, 예를 들어 제 1 패킷 플로우에 속하는 데이터 패킷이 제 1 가상 응용서버로 전달되도록 지정하는 정보를 포함한다. The transmission processing unit 121 receives a service request having a specific VIP (for example, 15 in FIG. 2) as a destination address through the network 140 and transmits the service request to the virtual application servers 131c and 132c, (A). ≪ / RTI > Specifically, the transmission processing unit 121 generates a flow table (not shown) based on the packet information (for example, the sender IP address, the sender port number, the receiver IP address, the receiver port number, ) To determine the virtual application server to which the received data packet will be forwarded. The flow table is a table containing information associating a specific packet flow (or service request) with a specific application server. For example, the flow table may include information specifying a data packet belonging to the first packet flow to be delivered to the first virtual application server .

이때, 수신된 패킷이 부하 분산 장치(120)에 새롭게 전달된 새로운 서비스 요청(또는, 패킷 플로우)에 속하는 경우에는, 수신된 패킷에 대한 패킷 플로우 정보가 플로우 테이블 내에 존재하지 않을 것이다. 이 경우, 전송처리부(121)는 새롭게 수신된 서비스 요청에 대한 처리 정책을 전송제어부(122)에 요청한다. 반대로, 수신된 패킷이 부하 분산 장치(120)가 기수신한 어떤 서비스 요청의 일부인 경우, 전송 처리부(121)의 플로우 테이블에는 수신된 패킷에 대한 패킷 플로우 정보가 존재할 것이다. 따라서, 이 경우 전송처리부(121)는 대응하는 패킷 플로우 정보를 참조하여, 곧바로 수신된 패킷의 네트워크 주소변환을 수행한다. At this time, if the received packet belongs to a new service request (or packet flow) newly delivered to the load distributing apparatus 120, packet flow information for the received packet will not exist in the flow table. In this case, the transmission processing unit 121 requests the transmission control unit 122 for the processing policy for the newly received service request. Conversely, if the received packet is a part of a service request received by the load distributing apparatus 120, the flow table of the transmission processing unit 121 will have packet flow information for the received packet. Accordingly, in this case, the transmission processing unit 121 refers to the corresponding packet flow information and immediately performs the network address translation of the received packet.

여기서 네트워크 주소변환은 예를 들면, 송신자 IP 주소 및 포트 번호로서 수신된 클라이언트(예를 들어, 도 2의 11) IP 주소와 포트 번호를 부하 분산 장치(120)의 IP 주소와 포트 번호로 변경하는 송신자 주소변환 또는 수신자 IP 주소와 포트 번호로서 수신된 부하 분산 장치(120)의 IP 주소와 포트 번호를 서비스 요청을 처리할 가상 응용서버의 IP 주소와 포트 번호로 변경하는 수신자 주소변환을 포함할 수 있다. 이때, 전송처리부(121)는 네트워크 주소변환으로서 송신자 주소변환 및 수신자 주소변환을 모두 수행할 수도 있고, 송신자 주소변환을 생략한 채 수신자 주소변환만을 수행할 수도 있다. 또는, 네트워크 주소변환은 그 외에도, 부하 분산 장치(120)와 서비스 요청을 처리할 가상 응용서버 사이에 터널링 방식과 같은 오버레이 네트워크를 구성하여 수신된 패킷의 전송 경로를 지정하는 방법을 포함할 수 있다. 전송처리부(121)는 네트워크 주소변환을 수행한 후, 수신된 패킷을 대응하는 가상 응용서버(즉, 수신된 패킷 또는 그것과 대응하는 서비스 요청을 처리하도록 지정된 가상 응용서버)로 전송한다.Here, the network address translation is performed by, for example, changing the IP address and the port number of the client (for example, 11 in FIG. 2) received as the sender IP address and port number to the IP address and port number of the load balancer 120 May include a recipient address translation to change the IP address and port number of the load balancer 120 received as the sender address translation or recipient IP address and port number to the IP address and port number of the virtual application server to process the service request have. At this time, the transmission processing unit 121 may perform both the sender address translation and the receiver address translation as the network address translation, and may perform only the recipient address translation without omitting the sender address translation. Alternatively, the network address translation may further include a method of designating an overlay network such as a tunneling method between the load balancer 120 and a virtual application server to process a service request to specify a transmission path of the received packet . After performing the network address translation, the transmission processing unit 121 transmits the received packet to the corresponding virtual application server (i.e., the received packet or a virtual application server designated to process the service request corresponding to the received packet).

전송제어부(122)는 전송처리부(121)로부터 문의된 서비스 요청에 대한 처리 정책(예를 들어, 특정 서비스 요청에 속하는 데이터 패킷을 어떤 경로 또는 목적지로 전송할 지에 관한 정책)을 결정한다. 이를 위해, 전송제어부(122)는 특정 VIP와 관련되어 존재하는 서비스 클러스터(130) 상의 가상 응용서버들(131c, 132c) 중 어떤 가상 응용서버에 문의된 서비스 요청을 할당할지를 결정한다. The transmission control unit 122 determines a processing policy for the inquired service request from the transmission processing unit 121 (for example, a policy as to which path or destination the data packet belonging to the specific service request is to be transmitted). For this, the transmission control unit 122 determines which virtual application server among the virtual application servers 131c and 132c on the service cluster 130 existing in relation to the specific VIP is to be allocated the service request.

구체적으로, 전송제어부(122)는 미리 결정된 부하 분산 알고리즘(예를 들어, 가상 응용서버를 결정하는 알고리즘 또는 서비스 요청 처리를 스케쥴링하는 알고리즘)에 따라, 문의된 서비스 요청을 처리할 가상 응용서버를 결정한다. 여기서, 사용되는 부하 분산 알고리즘은 VIP에 따라 개별화된 알고리즘으로서, 수신된 서비스 요청의 VIP가 달라지면 사용되는 가상 부하 분산 알고리즘도 달라질 수 있다.Specifically, the transmission control unit 122 determines a virtual application server to process the inquired service request according to a predetermined load distribution algorithm (for example, an algorithm for determining a virtual application server or an algorithm for scheduling a service request process) do. Here, the load balancing algorithm used is an individualized algorithm according to the VIP, and the virtual load balancing algorithm used when the VIP of the received service request is different may also be changed.

한편, 전송제어부(122)는 서비스 요청을 처리할 가상 응용서버를 결정하는 과정에서, 세션관리부(123)로부터 가상 응용서버들(131c, 132c)의 서비스 처리 상태(예를 들어, 가상 응용서버들(131c, 132c) 각각이 얼마나 많은 양의 서비스를 처리중인지 등)를 나타내는 상태정보를 수신하여 참조할 수 있다. In the process of determining a virtual application server to process a service request, the transfer control unit 122 receives a service processing state of the virtual application servers 131c and 132c from the session management unit 123 (for example, (E.g., how much of each service is being processed by each of the terminals 131c and 132c).

세션관리부(123)는 현재 사용가능한 가상 응용서버들(131c, 132c)의 부하 처리 정보를 저장 또는 관리하는 모듈로서, 세션관리부(123)에 대한 구체적인 내용은 이후에 다시 설명된다. The session management unit 123 is a module for storing or managing the load processing information of currently available virtual application servers 131c and 132c. The details of the session management unit 123 will be described later.

실시 예로서, 전송 제어부(122)가 부하 분산 알고리즘으로서 균등 부하 분산(round robin) 알고리즘을 사용하는 경우, 전송제어부(122)는 세션관리부(123)로부터 가상 응용서버들(131c, 132c)의 순차적인 순번 정보를 나타내는 부하 처리 정보를 수신하고, 수신한 부하 처리 정보에 따라 적합한 순번을 갖는(즉, 어떤 가상 응용서버(131c)에 최근에 서비스 요청이 할당되었다면, 다음 차례의 가상 응용서버(132c)가 적합한 순번을 갖게 된다) 가상 응용서버에 사용자 요청을 할당한다. 반면에, 전송 제어부(122)가 부하 분산 알고리즘으로서 최소 연결(least connection) 알고리즘을 사용하는 경우, 전송 제어부(122)는 세션관리부(123)로부터 가상 응용서버들(131c, 132c) 각각이 처리중인 서비스 세션의 수를 나타내는 부하 처리 정보를 수신한 후, 그에 따라 현재 처리중인(또는, 서비스 중인) 서비스 세션의 수가 가장 적은 가상 응용서버를 서비스 요청을 처리할 가상 응용서버로 결정한다.When the transmission control unit 122 uses a uniform load balancing algorithm as the load distribution algorithm, the transmission control unit 122 notifies the session management unit 123 of the order of the virtual application servers 131c and 132c (That is, if a service request has been recently assigned to a certain virtual application server 131c), the next virtual application server 132c ) Will have the appropriate sequence number. Assign the user request to the virtual application server. On the other hand, when the transmission control unit 122 uses the least connection algorithm as the load distribution algorithm, the transmission control unit 122 notifies the session management unit 123 of the fact that each of the virtual application servers 131c and 132c is in process After receiving the load processing information indicating the number of service sessions, the virtual application server having the smallest number of service sessions currently being processed (or in service) is determined as a virtual application server to process the service request.

한편, 일반적인 부하 분산 시스템(10, 20)과 달리, 본 발명에서는 가상 응용서버의 과부하를 예방하고 이를 통해 서비스 품질을 안정적으로 보장하기 위해 상위 임계치(threshold value)와 하위 임계치를 설정하고, 이러한 두 개의 임계치에 기반하여 새로운 서비스 요청이 수신될 때마다 서비스 클러스터(130) 내의 가상 응용서버들의 규모를 조정하는 프로비저닝 단계를 실행한다. 그리고, 미리 결정된 부하 분산 알고리즘에 따라, 프로비저닝 단계를 통해 준비된 가상 응용서버들 중에서 새로운 서비스 요청을 처리할 가상 응용서버를 결정한다. Unlike the conventional load balancing systems 10 and 20, in the present invention, an upper threshold value and a lower threshold value are set in order to prevent an overload of a virtual application server and to stably guarantee a service quality thereof, And performs a provisioning step of adjusting the size of the virtual application servers in the service cluster 130 each time a new service request is received based on the threshold of the number of service requests. In accordance with a predetermined load distribution algorithm, a virtual application server to process a new service request among the prepared virtual application servers through the provisioning step is determined.

구체적으로 설명하면, 전송제어부(122)는 세션관리부(123)로부터 수신한 가상 응용서버의 상태정보, 물리서버의 상태정보 또는, 특정 VIP와 관련하여 서비스를 처리중인 부하 분산 시스템의 상태정보(예를 들어, 부하 분산 시스템(100)이 처리중인 서비스 세션의 수 또는 처리량)에 기초하여, 현재 처리중인 서비스 세션의 수가 서비스 클러스터(130)의 용량에 비해 적절한지 판단한다. 즉, 전송제어부(122)는 부하 분산 시스템(100)의 상태정보, 물리서버의 상태정보 또는 가상 응용서버들의 상태정보에 따라, 부하 분산 시스템(100)에서 운용되는 가상 응용서버의 수가 적절한 지 판단한다.Specifically, the transfer control unit 122 receives the status information of the virtual application server, the status information of the physical server, or the status information of the load balancing system (e.g., (E.g., the number or the throughput of the service sessions being processed by the load balancing system 100), it is determined whether the number of service sessions currently being processed is appropriate for the capacity of the service cluster 130. That is, the transmission control unit 122 determines whether the number of the virtual application servers operated in the load distribution system 100 is appropriate based on the status information of the load distribution system 100, the status information of the physical server, or the status information of the virtual application servers do.

예를 들어, 전송제어부(122)는 현재 처리중인 평균 서비스 세션 수가 미리 결정된 상위 임계치보다 큰지 판단하고, 상위 임계치보다 큰 것으로 판단되면 전송제어부(122)는 가상 응용서버들(131c, 132c)의 과부하를 방지하기 위해 새로운 가상 응용서버를 서비스 클러스터(130)에 추가하는 스케일-아웃을 수행하도록 서버제어부(125)에 요청한다. For example, the transmission control unit 122 determines whether the average number of service sessions currently being processed is greater than a predetermined upper threshold. If the transmission control unit 122 determines that the average number of service sessions is greater than the upper threshold, Out request to add a new virtual application server to the service cluster 130 in order to prevent the virtual application server 130 from performing a scale-out operation.

반대로 전송제어부(122)는 현재 처리중인 평균 서비스 세션 수가 미리 결정된 하위 임계치보다 작은지 판단한다. 이때, 하위 임계치보다 작은 것으로 판단되면, 전송제어부(122)는 처리하는 서비스 요청의 크기에 비해 과다한 자원이 할당되어 발생하는 자원 낭비를 방지하기 위해, 가상 응용서버들(131c, 132c) 중 적어도 일부를 서비스 클러스터(130)에서 배제 또는 삭제하는 스케일-인(scale-in)을 수행하도록 서버제어부(125)에 요청한다.실시 예로서, 이때 상위 임계치 또는 하위 임계치는 가상 응용서버의 상태정보, 또는 물리서버의 상태정보를 참조하여 결정될 수 있다. 예를 들어, 가상 응용서버의 상태정보를 참조한 결과, 가상 응용서버가 상대적으로 적은 양의 시스템 자원을 점유하고 있는 것으로 판단되면(또는, 사용가능한 시스템 자원의 여유분이 적으면), 상위 임계치 또는 하위 임계치는 하향 조정될 수 있다. 유사한 예로서, 물리서버의 상태정보를 참조한 결과, 각 물리서버가 상대적으로 적은 양의 시스템 자원을 유보하고 있는 것으로 판단되면(즉, 새로운 가상 응용서버를 생성할 여유가 없으면), 상위 임계치 또는 하위 임계치는 상향 조정될 수 있다.Conversely, the transmission control unit 122 determines whether the average number of service sessions currently being processed is smaller than a predetermined lower threshold. At this time, if it is determined that the size of the virtual application servers 131c and 132c is smaller than the lower threshold value, the transmission control unit 122 may allocate at least some of the virtual application servers 131c and 132c The server control unit 125 requests the server control unit 125 to perform a scale-in operation to exclude or delete a service request from the service cluster 130. As an example, the upper threshold or the lower threshold may be the status information of the virtual application server, Can be determined by referring to the status information of the physical server. For example, as a result of referring to the status information of the virtual application server, if it is determined that the virtual application server occupies a relatively small amount of system resources (or if the spare amount of available system resources is small) The threshold value can be adjusted downward. As a similar example, if it is determined that each physical server reserves a relatively small amount of system resources (that is, there is no room to create a new virtual application server) as a result of referring to the status information of the physical server, The threshold value can be adjusted upward.

실시 예로서, 상위 임계치 또는 하위 임계치를 결정하기 위해, 가상 응용서버(131c, 132c)의 모니터링 정보가 더 참조될 수 있다. 모니터링 정보에 대한 더욱 구체적인 내용은 모니터링부(124)와 관련한 설명에서 후술된다.As an example, in order to determine an upper threshold value or a lower threshold value, the monitoring information of the virtual application servers 131c and 132c may be further referred to. More detailed contents of the monitoring information will be described later in the description related to the monitoring unit 124. [

세션관리부(123)는 특정 VIP(150)와 관련하여 수신된 서비스 요청들을 처리중인 가상 응용서버들(131c, 132c)의 UUID(Universally Unique Identification), 고장 여부, 처리중인 서비스 세션의 수, 또는 가상 응용서버의 활성화 상태를 나타내는 상태 정보 등을 VIP별로 관리한다. 이때, 가상 응용서버의 활성화 상태는 예를 들어, 가상 응용서버가 활성그룹(162), 소극적 그룹(161) 및 잠재그룹(163) 중 어느 그룹에 속하는지를 의미한다. The session management unit 123 may determine the UUID (Universally Unique Identification) of the virtual application servers 131c and 132c that are processing the received service requests with respect to the specific VIP 150, the number of service sessions in process, And state information indicating the activation state of the application server. At this time, the activation status of the virtual application server means, for example, whether the virtual application server belongs to the active group 162, the passive group 161 and the potential group 163.

실시 예로서, 세션관리부(123)는 응용서버 모니터링부(124)가 주기적으로 확인하는 가상 응용서버(131c, 132c)의 모니터링 정보를 참조하여, 가상 응용서버(131c, 132c)의 고장 여부를 갱신할 수 있다. The session management unit 123 refers to the monitoring information of the virtual application servers 131c and 132c periodically checked by the application server monitoring unit 124 and updates the failure of the virtual application servers 131c and 132c can do.

모니터링부(124)는 가상 응용서버(131c, 132c)로부터 모니터링 정보를 수집한다. 예를 들어, 모니터링부(124)는 복수의 가상 응용서버들 중 임의의 가상 응용서버(132c)와 인터페이스하여, 가상 응용서버(132c)로부터 모니터링 정보를 수집할 수 있다. 수집된 모니터링 정보는 앞서 설명한 바와 같이, 세션관리부(123)에 제공될 수 있다. The monitoring unit 124 collects monitoring information from the virtual application servers 131c and 132c. For example, the monitoring unit 124 can collect monitoring information from the virtual application server 132c by interfacing with any of the plurality of virtual application servers 132c. The collected monitoring information may be provided to the session management unit 123 as described above.

실시 예로서, 가상 응용서버(131c, 132c)의 모니터링 정보는 가상 응용서버(131c, 132c)의 고장 여부를 나타내는 정보 외에도 가상 응용서버(131c, 132c)의 CPU 성능, CPU 활용률, 메모리 성능, 메모리 활용률 또는 네트워크 성능과 같은 가상 응용서버(131c, 132c)의 시스템 자원 정보를 더 포함할 수 있다.
The monitoring information of the virtual application servers 131c and 132c may include not only the information indicating whether the virtual application servers 131c and 132c are faulty, the CPU performance of the virtual application servers 131c and 132c, the CPU utilization rate, And may further include system resource information of virtual application servers 131c and 132c such as utilization rate or network performance.

서버제어부(125)는 전송제어부(122)의 요청에 따라, 물리서버(131, 132, 133)의 시스템 자원 가용 여부 등을 고려한 스케일-아웃 또는 스케일-인을 통해 새로운 가상 응용서버를 서비스 클러스터(130)에 추가하거나, 기존의 가상 응용서버(131c, 132c) 중 적어도 일부를 서비스 클러스터(130)로부터 배제 또는 제거한다.In response to a request from the transfer control unit 122, the server control unit 125 transmits a new virtual application server to a service cluster (not shown) through a scale-out or a scale-in process considering the availability of system resources of the physical servers 131, 130 or excludes or removes at least some of the existing virtual application servers 131c, 132c from the service cluster 130. [

서버제어부(125)는 외부의 시스템 관리자 또는 다른 외부 응용 프로그램의 도움없이도, 능동적으로 가상 응용서버를 추가 또는 제거할 수 있도록 구성된다. 서버제어부(125)는 가상 응용서버를 추가 또는 제거하기 위해 서비스관리부(126)에 저장된 물리서버 정보 또는 가상머신 템플릿을 참조할 수 있다. 물리서버 정보 또는 가상머신 템플릿은 VIP별로 서비스관리부(126) 내에 미리 정의된 정보 또는 데이터로서, 물리서버 정보는 물리서버들(131, 132, 133)의 UUID, IP 주소, 관리자 계정정보, 시스템 사양 등을 포함할 수 있고, 가상머신 템플릿은 가상머신의 가상 CPU 수, 메모리 용량, 디스크 용량, 네트워크 인터페이스 정보, 가상머신 이미지 정보 등을 포함할 수 있다. The server control unit 125 is configured to actively add or remove a virtual application server without the assistance of an external system administrator or other external application programs. The server control unit 125 may refer to the physical server information or the virtual machine template stored in the service management unit 126 to add or remove the virtual application server. The physical server information or the virtual machine template is predefined information or data in the service management unit 126 for each VIP, and the physical server information includes UUID, IP address, manager account information, system specification Etc., and the virtual machine template may include the number of virtual CPUs of the virtual machine, memory capacity, disk capacity, network interface information, virtual machine image information, and the like.

서버제어부(125)가 가상 응용서버를 추가 또는 제거하는 구체적인 방법은 다음과 같다.A concrete method of adding or removing the virtual application server by the server control unit 125 is as follows.

서버제어부(125)가 새로운 가상 응용서버를 추가하는 경우, 서버제어부(125)는 새로운 가상 응용서버를 생성할 물리서버를 먼저 결정한다. 이때, 서버제어부(125)는 물리서버의 상태정보에 따라 이용가능한 물리서버들(131, 132, 133) 각각에 선택 우선 순위를 부여하여, 그에 따라 최적의 물리서버를 선택한다. 물리서버의 상태 정보는 앞서 가상 응용서버와 관련하여 설명한 바와 같이, 물리서버의 활성화 상태를 나타내는 정보로서, 물리서버가 활성그룹(162), 소극적 그룹(161) 및 잠재그룹(163) 중 어느 그룹에 속하는지를 나타낸다. When the server control unit 125 adds a new virtual application server, the server control unit 125 first determines a physical server to create a new virtual application server. At this time, the server control unit 125 gives selection priority to each of the available physical servers 131, 132, and 133 according to the status information of the physical server, and selects an optimal physical server accordingly. The status information of the physical server is information indicating the activation status of the physical server, as described above with respect to the virtual application server, and the physical server is any one of the active group 162, the passive group 161 and the potential group 163 Lt; / RTI >

물리서버의 상태 정보는 물리서버가 포함하는 가상 응용서버의 상태정보에 기반하여 변화하거나, 가상 응용서버의 상태정보로 갈음 또는 대체될 수 있다. The status information of the physical server may change based on the status information of the virtual application server included in the physical server, or may be replaced or replaced with the status information of the virtual application server.

새로운 가상 응용서버를 생성할 물리서버(예를 들어, 132)가 선정되면, 서버제어부(125)는 물리서버(132)에 있는 가상머신 제어부(132b)에 서비스관리부(126)로부터 획득한 가상머신 템플릿을 전달하여 VIP(150)에 최적화된 새로운 가상 응용서버를 생성하도록 한다. 이때, 물리서버(132)는 가상머신 템플릿에 정의된 가상머신 이미지 정보(예를 들어, 가상머신 이미지 UUID)를 참조하여 가상머신 이미지풀(170, 후술됨)에 저장된 가상머신 이미지들(171, 172) 중에서 생성될 가상 응용서버에 적합한(또는 대응되는) 하나의 이미지를 선택하고, 선택된 가상머신 이미지를 이용하여 새로운 가상 응용서버를 생성한다. 가상 응용서버 생성에 이용되는 가상머신 이미지는 VIP(150)와 관련된 서비스 요청을 처리하는 데 필요한 응용 프로그램 설치 및 환경 설정이 모두 완료되어 있는 소프트웨어로서 구성된 이미지이다. 따라서, 새롭게 생성된 가상 응용서버는 생성 즉시 곧바로 서비스 요청 처리에 사용될 수 있다.When a physical server (for example, 132) to create a new virtual application server is selected, the server control unit 125 instructs the virtual machine control unit 132b in the physical server 132 to access the virtual machine And a new virtual application server optimized for the VIP 150 is generated by transmitting the template. At this time, the physical server 132 refers to the virtual machine image information (for example, the virtual machine image UUID) defined in the virtual machine template and stores the virtual machine images 171, 172), and creates a new virtual application server using the selected virtual machine image. The virtual machine image used for creating the virtual application server is an image configured as software in which application program installation and environment setting necessary for processing service requests related to the VIP 150 are completed. Thus, the newly created virtual application server can be used for service request processing as soon as it is created.

반대로, 서버제어부(125)가 기존의 가상 응용서버(131c, 132c) 중 적어도 일부를 제거하는 경우, 서버제어부(125)는 미리 결정된 방식으로 지정된 가상 응용서버 또는 임의의 가상 응용서버(예를 들어, 131c)를 선택한 후, 이를 소극적 그룹(161)으로 분류한다. 소극적 그룹(161)에 속한 가상 응용서버(131c)는 현재 처리중인 서비스 세션만 마저 처리하도록 설정되고, 가상 응용서버(131c)에는 추가적인 서비스 세션이 더 이상 할당되지 않는다. 만일, 가상 응용서버(131c)의 상태가 다시 활성 그룹(162)으로 바뀌지 않는다면, 소극적 그룹(161)에 속한 가상 응용서버(131c)는 어느 시점에 더 이상 처리할 서비스 세션이 존재하지 않게 된다. 이 경우, 가상 응용서버(131c)는 동작을 중단(suspend or shutdown)한 후 자신이 사용하던 시스템 자원을 반환하고 삭제된다. Conversely, when the server control unit 125 removes at least a part of the existing virtual application servers 131c and 132c, the server control unit 125 controls the virtual application server or any virtual application server specified in a predetermined manner And 131c, and classifies it into a passive group 161. [ The virtual application server 131c belonging to the passive group 161 is set to process even the service session currently being processed and no further service session is allocated to the virtual application server 131c. If the state of the virtual application server 131c is not changed to the activation group 162 again, the virtual application server 131c belonging to the passive group 161 does not have any service session to be processed at any point in time. In this case, after the virtual application server 131c suspends or shutdown the operation, the system resource used by the virtual application server 131c is returned and deleted.

실시 예로서, 가상 응용서버(131c)의 상태변화(예를 들어, 활성 그룹(162)에서 소극적 그룹(161)으로의 변화) 또는 삭제는 가상 응용서버(131c)가 포함된 물리서버(131)의 상태변화에도 영향을 미친다. 예를 들어, VIP와 관련하여 물리서버(131)가 포함하는 모든 가상 응용서버(131c)들이 소극적 그룹(161)에 속하면 물리서버(131)도 해당 VIP에 대해서 소극적 그룹으로 분류되고, VIP와 관련하여 물리서버(131)가 포함하는 모든 가상 응용서버(131c)가 삭제되면 물리서버(131)는 해당 VIP에 대해서 잠재 그룹(163)으로 분류되어 이후의 스케일-아웃에 대비하게 된다. As an embodiment, a change in state (e.g., change from active group 162 to passive group 161) or deletion of virtual application server 131c may be provided to physical server 131, including virtual application server 131c, And the change in the state of. For example, when all the virtual application servers 131c included in the physical server 131 belong to the passive group 161 in relation to the VIP, the physical server 131 is also classified into the passive group for the VIP, When all the virtual application servers 131c included in the physical server 131 are deleted, the physical server 131 is classified as a potential group 163 for the corresponding VIP to prepare for the subsequent scale-out.

이와 같이, 활성 그룹(162)과 잠재 그룹(163) 사이에 과도적인 소극적 그룹(161)을 설정하는 것은 가상 응용서버의 서비스 처리 중단이나 서비스 처리 지연과 같은 문제를 발생시키지 않으면서 동적으로 가상 응용서버들의 규모를 확장 또는 축소시킬 수 있도록 하기 위함이다. Setting the transient passive group 161 between the activation group 162 and the potential group 163 in this manner can dynamically create a virtual application server without dynamically generating a problem such as interruption of service processing or delay in service processing of the virtual application server. So that the scale of the servers can be expanded or reduced.

서비스관리부(126)는 사용가능한 물리서버(131, 132, 133)의 UUID, 물리서버(131, 132, 133)의 상태 정보, 가상 응용서버(131c, 132c)의 구성 정보(예를 들어, 가상 CPU 수, 메모리 용량, 디스크 용량, 네트워크 인터페이스 정보, 가상머신 이미지 UUID 등)를 포함하는 가상머신 템플릿, 초기의 서비스 요청 처리를 수행할 가상 응용서버의 디폴트(default) 개수, 부하 분산 장치(120)가 이용할 부하 분산 알고리즘, 서비스 세션 관리 정책, 가상 응용서버 규모의 확장 또는 축소에 이용할 상위 임계값과 하위 임계값 등의 정보를 저장 및 관리한다.The service management unit 126 stores the UUIDs of the usable physical servers 131, 132 and 133, the status information of the physical servers 131, 132 and 133, the configuration information of the virtual application servers 131c and 132c The number of CPUs, the memory capacity, the disk capacity, the network interface information, the virtual machine image UUID, etc.), the default number of virtual application servers to perform initial service request processing, And the upper threshold value and the lower threshold value to be used for expanding or reducing the size of the virtual application server are stored and managed.

한편, 본 발명에 따른 부하 분산 시스템(100)은 하나 이상의 가상머신 이미지(171, 172)를 포함하는 가상머신 이미지 풀(170)을 포함한다.Meanwhile, the load balancing system 100 according to the present invention includes a virtual machine image pool 170 including one or more virtual machine images 171 and 172.

가상머신 이미지 풀(170)은 부하 분산 장치(120)의 제어에 따라 새로운 가상 응용서버가 생성될 때 사용되는 이미지인 가상머신 이미지(171, 172)를 저장 및 관리한다. 가상머신 이미지(171, 172)는 처리할 서비스 요청과 관련된 VIP(150)에 따라, 생성될 가상 응용서버에 필요한 응용 프로그램의 설치 및 환경설정이 완료된 상태로 저장 및 관리된다. 새로운 가상 응용서버 생성시, 가상머신 이미지 풀(170)은 가상머신 이미지(171, 172)를 모든 설치 및 환경설정이 완료된 상태로 제공함으로써, 생성된 가상 응용서버가 생성 즉시 필요한 서비스 요청을 처리할 수 있도록 돕는다. 나아가, 가상 응용서버들은 VIP별로, 동일한 가상머신 템플릿과 가상머신 이미지(171, 172)를 사용하므로, 특정 VIP(150)와 관련된 서비스 요청을 처리하는 모든 가상 응용서버는 동일한 시스템 형상을 갖게 된다. 따라서, 그에 따라 본 발명에서 제안하는 상위 임계치 및 하위 임계치를 이용한 동적 가상 응용서버 제어가 더욱 효과적으로 적용될 수 있다.The virtual machine image pool 170 stores and manages virtual machine images 171 and 172, which are images used when a new virtual application server is created under the control of the load balancing apparatus 120. The virtual machine images 171 and 172 are stored and managed according to the VIP 150 related to the service request to be processed in a state where installation and environment setting of the application programs necessary for the virtual application server to be created are completed. When a new virtual application server is created, the virtual machine image pool 170 provides the virtual machine images 171 and 172 in a state in which all the installation and environment settings are completed, so that the created virtual application server processes the service request Help. Further, since the virtual application servers use the same virtual machine template and virtual machine images 171 and 172 for each VIP, all virtual application servers that process service requests related to the specific VIP 150 have the same system configuration. Accordingly, the dynamic virtual application server control using the upper threshold value and the lower threshold value proposed in the present invention can be applied more effectively.

지금까지는 부하 분산 장치(120)의 각 구성 요소에 대해 설명하였다. 설명된 부하 분산 장치(120)에 대한 전체적인 이해를 돕기 위해, 이하에서는 부하 분산 장치(120)의 동작 방법을 구체적이고 상세한 예를 들어 설명한다. 한편, 이 예에서 부하 분산 장치(120)는 각 가상 응용서버들(131c, 132c)이 처리중인 평균 서비스 세션 수에 따라, 가상 응용서버의 수를 제어하는 것으로 가정한다. 부연하면, 평균 서비스 세션 수는 특정 VIP와 관련하여 처리중인 총 서비스 세션 수를 그 서비스 세션들을 처리중인 가상 응용서버의 수로 나눈 값을 의미한다. 그러나, 이는 단지 예시적인 가정일 뿐으로, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 부하 분산 장치(120)는 가상 응용서버들이 처리하는 데이터의 평균 트래픽 양에 기반하여 가상 응용서버의 수를 제어할 수 있다. Each component of the load distributing apparatus 120 has been described so far. In order to facilitate a thorough understanding of the load distributing apparatus 120 described above, an operation method of the load distributing apparatus 120 will be described in detail with specific examples. Meanwhile, in this example, it is assumed that the load distributing apparatus 120 controls the number of virtual application servers according to the average number of service sessions being processed by the respective virtual application servers 131c and 132c. In other words, the average number of service sessions means the total number of service sessions in process with respect to a particular VIP divided by the number of virtual application servers that are processing the service sessions. However, this is only an exemplary assumption, and the scope of the present invention is not limited thereto. For example, the load balancer 120 may control the number of virtual application servers based on the average traffic volume of data processed by the virtual application servers.

먼저, 평균 서비스 세션의 수가 미리 결정된 상위 임계값을 초과하면, 부하 분산 장치(120)는 현재 가상 응용서버의 규모에 비해 부하 분산 서비스가 처리하는 부하(또는, 부하의 크기)가 과다한 것으로 판단한다. 그리고, 부하 분산 장치(120)는 그에 따라 VIP와 관련된 서비스 요청을 분산 처리할 새로운 가상 응용서버를 추가시킨다. 그 결과, 새롭게 추가된 가상 응용서버가 서비스 세션을 분담하여 처리하므로, VIP에 대한 평균 서비스 세션 수는 상위 임계값 이하로 감소하고 클라이언트에게 제공되는 서비스의 품질도 보장된다.First, when the number of average service sessions exceeds a predetermined upper threshold value, the load distributing apparatus 120 determines that the load (or load size) processed by the load balancing service is excessively larger than the current size of the virtual application server . The load balancer 120 then adds a new virtual application server to distribute service requests related to the VIP. As a result, since the newly added virtual application server shares and processes the service session, the number of average service sessions for the VIP decreases below the upper threshold and the quality of the service provided to the client is also guaranteed.

한편, 실시 예로서, 상위 임계값은 처리중인 서비스 요청(또는, 서비스 세션)의 유형(예를 들어, 웹서버 서비스 요청, 데이터베이스 서버 서비스 요청, 응용서버 서비스 요청, 파일서버 서비스 요청, 미디어전송서버 서비스 요청 등)에 따라, 각각의 서비스 요청의 유형별로 상이한 값으로서 미리 결정될 수 있다.Meanwhile, as an example, the upper threshold may be a value indicating the type of service request (or service session) being processed (e.g., a web server service request, a database server service request, an application server service request, Service request, etc.), it can be predetermined as a different value for each type of service request.

반대로, 평균 서비스 세션의 수가 미리 결정된 하위 임계값 미만이면, 부하 분산 장치(120)는 현재 가상 응용서버의 규모에 비해 서비스 부하가 과소한 것으로 판단한다. 이는 처리중인 서비스 요청에 비해 시스템 자원이 과잉 투입되고 있음을 의미하므로, 부하 분산 장치(120)는 서비스 요청을 처리중인 가상 응용서버들(131c, 132c) 중 적어도 일부를 서비스에서 제외시킨다. 이를 위해, 부하 분산 장치(120)는 먼저 서비스 VIP와 관련된 서비스 요청을 처리중인 가상 응용서버들(131c, 132c) 중에서 처리중인 서비스 세션의 수가 가장 작은 가상 응용서버(예를 들어, 131c)를 선택하고, 선택된 가상 응용서버(131c)를 소극적 그룹(161)으로 분류한다. 소극적 그룹(161)으로 분류된 가상 응용서버(131c)에는 새로운 서비스 세션의 추가적으로 할당되지 않으며, 가상 응용서버(131c)는 현재 처리중인 서비스 세션만을 처리하게 된다. 그리고, 시간이 경과하여 가상 응용서버(131c)가 자신에게 할당된 모든 서비스 세션을 처리하여 더 이상 처리중인 서비스 세션이 존재하지 않게 되면, 소극적 그룹(161) 내의 가상 응용서버(131c)는 일정한 유예 시간의 경과를 기다린 후 동작을 중단(suspend or shutdown) 또는 삭제되고 점유하고 있던 시스템 자원을 반환한다. Conversely, if the number of average service sessions is less than a predetermined lower threshold, the load balancer 120 determines that the service load is less than the current virtual application server size. This means that system resources are overloaded compared to the service request being processed, so that the load balancer 120 excludes at least some of the virtual application servers 131c and 132c that are processing the service request from the service. To this end, the load distributing apparatus 120 first selects a virtual application server (for example, 131c) having the smallest number of service sessions to be processed out of the virtual application servers 131c and 132c that are processing a service request related to the service VIP And classifies the selected virtual application server 131c into a passive group 161. [ A new service session is not additionally allocated to the virtual application server 131c classified into the passive group 161 and the virtual application server 131c processes only the service session currently being processed. If the virtual application server 131c processes all the service sessions allocated to the virtual application server 131c after the lapse of time and no more service sessions are being processed, the virtual application server 131c in the passive group Suspend or shutdown after a period of time elapses or return system resources that have been removed and occupied.

실시 예로서, 가상 응용서버의 중단 또는 삭제에 의해, 물리서버(예를 들어, 133) 내에 VIP와 관련된 서비스 요청을 처리하는 가상 응용서버가 하나도 존재하지 않게 되면, 물리서버(133)는 잠재 그룹(163)으로 분류되고 이후 새로운 가상 응용서버의 확장이 필요한 경우를 대비하게 된다.
If, by way of example, no virtual application server exists to process a service request associated with the VIP in the physical server (e.g., 133) by aborting or deleting the virtual application server, (163), and then a new virtual application server needs to be expanded.

한편, 클라이언트, 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)의 그것과 실질적으로 동일하다.
The virtual machine controllers 131b, 132b, and 133b, the virtual machine controllers 131a, 132b, and 133b, the virtual machine controllers 131b, 132b, and 133b, The contents of the application servers 131c and 132c other than those described herein are the same as those of the client 21, the VIP 25, the network 24, the service cluster 23, the physical servers 23_1, 23_2 and 23_3 23-2b, and 23_3b and the virtual application servers 23_1c, 23_1d, 23_2c, and 23_3c of the hypervisors 23_1a, 23_2a, and 23_3a, respectively.

본 발명의 실시 예들에 따르면, 서비스 관리자나 외부 응용프로그램과 같은 외부로부터의 개입 없이, 부하 분산 시스템의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라, 능동적으로 가상 응용서버를 추가, 상태변경, 또는 제거함으로써, 서비스 클러스터의 처리 용량을 적절하게 제어할 수 있다.According to the embodiments of the present invention, the virtual application server can be actively managed according to the status information of the load balancing system, the status information of the virtual application server, or the status information of the physical server without any intervention from the outside such as a service manager or an external application program By adding, changing state or removing, the processing capacity of the service cluster can be appropriately controlled.

그에 따라, 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화할 수 있으며, 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서 서비스 품질의 저하 없이 지속적으로 서비스를 제공할 수 있다.
Accordingly, it is possible to minimize the resource waste and the cost incurred due to the excessive configuration of the service cluster, and to continuously provide the service without deteriorating the service quality in the service environment where the fluctuation of the load amount with time is large.

도 4는 본 발명의 일 실시 예에 따른, 가상 응용서버 또는 물리서버의 상태변경을 구체적으로 설명하기 위한 상태도이다. 도 4를 참조하면, 가상 응용서버 또는 물리서버는 활성 상태(210), 소극적 상태(220) 및 잠재 상태(230) 중 어느 하나의 상태로 존재한다.4 is a state diagram for explaining a state change of a virtual application server or a physical server in detail according to an embodiment of the present invention. 4, a virtual application server or a physical server exists in one of an active state 210, a passive state 220, and a latent state 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). Referring to FIG. 4, the virtual application servers 131c and 132c or the physical servers 131, 132, and 133 of the load distribution system according to the present invention must be in the active state 210, the passive state 220, ). ≪ / RTI > All physical servers 131, 132, and 133 are in potential state 230 prior to providing a service in connection with a VIP and initiate service provision (or service request processing) associated with the VIP, (For example, stored in the service management unit 126) of the virtual application server to be executed, and processes the service request. At this time, the physical server 162 in which the virtual application server 132c and the virtual application server 132c are generated transits to the active state 210 (203). If the service provision related to the VIP is terminated by the external system administrator, the virtual application server 132c in the active state 210 is also terminated and the physical server 132 operating the virtual application server 132c is also in the potential state 230 (205).

한편, 서비스 요청을 처리하고 있던 중에 수신되는 부하 분산 서비스의 부하가 폭증하여 VIP에 대한 평균 서비스 세션 수가 상위 임계값을 초과하면, 새로운 가상 응용서버가 추가로 서비스 요청 처리에 투입되게 된다. 이때, 부하 분산 장치(120)는 우선적으로 소극적 상태(220)에 있는 가상 응용서버(131c)가 존재하는지를 살핀다. 소극적 상태(220)인 가상 응용서버(131c)가 존재하면, 부하 분산 장치(120)는 가상 응용서버(131c)를 활성 상태(210)로 천이시켜 서비스 요청 처리에 투입한다(204). 반대로, 소극적 상태(220)인 가상 응용서버가 존재하지 않으면, 부하 분산 장치(120)는 잠재 상태(230)에 있는 물리서버 중 최적의 물리서버(133)를 선택한 다음, 선택된 물리서버(133) 내에 새로운 가상 응용서버를 생성하고 이를 서비스 요청 처리에 투입한다. 이때, 선택된 물리서버(133) 및 생성된 가상 응용서버는 활성 상태(210)로 천이한다(203).On the other hand, if the load of the load balancing service received while the service request is being processed is increased and the average number of service sessions to the VIP exceeds the upper threshold value, the new virtual application server is further added to the service request processing. At this time, the load distributing apparatus 120 firstly checks whether the virtual application server 131c in the passive state 220 is present. If the virtual application server 131c exists in the passive state 220, the load distributing apparatus 120 transitions the virtual application server 131c to the active state 210 and puts the virtual application server 131c into the service request processing (204). Conversely, if there is no virtual application server, which is the passive state 220, the load balancer 120 selects the optimal physical server 133 among the physical servers in the potential state 230, And creates a new virtual application server in the service request process. At this time, the selected physical server 133 and the generated virtual application server transit to the active state 210 (203).

반대로, 서비스 요청을 처리하고 있던 중에 수신되는 부하 분산 서비스의 부하가 감소하여 VIP에 대한 평균 서비스 세션 수가 하위 임계값 미만이 되면, 동작중인 가상 응용서버 중 적어도 일부가 서비스 요청 처리에서 제외된다. 이때, 부하 분산 장치(120)는 활성 상태(210)에 있는 가상 응용서버 중에서 처리중인 서비스 세션의 수가 가장 작은 가상 응용서버(또는, 다른 선택 방법에 의해 선택된 가상 응용서버)를 소극적 상태(220)로 천이시킨다(201). Conversely, if the load on the load balancing service received while processing the service request is reduced and the average number of service sessions for the VIP is less than the lower threshold, at least some of the running virtual application servers are excluded from service request processing. At this time, the load balancer 120 transmits a virtual application server (or a virtual application server selected by another selection method) having the smallest number of service sessions being processed among the virtual application servers in the active state 210 to the passive state 220 (201).

이때, 소극적 상태(220)로 천이한 가상 응용서버(131c)에는 더 이상 새로운 서비스 세션이 할당되지 않으며, 소극적 상태(220)로 천이한 가상 응용서버(131c)가 처리중이던 기존의 서비스 세션만을 처리하게 된다. 만일 소극적 상태(220)에 있는 가상 응용서버(131c)가 처리중이던 서비스 세션을 모두 처리하면, 일정한 유예 시간의 경과(time-out)를 기다린 후에 해당 가상 응용서버(131c)는 동작을 중단(suspend or shutdown)하고, 점유하던 모든 시스템 자원을 반환한다. At this time, a new service session is no longer assigned to the virtual application server 131c transited to the passive state 220, and only the existing service session that is being processed by the virtual application server 131c transited to the passive state 220 is processed . If the virtual application server 131c in the passive state 220 processes all the service sessions in process, the virtual application server 131c suspends the operation after waiting for a certain time-out or shutdown) and returns all occupied system resources.

이와 같은 방법으로, 물리서버(131) 내에 VIP와 관련된 서비스 요청을 처리하는 가상 응용서버가 하나도 존재하지 않게 된 경우, 물리서버(131)는 잠재 상태(230)로 천이하여(205) 이후의 스케일-아웃을 대비한다.In this way, when none of the virtual application servers for processing the service requests related to the VIPs exist in the physical server 131, the physical server 131 transits to the latent state 230, - Prepare for out.

이와 같이 가상 응용서버(131c, 132c) 및 물리서버(131, 132, 133)의 활성화 상태를 활성 상태, 소극적 상태 및 잠재 상태 중 어느 하나로 구분함으로써, 가상 응용서버 및 물리서버는 동적으로 더욱 유연하게 운영되게 된다. 나아가, 가상 응용서버의 규모를 동적으로 확장 또는 축소시키는 경우에도, 클라이언트(110)에 제공되는 서비스가 중단이나 지연되지 않을 수 있으며, 예측 불가능한 서비스 부하의 변동에 대해 외부 시스템 관리자 또는 외부 응용 프로그램의 도움없이도 부하 분산 시스템(100)은 가상 응용서버의 규모를 효과적으로 조정할 수 있게 된다.
By dividing the activation state of the virtual application servers 131c and 132c and the physical servers 131, 132, and 133 into one of the active state, the passive state, and the latent state, the virtual application server and the physical server can be dynamically more flexible . Further, even when the size of the virtual application server is dynamically expanded or reduced, the service provided to the client 110 may not be interrupted or delayed, and an unexpected change in service load may be caused by an external system administrator or an external application program Without assistance, the load balancing system 100 can effectively scale the size of the virtual application server.

도 5는 본 발명의 일 실시 예에 따른, 부하 분산 방법을 나타내는 순서도이다. 도 5를 참조하면, 부하 분산 장치(120)의 부하 분산 방법은 S111 단계 내지 S123 단계를 포함한다.5 is a flow diagram illustrating a load balancing method, in accordance with an embodiment of the present invention. Referring to FIG. 5, the load balancing method of the load balancer 120 includes steps S111 to S123.

부하 분산 장치(120)는 네트워크(140)를 통해 특정 VIP를 주소로 하여 수신되는 데이터 패킷을 수신한다. 수신된 데이터 패킷이 기존의 처리중인 서비스 세션에 속하는 경우, 부하 분산 장치(120)는 전송처리부(121)의 플로우 테이블을 참조하여, 기존의 서비스 세션을 처리하는 가상 응용서버로 수신된 패킷을 전달한다. 반면에, 수신된 데이터 패킷이 새로운 서비스 세션에 해당하는 경우, 부하 분산 장치(120)는 전송제어부(122)를 통해 가상 응용서버들의 서비스 처리 상태를 분석하고, 분석 결과에 따라 수신된 새로운 서비스 세션을 처리할 가상 응용서버를 결정하게 된다. 이하에서는, 새로운 서비스 세션이 수신되는 것을 시작점으로 하여 본 발명에 따른 부하 분산 방법을 설명한다. The load balancer 120 receives data packets received over a network 140 addressed to a specific VIP. If the received data packet belongs to an existing service session in process, the load balancer 120 refers to the flow table of the transport processor 121 to forward the packet received to the virtual application server that processes the existing service session do. On the other hand, if the received data packet corresponds to a new service session, the load balancing apparatus 120 analyzes the service processing status of the virtual application servers through the transmission control unit 122, The virtual application server to be processed is determined. Hereinafter, a load balancing method according to the present invention will be described with respect to starting receiving a new service session.

S111 단계에서, 부하 분산 장치(120)는 네트워크(140)를 통해 클라이언트로부터 특정 VIP와 관련된 새로운 서비스 세션을 수신한다. In step S111, the load balancer 120 receives a new service session associated with a particular VIP from the client over the network 140. [

S112 단계에서, 부하 분산 장치(120)는 새로운 서비스 세션의 할당을 위해, 동작중인 가상 응용서버들의 서비스 처리 상태를 분석함으로써, 부하 분산 장치(110)는 운용중인 가상 응용서버의 수(또는 규모)가 적절한지 판단한다. 이때, 부하 분산 장치(110)는 부하 분산 서비스(100)의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보를 참조할 수 있다.In step S112, the load distributing apparatus 120 analyzes the service processing state of the active virtual application servers in order to allocate a new service session, so that the load distributing apparatus 110 calculates the number (or scale) Is appropriate. At this time, the load distributing apparatus 110 may refer to the status information of the load balancing service 100, the status information of the virtual application server, or the status information of the physical server.

예를 들어, 부하 분산 장치(120)는 가상 응용서버들이 처리중인 평균 서비스 세션 수(즉, 처리중인 전체 서비스 세션의 수를 가상 응용서버의 수로 나눈 값)가 상위 임계값을 초과하는지 판단한다. 다만 이는 예시적인 정의로서, 평균 서비스 세션의 수를 대신하여 다른 값(예를 들어, 처리중인 전체 서비스 세션의 수)이 사용될 수 있다. For example, the load balancer 120 determines whether the number of average service sessions being processed by the virtual application servers (i.e., the number of total service sessions in process divided by the number of virtual application servers) exceeds an upper threshold. However, as an exemplary definition, other values (e.g., the total number of service sessions in process) may be used in place of the number of average service sessions.

그리고, 평균 서비스 세션 수가 상위 임계값을 초과하면, 부하 분산 방법은 S113 단계로 진행한다. 그렇지 않으면, 부하 분산 방법은 곧바로 S118 단계로 진행한다. If the average number of service sessions exceeds the upper threshold value, the load balancing method proceeds to step S113. Otherwise, the load balancing method proceeds directly to step S118.

S113 단계에서, 부하 분산 장치(120)는 서비스 클러스터(130) 내에 소극적 그룹에 속한 가상 응용서버가 존재하는지 판단한다. In step S113, the load distributing apparatus 120 determines whether there is a virtual application server belonging to the passive group in the service cluster 130. [

S113 단계는 부하 분산 서비스가 처리중인 부하에 비해 운용중인 가상 응용서버가 부족한 경우에 해당하므로, 부하 분산 장치(120)는 서비스 처리에 투입되는 가상 응용서버의 규모를 확장하여(예를 들어, 가상 응용서버의 수를 늘려) 가상 응용서버들의 평균적인 부하를 낮추어야 한다. 이를 위해, S113 단계에서 부하 분산 장치(120)는 우선적으로 현재 물리서버 내에 생성되어 있지만 새로운 서비스 세션을 할당받지 않고 있는, 소극적 상태의 가상 응용서버를 탐지한다. Since the step S113 corresponds to a case where the virtual application server being operated is insufficient as compared with the load being processed by the load distribution service, the load distributing apparatus 120 may extend the scale of the virtual application server put into the service processing (for example, The number of application servers must be increased) and the average load of virtual application servers should be lowered. To this end, in step S113, the load balancing apparatus 120 detects a virtual application server in a passive state, which is generated in the current physical server but is not allocated a new service session.

소극적 그룹의 가상 응용서버가 존재하면, 부하 분산 방법은 S114 단계로 진행한다. 그렇지 않으면, 부하 분산 방법은 S116 단계로 진행한다.If there is a passive group of virtual application servers, the load balancing method proceeds to step S114. Otherwise, the load balancing method proceeds to step S116.

S114 단계에서, 부하 분산 장치(120)는 소극적 그룹의 가상 응용서버들 중에서 활성 그룹으로 상태변경할 가상 응용서버를 결정한다. In step S114, the load distributing apparatus 120 determines a virtual application server which is to be changed into an active group among the virtual application servers in the passive group.

실시 예로서, 상태변경할 가상 응용서버는 미리 결정된 기준에 따라 결정될 수도 있다. 예를 들어, 부하 분산 장치(120)는 소극적 그룹의 가상 응용서버들 중에서 가장 많은 서비스 세션을 처리하고 있는 가상 응용서버를 가상 응용서버로서 결정할 수 있다. 일반적으로, 서비스 세션의 수가 적은 가상 응용서버는 그렇지 않은 경우보다 더 이른 시간에 동작 중단 및 시스템 자원 반환이 이루어질 가능성이 높다. 따라서, 위 예에서와 같이, 처리중인 서비스 세션의 수가 적은 가상 응용서버를 소극적 그룹에 더 잘 남겨두면, 상대적으로 가상 응용서버의 자원 회수 및 물리서버의 잠재 그룹으로의 전환이 빨라지므로, 부하 분산 시스템(100)의 시스템 자원 관리에 더욱 효율적일 수 있다. As an embodiment, the stateful virtual application server may be determined according to a predetermined criterion. For example, the load balancer 120 may determine a virtual application server that is handling the largest number of service sessions among the passive group of virtual application servers as a virtual application server. In general, a virtual application server having a small number of service sessions is more likely to stop operation and return system resources at an earlier time than otherwise. Therefore, as in the above example, if a virtual application server having fewer service session sessions is left in a passive group, the virtual application server's resource recovery and conversion to a potential group of physical servers become faster, And can be more efficient in system resource management of the system 100.

다만, 이는 예시적인 것으로서, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 부하 분산 장치(120)는 소극적 그룹의 가상 응용서버들 중 임의의 가상 응용서버를 상태변경할 가상 응용서버로 결정할 수도 있다. However, it should be understood that the present invention is not limited thereto. For example, the load balancer 120 may determine any virtual application server in the passive group of virtual application servers as a virtual application server to change status.

상태변경할 가상 응용서버가 결정되면, 부하 분산 방법은 S115 단계로 진행한다.If the virtual application server to be changed is determined, the load balancing method proceeds to step S115.

S115 단계에서, 부하 분산 장치(120)는 S114 단계에서 결정된 가상 응용서버의 상태가 활성 그룹으로 변경되도록, 부하 분산 시스템(100)을 제어한다. In step S115, the load distributing apparatus 120 controls the load distribution system 100 so that the status of the virtual application server determined in step S114 is changed to the active group.

S115 단계가 완료되면, 부하 분산 방법은 S121 단계로 진행한다.When step S115 is completed, the load distribution method proceeds to step S121.

한편, 다시 S113 단계로 돌아가면, S113 단계에서 소극적 그룹에 속한 가상 응용서버가 존재하지 않은 경우, 부하 분산 방법은 S116 단계로 진행한다.On the other hand, if it is determined in step S113 that there is no virtual application server belonging to the passive group in step S113, the load balancing method proceeds to step S116.

S116 단계에서, 부하 분산 장치(120)는 잠재 그룹의 물리서버 중 적어도 하나의 물리서버에 새로운 가상 응용서버를 생성시킨다. S116 단계는 가상 응용서버의 규모를 확장할 필요가 있지만 소극적 그룹에 속한 가상 응용서버는 존재하지 않는 경우로서, 이러한 경우 새로운 가상 응용서버를 생성하여 서비스 부하 처리를 분담시킬 필요가 있다. In step S116, the load distributing apparatus 120 creates a new virtual application server in at least one of the physical servers of the potential group. In step S116, it is necessary to expand the size of the virtual application server, but there is no virtual application server belonging to the passive group. In this case, it is necessary to create a new virtual application server and share the service load processing.

이를 위해, 부하 분산 장치(120)는 잠재 그룹에 속한 물리서버 중 새로운 가상 응용서버를 생성할 최적의 물리서버를 결정하고, 결정된 물리서버에 새로운 가상 응용서버를 생성시킨다. 새로운 가상 응용서버를 생성할 최적의 물리서버는 다양한 기준에 따라 결정될 수 있다. 예를 들어, 잠재 그룹에 속한 물리서버 중 사용가능한 시스템 자원이 가장 풍부한 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있고, 부하 분산 장치(120)와의 인터페이스 속도가 가장 빠른 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있다. 또는, 잠재 그룹에 속한 물리서버 중 임의의 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있다. 또는, 활성 그룹에 속한 물리서버 중 잉여 시스템 자원이 가장 풍부하거나, 시스템 부하가 가장 적은 물리서버를 가상 응용서버를 생성할 물리서버로 결정할 수도 있다. To this end, the load balancer 120 determines an optimal physical server to create a new virtual application server among the physical servers belonging to the potential group, and creates a new virtual application server in the determined physical server. The optimal physical server for creating a new virtual application server can be determined according to various criteria. For example, the physical server having the largest available system resources among the physical servers belonging to the potential group may be determined as a physical server to be created as a virtual application server, or a physical server having the fastest interface speed with the load balancing apparatus 120 may be virtual The application server may be determined as a physical server to be created. Alternatively, an arbitrary physical server among the physical servers belonging to the potential group may be determined as a physical server to be a virtual application server. Alternatively, a physical server having the largest surplus system resources among the physical servers belonging to the active group or having the least system load may be determined as a physical server to be created as a virtual application server.

한편, 실시 예로서, 부하 분산 장치(120)는 가상머신 이미지 풀(170)에 저장된 가상머신 이미지(171, 172)를 이용하여 새로운 가상 응용서버가 생성되도록 부하 분산 시스템(100)을 제어할 수 있다. 가상머신 이미지(171, 172)에 대한 구체적인 내용은 앞서 설명한 바와 동일하다.Meanwhile, as an embodiment, the load balancer 120 can control the load balancing system 100 to create a new virtual application server using the virtual machine images 171 and 172 stored in the virtual machine image pool 170 have. The details of the virtual machine images 171 and 172 are the same as those described above.

위와 같은 방법으로 잠재 그룹으로부터 적어도 하나의 물리서버가 결정되고, 결정된 물리서버 내에 가상 응용서버가 생성되면, 부하 분산 방법은 S117 단계로 진행한다.At least one physical server is determined from the potential group in the above manner, and when a virtual application server is created in the determined physical server, the load balancing method proceeds to step S117.

S117 단계에서, 부하 분산 장치(120)는 S116 단계에서 생성된 가상 응용서버의 상태를 활성 그룹으로 변경시킨다. 실시 예로서, 부하 분산 장치(120)는 생성된 가상 응용서버의 상태변경과 함께, 생성된 가상 응용서버를 포함하는 물리서버의 상태도 활성 그룹으로 변경시킬 수 있다. In step S117, the load distributing apparatus 120 changes the state of the virtual application server created in step S116 to the active group. As an embodiment, the load distributing apparatus 120 may change the state of the created virtual application server and the state of the physical server including the generated virtual application server into the active group.

S117 단계가 완료되면, 부하 분산 방법은 S121 단계로 진행한다.When step S117 is completed, the load distribution method proceeds to step S121.

한편, 다시 S112 단계로 돌아가서, 가상 응용서버의 처리중인 평균 세션 수가 상위 임계값을 초과하지 않으면, 부하 분산 방법은 S118 단계로 진행한다. Returning to step S112, if the average number of sessions being processed by the virtual application server does not exceed the upper threshold value, the load balancing method proceeds to step S118.

S118 단계에서, 부하 분산 장치(120)는 가상 응용서버들이 처리중인 평균 서비스 세션 수가 하위 임계값 미만인지 판단한다. 다만 이는 예시적인 정의로서, 평균 서비스 세션 수를 대신하여 다른 값(예를 들어, 처리중인 전체 서비스 세션의 수)이 사용될 수 있다. In step S118, the load balancer 120 determines whether the average number of service sessions being processed by the virtual application servers is less than a lower threshold. However, as an exemplary definition, other values (e.g., the total number of service sessions in process) may be used instead of the average number of service sessions.

그리고, 평균 서비스 세션 수가 상위 임계값 미만이면, 부하 분산 방법은 S119 단계로 진행한다. 그렇지 않으면, 부하 분산 방법은 곧바로 S121 단계로 진행한다. If the average number of service sessions is less than the upper threshold value, the load balancing method proceeds to step S119. Otherwise, the load balancing method proceeds directly to step S121.

한편, S119 단계로 진행하는 경우는, 처리중인 서비스 세션에 비해 가상 응용서버의 수가 많은 경우이므로, 부하 분산 시스템(100)의 자원 활용률을 높이기 위해 가상 응용서버의 규모를 감소시키는 스케일-인을 수행할 필요가 있다. On the other hand, in the case of proceeding to the step S119, since the number of the virtual application servers is larger than that of the service session in process, the scale-in process of reducing the size of the virtual application server to increase the resource utilization rate of the load distribution system 100 is performed Needs to be.

S119 단계에서, 부하 분산 장치(120)는 활성 그룹의 가상 응용서버들 중 소극적 그룹으로 상태변경할 가상 응용서버를 결정한다. In step S119, the load balancer 120 determines a virtual application server to change its status to a passive group among the virtual application servers of the active group.

실시 예로서, 부하 분산 장치(120)는 활성 그룹의 가상 응용서버들 중에서 처리중인 서비스 세션의 수가 가장 적은 가상 응용서버를 상태변경할 가상 응용서버로 결정할 수 있다. 다만, 이는 예시적인 경우로서, 부하 분산 장치(120) 그외의 다양한 방법 또는 기준에 따라 상태변경할 가상 응용서버를 결정할 수 있다.As an embodiment, the load balancer 120 may determine a virtual application server having the smallest number of service sessions to be processed among virtual application servers in the active group as a virtual application server to change its status. However, this is an exemplary case, and the load balancer 120 may determine a virtual application server that will change state according to various other methods or criteria.

S120 단계에서, 부하 분산 장치(120)는 S137 단계에서 결정된 가상 응용서버의 상태를 소극적 그룹으로 변경한다. In step S120, the load distributing apparatus 120 changes the status of the virtual application server determined in step S137 to a passive group.

한편, 앞서 설명했던 바와 같이, 그리고 이 설명의 말미에 다시 언급되겠지만, 소극적 그룹으로 상태변경된 가상 응용서버는 신규 서비스 세션을 더 이상 할당받지 않으며, 처리중인 서비스 세션의 완료와 함께 자신이 점유하던 시스템 자원을 반환하고 동작 중단 또는 삭제된다. On the other hand, as described above, and as will be reiterated at the end of this discussion, a virtual application server that has changed state to a passive group will no longer be assigned a new service session, It returns the resource and stops or deletes the operation.

S120 단계가 완료되면, 부하 분산 방법은 S121 단계로 진행한다.When step S120 is completed, the load balancing method proceeds to step S121.

이상의 S111 단계 내지 S120 단계는 신규 서비스 세션을 할당하기 전에 필요한 가상 응용서버들을 적절한 규모로 준비하는 프로비저닝 단계로서 정의될 수 있다. S111 단계 내지 S120 단계에서, 부하 분산 방법은 부하 분산 서비스의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라 가상 응용서버를 생성, 상태변경 또는 삭제시킴으로써, 가상 응용서버의 수를 적절하게 유지한다.The steps S111 to S120 may be defined as a provisioning step of preparing necessary virtual application servers on an appropriate scale before assigning a new service session. In steps S111 to S120, the load balancing method creates, states, or deletes a virtual application server according to the load balancing service status information, the virtual application server status information, or the physical server status information, Keep it properly.

S121 단계에서, 부하 분산 장치(120)는 전송제어부(122)를 통해, 미리 결정된 부하 분산 알고리즘에 따라 활성 그룹에 속하는 가상 응용서버들 중에서 새로운 서비스 세션을 처리할 가상 응용서버를 결정한다. 실시 예로서, 미리 결정된 부하 분산 알고리즘은 균등 부하 분산(round robin) 알고리즘 또는 최소 연결(least connection) 알고리즘 일 수 있다. 이때, 부하 분산 장치(120)는 세션관리부(123)가 제공하는 부하 처리 정보를 참조하여, 새로운 서비스 세션을 처리할 가상 응용서버를 결정할 수 있다. 예를 들어, 부하 분산 알고리즘이 최소 연결 알고리즘인 경우, 부하 분산 장치(120)는 세션관리부(123)에 저장된 부하 처리 정보 중 가상 응용서버들 각각이 처리중인 서비스 세션의 수를 나타내는 정보를 읽어내고, 읽어낸 정보에 따라 현재 처리중인(또는, 서비스 중인) 서비스 세션의 수가 가장 적은 가상 응용서버를 새로운 서비스 세션을 처리할 가상 응용서버로 결정한다.In step S121, the load distributing apparatus 120 determines, through the transfer control unit 122, a virtual application server to process a new service session among the virtual application servers belonging to the active group according to a predetermined load distribution algorithm. As an example, the predetermined load balancing algorithm may be an equal load balancing algorithm or a least connecting algorithm. At this time, the load distributing apparatus 120 can determine a virtual application server to process a new service session by referring to the load processing information provided by the session managing unit 123. [ For example, when the load distribution algorithm is the minimum connection algorithm, the load distributing apparatus 120 reads information indicating the number of service sessions being processed by each of the virtual application servers among the load processing information stored in the session managing unit 123 , And determines a virtual application server having the smallest number of service sessions currently being processed (or in service) as a virtual application server to process a new service session according to the read information.

S122 단계에서, 부하 분산 장치(120)는 앞서 결정된 가상 응용서버에 새로운 서비스 세션이 할당된 것을 반영하도록, 세션관리부(123)의 부하 처리 정보를 갱신한다.In step S122, the load distributing apparatus 120 updates the load processing information of the session managing unit 123 so as to reflect the allocation of a new service session to the previously determined virtual application server.

S123 단계에서, 부하 분산 장치(120)는 전송처리부(121)를 통해, 앞서 결정된 가상 응용서버로 수신된 새로운 서비스 세션을 전송한다. In step S123, the load distributing apparatus 120 transmits a new service session received via the transmission processing unit 121 to the previously determined virtual application server.

S121 단계 내지 S123 단계는 프로비저닝 단계를 통해 준비된 가상 응용서버에 실제로 부하를 분산시키는 부하 분산 적용단계로 정의될 수 있다.
Steps S121 to S123 may be defined as a load balancing application step of actually distributing the load to the virtual application server prepared through the provisioning step.

한편, 앞서 소극적 그룹으로 상태변경된 가상 응용서버의 처리 방법에 대해 부연하면, 먼저, 부하 분산 장치(120)는 소극적 그룹에 속한 가상 응용서버가 존재하는 지 판단한다. 소극적 그룹에 속한 가상 응용서버가 존재하면, 부하 분산 장치(120)는 소극적 그룹에 속한 가상 응용서버의 처리중인 세션이 모두 완료되었는지 확인하고, 세션의 완료가 확인된 가상 응용서버를 중단시키거나 삭제한다. 이때, 중단 또는 삭제되는 가상 응용서버는 자신이 점유하던 시스템 자원을 부하 분산 시스템(100)에 반환하게 된다. On the other hand, when the processing method of the virtual application server is changed to the passive group, the load distributing apparatus 120 first determines whether there is a virtual application server belonging to the passive group. If there is a virtual application server belonging to the passive group, the load balancing apparatus 120 checks whether all of the sessions being processed by the virtual application server belonging to the passive group are completed, and suspends or deletes the virtual application server, do. At this time, the virtual application server, which is suspended or deleted, returns the system resources occupied by the virtual application server to the load distribution system 100.

나아가, 부하 분산 장치(120)는 중단 또는 삭제된 가상 응용서버를 포함하고 있던 물리서버 내에 동작중인(즉, 특정 VIP과 관련한 서비스 세션을 처리중인) 다른 가상 응용서버가 존재하는지 판단한다. 동작 중인 다른 가상 응용서버가 존재하지 않으면(즉, 물리서버 내에 동작중인 가상 응용서버가 없으면), 부하 분산 장치(120)는 해당 물리서버의 상태를 잠재 그룹으로 변경시킨다. 잠재 그룹에 놓여진 물리서버는 이후의 스케일-아웃에 대비하여 유보 또는 준비된다.Furthermore, the load balancer 120 determines whether there is another virtual application server in operation (i.e., processing a service session associated with a particular VIP) in the physical server that contained the suspended or deleted virtual application server. If there is no other virtual application server in operation (that is, there is no virtual application server in operation in the physical server), the load balancer 120 changes the state of the physical server to a potential group. The physical server placed in the potential group is reserved or prepared for subsequent scale-out.

한편, 도 5에서 설명되지 않은 부하 분산 장치(120) 및 부하 분산 시스템(100)에 대한 다른 구체적인 내용은 앞서 도 1 내지 도 4에서 설명한 바와 동일하다.
The other details of the load distributing apparatus 120 and the load distributing system 100, which are not described in FIG. 5, are the same as those described in FIGS. 1 to 4 above.

본 발명의 실시 예들에 따르면, 서비스 관리자나 외부 응용프로그램과 같은 외부로부터의 개입 없이, 부하 분산 시스템의 상태정보, 가상 응용서버의 상태정보 또는 물리서버의 상태정보에 따라, 능동적으로 가상 응용서버를 추가, 상태변경, 또는 제거함으로써, 서비스 클러스터의 처리 용량을 적절하게 제어할 수 있다.그에 따라, 서비스 클러스터의 과잉 구성으로 인한 자원 낭비 및 비용 발생을 최소화할 수 있으며, 시간에 따른 부하량의 변동폭이 큰 서비스 환경에서 서비스 품질의 저하 없이 지속적으로 서비스를 제공할 수 있다.According to the embodiments of the present invention, the virtual application server can be actively managed according to the status information of the load balancing system, the status information of the virtual application server, or the status information of the physical server without any intervention from the outside such as a service manager or an external application program It is possible to appropriately control the processing capacity of the service cluster by adding, changing, or removing the service cluster, thereby minimizing resource waste and cost incurred due to over-configuration of the service cluster, The service can be continuously provided in a large service environment without deteriorating the service quality.

또한, 도 5의 부하 분산 방법은 가상 응용서버의 규모를 확장 또는 축소할 때, 소극적 그룹이라는 하나의 상태 정보에 기초하여 가상 응용서버를 상태변경하거나 새로운 가상 응용서버를 생성한다. 그러한 구성에 따르면, 본 발명의 부하 분산 방법은 새로운 가상 응용서버 생성이나 기존 가상 응용서버의 삭제시, 클라이언트(110)에 제공되는 서비스의 지연이나 중단을 방지하는 효과를 갖는다.
In addition, when the size of the virtual application server is enlarged or reduced, the load distribution method of FIG. 5 changes the state of the virtual application server or creates a new virtual application server based on one state information of the passive group. According to such a configuration, the load balancing method of the present invention has an effect of preventing a delay or an interruption of a service provided to the client 110 when a new virtual application server is created or an existing virtual application server is deleted.

지금까지 본 명세서의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 명세서의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments.

또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 명세서의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 명세서의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 및 그 균등물에 의해 정해져야 한다.
Also, although specific terms are used herein, they are used for the purpose of describing the invention only and are not used to limit the scope of the present disclosure as defined in the claims or the claims. Therefore, the scope of the present specification should not be limited to the above-described embodiments, but should be defined by the appended claims and their equivalents.

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: 가상머신 이미지
10, 20, 100: load distribution system 11, 21: client
12, 22, 120: load distributing apparatus 13, 23, 130: cluster
14, 24, 140: network 15, 25: VIP
13_1, 13_2, 13_n: application server
23_1, 23_2, 23_3, 131, 132, 133: physical servers
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, and 133b:
121: Transmission processing unit 122:
123: Session management unit 124: Application server monitoring unit
125: server control unit 126: service management unit
170: Virtual machine image pool 171, 172: Virtual machine image

Claims (14)

부하 분산 시스템 내의 물리 서버들에 포함된 가상 응용서버들로 부하를 분산시키는 부하 분산 장치의 부하 분산 방법에 있어서,
상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계; 및
상기 판단한 결과에 따라, 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계를 포함하고,
상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는, 부하 분산 장치의 부하 분산 방법.
A load balancing method of a load balancing apparatus for balancing loads with virtual application servers included in physical servers in a load balancing system,
Determining whether the number of virtual application servers operating in the load balancing system is appropriate based on status information of the load balancing system, status information of the physical server, or status information of the virtual application servers; And
Generating, deleting or deleting one or more virtual application servers according to the determined result,
Wherein the status information of the load distribution system indicates a size or amount of a load that the load distribution system is receiving and processing.
제 1 항에 있어서,
상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는,
상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치를 초과하면, 상기 부하 분산 시스템이 수신 및 처리중인 부하가 과다한 것으로 판단하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
The method according to claim 1,
Wherein the step of determining whether the number of the virtual application servers to be operated is appropriate,
Wherein the load balancing system compares a value indicative of the magnitude or amount of the load being received and processed by the load balancing system with a predetermined threshold and if the value indicative of the magnitude or magnitude of the load exceeds the predetermined threshold, And determining that the load under processing is excessive.
제 1 항에 있어서,
상기 운용되는 가상 응용서버의 수가 적절한지 판단하는 단계는,
상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값을 미리 결정된 임계치와 비교하여, 상기 부하의 크기 또는 규모를 나타내는 값이 상기 미리 결정된 임계치미만이면, 상기 응용서버의 수가 과다하거나 과잉 투입된 것으로 판단하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
The method according to claim 1,
Wherein the step of determining whether the number of the virtual application servers to be operated is appropriate,
Wherein the load balancing system compares a value indicating a size or amount of a load that is being received and processed by the load balancing system with a predetermined threshold and if the value indicating the size or the size of the load is less than the predetermined threshold, And judging that the input device has been inserted.
제 2 항 또는 제 3 항에 있어서,
상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는 값은 상기 부하 분산 시스템이 처리중인 서비스 세션의 개수를 상기 서비스 세션을 처리중인 가상 응용서버의 수로 나눈 값인, 부하 분산 장치의 부하 분산 방법.
The method according to claim 2 or 3,
Wherein a value indicating a size or amount of a load being received and processed by the load distribution system is a value obtained by dividing the number of service sessions being processed by the load distribution system by the number of virtual application servers processing the service session, Way.
제 2 항 또는 제 3 항에 있어서,
상기 임계치는 상기 부하 분산 시스템에 포함된 가상 응용서버의 모니터링 정보 또는 상기 부하 분산 시스템이 수집한 시스템 부하 정보를 참조하여 결정되는, 부하 분산 장치의 부하 분산 방법.
The method according to claim 2 or 3,
Wherein the threshold value is determined by referring to monitoring information of a virtual application server included in the load distribution system or system load information collected by the load distribution system.
제 1 항에 있어서,
상기 하나 이상의 가상 응용서버 또는 상기 물리서버는 활성 그룹, 소극적 그룹 및 잠재 그룹 중 어느 하나에 포함되는, 부하 분산 장치의 부하 분산 방법.
The method according to claim 1,
Wherein the one or more virtual application servers or the physical servers are included in one of an active group, a passive group, and a potential group.
제 6 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 잠재 그룹에 속한 물리서버 중 적어도 하나의 물리서버에 상기 하나 이상의 가상 응용서버를 생성하는 단계; 및
상기 생성된 하나 이상의 가상 응용서버의 상태를 상기 활성 그룹으로 변경하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
The method according to claim 6,
The creating, changing, or deleting of the one or more virtual application servers comprises:
Creating at least one virtual application server in at least one physical server among the physical servers belonging to the potential group; And
And changing the state of the generated one or more virtual application servers to the active group.
제 7 항에 있어서,
상기 생성된 하나 이상의 가상 응용서버는 미리 생성된 가상머신 이미지를 이용하여 생성되고,
상기 가상머신 이미지는 상기 생성된 하나 이상의 가상 응용서버를 구동하기 위한 운영체제 등을 포함하는 소프트웨어 이미지 파일로서, 상기 서비스 요청을 처리하는 데 필요한 응용프로그램 및 환경설정을 포함하도록 구성되는, 부하 분산 장치의 부하 분산 방법.
8. The method of claim 7,
Wherein the generated one or more virtual application servers are created using a virtual machine image generated in advance,
Wherein the virtual machine image is a software image file including an operating system or the like for driving the generated one or more virtual application servers and configured to include an application program and an environment setting necessary for processing the service request, Load balancing method.
제 8 항에 있어서,
상기 미리 생성된 가상머신 이미지를 복수의 가상머신 이미지를 포함하는 가상머신 이미지 풀로부터 선택하기 위해 가상머신 템플릿을 참조하는, 부하 분산 장치의 부하 분산 방법.
9. The method of claim 8,
And references the virtual machine template to select the pre-generated virtual machine image from the virtual machine image pool including a plurality of virtual machine images.
제 6 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 하나 이상의 가상 응용서버의 상태를 상기 소극적 그룹으로부터 상기 활성 그룹으로 상태변경하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
The method according to claim 6,
The creating, changing, or deleting of the one or more virtual application servers comprises:
And changing state of the one or more virtual application servers from the non-active group to the active group.
제 6 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 하나 이상의 가상 응용서버의 상태를 상기 활성 그룹으로부터 상기 소극적 그룹으로 상태변경하는 단계를 포함하는, 부하 분산 장치의 부하 분산 방법.
The method according to claim 6,
The creating, changing, or deleting of the one or more virtual application servers comprises:
And changing state of the one or more virtual application servers from the active group to the passive group.
제 11 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 소극적 그룹으로 상태변경된 상기 하나 이상의 가상 응용서버에 대해서, 처리중인 세션이 완료되었는지 확인하는 단계; 및
상기 확인 결과에 따라, 상기 하나 이상의 가상 응용서버를 중단시키거나 삭제하는 단계를 더 포함하는, 부하 분산 장치의 부하 분산 방법.
12. The method of claim 11,
The creating, changing, or deleting of the one or more virtual application servers comprises:
Confirming that the session being processed has been completed for the one or more virtual application servers that have been changed to the passive group; And
And stopping or deleting the one or more virtual application servers according to the result of the checking.
제 12 항에 있어서,
상기 하나 이상의 가상 응용서버를 생성하거나, 상태변경하거나, 삭제하는 단계는,
상기 하나 이상의 가상 응용서버를 포함하는 물리서버를 잠재 그룹으로 상태변경하는 단계를 더 포함하는, 부하 분산 장치의 부하 분산 방법.
13. The method of claim 12,
The creating, changing, or deleting of the one or more virtual application servers comprises:
Further comprising: changing a physical server including the one or more virtual application servers into a potential group.
클라이언트로부터 수신되는 서비스 요청을 부하 분산 시스템 내의 물리서버에 포함된 가상 응용서버들로 분산 할당하는 부하 분산 장치에 있어서,
상기 부하 분산 시스템의 상태정보, 상기 물리서버의 상태정보 또는 상기 가상 응용서버들의 상태정보에 따라, 상기 부하 분산 시스템에서 운용되는 가상 응용서버의 수가 적절한지 판단하는 전송제어부; 및
상기 판단한 결과에 따라, 하나 이상의 가상 응용서버가 생성되거나, 상태변경되거나, 삭제되도록 제어하는 서버 제어부를 포함하고,
상기 부하 분산 시스템의 상태정보는 상기 부하 분산 시스템이 수신 및 처리중인 부하의 크기 또는 양을 나타내는, 클라이언트로부터 수신되는 서비스 요청을 가상 응용서버들로 분산 할당하는 부하 분산 장치.



A load balancer for distributing a service request received from a client to virtual application servers included in a physical server in a load balancing system,
A transmission control unit for determining whether the number of virtual application servers operated in the load distribution system is appropriate according to state information of the load distribution system, status information of the physical server, or status information of the virtual application servers; And
And a server control unit for controlling one or more virtual application servers to be created, changed, or deleted according to the determination result,
Wherein the status information of the load distribution system indicates a size or amount of a load being received and processed by the load distribution system, and distributes the service request received from the client to the virtual application servers.



KR1020140113432A 2014-08-28 2014-08-28 Apparatus and method for balancing load to virtual application server Withdrawn KR20160025926A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140113432A KR20160025926A (en) 2014-08-28 2014-08-28 Apparatus and method for balancing load to virtual application server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140113432A KR20160025926A (en) 2014-08-28 2014-08-28 Apparatus and method for balancing load to virtual application server

Publications (1)

Publication Number Publication Date
KR20160025926A true KR20160025926A (en) 2016-03-09

Family

ID=55536408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140113432A Withdrawn KR20160025926A (en) 2014-08-28 2014-08-28 Apparatus and method for balancing load to virtual application server

Country Status (1)

Country Link
KR (1) KR20160025926A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180096310A (en) * 2017-02-21 2018-08-29 에스케이텔레콤 주식회사 Method and appratus for performance control
KR102112047B1 (en) * 2019-01-29 2020-05-18 주식회사 리얼타임테크 Method for adding node in hybride p2p type cluster system
CN112035250A (en) * 2020-08-25 2020-12-04 上海中通吉网络技术有限公司 High-availability local area network service management method, equipment and deployment architecture
WO2022139150A1 (en) * 2020-12-24 2022-06-30 (주)비디오몬스터 Cloud-based distributed video rendering system, and autoscaling method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180096310A (en) * 2017-02-21 2018-08-29 에스케이텔레콤 주식회사 Method and appratus for performance control
KR102112047B1 (en) * 2019-01-29 2020-05-18 주식회사 리얼타임테크 Method for adding node in hybride p2p type cluster system
WO2020158968A1 (en) * 2019-01-29 2020-08-06 ㈜리얼타임테크 Method for extending task node in hybrid p2p cluster system
CN112035250A (en) * 2020-08-25 2020-12-04 上海中通吉网络技术有限公司 High-availability local area network service management method, equipment and deployment architecture
WO2022139150A1 (en) * 2020-12-24 2022-06-30 (주)비디오몬스터 Cloud-based distributed video rendering system, and autoscaling method thereof

Similar Documents

Publication Publication Date Title
CN112136294B (en) Application functions affect business routing messages and systems
US10171567B2 (en) Load balancing computer device, system, and method
CN105743995B (en) System and method for transplantable high-availability deployment and management of container cluster
EP3968605B1 (en) Method for providing edge service, apparatus and device
US20190028538A1 (en) Method, apparatus, and system for controlling service traffic between data centers
KR101781063B1 (en) Two-level resource management method and appratus for dynamic resource management
EP3338184B1 (en) Technique for reconfiguring a virtual machine
US20170300353A1 (en) Method for Allocating Communication Path in Cloudified Network, Apparatus, and System
US10993127B2 (en) Network slice instance management method, apparatus, and system
US20220318071A1 (en) Load balancing method and related device
US20220086044A1 (en) Analyzing and configuring workload distribution in slice-based networks to optimize network performance
US12101247B2 (en) Systems and methods for selecting tunnels for transmitting application traffic by an SD-WAN application
US10541901B2 (en) Methods, systems and computer readable media for optimizing placement of virtual network visibility components
CN103917956A (en) System and method for active-passive routing and control of traffic in a traffic director environment
US20230254243A1 (en) Systems and methods for managing network services by an sd-wan application and an sd-wan device
US20230231768A1 (en) Systems and methods for updating a configuration of an sd-wan application using connectivity or usage data
EP3113429B1 (en) Network resource processing device, method and system
KR20160025926A (en) Apparatus and method for balancing load to virtual application server
CN111240824A (en) CPU resource scheduling method and electronic equipment
US10681398B1 (en) Video encoding based on viewer feedback
JP6488910B2 (en) Control method, control program, and information processing apparatus
CN113535402A (en) Load balancing processing method and device based on 5G MEC and electronic equipment
JP2022166934A (en) Information processing device, overload control program, and overload control method
WO2018129957A1 (en) Vbng system multi-virtual machine load sharing method and vbng system device
JP2019028673A (en) Managing device and managing method

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20140828

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid