Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 7

Microsoft Japan Data Platform Tech Sales Team
清水

みなさん、こんにちは。   6回目は、 AlwaysOn 可用性グループの有効化と、構成時のポイントをお伝えしましたが、いかがだったでしょうか?最終回は、 可用性グループ リスナー構成時のポイントをお伝えします。5回目で、 3  つの仮想マシン ( 2 つの DB サーバーと 1 つのファイルサーバー ) を用いクラスターを構成したので、これを前提として説明を行います。

可用性グループ リスナーとは

可用性グループ リスナーは、Always On 可用性グループのプライマリ レプリカまたはセカンダリ レプリカのデータベースにアクセスするためにクライアントが接続できる仮想ネットワーク名 (VNN) です。可用性グループ リスナーによって、クライアントは、接続先 SQL Server の物理インスタンス名を意識せずに、可用性レプリカに接続できます。また、現在のプライマリ レプリカに接続するために、接続文字列を変更する必要もありません。可用性グループ リスナーの詳細については、以下をご参照下さい。

 

可用性グループ リスナー、クライアント接続、およびアプリケーションのフェールオーバー (SQL Server)

https://msdn.microsoft.com/ja-jp/library/hh213417.aspx

 

Azure 仮想マシンの可用性グループ リスナー

Azure 仮想マシンのAlwaysOn 可用性グループに、可用性グループ リスナーを構成するためには、 Azure 側に ロード バランサー、バックエンド プール、正常性プローブ及び負荷分散規則が必要になります。また、可用性グループ リスナー自体の構成手順もオンプレミス環境とは少し異なっています。

 

image

 

本記事では、可用性グループ リスナー構成時の手順とポイントをお伝えするため、ロード バランサー、バックエンド プール、正常性プローブ及び負荷分散規則が必要な理由等の詳細につきましては、以下の記事をご参照下さい。

 

Azure 上に AlwaysOn AG 構成を構築する際のリスナーについて

 

ロード バランサーの作成

まず、ロード バランサーを作成するため、Azure ポータルにアクセスします。画面左上の「+」をクリック、「新規」が表示されるので、「ネットワーキング」→「 Load Balancer 」を選択すると、以下の成画面が表示されます。

image_thumb[4]

各項目を以下のように設定し、ロード バランサーを作成します。

項目名

設定値

名前 作成するロード バランサーの名前
種類 「内部」
仮想ネットワーク Azure 仮想マシンと同じ仮想ネットワーク
サブネット Azure 仮想マシンと同じサブネット
IP アドレスの割り当て 「静的」
プライベート IP アドレス Azure 仮想マシンと同じ仮想ネットワークで使用されていない IP アドレス
サブスクリプション Azure 仮想マシンと同じサブスクリプション
リソースグループ Azure 仮想マシンと同じリソースグループ
場所 Azure 仮想マシンと同じ場所 ( リージョン )

 

作成したロード バランサーにバックエンド プール、正常性 プローブ及び負荷分散規則を追加します。

 

バックエンドプール

Azure ポータルで作成したロード バランサーをクリック、以下の画面を表示し、「バックエンド プール」→「追加」をクリックします。

image

バックエンド プールの追加画面が表示されるので、「仮想マシンの追加」をクリックします。

image

各項目を以下のように設定し、仮想マシンを追加します。

項目名

設定値

名前 追加するバックエンド プールの名前
可用性セット 各 Azure 仮想マシンが含まれる可用性セット
仮想マシン AlwaysOn 可用性グループを構成する Azure 仮想マシン※各 Azure  仮想マシンは、同じ可用性セットに含まれる必要あり

 

正常性プローブ

作成したロード バランサーをクリック、以下の画面を表示し、「正常性プローブ」→「追加」をクリックします。

image

正常性プローブの追加画面が表示されます。

image

各項目を以下のように設定し、正常性プローブを作成します。

項目名

設定値

名前 追加する正常性プローブの名前
プロトコル 「 TCP 」
ポート 任意の空きポート※このポートは各仮想マシンのファイアウォールで解放されている必要あり
間隔 ここでは規定値 (5)
異常しきい値 ここでは規定値 (2)

負荷分散規則

作成したロード バランサーをクリック、以下の画面を表示し、「負荷分散規則」→「追加」をクリックします。

image

負荷分散規則の追加画面が表示されます。

image

各項目を以下のように設定し、負荷分散規則を追加します。

項目名

設定値

名前 追加する負荷分散規則の名前
フロントエンド IP アドレス ロード バランサーの作成時に指定した IP アドレスが選択されていることを確認
プロトコル 「 TCP  」
ポート “1433”※クライアントがSQL Serverに接続する際使用するポートを指定
バックエンドポート 無効※後述のフローティング IP(Direct Server Return) を有効にするため
セッションの永続化 ここでは規定値 ( 「なし」 )
アイドル タイムアウト ここでは規定値 (4)
フローティング IP(Direct Server Return) 「有効」

 

可用性グループ リスナーの作成

プライマリ レプリカの SQL Server が稼働している DB サーバーに管理者ユーザーでログオンします。「フェールオーバー クラスター マネージャー」を起動、AlwaysOn 可用性グループで使用している WSFC クラスターを展開、ネットワークを選択します。表示されたクラスター ネットワーク名 ( 以下の例では “ クラスター ネットワーク 1“ ) をメモします ( この名前は、後述する PowerShell スクリプトの “$ClusterNetworkName” 変数に使用します)。

image

同様に「役割」をクリックします。 AlwaysOn 可用性グループ ( 以下では “AG1”) が表示されたら、これを右クリック、メニューから「リソースの追加」→ 「クライアント アクセス ポイント」の順に選択します。

image

クライアントアクセスポイントの追加画面が表示されるので、「名前」に可用性グループ リスナーの名前を入力します ( ここで指定する可用性 リスナーの名前は、クライアントアプリケーションが SQL Server 可用性グループ内のデータベースに接続するためのネットワーク名になります)。その後、「次へ」をクリックすると、「確認」画面が表示されますが、ここでも「次へ」クリックします。

image

最後に「概要」画面が表示されるので、「完了」をクリックします。クライアント アクセス ポイントの作成完了後、クライアント アクセス ポイントはオフラインになりますが、この時点では、オンラインにしないでください。クライアント アクセス ポイントの作成が完了したら、画面下の「リソース」タブをクリックして、作成したクライアント アクセス ポイントを展開します。  IP アドレス リソースを右クリックし、メニューから「プロパティ」 を選択します。

image

IP アドレス リソースのプロパティが表示されたら、「名前」をメモします ( この名前は、後述する PowerShell  スクリプトの “$IPResourceName” 変数で使用します ) 。その後、「 IP アドレス」で「静的 IP アドレス」をクリックし、IP アドレスを設定します ( 設定する IP アドレスは、ロード バランサーの IP アドレス同じものを指定 ) 。その後、「このアドレスの NetBIOS を有効にする」がチェックされていることを確認し、「 OK 」をクリックします。

image

IP アドレスの設定後、管理者権限で以下の Power Shell スクリプトを実行します。

 

 $ClusterNetworkName = " < クラスター名 > " #フェールオーバー クラスターの名前
$IPResourceName = "<IP アドレス名 >" #IP アドレス リソースの名前
$ILBIP = "xxx.xxx.xxx.xxx" #ロード バランサー作成時に指定した IP アドレス
[int]$ProbePort = < 正常性プローブで指定したポート>

Import-Module FailoverClusters
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="xxx.xxx.xxx.xxx";"Network"="$ClusterNetworkName";"EnableDhcp"=0}

 

スクリプトの実行完了後、フェールオーバー クラスター マネージャで作成したクライアント アクセス ポイント ( ここでは “AG1-LSNR1”) のプロパティを表示、 IP アドレスリソースに依存関係があることを確認し、クライアント アクセス ポイントをオンラインにします。クライアント アクセス ポイントがオンラインになったら、可用性グループ (ここでは “AG1”) のプロパティを表示、クライアント アクセス ポイント ( ここでは “AG1-LSNR1”) に依存関係を設定します。

image
SQL Server Management Studio( 以降 SSMS) を起動し、管理者権限のあるログインで SQL Server データベースエンジン ( 以降 SQL Server) へ接続します。「 AlwaysOn 高可用性」→「可用性グループ」→「 < 作成した可用性グループ名 > 」→「可用性グループ リスナー」を展開します。作成した可用性グループ リスナーを右クリック、メニューから「プロパティ」を選択します。 可用性グループ リスナーの「プロパティ」が表示されたら、「ポート」に「負荷分散規則」で指定したポートを入力し、「 OK 」をクリックします。

image image

 

可用性グループ リスナーを用いた SQL Server への接続

SSMS を起動し、接続先に可用性グループ リスナーの名前を指定し、管理者権限のあるログインで接続します。

image

接続後、クエリ画面を表示、以下のクエリを実行し、実際に接続している SQL Server が、その時点のプライマリ レプリカになっていることを確認します。

 

 SELECT @@SERVERNAME;

 

AlwaysOn 可用性グループの手動フェールオーバーを行い、再度上記のクエリを実行します。その後、実際に接続している SQL Server が、新しいプライマリ レプリカになっていることを確認します。

 

本連載では、Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイントをお伝えしましたが、いかがだったでしょうか  ? 次回以降は別のテーマでお伝えする予定です。

 

関連記事

Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 1

Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 2

Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 3

Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 4

Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 5

Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 6

Azure 上に AlwaysOn AG 構成を構築する際のリスナーについて

 

連載 : Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント

https://blogs.msdn.microsoft.com/dataplatjp/iaassql/