クラスター展開では、openGemini の 3 つのコンポーネントすべてを 1 つのノードに展開することも、コンポーネントを複数のノードに展開することもできます。
バイナリ パッケージをダウンロードし、インストールと展開を参照してください。
https://docs.opengemini.org/zh/guide/quick_start/get_started.html
擬似クラスターのデプロイ
openGemini クラスターのすべてのコンポーネントは同じノードにデプロイされ、このクラスター デプロイ方法は擬似クラスター デプロイメントと呼ばれます。現在、コミュニティはデプロイメント スクリプト install_cluster.sh を提供しています。
> sh scripts/install_cluster.sh
ヒント
このコマンドを実行すると、構成ファイル (1 つの ts-sql、3 つの ts-meta、2 つの ts-store コンポーネントを含む) を変更せずに、openGemini クラスターをローカルで直接起動できます。ただし、クラスターは、ローカル機能のテストと学習に使用できるローカル ループバック アドレス 127.0.0.1 のみを監視および実行し、外部アクセス サービスを提供することはできません。
クラスターがローカル IP をリッスンして外部ノードにアクセスできるようにする場合、構成は比較的複雑になるため、実行可能ではありますが、運用環境ではお勧めできません。また、1 つの ts-sql、3 つの ts-meta、および 2 つの ts-store で構成されるクラスターのデプロイメントを例に挙げます。
ポートの割り当て
すべてのノードは 192.168.0.1 などのローカル IP アドレスをリッスンするため、すべてのコンポーネント間で同じポートを使用することはできず、再割り当てする必要があります。次の割り当てを行うことができます (参照)。
設定ファイルの変更
openGemini のクラスタ設定項目は openGemini.conf ファイルに集約されており、クラスタを構成する際に ts-meta、ts-sql、ts-store を 1 つずつ同一ノード上にデプロイするか、それらを 2 つ組み合わせた場合、コンポーネントの場合、同じコンポーネントが同じノードにデプロイされていない場合 (IP とポートの競合がないため)、ノード上のすべてのコンポーネントに対して構成ファイル openGemini.conf を共有することを検討できます。
同じノード上に 3 つの ts-meta と 2 つの ts-store があるため、擬似クラスターをデプロイするときは共有することはできません。IP の競合が発生するため、各コンポーネントを構成ファイルに対応させることをお勧めします。具体的な手順は次のとおりです。
> cp –rf openGemini.conf sql.conf
> cp –rf openGemini.conf meta-1.conf
> cp –rf openGemini.conf meta-2.conf
> cp –rf openGemini.conf meta-3.conf
> cp –rf openGemini.conf store-1.conf
> cp –rf openGemini.conf store-2.conf
sql.confを修正し、ローカルIPアドレスは例として192.168.0.1とする以下の部分のみ修正します。
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.1:8094", "192.168.0.1:8096"]
[http]
bind-address = "192.168.0.1:8086"
[logging]
# 建议修改目录
path = "/path/openGemini/logs"
meta-1.confを修正し、以下の部分のみ修正します
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.1:8094", "192.168.0.1:8096"]
[meta]
bind-address = "192.168.0.1:8088"
http-bind-address = "192.168.0.1:8091"
rpc-bind-address = "192.168.0.1:8092"
// 预防/tmp空间不足,建议替换/tmp目录
dir = "/path/to/openGemini/data/meta/1"
[logging]
# 建议修改目录
path = "/path/openGemini/logs"
[gossip]
bind-address = "192.168.0.1"
meta-bind-port = 8010
members = ["192.168.0.1:8010", "192.168.0.1:8012", "192.168.0.1:8013"
meta-2.confを修正し、以下の部分のみ修正します
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.1:8094", "192.168.0.1:8096"]
[meta]
bind-address = "192.168.0.1:8089"
http-bind-address = "192.168.0.1:8093"
rpc-bind-address = "192.168.0.1:8094"
// 预防/tmp空间不足,建议替换/tmp目录
dir = "/path/to/openGemini/data/meta/2"
[logging]
# 建议修改目录
path = "/path/openGemini/logs"
[gossip]
bind-address = "192.168.0.1"
meta-bind-port = 8012
members = ["192.168.0.1:8010", "192.168.0.1:8012", "192.168.0.1:8013"]
meta-3.confを修正し、以下の部分のみ修正します
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.1:8094", "192.168.0.1:8096"]
[meta]
bind-address = "192.168.0.1:8090"
http-bind-address = "192.168.0.1:8095"
rpc-bind-address = "192.168.0.1:8096"
// 为防/tmp空间不足,建议替换/tmp目录
dir = "/path/to/openGemini/data/meta/3"
[logging]
# 建议修改目录
path = "/path/openGemini/logs"
[gossip]
bind-address = "192.168.0.1"
meta-bind-port = 8013
members = ["192.168.0.1:8010", "192.168.0.1:8012", "192.168.0.1:8013"]
store-1.conf を変更し、以下の部分のみ変更してください /tmp の容量不足を防ぐため、/tmp ディレクトリを置き換えることを推奨します。
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.1:8094", "192.168.0.1:8096"]
[data]
store-ingest-addr = "192.168.0.1:8400"
store-select-addr = "192.168.0.1:8401"
store-data-dir = "/path/to/openGemini/data/1"
store-wal-dir = "/path/to/openGemini/data/1"
store-meta-dir = "/path/to/openGemini/data/meta/1"
[logging]
# 建议修改目录
path = "/path/openGemini/logs"
[gossip]
bind-address = "192.168.0.1"
store-bind-port = 8011
members = ["192.168.0.1:8010", "192.168.0.1:8012", "192.168.0.1:8013"]
store-2.confを変更し、以下の部分のみ変更します
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.1:8094", "192.168.0.1:8096"]
[data]
store-ingest-addr = "192.168.0.1:8402"
store-select-addr = "192.168.0.1:8403"
store-data-dir = "/path/to/openGemini/data/2"
store-wal-dir = "/path/to/openGemini/data/2"
store-meta-dir = "/path/to/openGemini/data/meta/2"
[logging]
# 建议修改目录
path = "/path/openGemini/logs"
[gossip]
bind-address = "192.168.0.1"
store-bind-port = 8014
members = ["192.168.0.1:8010", "192.168.0.1:8012", "192.168.0.1:8013"]
それでも ts-store を追加する必要がある場合は、この設定に従ってポートを変更し、プルアップします。
クラスターを引き上げる
スクリプトの編集
> cp –rf scripts/install_cluster.sh scripts/cluster.sh
> vim scripts/cluster.sh
cluster.sh スクリプトの 27 ~ 38 行目を削除またはコメント化します。
# generate config
for((i = 1; i <= 3; i++))
do
rm -rf config/openGemini-$i.conf
cp config/openGemini.conf config/openGemini-$i.conf
sed -i "s/{{meta_addr_1}}/${nodes[1]}/g" config/openGemini-$i.conf
sed -i "s/{{meta_addr_2}}/${nodes[2]}/g" config/openGemini-$i.conf
sed -i "s/{{meta_addr_3}}/${nodes[3]}/g" config/openGemini-$i.conf
sed -i "s/{{addr}}/${nodes[$i]}/g" config/openGemini-$i.conf
sed -i "s/{{id}}/$i/g" config/openGemini-$i.conf
done
次に、起動コマンドの構成ファイルと関連ログ ディレクトリを変更します。
nohup build/ts-meta -config config/openGemini -1.conf -pidfile /tmp/openGemini/pid/meta1.pid > /tmp/openGemini/logs/1/meta_extra1.log 2>&1 &
への変更
nohup build/ts-meta -config config/meta-1.conf -pidfile /path/openGemini/pid/meta1.pid > /path/openGemini/logs/1/meta_extra1.log 2>&1 &
等々
変更完了後、コマンドを実行して擬似クラスタを起動します。
> sh scripts/cluster.sh
標準的なクラスターの展開
現在のところ、クラスター展開用の自動スクリプトはなく、手動でのみ展開できます。興味のあるお子様は、コミュニティに貢献してください。
openGemini クラスターのデプロイメントは図に示すとおりで、クラスターには ts-meta(3x)、ts-sql(2x)、ts-store(2x) が含まれています。
この展開方法では、同じノードに 2 つの同一のコンポーネントが展開されることはなく、ポートの競合がないため、同じノード上のすべてのコンポーネントが構成ファイルを共有できます。
Node1:192.168.0.1 を例にとると、構成ファイル openGemini.conf を次のように変更するだけで済みます。
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.2:8092", "192.168.0.3:8092"]
[meta]
bind-address = "192.168.0.1:8088"
http-bind-address = "192.168.0.1:8091"
rpc-bind-address = "192.168.0.1:8092"
# 建议修改目录
dir = "/path/openGemini/data/meta/1"
[http]
bind-address = "192.168.0.1:8086"
[data]
store-ingest-addr = "192.168.0.1:8400"
store-select-addr = "192.168.0.1:8401"
# 建议修改目录
store-data-dir = "/path/openGemini/data/1"
store-wal-dir = "/path/openGemini/data/1"
store-meta-dir = "/path/openGemini/data/meta/1"
[logging]
# 建议修改目录
path = "/path/openGemini/logs"
[gossip]
bind-address = "192.168.0.1"
store-bind-port = 8011
meta-bind-port = 8010
members = ["192.168.0.1:8010", "192.168.0.2:8010", "192.168.0.3:8010"
Node2 と Node3 の構成ファイルは、次の 2 つの場所で変更されていません。
[common]
meta-join = ["192.168.0.1:8092", "192.168.0.2:8092", "192.168.0.3:8092"]
[gossip]
store-bind-port = 8011
meta-bind-port = 8010
members = ["192.168.0.1:8010", "192.168.0.2:8010", "192.168.0.3:8010"]
他の場所の IP アドレスは、それぞれ Node2 の IP 192.168.0.2 と Node3 の IP 192.168.0.3 に置き換えることができ、ポートを変更する必要はありません。
ヒント: openGemini には、クラスターをプルアップする際のコンポーネントの起動シーケンスに関する要件があります。
まず、3 つのノードすべてで ts-meta コンポーネントを開始します (コマンドの例)。
> nohup ts-meta --config openGemini.conf -pidfile meta.pid > meta_extra.log 2>&1
次に、 ts-store コンポーネントを開始します (コマンドの例)。
> nohup ts-store --config openGemini.conf -pidfile store.pid > store_extra.log 2>&1 &
最後に ts-sql コンポーネントを開始します (コマンドの例)。
> nohup ts-sql --config openGemini.conf -pidfile sql.pid > sql_extra.log 2>&1 &
クライアント接続 。ts-cli コマンドラインを参照してください。
https://docs.opengemini.org/zh/guide/quick_start/get_started.html#%E5%91%BD%E4%BB%A4%E8%A1%8C-ts-cli
要約する
この記事では、openGemini でクラスターを簡単にデプロイする方法を、①疑似クラスターのデプロイ - ② クラスターのプルアップ - ③ 標準クラスターのデプロイの 3 つのステップで詳しく紹介します。このガイドはシンプルで理解しやすく、初心者に非常に適しており、この記事を読むことでクラスターを効率的かつ確実にデプロイできるようになると思います。
openGemini の使用で問題が発生した場合は、コミュニティに助けを求めてください。
openGemini公式ウェブサイト:http://www.openGemini.org
openGemini オープンソース アドレス: https://github.com/openGemini
openGemini パブリック アカウント:
注目へようこそ~openGeminiコミュニティに参加して、一緒に未来を構築、管理、共有することを心から歓迎します!
オープンソース フレームワーク NanUI の作者がスチールの販売に切り替えたため、プロジェクトは中断されました。Apple App Store の無料リストのナンバー 1 はポルノ ソフトウェア TypeScript です。人気が出てきたばかりなのに、なぜ大手はそれを放棄し始めるのでしょうか。 ? TIOBE 10月リスト:Javaが最大の下落、C#はJavaに迫る Rust 1.73.0リリース AIガールフレンドにイギリス女王暗殺を勧められた男性に懲役9年の実刑判決 Qt 6.6正式リリース ロイター:RISC-Vテクノロジーが中米テクノロジー戦争の鍵となる 新たな戦場 RISC-V: 単一の企業や国に支配されない レノボ、Android PC の発売を計画