以前の投稿で、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仮想ハードドライブなどのサーバーアプリケーションデータをファイルサーバー上の共有フォルダー(ファイルボール)に配置できるようになりました。 このようなサーバーアプリケーションは、データが信頼性が高くアクセスしやすいストレージに格納されていることを前提としています。 したがって、フェイルセーフファイルクラスターを構築する、つまり、フェールオーバークラスタリングを使用して作成されたクラスターにファイルサーバーの役割を展開することにより、ファイルアクセスを使用するさまざまなサーバーアプリケーションで使用できる、汎用性の高い汎用リソースを取得できます。
ブロックストレージの代わりにファイルストレージを使用する機能には、いくつかの利点があります。
- シンプルなコントロール 。 LUNとゾーンを作成する代わりに、ファイルサーバー上の通常の共有フォルダーを管理する必要があります。
- 柔軟性 。 データにアクセスするためのアプリケーション設定では、UNCパスが指定されています。 ネットワークアクセスとストレージの構成を変更せずに、データセンター内でアプリケーションを動的に移動できます。
- ネットワークインフラストラクチャへの既存の投資の使用 。 新しいストレージネットワークの展開は必要なく、既存の構成が使用されます。
- 保存しています。 ファイルアクセスを使用すると、価格/性能比の観点から妥当な場合に、より安価な構成を使用できます。 たとえば、記憶域スペーステクノロジを使用すると、SASディスクに基づいてクラスターストレージを構築できます。
SMB透過フェールオーバーの使用とは何ですか?
Windows Server 2012ファイルクラスターでは、継続的な可用性の兆候を持つパブリックフォルダーを作成できます。 デフォルトでは、クラスター上のボールはこのタイプで作成されます。 そして、そのようなボールだけに接続する場合、SMBトランスペアレントフェイルオーバーが適用され、テクノロジーは2つのシナリオに適用できます。
- たとえば、ハードウェアまたはソフトウェアのメンテナンス作業を実行するために、 別のクラスターノードに切り替える予定 。
- ノードに障害が発生した場合の計画外の障害の履行 。
どちらのシナリオでも、クラスター上の共有フォルダーに保存され
ているファイルへのアプリケーションアクセスを失うことなく 、別のクラスターノードに切り替えます。
さらに、SMBトランスペアレントフェールオーバーと組み合わせて別のSMB 3.0テクノロジー、つまりSMBスケールアウト(これは可能ですが、必須ではありません)を使用すると、ファイルクラスターはアクティブ/アクティブモードで動作し、フォールトトレランスに加えて、すべてのノード間で負荷分散を提供しますクラスター。
SMB透過フェールオーバーが機能するための要件は何ですか?
SMB透過フェールオーバーを使用するには、次の要件を満たす必要があります。
- 少なくとも2つのノードでWindows Server 2012を実行するフェールオーバーファイルクラスター。
- 連続可用性を備えたクラスター上に作成された1つ以上の共有フォルダー。
- Windows Server 2012またはWindows 8を実行しているクライアント。
次に、透過的なフェイルオーバーが技術的にどのように実装され、このテクノロジーがどのように構成されているかを見ていきます。
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の機能を正しく組み合わせることにより、サーバーインフラストラクチャに必要なレベルの信頼性とパフォーマンスを実現できます。