インスタンスとオペレーションをモニタリングする

Cloud Monitoring は、Managed Lustre インスタンスに関する情報を自動的に収集して保存します。

このドキュメントでは、 Google Cloudで Managed Lustre のモニタリングに使用できる指標の概要について詳しく説明します。これらの指標は、Managed Lustre ファイル システムのパフォーマンス、容量、健全性を把握するのに役立ちます。これにより、ボトルネックの特定、問題のトラブルシューティング、リソース使用率の最適化が可能になります。

Cloud Monitoring でこれらの指標を使用して、カスタム ダッシュボードを作成し、アラートを設定して、Managed Lustre インスタンスの動作に関する詳細な分析情報を取得できます。

Managed Lustre では、Cloud Monitoring が自動的に有効になります。Google Cloud コンソールでのデータの収集や指標の表示は無料です。API 呼び出しでは料金が発生する可能性があります。料金の詳細については、Cloud Monitoring の料金をご覧ください。

必要な IAM のロール

次のロールが必要です。

  • Cloud Monitoring で指標を表示するためのモニタリング閲覧者roles/monitoring.viewer)または同等の権限。
  • アラートを構成するためのモニタリング編集者roles/monitoring.editor)または同等の権限。

詳細は、IAM ロールの付与方法をご覧ください。

指標を表示する

Cloud Monitoring の指標は、Google Cloud コンソールの次の 2 つの場所で使用できます。

  • Managed Lustre インスタンスの詳細ページに、使用可能な指標が表示されます。このページに記載されている指標に加えて、コピーされたバイト数の帯域幅とコピーされたオブジェクトのレートが計算されます。

  • Cloud Monitoring ページには、複数のグラフ オプションとカスタマイズが用意されています。

インスタンスの詳細ページで指標を表示する

特定のインスタンスの指標を表示するには:

  1. Google Cloud コンソールの [インスタンス] ページに移動します。

    [インスタンス] に移動

  2. 指標を表示するインスタンスをクリックします。[インスタンスの詳細] ページが表示されます。

  3. [モニタリング] タブをクリックします。デフォルトのダッシュボードが表示されます。

Cloud Monitoring で指標を表示する

Cloud Monitoring で Managed Lustre の指標を表示する手順は次のとおりです。

  1. Google Cloud コンソールの [Metrics Explorer] ページに移動します。

    Monitoring の [Metrics Explorer] に移動

  2. Metrics Explorer でグラフを作成するの手順で指標を選択し、表示します。

アラートを設定する

Cloud Monitoring でアラート ポリシーを構成して、Managed Lustre ファイル システムがストレージ容量やスループットの上限を超えるなどの特定の条件を満たしたときに通知を受け取ることができます。

前提条件

アラート ポリシーを作成するには、プロジェクトに対する Monitoring 編集者roles/monitoring.editor)の IAM ロールが必要です。

アラート ポリシーを作成する

アラートを設定するには、指標または PromQL クエリを使用して条件を定義し、通知チャネルを構成します。

  1. Google Cloud コンソールで、 Google Cloud コンソールの [アラート] ページに移動します。

    [モニタリング: アラート] に移動

  2. [+ CREATE POLICY] をクリックします。

  3. [ビルダー] を選択して指標を選択するか、[コードエディタ] を選択して PromQL でクエリを入力します。指標ピッカーでは、Managed Lustre 指標は Lustre インスタンスLustre ロケーションのリソースに分類されます。

  4. トリガー ロジックを構成し、通知チャンネルと通知設定を定義します。

  5. [ポリシーを作成] をクリックします。

トリガーの作成とその他のオプションの詳細については、以下をご覧ください。

例: ストレージ容量アラートを作成する

次の例は、Managed Lustre インスタンスがプロビジョニングされた容量の 80% を超えたときにトリガーされるアラートを作成する方法を示しています。

  1. Google Cloud コンソールで、 Google Cloud コンソールの [アラート] ページに移動します。

    [モニタリング: アラート] に移動

  2. [+ CREATE POLICY] をクリックします。

  3. [コードエディタ] を選択します。

  4. クエリエディタに、次の PromQL クエリを貼り付けます。

    (
      sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes)
      -
      sum by (instance_id, location) (lustre_googleapis_com:instance_available_bytes)
    )
    /
    sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes)
    > 0.8
    

    このクエリは、すべてのインスタンスの利用率 (Total - Available) / Total を計算します。値 0.8 は、使用率が 80% に達した合計バイト数を表します。90% でアラートを表示するには、この値を 0.9 に変更します。

  5. [クエリを実行] をクリックして構文を確認し、現在の使用率のグラフを表示します。

  6. [次へ] をクリックして、トリガーを [Any time series violates] に構成します。

  7. [次へ] をクリックします。[ドキュメント] セクションで、容量の問題を解決するための推奨される対応策を追加します。次に例を示します。

    ## Action Required: Lustre Capacity Warning
    The Managed Lustre instance is exceeding 80% capacity usage.
    
    **Metric:** Usage Ratio > 0.8
    **Severity:** Warning
    
    **Recommended Actions:**
    1. Check the instance details in the Google Cloud console.
    2. Verify if this is expected data growth or a runaway process.
    3. If valid, consider expanding the storage capacity of the instance or deleting old data to free up space.
    4. Failure to address this may result in "No Space Left on Device" errors for client applications.
    

gcloud を使用してアラート ポリシーを作成する

Google Cloud CLI を使用してアラート ポリシーを作成できます。特定の通知チャネルを有効にするには、後で Google Cloud コンソールでアラートを編集する必要があります。

次の例では、gcloud を使用して容量 80% のアラートを作成します。

gcloud monitoring policies create \
  --policy-from-file=/dev/stdin <<EOF
{
  "displayName": "Lustre High Capacity Usage (>80%)",
  "severity": "WARNING",
  "combiner": "OR",
  "conditions": [
    {
      "displayName": "Capacity Usage Ratio > 0.8",
      "conditionPrometheusQueryLanguage": {
        "query": "(sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes) - sum by (instance_id, location) (lustre_googleapis_com:instance_available_bytes)) / sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes) > 0.8",
        "duration": "300s",
        "evaluationInterval": "60s",
        "alertRule": "AlwaysOn"
      }
    }
  ],
  "documentation": {
    "content": "Action Required: The Managed Lustre instance is exceeding 80% capacity usage. Please verify if storage expansion is required.",
    "mimeType": "text/markdown"
  }
}
EOF

指標の詳細

Managed Lustre の指標は、次のモニタリング対象リソースタイプに関連付けられています。

  • lustre.googleapis.com/Instance
  • lustre.googleapis.com/Job
  • lustre.googleapis.com/QuotaEntity

データは 60 秒ごとにサンプリングされます。サンプリング後、データは最長 180 秒間表示されないことがあります。

ストレージ容量の指標

Lustre ファイル システムで利用可能およびプロビジョニングされたストレージ容量に関連する指標。

指標ラベルの場合、target の値は <fsname>-<TYPE><HEXA> 形式を使用します。ここで、<HEXA> はターゲットの 0 から始まるインデックス(16 進数)です。たとえば、ファイル システム名が filesys、43 番目の OST が filesys-OST002a、4 番目の MDT が filesys-MDT0003 の場合です。

ストレージ容量指標は lustre.googleapis.com/Instance リソースに関連付けられます。

指標 説明 詳細
available_bytes 特定の Object Storage Target(OST)または Metadata Target(MDT)のストレージ容量のうち、root 以外のユーザーが使用できるバイト数。 表示名: 使用可能なバイト数
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
component: ターゲット タイプ(ostmdtmgt)。
target: ターゲットの名前。
capacity_bytes 指定されたターゲットにプロビジョニングされたバイト数。インスタンスのクラスタで使用可能なデータまたはメタデータ スペースの合計容量は、特定のタイプのターゲットのすべてのターゲットの容量を加算することで取得できます。 表示名: 容量(バイト単位)
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
component: ターゲット タイプ: ostmdtmgt
target: ターゲットの名前。
free_bytes 特定の OST または MDT のストレージ容量のうち、root ユーザーが使用できるバイト数。 表示名: 空きバイト数
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
component: ターゲット タイプ: ostmdt、または mgt
target: ターゲットの名前。

Inode(オブジェクト)指標

使用可能な inode(オブジェクト)の数と最大容量に関連する指標。

Inode 指標は lustre.googleapis.com/Instance リソースに関連付けられています。

指標 説明 詳細
inodes_free 指定されたターゲットで使用可能な inode(オブジェクト)の数。 表示名: 空き inode
指標の種類: GAUGE
値の型: INT64
単位: inodes
ラベル:
component: ターゲット タイプ。
target: ターゲットの名前。
inodes_maximum ターゲットが保持できる inode(オブジェクト)の最大数。 表示名: 最大 inode
指標の種類: GAUGE
値の型: INT64
単位: inode
ラベル:
component: ターゲット タイプ。
target: ターゲットの名前。

I/O パフォーマンス指標

データ転送率とオペレーション レイテンシに関する分析情報を提供する指標。

I/O パフォーマンス指標は lustre.googleapis.com/Instance リソースに関連付けられています。

指標 説明 詳細
io_time_milliseconds_total レイテンシがバケット化されたレイテンシ範囲内にある読み取りまたは書き込みオペレーションの数。 表示名: オペレーション レイテンシ
指標の種類: CUMULATIVE
値の型: INT64
単位: オペレーション
ラベル:
component: ターゲット タイプ。
operation: オペレーション タイプ。
size: バケット化されたレイテンシ範囲。たとえば、512 には、512 ~ 1, 024 ミリ秒かかったオペレーションの数が含まれます。
target: ターゲットの名前。
read_bytes_total 指定された OST から読み取られたデータバイト数。 表示名: 読み取りバイト数
指標の種類: CUMULATIVE
値の型: INT64
単位: バイト
ラベル:
component: ターゲット タイプ。常に ost
operation: オペレーション タイプ(read)。
target: ターゲットの名前。
read_samples_total 指定された OST で実行された読み取りオペレーションの数。 表示名: データ読み取りオペレーション
指標の種類: CUMULATIVE
値の型: INT64
単位: オペレーション
ラベル:
component: ターゲット タイプ。常に ost
operation: オペレーション タイプ(read)。
target: ターゲットの名前。
write_bytes_total 指定された OST に書き込まれたデータバイト数。 表示名: データ書き込みバイト数
指標の種類: CUMULATIVE
値の型: INT64
単位: バイト
ラベル:
component: ターゲット タイプ。常に ost
operation: オペレーション タイプ(write)。
target: ターゲットの名前。
write_samples_total 指定された OST で実行された書き込みオペレーションの数。 表示名: データ書き込みオペレーション
指標の種類: CUMULATIVE
値の型: INT64
単位: オペレーション
ラベル:
component: ターゲット タイプ。常に ost
operation: オペレーション タイプ(write)。
target: ターゲットの名前。

キャッシュ指標

動的階層のインスタンスのデータ キャッシュ保存レイヤのパフォーマンスと使用率に関する分析情報を提供する指標。

キャッシュ指標は lustre.googleapis.com/Instance リソースに関連付けられています。

指標 説明 詳細
cache/read_hits 特定のターゲットの読み取りヒット数。 表示名: キャッシュ読み取りヒット数
指標の種類: CUMULATIVE
値の型: INT64
単位: 1
ラベル:
target: ターゲットの名前。
cache/read_misses 特定のターゲットの読み取りミス数。 表示名: キャッシュ読み取りミス
指標の種類: CUMULATIVE
値の型: INT64
単位: 1
ラベル:
target: ターゲットの名前。

クライアント接続の指標

クライアント接続を把握するための指標。

クライアント接続指標は lustre.googleapis.com/Instance リソースに関連付けられています。

指標 説明 詳細
connected_clients 指定された MDT に現在接続されているクライアントの数。 表示名: 接続されたクライアント
指標の種類: GAUGE
値の型: INT64
単位: クライアント
ラベル:
component: ターゲット タイプ。これは常に mdt です。
target: MDT の名前。

ファイル システムの割り当て指標

ファイル システムの割り当て指標を使用すると、特定のユーザー、グループ、プロジェクトのストレージと inode の使用量をモニタリングできます。これらの指標を使用して、ファイル システムで構成されたソフト制限とハード制限に対する現在の使用状況を追跡します。

ファイル システムの割り当て指標は、lustre.googleapis.com/QuotaEntity モニタリング対象リソースに関連付けられています。

指標 説明 詳細
used_bytes ユーザー、グループ、プロジェクトで現在使用されている合計バイト数。 表示名: 使用済み割り当てバイト数
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
accounting_type: usergroupproject のいずれか。
id: ユーザー、グループ、プロジェクトの数値 ID。
target: Lustre ターゲット デバイスの名前。
soft_limit_bytes 猶予期間が開始されるストレージ使用量のしきい値。猶予期間の終了後も使用量がこの上限を超えている場合、この上限は強制的なハード上限になります。 表示名: 割り当てのソフト上限(バイト単位)
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
accounting_type: usergroupproject のいずれか。
id: ユーザー、グループ、プロジェクトの数値 ID。
target: Lustre ターゲット デバイスの名前。
hard_limit_bytes ユーザー、グループ、プロジェクトに許可される最大ストレージ使用量。この上限を超える書き込みは拒否されます。 表示名: 割り当てのハード上限(バイト単位)
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
accounting_type: usergroupproject のいずれか。
id: ユーザー、グループ、プロジェクトの数値 ID。
target: Lustre ターゲット デバイスの名前。
used_inodes ユーザー、グループ、プロジェクトで現在使用されている inode(ファイル レコード)の合計数。 表示名: 使用済み割り当て inode
指標の種類: GAUGE
値の型: INT64
単位: Count
ラベル:
accounting_type: usergroupproject のいずれか。
id: ユーザー、グループ、プロジェクトの数値 ID。
target: Lustre ターゲット デバイスの名前。
soft_limit_inodes 猶予期間を開始する inode 使用量のしきい値。猶予期間の終了後も使用量がこの上限を超えている場合、この上限は強制的なハード上限になります。 表示名: 割り当てのソフト上限 inode
指標の種類: GAUGE
値の型: INT64
単位: Count
ラベル:
accounting_type: usergroupproject のいずれか。
id: ユーザー、グループ、プロジェクトの数値 ID。
target: Lustre ターゲット デバイスの名前。
hard_limit_inodes ユーザー、グループ、プロジェクトに許可される inode の最大数。この上限を超えるファイル作成は拒否されます。 表示名: 割り当てのハード上限 inode
指標の種類: GAUGE
値の型: INT64
単位: Count
ラベル:
accounting_type: usergroupproject のいずれか。
id: ユーザー、グループ、プロジェクトの数値 ID。
target: Lustre ターゲット デバイスの名前。

Jobstats 指標

クライアントで構成された JobID ごとの読み取り、書き込み、メタデータの統計情報を提供する指標。

これらの指標を収集するには、lctl を使用して Lustre クライアントの jobid_var パラメータを構成します。詳細については、Lustre Jobstats をご覧ください。

特定の識別子(procname_uid など)をレポートするようにクライアントを構成するには、lctl set_param jobid_var コマンドを使用します。

lctl set_param jobid_var=procname_uid

Jobstats 指標は lustre.googleapis.com/Job リソースに関連付けられています。

指標 説明 詳細
read_bytes_total ジョブによって読み取られた合計バイト数。 表示名: ジョブ別の読み取りバイト数
指標の種類: CUMULATIVE
値の型: INT64
単位: バイト
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
write_bytes_total ジョブによって書き込まれた合計バイト数。 表示名: ジョブ別のデータ書き込みバイト数
指標の種類: 累積
値の型: INT64
単位: バイト
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
metadata_operations_total ジョブによって実行されたメタデータ オペレーションの合計数。 表示名: ジョブ別のメタデータ オペレーション
指標の種類: CUMULATIVE
値の型: INT64
単位: オペレーション
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
read_samples_total ジョブによって実行された読み取りオペレーションの合計数。 表示名: ジョブ別のデータ読み取りオペレーション
指標の種類: CUMULATIVE
値の型: INT64
単位: オペレーション
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
write_samples_total ジョブによって実行された書き込みオペレーションの合計数。 表示名: ジョブ別のデータ書き込みオペレーション
指標の種類: CUMULATIVE
値の型: INT64
単位: オペレーション
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
read_maximum_size_bytes ジョブによる読み取りオペレーションの最大サイズ(バイト単位)。 表示名: ジョブ別のデータ読み取り最大サイズ
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
read_minimum_size_bytes ジョブによる読み取りオペレーションの最小サイズ(バイト単位)。 表示名: ジョブ別のデータ読み取り最小サイズ
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
write_maximum_size_bytes ジョブによる書き込みオペレーションの最大サイズ(バイト単位)。 表示名: ジョブ別のデータ書き込みの最大サイズ
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。
write_minimum_size_bytes ジョブによる書き込みオペレーションの最小サイズ(バイト単位)。 表示名: ジョブ別の最小データ書き込みサイズ
指標の種類: GAUGE
値の型: INT64
単位: バイト
ラベル:
job_id: クライアントから送信された JobID。
component: ターゲット タイプ。
target: ターゲットの名前。
instance_id: Managed Lustre インスタンスの ID。