KR20170029263A - 부하 분산 장치 및 방법 - Google Patents
부하 분산 장치 및 방법Info
- Publication number
- KR20170029263A KR20170029263A KR1020150126376A KR20150126376A KR20170029263A KR 20170029263 A KR20170029263 A KR 20170029263A KR 1020150126376 A KR1020150126376 A KR 1020150126376A KR 20150126376 A KR20150126376 A KR 20150126376A KR 20170029263 A KR20170029263 A KR 20170029263A
- Authority
- KR
- South Korea
- Prior art keywords
- server
- profile
- load
- unit
- service
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Power Sources (AREA)
- Computer And Data Communications (AREA)
Abstract
부하 분산 장치는 적어도 하나 이상의 서버를 포함하는 서버 클러스터, 프로필 관리부 및 서비스 스케쥴링부를 포함한다. 프로필 관리부는 클라이언트로부터의 요청에 기초하여 서비스 제공에 필요한 부하들의 프로필 및 서버 클러스터가 포함하는 서버의 프로필을 관리한다. 서비스 스케쥴링부는 프로필 관리부로부터 부하들의 프로필 및 서버의 프로필을 제공받아 부하들을 처리할 서버를 결정한다. 서버의 프로필은 해당 서버의 에너지-성능 정보를 포함한다.
Description
본 발명은 부하 분산에 관한 것으로, 복수의 서버를 포함하는 서버 클러스터에 부하를 분산하는 부하 분산 장치 및 방법에 관한 것이다.
인터넷과 같은 통신 네트워크들의 발전으로 인하여 인터넷을 통하여 많은 서비스들이 생겨나고 있는 실정이다. 점점 클라이언트에서 네트워크를 통하여 서버 호스트에서 작업을 수행하거나 데이터를 저장하는 형태의 서비스가 증가하고 있다. 서비스의 증가로 인하여 서비스 요청이 어떤 특정 노드, 즉 특정 서버에만 집중되는 것을 막기 위한 부하 분산 기법이 필요하다. 기존의 부하 분산 장치 및 방법에 의하면, 다수의 노드에 클라이언트의 요청을 순차적으로 분산하거나, 클라이언트의 요청을 무작위로 선정된 노드에 분산한다. 그 외에도 서로 다른 성능을 가진 노드에 가중치를 설정하여, 가중치에 따라 클라이언트의 요청을 할당하거나, 노드의 현재 가용량에 따라 클라이언트의 요청을 할당 여부를 결정한다. 이러한 기존의 부하 분산 장치 및 방법들은 부하가 하나의 서버로 집중되는 문제를 해결하는데 초점을 두고 있다.
또한, 서버들의 성능이 고성능화 되고 서비스 요구량이 큰 폭으로 증가하면서, 다양한 서비스들을 제공하는 클러스터가 모여있는 데이터센터의 전력 사용량이 가파르게 증가하고 있다. 이에 따라 데이터센터의 운영비용에서 전력 사용량이 차지하는 비중이 커지며, 데이터센터의 운영비용이 크게 증가하고 있다. 상기와 같은 이유로 하나의 서버로 부하가 집중하는 문제뿐만 아니라, 부하 분산을 통하여 에너지를 절감할 수 있는 부하 분산 방법들이 등장하고 있다.
기존의 부하 분산 장치 및 방법은 클러스터로 구성된 각 서버의 성능과 전력소모량을 같이 고려하여 부하를 분산하는 방법을 사용하고 있지 않다. 또한 동일한 하드웨어로 구성된 서버들의 경우에도 서버의 위치에 따라 냉각장치, 예를 들어 쿨링 팬 등이 다르게 동작하여 전력 사용량이 서로 상이할 수 있으며, 평소 서버의 부하 수행 상태에 따라 하드웨어의 고장으로 인하여 전력 사용량이 변할 수 있다.
각 서버의 에너지 사용량을 고려하지 않고 성능만을 고려하여 부하를 할당하는 경우, 효율적으로 에너지 사용을 하지 못하게 되어, 서버들을 효율적으로 사용하지 못하게 된다. 또한 서버의 성능을 고려하지 않고 전력 소모량만을 고려하여 부하를 할당하는 경우, 고성능을 요하는 서비스를 저성능 서버에 할당하여 클라이언트가 요구하는 응답속도에 대응하지 못하는 단점이 있다.
본 발명의 실시예는 클라이언트에서 요청된 다양한 서비스 요청에 대한 분석을 통해 부하 프로필을 생성하고, 각 서버의 에너지-성능 정보 및 유휴에너지-성능 정보 프로필을 생성하여, 이를 기초로 서비스 스케쥴링을 통해 서비스 요청에 적절한 서버를 할당함으로써 클러스터의 에너지 효율을 높이고 서비스 품질을 유지하도록 할 수 있는 부하 분산 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 일 실시예에 따른 부하 분산 장치는 적어도 하나 이상의 서버를 포함하는 서버 클러스터; 클라이언트로부터의 요청에 기초하여 서비스 제공에 필요한 부하들의 프로필 및 상기 서버 클러스터가 포함하는 서버의 프로필을 관리하는 프로필 관리부; 및 상기 프로필 관리부로부터 상기 부하들의 프로필 및 상기 서버의 프로필을 제공받아 상기 부하들을 처리할 서버를 결정하는 서비스 스케쥴링부를 포함한다. 여기서, 상기 서버의 프로필은 해당 서버의 에너지-성능 정보를 포함한다.
일 실시예에서, 상기 프로필 관리부는: 상기 서비스 제공에 필요한 부하들의 프로필을 등록, 갱신 및 삭제하는 부하 프로필 관리부; 상기 서버 클러스터에 포함되는 서버의 프로필을 등록, 갱신 및 삭제하는 서버 프로필 관리부; 상기 서버 클러스터에 포함되는 서버의 동작 상태를 모니터링하는 서버 모니터링부; 및 상기 부하 프로필 관리부, 상기 서버 프로필 관리부 및 상기 서버 모니터링부로부터 수신한 데이터를 저장하는 저장부를 포함할 수 있다.
일 실시예에서, 상기 저장부에 저장되는 데이터는 상기 부하들의 프로필, 상기 서버의 프로필 및 상기 서버의 동작 상태를 모니터링한 결과를 포함할 수 있다. 또한, 상기 부하 프로필 관리부는 상기 저장부에 저장되는 부하들의 프로필을 등록, 갱신 및 삭제하고, 상기 서버 프로필 관리부는 상기 저장부에 저장되는 서버의 프로필을 등록, 갱신 및 삭제하며, 상기 서버 모니터링부는 상기 서버의 동작 상태를 모니터링하여 그 결과를 상기 저장부에 저장 및 갱신할 수 있다.
일 실시예에서, 상기 서비스 스케쥴링부는: 상기 프로필 관리부로부터 상기 서버의 동작 상태를 모니터링한 결과를 제공받아, 각 서버의 자원 사용 가용량에 기초하여 서버 리스트를 생성하는 서비스 프로비저닝부; 상기 프로필 관리부로부터 제공받은 상기 부하 프로필 및 상기 서비스 프로비저닝부로부터 제공받은 상기 서버 리스트에 기초하여 각 부하를 수행할 서버를 할당하는 서버 선택부; 및 상기 서버 선택부에 의해 부하별로 할당된 서버 정보를 임시 저장하는 작업 큐를 포함할 수 있다.
일 실시예에서, 상기 서버 리스트는 각 서버의 자원 사용 가능량에 따라 해쉬 테이블로서 생성될 수 있다.
일 실시예에서, 상기 해쉬 테이블은 서버 ID를 키 값으로 하고, 버킷은 각 서버의 에너지-성능 정보에 기초하여 정렬될 수 있다.
일 실시예에서, 상기 서버 선택부는 상기 해쉬 테이블 내 각 서버의 에너지-성능 정보에 기초하여, 에너지-성능 수치가 가장 높은 서버를 선택할 수 있다.
일 실시예에서, 상기 서버의 프로필은 해당 서버의 유휴에너지-성능 정보를 포함할 수 있다. 상기 프로필 관리부의 저장부에 해당 부하의 프로필이 존재하지 않는 경우, 상기 서버 선택부는 유휴 상태에 있는 서버 중에 유휴에너지-성능 수치가 가장 높은 서버를 선택하고, 상기 부하 프로필 관리부는 상기 부하의 프로필을 생성하여 상기 저장부에 저장할 수 있다.
본 발명의 다른 실시예에 따른 부하 분산 장치는 복수의 서버를 포함하는 서버 클러스터에 부하를 할당한다. 상기 부하 분산 장치는: 클라이언트로부터의 요청에 기초하여 서비스 제공에 필요한 부하 프로필 정보 및 상기 서버 클러스터가 포함하는 서버들의 서버 프로필 정보를 관리하는 프로필 관리부 - 상기 서버 프로필 정보는 해당 서버의 에너지-성능 정보 및 유휴에너지-성능 정보를 포함함 -; 및 상기 프로필 관리부로부터 상기 부하 프로필 정보 및 상기 서버 프로필 정보를 제공받아 상기 부하들을 처리할 서버를 결정하는 서비스 스케쥴링부를 포함한다.
일 실시예에서, 상기 프로필 관리부는: 상기 부하 프로필 정보 및 상기 서버 프로필 정보를 저장하는 저장부; 상기 저장부에 저장되는 부하 프로필 정보를 관리하는 부하 프로필 관리부; 상기 저장부에 저장되는 서버 프로필 정보를 관리하는 서버 프로필 관리부; 및 상기 서버 클러스터에 포함되는 서버들의 동작 상태를 모니터링하는 서버 모니터링부를 포함할 수 있다.
일 실시예에서, 상기 서비스 스케쥴링부는: 상기 서버 모니터링부의 모니터링 결과를 수신하여, 상기 서버들의 자원 가용량에 기초한 서버 리스트를 생성하는 서비스 프로비저닝부; 상기 서버 리스트 및 상기 부하 프로필 정보에 기초하여 해당 부하가 수행될 서버를 지정하는 서버 선택부; 및 상기 서버 선택부의 선택 결과를 저장하는 작업 큐를 포함할 수 있다.
본 발명의 다른 실시예에 따른 부하 분산 방법에 의하면 복수의 서버를 포함하는 서버 클러스터에 부하를 할당한다. 상기 부하 분산 방법은: 클라이언트로부터 서비스 요청을 수신하는 단계; 상기 서비스 요청에 기초하여 부하 프로필을 검색하는 단계; 상기 부하 프로필이 검색된 경우, 검색된 부하 프로필에 기초하여 서비스 프로비저닝하는 단계 - 상기 서비스 프로비저닝 단계는 상기 서버 클러스터에 포함되는 복수의 서버의 동작 상태 및 자원 사용량에 기초하여 서버 리스트를 생성하는 단계를 포함함 -; 상기 서비스 프로비저닝 결과에 기초하여 에너지 성능 수치가 가장 높은 서버로 해당 부하를 스케쥴링하는 단계; 상기 스케쥴링 결과에 기초하여, 작업 스케줄을 작업 큐에 할당하는 단계; 및 상기 작업 큐에 할당된 작업 스케줄의 부하를 상기 선택된 서버에 할당하는 단계를 포함한다.
일 실시예에서, 상기 부하 분산 방법은, 상기 부하를 상기 선택된 서버에 할당하는 단계 이후에, 상기 부하 프로필 정보를 갱신하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 부하 분산 방법은: 상기 서비스 요청에 기초하여 부하 프로필을 검색하는 단계에서 부하 프로필이 검색되지 않은 경우, 상기 서버 클러스터에 포함된 복수의 서버들 중 유휴 상태에 있는 서버를 검색하고, 상기 검색된 서버들 중 유휴 에너지 성능 수치가 가장 높은 서버에 상기 부하를 할당하며, 상기 부하에 대한 부하 프로필을 생성하여 저장하는 단계를 포함할 수 있다.
본 발명에 따른 부하 분산 장치 및 방법에 의하면, 기존의 부하 분산 장치들이 고려하지 않았던 전력 절감 측면에서 서버들의 에너지와 성능의 효율 특성을 분석하고 서비스 특성에 맞게 부하를 분석하여 클러스터 내 적정한 서버에 부하를 분산시킴으로써 시스템의 성능과 안정성을 보장할 수 있다. 이에 따라, 서비스의 품질 손상 없이도 사용자들에게 원활한 서비스를 제공할 수 있으며, 또한 서비스 제공자는 서비스를 제공하는데 있어 서버들의 운영 비용을 절감할 수 있다.
도 1은 일반적인 부하 분산 기술을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 부하 분산 장치를 나타내는 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 부하 분산 장치를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 부하 분산 장치에 포함되는 프로필 관리부의 일 예를 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 부하 분산 장치에 포함되는 서비스 스케줄링부의 일 예를 나타내는 블록도이다.
도 6은 본 발명의 또다른 실시예에 따른 부하 분산 방법을 나타내는 순서도이다.
도 7은 두 예시적인 서버에서, 특정 부하를 수행하는데 필요한 전력 사용량을 자원 사용률에 따라 나타낸 그래프이다.
도 8은 두 예시적인 서버에서, 단위 시간당 수행하는 트랜잭션의 처리 횟수를 자원 사용률에 따라 나타내는 그래프이다.
도 9는 두 예시적인 서버에서, 에너지-성능 정보를 자원 사용률에 따라 나타내는 그래프이다.
도 2는 본 발명의 일 실시예에 따른 부하 분산 장치를 나타내는 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 부하 분산 장치를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 부하 분산 장치에 포함되는 프로필 관리부의 일 예를 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 부하 분산 장치에 포함되는 서비스 스케줄링부의 일 예를 나타내는 블록도이다.
도 6은 본 발명의 또다른 실시예에 따른 부하 분산 방법을 나타내는 순서도이다.
도 7은 두 예시적인 서버에서, 특정 부하를 수행하는데 필요한 전력 사용량을 자원 사용률에 따라 나타낸 그래프이다.
도 8은 두 예시적인 서버에서, 단위 시간당 수행하는 트랜잭션의 처리 횟수를 자원 사용률에 따라 나타내는 그래프이다.
도 9는 두 예시적인 서버에서, 에너지-성능 정보를 자원 사용률에 따라 나타내는 그래프이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이 때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
본 발명에 따른 부하 분산 장치 및 방법은 클라이언트에게 서비스를 제공하기 위해 복수의 서버들을 포함하는 서버 클러스터 환경에서, 클라이언트가 요청한 서비스의 부하 특성 및 서버들의 에너지 성능 특성을 함께 고려하여 동적으로 부하를 분산한다. 이를 통하여 에너지 및 성능 측면에서 효율적으로 부하를 서버 클러스터 내 개별 서버에 할당하여, 서버 클러스터를 운영하는데 필요한 전력을 절감하고 클라이언트가 요청한 서비스의 응답 속도를 유지할 수 있도록 한다.
도 1은 일반적인 부하 분산 기술을 나타내는 도면이다.
도 1을 참조하면, 복수의 클라이언트(101, 103, 105)가 네트워크(110)에 접속되고, 서버 클러스터(130) 또한 네트워크(110)에 접속된다. 서버 클러스터(130)는 복수의 서버들(131, 132, 133, …, 137)을 포함할 수 있다. 클라이언트(101, 103, 105)는 네트워크(110)를 통해 서버 클러스터(130)에 서비스를 요청할 수 있다. 클라이언트(101, 103, 105)는 스마트 폰, 태블릿, 노트북과 같은 모바일 기기일 수도 있고, 데스크 탑과 같이 네트워크(110)에 유선으로 연결된 기기일 수도 있다. 클라이언트(101, 103, 105)는 네트워크(110)를 통해서 서버 클러스터(130)에 서비스를 요청하게 된다. 서버 클러스터(130)는 서비스 수행을 위한 부하(load)를 서버 클러스터(130) 안에 있는 노드들(131, 132, 133, …, 137) 중 하나에 할당하게 된다. 서버 클러스터(130)는 단일 하드웨어 사양을 가진 복수의 노드일 수도 있으며, 다양한 하드웨어 사양을 가진 노드들로 구성될 수 있다. 기존의 부하 분산 기술에 의하면, 클라이언트(101, 103, 105)로부터 수신한 서비스 요청을 수행하기 위한 부하가 서버 클러스터(130) 내의 서버들(131, 132, 133, …, 137)에 무작위로 분산되거나, 노드 가용량에 따라 할당되거나, 서로 다른 하드웨어 사양을 지닌 노드의 경우 노드 성능에 가중치를 두어 할당되었다. 이렇듯 서버 클러스터 내 각 서버의 에너지 사용량을 고려하지 않고 성능만을 고려하여 부하를 할당하는 경우, 효율적으로 에너지 사용을 하지 못하게 되어, 서버들을 효율적으로 사용하지 못하게 된다. 또한 서버의 성능을 고려하지 않고 에너지 사용량만을 고려하여 부하를 할당하는 경우, 고성능을 요하는 서비스를 저성능 서버에 할당하여 클라이언트가 요구하는 응답속도에 대응하지 못하는 단점이 있다.
도 2는 본 발명의 일 실시예에 따른 부하 분산 장치를 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 부하 분산 장치(200)는 프로필 관리부(210), 서비스 스케줄링부(230) 및 서버 클러스터(250)를 포함한다. 서버 클러스터(250)는 적어도 하나 이상의 서버를 포함한다.
프로필 관리부(210)는 클라이언트로부터의 서비스 요청에 기초하여, 해당 서비스의 제공에 필요한 부하들의 프로필 및 상기 서버 클러스터가 포함하는 서버의 프로필을 관리한다. 부하들의 프로필은, 클라이언트로부터 요청받은 서비스를 제공하는데 필요한 부하에 대한 프로필 정보일 수 있다. 상기 부하들의 프로필은 부하 프로필 정보로 지칭될 수도 있다. 부하 프로필 정보는 해당 부하를 처리하는데 필요한 시스템 자원에 관한 정보가 포함될 수도 있다. 또한, 특정 자원에 의해 부하가 처리될 때 소요되는 시간 정보가 포함될 수도 있다. 한편, 서버의 프로필은 서버 클러스터(250)에 포함되는 각 서버들의 상세 정보일 수 있다. 상기 서버의 프로필은 서버 프로필 정보로 지칭될 수 있다.
일 실시예에서, 상기 서버의 프로필은 해당 서버의 에너지-성능 정보를 포함할 수 있다. 각 서버의 소모 전력은 서버 내에 탑재되는 센서, 또는 하드웨어에서 제공하는 카운터를 통해 측정될 수 있다. 다른 경우에, 각 서버의 소모 전력은 서버 외부의 계측기를 통하여 측정될 수 있다. 상기 소모 전력은 전력 사용정보로서 입력될 수 있다. 예시적으로, “에너지-성능 정보”는 해당 서버의 자원 사용률 구간에서의 전력 소모 대비 서버 성능을 수치화한 정보로서 정의될 수 있다. 예를 들어, 해당 서버의 자원 사용률이 10퍼센트일 때의 전력 소모 대비 서버 성능은, 해당 서버의 자원 사용률이 90퍼센트일 때의 전력 소모 대비 서버 성능과 상이할 수 있다.
일 실시예에서, 에너지-성능 정보는 특정 부하의 처리 속도를 기준으로 소모되는 에너지량일 수 있다. 다른 실시예에서, 에너지 성능 정보는 수행시간이 짧은 특정 부하의 단위 시간당 수행되는 횟수를 전력으로 나눈 값이 될 수 있다. 여기서 의미하는 기준이 될 수 있는 특정 부하라는 것은 서버 클러스터에서 주로 수행되는 부하들과 같은 성격을 가질 수 있으며, 클러스터에서 수행되는 부하의 종류에 따라 여러 종류가 될 수 있다.
일 실시예에서, 상기 에너지-성능 정보는 다음과 같은 방식으로 생성될 수 있다. 특정 부하를 웹서비스를 위한 트랜잭션 처리라 가정하고, 클러스터의 유휴 상태부터 서버의 자원 사용률(중앙처리장치, 메모리 등)에 따라 단위 시간 당 트랜잭션의 처리 횟수와 시스템의 전력 사용량을 측정할 수 있다.
예를 들어, 자원 사용률이 유휴 상태, 10%, 20%, … , 90%, 100%인 각각의 상태에서 단위 시간당 트랜잭션의 처리 횟수를 측정할 수 있다. 전력 사용량(P) 정보는 서버 내에 설치된 전력 측정 센서를 이용하여 수집한다고 가정한다. 이 경우, 각 자원 사용률에서의 에너지-성능 정보는 다음 수식 1과 같이 계산할 수 있다.
EPRU = OPRU / PRU --- (1)
상기 수식 1에서, EPRU는 해당 자원 사용률(RU)에서의 에너지-성능 정보일 수 있다. 또한, OPRU는 해당 자원 사용률(RU)에서 단위 시간당 트랜잭션의 처리 횟수일 수 있다. 한편, PRU는 해당 자원 사용률(RU)에서 상기 트랜잭션 처리에 소모되는 단위 시간당 전력 사용량일 수 있다.
예를 들어, 자원 사용률이 20%일 때의 에너지-성능 정보(EP20)는 아래 수식 (2)와 같이 계산할 수 있다.
EP20 = OP20 / P20 --- (2)
본 발명의 실시예에 따른 부하 분산 장치(200)는 서버 클러스터(250)에 포함되는 서버들에 있어서, 각 서버의 전체 사용률 구간, 즉 0퍼센트에서 100퍼센트까지의 구간에 따른 전력 소모 대비 서버 성능을 해당 서버의 에너지-성능 정보로 작성하여, 서버 프로필 정보로서 프로필 관리부(210)가 이를 관리하도록 한다.
또다른 예에서, 기준이 되는 특정 부하의 일정한 처리 속도를 기준으로 서버가 소모하는 에너지량이 에너지-성능 정보로서 정의될 수도 있다. 다른 예에서, 수행시간이 짧은 특정 부하의 경우에, 해당 서버에서 단위 시간 당 부하가 수행되는 횟수를 전력으로 나눈 값이 에너지-성능 정보로서 정의될 수 있다. 본 발명의 일 실시예에 따른 부하 관리 장치는, 전력 소모 대비 부하를 처리하는 성능이 에너지-성능 정보로서 서버 프로필 정보에 포함되고, 이에 기초하여 부하가 지정될 서버를 선택하므로, 서비스 요청에 알맞는 서버를 할당하여 서버 클러스터(250)의 사용 전력을 절감하고 클라이언트에게 제공되는 서비스 품질을 향상, 유지할 수 있다.
에너지-성능 정보는 서버 클러스터(250) 내에 서버가 처음 설치되어 기동될 때 생성될 수 있다. 일 실시예에서, 해당 서버의 물리적 위치가 변경 되는 경우, 서버 내부 또는 서버와 관련된 하드웨어(냉각 장치를 포함한)가 변경 되는 경우 등 서버의 에너지 소모 또는 성능 등에 영향을 주는 이벤트 발생시 상기 서버 프로필 정보 내에 포함되는 에너지-성능 정보가 갱신될 수 있다. 실시예에 따라, 상기 서버 프로필 정보 내에 포함되는 에너지-성능 수치는 미리 결정된 주기값에 따라 정기적으로 갱신될 수도 있다. 새로 생성된 서버 프로필 정보는 프로필 관리부 내 저장부에 저장되고 갱신된다.
한편, 프로필 관리부(210)는 서버 클러스터(250) 내 서버들을 모니터링할 수 있다. 프로필 관리부(210)의 자세한 예에 대해서는 도 4를 참조하여 후술하기로 한다.
서비스 스케줄링부(230)는 프로필 관리부(210)로부터 상기 부하들의 프로필 및 상기 서버의 프로필을 제공받아 상기 부하들을 처리할 서버를 결정한다. 이 때 서버의 프로필은 해당 서버의 에너지-성능 정보를 포함한다. 다시 말하면, 서비스 스케줄링부(230)는 프로필 관리부(210)로부터 제공된 부하 프로필 정보 및 서버 프로필 정보에 기초하여, 에너지 효율이 뛰어난 서버에서의 서비스 프로비저닝(Service provisioning)을 통해, 서비스를 제공하는데 필요한 부하들을 서버 클러스터(250)의 어느 서버에서 수행할 것인지를 스케줄링 한다. 즉, 서비스 스케줄링부(230)는 부하들의 프로필 및 서버의 프로필을 수신하고, 서버의 프로필에 포함된 에너지-성능 정보에 기초하여 해당 부하의 수행을 위한 전력 소모 대비 서버 성능이 가장 높은 서버를 선택하여 해당 부하를 선택된 서버에 할당할 수 있다. 따라서, 부하를 수행하는 서버들의 에너지와 성능 특성을 함께 고려하여 동적으로 부하를 분산할 수 있다.
서버 클러스터(250)는 클라이언트에서 요청한 서비스를 제공하는데 필요한 부하들을 수행하는 적어도 하나의 서버들로 구성된다. 상기 서버들은 동일한 하드웨어 사양을 가진 서버일 수도 있으며, 서로 다른 하드웨어 사양을 가진 다양한 종류의 서버들로 구성 될 수 있다. 서버 클러스터(250) 내의 상기 서버들은 다수의 그룹이나 존으로 분리되어 관리 될 수 있다.
도 3은 본 발명의 다른 실시예에 따른 부하 분산 장치를 나타내는 블록도이다.
도 3을 참조하면, 본 발명의 다른 실시예에 따라 복수의 서버를 포함하는 서버 클러스터(350)에 부하를 할당하는 부하 분산 처리 장치(300)는 프로필 관리부(310) 및 서비스 스케줄링부(330)를 포함한다. 프로필 관리부(310)는 클라이언트로부터의 요청에 기초하여 서비스 제공에 필요한 부하 프로필 정보 및 서버 클러스터(350)가 포함하는 서버들의 서버 프로필 정보를 관리한다. 서비스 스케줄링부(330)는 프로필 관리부(310)로부터 상기 부하 프로필 정보 및 상기 서버 프로필 정보를 제공받아 상기 부하들을 처리할 서버를 결정한다.
도 3의 부하 분산 처리 장치(300)는 도 2의 부하 분산 처리 장치(200)와 유사하게 구성되나, 도 3의 부하 분산 처리 장치(300)는 서버 클러스터(350)를 포함하지 않는다. 즉, 도 2의 부하 분산 처리 장치(200)는 서버 클러스터(250)도 포함하는 반면에, 도 3의 부하 분산 처리 장치(300)는 서버 클러스터(350) 외부에 존재한 채로 서버 클러스터(350) 내의 서버들에 부하를 할당한다. 도 3의 부하 분산 장치(300)에 포함되는 프로필 관리부(310) 및 서비스 스케줄링부(330)의 구성 및 동작은 도 2의 프로필 관리부(210) 및 서비스 스케줄링부(230)와 동일 또는 유사할 수 있다. 따라서 도 3의 부하 분산 장치(300)에 포함되는 프로필 관리부(310) 및 서비스 스케줄링부(330)의 구체적인 동작에 관한 설명은 생략하기로 한다.
도 4는 본 발명의 일 실시예에 따른 부하 분산 장치에 포함되는 프로필 관리부의 일 예를 나타내는 블록도이다. 도 4를 참조하면, 프로필 관리부(400)는 서비스 제공에 필요한 부하들의 프로필을 등록, 갱신 및 삭제하는 부하 프로필 관리부(410), 서버 클러스터에 포함되는 서버의 프로필을 등록, 갱신 및 삭제하는 서버 프로필 관리부(430), 상기 서버 클러스터에 포함되는 서버의 동작 상태를 모니터링하는 서버 모니터링부(450) 및 상기 부하 프로필 관리부, 상기 서버 프로필 관리부 및 상기 서버 모니터링부로부터 수신한 데이터를 저장하는 저장부(470)를 포함한다.
일 실시예에서, 저장부(470)에 저장되는 데이터는 상기 부하들의 프로필, 상기 서버의 프로필 및 상기 서버의 동작 상태를 모니터링한 결과를 포함한다. 이에 따라 부하 프로필 관리부(410)는 저장부(470)에 저장되는 부하들의 프로필을 등록, 갱신 및 삭제하고, 서버 프로필 관리부(430)는 저장부(470)에 저장되는 서버의 프로필을 등록, 갱신 및 삭제하며, 서버 모니터링부(450)는 서버 클러스터 내 서버들의 동작 상태를 모니터링하여 그 결과를 저장부(470)에 저장 및 갱신한다.
부하 프로필 관리부(410)는 클라이언트로부터 요청된 서비스를 분석하여, 해당 서비스 수행에 필요한 부하들의 프로필을 관리한다. 부하들의 프로필, 즉 부하 프로필 정보는 해당 부하의 처리 수행 시간, 수행할 때 소모되는 서버의 평균 자원 사용량, 해당 부하가 필요한 서비스 목록 등에 관한 정보를 포함할 수 있다. 일단 클라이언트로부터 서비스가 요청되는 경우, 부하 프로필 관리부(410)는 저장부(470)를 검색하여 해당 서비스 수행에 필요한 부하의 프로필이 존재하는지 결정한다. 해당 부하의 프로필이 존재하는 경우, 부하 프로필 관리부(410)는 검색된 부하의 프로필을 서비스 스케줄링부로 전달하여 부하를 수행할 서버 선택에 이용되도록 한다. 해당 부하의 프로필이 존재하지 않는 경우, 부하 프로필 관리부(410)는 상기 부하의 프로필이 존재하지 않는다는 메시지를 서비스 스케줄링부로 전달할 수 있다. 서비스 스케줄링부는 검색된 부하 프로필 정보 또는 부하 프로필 정보가 존재하지 않는다는 메시지에 기초하여 부하를 서버에 할당할 수 있다. 서비스 스케줄링부의 동작에 대해서는 도 5를 참조하여 후술하기로 한다.
한편, 해당 부하의 프로필이 존재하지 않는 경우, 부하 프로필 관리부(410)는 상기 부하의 프로필이 존재하지 않는다는 메시지를 전송한 이후에, 상기 부하의 프로필을 생성할지 여부를 결정할 수 있다. 이러한 부하 프로필 정보의 생성은 관리자로부터의 입력에 의해 결정될 수 있다. 신규 부하 프로필 정보의 생성을 위해, 부하 프로필 관리부(410)는 서버 모니터링부(450)로부터 지정된 서버의 부하 처리 정보를 전달받을 수 있다. 즉, 서비스 스케줄링부에 의해 해당 부하를 처리할 서버가 지정되면, 서버 모니터링부(450)는 결정된 서버의 실제 부하 처리 상황을 모니터링하여 그 결과를 부하 프로필 관리부(410)로 전달한다. 부하 프로필 관리부(410)는 상기 부하가 처리되는 상황을 모니터링한 결과에 기초하여 해당 부하의 프로필을 생성하여 저장부(470)에 저장할 수 있다.
서버 프로필 관리부(430)는 서버 클러스터 내 서버들의 프로필을 관리한다. 본 발명의 일 실시예에서, 서버 프로필 정보는 해당 서버의 에너지-성능 정보를 포함할 수 있다. 전술한 바와 같이, 에너지-성능 정보는 서버 클러스터 내 각 서버들이 특정 부하를 처리할 때 소모하는 전력과 해당 부하의 처리 성능 간의 관계에 관한 정보일 수 있다. 상기 에너지-성능 정보는 서버 프로필 정보에 포함되며, 서버 프로필 관리부(430)는 상기 서버 프로필 정보를 생성하여 저장부(470)에 저장하고, 서버의 에너지 수치 또는 서버의 성능 수치 등에 영향을 미치는 이벤트 발생시 저장부(470)에 저장된 서버 프로필 정보 내 에너지 성능 정보를 갱신할 수 있다. 다른 실시예에서, 서버 프로필 관리부(430)는 미리 결정된 일정 기간마다 주기적으로 저장부(470)에 저장된 서버 프로필 정보 내 에너지 성능 정보를 갱신할 수 있다.
한편, 서버 프로필 정보는 해당 서버의 유휴에너지-성능 정보를 포함할 수 있다. 본 발명의 실시예에 따른 부하 분산 장치에 있어서, 상기 유휴에너지-성능 정보는 저장부(470) 내에 해당 부하의 부하 프로필 정보가 존재 하지 않아 서비스하고자 하는 부하의 자원 사용량과 서비스 수행 시간 등에 대한 정보가 없을 때 이용될 수 있다. 일 실시예에서, 상기 유휴에너지-성능 정보는 유휴 상태인 서버의 전력 사용량과 자원 사용률 구간과의 기울기의 평균값으로 표현 될 수 있다.
서버 모니터링부(450)는 서버 클러스터 내에 포함되는 서버들의 현재 자원 사용량, 할당된 부하의 수행 상태 및 서버의 전력 소모량 등을 모니터링한다. 즉, 서버 모니터링부(450)는 서버 클러스터 내 서버들의 자원 사용량, 전력 사용량, 현재 부하 처리 상태 등을 주기적으로 수집하거나 각 서버로부터의 피드백을 통하여 상기 정보들을 수집할 수 있다.
이와 같이, 본 발명의 실시예에 따른 부하 분산 장치의 프로필 관리부(400)는, 서비스 수행에 필요한 부하의 프로필을 관리하고, 서버 클러스터에 포함되는 서버들의 프로필을 관리하여 이를 서비스 스케줄링부에 제공함으로써, 서비스 스케줄링부가 에너지-성능 정보에 기초하여 요청된 서비스에 알맞은 서버를 할당하도록 한다. 따라서 서버 클러스터의 사용 전력을 절감하고 서비스 품질을 향상, 유지시킬 수 있다.
도 5는 본 발명의 일 실시예에 따른 부하 분산 장치에 포함되는 서비스 스케줄링부의 일 예를 나타내는 블록도이다.
도 5를 참조하면, 서비스 스케줄링부(500)는 서비스 프로비저닝부(510), 서버 선택부(530) 및 작업 큐(550)를 포함한다. 서비스 프로비저닝부(510)는 프로필 관리부(400)로부터 서버 클러스터 내 서버의 동작 상태를 모니터링한 결과를 제공받아, 각 서버의 자원 사용 가용량에 기초하여 서버 리스트를 생성한다. 서버 선택부(530)는 프로필 관리부(400)로부터 제공받은 상기 부하 프로필 및 서비스 프로비저닝부(510)로부터 제공받은 상기 서버 리스트에 기초하여 각 부하를 수행할 서버를 할당한다. 작업 큐(550)는 서버 선택부(530)에 의해 부하별로 할당된 서버 정보를 임시 저장한다.
일 실시예에서, 서비스 프로비저닝부(510)는 서버 클러스터 내 각 서버의 자원 사용 가능량에 따라 해쉬 테이블을 생성하여 서버 리스트에 포함되도록 할 수 있다. 이 경우, 상기 해쉬 테이블은 서버 ID를 키 값으로 하고, 버킷은 각 서버의 에너지-성능 정보에 기초하여 정렬될 수 있다.
서버 선택부(530)는 서비스 프로비저닝부(510)가 생성한 상기 해쉬 테이블 내 각 서버들의 에너지-성능 정보에 기초하여, 에너지-성능 수치가 가장 높은 서버를 선택할 수 있다. 즉, 서버 선택부(530)는 프로필 관리부(400)로부터 제공받은 부하 프로필 정보 및 서비스 프로비저닝부(510)가 생성한 해쉬테이블을 참고하여, 해당 부하의 자원 사용량을 토대로 해쉬 테이블에서 서비스를 수행할 서버를 선택할 수 있다. 이러한 방식으로 스케줄링 된 부하는 작업 큐(550)에 배치되어 실제 서버에 할당되기까지 대기한다.
일 실시예에서, 상기 서버의 프로필은 해당 서버의 유휴에너지-성능 정보를 포함할 수 있다. 프로필 관리부(400)의 저장부(470)에 해당 부하의 프로필이 존재하지 않는 경우, 서버 선택부(530)는 유휴 상태에 있는 서버 중에 유휴에너지-성능 수치가 가장 높은 서버를 선택할 수 있다. 이후에, 부하 프로필 관리부(410)는 상기 부하의 프로필을 생성하여 저장부(470)에 저장할 수 있다.
이와 같이, 본 발명의 실시예에 따른 부하 분산 장치의 서비스 스케줄링부(500)는 부하 프로필이 존재하는 경우 에너지-성능 정보에 기초하여 요청된 서비스에 알맞은 서버를 할당하고, 부하 프로필이 존재하지 않는 경우 유휴에너지-성능 정보에 기초하여 알맞은 서버를 할당하도록 한다. 따라서 서버 클러스터의 사용 전력을 절감하고 서비스 품질을 향상, 유지시킬 수 있다.
도 6은 본 발명의 또다른 실시예에 따른 부하 분산 방법을 나타내는 순서도이다.
도 6을 참조하면, 본 발명의 또다른 실시예에 따른 부하 분산 방법에서는 클라이언트로부터 서비스 요청을 수신한다(S601). 상기 서비스 요청은 부하 프로필 관리부(410)에 할당되고(S603), 부하 프로필 관리부(410)는 저장부(470)를 검색하여 해당 부하 프로필이 존재하는지 결정한다(S605).
부하 프로필이 존재하는 경우, 서비스 스케줄링부(500)의 서비스 프로비저닝에 의해 서버 리스트가 생성된다(S607). 즉, 상기 서비스 프로비저닝은, 상기 서버 클러스터에 포함되는 복수의 서버의 동작 상태 및 자원 사용량에 기초하여 서버 리스트를 생성하는 단계를 포함할 수 있다. 서버 선택부(530)는 에너지 성능 수치가 가장 높은 서버로 해당 부하를 스케줄링한다(S609). 상기 스케줄링 결과에 따라 부하를 수행할 서버가 지정되어 작업 큐(550)에 할당된다(S611). 작업 큐(500)에 할당된 부하들은 순차적으로 서버 클러스터 내의 서버에 할당된다(S613). 해당 부하가 서버에 의해 처리된 후에, 프로필 관리부(400)는 부하 처리 결과를 피드백할지 확인한다(S615). 상기 피드백할지 여부는 관리자로부터의 입력에 의해 확인될 수도 있고, 미리 결정된 규칙에 의해 확인될 수도 있다. 부하 처리 결과를 피드백하기로 결정되는 경우, 서버 모니터링부(450)로부터 모니터링된 부하 처리 결과가 부하 프로필 관리부(410)로 전달되고, 부하 프로필 관리부(410)는 부하 처리 결과에 따라 부하 프로필 정보를 갱신한다(S617).
부하 프로필이 존재하지 않는 경우, 서버 모니터링부(450)에 의해 서버 클러스터 내 유휴 상태인 서버가 탐색된다(S608). 서버 선택부(530)는 검색된 유휴 서버들 중에서, 유휴에너지-성능 수치가 가장 높은 서버로 해당 부하를 스케줄링한다(S610). 상기 스케줄링 결과에 따라 부하를 수행할 서버가 지정되어 작업 큐(550)에 할당된다(S612). 작업 큐(500)에 할당된 부하들은 순차적으로 서버 클러스터 내의 서버에 할당된다(S614). 해당 부하가 서버에 의해 처리된 후에, 프로필 관리부(400)는 해당 부하에 대한 부하 프로필을 생성할 것인지 여부를 확인한다(S616). 부하 프로필을 생성할 것인지 여부는 관리자로부터의 입력에 의해 확인될 수도 있고, 미리 결정된 규칙에 의해 확인될 수도 있다. 부하 프로필을 생성하기로 결정되는 경우, 서버 모니터링부(450)로부터 모니터링된 부하 처리 결과가 부하 프로필 관리부(410)로 전달되고, 부하 프로필 관리부(410)는 부하 처리 결과에 따라 부하 프로필을 생성한다(S618). 생성된 부하 프로필은 프로필 관리부(400)의 저장부(470)에 저장되어, 다음 서비스 요청시의 부하 분산에 활용된다.
이와 같이, 본 발명의 실시예에 따른 부하 분산 방법에 의하면, 부하 프로필이 존재하는 경우 에너지-성능 정보에 기초하여 요청된 서비스에 알맞은 서버를 할당하고, 부하 프로필이 존재하지 않는 경우 유휴에너지-성능 정보에 기초하여 알맞은 서버를 할당하도록 한다. 따라서 서버 클러스터의 사용 전력을 절감하고 서비스 품질을 향상, 유지시킬 수 있다.
도 7은 두 예시적인 서버에서, 특정 부하를 수행하는데 필요한 전력 사용량을 자원 사용률에 따라 나타낸 그래프이다. 한편, 도 8은 두 예시적인 서버에서, 단위 시간당 수행하는 트랜잭션의 처리 횟수를 자원 사용률에 따라 나타내는 그래프이다. 또한, 도 9는 두 예시적인 서버에서, 에너지-성능 정보를 자원 사용률에 따라 나타내는 그래프이다. 이하에서는 도 7 내지 도 9를 참조하여, 본 발명에 따른 부하 분산 장치 및 부하 분산 방법에 대해 설명하기로 한다.
도 7을 참조하면, 예시적인 서버인 서버 A와 서버 B에 대하여, 특정 부하를 수행하는데 필요한 전력 사용량을 자원 사용률에 따라 나타낸 그래프가 도시되어 있다. 자원 사용률이 유휴(Idle) 상태 ~ 50%인 구간에서, 특정 부하를 수행하는 데 필요한 전력 소모량은 서버 A가 서버 B보다 낮다. 즉, 서버 A는 유휴(Idle) 상태의 전력 사용량이 서버B의 전력 사용량보다 작지만, 자원 사용률 증가에 따른 전력 사용량 증가 폭이 크기 때문에 자원 사용률이 50%가 넘어가면 서버 B보다 더 많은 전력을 사용한다.
도 8의 경우, 예시적인 서버인 서버 A와 서버 B에 대하여, 단위 시간당 수행하는 트랜잭션의 처리 횟수를 자원 사용률에 따라 나타내는 그래프가 도시되어 있다. 서버 A와 B의 트랜잭션 처리 횟수가 자원 사용률이 70%이하까지는 비슷하며, 이후로는 서버 A의 트랜잭션 처리 횟수가 더 높다.
따라서, 부하를 할당할 때 전력 사용량을 기준으로 하는 경우, 도 7의 그래프에 따라 자원 사용률 구간이 낮은 경우 서버 A에 부하를 할당하고 자원 사용률 구간이 높은 경우 서버 B에 부하를 할당할 것이다. 한편, 성능을 기준으로 부하를 할당하는 경우, 도 8의 그래프에 따라 자원 사용률이 70%이상인 경우에 서버 A를 선호하여 할당 할 것이다.
한편, 도 9에는 예시적인 서버 A와 서버 B에 대하여, 전술한 수식 1에 기초하여 계산한 전력당 트랜잭션의 처리 횟수를 자원 사용률에 따라 나타낸 그래프가 도시되어 있다. 부하 할당 시 에너지 소모량을 기준하는 경우, 자원 사용률이 50% 이하인 경우에는 서버 A를, 자원 사용률이 50% 이상인 경우에는 서버 B를 할당하는 것이 더 에너지 효율적으로 부하를 분산한다는 것을 확인 할 수 있다. 상술한 바와 같이, 부하를 분산함에 있어 부하와 부하를 수행하는 서버에 대한 에너지 효율을 기준으로 부하를 할당함으로써 에너지 절감 효과를 기대할 수 있다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터를 이용하거나 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터를 이용하거나 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
101, 103, 105: 클라이언트
110: 네트워크
130: 서버 클러스터 131, 132, 133: 서버
200, 300: 부하 분산 장치 210, 310, 400: 프로필 관리부
230, 330, 500: 서비스 스케줄링부 250, 350: 서버 클러스터
410: 부하 프로필 관리부 430: 서버 프로필 관리부
450: 서버 모니터링부 470: 저장부
510: 서비스 프로비저닝부 530: 서버 선택부
550: 작업 큐
130: 서버 클러스터 131, 132, 133: 서버
200, 300: 부하 분산 장치 210, 310, 400: 프로필 관리부
230, 330, 500: 서비스 스케줄링부 250, 350: 서버 클러스터
410: 부하 프로필 관리부 430: 서버 프로필 관리부
450: 서버 모니터링부 470: 저장부
510: 서비스 프로비저닝부 530: 서버 선택부
550: 작업 큐
Claims (14)
- 적어도 하나 이상의 서버를 포함하는 서버 클러스터;
클라이언트로부터의 요청에 기초하여 서비스 제공에 필요한 부하들의 프로필 및 상기 서버 클러스터가 포함하는 서버의 프로필을 관리하는 프로필 관리부; 및
상기 프로필 관리부로부터 상기 부하들의 프로필 및 상기 서버의 프로필을 제공받아 상기 부하들을 처리할 서버를 결정하는 서비스 스케쥴링부를 포함하는 부하 분산 장치로서,
상기 서버의 프로필은 해당 서버의 에너지-성능 정보를 포함하는, 부하 분산 장치. - 제 1 항에 있어서, 상기 프로필 관리부는:
상기 서비스 제공에 필요한 부하들의 프로필을 등록, 갱신 및 삭제하는 부하 프로필 관리부;
상기 서버 클러스터에 포함되는 서버의 프로필을 등록, 갱신 및 삭제하는 서버 프로필 관리부;
상기 서버 클러스터에 포함되는 서버의 동작 상태를 모니터링하는 서버 모니터링부; 및
상기 부하 프로필 관리부, 상기 서버 프로필 관리부 및 상기 서버 모니터링부로부터 수신한 데이터를 저장하는 저장부를 포함하는, 부하 분산 장치. - 제 2 항에 있어서, 상기 저장부에 저장되는 데이터는 상기 부하들의 프로필, 상기 서버의 프로필 및 상기 서버의 동작 상태를 모니터링한 결과를 포함하고,
상기 부하 프로필 관리부는 상기 저장부에 저장되는 부하들의 프로필을 등록, 갱신 및 삭제하고,
상기 서버 프로필 관리부는 상기 저장부에 저장되는 서버의 프로필을 등록, 갱신 및 삭제하며,
상기 서버 모니터링부는 상기 서버의 동작 상태를 모니터링하여 그 결과를 상기 저장부에 저장 및 갱신하는 것을 특징으로 하는, 부하 분산 장치. - 제 2 항에 있어서, 상기 서비스 스케쥴링부는:
상기 프로필 관리부로부터 상기 서버의 동작 상태를 모니터링한 결과를 제공받아, 각 서버의 자원 사용 가용량에 기초하여 서버 리스트를 생성하는 서비스 프로비저닝부;
상기 프로필 관리부로부터 제공받은 상기 부하 프로필 및 상기 서비스 프로비저닝부로부터 제공받은 상기 서버 리스트에 기초하여 각 부하를 수행할 서버를 할당하는 서버 선택부; 및
상기 서버 선택부에 의해 부하별로 할당된 서버 정보를 임시 저장하는 작업 큐를 포함하는, 부하 분산 장치. - 제 4 항에 있어서,
상기 서버 리스트는 각 서버의 자원 사용 가능량에 따라 해쉬 테이블로서 생성되는 것을 특징으로 하는, 부하 분산 장치. - 제 5 항에 있어서,
상기 해쉬 테이블은 서버 ID를 키 값으로 하고, 버킷은 각 서버의 에너지-성능 정보에 기초하여 정렬되는 것을 특징으로 하는, 부하 분산 장치. - 제 6 항에 있어서,
상기 서버 선택부는 상기 해쉬 테이블 내 각 서버의 에너지-성능 정보에 기초하여, 에너지-성능 수치가 가장 높은 서버를 선택하는 것을 특징으로 하는, 부하 분산 장치. - 제 7 항에 있어서,
상기 서버의 프로필은 해당 서버의 유휴에너지-성능 정보를 포함하며,
상기 프로필 관리부의 저장부에 해당 부하의 프로필이 존재하지 않는 경우, 상기 서버 선택부는 유휴 상태에 있는 서버 중에 유휴에너지-성능 수치가 가장 높은 서버를 선택하고,
상기 부하 프로필 관리부는 상기 부하의 프로필을 생성하여 상기 저장부에 저장하는 것을 특징으로 하는, 부하 분산 장치. - 복수의 서버를 포함하는 서버 클러스터에 부하를 할당하는 부하 분산 장치로서,
클라이언트로부터의 요청에 기초하여 서비스 제공에 필요한 부하 프로필 정보 및 상기 서버 클러스터가 포함하는 서버들의 서버 프로필 정보를 관리하는 프로필 관리부 - 상기 서버 프로필 정보는 해당 서버의 에너지-성능 정보 및 유휴에너지-성능 정보를 포함함 -; 및
상기 프로필 관리부로부터 상기 부하 프로필 정보 및 상기 서버 프로필 정보를 제공받아 상기 부하들을 처리할 서버를 결정하는 서비스 스케쥴링부를 포함하는, 부하 분산 장치. - 제 9 항에 있어서,
상기 프로필 관리부는:
상기 부하 프로필 정보 및 상기 서버 프로필 정보를 저장하는 저장부;
상기 저장부에 저장되는 부하 프로필 정보를 관리하는 부하 프로필 관리부;
상기 저장부에 저장되는 서버 프로필 정보를 관리하는 서버 프로필 관리부; 및
상기 서버 클러스터에 포함되는 서버들의 동작 상태를 모니터링하는 서버 모니터링부를 포함하는 것을 특징으로 하는, 부하 분산 장치. - 제 10 항에 있어서,
상기 서비스 스케쥴링부는:
상기 서버 모니터링부의 모니터링 결과를 수신하여, 상기 서버들의 자원 가용량에 기초한 서버 리스트를 생성하는 서비스 프로비저닝부;
상기 서버 리스트 및 상기 부하 프로필 정보에 기초하여 해당 부하가 수행될 서버를 지정하는 서버 선택부; 및
상기 서버 선택부의 선택 결과를 저장하는 작업 큐를 포함하는, 부하 분산 장치. - 복수의 서버를 포함하는 서버 클러스터에 부하를 할당하는 부하 분산 방법으로서,
클라이언트로부터 서비스 요청을 수신하는 단계;
상기 서비스 요청에 기초하여 부하 프로필을 검색하는 단계;
상기 부하 프로필이 검색된 경우, 검색된 부하 프로필에 기초하여 서비스 프로비저닝하는 단계 - 상기 서비스 프로비저닝 단계는 상기 서버 클러스터에 포함되는 복수의 서버의 동작 상태 및 자원 사용량에 기초하여 서버 리스트를 생성하는 단계를 포함함 -;
상기 서비스 프로비저닝 결과에 기초하여 에너지 성능 수치가 가장 높은 서버로 해당 부하를 스케쥴링하는 단계;
상기 스케쥴링 결과에 기초하여, 작업 스케줄을 작업 큐에 할당하는 단계; 및
상기 작업 큐에 할당된 작업 스케줄의 부하를 상기 선택된 서버에 할당하는 단계를 포함하는, 부하 분산 방법. - 제 12 항에 있어서,
상기 부하를 상기 선택된 서버에 할당하는 단계 이후에,
상기 부하 프로필 정보를 갱신하는 단계를 더 포함하는, 부하 분산 방법. - 제 12 항에 있어서,
상기 서비스 요청에 기초하여 부하 프로필을 검색하는 단계에서 부하 프로필이 검색되지 않은 경우,
상기 서버 클러스터에 포함된 복수의 서버들 중 유휴 상태에 있는 서버를 검색하고,
상기 검색된 서버들 중 유휴 에너지 성능 수치가 가장 높은 서버에 상기 부하를 할당하며,
상기 부하에 대한 부하 프로필을 생성하여 저장하는 단계를 포함하는, 부하 분산 방법.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150126376A KR20170029263A (ko) | 2015-09-07 | 2015-09-07 | 부하 분산 장치 및 방법 |
| US15/220,954 US20170070567A1 (en) | 2015-09-07 | 2016-07-27 | Load balancing apparatus and load balancing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150126376A KR20170029263A (ko) | 2015-09-07 | 2015-09-07 | 부하 분산 장치 및 방법 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20170029263A true KR20170029263A (ko) | 2017-03-15 |
Family
ID=58189801
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020150126376A Withdrawn KR20170029263A (ko) | 2015-09-07 | 2015-09-07 | 부하 분산 장치 및 방법 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20170070567A1 (ko) |
| KR (1) | KR20170029263A (ko) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11711771B2 (en) * | 2018-06-25 | 2023-07-25 | Orange | Method for evaluating the energy consumption of a service unit in a communications network |
| KR102761526B1 (ko) * | 2024-06-03 | 2025-02-03 | 리벨리온 주식회사 | 인공지능 서비스 제공을 위한 로드 밸런싱 방법 및 시스템 |
| KR102922467B1 (ko) * | 2025-05-14 | 2026-02-05 | (주)클루닉스 | 고성능 컴퓨팅 클러스터 내에서 자원을 동적으로 배치하는 방법 및 시스템 |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10838482B2 (en) | 2016-10-10 | 2020-11-17 | International Business Machines Corporation | SLA-based power management in disaggregated computing systems |
| US10545560B2 (en) | 2016-10-10 | 2020-01-28 | International Business Machines Corporation | Power management and utilization detection of computing components |
| US10819599B2 (en) | 2016-10-10 | 2020-10-27 | International Business Machines Corporation | Energy consumption as a measure of utilization and work characterization in a system |
| US11169592B2 (en) | 2016-10-10 | 2021-11-09 | International Business Machines Corporation | SLA-based backup power management during utility power interruption in disaggregated datacenters |
| US10360077B2 (en) * | 2016-10-10 | 2019-07-23 | International Business Machines Corporation | Measuring utilization of resources in datacenters |
| CN107979539B (zh) * | 2017-10-30 | 2021-12-03 | 新华三技术有限公司 | 报文处理方法及装置 |
| US10664324B2 (en) * | 2018-05-30 | 2020-05-26 | Oracle International Corporation | Intelligent workload migration to optimize power supply efficiencies in computer data centers |
| CN110427194B (zh) * | 2019-06-18 | 2024-05-14 | 平安科技(深圳)有限公司 | 容器应用删除方法、装置、计算机设备及存储介质 |
| CN112306651B (zh) | 2019-07-31 | 2024-09-06 | 华为技术有限公司 | 一种资源分配方法和资源借调方法 |
| CN110659180A (zh) * | 2019-09-05 | 2020-01-07 | 国家计算机网络与信息安全管理中心 | 基于集群技术的数据中心基础设施管理系统 |
| US11212344B1 (en) * | 2020-08-31 | 2021-12-28 | Verizon Patent And Licensing Inc. | Systems and methods for utilities-based workload management in a communication network |
| US11503122B2 (en) * | 2020-08-31 | 2022-11-15 | Verizon Patent And Licensing Inc. | Systems and methods for utilities-based network management |
| CN112751945B (zh) * | 2021-04-02 | 2021-08-06 | 人民法院信息技术服务中心 | 一种分布式云服务的实现方法、装置、设备和存储介质 |
| CN113285890B (zh) * | 2021-05-18 | 2022-11-11 | 挂号网(杭州)科技有限公司 | 网关流量的分配方法、装置、电子设备及存储介质 |
| CN115981834A (zh) * | 2021-10-15 | 2023-04-18 | 拓尔思天行网安信息技术有限责任公司 | 集群的负载均衡方法和服务单元的集群 |
| US11722707B2 (en) * | 2021-10-15 | 2023-08-08 | Netflix, Inc | Dynamic content steering based on server and client device capabilities |
| CN114448751A (zh) * | 2022-02-18 | 2022-05-06 | 广州朗桥维视通信技术有限公司 | 一种服务网络节点的动态分配方法及系统 |
| CN115134227B (zh) * | 2022-06-17 | 2024-09-20 | 京东科技信息技术有限公司 | 用于维护服务器的方法和装置 |
| CN115297122B (zh) * | 2022-09-29 | 2023-01-20 | 数字江西科技有限公司 | 基于负载自动监测的政务运维方法和系统 |
| CN116614506A (zh) * | 2022-11-07 | 2023-08-18 | 天翼数字生活科技有限公司 | 一种基于服务网格来编排实时视频分析任务的方法及系统 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6938256B2 (en) * | 2000-01-18 | 2005-08-30 | Galactic Computing Corporation | System for balance distribution of requests across multiple servers using dynamic metrics |
| US7644148B2 (en) * | 2005-05-16 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Historical data based workload allocation |
| US7844839B2 (en) * | 2006-12-07 | 2010-11-30 | Juniper Networks, Inc. | Distribution of network communications based on server power consumption |
| EP2203818A2 (en) * | 2007-10-21 | 2010-07-07 | Citrix Systems, Inc. | Systems and methods to adaptively load balance user sessions to reduce energy consumption |
| KR101383905B1 (ko) * | 2011-12-19 | 2014-04-17 | 주식회사 솔박스 | 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치 |
| US9135076B2 (en) * | 2012-09-28 | 2015-09-15 | Caplan Software Development S.R.L. | Automated capacity aware provisioning |
-
2015
- 2015-09-07 KR KR1020150126376A patent/KR20170029263A/ko not_active Withdrawn
-
2016
- 2016-07-27 US US15/220,954 patent/US20170070567A1/en not_active Abandoned
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11711771B2 (en) * | 2018-06-25 | 2023-07-25 | Orange | Method for evaluating the energy consumption of a service unit in a communications network |
| KR102761526B1 (ko) * | 2024-06-03 | 2025-02-03 | 리벨리온 주식회사 | 인공지능 서비스 제공을 위한 로드 밸런싱 방법 및 시스템 |
| KR102922467B1 (ko) * | 2025-05-14 | 2026-02-05 | (주)클루닉스 | 고성능 컴퓨팅 클러스터 내에서 자원을 동적으로 배치하는 방법 및 시스템 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20170070567A1 (en) | 2017-03-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20170029263A (ko) | 부하 분산 장치 및 방법 | |
| EP3400535B1 (en) | System and method for distributed resource management | |
| US12106149B2 (en) | Flexible computing | |
| US7712102B2 (en) | System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data | |
| US8510745B2 (en) | Dynamic application placement under service and memory constraints | |
| US7523454B2 (en) | Apparatus and method for routing a transaction to a partitioned server | |
| US11599389B2 (en) | Autoscaling in an elastic cloud service | |
| KR101941282B1 (ko) | 가상 데스크톱 서비스 제공 방법 및 장치 | |
| US10191779B2 (en) | Application execution controller and application execution method | |
| US20140215076A1 (en) | Allocation of Virtual Machines in Datacenters | |
| Balaji et al. | Load balancing in cloud computing: issues and challenges | |
| CN114116173B (zh) | 动态调整任务分配的方法、装置和系统 | |
| JP6116102B2 (ja) | クラスタシステム、および、負荷分散方法 | |
| JP5445739B2 (ja) | リソース割当装置、リソース割当方法、及びプログラム | |
| US20130166751A1 (en) | Distributed resource management systems and methods for resource management thereof | |
| US11409570B2 (en) | Dynamic management of system computing resources | |
| Naik et al. | A survey on various task scheduling algorithms toward load balancing in public cloud | |
| Jayapandian et al. | The online control framework on computational optimization of resource provisioning in cloud environment | |
| US12164966B1 (en) | Dynamic task allocation and datastore scaling | |
| JP2017188145A (ja) | コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ | |
| Safavi et al. | Dynamic server provisioning with queue stabilization in data centres | |
| Hussain et al. | Cloud Partitioning for Public Clouds using Load Balancing Model | |
| JP2017182591A (ja) | コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20150907 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination |