このページでは、Google Cloud NetApp Volumes のアプリケーションの復元力と、NFS、SMB、iSCSI クライアントが I/O の一時停止を処理する方法について説明します。NetApp Volumes は高可用性ですが、計画的なメンテナンス イベントや計画外のサービス イベント中に I/O オペレーションが一時的に停止することがあります。このページでは、特に Pacemaker などのクラスタ ソフトウェアを使用する場合に、アプリケーションがスムーズに動作するようにタイムアウト設定を行うことをおすすめします。
アプリケーションの復元力に関する考慮事項
NetApp Volumes は高可用性ですが、プラットフォームの更新、サービスのアップグレード、ソフトウェアのアップグレードなどの計画的なメンテナンス イベントや、サービス内の計画外のコンポーネント障害により、入出力(I/O)オペレーションが一時的に停止することがあります。
計画的なメンテナンス イベントと計画外のサービス 停止の詳細については、メンテナンス イベントのモニタリングと計画をご覧ください。
I/O の一時停止
オペレーティング システム内のネットワーク ファイル システム(NFS)、サーバー メッセージ ブロック(SMB)、iSCSI クライアント ソフトウェアは、短い I/O の一時停止を処理します。クライアントは、問題をアプリケーションに報告することなく、I/O オペレーションを待機して再試行します。 このような短い一時停止は、アプリケーションのユーザーに応答時間が長くなったように見える可能性がありますが、アプリケーションは I/O エラーを報告しないため、中断とは見なされません。
I/O の一時停止が長くなった場合、動作はオペレーティング システムの NFS、SMB、iSCSI クライアントと、アプリケーションで構成されているタイムアウトによって異なります。以降のセクションでは、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、Flex Unified サービスレベルの場合)
120 秒(Flex File サービスレベルの場合) |
NFS ロックに依存するのではなく、
nolock マウント オプションを使用するフェンシング方法を使用することをおすすめします。 |
| NFSv4.1 | 105 秒(Standard、Premium、Extreme、Flex Unified サービスレベルの場合)
165 秒(Flex File サービスレベルの場合) |
NFSv4.1 プロトコルは、NFSv3 (NFSv4.x RFC、 セクション 9.6.2)に信頼性の高いロックを自動的に追加します。これは、フェンシング メカニズムとして使用できます。 ロック状態の復旧にはさらに 45 秒かかります。 |
SMB 共有 I/O の一時停止
NFS とは異なり、SMB セッションではタイムアウトが発生する可能性がある接続を使用します。通常、NetApp Volumes ではタイムアウトは発生しません。
セッションのタイムアウト
セッションのタイムアウトはクライアントで定義されます。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 継続的可用性共有は、カスタム アプリケーションをサポートしていません。
iSCSI I/O の一時停止
Linux 環境と Windows 環境の両方で、iSCSI クライアント(イニシエータ)は、ターゲット(NetApp Volumes)が使用可能になるまでコマンドを再試行することで、I/O の一時停止を処理します。短いメンテナンス イベント中、iSCSI イニシエータは再接続を試行し、未処理の I/O オペレーションを再開します。これにより、アプリケーションの復元力を維持できます。
iSCSI タイムアウト
メンテナンス イベントや予期しないサービス中断時にアプリケーションの復元力を維持するには、iSCSI タイムアウトを適切に構成することが不可欠です。
Linux システムの場合、NetApp Volumes はデフォルトの iSCSI イニシエータ設定を使用します。これらの設定には、デフォルトの Linux Device Mapper Multipath 内の NetApp 固有の構成が含まれています。これにより、NetApp Volumes メンテナンス イベント中のタイムアウト要件が自動的に管理されます。
ただし、Windows システムの場合は、次のコマンドを使用して Windows MPIO 設定を変更し、NetApp Volumes メンテナンス イベントを処理します。
Set-MPIOSetting -NewPathVerificationState Enabled ` -NewPDORemovePeriod 130 ` -NewRetryCount 6 ` -CustomPathRecovery Enabled ` -NewPathRecoveryInterval 30 `
I/O の一時停止中、iSCSI イニシエータはコマンドを再試行し、タイムアウトの間、未処理の I/O を維持します。タイムアウトを超過すると、オペレーティング システムがアプリケーションに I/O エラーを報告し、トランザクションが失われたり、アプリケーション レベルの復旧が必要になったりする可能性があります。
アプリケーションとクラスタに関する考慮事項
クラスタリング ソフトウェアまたはフェイルオーバーを自動化するアプリケーションを使用する場合は、NetApp Volumes メンテナンス イベントに対応するように iSCSI タイムアウトを構成します。早すぎるフェイルオーバーは、未処理の I/O オペレーションを中止し、データやトランザクションの損失につながる可能性があります。iSCSI タイムアウト設定のベストプラクティスについては、アプリケーションとオペレーティング システムのドキュメントを参照してください。
メンテナンス イベントに関連するアプリケーションの中断
プラットフォームのアップグレードやサービス ソフトウェアのアップグレードなどの計画的なメンテナンス イベントが、まれに発生することがあります。アプリケーションがこれらのイベント中に発生する可能性のある I/O の一時停止を処理できる限り、メンテナンス イベントはファイル プロトコル(NFS または SMB)の観点から中断とは見なされません。
Standard、Premium、Extreme サービスレベルの場合、I/O の一時停止は通常短く、数秒から 30 秒です。
Flex サービスレベルの場合、I/O の一時停止は最大 70 秒になることがあります。
次のステップ
Google Cloud NetApp Volumes セキュリティに関する考慮事項を確認する。