[OCI]OCI上での高可用性Windowsファイルサーバのデプロイ (2020/07/24)

OCI上での高可用性Windowsファイルサーバのデプロイ (2020/07/24)

https://www.ateam-oracle.com/deploying-a-highly-available-windows-file-server-on-oci
投稿者:Leo Yuen | Cloud Solutions Architect
SMB ファイル共有機能を必要とするアプリケーションのワークロードに対しては、
OCI 上には、高性能なベアメタルデプロイから Linux 仮想マシン上で動作するオープンソースの Samba まで、多くのソリューションが用意されています。
異なるワークロード要件に応じて、顧客はユースケースに応じて最適なソリューションを選択することができます。

このブログでは、ファイル共有サービスの高可用性を提供するためのWindows Failover Clusterと、
クラスタノード間でデータを保護して同期するためのDFSレプリケーションというWindowsのネイティブテクノロジーを使用した
仮想マシン上で動作するWindowsファイルサーバのセットアップをご紹介します。

このソリューションは、柔軟性と拡張性に優れたOCIブロックボリュームと同様にOCIコンピュートVMシェイプを使用しています。

私たちのサンプルデプロイメントは、次の図に示されています。



このサンプルデプロイメントは、3 つのフォルト ドメインを持つ単一の可用性ドメイン リージョンにデプロイされています。

このサンプルデプロイメントには 4 つの VM があり、フォールト ドメイン 1 にある 2 つの VM は、Windows 2012 上で動作する IIS サーバと
Windows 2016 Standard エディション上で動作するドメイン コントローラです。

IIS サーバーは、SMB ファイル共有アクセスを必要とする顧客のワークロードをシミュレートするために使用されます。
Windows ベースのワークロードを使用しているお客様の場合、新たにドメイン コントローラを作成することなく、
このソリューションに使用できるドメイン コントローラを環境ですでに実行している可能性があります。

本番環境では、ドメインコントローラは高可用性モードで設定する必要があります。
ドメインコントローラに障害が発生しても、すでに稼働しているクラスタへの影響はないはずですが、フェイルオーバー操作に影響を与える可能性があります。

ドメインコントローラをHAモードで展開する方法は、このブログでは取り上げていません。

異なるFault Domain上で実行されている2つのVMインスタンスで2ノードクラスタが作成されます。
それぞれの VM インスタンスには、ブロックボリュームのセットがアタッチされています。
クラスタノードに接続されているブロックボリュームのサイズは同じで、ファイルシステムのフォーマットやドライブレターの割り当てを含めて同じように構成されている必要があります。

お客様の要件に応じて、VMの形状、インスタンスに接続されるブロックボリュームの数、サイズ、パフォーマンス特性を選択することができます。

クラスタIPと追加のセカンダリIPがクラスタに割り当てられ、追加のセカンダリIPはクライアントが共有フォルダにアクセスするために使用されます。
これらのIPアドレスはクラスタのマスターノードに設定され、フェイルオーバーが発生した場合は、両方とも生き残っているノードに移行する必要があります。

フェイルオーバーのプロセス中、クライアントはファイル共有サービスをわずかに一時停止します。
ほとんどの操作は、フェイルオーバーが成功した後に再開されます。
いくつかの操作がタイムアウトして失敗した場合、アプリケーションは失敗した操作を再試行する必要があります。

このソリューションは、すべてのWindows Serverのバージョン、すなわち、2019、2016、2012 R2など、OCIで利用可能なWindows Serverのすべてのバージョンで動作します。

クラスタの設定

このセクションでは、OCI上でフェイルオーバー・クラスタを作成して構成する手順について説明します。

  1. VM インスタンスとブロックボリュームのプロビジョニング
  2. Windows でブロックボリュームを構成
  3. セカンダリIPアドレスの作成と設定
  4. Windows フェイルオーバー クラスターの作成
  5. DFSレプリケーションのインストールと構成
  6. セカンダリIPアドレスのフェイルオーバーを処理するスクリプトの設定

1. VMインスタンスとブロックボリュームのプロビジョニング

サンプル導入では、インスタンスの作成にVM.Standard.E2.2シェイプを使用し、Oracle提供のWindows Server 2016 Standard Editionイメージを使用しています。


node01とnode02が異なるフォルトドメインにデプロイされていることに注意してください。

2つのブロックボリュームが作成され、LUN01とLUN02と呼ばれ、サイズは両方とも50GBです。

LUN01をnode01に、LUN02をnode02にアタッチします。

2. Windows でブロックボリュームを構成

ブロックボリュームをwindowsインスタンスにアタッチしたら、ディスクをNTFSでフォーマットし、ドライブレターを割り当てます。
両方のインスタンスで同じドライブレターを使用する必要があります。

次のスクリーンショットは、ディスク管理ウィンドウで、LUN01がNTFSでフォーマットされ、ドライブレターOが割り当てられていることを示しています。


3. セカンダリIPアドレスの作成と設定

OCI Consoleからnode01を選択し、接続したVNICにプライベートIPアドレスを2つ追加作成します。

以下のスクリーンショットでは、10.2.1.201がクラスタIP、10.2.1.202がファイル共有用です。

これらはフローティングIPアドレスなので、node02に追加のIPアドレスを作成する必要はありません。

IPアドレスは静的に割り当てられるべきです。

現時点では、Windowsオペレーティングシステム内では何もする必要はありません。

4. Windows フェイルオーバー クラスターの作成

このMicrosoftのドキュメントに従って、2つのwindowsインスタンスでフェイルオーバークラスタを作成します。

5. DFSレプリケーションのインストールと設定

クラスタが正常に作成されたら windowsインスタンスにDFSレプリケーション機能をインストールし、このMicrosoftのドキュメントに従ってDFSレプリケーショングループを作成します。

6. セカンダリIPアドレスのフェイルオーバーを処理するスクリプトを構成します。

Windowsフェイルオーバー・クラスタでフェイルオーバーが発生した場合、
オペレーティング・システム・レベルでのクラスタIPアドレス構成はWindowsソフトウェアによって処理されます。
ただし、ステップ 3 で作成された基礎となるプライベート IP アドレスは、障害が発生したノードから生き残ったノードに移行されません。
このスクリプトはまさにこの機能を提供します。

しかし、私たちのデプロイメントでは、ファイル共有サービスはクラスタIPではなく、追加のセカンダリIPアドレスを使用しています。
この追加のIPアドレスを処理するためにスクリプトを強化する必要があります。何を変更する必要があるかの詳細については、今後のブログ記事で詳しく説明します。

それでは、今のところご期待ください。

コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

Oracle Cloud Infrastructure Secure Desktopsを発表: デスクトップ仮想化のためのOracleのクラウドネイティブ・サービス (2023/06/28)

新しいOracle Container Engine for Kubernetesの機能強化により、大規模なKubernetesがさらに簡単になりました (2023/03/20)