Abstract
These days, various clustering technologies have been adopted to construct web sites. High performance hardware switches have good performance, but have disadvantage of high cost for constructing small and middle-sized web sites. Now a days, many sites have been constructed with the LVS (Linux Virtual Server), which is free of charge and has good performance. Having a centralized load balancing with one front-end, the LVS causes a bottleneck when it receives all at once. In the paper, we suggest a way to remove the LVS bottleneck by providing multiple front-ends. In this architecture, all of cluster nodes act as both a front-end and a back-end. When the load of a node receiving requests is not large enough, the node responds to the client directly. When the load of a node is large enough, the node send the request to a node which is selected by a scheduling algorithm. The scheduling algorithm is discussed to balance loads between servers. While single front-end cluster raises the throughput curvedly, the multiple front-end cluster raises the throughput linearly.
인터넷이 새로운 산업의 형태로 발전하면서 웹사이트에 클러스터링 기술을 많이 적용하고 있다. 고성능 하드웨어 스위치를 사용하면 성능이 우수하지만 중소형 사이트를 구성하는 데에는 비용 부담이 많이 된다. 최근에는 무료이면서 성능이 뛰어난 리눅스 가상 서버(Linux Virtual Server)를 이용한 클러스터를 많이 구축하고 있다. 그러나 리눅스 가상 서버는 하나의 전면서버를 가지는 중앙집중식 부하분배 구조이므로 사용자 요청의 급격한 증가로 병목현상을 일으킬 수 있다. 따라서 본 논문에서는 다수의 전면서버를 두어 리눅스 가상 서버의 병목현상을 없애는 방법을 제안한다. 모든 클러스터 노드들은 전면서버와 후면서버의 역할을 모두 할 수 있도록 구성한다. 서버의 부하가 많지 않으면 자기 노드에서 직접 처리하여 사용자에게 응답할 수 있도록 하고, 부하가 많은 경우 부하가 가장 작은 노드를 선택하여 사용자 요청을 전달한다 그리고 클러스터 서버들의 부하를 고려한 스케줄링 알고리즘을 제안하여 서버들 사이의 부하를 고르게 한다. 실험결과 기존 웹 서버 클러스터들은 서버의 수가 증가하면서 성능향상 폭이 감소하지만, 본 논문에서 제안한 웹 서버 클러스터는 선형적으로 증가하는 것을 보였다. 리눅스 가상 서버 환경에서 다수의 전면서버를 구성함으로써 병목현상을 없애고, 비용 부담이 없고 고성능의 중소형 사이트를 구축할 수 있다.