Abstract
With the increase of interests in cluster, there have been a number of research efforts to address the high availability issues on cluster. However, there are no kernel-level group communication systems to support the development of kernel-level application programs and it is not easy to use traditional user-level group communication systems for the kernel-level applications. This paper presents the design and implementation issues of KCGCS(Kernel-level Cluster Group Communication System), which is a kernel-level group communication module for linux cluster. Unlike traditional user-level group communication systems, the KCGCS uses light-weight heartbeat messages and a ring-based heartbeat mechanism, which allows users to implement scalable failure detection mechanisms. Moreover, the KCGCS improves the reliability by using distributed coordinators to maintain membership information.
클러스터에 대한 관심이 증가함에 따라 클러스터의 고가용성(high availability)을 보장하기 위한 그룹 통신 시스템의 연구가 활발하다. 하지만 클러스터를 이용한 커널 수준 응용 프로그램 개발에 활용할 수 있는 커널 수준의 그룹 통신 시스템은 전무하며, 기존에 개발되어 있는 사용자 수준 그룹 통신시스템을 그대로 커널 수준에서 사용하는 것은 무리가 있다. 본 논문에서는 클러스터의 고 가용성 보장을 위하여 리눅스 커널 상에서 구현된 그룹 통신 시스템인 KCGCS(Kernel-level Cluster Group Communication System)를 설계하고 구현하였다. KCGCS는 기존 사용자 수준의 시스템들과는 달리 경량(light weight)의 핫빗(heartbeat) 메시지와 링(ring) 구조의 핫빗 메커니즘을 사용하여 확장성 있는 장애 상황 발견 메커니즘을 구현하였다. 또한 멤버쉽 관리 측면에서 KCGCS는 중앙 집중된 기존의 방법과는 달리 분산된 코디네이터를 사용하여 신뢰성을 향상시켰다.