SOFS で構成されたサーバー上のファイル共有にアクセスするときのエラー: このコマンドを処理するのに十分なサーバー ストレージがありません

この記事では、Scale-Out ファイル サーバーロールが構成されている SMB サーバー上のファイル共有にアクセスするときに発生する問題の解決策について説明します。

適用対象: Windows Server 2012 R2
元の KB 番号: 3101545

現象

次のような状況で問題が発生します。

  • Window Server 2012 R2 を実行しているサーバーで 、スケールアウト ファイル サーバー (SOFS) ロールを構成します。
  • ファイル共有に頻繁にアクセスするサーバー アプリケーションとクライアントがあります。
  • アプリケーションとクライアントは、接続、認証、ファイルの変更、セッションの直ちに閉じる短命セッションを多数開きます。

このシナリオでは、しばらくすると、ファイル共有へのアクセスが失敗し、STATUS_INSUFF_SERVER_RESOURCES エラーがネットワーク キャプチャに記録されます。

さらに、ユーザーが SOFS 共有に接続しようとすると、次のエラー メッセージが表示されます。

このコマンドを処理するのに十分なサーバー ストレージがありません。

また、クラスターのコーディネーター ノードと非コーディネーター ノードの両方で、Lsass.exe で高いハンドル数が表示されます。

注:

ディスク リソースを別のノードにフェールオーバーする場合、問題は一時的に発生しません。

原因

この問題は、多数のメタデータ変更を生成するためにセッションを再利用する代わりに、アプリケーションがファイルを変更するたびに新しいセッションを作成するためです。

CSV ファイル システムは、SMB プロトコルを使用して、クラスター ノード間のメタデータ情報の一貫性を維持します。 大量のメタデータ変更により、クラスターの非コーディネーター ノードとコーディネーター ノード間で多数の SMB セッションが生成され、コーディネーター ノードの SMB テーブルが使い果たされます。

解決方法

これらの種類のアプリケーション ワークロードに対するこの問題を解決するには、SOFS ではなく File Server for General Use ロールを使用することをお勧めします。

注:

新しいファイルを開いて作成したり、既存のファイルの名前を変更したりするなど、ワークロードで非常に多くのメタデータ操作が生成される場合は、SOFS ロールを使用しないでください。

詳細

コーディネーター以外のノードとコーディネーター ノード間のネットワーク キャプチャでは、SMB セッションセットアップ要求の後、コーディネーター ノードがSTATUS_INSUFF_SERVER_RESOURCESエラーで応答することがわかります。