OpenLM Router
FlexLM ライセンスサーバーが停止したときの通常の復旧方法は、クライアントの接続先を変更することです。DNS を切り替えるか、すべてのワークステーションで LM_LICENSE_FILE を編集し、さらに誰かの承認を待つ必要があります。OpenLM Router は、この 2 つの遅れをどちらもなくします。クライアントはライセンスサーバーではなく Router のポートに接続し、プライマリに障害が発生すると、Router が自らクライアントをバックアップへ移します。既定の設定では、OpenLM Platform がプライマリを異常と報告してから通常 60~90 秒で切り替わります。ワークステーション側は何も変わらず、切り替えのために承認を待つこともありません。
OpenLM Router はコンテナーイメージとして提供されます。Linux 上の Docker で動作します。OpenLM Router をデプロイするを参照してください。
始める前に
Router を計画する前に、次の前提条件を確認します。
- ライセンスサーバーが FlexLM を使用しており、各サーバー上の OpenLM Broker が OpenLM Platform に報告していること。システム要件を参照してください。
- お使いの OpenLM ライセンスに Router が含まれていること。システム要件を参照してください。
- OpenLM アカウントにつき Router を 1 つ計画すること。現在の制限事項を参照してください。
OpenLM LicOps は別の製品です。OpenLM LicOps は、ライセンスのシートが空いているときにだけスケジューラーや Kubernetes のジョブを許可し、各ジョブがチェックアウトするサーバーを選びます。OpenLM LicOps を参照してください。
Router の仕組み
Router は、ライセンスサーバーの前段に配置する TCP プロキシです。保護するアプリケーションごとに固定のポート(リッスンポート)を開き、そこに届いた通信を、その時点でプライマリの役割を持つサーバーへ転送します。
サーバーのヘルス情報は OpenLM Platform から取得し、Router は約 10 秒ごとに最新のデータを問い合わせます。Router は 30 秒ごとに各ペアのヘルスを確認し、アクティブなサーバーが指定した回数だけ連続して異常と報告されると転送先を切り替え、新しいクライアント接続はバックアップに向かいます。障害しきい値が 3 の場合、OpenLM Platform が最初にプライマリを異常と報告してから 60~90 秒後にフェイルオーバーすると考えてください。これに加えて、OpenLM Platform が障害に気付くまでの時間がかかります。OpenLM Platform が異常と報告しているバックアップにペアを移すことはありません。
3 台のマシンで動作する FlexLM ライセンスサーバー(トライアド)では、Router 自身もマシンを確認します。3 台のうち Router ホストからの接続を受け付けるマシンが 2 台未満の間は、OpenLM Platform がサーバーを稼働中と報告していても、Router はそのサーバーを異常として扱います。
Router は単独では動作しません。次の 3 つの点で OpenLM Platform に依存しています。
- ヘルス: Router は、OpenLM Platform が報告するサーバーヘルスに基づいてフェイルオーバーします。Router が OpenLM Platform と通信できなくなった場合、最後に受け取った読み取り値に基づいて最大 10 分間動作を続け、その後は読み取り値を不明として扱います。OpenLM Platform は、各サーバー上で動作する OpenLM Broker から、そのサーバーのヘルスを把握します。
- サーバー: サーバーは、OpenLM Platform が監視しているライセンスサーバー(OpenLM Broker が動作して報告しているサーバー)の一覧から選びます。Router がライセンスファイルを解析することはなく、フェイルオーバーペアにホスト名を入力することもありません。
- 構成: フェイルオーバーペアは、OpenLM Platform の LicOps Configuration の Port Mappings ページで定義し、Router がそれを取得します。LicOps Configuration は、Licenses and Features にある OpenLM Platform のアプリで、OpenLM Router と OpenLM LicOps の両方を設定します。フェイルオーバー用の Router では Port Mappings が表示されます。Router 自体が保持するのは OpenLM Platform への接続だけです。
直近 10 分間に読み取り値がないサーバーは、異常ではなく不明として扱われます。不明な読み取り値は障害カウントを進めずにその時点の値で保持するため、OpenLM Platform のデータが途切れても、クライアントが移されることはありません。
フェイルオーバーペア
アプリケーションを保護するには、ポートマッピング(フェイルオーバーペアとも呼びます)を定義します。ポートマッピングは、1 つのリッスンポート、プライマリサーバー、任意のバックアップ、およびその間で切り替えるためのポリシーで構成されます。次の表は、ペアの設定を示します。
| 設定 | 制御する内容 |
|---|---|
| リッスンポート | このペアのために Router が開くポート。クライアントは port@router-host を使い、以後この設定を変更する必要はありません。ペアごとに専用のポートが必要です。 |
| プライマリサーバー | ペアが通常使用するサーバー。 |
| バックアップサーバー | フェイルオーバー先のサーバー。プライマリと同じベンダーデーモンとフィーチャーを、独自のライセンスファイルから提供している必要があります。提供していない場合、クライアントはバックアップに移った後、チェックアウトに失敗します。任意の設定です。バックアップのないペアも監視されますが、フェイルオーバー先がありません。 |
| 障害しきい値 | 何回連続でヘルスチェックが異常になったら切り替えるか。1~10 を指定できます。 |
| フェイルバックモード | プライマリが復旧した後の動作。Auto は自動的にプライマリへ戻り、Manual は管理者の操作を待ちます。 |
ペアは互いに独立してフェイルオーバーするため、あるアプリケーションがバックアップに移っても、ほかのアプリケーションには影響しません。
サーバーに障害が発生すると、クライアントが Router 経由で保持していた接続もそのサーバーとともに切れ、クライアントは Router 経由でバックアップに再接続します。正常なサーバーを強制的にフェイルオーバーした場合は、新しい接続だけが切り替わります。すでに開いている接続は、開始したサーバーに残ります。
デプロイするもの
Router は、ライセンスサーバーと同じ自社ネットワーク内で動作します。お客様がインストールするコンポーネントであり、OpenLM Platform のクラスターの一部ではありません。次の表は、デプロイするコンテナーを示します。
| コンテナー | 役割 |
|---|---|
| Router API | プロキシ本体と、その REST API。 |
| Router UI | Router を OpenLM Platform に接続するためのブラウザー用ページ。 |
| MongoDB | ルーティング構成とフェイルオーバー履歴を保存します。 |
| Redis | 各ペアが現在どのサーバーを使用しているかと、Router のバックグラウンドジョブのスケジュールを保持します。 |
ライセンスサーバー側では、Router は OpenLM Broker を利用します。Broker はすでに実行している場合もあります。OpenLM Platform は Broker を通じて、各サーバーとそのヘルスを把握します。ペアに含まれるすべてのサーバーに Broker が必要で、バックアップも例外ではありません。システム要件を参照してください。
Router を接続した後は、OpenLM Platform でフェイルオーバーペアを定義・編集します。Router は OpenLM Platform に構成をポーリングし、適用した内容を報告します。そのため、通信は常に自社ネットワークから外向きにだけ発生します。OpenLM Platform 側から Router への接続が開かれることはないため、OpenLM Platform との接続に受信方向のファイアウォールルールは不要です。ただし、クライアントは引き続き、Router のリッスンポートと、各ライセンスサーバーのベンダーデーモンのポートに到達できる必要があります。
このセクションで使う用語
このセクションで使う名前を、次の表に示します。
| 名前 | 内容 |
|---|---|
| OpenLM Router | デプロイするプログラムであり、ここで説明するフェイルオーバー製品。 |
| LicOps Configuration | フェイルオーバーペアを定義する OpenLM Platform のサービス。両方の製品を設定するため、LicOps の名前が付いています。 |
| Port Mappings | LicOps Configuration の中で、フェイルオーバーペアを一覧表示するページ。ポートマッピングとフェイルオーバーペアは同じものです。 |
| Router UI | Router ホスト上にある、Router を OpenLM Platform に接続するためのブラウザー用ページ。 |
Client Type Router | Router がサインインに使う ID クライアントの種類。 |
| OpenLM Broker | 各ライセンスサーバー上で、サーバーとそのヘルスを OpenLM Platform に報告する OpenLM コンポーネント。 |
現在の制限事項
Router には次の制限事項があります。
- FlexLM でのみ検証済み: その他の TCP ベースのライセンスマネージャーも動作する見込みですが、検証はされていません。利用する前に OpenLM にお問い合わせください。
- Linux と Docker のみ: Windows ホストには対応していません。
- OpenLM アカウントにつき Router は 1 つ: LicOps Configuration が一度に扱う Router は 1 つで、最後に報告した Router です。別のサイト用や待機用の 2 台目の Router、または OpenLM LicOps と並べて動作する Router があると、ページは 2 つの間で切り替わります。1 つの Router で、リッスンポートを割り当てた数だけアプリケーションを保護できます。ペアごとに専用のポートが必要です。Router ホストは、ライセンス経路上のほかのコンポーネントと同じように計画してください。Router を可用な状態に保つを参照してください。
次のステップ
各ページを順番に進めてください。
- システム要件: Router に必要なホスト、データストア、ネットワーク、OpenLM Platform へのアクセス。
- OpenLM Router をデプロイする: コンテナーを実行し、Router が起動することを確認します。
- OpenLM Router を設定する: Router を OpenLM Platform に接続し、フェイルオーバーペアを定義して、クライアントを Router に向けます。
- OpenLM Router を運用する: ペアを監視し、フェイルオーバーやフェイルバックを手動で強制します。
- OpenLM Router の変更、アップグレード、削除: Router をアップグレードする、新しいホストへ移す、または安全な順序で廃止します。
- OpenLM Router のトラブルシューティング: よくある症状の意味。
- OpenLM Router API リファレンス: フェイルオーバーで使うエンドポイントと、そのレスポンスの読み方。
関連項目
- OpenLM LicOps: Router プログラム上で動作するもう 1 つの製品。HPC と Kubernetes のジョブ向けです。
- ライセンスサーバー: OpenLM Platform が監視するサーバーと、冗長なライセンスサーバーの表示方法。
ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。