このページでは、Google Cloud NetApp Volumes アプリケーションの復元性について詳しく説明します。
アプリケーションの復元性に関する考慮事項
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 オペレーションが失われることはありません。NetApp Volumes は、クライアント側で未処理の I/O オペレーションを強制的に停止しない限り、データの整合性を確保します。
クラスタ ソフトウェア アプリケーションを使用してフェイルオーバーを自動化する
クライアント 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 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 ボリュームのメンテナンス イベント中にタイムアウト要件を自動的に管理します。
ただし、Windows システムの場合は、次のコマンドを使用して Windows MPIO 設定を変更し、NetApp ボリュームのメンテナンス イベントを処理します。
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 のセキュリティに関する考慮事項について確認する。