背景 TiDB 5.0のアシンクロナストランザクション機能をX86とARMの混合デプロイメントアーキテクチャで体験する記事が以前に公開されました。その後、オフラインモードでのTiDBクラスタのアップグレード方法について質問がありましたので、この記事ではその手順をまとめます。
デプロイの本質 TiDB 4.0から導入されたTiUPは、複雑なTiDBクラスタの設定を簡単にしてくれるツールです。TiUPを使うことで、TiDBエコシステム内の多くのコンポーネントも管理できます。
よく使われる2つのコマンドがあります。tiup cluster deployとtiup 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 deployとtiup 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操作を行います。