アプリケーションの復元力に関する考慮事項

このページでは、Google Cloud NetApp Volumes アプリケーションの復元力について詳しく説明します。

アプリケーションの復元力に関する考慮事項

NetApp Volumes は高可用性ですが、プラットフォームの更新、サービスのアップグレード、ソフトウェアのアップグレード、サービス内の計画外のコンポーネント障害などの計画的なメンテナンス イベントにより、入出力(I/O)オペレーションが一時的に停止することがあります。

I/O の一時停止

オペレーティング システム内のネットワーク ファイル システム(NFS)またはサーバー メッセージ ブロック(SMB)クライアント ソフトウェアは、短い I/O の停止を処理します。クライアントは、問題をアプリケーションに報告せずに、I/O オペレーションを待機して再試行します。このような短い停止は、アプリケーションのユーザーがレスポンス時間の長さを認識する可能性があるものの、アプリケーションが I/O エラーを報告しないため、中断とは見なされません。

I/O の停止時間が長くなると、動作はオペレーティング システムの NFS または SMB クライアントと、アプリケーションで構成されているタイムアウトによって異なります。以降のセクションでは、I/O の一時停止に関するプロトコル固有の詳細について説明します。

NFS I/O の一時停止

使用できないハードマウントされた NFS 共有への呼び出しはすべて NFS クライアントでブロックされ、NFS サーバーが再び応答するまで無期限に待機します。NFS クライアントが待機している間、NFS サーバーが応答していないことを示すメッセージがクライアント ログに表示されます。

アプリケーションの観点から、読み取りや書き込みなどの I/O オペレーションはブロックされ、NFS 共有が正常に返されるまで保留状態になります。I/O の一時停止中、I/O オペレーションが失われることはありません。また、クライアント側で保留中の I/O オペレーションを強制的に停止しない限り、NetApp Volumes はデータの整合性を確保します。

クラスタ ソフトウェア アプリケーションを使用してフェイルオーバーを自動化する

クライアント VM で Pacemaker などのクラスタ ソフトウェア アプリケーションを使用してアプリケーションのフェイルオーバーを自動化する場合は、NetApp Volumes のメンテナンス イベントに耐えられるように NFS 共有のタイムアウトを構成します。このようなフェイルオーバーは、クライアントで保留中の I/O オペレーションを中止し、トランザクションの損失につながる可能性があります。次のタイムアウトをおすすめします。

プロトコル タイプ 推奨されるタイムアウト メモ
NFSv3 共有 60 秒(Standard、Premium、Extreme サービスレベルの場合)
120 秒(Flex サービスレベルの場合)
NFS ロックに依存するのではなく、nolock マウント オプションを使用するフェンシング方法を使用することをおすすめします。
NFSv4.1 105 秒(Standard、Premium、Extreme サービスレベルの場合)
165 秒(Flex サービスレベルの場合)
NFSv4.1 プロトコルは、NFSv3 に信頼できるロックを自動的に追加します(NFSv4.x RFC、セクション 9.6.2)。このロックはフェンシング メカニズムとして使用できます。ロック状態の復元にはさらに 45 秒かかります。

SMB 共有の I/O の一時停止

NFS とは異なり、SMB セッションはタイムアウトする可能性がある接続を使用します。ほとんどの場合、NetApp ボリュームはタイムアウトの範囲内に収まります。

セッションのタイムアウト

セッション タイムアウトはクライアントで定義します。Windows クライアントのデフォルトのタイムアウトは 60 秒です。SessionTimeout パラメータを使用して Get-SmbClientConfiguration/Set-SmbClientConfiguration コマンドを実行すると、セッション タイムアウトを読み取ったり変更したりできます。

セッション タイムアウトが発生すると、SMB セッションが中断され、I/O を実行しているアプリケーションに I/O エラーが報告されます。通常、ユーザーが SMB 共有に再度アクセスするとすぐに、ファイル エクスプローラまたは Microsoft 365 アプリケーションが再接続します。I/O エラーが発生した場合、一部のアプリケーションは再接続して失敗した I/O オペレーションを再試行しようとしますが、他のアプリケーションはそうしません。アプリケーション ベンダーのドキュメントを参照して、アプリケーションが SMB タイムアウトを処理し、SMB 共有で復元力のある動作を行う方法を確認します。

継続的アベイラビリティ(CA)共有は、データベースのようなアプリケーションのフェイルオーバー復元力を向上させる SMB3.x 機能です。NetApp Volumes は、Microsoft SQL Server と FSLogix の継続的に利用可能な共有をサポートしています。

障害復旧は、新しい SMB バージョンがリリースされるたびに改善されています。NetApp Volumes は、SMB 2.1、3.0、3.1.1 をサポートしています。可能であれば、サポートされている最新の SMB バージョンを使用してください。Windows 10/Server 2016 以降は、最新の SMB バージョン 3.1.1 をサポートしています。

SMB アプリケーション ベースの注意事項

特定の SMB ベースのアプリケーションには、SMB 透過的フェイルオーバーが必要です。SMB 透過的フェイルオーバーにより、データを保存してアクセスするサーバー アプリケーションへの接続を中断することなく、NetApp Volumes 内の SMB ボリュームでメンテナンス オペレーションを実行できます。NetApp Volumes は、SMB 継続的可用性共有オプションをサポートし、特定のアプリケーションが SMB 透過的フェイルオーバーをサポートするようにします。SMB の継続的に使用可能な共有を使用すると、次のワークロードのみがサポートされます。

  • FSLogix ユーザー プロファイル コンテナ

  • Microsoft SQL Server(Linux SQL Server ではない)

SMB の継続的に利用可能な共有は、カスタム アプリケーションをサポートしていません。

プラットフォームのアップグレードやサービス ソフトウェアのアップグレードなどの計画的なメンテナンス イベントが、時折発生することがあります。メンテナンス イベントは、これらのイベント中に発生する可能性のある I/O の停止をアプリケーションが処理できる限り、ファイル プロトコル(NFS または SMB)の観点からは中断なしと見なされます。

スタンダード、プレミアム、エクストリームの各サービスレベルでは、I/O の停止は通常短く、数秒から 30 秒の範囲です。

Flex サービスレベルでは、I/O の停止は最大 70 秒です。

次のステップ

Google Cloud NetApp Volumes のセキュリティに関する考慮事項を確認する。