Azure NetApp Files NFSv 4.1 ボリュームでの Kerberos のパフォーマンスへの影響

Azure NetApp Files では、AES-256 暗号化を使用した Kerberos モード (krb5、krb5i、krb5p) の NFS クライアント暗号化がサポートされています。 この記事では、NFSv4.1 ボリュームでの Kerberos によるパフォーマンスへの影響について説明します。 この記事で参照されているパフォーマンスの比較は、sec=sys セキュリティ パラメーターに対して行われ、1 つのクライアントの 1 つのボリュームでテストされます。

利用可能なセキュリティ オプション

NFSv4.1 ボリュームで現在使用できるセキュリティ オプションは次のとおりです。

  • sec=sys を指定すると、NFS 操作を認証するために AUTH_SYS を使用する ことで、ローカルの UNIX UID および GID が使用されます。
  • sec=krb5 を指定すると、ユーザーを認証するために、ローカルの UNIX UID および GID ではなく、Kerberos V5 が使用されます。
  • sec=krb5i を指定すると、ユーザー認証に Kerberos V5 が使用され、データの改ざんを防ぐためにセキュリティで保護されたチェックサムを使用して NFS 操作の整合性チェックが実行されます。
  • sec=krb5p を指定すると、ユーザー認証と整合性チェックに Kerberos V5 が使用されます。 トラフィック スニッフィングを防ぐために、NFS トラフィックが暗号化されます。 このオプションは最も安全な設定ですが、パフォーマンスのオーバーヘッドが最も高くなります。

テスト済みのパフォーマンス ベクトル

ここでは、さまざまな sec=* オプションの単一のクライアント側パフォーマンスに対する影響について説明します。

  • パフォーマンスに対する影響は、低いコンカレンシー (低負荷) と高いコンカレンシー (I/O とスループットの上限) の 2 つのレベルでテストされました。
  • 3 種類のワークロードがテストされました。
    • 小規模な操作のランダム読み取り/書き込み (FIO を使用)
    • 大規模な操作のシーケンシャル読み取り/書き込み (FIO を使用)
    • git などのアプリケーションによって生成されるメタデータの負荷が高いワークロード

予想されるパフォーマンスに対する影響

焦点となる領域が 2 つがあります。 軽い負荷と上限です。 次の一覧では、パフォーマンスに対する影響について、セキュリティ設定別とシナリオ別に説明します。

テスト スコープ

  • 比較はすべて sec=sys セキュリティ パラメーターに対して行われています。
  • 1 つのクライアントを使用して、1 つのボリュームでテストが実行されました。

krb5 のパフォーマンスに対する影響:

  • 平均 IOPS が 53% 減少
  • 平均スループットが 53% 減少
  • 平均待機時間が 0.2 ミリ秒増加

krb5i のパフォーマンスに対する影響:

  • 平均 IOPS が 55% 減少
  • 平均スループットが 55% 減少
  • 平均待機時間が 0.6 ミリ秒増加

krb5p のパフォーマンに対する影響:

  • 平均 IOPS が 77% 減少
  • 平均スループットが 77% 減少
  • 平均待機時間が 1.6 ミリ秒増加

nconnect のパフォーマンスに関する考慮事項

nconnectsec=krb5* のマウント オプションを一緒に使用することはお勧めしません。 2 つのオプションを組み合わせて使用すると、パフォーマンスの低下が見られました。

Generic Security Standard Application Programming Interface (GSS-API) は、ピア アプリケーションに送信されるデータを保護する方法をアプリケーションに提供します。 このデータは、あるコンピューター上のクライアントから別のコンピューター上のサーバーに送信されたものである可能性があります。 

Linux で nconnect を使用する場合、GSS セキュリティ コンテキストは特定のサーバーへのすべての nconnect 接続間で共有されます。 TCP は信頼性の高いトランスポートであり、シーケンス番号のスライディング ウィンドウを使用して、GSS ストリーム内の順序が正しくないパケットを処理するために順不同のパケット配信をサポートします。 シーケンス ウィンドウにないパケットを受信すると、セキュリティ コンテキストが破棄され、新しいセキュリティ コンテキストがネゴシエートされます。 破棄されたコンテキストで送信されたメッセージはすべて無効になるため、メッセージの再送信が必要になります。 nconnect セットアップ内のパケット数が多いほど、ウィンドウ外パケットが頻繁に発生し、上記の動作がトリガーされます。 この動作では、特定の低下率を指定することはできません。

次のステップ