TiDBのX86とARM混合プラットフォームでのオフライン展開とアップグレード

背景 TiDB 5.0のアシンクロナストランザクション機能をX86とARMの混合デプロイメントアーキテクチャで体験する記事が以前に公開されました。その後、オフラインモードでのTiDBクラスタのアップグレード方法について質問がありましたので、この記事ではその手順をまとめます。

デプロイの本質 TiDB 4.0から導入されたTiUPは、複雑なTiDBクラスタの設定を簡単にしてくれるツールです。TiUPを使うことで、TiDBエコシステム内の多くのコンポーネントも管理できます。

よく使われる2つのコマンドがあります。tiup cluster deploytiup cluster startです。tiup cluster deployは、ノード間のSSH信頼関係を確立し、必要なTiDBコンポーネントのリソースパッケージをダウンロードし、各ノードの環境を初期化します。次に、tiup cluster startにより、各ノードでコンポーネントのバイナリファイルが実行され、PD→TiKV→TiDB→監視の順に起動します。

例として、PDとTiDBの起動コマンドは以下のようになります:

## PDの起動
./pd-server --name=pd1 --data-dir=pd1 --client-urls="http://pdhost:2379" --peer-urls="http://host:2380" -L "info" --log-file=pd.log

## TiDBの起動
./tidb-server --store=tikv  --path="pdhost:2379" --log-file=tidb.log

TiUPのミラー deployコマンドは、デフォルトでhttps://tiup-mirrors.pingcap.comからリソースパッケージをダウンロードします。しかし、一般的には、生産環境のサーバーはネットワーク隔離されており、直接外部からダウンロードすることはできません。そのため、TiUPはローカルミラーモードもサポートしています。

オフラインデプロイとアップグレード TiUPを使用してTiDBをオフラインでデプロイするためには、プライベートミラーソースを構築する必要があります。TiUPは、ミラーファイルをダウンロードしてローカルに保存する機能を提供します。

以下のように、2つのプラットフォームのリソースパッケージをローカルミラーに追加できます:

# ミラーのクローンを作成
[root@localhost ~]# tiup mirror clone ./mirror v5.1.0 --os=linux

そして、このディレクトリをオフラインサーバーにコピーし、インストールします:

[root@localhost ~]# scp ./mirror/* root@10.3.65.136:/root/mirror
[root@localhost mirror]# sh local_install.sh
[root@localhost mirror]# source /root/.bash_profile
[root@localhost mirror]# tiup mirror show
/root/mirror

これで、TiDB v5.1.0のプライベートミラーソースが作成できました。

オフラインでの混合デプロイ ミラーソースが準備できたら、デプロイの手順はオンラインデプロイとほとんど変わりません。ただし、デプロイメントトポロジファイルで各ノードのアーキテクチャを指定する必要があります。

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

server_configs: {}

pd_servers:
  - host: 10.3.65.139
  - host: 10.3.65.140
  - host: 10.3.65.145

tidb_servers:
  - host: 10.3.65.139
  - host: 10.3.65.140
  - host: 10.3.72.125
    arch: "amd64"

tikv_servers:
  - host: 10.3.65.141
  - host: 10.3.65.142
  - host: 10.3.65.143

monitoring_servers:
  - host: 10.3.65.149

grafana_servers:
  - host: 10.3.65.149

alertmanager_servers:
  - host: 10.3.65.149

続いてtiup cluster deploytiup cluster startを実行します。

オフラインでの混合アップグレード 例えば、v5.1.0からv5.2.0にアップグレードする場合、現在のミラーソースにv5.2.0のリソースファイルがあれば簡単です。

以下のように、v5.2.0のリソースファイルをローカルミラーに追加します:

[root@localhost ~]# tiup mirror clone ./mirror2 v5.2.0 --os=linux
[root@localhost ~]# scp ./mirror2/* root@10.3.65.136:/root/mirror2
[root@localhost ~]# tiup mirror set /root/mirror2
[root@localhost ~]# tiup mirror show
/root/mirror2
[root@localhost ~]# tiup list tidb
Available versions for tidb:
Version  Installed  Release                    Platforms
-------  ---------  -------                    ---------
v5.2.0              2021-08-27T18:40:58+08:00  linux/amd64,linux/arm64

最後に、通常のtiup cluster upgrade操作を行います。

タグ: TiDB TiUP x86 ARM オフラインデプロイ

6月23日 18:34 投稿