SEブログ

【Azure】MS SQL Serverでクラスタ構成を作る(1)

こんにちは!

 

自分の Azure の環境に Windows サーバーを展開しているうちに、冗長化もしたくなってきました。

オンプレミス環境でフェールオーバークラスタは構築していましたが、Azure でも構築できるのかな?と思い、ついつい調べてみましたところ対応しているようです。

 

2015 年 4 月 から、マイクロソフトが Azure 上でフェイルオーバークラスタをサポートしているようです。

Windows Server Failover Cluster と呼ばれていて、名前が長いので以降 WSFC と省略いたします。

Microsoft server software support for Microsoft Azure virtual machines

※Windows Server 2016 Standard or Windows 10 Pro versions are not available in the Azure Marketplace.

 の下あたりに Failover Clustering と書いてあります。

https://support.microsoft.com/en-us/help/2721672/microsoft-server-software-support-for-microsoft-azure-virtual-machines

 

 

以下の OS が WSFC をサポートしておりますが、注意点として、Windows Server 2008 R2 と Windows Server 2012 については、ホットフィックスを全てのノードにインストールしなければなりません。

 

  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016

 

Update enables SQL Server Availability Group Listeners on Windows Server 2008 R2 and Windows Server 2012-based Microsoft Azure virtual machines

https://support.microsoft.com/en-us/help/2854082/update-enables-sql-server-availability-group-listeners-on-windows-serv

 

 

また、先に今回参考にさせていただきました資料のリンクを貼っておきます。

 

 

Windows Server のフェールオーバー クラスタリング

https://docs.microsoft.com/ja-jp/windows-server/failover-clustering/failover-clustering-overview

 

Azure Virtual Machines で SQL Server フェールオーバー クラスター インスタンスを構成します。

https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/sql/virtual-machines-windows-portal-sql-create-failover-cluster

 

 

今回は OS のフェールオーバークラスタだけではなく、SQL Server のフェールオーバークラスタもやってみました。

 

構成について

 

サーバー構成

 

WSFC を構成する上での最小構成となります。

DBサーバーをクラスター構成にします。

LoadBalancer は SQL Server FCI の IP を保持します。

 

 

種類 役割 Azureのテンプレート ホスト名 プライベートIP
AD ドメインメインコントローラー Windows Server 2016 Datacenter devad01 10.0.0.11
DB 1 号機 MSSQL サーバー Windows Server 2016 SQL Server 2016 Standard devdb01 10.0.0.21
DB 2 号機 MSSQL サーバー Windows Server 2016 SQL Server 2016 Standard devdb02 10.0.0.22
LB ロードバランサー Azure LoadBalancer devlb 10.0.0.100

 

 

事前準備

 

  • AD を立てる事と、DB サーバーを ドメインに参加する準備は既に済んでいる事としますので、手順は省略します。
  • DB サーバーのデプロイ時に可用性セットを作成します。手順は省略します。
    • 障害ドメインと更新ドメインは規定値で設定しています。
      • 障害ドメイン:3
      • 更新ドメイン: 5
  • ストレージプールを作るために、各 DB サーバーにディスクを 2 個追加します。HDDでもSSDでも構いません。
  • WSFC の対象サーバーは、可用性セットと同じ Azure リソース グループ内に配置します。
  • クラスター対象のノードが同じ仮想ネットワークに属している必要があります。
  • クラスター対象のノードが 全て Windows Server 2016 である必要があります。
  • Window アップデートが最新である事が推奨になります。

 

それでは始めてみましょう。

 

 

 

作業手順

 

データベースエンジンの削除

 

DB サーバー 1 号機と2 号機両方で行います。

 

1. プログラムと機能から Microsoft SQL Server 2016 (64bit) を右クリックし、[アンインストールと変更] をクリックします。

 

2. [削除] をクリックします。

 

3. AzureVM デプロイした サーバーのインスタンスは MSSQLSERVER なのでそのままで [次へ] をクリックします。

 

4. データベース エンジンサービスにチェックをいれます。[次へ] をクリックします。

 

5. [削除] をクリックします。

 

6. 削除が完了しましたので、[閉じる] をクリックします。

 

 

Windows Firewall からルールを追加

 

2 つのルールを追加します。

  • MSSQL で使用するポート(Windows Server 2016 SQL Server 2016 Standard では初期設定済みでした。)
  • ロードバランサーと 正常性プローブの通信をするポート

 

1. コントロールパネルから Windows ファイアウォールを開き、[詳細設定] をクリックします。

 

2. MSSQL のポートについて、AzureVM からデプロイしたサーバーは既に追加されています。

 

3. ロードバランサーと通信するポートを追加しますので、受信の規則を右クリックし、[新しい規則] をクリックします。

 

4. ポートを選択し、[次へ] をクリックします。

 

5. TCP を選択し、特定のローカルポートを選択し 59999 を入力し、[次へ] をクリックします。

 

6. 接続を許可するを選択し、[次へ] をクリックします。

 

7. このままの状態で [次へ] をクリックします。

 

8. 名前は任意ですので、一応分かるように以下のように入力します。

 

9. ルールが追加されました。

 

 

 

次のページへ進みます。

 

【Azure】MS SQL Serverでクラスタ構成を作る(2)