メインコンテンツまでスキップ

Enable FQDN access

FQDNアクセスの有効化

このトピックでは、完全修飾ドメイン名(FQDN)を使用してクラスタへのアクセスを有効にする方法について説明します。FQDNは、インターネット経由でアクセスできる特定のエンティティの完全なドメイン名です。FQDNは、ホスト名とドメイン名の2つの部分で構成されています。

バージョン2.4以前では、StarRocksはIPアドレス経由でFE(Frontend)とBE(Backend)にアクセスすることしかサポートしていませんでした。クラスタにノードを追加する際にFQDNを使用しても、最終的にはIPアドレスに変換されます。これにより、特定のノードのIPアドレスを変更すると、ノードへのアクセスが失敗するため、DBAにとって大変不便でした。バージョン2.4では、StarRocksは各ノードをIPアドレスから切り離しました。これにより、StarRocksでノードを完全にFQDNで管理できるようになりました。

前提条件

StarRocksクラスタでFQDNアクセスを有効にするためには、以下の要件を満たす必要があります。

  • クラスタ内の各マシンにはホスト名が必要です。
  • 各マシンの /etc/hosts ファイルに、クラスタ内の他のマシンの対応するIPアドレスとFQDNを指定する必要があります。
  • /etc/hosts ファイルのIPアドレスは一意である必要があります。

FQDNアクセスを有効にした新しいクラスタのセットアップ

デフォルトでは、新しいクラスタのFEノードはIPアドレスアクセスで起動されます。FQDNアクセスを有効にした新しいクラスタを起動するには、最初にクラスタを起動する際に次のコマンドを実行してFEノードを起動する必要があります。

./bin/start_fe.sh --host_type FQDN --daemon

プロパティ --host_type は、ノードの起動に使用されるアクセス方法を指定します。有効な値には FQDNIP があります。このプロパティを指定する必要があるのは、ノードを初めて起動するときだけです。

StarRocksのインストール手順の詳細については、StarRocksのデプロイ を参照してください。

各BEノードはFEメタデータで BEアドレス を識別します。したがって、BEノードを起動する際に --host_type を指定する必要はありません。BEアドレス がFQDNのBEノードを定義している場合、BEノードはこのFQDNで自己識別します。

既存クラスタでFQDNアクセスを有効にする

以前にIPアドレス経由で起動された既存のクラスタでFQDNアクセスを有効にするには、まずStarRocksをバージョン2.4.0またはそれ以降に**アップグレードする必要があります。

FEノードでのFQDNアクセスの有効化

FQDNアクセスを有効にする前に、リーダー以外のフォロワーFEノード全体でFQDNアクセスを有効にする必要があります。

注意

FQDNアクセスを有効にする前に、クラスタには少なくとも3つのフォロワーFEノードがあることを確認してください。

リーダー以外のフォロワーFEノードでFQDNアクセスを有効にする

  1. FEノードのデプロイディレクトリに移動し、次のコマンドを実行してFEノードを停止します。

    ./bin/stop_fe.sh --daemon
  2. MySQLクライアントを使用して次のステートメントを実行し、停止したFEノードの Alive ステータスが false になるまで待ちます。

    SHOW PROC '/frontends'\G
  3. 次のステートメントを実行して、IPアドレスをFQDNで置き換えます。

    ALTER SYSTEM MODIFY FRONTEND HOST "<fe_ip>" TO "<fe_hostname>";
  4. 次のコマンドを実行して、FQDNアクセスでFEノードを起動します。

    ./bin/start_fe.sh --host_type FQDN --daemon

    プロパティ --host_type は、ノードの起動に使用されるアクセス方法を指定します。有効な値には FQDNIP があります。このプロパティを指定する必要があるのは、ノードを修正した後にノードを再起動する際だけです。

  5. FEノードの Alive ステータスをチェックします。 Alive ステータスが true になるまで待ちます。

    SHOW PROC '/frontends'\G
  6. 現在のFEノードの Alive ステータスが true の場合は、他のリーダー以外のフォロワーFEノードについても同じ手順でFQDNアクセスを有効にします。

リーダーFEノードでFQDNアクセスを有効にする

すべてのリーダー以外のフォロワーFEノードが正常に変更および再起動された後、リーダーFEノードでFQDNアクセスを有効にすることができます。

注意

リーダーFEノードがFQDNアクセスが有効にされる前は、クラスタにノードを追加する際に使用されるFQDNは引き続き対応するIPアドレスに変換されます。FQDNアクセスが有効にされたリーダーFEノードがクラスタで選ばれた後、FQDNはIPアドレスに変換されなくなります。

  1. リーダーFEノードのデプロイディレクトリに移動し、次のコマンドを実行してリーダーFEノードを停止します。

    ./bin/stop_fe.sh --daemon
  2. MySQLクライアントを使用して次のステートメントを実行し、クラスタ用に新しいリーダーFEノードが選出されたかどうかを確認します。

    SHOW PROC '/frontends'\G

    ステータスが AliveisMastertrue であるFEノードは、実行中のリーダーFEです。

  3. 次のステートメントを実行して、IPアドレスをFQDNで置き換えます。

    ALTER SYSTEM MODIFY FRONTEND HOST "<fe_ip>" TO "<fe_hostname>";
  4. 次のコマンドを実行して、FQDNアクセスでFEノードを起動します。

    ./bin/start_fe.sh --host_type FQDN --daemon

    プロパティ --host_type は、ノードの起動に使用されるアクセス方法を指定します。有効な値には FQDNIP があります。このプロパティを指定する必要があるのは、ノードを修正した後にノードを再起動する際だけです。

  5. FEノードの Alive ステータスをチェックします。

    SHOW PROC '/frontends'\G

Alive ステータスが true になったら、FEノードが正常に変更され、Follower FEノードとしてクラスタに追加されました。

BEノードでのFQDNアクセスの有効化

次のステートメントをMySQLクライアントを介して実行し、BEノードでFQDNアクセスを有効にするためにIPアドレスをFQDNで置き換えます。

ALTER SYSTEM MODIFY BACKEND HOST "<be_ip>" TO "<be_hostname>";

注意

FQDNアクセスが有効にされた後は、BEノードを再起動する必要はありません。

ロールバック

FQDNアクセスが有効になったStarRocksクラスターをFQDNアクセスをサポートしない以前のバージョンにロールバックするには、クラスター内のすべてのノードでIPアドレスアクセスを有効にする必要があります。一般的な手順については、既存クラスタでFQDNアクセスを有効にする を参照してください。ただし、SQLコマンドを以下のように変更する必要があります。

  • FEノードのIPアドレスアクセスを有効にする:
ALTER SYSTEM MODIFY FRONTEND HOST "<fe_hostname>" TO "<fe_ip>";
  • BEノードのIPアドレスアクセスを有効にする:
ALTER SYSTEM MODIFY BACKEND HOST "<be_hostname>" TO "<be_ip>";

変更は、クラスターが正常に再起動された後に有効になります。

FAQ

Q: FEノードのFQDNアクセスを有効にする際に「required 1 replica. But none were active with this master」というエラーが発生します。どうすればいいですか?

A: FEノードのFQDNアクセスを有効にする前に、クラスタには少なくとも3つのフォロワーFEノードがあることを確認してください。

Q: FQDNアクセスが有効になったクラスタにIPアドレスを使用して新しいノードを追加できますか?

A: はい。