1. 程式人生 > 實用技巧 >使用 TiUP 部署 TiDB 叢集

使用 TiUP 部署 TiDB 叢集

線上安裝

第一步:驗證環境

​ 驗證埠是否被佔用

第二步:在中控機上安裝tiup元件

1、執行如下命令安裝 TiUP 工具:

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

2、按如下步驟設定 TiUP 環境變數:

重新宣告全域性環境變數:

source .bash_profile

確認tiup是否安裝成功

which tiup

3、安裝Tiup cluster元件

tiup cluster

4、如果已經安裝,則更新 TiUP cluster 元件至最新版本:

tiup update --self && tiup update cluster

輸出"Update successfully!”代表更新成功

5、驗證當前 TiUP cluster 版本資訊。執行如下命令檢視 TiUP cluster 元件版本:

tiup --binary cluster

第三步:編輯初始化配置檔案

根據不同的叢集拓撲,編輯配置檔案模板

global:
 user: "tidb"
 ssh_port: 22
 deploy_dir: "/tidb-deploy"
 data_dir: "/tidb-data"

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

pd_servers:
 - host: 10.0.0.176
   client_port: 2389
   peer_port: 2390

tidb_servers:
 - host: 10.0.0.176

tikv_servers:
 - host: 10.0.0.177
   port: 20160
   status_port: 20180

 - host: 10.0.0.177
   port: 20161
   status_port: 20181

 - host: 10.0.0.177
   port: 20162
   status_port: 20182

monitoring_servers:
 - host: 10.0.0.178
 - port: 9092

grafana_servers:
 - host: 10.0.0.178

配置檔案命名為topology.yaml

第四步:執行部署命令

tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]

引數說明:

  • 通過 TiUP cluster 部署的叢集名稱為 tidb-test
  • 部署版本為 v4.0.0,最新版本可以通過執行 tiup list tidb 來檢視 TiUP 支援的版本
  • 初始化配置檔案為 topology.yaml
  • --user root:通過 root 使用者登入到目標主機完成叢集部署,該使用者需要有 ssh 到目標機器的許可權,並且在目標機器有 sudo 許可權。也可以用其他有 ssh 和 sudo 許可權的使用者完成部署。
  • [-i] 及 [-p]:非必選項,如果已經配置免密登陸目標機,則不需填寫。否則選擇其一即可,[-i] 為可登入到目標機的 root 使用者(或 --user 指定的其他使用者)的私鑰,也可使用 [-p] 互動式輸入該使用者的密碼

可以採用

tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root -p

後續輸入手動資料密碼

預期日誌結尾輸出會有 Deployed clustertidb-testsuccessfully 關鍵詞,表示部署成功。

第 5 步:檢視 TiUP 管理的叢集情況

tiup cluster list

第 6 步:檢查部署的 TiDB 叢集情況

tiup cluster display tidb-test

預期輸出包括 tidb-test 叢集中例項 ID、角色、主機、監聽埠和狀態(由於還未啟動,所以狀態為 Down/inactive)、目錄資訊。

第 7 步:啟動叢集

tiup cluster start tidb-test

預期結果輸出 Started cluster tidb-test successfully標誌啟動成功。

第 8 步:驗證叢集執行狀態

tiup cluster display tidb-test

預期結果輸出,注意 Status 狀態資訊為 Up 說明叢集狀態正常

  • 執行如下命令登入資料庫:
mysql -u root -h 10.0.1.4 -P 4000

離線安裝

1. 準備 TiUP 離線元件包

2. 部署離線環境 TiUP 元件

將離線包傳送到目標叢集的中控機後,執行以下命令安裝 TiUP 元件:

tar xzvf tidb-community-server-v4.0.0-linux-amd64.tar.gz &&
sh tidb-community-server-v4.0.0-linux-amd64/local_install.sh
source /home/tidb/.bash_profile

3. TiKV 資料盤掛載

注意:

推薦 TiKV 部署目標機器的資料目錄使用 EXT4 檔案系統格式。相比於 XFS 檔案系統格式,EXT4 檔案系統格式在 TiDB 叢集部署案例較多,生產環境優先選擇使用 EXT4 檔案系統格式。

使用 root 使用者登入目標機器,將部署目標機器資料盤格式化成 ext4 檔案系統,掛載時新增 nodelallocnoatime 掛載引數。nodelalloc 是必選引數,否則 TiUP 安裝時檢測無法通過;noatime 是可選建議引數。

注意:

如果你的資料盤已經格式化成 ext4 並掛載了磁碟,可先執行 umount /dev/nvme0n1p1 命令解除安裝,從編輯 /etc/fstab 檔案步驟開始執行,添加掛載引數重新掛載即可。

/dev/nvme0n1 資料盤為例,具體操作步驟如下:

  1. 檢視資料盤。

    fdisk -l
    
    Disk /dev/nvme0n1: 107.4 GB
    
  2. 建立分割槽表。

    parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1
    

    注意:

    使用 lsblk 命令檢視分割槽的裝置號:對於 nvme 磁碟,生成的分割槽裝置號一般為 nvme0n1p1;對於普通磁碟(例如 /dev/sdb),生成的的分割槽裝置號一般為 sdb1

  3. 格式化檔案系統。

    mkfs.ext4 /dev/sdb
    
  4. 檢視資料盤分割槽 UUID。

    lsblk -f
    
  5. 編輯 /etc/fstab 檔案,新增 nodelalloc 掛載引數。

    vi /etc/fstab
    
    UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
    
  6. 掛載資料盤。

    mkdir /data1 && \
    mount -a
    
  7. 執行以下命令,如果檔案系統為 ext4,並且掛載引數中包含 nodelalloc,則表示已生效。

    mount -t ext4
    
    /dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
    

4. 配置初始化引數檔案 topology.yaml

cat topology.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"

server_configs:
  pd:
    replication.enable-placement-rules: true

pd_servers:
  - host: 10.0.1.4
  - host: 10.0.1.5
  - host: 10.0.1.6
tidb_servers:
  - host: 10.0.1.7
  - host: 10.0.1.8
  - host: 10.0.1.9
tikv_servers:
  - host: 10.0.1.1
  - host: 10.0.1.2
  - host: 10.0.1.3
monitoring_servers:
  - host: 10.0.1.4
grafana_servers:
  - host: 10.0.1.4
alertmanager_servers:
  - host: 10.0.1.4

5. 部署 TiDB 叢集

/path/to/mirror 是執行 local_install.sh 命令時輸出的離線映象包的位置:

export TIUP_MIRRORS=/path/to/mirror &&
tiup cluster deploy tidb-test v4.0.0 topology.yaml --user tidb [-p] [-i /home/root/.ssh/gcp_rsa] &&
tiup cluster start tidb-test

引數說明:

  • 通過 TiUP cluster 部署的叢集名稱為 tidb-test

  • 部署版本為 v4.0.0,其他版本可以執行 tiup list tidb 獲取

  • 初始化配置檔案為 topology.yaml

  • --user tidb:通過 tidb 使用者登入到目標主機完成叢集部署,該使用者需要有 ssh 到目標機器的許可權,並且在目標機器有 sudo 許可權。也可以用其他有 ssh 和 sudo 許可權的使用者完成部署。

  • [-i] 及 [-p]:非必選項,如果已經配置免密登陸目標機,則不需填寫。否則選擇其一即可,[-i] 為可登入到部署機 root 使用者(或 --user 指定的其他使用者)的私鑰,也可使用 [-p] 互動式輸入該使用者的密碼

預期日誌結尾輸出會有 Deployed clustertidb-testsuccessfully 關鍵詞,表示部署成功。