はじめに
前回の記事で、ワークグループ環境でのWSFCの構築方法を紹介しましたが、今回はAzureのロードバランサーとWSFCを併用し、高可用性IISが動作するところまでの手順を紹介します。
事前準備
・OSはWindows Server 2016 Datacenter
・WSFC用サーバーx2台、ADサーバーx1台
・WSFC用サーバーが同じ可用性セットにあること
・WSFC用サーバーがドメインに参加していること
・WSFC用サーバーにFailover Clustering 機能が追加されていること
・WSFC用サーバーサーバーにIIS 役割が追加されていること
構築の概要は以下の通りで、お伝えしたいポイントはWSFC構築よりもその後の手順にあります。
概要:
⑴ ドメイン環境でWSFCを構築します
⑵ WSFCにクライアントアクセスポイント役割を追加します
⑶ Azureポータルにて、Azure ロードバランサーを作成し、ノードサーバーをバックプールに追加します
⑷ WSFCの各ノードにて、PowerShellコマンドでAzureロードバランサーに関連付けます
構築
ここから詳細な構築手順も紹介していきましょう。
⑴ ドメイン環境でWSFCを構築します。
この部分は、前回紹介したワークグループでのWSFC構築手順とあまり変わらないので割愛します。1つ補足すると、ドメイン環境だとDNSサフィックスの付与やゾーン作成、レコードの追加が自動化されるので、今回はDNS系の作業をスキップすることができます。
⑵ WSFCにクライアントアクセスポイント役割を追加します。
① 「フェールオーバークラスターマネージャー」を起動し、「役割」を右クリックし、「空きの役割の作成」をクリックします。
② 作成された「新しい役割」を右クリックし、「リソースの追加」→「クライアントアクセスポイント」をクリックします。
③ クライアントアクセスポイントウィザードにて、「名前」にクライアントアクセスポイント名を入れて、「次へ」をクリックします。
⑥ 作成された役割を開き、「IPアドレスxxxx」を右クリックし、プロパティをクリックします。
⑦ プロパティの「全般」タブにて、「静的IPアドレス」を選択し、アドレスを入力して、「OK」をクリックします。
⑧ 「名前:<役割名>」を右クリックし、「オンラインにする」をクリックします。
⑨ オンライン状態になれば、クライアントアクセスポイントの設定が完了となります。
※「新しい役割」を右クリックし、プロパティで名前の変更ができますので、名前の変更は特に環境に影響がないので、わかりやすい名前に変更すればいいかと。
ここまでの作業で、クライアントアクセスポイントが作成できました。
しかし、現状はサーバー(ADサーバー)から「http://accesspoint」にアクセスしても、クラスターのIISにアクセスできないはずです。
これを回避するため、WSFC環境にAzureロードバランサーを追加します。
⑶ Azureポータルにて、Azure ロードバランサーを作成し、ノードサーバーをバックプールに追加します。
① まずAzureポータルにログインし、ロードバランサー画面を開きます。
③ ロードバランサーの作成画面にて、環境の情報に合わせて設定値を入れて、「作成」をクリックします。
種類:内部
IPアドレスの割り当て:静的
IPアドレス:<クライアントアクセスポイントと同じIP>
④ ロードバランサーが作成されたら、「ロードバランサー名」→「バックエンドプール」→「追加」順でクリックします。
⑤ 「バックエンドプールの追加」画面にて、ノードの可用性セットを選択し、「+ターゲットネットワークIP構成の追加」でノードを追加してから、「OK」をクリックします。
⑦ 正常性プローブの追加画面では、「名前」に適切な文字列を入れて、「プロトコル」にTCPを選択し、「ポート」に59999を入れて、「OK」をクリックします。
⑧ 次に、「負荷分散規則」→「追加」をクリックする
⑨ 負荷分散規則の追加画面にて、先ほど作成したリソースを選択し、分散する通信の適切な値を入れて、「OK」をクリックします。
※今回はWebサーバーなので、TCPの80番ポートを使用
これで、ロードバランサーの作成は完了です。ただ、ここでもまだアクセスできない状態のため、最後の手順に進みましょう。
⑷ WSFCとロードバランサーを紐づけます。
① WSFCの各ノードにて、以下のPowerShellコマンドを管理者権限で実行し、ロードバランサーとの紐づけを実施する
$ProbePort="59999"
$fileserverresource = get-clusterresource | Where-Object { ($_.name -like "IP*10.10.1.0*" ) }
$fileserverresource | set-clusterparameter -Multiple @{"Address"="10.10.1.33";"ProbePort"=$ProbePort;"Subnetmask"="255.255.255.255";"Network"=" Cluster Network 1";"OverrideAddressMatch"=1;"EnableDhcp"=0}
注釈:
"IP10.0.0.100" はアクセスポイントのIPアドレス名(役割のIPアドレスのプロパティで確認できる)
"Address"="10.0.0.99"はILBのIPアドレス
"Network"="Cluster Network 1"はクラスターのネットワーク名
② フェールオーバ―クラスターマネージャーにて、役割を右クリックし、「オフライン」にし、同じ手順で「オンライン」にします。
③ ネットワーク内のWSFCノード以外のサーバー(ADサーバーとか)から、「http://accesspoint」をアクセスしてみましょう。
これでIISの画面が表示されました!!!
以上がAzure VMをWSFCに構築及び設定の内容となります。
AzureのVM上でWSFCを構成するケースは少なくないと思いますので、読んでいただいた方のお役にたてたら幸いです。