TiDB 단일 컴퓨터에서 운영 환경 클러스터 배포 시뮬레이션

단일 컴퓨터에서 운영 환경 클러스터 배포

시나리오: 완벽한 토폴로지가 있는 최소 TiDB 클러스터를 경험하고 단일 Linux 서버에서 운영 환경 클러스터 배포 절차를 시뮬레이션한다. 이 섹션에서는 TiUP에서 최소 토폴로지 YAML 파일을 사용하여 TiDB 클러스터를 배포하는 방법에 대해 설명한다.

클러스터 배포 준비

다음 요구 사항을 충족하는 대상 컴퓨터를 준비한다.

  • CentOS 7.3 이상 버전이 설치됨
  • Linux OS는 인터넷에 액세스할 수 있다. 이는 TiDB 및 관련 소프트웨어 설치 패키지를 다운로드 하는데 필요하다.

최소 TiDB 클러스터 토폴로지는 다음과 같다.

실례 카운트 지재 Configuration/구성
TiKV 3 10.0.1.1
10.0.1.1
10.0.1.1
포트와 디렉터리 충돌 방지
TiDB 1 10.0.1.1 기본 포트
전역 디렉토리 구성
PD 1 10.0.1.1 기본 포트
전역 디렉토리 구성
티플래시 1 10.0.1.1 기본 포트
전역 디렉토리 구성
모니터 1 10.0.1.1 기본 포트
전역 디렉토리 구성

대상 컴퓨터의 기타 요구 사항:

  • root 사용자와 비밀번호 필요

  • 대상 시스템의 방화벽 서비스를 중지 하거나 TiDB 클러스터 노드에 필요한 포트 열기

  • 현재 TiUP 클러스터는 x86_64(AMD64) 및 ARM 아키텍처에서 TiDB 배포를 지원한다.

    • AMD64에서는 CentOS 7.3 이상 버전을 사용하는 것이 좋다.
    • ARM에서는 CentOS 7.6 1810을 사용하는 것이 좋다.

클러스터 배포 실행

  1. TiUP를 다운로드하여 설치한다.

    curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
    
  2. 전역 환경 변수를 선언한다.

    source ${your_shell_profile}
    
  3. TiUP의 클러스터 구성 요소를 설치한다.

    tiup cluster
    
  4. TiUP 클러스터가 이미 컴퓨터에 설치되어 있는 경우 소프트웨어 버전을 업데이트한다.

    tiup update --self && tiup update cluster
    
  5. sshd 서비스의 연결 제한을 늘리려면 root 사용자 권한을 사용한다. 이는 TiUP가 여러 컴퓨터에서 배포를 시뮬레이트해야 하기 때문이다.

    1. /etc/ssh/sshd_config를 변경하고 MaxSessions20로 설정합니다.
    2. sshd 서비스를 다시 시작합니다.
      service sshd restart
      
  6. 클러스터를 만들고 시작한다.

    다음 템플릿에 따라 구성 파일을 편집하고, topo.yaml라고 이름을 지정한다.

    # # Global variables are applied to all deployments and used as the default value of
    # # the deployments if a specific deployment value is missing.
    global:
    user: "tidb"
    ssh_port: 22
    deploy_dir: "/tidb-deploy"
    data_dir: "/tidb-data"
    
    # # Monitored variables are applied to all the machines.
    monitored:
    node_exporter_port: 9100
    blackbox_exporter_port: 9115
    
    server_configs:
    tidb:
    log.slow-threshold: 300
    tikv:
    readpool.storage.use-unified-pool: false
    readpool.coprocessor.use-unified-pool: true
    pd:
    replication.enable-placement-rules: true
    replication.location-labels: ["host"]
    tiflash:
    logger.level: "info"
    
    pd_servers:
    - host: 10.0.1.1
    
    tidb_servers:
    - host: 10.0.1.1
    
    tikv_servers:
    - host: 10.0.1.1
    port: 20160
    status_port: 20180
    config:
        server.labels: { host: "logic-host-1" }
    
    - host: 10.0.1.1
    port: 20161
    status_port: 20181
    config:
        server.labels: { host: "logic-host-2" }
    
    - host: 10.0.1.1
    port: 20162
    status_port: 20182
    config:
        server.labels: { host: "logic-host-3" }
    
    tiflash_servers:
    - host: 10.0.1.1
    
    monitoring_servers:
    - host: 10.0.1.1
    
    grafana_servers:
    - host: 10.0.1.1
    
    • user: "tidb": tidb 시스템 사용자(배포 시 자동으로 생성됨)를 사용하여 클러스터의 내부 관리를 수행한다. 기본적으로 포트 22를 사용하여 SSH를 통해 대상 컴퓨터에 로그인한다.
    • replication.enable-placement-rules: 이 PD 매개 변수는 TiFlash가 제대로 작동하도록 설정되어 있다.
    • host: 대상 컴퓨터의 IP.
  7. 클러스터 배포 명령을 실행한다.

    tiup cluster deploy <cluster-name> <tidb-version> ./topo.yaml --user root -p
    
    • <cluster-name>: 클러스터 이름을 설정한다.

    • <tidb-version>: TiDB 클러스터 버전을 설정한다. tiup list tidb 명령을 실행하면, 지원되는 TiDB의 모든 버전을 확인할 수 있다.

    • -p: 대상 컴퓨터에 연결하는데 사용할 비밀번호를 지정한다.

    “y"와 root 사용자의 비밀번호를 입력하여 배포를 완료한다.

    Do you want to continue? [y/N]:  y
    Input SSH password:
    
  8. 클러스터를 시작합니다.

    tiup cluster start <cluster-name>
    
  9. 클러스터에 액세스합니다.

    • MySQL 클라이언트를 설치한다. 이미 설치되어 있는 경우 이 단계를 건너 뛰어라.

      yum -y install mysql
      
    • TiDB에 액세스합니다. 비밀번호가 비어 있다.

      mysql -h 10.0.1.1 -P 4000 -u root
      
    • http://{grafana-ip}:3000 에서 Grafana 모니터링 대시보드에 액세스한다. 기본 사용자명과 비밀번호는 모두 admin이다.

    • TiDB 대시보드 http://{pd-ip}:2379/dashboard 에 액세스한다. 기본 사용자명은 root이고, 비밀번호는 비어 있다.

    • 현재 배포된 클러스터 목록을 보려면:

      tiup cluster list
      
    • 클러스터의 토폴로지 및 상태를 보려면:

      tiup cluster display <cluster-name>
      

참조