OpenLM Router のシステム要件
OpenLM Router をデプロイするには、自社ネットワーク内に単一の Linux ホストを用意します。ホストは、Router が前段に立つライセンスサーバーの近くに配置します。Router は、そのホスト上で一連のコンテナーとして動作します。デプロイする前に、以下を確認してください。
OpenLM ライセンス
OpenLM ライセンスに Router が含まれている必要があります。OpenLM Platform で https://<your-platform>/licensemanager/#/license-summary のライセンス概要を開き、Router のフィーチャーがあることを確認します。Router が登場する前に発行されたライセンスには、このフィーチャーは含まれていません。
このフィーチャーがない場合でも、LicOps Configuration(OpenLM Platform でフェイルオーバーペアを定義する場所)は開きます。ただし、各ページには内容の代わりに次の通知が表示され、保存は拒否されます。
「Router License is not available with current openLM License, please contact with support team for more information.」
通知の末尾には、OpenLM ライセンス情報へのリンクがあります。OpenLM Platform がライセンスを確認するために OpenLM LicenseManager に到達できない場合は、代わりに次の通知が表示され、確認が成功するまで構成は読み取り専用になります。
「The Router license check could not be completed: the OpenLM LicenseManager is not reachable. Configuration is read-only until it answers.」
すでに構成済みの Router は、このフィーチャーがなくても動作を続け、フェイルオーバーも行います。拒否されるのは、フェイルオーバーペアの変更だけです。ライセンスの再発行については、OpenLM にお問い合わせください。
ホスト要件
ホストは、次の要件を満たす必要があります。
- 64 ビットの Linux ホスト。Windows ホストには対応していません。
- Docker Engine 20.10 以上と、Docker Compose v2 プラグイン。
docker compose versionで確認してください。 - プロセッサーアーキテクチャは
linux/amd64とlinux/arm64のどちらでも使用できます。Router のイメージは両方で公開されています。
Router 自体は軽量です。ホストのサイズは、プロキシではなく、データストアと Router を通過するライセンストラフィックに合わせて決めてください。CPU、メモリ、ディスクのリソースを、次の表に示します。
| リソース | 最小 | 推奨 |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| メモリ | 2 GB | 4 GB |
| ディスク | 10 GB | 20 GB 以上 |
データストア
Router には MongoDB と Redis が必要です。Router と並べてコンテナーとして実行することも、すでに運用しているサーバーを指定することもできます。サポートされるバージョンを、次の表に示します。
| データストア | バージョン | 保持する内容 |
|---|---|---|
| MongoDB | 7.x | ルーティング構成とフェイルオーバー履歴。シングルノードで問題ありません。 |
| Redis | 7.x | 各ペアがどのサーバーを使用しているか、および Router のバックグラウンドジョブのスケジュール。 |
Redis の永続化は必須です
Redis は、追記型の永続化(append-only)を有効にし、退避(eviction)を行わない設定にします。
appendonly yes
appendfsync everysec
maxmemory-policy noeviction
どちらの設定も、気付かれないまま進行する障害を防ぐためのもので、いずれも省略できません。
maxmemory-policy noeviction は、各ペアがどのサーバーを使用しているかの記録を保護します。このキーには意図的に有効期限を設定していません。それが唯一の記録だからです。Redis がこのキーを退避すると、フェイルオーバー済みのペアが気付かないうちにプライマリへ戻り、実際に停止しているライセンスサーバーに再びトラフィックが流れ始めます。
永続化は、Router のジョブスケジュールを保護します。Router は、OpenLM Platform のヘルス同期を含む定期ジョブを、起動時にしか登録しません。Router の実行中に Redis が空の状態で復帰すると、それらの登録は失われます。ヘルスデータの更新が止まり、フェイルオーバーも機能しなくなりますが、エラーは発生しません。目に見える症状は、OpenLM Platform のサーバー一覧へのリクエストが 503 を返し始めることだけです。Router を再起動すると、スケジュールが元に戻ります。
Redis Cluster には対応していません。
ネットワーク要件
Router に必要なネットワーク接続を、次の表に示します。
| 方向 | 接続先 | 目的 |
|---|---|---|
| Router ホストからのアウトバウンド | OpenLM Platform(HTTPS) | サーバーヘルス、ライセンスサーバーの一覧、Router の構成。 |
| Router ホストからのアウトバウンド | 各ライセンスサーバーの lmgrd ポート(port@host のポート。通常は 27000) | プロキシされるライセンストラフィック。FlexLM のトライアドでは、3 台すべてのマシンでこのポートを開いてください。Router 自身もそれらを確認します。 |
| ワークステーションから | プライマリとバックアップの両方で、各ライセンスサーバーのベンダーデーモンのポート | すべてのチェックアウトにおける 2 本目の接続。Router が中継するのは、クライアントから lmgrd への最初の接続です。その後、クライアントはベンダーデーモンに直接接続します。ファイアウォールで開放できるよう、各ライセンスファイルでベンダーデーモンのポートを固定してください(VENDOR 行の PORT=)。 |
| Router ホストへのインバウンド | 各フェイルオーバーペアのリッスンポート | FlexLM クライアントは、ここで Router に接続します。 |
| Router ホストへのインバウンド(管理用ネットワークからのみ) | ポート 8100 と 8101 | Router の REST API と、Router を OpenLM Platform に接続するために使う Router UI。 |
ポート 8100 と 8101 は管理用のインターフェイスです。アクセスは管理用ネットワークからのみに限定し、インターネットには公開しないでください。公開するのは、クライアントが使用するライセンスポートだけにしてください。
OpenLM Platform の前提条件
デプロイする前に、OpenLM Platform で次の点を確認します。
- 各ライセンスサーバーの Broker: ペアに含まれる各ライセンスサーバーが、OpenLM Broker を通じて OpenLM に監視されている必要があります。プライマリだけでなく、バックアップも対象です。OpenLM Platform がライセンスサーバーとそのヘルスを把握できるのは、そのマシンにインストールされた Broker を通じてだけです。そのため、Broker が実行されていない、または承認されていないサーバーは、ペアのサーバーを選ぶときに表示されません。
- LicOps Configuration へのアクセス: OpenLM Platform で LicOps Configuration を開ける必要があります。LicOps Configuration は Navigation メニューの Licenses and Features にあり、フェイルオーバーペアを定義する場所です。アカウント管理者など、このアプリにアクセスできる OpenLM Platform アカウントが必要です。
- Identity の Router クライアント: Identity で Router クライアントを作成できる必要があります。OpenLM Platform で Identity を開き、Authorization を選択して、Client Type が
Routerのクライアントを追加します。Router を接続するには、そのクライアントの認証ファイル、または Client ID と Client Secret が必要です。
OpenLM Platform は、クライアントの種類に基づいて権限を付与します。別の種類の認証情報では、認証には成功しても、Router が行う問い合わせが拒否されることがあります。この問題はサインインのエラーとしてではなく、後になってサーバー一覧が取得できないという形で現れます。Router クライアントの手順は、OpenLM Router を設定するを参照してください。
各ライセンスサーバーを準備する
現在ユーザーにライセンスを提供していないバックアップサーバーは、Broker が入っていない可能性が最も高いサーバーです。ペアを作成する前に確認してください。各ライセンスサーバーについて、次の手順を実行します。
- ライセンスサーバーのマシンに OpenLM Broker をインストールします。
- Broker Hub で Broker を承認します。
- License Servers、Pending Servers の順に選択し、Approve And Merge を使ってライセンスサーバーを承認します。
- License Servers の Live Servers Statistics で、サーバーが Up と表示されていることを確認します。
詳細は、Broker をインストールする、Broker Hub、Flexera FlexNet (FLEXlm)、License Servers を参照してください。
暗号化キー
Router は、OpenLM Platform のクライアントシークレットを保存する前に暗号化します。デプロイごとに 32 バイトのキーを一度だけ生成します。
openssl rand -base64 32
出力された 44 文字の文字列を保管してください。この文字列は、MongoDB にすでに保存されている認証情報を復号するためのものです。そのため、キーを置き換えても認証情報がローテーションされるわけではなく、読み取れなくなるため、OpenLM Platform への接続を入力し直す必要があります。
文字列は、openssl が出力したとおりに保存してください。この文字列はすでに 32 バイトの乱数を Base64 にしたものです。もう一度 base64 にかけると、32 バイトが想定されるところに 44 バイトの値が渡され、OpenLM Platform 接続の最初の保存に失敗します。
OpenLM Router をデプロイするに進み、コンテナーを実行します。
ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。