이하, 첨부된 도면을 참조하여 본 발명의 일 실시예에 대하여 설명한다.
도 1은 본 발명의 일 실시예에 따른 로드밸런싱관리장치가 적용될 통신 환경을 보여주는 예시도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서비스 환경은, 단말(100), 로드밸런싱관리장치(200), 및 음성서비스지원시스템(300)을 포함하는 구성을 가질 수 있다.
단말(100)은, 상대방과의 통화를 시도(발신)하거나 또는 상대방으로부터 시도되는 통화를 수신(착신)하는 등 기본적인 통화 서비스를 이용할 수 있는 디바이스로서, 무선 단말일 수 있다.
물론, 단말(100)은, 기본적인 통화 서비스 외에도, 메시지(예: SMS, MMS 등)를 발/착신하는 등의 메시지 서비스와, 데이터 다운로드 및 정보 검색 등의 데이터 서비스를 이용할 수도 있다.
이러한 단말(100)은, 다수의 단말(101-10p)을 포함할 수 있으며, 로드밸런싱관리장치(200)에 의해 단말(101-10p)의 기능에 기초하여 단말의 타입(Type)을 구분한 결과에 따라 단말그룹(TG1-TGn)으로 분류되게 되는 데, 이와 관련된 구체적인 설명은 로드밸런싱관리장치(200)의 설명에서 다루기로 한다.
로드밸런싱관리장치(200)는, 로드밸런싱 정책시스템(LBPS; Load-Balancing Policy System)일 수 있으며, 음성 서비스(예: HD Voice 서비스)를 지원하는 음성서비스지원시스템(300)의 부하 및 용량정보를 기반으로 그룹(Group) 별 로드밸런싱(Load-Balancing)을 수행한 결과에 기초하여 각 단말그룹(TG1-TGn)에 적용될 정책(Policy)에 해당하는 시스템정보(예: IP주소)를 제공하게 된다.
이때, 시스템 장애 상황을 고려하여 각 단말그룹(TG1-TGn)에 속하는 단말 별로 다수개의 시스템정보(예: IP주소)가 제공될 수 있다.
여기서, 음성서비스지원시스템(300)의 부하 및 용량정보는, CPU/메모리/사용량 등에 의한 시스템의 부하, SIP 세션(Session)의 시스템 별 할당 개수, 및 시스템 운용자가 설정한 별도의 기준정보 중 적어도 하나를 통해 확인될 수 있다.
음성서비스지원시스템(300)은, 이종망간의 음성 서비스(예: HD Voice 서비스)를 지원하는 다수의 IMS(IP Multimedia Subsystem) 시스템(이하, 시스템)(SYS1-SYSq)일 수 있다. 이러한 음성서비스지원시스템(300)은, 로드밸런싱관리장치(200)에 의해 로드밸런싱(Load-Balancing)을 수행하기 위한 지원그룹(SG1-SGm)으로 분류되게 되는 데, 이와 관련된 구체적인 설명은 로드밸런싱관리장치(200)의 설명에서 다루기로 한다.
이하에서는, 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 로드밸런싱관리장치의 구성을 보다 구체적으로 설명하겠다.
도 1 및 도 2를 참고하면, 본 발명에 따른 로드밸런싱관리장치(200)는, 음성서비스 지원을 위한 다수의 시스템(SYS1-SYSq)을 그룹화하여 적어도 하나의 지원그룹(SG1-SGm)으로 분류하는 분류부(210), 각 지원그룹(SG1-SGm)에 속하는 시스템(SYS1-SYSq)의 가중치를 이용하여 지원그룹(SG1-SGm) 별 그룹가중치를 산출하는 산출부(220), 및 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 단말로 할당할 제1 지원그룹을 결정하고, 제1 지원그룹과 관련하여 기 설정된 나머지 지원그룹의 순서에 기초하여 상기 단말로 할당할 나머지 지원그룹을 결정하는 관리부(230)를 포함하는 구성을 가질 수 있다.
또한, 로드밸런싱관리장치(200)는, 로드밸런싱(Load-Balancing)을 수행하는 과정에서 생성 및 송수신되는 모든 정보(예: 할당 IP주소, 단말 별 성능정보, 시스템 별 성능정보 등)를 저장하는 저장부(240)를 더 포함하는 구성을 가질 수 있다.
이상의 분류부(210), 산출부(220), 관리부(230) 및 저장부(240)를 포함하는 로드밸런싱관리장치(200)의 전체 구성 내지는 적어도 일부는 소프트웨어 모듈 또는 하드웨어 모듈 형태로 구현되거나, 또는 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.
결국, 본 발명이 일 실시예에 따른 로드밸런싱관리장치(200)는 위 구성들을 통해 지원그룹SG1-SGm) 별 그룹가중치를 산출한 결과에 기초하여 암호화된 패킷(Encapsulation PKT) 호에 대한 로드밸런싱이 자동적으로 수행되도록 하며, 장애 발생 및 복구 시에도 정확하게 시스템 간의 트래픽 밸런싱(Traffic Balancing)이 이루어져 안정적인 서비스가 제공되도록 할 수 있는 데, 이하에서는 이를 위한 로드밸런싱관리장치(200) 내 각 구성에 대해 구체적으로 설명하기로 한다.
분류부(210)는, 로드밸런싱(Load-Balancing)이 자동적으로 수행될 수 있도록 단말(100) 및 음성서비스지원시스템(300)을 그룹화하여 분류하는 기능을 수행한다.
보다 구체적으로, 분류부(210)는, 단말(100)을 그룹화하여 분류하는 제1 분류부(211) 및 음성서비스지원시스템(300)을 그룹화하여 분류하는 제2 분류부(212)를 포함한다.
제1 분류부(211)는, 다수의 단말(101-10p)의 기능에 기초하여 단말의 타입(Type)을 구분한 결과에 따라 단말그룹(TG1-TGn)으로 분류한다. 본 발명에서는 설명의 편의를 위해 각 단말그룹(TG1-TGn)에 속하는 단말이 3개인 것으로 가정하여 설명하도록 하겠다.
여기서, 단말(101-10p)의 기능은, 단말(101-10p)의 성능정보로부터 획득할 수 있는 IPSec(IP Security Protocol) 지원 여부 및 EVS(Enhanced Voice Service) 지원여부 등이 포함될 수 있으며, 이외에도 그룹화 기준으로 사용될 수 있는 다른 기능들도 포함될 수 있음은 물론이다.
예를 들어, 로드밸런싱관리장치(200)로 접속되는 다수의 단말(101-10p)을 IPSec 지원 여부에 따라 분류하는 경우, 제1 분류부(211)는, 다수의 단말(101-10p)의 각 성능정보를 이용하여 IPSec 지원 가능여부를 판단하고, 판단결과에 따라 IPSec 지원이 가능한 단말들을 단말그룹(TG1)으로 구분하고, IPSec 미 지원 단말들을 단말그룹(TG2)으로 구분한다.
이처럼 다수의 단말(101-10p)이 타입(Type) 별로 그룹화되어 단말그룹(TG1-TGn)으로 분류되면, 단말그룹(TG1-TGn) 별 정책(Policy)이 독립적으로 존재하게 된다.
이에, 로드밸런싱관리장치(200)에서는 단말그룹(TG1-TGn) 중 로드밸런싱(Load-Balancing)을 수행하기 위한 그룹을 별도로 관리하여 관련 정책(Policy)을 해당 단말로 제공하게 되며, 그에 따라 장애 발생 및 복구 시에도 트래픽 밸런싱(Traffic Balancing)을 가능하게 할 수 있는 데, 이와 관련된 보다 구체적인 설명은 후술하도록 한다.
제2 분류부(212)는, 다수의 시스템(SYS1-SYSq)의 기능에 기초하여 시스템의 타입(Type)을 구분한 결과에 따라 지원그룹(SG1-SGm)으로 분류한다. 본 발명에서는 설명의 편의를 위해 각 지원그룹(SG1-SGm)에 속하는 시스템이 3개인 것으로 가정하여 설명하도록 하겠다.
여기서, 시스템(SYS1-SYSq)의 기능은, 시스템(SYS1-SYSq)의 성능정보로부터 획득할 수 있는 IPSec(IP Security Protocol) 지원 여부, 용량정보(예: 50만 수용가능, 100만 수용가능 등), 가상화시스템 및 레거시 시스템(legacy system) 등이 포함될 수 있으며, 이외에도 그룹화 기준으로 사용될 수 있는 다른 기능들도 포함될 수 있음은 물론이다.
예를 들어, 다수의 시스템(SYS1-SYSq)을 IPSec 지원 여부에 따라 분류하는 경우, 제2 분류부(212)는, 다수의 시스템(SYS1-SYSq)의 각 성능정보를 이용하여 IPSec 지원 가능여부를 판단하고, 판단결과에 따라 IPSec 지원이 가능한 시스템들을 지원그룹(SG1)으로 구분하고, IPSec 미 지원 시스템들을 지원그룹(SG2)으로 구분한다.
이후, 분류부(210)는, 단말그룹(TG1-TGn) 및 지원그룹(SG1-SGm)으로의 분류가 완료되었음을 산출부(220)로 알린다.
산출부(220)는, 지원그룹(SG1-SGm)에 속하는 각 시스템의 가중치를 이용하여 지원그룹(SG1-SGm) 별 그룹가중치를 산출하는 기능을 수행한다.
보다 구체적으로, 산출부(220)는, 각 지원그룹(SG1-SGm)에 속하는 각 시스템의 용량과 부하율에 기초하여 시스템 별 가중치(W; Weight)를 산출한다.
여기서, 가중치(W)는, 각 시스템의 용량 및 부하(예: CPU Load)에 따라 달라지게 되는 데, 이때 가중치(W) 산출을 위해 각 시스템에서는 부하정보(Load)를 포함하는 부하관련메시지를 소정의 시간 단위(예: 5초)로 로드밸런싱관리장치(200)로 전송하게 된다.
결국, 로드밸런싱관리장치(200)에서는, 각 시스템으로부터 주기적으로 전달되는 부하관련메시지를 기반으로 가중치(W)를 산출하되, 효율성 향상을 위해 설정된 소정의 시간(예: 5분) 동안의 부하정보(Load)의 평균값을 이용하여 가중치(W)를 산출한다.
즉, 부하관련메시지가 예를 들어, 5초에 1번씩 전송되게 되면, 최소 5초마다 1번씩 가중치(W)가 산출될 수 있으나, 가중치(W)를 매번 바꾸게 되는 것은 전체적인 시스템 성능을 저하시킬 수 있으므로, 설정된 5분 동안의 부하정보(Load)의 평균값을 산출하여 가중치(W)를 산출하게 된다.
이에, 이하에서 소정의 시간(예: 5분) 동안의 부하정보(Load)의 평균값을 기반으로 산출된 각 시스템의 부하율을 이용하여 시스템 별 가중치(W)를 산출하는 과정에 대하여 보다 구체적으로 설명하도록 하겠다.
먼저, 산출부(220)는, 지원그룹(SG1)에 속하는 각 시스템(SYS1-SYS3)의 성능정보로부터 용량과 부하율을 검출하고, 이를 수학식 1에 적용하여 시스템(SYS1-SYS3) 별 가중치(W)를 산출한다.
[수학식 1]
즉, 산출부(220)는, 시스템(SYS1)의 성능정보로부터 시스템(SYS1)에 대한 제1 용량(C1)과 제1 부하율(%)을 검출하고, 시스템(SYS2)의 성능정보로부터 시스템(SYS2)에 대한 제2 용량(C2)과 제2 부하율(%)을 검출하고, 시스템(SYS3)의 성능정보로부터 시스템(SYS3)에 대한 제3 용량(C3)과 제3 부하율(%)을 검출한다.
이후, 산출부(220)는, 시스템(SYS1)에 대한 제1 용량(C1)과 제1 부하율(%), 시스템(SYS2)에 대한 제2 용량(C2)과 제2 부하율(%), 시스템(SYS3)에 대한 제3 용량(C3)과 제3 부하율(%)을 수학식 1의 분모에 적용하여, 지원그룹(SG1)의 전체 용량부하정보를 산출한다.
이처럼 지원그룹(SG1)의 전체 용량부하정보가 산출되면, 산출부(220)는, 시스템(SYS1)에 대한 제1 용량(C1)과 제1 부하율(%)을 수학식 1의 분자에 적용하여 시스템(SYS1)의 가중치(W1)을 산출하게 된다.
이후, 산출부(220)는, 시스템(YS2)에 대한 제2 용량(C2)과 제2 부하율(%)을 수학식 1의 분자에 적용하여 시스템(SYS2)의 가중치(W2)을 산출하며, 시스템(SYS3)에 대한 제3 용량(C3)과 제3 부하율(%)을 수학식 1의 분자에 적용하여 시스템(SYS3)의 가중치(W3)을 산출하게 된다.
전술과 같이, 지원그룹(SG1)에 속하는 시스템(SYS1-SYS3) 별 가중치(W1, W2, W3)의 산출이 완료되면, 산출부(220)는, 동일한 가중치(Weight) 산출 방식을 적용하여 나머지 지원그룹(SG2-SGm)에 속하는 시스템 별 가중치를 산출하고, 이를 저장한다.
본 발명에서는 로드밸런싱관리장치(200)에서 지원그룹(SG1-SGm)에 속하는 시스템(SYS1-SYSq)의 가중치를 자동 산출하여 설정하는 것으로 언급하였으나, 본 발명은 이에 한정되지 않으며, 시스템 운용자가 직접 가중치를 설정할 수도 있다.
다음으로, 산출부(220)는, 각 지원그룹(SG1-SGm)에 속하는 시스템의 가중치를 더하여 지원그룹(SG1-SGm) 별 그룹가중치를 산출한다.
즉, 산출부(220)는, 지원그룹(SG1)에 속하는 시스템(SYS1)의 가중치(W1), 시스템(SYS2)의 가중치(W2), 시스템(SYS3)의 가중치(W3)를 모두 더하여 지원그룹(SG1)의 그룹가중치(GW1)를 산출한다. 이후 동일한 방식으로, 산출부(220)는, 나머지 지원그룹(SG2-SGm) 별 그룹가중치(GW2-GWm)를 산출하고, 이를 저장한다.
이후, 산출부(220)는, 지원그룹(SG1-SGm) 별 그룹가중치의 산출이 완료되었음을 관리부(230)로 알린다.
관리부(230)는, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 그룹 별 로드밸런싱(Load-Balancing)을 수행한다.
여기서, 그룹 별 로드밸런싱(Load-Balancing)은, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 단말로 할당할 제1 지원그룹을 결정하고, 제1 지원그룹과 관련하여 기 설정된 나머지 지원그룹의 순서에 기초하여 단말로 할당할 나머지 지원그룹을 결정함에 따라 지원그룹(SG1-SGm) 간의 가중치 분배를 통해 1차 분산을 수행하는 것과 더불어, 결정된 제1 지원그룹 및 나머지 지원그룹에 속하는 시스템 별 가중치 분배를 통해 2차 분산을 수행하는 2중 로드 밸런싱(Load-Balancing) 구조를 일컫는다.
보다 구체적으로, 관리부(230)는, 지원그룹(SG1-SGm) 별 그룹가중치 중 가장 큰 그룹가중치를 갖는 지원그룹을 제1 지원그룹으로 결정하고, 제1 지원그룹과 관련하여 기 설정된 나머지 지원그룹의 시스템 순서에 기초하여 나머지 지원그룹을 결정한다.
이와 관련하여, 도 3 및 도 4에서는 본 발명의 일 실시예에 따른 제1 지원그룹과 나머지 지원그룹을 결정하는 그룹 별 로드밸런싱(Load-Balancing)의 일례를 보여주고 있다. 도 3 및 도 4에서는 도 1에 도시한 단말그룹(TG1-TGn) 중 단말그룹(TG1)에 속하는 단말(101)로 정책(Policy)을 제공하는 것으로 가정하여 설명하도록 하겠다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 지원그룹(SG1-SGm) 중 지원그룹(SG1-SG3)이 단말그룹(TG1)에 제공할 정책(Policy)과 관련이 있는 경우, 관리부(230)는, 지원그룹(SG1-SG3) 별 그룹가중치(GW1-GW3)를 검출한다.
이때, 지원그룹(SG1)의 그룹가중치(GW1)가 "5"이고, 지원그룹(SG2)의 그룹가중치(GW2)가 "4"이고, 지원그룹(SG3)의 그룹가중치(GW3)가 "1"인 경우, 관리부(230)는, 그룹가중치 비율(GW1: GW2: GW3)인 5: 4: 1으로 1차 분산을 수행한다.
즉, 관리부(230)는, 지원그룹(SG1-SG3) 중 가장 큰 그룹가중치(GW1)인 "5"를 갖는 지원그룹(SG1)을 제1 지원그룹으로 결정한다.
이후, 관리부(230)는, 제1 지원그룹(SG1)에 속하는 각 시스템(SYS1-SYS3)의 가중치에 기초하여 단말(101)로 제1 시스템정보(예: IP주소)를 할당하게 된다.
이때, 시스템(SYS1)의 가중치(W1)가 "3"이고, 시스템(SYS2)의 가중치(W2)가 "1"이고, 시스템(SYS3)의 가중치(W3)가 "1"인 경우, 관리부(230)는, 시스템 별 가중치 비율(W1: W2: W3)인 3: 1: 1로 2차 분산을 수행한다.
즉, 관리부(230)는, 시스템(SYS1-SYS3)의 가중치 중 가장 큰 가중치(W1)인 "3"을 갖는 시스템(SYS1)의 시스템정보를 제1 시스템정보(예: IP주소)로 결정하고, 이를 단말(101)로 할당하게 된다.
본 발명에서는, 2차 분산 시 시스템(SYS1-SYS3)의 가중치 중 가장 큰 가중치(W1)를 갖는 시스템(SYS1)의 시스템정보를 제1 시스템정보(예: IP주소)로 결정하는 것으로 언급하였으나, 본 발명은 이에 한정되지 않으며, 시스템(SYS1- SYS3)의 가중치를 기준으로 랜덤(Random) 방식 및 가중치 라운드로빈 방식(Weighted Round-Robin) 등으로도 시스템정보(예: IP주소)를 제공할 수도 있다.
전술과 같이, 제1 지원그룹(SG1)의 제1 시스템정보(예: IP주소)가 단말(101)로 할당되면, 관리부(230)는, 예컨대, 아래 [표 1]과 같은 그룹테이블에 기초하여 나머지 지원그룹을 결정한다.
[표 1]
여기서, 그룹테이블은, 제1 지원그룹이 시스템 순서(1)로 결정됨에 따라 제1 지원그룹과 관련하여 기 설정된 나머지 지원그룹이 시스템 순서(2, 3)에 따라 자동적으로 결정되도록 하기 위해 운영자에 의해 미리 설정된 것으로서, 자율적으로 변경될 수 있다.
결국, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 제1 지원그룹이 결정되게 되면, 그룹테이블을 기반으로 제1 지원그룹과 관련된 나머지 지원그룹이 자동으로 결정(fix)되는 프로세스로 로드밸런싱(Load-Balancing)이 수행되게 된다.
보다 구체적으로, 관리부(230)는, 제1 시스템정보(예: IP주소)가 제1 지원그룹(SG1)에서 할당되었으므로, 그룹테이블에서 제1 지원그룹(SG1)과 관련하여 기 설정된 나머지 지원그룹이 표시된 관련영역(400)을 검출한다.
이때, 그룹테이블의 관련영역(400)에 제1 지원그룹(SG1)과 관련하여 지원그룹(SG2, SG3)이 기 결정되어 있는 경우, 관리부(230)는, 지원그룹(SG2, SG3)의 시스템 순서에 기초하여 다음번 지원그룹을 자동적으로 결정하게 된다.
즉, 지원그룹(SG2)의 시스템 순서(2)가 지원그룹(SG3)의 시스템 순서(3)보다 선행되는 순서로 관련영역(400)에 표시되어 있으므로, 관리부(230)는, 도 4에서와 같이 제1 지원그룹(SG1)의 선정에 따라 지원그룹(SG2)을 다음번 지원그룹으로 자동으로 결정하게 된다.
이후, 관리부(230)는, 제2 지원그룹(SG2)에 속하는 각 시스템(SYS4-SYS6)의 가중치에 기초하여 단말(101)로 제2 시스템정보(예: IP주소)를 할당하게 된다.
이때, 시스템(SYS4)의 가중치(W4)가 "2"이고, 시스템(SYS5)의 가중치(W5)가 "1"이고, 시스템(SYS6)의 가중치(W6)가 "1"인 경우, 관리부(230)는, 시스템 별 가중치 비율(W4: W5: W6)인 2: 1: 1로 2차 분산을 수행한다.
즉, 관리부(230)는, 시스템(SYS4-SYS6) 중 가장 큰 가중치(W4)인 "2"를 갖는 시스템(SYS4)의 시스템정보를 제2 시스템정보(예: IP주소)로 결정하고, 이를 단말(101)로 할당하게 된다.
전술과 같이, 제2 지원그룹(SG2)의 제2 시스템정보(예: IP주소)가 단말(101)로 할당되면, 관리부(230)는, 관련영역(400)에 시스템 순서(3)으로 표시되어 있는 지원그룹(SG3)을 다음번 지원그룹으로 자동으로 결정하게 된다.
이후, 관리부(230)는, 전술과 동일한 방식으로 지원그룹(SG3)에 속하는 각 시스템(SYS7-SYS9)의 가중치에 기초하여 시스템정보(예: IP주소)로 결정하고, 이를 단말(101)로 할당하게 된다.
이후, 관리부(230)는, 단말(101)로 할당되는 시스템정보(예: IP주소)를 모두 저장부(240)로 전달하여 저장한다.
이처럼 본 발명에서는, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 제1 지원그룹이 결정되면, 제1 지원그룹과 관련된 기 결정된 나머지 지원그룹의 시스템 순서를 그룹테이블로부터 검출하여 암호화된 패킷(Encapsulation PKT) 호에 대한 그룹 별 로드밸런싱(Load-Balancing)이 자동적으로 수행되도록 함에 따라 암호화된 패킷(Encapsulation PKT) 호에 대해 보다 효율적으로 IPSec 트래픽 분산을 수행할 수 있게 되는 것이다.
저장부(240)는, 로드밸런싱(Load-Balancing)을 수행하는 과정에서 생성 및 송수신되는 모든 정보(예: 할당 IP주소, 단말 별 성능정보, 시스템 별 성능정보 등)를 저장한다.
이에, 각 단말(101-10p)로 할당되는 모든 시스템정보(예: IP주소)에 기초하여 장애 발생 및 복구 시에도 정확하게 시스템 간의 트래픽 밸런싱(Traffic Balancing)이 수행할 수 있게 된다.
한편, 관리부(230)는, 특정 시스템의 장애 발생 및 복구 시 이를 처리하는 기능을 수행한다.
보다 구체적으로, 관리부(230)는, 다수의 시스템(SYS1-SYSq) 중 특정 시스템의 장애 발생 시, 특정 시스템을 제외한 나머지 시스템의 가중치에 기초하여 특정 시스템에 접속된 적어도 하나의 특정단말을 분배하며, 특정시스템의 장애 복구 시, 특정단말을 특정 시스템으로 모두 재할당한다.
이와 관련하여, 도 5에서는 본 발명의 일 실시예에 따른 장애 발생 및 복구 시 처리 과정의 일례를 보여주고 있다. 도 5에서는 설명의 편의를 위해 다수의 시스템(SYS1-SYSq) 중 4개의 시스템(SYS1-SYS4)을 이용하여 장애 발생 및 복구를 설명하도록 하겠다.
먼저, 도 5의 (D1)에 도시된 바와 같이, 특정 시스템의 장애가 발생하기 전에는 각 시스템(SYS1-SYS4)에 할당되어 접속되어 있는 단말의 개수가 모두 동일하게 "60"개이며, 시스템(SYS1-SYS4)의 가중치(W1, W2, W3, W4)가 모두 동일하게 "3"임을 확인할 수 있다.
이때, 시스템(SYS1-SYS4) 중 시스템(SYS2)에 장애가 발생하게 되면, 관리부(230)는, 도 5의 (D2)와 같이 시스템(SYS2)의 가중치(W2)를 "0"으로 설정하여 시스템(SYS2)의 시스템정보(예: IP주소)가 단말로 할당되지 않도록 한다.
즉, 관리부(230)는, 저장부(240)에 저장된 로드밸런싱(Load-Balancing)을 수행하는 과정에서 생성되는 모든 정보(예: 할당 IP주소, 단말 별 성능정보, 시스템 별 성능정보)를 기반으로 장애가 발생한 시스템(SYS2)에 접속되어 있는 특정단말의 가입자 정보를 검출하고, 푸쉬(Push) 등의 방식을 통해 특정단말로 서비스 제공이 가능한 다른 시스템(SYS1, SYS3, SYS4)을 검출하여 재 연결을 시도한다.
결국, 관리부(230)는, 특정단말로 서비스 제공이 가능한 다른 시스템(SYS1, SYS3, SYS4)의 가중치(W1, W3, W4)에 기초하여 시스템(SYS2)에 접속되어 있는 특정단말을 분배하게 된다.
이때, 나머지 시스템(SYS1, SYS3, SYS4)의 가중치(W1, W3, W4)가 모두 동일하게 "3"이므로, 관리부(230)는, 시스템(SYS2)에 접속되어 있는 특정단말 60개를 20개씩 나누어 시스템(SYS1), 시스템(SYS3), 시스템(SYS4)으로 분배한다.
이후, 관리부(230)는, 시스템(SYS2)의 장애 복구여부를 지속적으로 모니터링한다. 만일, 시스템(SYS2)의 장애가 복구가 확인되는 경우, 관리부(230)는, 도 5의 (D3)와 같이 시스템(SYS2)으로부터 나머지 시스템(SYS1, SYS3, SYS4)으로 20개씩 나누어 분배되었던 특정단말 60개가 다시 시스템(SYS2)으로 모두 재할당되도록 한다.
즉, 장애 발생 전 시스템(SYS2)에 접속되었던 특정단말 60개가 모두 장애가 복구된 시스템(SYS2)으로 재할당되게 된다.
이에, 도 5의 (D4)와 같이 4개의 시스템(SYS1-SYS4)에 접속되어 있는 단말의 개수가 모두 장애 발생 전과 같이 모두 동일하게 60개로 유지될 수 있게 된다.
이처럼 본 발명에서는, 장애 복구 시 재할당을 가중치 기반으로 수행하는 것이 아니라, 장애 발생 전 할당상태로 무조건 복구될 수 있도록 재할당하는 과정을 수행하고, 신규로 접속되는 단말에 대해서만 전술에서 언급한 그룹 별 로드밸런싱(Load-Balancing)을 수행함에 따라, 이미 할당된 시스템정보(예: IP주소)와 새롭게 할당된 시스템정보(예: IP주소)를 모두 관리할 수 있어 장애 복구 시에도 이전의 트래픽 밸런스(Traffic Balancing)을 유지할 수 있는 것이다.
이하에서는, 도 6을 참조하여 본 발명의 일 실시예에 따른 로드밸런싱관리장치(200)에서의 그룹 별 로드밸런싱(Load-Balancing)을 수행하는 동작 흐름을 설명하기로 한다. 이하에서는 설명의 편의를 위해 전술의 도 1 내지 도 5에서 언급한 참조번호를 언급하여 설명하도록 하겠다.
먼저, 분류부(210)는, 로드밸런싱(Load-Balancing)이 자동적으로 수행될 수 있도록 음성서비스지원시스템(300)을 그룹화하여 분류하는 기능을 수행한다(S100).
보다 구체적으로, 분류부(210)는, 다수의 시스템(SYS1-SYSq)의 기능에 기초하여 시스템의 타입(Type)을 구분한 결과에 따라 지원그룹(SG1-SGm)으로 분류한다. 본 발명에서는 설명의 편의를 위해 각 지원그룹(SG1-SGm)에 속하는 시스템이 3개인 것으로 가정하여 설명하도록 하겠다.
여기서, 시스템(SYS1-SYSq)의 기능은, 시스템(SYS1-SYSq)의 성능정보로부터 획득할 수 있는 IPSec(IP Security Protocol) 지원 여부, 용량정보(예: 50만 수용가능, 100만 수용가능 등) 및 가상화시스템 및 레거시 시스템(legacy system) 등을 포함할 수 있으며, 이외에도 그룹화 기준으로 사용될 수 있는 다른 기능들도 포함될 수 있음은 물론이다.
예를 들어, 다수의 시스템(SYS1-SYSq)을 IPSec 지원 여부에 따라 분류하는 경우, 분류부(210)는, 다수의 시스템(SYS1-SYSq)의 각 성능정보를 이용하여 IPSec 지원 가능여부를 판단하고, 판단결과에 따라 IPSec 지원 가능한 시스템들을 지원그룹(SG1)으로 구분하고, IPSec 미 지원 시스템들을 지원그룹(SG2)으로 구분한다.
이후, 분류부(210)는, 단말그룹(TG1-TGn) 및 지원그룹(SG1-SGm)으로의 분류가 완료되었음을 산출부(220)로 알린다.
산출부(220)는, 각 지원그룹(SG1-SGm)에 속하는 시스템의 가중치를 이용하여 지원그룹(SG1-SGm) 별 그룹가중치를 산출하는 기능을 수행한다(S110).
보다 구체적으로, 산출부(220)는, 각 지원그룹(SG1-SGm)에 속하는 각 시스템의 용량과 부하율에 기초하여 시스템 별 가중치(W; Weight)를 산출한다.
먼저, 산출부(220)는, 지원그룹(SG1)에 속하는 각 시스템(SYS1-SYS3)의 성능정보로부터 용량과 부하율을 검출하고, 이를 수학식 1에 적용하여 시스템(SYS1-SYS3) 별 가중치(W)를 산출한다.
[수학식 1]
즉, 산출부(220)는, 시스템(SYS1)의 성능정보로부터 시스템(SYS1)에 대한 제1 용량(C1)과 제1 부하율(%)을 검출하고, 시스템(SYS2)의 성능정보로부터 시스템(SYS2)에 대한 제2 용량(C2)과 제2 부하율(%)을 검출하고, 시스템(SYS3)의 성능정보로부터 시스템(SYS3)에 대한 제3 용량(C3)과 제3 부하율(%)을 검출한다.
이후, 산출부(220)는, 시스템(SYS1)에 대한 제1 용량(C1)과 제1 부하율(%), 시스템(SYS2)에 대한 제2 용량(C2)과 제2 부하율(%), 시스템(SYS3)에 대한 제3 용량(C3)과 제3 부하율(%)을 수학식 1의 분모에 적용하여, 지원그룹(SG1)의 전체 용량부하정보를 산출한다.
이처럼 지원그룹(SG1)의 전체 용량부하정보가 산출되면, 산출부(220)는, 시스템(SYS1)에 대한 제1 용량(C1)과 제1 부하율(%)을 수학식 1의 분자에 적용하여 시스템(SYS1)의 가중치(W1)을 산출하게 된다.
이후, 산출부(220)는, 시스템(SYS2)에 대한 제2 용량(C2)과 제2 부하율(%)을 수학식 1의 분자에 적용하여 시스템(SYS2)의 가중치(W2)을 산출하며, 시스템(SYS3)에 대한 제3 용량(C3)과 제3 부하율(%)을 수학식 1의 분자에 적용하여 시스템(SYS3)의 가중치(W3)을 산출하게 된다.
전술과 같이, 지원그룹(SG1)에 속하는 시스템(SYS1-SYS3) 별 가중치(W1, W2, W3)의 산출이 완료되면, 산출부(220)는, 동일한 가중치(Weight) 산출 방식을 적용하여 나머지 지원그룹(SG2-SGm)에 속하는 시스템 별 가중치를 산출하고, 이를 저장한다.
본 발명에서는 로드밸런싱관리장치(200)에서 지원그룹(SG1-SGm)에 속하는 시스템(SYS1-SYSq)의 가중치를 자동 산출하여 설정하는 것으로 언급하였으나, 본 발명은 이에 한정되지 않으며, 시스템 운용자가 직접 가중치를 설정할 수도 있다.
다음으로, 산출부(220)는, 각 지원그룹(SG1-SGm)에 속하는 시스템의 가중치를 더하여 지원그룹(SG1-SGm) 별 그룹가중치를 산출한다.
즉, 산출부(220)는, 지원그룹(SG1)에 속하는 시스템(SYS1)의 가중치(W1), 시스템(SYS2)의 가중치(W2), 시스템(SYS3)의 가중치(W3)를 모두 더하여 지원그룹(SG1)의 그룹가중치(GW1)를 산출한다. 이후 동일한 방식으로, 산출부(220)는, 나머지 지원그룹(SG2-SGm) 별 그룹가중치(GW2-GWm)를 산출하고, 이를 저장한다.
이후, 산출부(220)는, 지원그룹(SG1-SGm) 별 그룹가중치의 산출이 완료되었음을 관리부(230)로 알린다.
관리부(230)는, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 그룹 별 로드밸런싱(Load-Balancing)을 수행한다.
여기서, 그룹 별 로드밸런싱(Load-Balancing)은, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 단말로 할당할 제1 지원그룹을 결정하고, 제1 지원그룹과 관련하여 기 설정된 나머지 지원그룹의 순서에 기초하여 단말로 할당할 나머지 지원그룹을 결정함에 따라 지원그룹(SG1-SGm) 간의 가중치 분배를 통해 1차 분산을 수행하는 것과 더불어, 결정된 제1 지원그룹 및 나머지 지원그룹에 속하는 시스템 별 가중치 분배를 통해 2차 분산을 수행하는 2중 로드 밸런싱(Load-Balancing) 구조를 일컫는다.
보다 구체적으로, 관리부(230)는, 지원그룹(SG1-SGm) 별 그룹가중치 중 가장 큰 그룹가중치를 갖는 지원그룹을 제1 지원그룹으로 결정하고, 제1 지원그룹과 관련하여 기 설정된 나머지 지원그룹의 시스템 순서에 기초하여 나머지 지원그룹을 결정한다(S130-S160).
이와 관련하여, 도 3 및 도 4에서는 본 발명의 일 실시예에 따른 제1 지원그룹과 나머지 지원그룹을 결정하는 일례를 보여주고 있다. 도 3 및 도 4에서는 도 1에 도시한 단말그룹(TG1-TGn) 중 단말그룹(TG1)에 속하는 단말(101)로 정책(Policy)을 제공하는 것으로 가정하여 설명하도록 하겠다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 지원그룹(SG1-SGm) 중 지원그룹(SG1-SG3)이 단말그룹(TG1)에 제공할 정책(Policy)과 관련이 있는 경우, 관리부(230)는, 지원그룹(SG1-SG3) 별 그룹가중치(GW1-GW3)를 검출한다.
이때, 지원그룹(SG1)의 그룹가중치(GW1)가 "5"이고, 지원그룹(SG2)의 그룹가중치(GW2)가 "4"이고, 지원그룹(SG3)의 그룹가중치(GW3)가 "1"인 경우, 관리부(230)는, 그룹가중치 비율(GW1: GW2: GW3)인 5: 4: 1으로 1차 분산을 수행한다.
즉, 관리부(230)는, 지원그룹(SG1-SG3) 중 가장 큰 그룹가중치(GW1)인 "5"를 갖는 지원그룹(SG1)을 제1 지원그룹으로 결정한다.
이후, 관리부(230)는, 제1 지원그룹(SG1)에 속하는 각 시스템(SYS1-SYS3)의 가중치에 기초하여 단말(101)로 제1 시스템정보(예: IP주소)를 할당하게 된다.
이때, 시스템(SYS1)의 가중치(W1)가 "3"이고, 시스템(SYS2)의 가중치(W2)가 "1"이고, 시스템(SYS3)의 가중치(W3)가 "1"인 경우, 관리부(230)는, 시스템 별 가중치 비율(W1: W2: W3)인 3: 1: 1로 2차 분산을 수행한다.
즉, 관리부(230)는, 시스템(SYS1-SYS3) 중 가장 큰 가중치(W1)인 "3"을 갖는 시스템(SYS1)의 시스템정보를 제1 시스템정보(예: IP주소)로 결정하고, 이를 단말(101)로 할당하게 된다.
전술과 같이, 제1 지원그룹(SG1)의 제1 시스템정보(예: IP주소)가 단말(101)로 할당되면, 관리부(230)는, 예컨대, 아래 [표 1]과 같은 그룹테이블에 기초하여 나머지 지원그룹을 결정한다.
[표 1]
여기서, 그룹테이블은, 제1 지원그룹이 시스템 순서(1)로 결정됨에 따라 제1 지원그룹과 관련하여 기 설정된 나머지 지원그룹이 시스템 순서(2, 3)에 따라 자동적으로 결정되도록 하기 위해 운영자에 의해 미리 설정된 것으로서, 자율적으로 변경될 수 있다.
결국, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 제1 지원그룹이 결정되게 되면, 그룹테이블을 기반으로 제1 지원그룹과 관련된 나머지 지원그룹이 자동으로 결정(fix)되는 프로세스로 로드밸런싱(Load-Balancing)을 수행되게 된다.
보다 구체적으로, 관리부(230)는, 제1 시스템정보(예: IP주소)가 제1 지원그룹(SG1)에서 할당되었으므로, 그룹테이블에서 제1 지원그룹(SG1)과 관련하여 기 설정된 나머지 지원그룹이 표시된 관련영역(400)을 검출한다.
이때, 그룹테이블의 관련영역(400)에 제1 지원그룹(SG1)과 관련하여 지원그룹(SG2, SG3)이 기 결정되어 있는 경우, 관리부(230)는, 지원그룹(SG2, SG3)의 시스템 순서에 기초하여 다음번 지원그룹을 자동적으로 결정하게 된다.
즉, 지원그룹(SG2)의 시스템 순서(2)가 지원그룹(SG3)의 시스템 순서(3)보다 선행되는 순서로 관련영역(400)에 표시되어 있으므로, 관리부(230)는, 도 4에서와 같이 제1 지원그룹(SG1)의 선정에 따라 지원그룹(SG2)을 다음번 지원그룹으로 자동으로 결정하게 된다.
이후, 관리부(230)는, 제2 지원그룹(SG2)에 속하는 각 시스템(SYS4-SYS6)의 가중치에 기초하여 단말(101)로 제2 시스템정보(예: IP주소)를 할당하게 된다.
이때, 시스템(SYS4)의 가중치(W4)가 "2"이고, 시스템(SYS5)의 가중치(W5)가 "1"이고, 시스템(SYS6)의 가중치(W6)가 "1"인 경우, 관리부(230)는, 시스템 별 가중치 비율(W4: W5: W6)인 2: 1: 1로 2차 분산을 수행한다.
즉, 관리부(230)는, 시스템(SYS4-SYS6) 중 가장 큰 가중치(W4)인 "2"를 갖는 시스템(SYS4)의 시스템정보를 제2 시스템정보(예: IP주소)로 결정하고, 이를 단말(101)로 할당하게 된다.
전술과 같이, 제2 지원그룹(SG2)의 제2 시스템정보(예: IP주소)가 단말(101)로 할당되면, 관리부(230)는, 다음 시스템 순서가 존재하는 지의 여부를 판단한다(S170).
S170 단계의 판단결과, 다음 시스템 순서가 존재하는 경우, 관리부(230)는, 관련영역(400)에 시스템 순서(3)으로 표시되어 있는 지원그룹(SG3)을 다음번 지원그룹으로 자동으로 결정하게 된다.
이후, 관리부(230)는, S150 단계로 돌아가 전술과 동일한 방식으로 지원그룹(SG3)에 속하는 각 시스템(SYS7-SYS9)의 가중치에 기초하여 시스템정보(예: IP주소)로 결정하고, 이를 단말(101)로 할당하게 된다.
이처럼 본 발명에서는, 지원그룹(SG1-SGm) 별 그룹가중치에 기초하여 제1 지원그룹이 결정되면, 제1 지원그룹과 관련된 기 결정된 나머지 지원그룹의 시스템 순서를 그룹테이블로부터 검출하여 암호화된 패킷(Encapsulation PKT) 호에 대한 그룹 별 로드밸런싱(Load-Balancing)이 자동적으로 수행되도록 함에 따라 암호화된 패킷(Encapsulation PKT) 호에 대해 보다 효율적으로 IPSec 트래픽 분산을 수행할 수 있게 되는 것이다.
한편, S170 단계의 판단결과, 다음 시스템 순서가 존재하지 않는 경우, 관리부(230)는, 전술에 따라 수행된 그룹 별 로드밸런싱(Load-Balancing)을 수행하는 과정에서 각 단말로 할당된 시스템정보(예: IP주소)를 모두 저장부(240)로 전달하여 저장한다(S180).
이하에서는, 도 7을 참조하여 본 발명의 일 실시예에 따른 로드밸런싱관리장치(200)에서 장애 발생 및 복구 시 이를 처리하는 동작 흐름을 설명하기로 한다. 이하에서는 설명의 편의를 위해 전술의 도 1 내지 도 5에서 언급한 참조번호를 언급하여 설명하도록 하겠다.
도 7을 참고하면, 본 발명의 일 실시예에 따른 관리부(230)는, 특정 시스템의 장애 발생 및 복구 시 이를 처리하는 기능을 수행한다.
보다 구체적으로, 관리부(230)는, 다수의 시스템(SYS1-SYSq) 중 특정 시스템의 장애 발생 시, 특정 시스템을 제외한 나머지 시스템의 가중치에 기초하여 특정 시스템에 접속된 적어도 하나의 특정단말을 분배하며, 특정시스템의 장애 복구 시, 특정단말을 특정 시스템으로 모두 재할당한다.
이와 관련하여, 도 5에서는 본 발명의 일 실시예에 따른 장애 발생 및 복구 시 처리 과정의 일례를 보여주고 있다. 도 5에서는 설명의 편의를 위해 다수의 시스템(SYS1-SYSq) 중 4개의 시스템(SYS1-SYS4)을 이용하여 장애 발생 및 복구를 설명하도록 하겠다.
먼저, 관리부(230)는, 시스템(SYS1-SYS4)의 장애 발생 여부를 지속적으로 모니터링한다.
이때, 관리부(230)는, 도 5의 (D1)에 도시된 바와 같이, 특정 시스템의 장애가 발생하기 전에는 각 시스템(SYS1-SYS4)에 할당되어 접속되어 있는 단말의 개수가 모두 동일하게 "60"개이며, 시스템(SYS1-SYS4)의 가중치(W1, W2, W3, W4)가 모두 동일하게 "3"임을 확인한다.
이후, 관리부(230)는, 특정 시스템의 장애가 발생하기 전에 상기에서 확인한 시스템(SYS1-SYS4) 관련 정보를 저장부(240)에 저장한다.
만일, 시스템(SYS1-SYS4) 중 시스템(SYS2)에 장애가 발생한 것으로 확인되면(S210), 관리부(230)는, 도 5의 (D2)와 같이 시스템(SYS2)의 가중치(W2)를 "0"으로 설정하여 시스템(SYS2)의 시스템정보(예: IP주소)가 단말로 할당되지 않도록 한다(S220).
즉, 관리부(230)는, 저장부(240)에 저장된 로드밸런싱(Load-Balancing)을 수행하는 과정에서 생성 및 송수신되는 모든 정보(예: 할당 IP주소, 단말 별 성능정보, 시스템 별 성능정보 등)를 기반으로 장애가 발생한 시스템(SYS2)에 접속되어 있는 특정단말의 가입자 정보를 검출하고, 푸쉬(Push) 등의 방식을 통해 특정단말로 서비스 제공이 가능한 다른 시스템(SYS1, SYS3, SYS4)을 검출하여 재 연결을 시도한다.
결국, 관리부(230)는, 특정단말로 서비스 제공이 가능한 다른 시스템(SYS1, SYS3, SYS4)의 가중치(W1, W3, W4)에 기초하여 시스템(SYS2)에 접속되어 있는 특정단말을 분배하게 된다(S230).
이때, 나머지 시스템(SYS1, SYS3, SYS4)의 가중치(W1, W3, W4)가 모두 동일하게 "3"이므로, 관리부(230)는, 시스템(SYS2)에 접속되어 있는 특정단말 60개를 20개씩 나누어 시스템(SYS1), 시스템(SYS3), 시스템(SYS4)으로 분배한다.
이후, 이후, 관리부(230)는, 시스템(SYS2)의 장애 복구여부를 지속적으로 모니터링한다. 만일, 시스템(SYS2)의 장애가 복구가 확인되는 경우, 관리부(230)는, 도 5의 (D3)와 같이 시스템(SYS2)으로부터 나머지 시스템(SYS1, SYS3, SYS4)으로 20개씩 나누어 분배되었던 특정단말 60개가 다시 시스템(SYS2)으로 모두 재할당되도록 한다(S250).
즉, 장애 발생 전 시스템(SYS2)에 접속되었던 특정단말 60개가 모두 장애가 복구된 시스템(SYS2)으로 재할당되게 된다.
이에, 도 5의 (D4)와 같이 4개의 시스템(SYS1-SYS4)에 접속되어 있는 단말의 개수가 모두 장애 발생 전과 같이 모두 동일하게 60개로 원복되게 된다(S260).
이처럼 본 발명에서는, 장애 복구 시 재할당을 가중치 기반으로 수행하는 것이 아니라, 장애 발생 전 할당상태로 무조건 복구될 수 있도록 재할당하는 과정을 수행하고, 신규로 접속되는 단말에 대해서만 전술에서 언급한 그룹 별 로드밸런싱(Load-Balancing)을 수행함에 따라, 이미 할당된 시스템정보(예: IP주소)와 새롭게 할당된 시스템정보(예: IP주소)를 모두 관리할 수 있어 장애 복구 시에도 이전의 트래픽 밸런스(Traffic Balancing)을 유지할 수 있는 것이다.
이상에서 설명한 바와 같이, 본 발명의 일 실시예에 따른 로드밸런싱관리장치의 동작 흐름에 따르면, 음성서비스를 지원하는 각 시스템의 부하 및 용량정보를 기반으로 그룹 별 로드밸런싱(Load-Balancing)을 수행함으로써, 암호화된 패킷(Encapsulation PKT) 호에 대한 로드밸런싱(Load-Balancing)이 자동적으로 수행되도록 하며, 장애 발생 및 복구 시에도 정확하게 시스템 간의 트래픽 밸런싱(Traffic Balancing)이 이루어지도록 할 수 있어 보다 안정적인 서비스를 제공하는 효과가 성취된다.
한편, 여기에 제시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.