Windows Server 2012でのSMB透過フェールオーバー

以前の投稿で、SMB 3.0プロトコルの一部であるSMBマルチチャネルテクノロジーについて説明しました。 SMB 3.0の機能に関する議論を続け、今日はSMB透過的フェールオーバーに焦点を当てます。 名前が示すように、このテクノロジーの本質は、現在のノードのハードウェアまたはソフトウェアに障害が発生した場合に、SMBアプリケーションをフェールオーバークラスターの別のノードに透過的に切り替えることです。 SMB 3.0はWindows Server 2012およびWindows 8に実装されているため、以下のすべてはこれらのOSにのみ適用されます。

ブロックストレージの代わりにファイルストレージを使用する


Windows Server 2012のSMBおよびファイルサービスの変更により、SQL ServerデータベースやHyper-V仮想ハードドライブなどのサーバーアプリケーションデータをファイルサーバー上の共有フォルダー(ファイルボール)に配置できるようになりました。 このようなサーバーアプリケーションは、データが信頼性が高くアクセスしやすいストレージに格納されていることを前提としています。 したがって、フェイルセーフファイルクラスターを構築する、つまり、フェールオーバークラスタリングを使用して作成されたクラスターにファイルサーバーの役割を展開することにより、ファイルアクセスを使用するさまざまなサーバーアプリケーションで使用できる、汎用性の高い汎用リソースを取得できます。

ブロックストレージの代わりにファイルストレージを使用する機能には、いくつかの利点があります。

SMB透過フェールオーバーの使用とは何ですか?


Windows Server 2012ファイルクラスターでは、継続的な可用性の兆候を持つパブリックフォルダーを作成できます。 デフォルトでは、クラスター上のボールはこのタイプで作成されます。 そして、そのようなボールだけに接続する場合、SMBトランスペアレントフェイルオーバーが適用され、テクノロジーは2つのシナリオに適用できます。

どちらのシナリオでも、クラスター上の共有フォルダーに保存されているファイルへのアプリケーションアクセスを失うことなく 、別のクラスターノードに切り替えます。
さらに、SMBトランスペアレントフェールオーバーと組み合わせて別のSMB 3.0テクノロジー、つまりSMBスケールアウト(これは可能ですが、必須ではありません)を使用すると、ファイルクラスターはアクティブ/アクティブモードで動作し、フォールトトレランスに加えて、すべてのノード間で負荷分散を提供しますクラスター。

SMB透過フェールオーバーが機能するための要件は何ですか?


SMB透過フェールオーバーを使用するには、次の要件を満たす必要があります。

次に、透過的なフェイルオーバーが技術的にどのように実装され、このテクノロジーがどのように構成されているかを見ていきます。

SMBトランスペアレントフェールオーバーはどのように機能しますか?


Windows Server 2008 R2などのファイルクラスターでのフェールオーバーの主な問題は、別のノードに切り替えると、アプリケーションが使用するファイルとフォルダーへのアクセスを失うことでした。 クラスタボールで開かれたドキュメントまたはプレゼンテーションについて話している場合、ファイルを再度開くことで問題はすぐに解決されました。 しかし、明らかに、SQL Serverなどのサーバーアプリケーションの場合、この問題の解決策はほとんど受け入れられません。 アプリケーションは、コード内でこのような状況を処理する必要があります。または、アプリケーションを再接続するには管理者の介入が必要です。 実際、フェイルオーバーはアプリケーションには見えないままでした。

SMB 3.0では、SMBクライアントとSMBサーバーの実装に、監視コンポーネント、監視サービス、およびキーフィルタの再開という新しいコンポーネントが登場しました。

画像

SMBクライアントは、共有フォルダーに接続するときに、このフォルダーに連続可用性フラグが設定されているかどうかを判断します。 その場合、フォルダーはクラスター上にあり、透過的なフェールオーバーを使用できます。 SMBクライアントは、アプリケーションに代わってファイルを開き、一意のキー(レジュームキー)を提供し、SMBサーバーからファイル記述子(永続的なファイルハンドル)に関する情報を要求します。 Resume Key Filterを使用して、SMBサーバーはクライアントに必要な情報を受け取り、提供します。 この時点から、再開キーは実際にファイルの状態に関する情報を保存し、ファイルの操作がライトスルーモードで適用され、キャッシュがファイルの変更に影響を与えないようにします。

クラスター内の別のノードへの計画的および計画外の切り替えの場合、SMBクライアントは、新しいノードのSMBサーバーに再開キーを提供します。 受信した情報のおかげで、Resume Key Filterを介したSMBサーバーは、障害が発生する前のファイルの一貫した状態を提供します。 SMBクライアント上のアプリケーションは、このプロセスに一切関与せず、エラーメッセージを受信せず、入出力操作にわずかな遅延しか発生しません。 これにより、フェイルオーバーの透過性が確保されます。

WitnessクライアントとWitnessサービスは、予期しない障害が発生した場合に別のクラスターノードへの切り替えを加速するのに役立ちます。 クラスターノードに初めて接続するとき、SMBクライアントと同じコンピューターで実行されているWitnessクライアントは、接続されたノードで実行されているWitnessサービスからクラスターノードのリストを受け取ります。 次に、監視クライアントは別の代替クラスターノードを選択し、そのノード上の監視サービスに要求を送信します。 障害が発生するとすぐに、フェールオーバークラスタリングサービスはWitnessサービスに代替ノードを通知し、代替ノードはメッセージをWitnessクライアントに送信し、そのメッセージをSMBクライアントに送信します。 通知を受信するとすぐに、SMBクライアントは代替クラスターノードへの再接続を開始します。 このアプローチにより、TCPタイムアウトを待つ必要がなくなり、障害後のファイル接続の復元が大幅に高速化されます。

SMB透過フェールオーバーの構成


まず、フェールオーバークラスターを作成し、各ノードにファイルサーバーの役割を展開する必要があります。 これらの手順については詳しく説明しませんが、Windows Server 2012で基本的な変更は行われていません。

クラスターが作成されたと仮定すると、そのクラスターでフォールトトレラントファイルサーバーの役割を上げる必要があります。 マスターを起動します...

画像

適切な役割を選択します。

画像

これは、Windows Serverの以前のバージョンからの変更の始まりです。 ご覧のとおり、標準のファイルサーバーに加えて、スケールアウトファイルサーバーを展開できるようになりました。 後者の場合、アクティブ/アクティブモードで説明したファイルクラスターを取得します。 彼についてのより詳細な議論は、将来の投稿の一つにあります。 このバージョンでは、デフォルトのオプションである「一般的な使用のためのファイルサーバー」のままにします。

画像

ファイルサーバーへの後続のアクセス用にアクセスポイントの名前を設定し、IPアドレスを指定します。

画像

サーバー用のディスクを選択し、

画像

もう一度設定を確認してください。

画像

ファイルクラスタの役割が正常に作成されたことを確認します。

画像

次のステップは、クラスター上に1つ以上の共有フォルダーを作成し、継続的な可用性の兆候を見せることです。 このためには、ファイル共有の追加アイテムが必要です。

画像

そして、このウィンドウのSMB共有-アプリケーションの中点です。

画像

正しいサーバーが選択されていることと、

画像

ボールの名前とパス(ローカルまたはネットワーク)を設定し、

画像

次のステップで、ボールの継続的な可用性の必要な兆候がインストールされていることをもう一度確信します。

画像

必要に応じて、アクセス許可を構成します。

画像

すべてが適切な場合は、[作成]ボタンをクリックします

画像

設定に関しては、それだけです。 作成されたVM共有フォルダーに接続し、コマンドを実行する場合:

Get-SmbOpenFile | Select * 

この接続を処理するクラスターのノードでは、次のようなものが表示されます

画像

ContinuouslyAvailableパラメーターがTrueに設定されていることに注意してください。

別のクラスターノードへのスケジュールされた切り替えを行うには、次のコマンドを使用する必要があります。

 Move-ClusterGroup –Name ft-fs-01 –Node ws2012-srv04 

Nameパラメーターはクラスターリソース(つまり、クラスターファイルサーバー)の名前を示し、 Nodeはクラスターリソースの切り替え先のクラスターノードの名前です。
計画外の障害の発生を確認する方が良い方法-あなたが決める。 :)

そのため、SMB透過的フェールオーバーテクノロジは、計画された操作または予期しない障害が発生した場合に、フェールオーバークラスターの別のノードに切り替えるアプリケーションに対して透過的です。 SMBマルチチャネルと組み合わせて、ストレージ、通信チャネル、ネットワークアダプタのレベルでフォールトトレランスを実現します。 SMBスケールアウトを使用すると、クラスターノード間で負荷を分散でき、クラスターに含まれるサーバーの能力をより効率的に使用できます。 SMB 3.0の機能を正しく組み合わせることにより、サーバーインフラストラクチャに必要なレベルの信頼性とパフォーマンスを実現できます。

Source: https://habr.com/ru/post/J156511/


All Articles