https://www.mantech.co.kr/products/repli-x/
Repli-X – 맨텍솔루션
www.mantech.co.kr
들어가며
이 글은 맨텍솔루션의 서버 파일 이중화 솔루션(Repli-X와 유사한 구조)을 학습하며 에이전트, 컨트롤 서버, 웹 관제 방식이 어떻게 동작하는지 하나의 파일 복제 흐름을 기준으로 정리한 글이다.
전제 환경은 다음과 같다.
- 원본 서버 A (서울, Ubuntu)
- 이중화 서버 B (부산, Ubuntu)
- 컨트롤 서버 C (클라우드 또는 고객 내부망의 별도 서버)
- A와 B에는 파일 복제용 에이전트가 설치된다
시작하기
1. 에이전트와 데몬 프로세스란?
에이전트는 서버에 설치되는 상주 프로그램이다.
리눅스에서는 보통 데몬 프로세스 형태로 실행된다.
데몬 프로세스의 특징:
- 백그라운드에서 항상 실행됨
- 터미널 세션과 무관
- 서버 부팅 시 자동 실행 가능
- 장애 발생 시 재시작 가능
에이전트의 역할:
- 파일 변경 감지
- 컨트롤 서버와의 통신
- 컨트롤 서버 명령 수행 (복제, 중지 등)
2. 전체 구성 요소 정리
A : 원본 서버에 설치된 에이전트
B : 이중화 서버에 설치된 에이전트
C : 컨트롤 서버 (웹 UI + 정책 판단 + 명령 전달)
A와 B는 실제 파일이 존재하는 서버이고,
C는 직접 파일을 복제하지 않고 제어만 담당한다.
3. 파일 복제 전체 흐름 (단일 파일 기준)
1) 에이전트 설치 및 실행
- A와 B 서버에 에이전트를 설치
- 부팅 시 자동 실행 설정
- 실행 후 컨트롤 서버 C와 연결 수립
2) 파일 변경 감지
- A 서버의 에이전트가 감시 대상 디렉토리를 감시
- 주기적 폴링이 아니라 이벤트 기반(inotify 등)으로 감지
- 예: /data/report.txt 파일 수정 발생
3) 컨트롤 서버로 상태 보고
- A 에이전트는 변경 이벤트 요약 정보를 컨트롤 서버로 전송
- 파일 전체를 보내는 것이 아니라 메타 정보 위주
(파일명, 변경 시각, 크기, 체크섬 등)
4) 컨트롤 서버의 판단
- 컨트롤 서버는 다음 정보를 종합
- 웹 UI에서 설정된 복제 정책 (복제 ON/OFF)
- A/B 에이전트의 연결 상태
- 네트워크 상태
- 복제 가능하다고 판단되면 명령 생성
5) 복제 명령 전달
- 컨트롤 서버 → A 에이전트 또는 B 에이전트로 명령 전달
- 예:
"A 서버의 report.txt를 B 서버로 전송하라"
6) 실제 파일 전송
- 에이전트가 직접 파일 전송 수행
- 내부적으로 rsync, 자체 프로토콜, 압축 전송 등을 사용
- 컨트롤 서버는 파일 전송 경로에 개입하지 않음
7) 결과 보고 및 로그 저장
- 복제 성공/실패 결과를 컨트롤 서버로 보고
- 컨트롤 서버는 DB에 로그 저장
- 웹 UI에서 실시간 또는 이력 조회 가능
4. 웹 UI의 역할
웹 UI의 역할:
- 복제 정책 설정 (시작, 중지, 대상 지정)
- 서버 상태 모니터링
- 복제 이력 조회
- 장애 알림 확인
웹 UI에서 설정 변경
→ 컨트롤 서버 내부 상태 변경
→ 에이전트가 해당 상태를 기준으로 동작
웹 UI가 파일을 직접 복제하지 않는다.
5. 컨트롤 서버는 DB와 뭐가 다른가?
DB:
- 상태를 저장하는 수단
컨트롤 서버:
- 상태를 해석하고 판단하는 주체
- 명령 생성
- 에이전트 통신 관리
- 장애 상황 제어
에이전트는 단순히 DB를 직접 조회하지 않는다.
항상 컨트롤 서버와 통신하며 지시를 받는다.
6. 구조 요약
- 에이전트는 항상 실행 중이며 명령을 기다린다
- 컨트롤 서버는 중앙에서 판단하고 지시한다
- 웹 UI는 컨트롤 서버를 조작하는 인터페이스다
- 파일 데이터는 서버 간 직접 이동한다
- 컨트롤 서버는 관제와 제어에 집중한다