서버 health checking이란 Load Balancer가 각 서버들이 서비스를 제공할 수 있는지 여부를 결정하기 위해 테스트를 해보는 것이다
Layer-2 load balancing(link aggregation, port aggregation, channel/gigabit ether channel port bundling..)는 2개 이상의 link를 더 높은 대역폭을 갖도록 하나의 link를 합치는 것이다. 만약 각각의 aggregated link가 물리적인 다른 경로를 갖는다면는 redundancy와 fault tolerance를 제공할 수 있게된다.
Layer-4 load balancing은 TCP, UDP, SCTP와 같은 전송 프로토콜을 사용하는 전송 계층(Transport layer)에서 서버로 들어온 request를 분산한다. 일반적으로 네트워크 라우터는 들어온 패킷을 알맞은 IP주소로 보내주는 역할을 하지만 전송계층에 속하는 Layer-4 라우터는 실제 패킷을 수신하여 처리 해야하는 서버들 중 어떤 서버로 패킷을 보낼지 결정한다.
Layer-4 라우터는 받은 패킷을 하나 또는 그 이상의 서버들로 전달한다. 라우터와 각 서버들은 연결이 유지되고 있기 때문에 패킷을 각 서버들로 전달하기 전에 load balancer는 항상 패킷의 body 내용과 상관없이 한 서버를 고른다. 만약 한 서버가 다운되어 있다면 다른 서버로 패킷을 전달한다.
어플리케이션 레벨의 load balancing이라고 알려져있는 Layer-7 load balancing은 컨텐츠의 다양성을 제공하고 전체 클러스터의 성능을 향상시키기 위해 어플리케이션 계층에서 패킷을 파싱하고 요청된 패킷의 타입에 따라 각 서버로 분산한다. 어플리케이션 계층에서 패킷을 파싱하는데 소요되는 부하는 매우 크다. 그래서 Layer-4 load balancing과 비교하였을대 확장성이 제한된다.