TiDB Operator - 자동 장애 조치

자동 장애 조치 준비

자동 장애 조치(failover)란?

TiDB 클러스터 중에 노드가 어떤한 이유로 동작이 되지 않는 장애가 발생하면, TiDB가 자동으로 새 노드를 추가하고 클러스터의 가용성을 담보하는 것 같다.

자동 장애 조치 테스트

테스트에 2개의 TiDB 서버 프로세스에서 하나 Kill하고 자동 복구할지 확인해 보겠다.

먼저 tidb-server 프로세스 확인해 본다.

]$ ps -ef | grep tidb-server | grep -v grep
kimkc    14506 14429  0 11:53 pts/0    00:00:22 /home/kimkc/.tiup/components/tidb/v6.1.0/tidb-server -P 4000 --store=tikv --host=127.0.0.1 --status=10080 --path=127.0.0.1:2379,127.0.0.1:2382,127.0.0.1:2384 --log-file=/home/kimkc/.tiup/data/TLr4XQE/tidb-0/tidb.log
kimkc    14508 14429  0 11:53 pts/0    00:00:26 /home/kimkc/.tiup/components/tidb/v6.1.0/tidb-server -P 4001 --store=tikv --host=127.0.0.1 --status=10081 --path=127.0.0.1:2379,127.0.0.1:2382,127.0.0.1:2384 --log-file=/home/kimkc/.tiup/data/TLr4XQE/tidb-1/tidb.log

포트 번호 4001의 프로세스를 강제 종료를 시켜 보겠다.

$ kill -9 14508
[kimkc@localhost ~]$ ps -ef | grep tidb-server | grep -v grep
kimkc    14506 14429  0 11:53 pts/0    00:00:22 /home/kimkc/.tiup/components/tidb/v6.1.0/tidb-server -P 4000 --store=tikv --host=127.0.0.1 --status=10080 --path=127.0.0.1:2379,127.0.0.1:2382,127.0.0.1:2384 --log-file=/home/kimkc/.tiup/data/TLr4XQE/tidb-0/tidb.log
[kimkc@localhost ~]$

TiDB 서버 프로세스가 하나가 죽고, 하나만 남아 있는 것을 볼수 있다. 조금 기다려 보겠다.

한참을 기다려도 복구가 되지 않는다.

[kimkc@localhost ~]$ ps -ef | grep tidb-server | grep -v grep
kimkc    14506 14429  0 11:53 pts/0    00:00:27 /home/kimkc/.tiup/components/tidb/v6.1.0/tidb-server -P 4000 --store=tikv --host=127.0.0.1 --status=10080 --path=127.0.0.1:2379,127.0.0.1:2382,127.0.0.1:2384 --log-file=/home/kimkc/.tiup/data/TLr4XQE/tidb-0/tidb.log
[kimkc@localhost ~]$

단순히, 기본 기능으로는 복구 되지 않는다는 것을 알겠다.

TiDB Operator

자동 장애 조치에는 TiDB Operator라는 별도의 도구가 추가로 필요하다.

TiDB 클러스터를 Kubernetes 클러스터에서 관리하고 관련 작업을 자동화하는 도구인 것 같다. 이것이 있어 TiDB가 진정한 클라우드 네이티브가 될 수 있는 것 같다.




최종 수정 : 2022-11-01