본문 바로가기
기술, 개발/Vitess

vtctld, vtgate, vttablet, vtorc

by Jaejin Sim 2025. 8. 28.
반응형

1️⃣ vtctld (Vitess Control Daemon)

✅ "Vitess 클러스터를 제어하는 중앙 관리자"

🔹 역할

  • 클러스터 전반을 관리하는 제어 인터페이스
  • vtctlclient 명령어를 통해 Vitess 클러스터 관리
  • vtctld가 실행되어야 vtctlclient를 사용할 수 있음
  • 웹 UI를 제공하여 클러스터의 상태를 모니터링 가능

🔹 주요 기능

  • 토폴로지 관리: 새로운 Cell 추가, Keyspace 및 Shard 생성
  • 테이블 분할 (Resharding): 데이터 샤딩을 조정
  • 테이블 관리: 테이블 백업, 복구
  • 데이터베이스 변경: 스키마 변경 관리

🔹 실행 예시

vtctld --topo_implementation=etcd2 \\
       --topo_global_server_address=localhost:2379 \\
       --topo_global_root=/vitess/global \\
       --log_dir=/tmp \\
       --port=15000 &


2️⃣ vtgate

✅ "Vitess SQL 프록시 - 쿼리를 적절한 샤드로 라우팅"

🔹 역할

  • 클라이언트(MySQL Client, Application)의 요청을 받아 적절한 vttablet에 전달
  • 샤딩(sharding)된 데이터베이스를 하나의 단일 MySQL 인스턴스처럼 보이게 함
  • MySQL 프로토콜을 지원하므로, 일반적인 MySQL 클라이언트와 호환됨

🔹 주요 기능

  • 쿼리 라우팅: 적절한 샤드 및 vttablet으로 SQL 요청 전달
  • 로드 밸런싱: 여러 vttablet 간 부하 분산
  • 자동 Failover 지원: Primary-Replica 전환 시 클라이언트 요청을 자동 조정

🔹 실행 예시

vtgate --topo_implementation=etcd2 \\
       --topo_global_server_address=localhost:2379 \\
       --topo_global_root=/vitess/global \\
       --log_dir=/tmp \\
       --port=15099 \\
       --mysql_server_port=15306 &

🔹 MySQL 클라이언트에서 vtgate에 접속할 수 있음

mysql -h 127.0.0.1 -P 15306 -u root


3️⃣ vttablet

✅ "Vitess에서 MySQL을 제어하는 Agent"

🔹 역할

  • Vitess와 MySQL 간의 인터페이스 역할
  • vtgate가 요청을 보낼 때, 데이터를 실제로 처리하는 실행 주체
  • Primary/Replica MySQL 인스턴스를 관리
  • MySQL의 복제(replication) 관리

🔹 주요 기능

  • 쿼리 실행: vtgate에서 전달받은 쿼리를 MySQL에서 실행
  • 복제 관리: Primary/Replica 역할을 자동으로 조정
  • Health Check: MySQL 상태 모니터링

🔹 실행 예시

vttablet --topo_implementation=etcd2 \\
         --topo_global_server_address=localhost:2379 \\
         --topo_global_root=/vitess/global \\
         --log_dir=/tmp \\
         --tablet-path=cell-0000000100 \\
         --port=15001 \\
         --grpc_port=16001 \\
         --service_map=grpc-vttablet &

🔹 tablet-path는 각 인스턴스를 식별하는 값 (환경에 따라 변경 필요)


4️⃣ vtorc (Vitess Orchestrator)

✅ "MySQL 복제(Replication) 모니터링 및 장애 복구"

🔹 역할

  • MySQL의 Primary/Replica 구조를 지속적으로 감시
  • Primary 장애 발생 시, 자동으로 새로운 Primary 선출
  • MySQL 복제 설정을 자동으로 조정

🔹 주요 기능

  • 자동 장애 감지 및 복구
  • Primary-Failover 관리
  • 복제 상태 모니터링 및 로깅

🔹 실행 예시

vtorc --topo_implementation=etcd2 \\
      --topo_global_server_address=localhost:2379 \\
      --topo_global_root=/vitess/global \\
      --log_dir=/tmp \\
      --port=15080 &


📌 정리: Vitess 핵심 서비스 비교

서비스 역할 주요 기능

vtctld Vitess 관리 UI 클러스터 토폴로지 관리, 키스페이스 관리
vtgate SQL 요청 라우팅 샤딩 관리, 로드 밸런싱, MySQL 클라이언트 호환
vttablet MySQL 인터페이스 SQL 실행, 복제 관리, MySQL 상태 체크
vtorc 복제 및 장애 복구 Primary-Failover, 자동 장애 복구

🚀 결론

  • vtctld → 관리자용 도구 (클러스터 제어)
  • vtgate → SQL 프록시 (쿼리 분산 및 샤딩 관리)
  • vttablet → MySQL 제어 (쿼리 실행 및 복제 관리)
  • vtorc → MySQL 장애 감지 및 복구

이 네 가지 서비스는 Vitess 클러스터가 정상적으로 동작하는 데 핵심적인 요소입니다.

Vitess를 운영할 때, 서버를 재부팅하면 이 4가지 서비스를 반드시 다시 실행해야 합니다. 🚀

반응형

'기술, 개발 > Vitess' 카테고리의 다른 글

Vitess 수평샤딩 2 (리샤딩)  (2) 2025.08.28
Vitess 수평 샤딩 1 (시퀀스)  (0) 2025.08.28
Vitess MoveTables (수직샤딩)  (1) 2025.08.28
Vitess 기본 개념  (0) 2025.08.28
로키리눅스 vitess 설치  (0) 2025.08.28