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

スケジュールでシート数を制限する

バッチジョブと人が同じライセンスサーバーを共有していると、エンジニアが席にいる時間帯にジョブがすべてのシートを使ってしまうことがあります。予約を使うと、これを防げます。指定した時間帯には、LicOps が各サーバーで割り当てるシートは設定した数までになり、残りのシートには手を付けません。その時間帯以外は、ジョブがすべてのシートを使用できます。

予約は 1 つのベンダーと、そのベンダーの 1 つ以上のフィーチャーを対象とし、期間からなるスケジュールを持ちます。各期間では、指定したサーバーごとに、LicOps がそのサーバーで割り当てられるシートの最大数を設定します。

予約で制限される内容

各期間は、LicOps が割り当てるシートに上限を設けます。期間が有効な間、LicOps はサーバー上で Maximum seats を超えて許可することはなく、Blocked during this period のサーバーでは何も許可しません。

Reserved seats は予約とともに保存されますが、LicOps はライセンスサーバー上でそれらのシートを確保しません。そのため、LicOps を経由せずにチェックアウトするユーザーは、それらのシートも使用できます。そのようなユーザーのためにシートを空けておくには、Maximum seats をサーバーの総数より小さく設定してください。

予約を作成する​

予約を作成するには、次の手順を実行します。

  1. OpenLM Platform で Navigation を選択し、Licenses and Features の下にある LicOps Configuration を選択します。
  2. Rules、New Reservation の順に選択します。
  3. Pool で Vendor を選択し、続いて 1 つ以上の Features を選択します。LicOps はフィーチャーごとに 1 つの予約を保存し、それらはすべてここで設定したスケジュールを共有します。1 つのフィーチャーに設定できる予約は 1 つだけです。
  4. Schedule で Period 1 を設定します。
    • 期限なく適用する制限には Applies all day, every day をオンにし、時間帯を指定する場合は From と To を設定します。08:00 から 18:00 のような時間帯は毎日適用されます。18:00 から 08:00 のような時間帯は午前 0 時をまたぎます。
    • Servers not in the list では、他のサーバーを制限しない場合は No limit を選択します。期間が有効な間、それらのサーバーで LicOps がこのフィーチャーをまったく割り当てないようにする場合は Blocked during this period を選択します。
    • 上限を設けるサーバーごとに + Add server を選択し、Maximum seats を設定します。これは、期間中に LicOps がそのサーバーでこのフィーチャーを割り当てるシートの最大数です。Maximum seats は 1 以上で、サーバーのライセンスシート数以下です。Reserved seats は予約とともに保存される値で、0 以上、Maximum seats 以下です。LicOps はライセンスサーバー上でこれらのシートを確保しません。
  5. 別の時間帯を追加するには、+ Add period を選択します。期間を重複させることはできません。
  6. Save rule を選択します。

どの期間が有効かを確認するには、Currently active を確認します。これはお使いのコンピューターの時計に基づきます。LicOps 自体は動作しているマシンの時計で判断するため、結果が異なることがあります。スケジュールをタイムゾーンに合わせるを参照してください。

次のスクリーンショットは、日中と夜間の期間を持つ予約を示しています。

プール MLM MATLAB の予約エディター。2 つの期間があり、08:00 から 18:00 は lic01 と lic02 をそれぞれ 40 シート(予約 10)に制限し、18:00 から 08:00 は lic01 を 50 シートに制限している。Currently active パネルには夜間の期間が有効と表示されている 日中と夜間の期間を持つ予約。Currently active には、お使いのコンピューターの現地時刻で有効な期間が表示されます。

予約は、アドミッションルールとともに Rules リストに、アクション Reserve seats per server for time periods として表示されます。変更または削除するには、そこで予約を選択します。

期間中の動作​

LicOps は 1 分ごとにスケジュールを確認します。期間が始まると、それ以降の新しいリクエストにその制限が適用されます。期間が終わると制限が解除されるか、次の期間の制限に切り替わります。LicOps が各状況で行う動作を次の表に示します。

状況LicOps の動作
リストにあるサーバーが Maximum seats に達していない通常どおり許可します。
リストにあるサーバーが Maximum seats に達した新しいリクエストをプール内の他のサーバーに配置します。
リストにないサーバーで、No limit が選択されている通常どおり許可します。
リストにないサーバーで、Blocked during this period が選択されているこれらのフィーチャーについて、そのサーバーには何も配置しません。
空きシートのあるすべてのサーバーが、上限に達しているかブロックされているConstraintBlocked でリクエストを拒否します。

Maximum seats で数えるのは、LicOps が割り当てたシートだけです。ユーザーがライセンスサーバーから直接チェックアウトしたシートはこれに含まれませんが、サーバーの空きシートは減ります。

期間が始まっても、シートが回収されることはありません。新しい最大数を超えるジョブがすでにサーバー上で実行中の場合、それらのジョブはシートを保持し、十分な数のジョブが終了するまで、LicOps はそのサーバーで新しいジョブを許可しません。

予約はアドミッションルールと併せて機能します。ルールは、LicOps がシートをどこに配置したいかを決めます。予約は、サーバーにまだ上限内の余裕があるかどうかを決めます。

スケジュールをタイムゾーンに合わせる​

LicOps は、動作しているマシンから時刻を読み取ります。Docker では、タイムゾーンを指定しない限りコンテナーは UTC で動作するため、現地時刻の 08:00 のつもりで設定した期間が、数時間早く、または遅く始まることがあります。routerapi の環境変数にタイムゾーンを追加します。

- TZ=Europe/Berlin

続いて、docker compose up -d routerapi でコンテナーを再作成します。アドミッションルールの time of day 条件にも同じことが当てはまります。

有効な制限を確認する​

各サーバーの上限をシート数と並べて確認するには、可用性レポートを確認します。

curl http://localhost:8100/api/v1/admission-controller/availability

各サーバーには constraints が表示され、上限が limit(9223372036854775807 は上限が適用されていないことを示します)、その上限の範囲で LicOps が保持しているシートが held、残りが headroom として示されます。空きシートはあるのに上限までの余裕がないサーバーがあることが、リクエストが ConstraintBlocked で拒否された理由です。OpenLM LicOps を運用するを参照してください。

ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。