본문 바로가기

이슈

BPS, PPS, Active - StandBy

반응형

BPS

초당 처리된 트래픽의 Byte or bit

 

PPS

packet per second 초당 처리된 패킷 수

 

Active - Active

서버 두 대를 모두 운영하는 방식을 active - active라고 부릅니다. 서버 두 대가 모두 활성화(active) 상태라는 개념이기 때문에 이해가 어렵진 않습니다. 두 서버 모두 일을 하다가 한쪽 서버에 문제가 발생하면 나머지 한쪽이 모든 트래픽을 처리합니다. 장애가 발생해도 시스템을 사용할 수 없는 시간인 다운타임(downtime)이 없습니다.

 

두 서버는 트래픽을 어떤 기준으로 나눠서 처리할까요? 이 질문에 대한 답을 로드밸런싱(load balancing)이라고 하며, L4 스위치 같은 하드웨어 장비가 로드밸런서 역할을 합니다. L4 스위치는 클라이언트로부터 받은 트래픽을 정해진 기준에 따라 서버 두 대가 나눠서 처리할 수 있도록 보내줍니다. 예를 들어, 기계적으로 양쪽 서버에 번갈아가면서 한 번씩 주는 방법, 커넥션이 작은 곳에 주는 방법, 두 개를 동시에 주고 응답이 빠른 곳을 선택하는 방법, 사용자 IP를 기준으로 접속시키는 방법 등이 있습니다. 참고로 L4 스위치는 OSI 7 계층 중 4번째 계층인 전송 계층(transport layer)에서 작동하는 장비이기 때문에 붙은 이름입니다.

 

Active - Standby

서버 두 대 중 하나만 운영 서버로 활용하고, 나머지 한 대는 장애 발생 시 운영 서버를 대체해서 작동하는 방식을 active - standby 방식이라고 부릅니다. 엑티브 서버에 장애가 발생하면 수동 또는 자동으로 스탠바이 서버를 작동시켜 대응합니다. 다만 스탠바이 서버가 액티브 서버를 문제없이 대체하기 위해선 평소 액티브 서버의 데이터를 스탠바이 서버의 데이터와 동기화하는 작업이 필요할 수 있습니다.

 

장애가 날 수 있는 요인.

Active - Standby 를 사용하는 DB Server 상황에서

 

250 M (BPS or PPS) 로 (DER 대비 이중화를 위한 레플리케이션 실행)이 된다고 한다면 장애가 발생할 수 있다.

 

L4 장비 하나에 방화벽을 체크하고 DB 요청을 라우팅하게되는데 같은 250 bps, 250pps 상황에서 타임아웃이 발생함.

 

250bps 의 경우 하나의 요청에 큰 데이터처리는 딱히 문제가없는데 250  M pps 상황에서 앞선 세션을 처리하지못하고 뒤에 세션이 유실되는 케이스가 발생. 당연히 하나의 L4에 물려있는 다른 DB의 커넥션 or 요청에도 모든 문제가 발생함.

 

단순히 문제있는 DB를 발견했었을 때 이 DB는 실제 서비스와 직접적인 연관이 없는데라는 생각때문에 오히려 장애를 빨리 발견못했음.

 

실질적으로는 관계없지만 L4장비에서 하나로 분배해주는 쪽에서 이러한 장애가 발생.

 

리플리케이션 작업을 수행한 부서에서도 DB쪽에서 트래픽관련 문제없다는 통보를 받았지만 방화벽에서 처리하는 부분에서 오버헤딩이 발생.

반응형