SAS Cloud Analytic Services: コンセプト

CASコントローラー

コントローラーは、SAS Cloud Analytic Services (CAS)のポッドに割り当てることができる役割の1つです。コントローラー、バックアップコントローラー、ワーカーという3つの役割があります。両方のサーバーアーキテクチャ(MPPとSMP)の場合、1つのポッドにコントローラー役割が割り当てられます。サーバーが起動すると、コントローラープロセスが開始されます。このプロセスは、サーバーコントローラーと呼ばれることもあります。コントローラーはクライアントからの接続を受け入れます。

単一ノードCASサーバー

単一ノードアーキテクチャでは、対称型マルチプロセッシング(SMP)が使用されます。単一ノードサーバーの機能は、クラスター通信がないことを除いて、MPPとほぼ同じです。このアーキテクチャでは、サーバーはコントローラーとして機能します。クライアントが接続する前に、サーバーはポートで接続をリッスンします。

クライアントが接続すると、セッションが作成され、セッションはクライアントに接続し直します。(これは、MPPを使用するCASサーバーによって実行される方法と同じです)。詳細については、単一マシンサーバー (SAS Cloud Analytic Servcies: 基本)を参照してください。

CASバックアップコントローラー

SAS Cloud Analytic Services (CAS)バックアップコントローラー(セカンダリコントローラーとも呼ばれる)は、CASコントローラーにフォールトトレランスを提供します。バックアップコントローラーは、分散サーバーアーキテクチャでのみ使用されます。バックアップコントローラーの配置はオプションです。CASは1つのバックアップコントローラーのみをサポートします。

注: バックアップコントローラーでCASを操作するための要件は、CASとCASコントローラー(プライマリコントローラー)の両方が同じ共有ファイルシステムを使用することです。

CASが開始すると、バックアップコントローラープロセスも開始されます。コントローラーで中断が発生した場合(ネットワーク接続が失われたり、ディスクがいっぱいになったりした場合など)、バックアップコントローラーによってCASサーバーの実行を継続できます。バックアップコントローラーがクライアント通信を制御する場合、転送はシームレスです。詳細については、アーキテクチャ (SAS Cloud Analytic Servcies: 基本)を参照してください。

CASワーカー

サーバーが超並列処理(MPP)モードで実行されている場合、サーバーには、コントローラーに加えて、ワーカー役割が割り当てられた複数のポッドも含まれます。

コントローラーは各ワーカーポッドへの作業を解析します。各ワーカーポッドは、その計算結果をコントローラーに送り返します。詳細については、アーキテクチャ (SAS Cloud Analytic Servcies: 基本)を参照してください。

CASサーバーのサイジング

SAS管理者やKubernetesの管理者特権を持つ管理者は、CASのサイジングについて概要を把握しておく必要があります。サイジングに関する予備見積もりを作成するプロセスには、次のような処理が含まれます。

  • 配置された環境でCPUとRAMの割り当ておよびポッドの数を記録することにより、各オファリングのベースライン配置データを収集します。
  • 適切なCAS、Compute、およびストレージサイジングの推奨事項を定義します。CAS、Compute、およびデータインフラストラクチャのサイジングを決定するための重要なポイントは次のとおりです。
    • SMPとMPPの配置
    • データサイズ(データセットまたはテーブルの数、使用されるデータの量)
    • ユーザー数
    • CASサーバーには、コントローラーとワーカーごとにQoSが保証された専用ノードが必要です。

詳細については、次を参照してください。

CASテーブルのリバランシング

この機能により、ユーザーは、実行中のCASサーバー上の分散CASサーバー(MPP)によってサポートされるワーカーの数を変更できます。これは、CASサーバーを維持するためのクラウド費用を管理し、予想されるワークロードに対してCASサーバーを'適切なサイズ'に保つのに役立ちます。

注: この機能は、MPP CASを有効にする配置にのみ適用されます。

重要なポイント:

  • ワーカーの数を変更するには、Change the Number of Workers for MPP CAS (SAS Viya Platform: Deployment Guide)を参照してください。ワーカー数の値が変更されると、サーバーは各セッションがアクション境界に達するとすべてのセッションを一時停止し、ロードされたテーブル内のデータをリバランスできるようにします。ロードされたテーブルのリバランシングを有効にするには、テーブルリバランシングを有効にするを参照してください。
  • サーバーは、すべてのセッションがアクション境界に達するまで待機します。ワーカーの数を増減するためにサーバーが待機する最大時間は、それぞれ、オプションremoveNodeCancelTimeoutとaddNodeCancelTimeoutによって制御されます。どちらのオプションのデフォルト値も120秒です。

    このタイムアウトが経過しても、いずれかのセッションがまだアクションを実行している場合、これらの実行中のアクションは中断され、2回目のタイムアウト以内に完了することができます。2回目のタイムアウトは、オプションremoveNodeKillTimeoutとaddNodeKillTimeoutで指定され、それぞれワーカーの数が増減します。どちらのオプションのデフォルト値も15秒です。

    2回目のタイムアウトが経過すると、アクションを実行中のセッションはすべて終了します。

  • CASサーバーは、次の要因に応じて新しいアクションを開始できません。
    • すべてのセッションのアクションがアクション境界に達するのを待機している間
    • ワーカー数の変化をサポートするためにワーカー間でデータを移動している間
      注: ワーカーの数が適時に変更されるように、removeNodeCancelTimeout、addNodeCancelTimeout、removeNodeKillTimeout、addNodeKillTimeoutオプションに適切な値を設定すると、アクティブなアクションが中断されないようにする必要があります。

      ワーカーの数が減少した場合、ロードされたテーブルのデータは、終了するようにマークされていないワーカーポッドにリバランスされます。cas.SCALEDOWNMODEオプションは、グローバルテーブル内でデータを移動する方法を制御します。

      Kubernetes管理者は、CASDeploymentカスタムリソースの spec.workersを変更する前に、ラベルcasoperator.sas.com/scaleDownProposedを適用することで、終了させるワーカーポッドを選択できます。このラベルが付いたワーカーポッドは、このラベルのないワーカーポッドよりも前に終了するように常に選択されます。

      たとえば、管理者がワーカー数を12から8にスケールダウンしたい場合、このラベルは4つの特定のワーカーポッドに適用されます。spec.workersの値が12から8に変更されると、このラベルが付けられたワーカーポッドが終了します。

      ワーカーの数が増加した場合、ロードされたテーブルのデータは、構成に応じて、新しいワーカーのセット全体でリバランスされる場合とされない場合があります。

CAS状態転送

CAS状態転送は、SAS Viya内の更新や再起動など、CASサーバーのメンテナンス操作中の中断を最小限に抑えるのに役立つ機能です。これにより、セッション状態、データ、およびその他の関連する成果物を古いCASサーバーインスタンスから新しいCASサーバーインスタンスにシームレスに転送し、継続性を確保し、ユーザーのダウンタイムを最小限に抑えることができます。

Key Points

  • CAS状態転送は、新しいCASサーバーインスタンスに遷移するときに、セッション、テーブル、CASLIB、アクセス許可を含む実行中のCASサーバーの状態を保持するプロセスです。これにより、CASデータの可用性が維持され、再起動や更新などのCASサーバーのライフサイクル操作による影響を最小限に抑えられます。
  • 状態転送を有効にすると、古いインスタンスが引き続き実行されている間に、新しいCASサーバーインスタンスが起動されます。グローバル状態とセッションデータは、古いCASサーバーインスタンスから新しいCASサーバーインスタンスに転送されます。転送が完了すると、古いCASサーバーは終了します。
  • 転送プロセス中、グローバルテーブルとその他の状態コンポーネントは、STATETRANSFERMODELオプションがデフォルトで'読み取り専用'に設定されているため、'読み取り専用'にマークされます。これにより、転送中もグローバル状態の一貫性が維持されますが、転送が完了するまでデータを変更する機能は制限されます。詳細については、 cas.STATETRANSFERMODEL構成オプションを参照してください。

Usage of CAS State Transfer

  • 新しいSAS Viyaバージョンにアップグレードするときは、CAS状態転送を使用すると、セッションの継続性が維持され、完全なシャットダウンが回避されます。
  • CAS状態転送を使用して、CASサーバーを新しいノードのセットに移動し、元のノードのセットをシャットダウンまたは更新できるようにします。
  • CAS状態転送を使用して、CASサーバーをSMPモードとMPP モードの間に移行します。

Prerequisites to Enable CAS State Transfer

リソースプランニング:

転送中に、KubernetesクラスターにCPU、メモリ、ストレージなどの十分なリソースがあることを確認します。クラスターは、通常CASサーバーで使用されるリソースの2倍をサポートできる必要があります。

CAS用に専用ノードプールを構成している場合は、転送中にCASサーバーで使用されるリソースの2倍をサポートするように、ノードプールが自動スケールに設定されていることを確認してください。

CAS 状態転送の有効化:

Enable State Transfer for CAS Servers (SAS Viya Platform: Deployment Guide)を参照してください。READMEファイルの指示に従ってください。

CASサーバーの更新または再起動を開始する前に、すべてのCASサーバー構成とKubernetesリソースが状態転送の準備ができていることを確認して、状態転送の準備を確認します。

注: CASサーバーのポッド名は、各状態転送中にcasoperator.sas.com/instance-index値に基づいて変更されることに注意してください。CASサーバーポッドと対話するスクリプトまたはモニタリングツールをこれらの変更に対応するように更新します。

Different Stages during CAS State Transfer

開始:

次のCASサーバー用のKubernetesポッドが作成されます。これらのポッドが初期化されている間、既存のCASサーバーは完全に機能します。

読み取り専用状態:

プロモートされたテーブル、グローバルテーブル、caslib内のデータを含む、サーバーのグローバル状態は読み取り専用としてマークされます。データを読み取るアクションは続けることができますが、グローバル状態を変更しようとするアクションは失敗します。この状態は、STATETRANSFERMODELオプションが'readonly'に設定されている場合にのみ存在します。このオプションが'suspend'に設定されている場合、グローバルテーブルデータの転送中はサーバーを使用できません。

セッションテーブル転送:

セッション状態とセッションテーブルが古いCASサーバーから新しいCASサーバーに転送されている間、CASサーバーはアクションを処理したり、新しい接続を受け入れたりすることができません。このステージの長さは、MAXSESSIONTRANSFERSIZEオプションを使用して管理できます。

終了処理:

すべてのデータと状態情報が転送されると、古いCASサーバーが終了し、新しいCASサーバーが完全に動作するようになります。

CASメモリ割り当てのバッキングストア

一般に、CASがメモリを割り当てると、スレッドカーネルから割り当てられたメモリが使用されます。ページは、実メモリまたは構成されたページングファイルによってバックアップされます。Kubernetes構成のほとんどについては、コンテナーに構成されたページングファイルが含まれないため、CASによって割り当てられたメモリは実メモリによってバックアップされます。これにより、CASセッションプロセスがLinux Out-Of-Memory (OOM) Killerによって強制終了される確率が高くなります。Kubernetesバージョン1.28では、CASポッド内で処理されるCASセッションがOOM Killerによって強制終了されると、他のすべてのCASセッションプロセスとその同じcgroupのメインのCASプロセスも強制終了されます。Kubernetesは必ずしもポッドを終了するわけではありません。かわりに、再起動ポリシーの指示に従ってコンテナーを再起動しようとします。CASのSMP配置では、これによりCASサーバー全体が実質的に再起動され、データの可用性とユーザーアクセスが大幅に中断されます。

メモリ割り当てをサポートするようにバッキングストアを設定できます。バッキングストアは、指定されたディレクトリ内のファイルを使用してメモリ割り当てのほとんどをバックアップできることをスレッドカーネルに通知します。バッキングストアを使用するようにCASを構成するには、CASコンテナー内の環境変数TK_BACKING_STORE_DIRを、スレッドカーネルがマッピングファイルを保存するディレクトリの名前(/cas/tkMemory)に設定します。配置が2024.09または2024.10の場合は、メモリ割り当て用のバッキングストアの構成を参照してください。

2024.11では、パッチトランスフォーマーの.yamlファイルを使用して4つの異なるシナリオでバッキングストアを有効にできます。詳細については、Configure a Backing Store for Memory Allocations (SAS Viya Platform: Deployment Guide)を参照してください。

メモリにバックアップされるemptyDirボリュームの作成では、ボリュームの最大サイズを指定できます。実メモリによってバックアップされた24GBのスペースを提供するポッドのspec.volumesのエントリを示す例を次に示します。

- name: tk-backing-store
  emptyDir:
    medium: Memory
    sizeLimit: 24Gi

これで、CASコンテナーにマウントできます。

- name: tk-backing-store
  mountPath: /cas/tkMemory

この結果、ディレクトリ/cas/tkMemoryがCASコンテナーに存在するようになり、ファイルは最大メモリサイズ制限24GBの実メモリによってバックアップされます。

注: バッキングストアをノードにインストールされているメモリの約80%に設定すると、ほとんどの状況でメモリ不足の強制終了を防ぐのに効果があると考えられます。構成によってノードに複数のCASポッドが配置されるシナリオでは、コンテナーメモリ制限と同様の割合を使用します。

大きすぎる値を選択しても、メモリ不足の状況は回避できません。

ファイルは、次の操作の直後にリンク解除されます。

  • CASセッションプロセスが終了すると、スレッドカーネルメモリのバックアップに使用されるすべてのファイルが解放されます。
  • ファイルのコンテンツには、そのファイルを作成したプロセスのみがアクセスできます。

リソース管理

CASリソース管理が有効になっている場合、セッションを開始したユーザーの優先順位グループが検索され、グループの後に名前が付けられた構成済みバッキングストアのサブディレクトリが使用されて、そのプロセスのスレッドカーネルメモリがサポートされます。優先順位の割り当ての詳細については、CASリソース管理ポリシーを参照してください。前の例では、次のディレクトリが作成され、スレッドカーネルメモリに使用されます。

  • /cas/tkMemory/1
  • /cas/tkMemory/2
  • /cas/tkMemory/3
  • /cas/tkMemory/4
  • /cas/tkMemory/5
注: 通常、グループ1-5のみが存在します。名前が異なる場合は、名前の最初の文字のみがサブディレクトリ名として使用されます。

CASリソース管理が有効になっている場合、そのグループで使用されるメモリ量にグループごとに制限を設けることで、さまざまなバッキングストアボリュームをさまざまなサブディレクトリに割り当てることもできます。

5つの優先順位グループの合計メモリを個別に制約した後のCASDeploymentカスタムリソースのエントリは次のようになります。

ポッドのボリューム:

- name: tk-backing-store-1
  emptyDir:
    medium: Memory
    sizeLimit: 256Gi
- name: tk-backing-store-2
  emptyDir:
    medium: Memory
    sizeLimit: 256Gi
- name: tk-backing-store-3
  emptyDir:
    medium: Memory
    sizeLimit: 128Gi
- name: tk-backing-store-4
  emptyDir:
    medium: Memory
    sizeLimit: 64Gi
- name: tk-backing-store-other
  emptyDir:
    medium: Memory
    sizeLimit: 32Gi

CASコンテナーのボリュームマウント:

- name: tk-backing-store-1
  mountPath: /cas/tkMemory/1
- name: tk-backing-store-2
  mountPath: /cas/tkMemory/2
- name: tk-backing-store-3
  mountPath: /cas/tkMemory/3
- name: tk-backing-store-4
  mountPath: /cas/tkMemory/4
- name: tk-backing-store-other
  mountPath: /cas/tkMemory
注:
  • メモリ不足状態を避けるために、これらのすべてのボリュームの合計サイズ制限は、ノードにインストールされている合計メモリよりも小さくする必要があります。
  • すべてのユーザーに対してデフォルトの優先順位グループを設定すると、すべてのユーザーセッションのバッキングストアディレクトリが指定されたディレクトリのサブディレクトリに確保されます。
  • リソース管理を有効にした配置では、リソースグループごとに個別のバッキングストアを確立する必要はありません。これらの配置では、より単純な単一コンテナーワイドボリュームを使用できます。

CAS役割

スーパーユーザー役割

スーパーユーザーは、すべてのCAS権限要件が免除されます。スーパーユーザーには、次の基準を満たすloadTableアクションを除き、Select許可の要件が適用されます。

  • loadTableアクションでは、データをクロスロードしません(ソースcaslibとは異なるターゲットcaslibにロードします)。
  • loadTableアクションでは、データをクロスプロモートしません(ソースcaslibとは異なるcaslibにプロモートします)。
  • loadTableアクションでは、ロードにWHERE句を指定しません。
  • loadTableアクションでは、ロードにVARS=リストを指定しません。
注: デフォルトでは、この役割が割り当てられているユーザーは、メタデータへのアクセス許可免除アクセス権を持ちます。ただし、データ(CASライブラリ)へのアクセス許可免除アクセス権はありません。この役割を持つユーザーにデータへのアクセス許可免除アクセス権を与えるには、明示的にアクセス権を付与するようにアクセスコントロールを変更する必要があります。

スーパーユーザーはすべてのタスクを実行できます。次のタスクは、スーパーユーザーのみが実行できます。

SAS Environment Managerでは、初期の時点でまたは自動的に仮想スーパーユーザーが与えられることはありません。CASサーバーのスーパーユーザー役割のメンバーである場合、そのサーバーの仮想の役割を明示的に与えられることで、スーパーユーザーになることができます。たとえば、アクセスの問題をトラブルシューティングして解決するために、仮想の役割が与えられる場合があります。問題が解決したら、役割を放棄します。

CASサーバーを起動するアカウントは、そのサーバーのスーパーユーザー役割に自動的に割り当てられます。各CASサーバーに他のスーパーユーザーが少なくとも1つ指定されていることを確認してください。

スーパーユーザー役割の初期メンバーシップは次のとおりです。

  • SAS管理者
  • サーバーのプロセス所有者
  • バックアップ管理者(sas.deploymentBackup)
  • レポート配信サービス管理者アカウント(sas.reportDistribution)
  • レポートイメージサービス管理者アカウント(sas.reportImages)
  • スケジューラサービス管理者アカウント(sas.scheduler)
  • レポートアラートサービス管理者アカウント(sas.reportAlerts)
  • CAS出力形式サービス管理者(sas.casFormats)
  • VSDサービス管理者アカウント(sas.svi-vsd-service)
  • 分析ゲートウェイサービスグループ(analyticsGatewayProviders)
  • リレーションシップサービス(sas.relationships)
  • データ選択サービス(sas.dataSelection)
  • データ品質サービス(sas.dataQuality)
  • ヘルスコホートサービス(sas.healthCohort)

データ役割

スーパーユーザー役割の機能のサブセットが提供されます。データ管理者は、データオブジェクトのすべてのCAS権限要件を免除されます。例外として、次の基準を満たすloadTableアクションを除いて、データ管理者にはSelect許可の要件が適用されます。

  • loadTableアクションでは、データをクロスロードしません(ソースcaslibとは異なるターゲットcaslibにロードします)。
  • loadTableアクションでは、データをクロスプロモートしません(ソースcaslibとは異なるcaslibにプロモートします)。
  • loadTableアクションでは、ロードにWHERE句を指定しません。
  • loadTableアクションでは、ロードにVARS=リストを指定しません。

データ管理者とスーパーユーザーのみ次のタスクを実行できます。

重要 ほとんどの配置では、データ役割を使用する理由はありません。データ管理に必要な権限は、アクセス許可とcaslib管理権限の付与から取得できます。特定の管理タスクを実行する機能を持たない、アクセス許可が免除されたメタデータへのアクセス権(スーパーユーザーなど)をユーザーに付与する場合にのみ、ユーザーをデータ役割に割り当てます。データ役割を使用する場合は、コマンドラインインターフェイスまたはSAS Environment Managerを使用してメンバーを割り当てることはでません。かわりに、 operAdminMdアクションを使用して、役割メンバーを割り当てます。

アクション役割

スーパーユーザー役割の機能のサブセットが提供されます。アクション管理者は、アクションセットおよびアクションオブジェクトのCAS権限要件を免除されます。

この役割は使用しないでください。すべてのインターフェイスがアクション役割をサポートしているわけではありません。この役割は将来非推奨となる可能性があります。

複数のCASサーバー

SAS Viyaプラットフォームの単一インスタンス内にCAS配置の複数のインスタンスを持つことが可能になりました。詳細については、CASサーバーの追加を参照してください。

CASサーバーを構成するものは、実行しているCAS環境の種類によって異なります。

  • 対称型マルチプロセッシング(SMP)環境では、CASサーバーはコントローラーで構成され、単一ノードで実行されます。
    複数の単一ノードCASサーバー(SMPモード)
    複数の単一ノードCASサーバー(SMPモード)
  • 超並列処理(MPP)環境では、分散CASサーバーは、1つのコントローラー、1つ以上のワーカー、および1つのバックアップコントローラー(オプション)で構成され、それぞれが個別のポッドで実行されます。詳細については、分散サーバー (SAS Cloud Analytic Servcies: 基本)を参照してください。

パーソナルCASサーバー

一時的なCASサーバーであるパーソナルCASサーバーが、シングルユーザーのオンデマンドで作成されます。SAS Studioなどのアプリケーションでの開発目的では、データサイエンティストがSASセッションに対してローカルなCASサーバーを操作できるようにすることが必要になる場合があります。このサーバーの有効期間は、サーバーが関連付けられているSASセッションの有効期間と同じです。このパーソナルCASサーバーは、通常の(共有) CASサーバーと似ていますが、よりシンプルで比較的期間が短く、1人用である点が異なります。

重要なポイント:

  • パーソナルCASサーバーは、複数のユーザーがアクセスしたり共有したりすることはできません。
  • パーソナルCASサーバーは、独自の計算サーバーセッションで実行されるため、独立したサンドボックスインスタンスです。
  • パーソナルCASサーバーは、計算サーバーの実行と同じアカウントで実行されます。

パーソナルCASサーバーを設定するには、$deploy/sas-bases/overlays/sas-programming-environment/personal-cas-server/README.md (マークダウン形式の場合)または$deploy/sas-bases/docs/configuring_sas_compute_server_to_use_a_personal_cas_server.htm (HTML形式の場合)にあるREADMEファイルを参照してください。

パーソナルCASサーバーでセッションを開始するには、パーソナルCASサーバーでセッションを開始 (SAS Cloud Analytic Services: ユーザーガイド)を参照してください。

パーソナルCASサーバーと共有CASサーバーを切り替えるには、パーソナルCASサーバーと共有CASサーバーの切り替え (SAS Cloud Analytic Services: ユーザーガイド)を参照してください。

パーソナルCASサーバーの作成時に、SASWORK caslibが自動的に作成されます。SASWORK caslibは、SASセッションのWORKディレクトリを指します。SASWORKを使用して、パーソナルCASサーバーセッションと共有CASサーバーセッション間でデータを転送できます。共有CASサーバーからパーソナルCASサーバーにデータを転送するには、SAVERESULTステートメントおよびUPLOAD ステートメント (SAS Cloud Analytic Services: CASLリファレンス)およびsaveアクションをSAS Viya: System Programming Guideから参照してください。

セッションプロセス

ユーザーがクライアントを使用してサーバーに接続すると、サーバーはユーザーのセッションプロセスを開始します。その後、クライアントはセッションプロセスと通信します。

対称型マルチプロセッシングモード(SMPモード)で実行されているサーバーはコントローラーのみで構成され、サーバーはセッションコントローラープロセスのみを開始します。データの行を操作するのは、セッションコントローラープロセスです。

セッションには独自のオペレーティングシステムプロセスがありますが、サーバープロセスは引き続き実行する必要があります。サーバープロセスが終了すると、セッションプロセスも終了します。

パスリスト

CASサーバーセッションからファイルシステムパス(ホストおよび共有ファイルシステムのローカルディレクトリ)へのすべてのアクセスは、caslibを介して行われます。デフォルトでは、管理者特権を持たないすべてのユーザーに対して、デフォルトの許可リストで指定されているパスの外部にcaslibを作成する機能は拒否されます。

管理者以外がcaslibを作成または編集するときに使用できるパスを設定するには、次のいずれかの方法を使用します。

  • 使用可能なパスの事前定義された許可リストを変更します。デフォルトでは、このリストは管理者特権を持たないすべてのユーザーに対して、アクセスを拒否します。
  • 使用不可のパスの拒否リストを作成します。

    拒否リストを作成することを選択した場合、新しいリストが事前定義されている許可リストに置き換わります。

次のいずれかを使用して、CASユーザーアクセスのリストを表示および変更できます。

重要なポイントは次のとおりです。

  • パスは絶対パスにする必要があります。
  • パスは重複しないようにする必要があります。

    CASでは重複するパスは自動的に削除されます。

  • 使用できるのは許可リストまたは拒否リストのみで、それぞれを使用することはできません。
  • 拒否リストパスがシンボリックリンクに変更された場合、完全に解決されたパスを使用して拒否リストを更新する必要があります。
  • 指定された各パスのすべてのサブディレクトリが影響を受けます。
  • パスリストの制約は、既存のcaslibへのアクセスには影響しません。
  • パスリストの制約は、仮想のスーパーユーザー役割またはデータ管理者役割を得たユーザーには適用されません。
  • サーバーの仮想のスーパーユーザー役割を得たユーザーのみが、そのサーバーのパスリストを表示および管理できます。
注: サードパーティデータベースへのアクセスは、サーバーの拒否リストまたは許可リストの影響を受けません。

caslib管理権限

caslib管理権限

タスク

タスクを実行できるユーザー1

グローバルcaslibを追加します。

スーパーユーザーおよびデータ管理者。

グローバルcaslib管理権限を持つユーザー。

セッションcaslibを追加します。

スーパーユーザーおよびデータ管理者。

セッションcaslib管理権限を持つユーザー。

グローバルcaslibを削除します。

スーパーユーザーおよびデータ管理者。

グローバルcaslib管理権限を持つユーザーは、情報の読み取りおよびアクセスの管理のアクセス許可を得ているグローバルcaslibを削除できます。

セッションcaslibを削除します。

スーパーユーザーおよびデータ管理者。

セッションcaslib管理権限を持つユーザーは、情報の読み取りおよびアクセスの管理のアクセス許可を得ているセッションcaslibを削除できます。

caslib管理権限を調整します。

スーパーユーザーおよびデータ管理者。

1 グローバルcaslib管理権限は、_GLOBAL caslibのアクセスの管理のアクセス許可に対応しています。セッションcaslib管理権限は、_SESSION caslibのアクセスの管理のアクセス許可に対応しています。

関連項目

標準構成ファイル

構成ホームディレクトリには、標準名のファイルがいくつか含まれています。標準名が使用されると、サーバーはそのファイルを自動的に処理します。

構成ディレクトリは、コンテナー内の/cas/configの場所にマウントされたemptyDirボリュームです。/cas/config内のファイルの内容は、sas-cas-serverコンテナーが初期化されるときにコピーまたは生成されます。SAS管理者は、/cas/config内のファイルを変更できません。ファイルが、実行中はsas-cas-serverコンテナーの特定のインスタンスに対して一時的であるためです。

次の表に、各標準ファイルの目的と使用法を示します。

注: ファイルは、サーバーの起動時に処理される順序でリストされます。
サーバー構成ファイル

標準ファイル名

説明

casconfig.lua

このファイルにはすべてのCASサーバーインスタンスの適切なデフォルトの構成設定が含まれており、sas-cas-serverコンテナーの構築時に生成されます。

casconfig_deployment.lua

このファイルには適切なデフォルトで作成されたCAS構成設定が含まれており、sas-cas-serverコンテナーの構築時に生成されます。

conf.d/

このディレクトリには、追加のlua構成ファイルを含めることができます。

node.lua

このファイルにはホスト固有の構成設定が含まれており、変更できません。

perms.xml

このファイルには、初期のアクセス許可設定が含まれています。このファイルは、サーバーが最初に起動され、permstoreにデータが入力された後は使用されません。

cas.settings1

このファイルにはすべてのCASサーバーインスタンスの適切なデフォルトの構成設定と環境変数が含まれており、sas-cas-serverコンテナーの構築時に生成されます。

cas_container.settings

これらのファイルには、各CAS配置カスタムリソースオーバーレイに指定されたCASSET_接頭辞付きオプションが含まれています。

casconfig_container.lua

これらのファイルには、各CAS配置カスタムリソースオーバーレイに指定されたCASENV_、CASSET_、およびCASCFG_接頭辞付きオプションが含まれています。

1 /opt/sas/viya/home/SASFoundationにあるcas.settingsのグローバルバージョンがあります。CASは、cas.settingsの構成固有バージョンを処理する前に、cas.settingsのグローバルバージョンを処理します。

サーバーが起動すると、前の表で説明されている構成ファイルが処理されます。構成が完了すると、サーバーは起動スクリプトを実行します。

次の表は、構成ホームディレクトリにある起動ファイルの標準名を示しています。起動スクリプトは、サーバーがクライアント接続を受け入れる前に実行されます。これは、セッションゼロ処理とも呼ばれます。

セッションゼロは、CASサービスアカウントで実行されます。セッションゼロは、起動スクリプトの実行時にすでに仮想のスーパーユーザー役割を得ています。役割を削除しないように注意します。セッションゼロは仮想のスーパーユーザー役割を得るため、管理者のデータアクセスの制限に注意する必要があります。詳細については、スーパーユーザー役割を参照してください。

サーバー起動ファイル(セッション0処理)

標準ファイル名

説明

casstartup.lua

このファイルには、CASサーバーの起動時に実行するアクション(いくつかのaddFmtLibアクションやsetServOptアクションなど)が含まれています。これらはコンテナーに組み込まれています。

CASでは、start.d/ディレクトリにある他の起動ファイルの前にcasstartup.luaが処理されます。

start.d/

このディレクトリには、変更してはならないlua起動ファイルが含まれています。このディレクトリ内のファイルは、casstartup.luaファイルの後に処理されます。

重要 CASでは、.luaファイル拡張子を持つファイルのみが起動ファイルとして処理されます。

SAS管理者は、SAS Environment ManagerでCAS構成インスタンスを編集することで、変更可能な構成変数と環境変数を設定できます。構成インスタンスの編集を参照してください。

CASリソース管理

概要

具体的には、SAS Viyaプラットフォームのコマンドラインインターフェイスで作成したポリシーを使用して、リソース管理を実装できます。CASリソース管理は、特定のサーバーに適用されるポリシーまたはサーバーオプションを使用して、CASサーバーで実現されます。リソースを管理する追加のCASサーバーがある場合は、それぞれに固有のポリシーまたはサーバーオプション定義を作成する必要があります。クライアント側でステップを実行する必要はありません。

ヒントCAS Javaクライアントは、サーバーから返されるすべてのエラー(リソース不足によるエラーを含む)をすでに処理しています。ただし、Javaクライアントは、SESSION_TABLE_QUOTA_EXCEEDEDとGLOBAL_CASLIB_QUOTA_EXCEEDEDという2つのステータスコード値を確認することで、CASテーブルクォータの障害を具体的にテストできます。これらのJava定数はどちらもcom.sas.actions.StatusCodesクラスにあります。これらの定数を、CASExceptionのgetStatusCode()によって返された値と比較します。

ポリシーの詳細

CASリソース管理ポリシーに関する主な詳細は次のとおりです。

  • リソース管理ポリシーを作成および管理するには、CASスーパーユーザー権限が必要です。
  • 単一ノード(SMP)と分散(MPP)CASサーバーの両方でサポートされます。
    重要 CASがリソース管理ポリシーを使用するには、環境変数env.CAS_ENABLE_CONSUL_RESOURCE_MANAGEMENTをオンにする必要があります。詳細については、env.CAS_ENABLE_CONSUL_RESOURCE_MANAGEMENTを参照してください。
  • ポリシーはCASサーバーに固有です。
  • ポリシーの制限は、分散CASサーバーのマシンごとに適用されます。
  • ポリシーはSAS Viyaプラットフォームのコマンドラインインターフェイスを介して管理され、デフォルトではオフになっています。
    ヒントCASコマンドラインインターフェイスを使用すると、独自のCASリソース管理ポリシーを作成するための開始点として機能するポリシーテンプレートを作成できます。詳細については、Create Policies from JSON Templates (SAS Viya Platform: Using the Command-Line Interface)を参照してください。
  • CASでは、ポリシーがキーと値のペアとしてSAS Configuration Server (Consul)に保存されます。
  • SAS管理者は、Consulにクエリして現在の設定を確認し、ポリシーをモニターできます。
  • すべてのConsulの設定は、メンテナンスの更新後も維持されます。

ポリシーの機能

管理者は、SAS Viyaプラットフォームのコマンドラインインターフェイスを使用してポリシーを作成します。このインターフェイスでは、ポリシーがキーと値のペアとしてSAS Configuration Server (Consul)に保存されます。

ポリシーには次の2種類があります。

  • グルーバルcaslib (globalCaslibs)

    CASサーバーごとに1つずつあるポリシーで、グローバルcaslibに領域クォータを配置するために使用されます。

  • 優先度レベル(CAS-server-name-priority-n)

    CASサーバーごとに最大5つずつあるポリシーで、テーブルデータに領域クォータを配置するために使用されます。

ポリシーが定義されている場合、CASサーバーはポリシー情報を構成サーバーから直接読み取ります。CASでは、グローバルcaslibに対する1つのポリシーと、サイトでのリソース割り当てが可能な最大5つの優先順位レベルポリシーが提供されます。管理者は、IDグループメンバーシップに基づいてこれらの優先度レベルポリシーにユーザーを割り当てたり、個々のユーザーに明示的に優先度レベルポリシーを割り当てたりすることができます。

CASポリシーの機能
CASポリシーの機能

CASには、CASサーバーの名前で始まるユーザーグループ名をCASリソース管理に関連するグループとして認識するビルトイン機能があります。ユーザーが認証を受けて新しいセッションを作成すると、CASは常にユーザーのIDグループをスキャンして、リソース管理ユーザーグループ名を検索します。ユーザーがリソース管理ユーザーグループ(名前がCASサーバー名で始まるグループ)に属していることがCASで検出された場合、CASはグループ名をリソース管理ポリシーのリストと照合しようとします。

この動作に基づいて、管理者はSAS Environment Managerで同じ名前を使用して対応するカスタムグループを作成し、適切なユーザー名をそのグループに追加できます。

ユーザーが複数のリソース管理グループのメンバーである場合、CASは最も低い優先順位番号を割り当てます。ユーザーがリソース管理グループのメンバーでない場合、CASはポリシー定義のpriorityAssignmentsセクションでユーザーの明示的な割り当てを検索します。ユーザーがリソース管理グループのメンバーではなく、ユーザーに優先順位レベルが割り当てられていない場合、そのユーザーには制限がありません。

構成プロパティ: cas-shared-defaultサービス

contents

指定された構成インスタンスの内容。指定したオプションは、正確であるかは検証されません。詳細については、構成インスタンスの編集を参照してください。

name

サーバーで重複しない構成インスタンス名が含まれています。SASテクニカルサポートが変更するように指示しない限り、この値を変更しないでください。

最終更新: 2026年7月31日