2012/05/02

System Center 2012 RTM > VMM でサービスのスケール アウトを試す

System Center 2012 Virtual Machine Manager の Server App-V で Tomcat + JRE6 (1 階層) のサービス展開とサービス更新を試してきましたが、同じ環境を使ってサービスのスケール アウトとアップグレード ドメインによるダウンタイムなしのサービス更新を試してみました。まずは、スケールアウトから。

今回→) System Center 2012 RTM > VMM でサービスのスケール アウトを試す
予定) System Center 2012 RTM > VMM でアップグレード ドメインを試す

サービスのフロントエンドやミドル部分をスケールアウト (サービスを構成するレイヤに仮想マシンのインスタンスを追加していくこと) するには、フロントエンドへのクライアント アクセスやフロントエンドからミドルへの接続性のためにネットワーク ロードバランサーが必要です。専用の機器が無くても、Virtual Machine Manager では Windows Server 2012 の「ネットワーク負荷分散 (NLB)」をロードバランサーとして使用できます。サービスのレイヤを構成する仮想マシンで NLB クラスターを構成するというわけです。NLB による構成方法のドキュメントは、以下にありました。

TechNet ライブラリ > How to Configure NLB for a Service Tier
[URL] http://technet.microsoft.com/en-us/library/hh335098.aspx 

仮想マシンで NLB を構成するために、まず、ファブリックのリソースとして「VIP テンプレート (VIP プロファイル)」を作成します。今回は、Tomcat の既定のポート「8080/TCP」のテンプレートを作成しました。


VIP テンプレートを作成したら、NLB のクラスター IP に使用する IP アドレス (の範囲) を、論理ネットワークの IP プールの設定で「ロードバランサーの VIP のために予約された IP アドレス」に設定しておきます。


サービスを“クラウド”に展開する場合は、クラウドのプロパティで、NLB のロードバランサーを追加し、VIP テンプレート (VIP プロファイル) を選択しておきます。


これで事前準備は完了。続いて、サービス テンプレートを作成して、ロードバランサーを使用するスケール アウト可能なサービスを定義します。今回は、前々回作成した Tomcat 7.0.26 (アップグレード ドメインによる更新を試す予定なので、あえて古いバージョンを使用) の仮想マシン テンプレートを使ってサービスを定義します。


仮想マシンの「ハードウェア構成」では、ネットワークを IP プールのある論理ネットワークに接続し、IP プールから「IPv4 のみ」を静的に割り当てます。また、Windows Server 2008 R2 (SP1) Hyper-V ホストに展開する場合は、「MAC アドレスのスプーフィングを有効にする」をチェックします。これは、NLB の構成のために必要です (ただし、Windows Server 2008 R2 Hyper-V を使用時のみ。Windows Server 2008 SP2 Hyper-V、XenServer、VMware のときはオンにしないこと)。


Hyper-V 仮想マシンにおける NLB の構成については、以下のホワイトペーパーの「3.6.5 NLB クラスター」の項で説明されています。

仮想化 TechCenter > ダウンロード > 関連ドキュメント > サーバー仮想化における システム構成ガイド ホワイト ペーパー - 第 2 版 
[URL] http://technet.microsoft.com/ja-jp/virtualization/ff603844

なお、オンにする必要があるのにしていなければ、サービス テンプレートの保存時に忠告してくれました。(MAC アドレスのスプーフィングの有効化は、論理ネットワークを指定する前にしておかないと、状態が保存されないみたいなので、何度かテンプレートを閉じたり開いたりして確認するとよいかも)


「OS の構成」では、NLB を構成できるように、「ネットワーク負荷分散」の機能を追加しておきます。「ネットワーク負荷分散ツール」はオプション (必須でない)で追加します。


サービス テンプレートに「ロード バランサーの追加」で NLB の VIP テンプレートを追加し、「コネクタ」を使用して、「サーバー接続」を仮想マシンの NIC に接続します。また、「クライアント接続」を論理ネットワークに接続します。さらに、Tomcat の仮想マシンを選択して、「このコンピューター層はスケール アウト可能」をチェックして、最大インスタンス数をとりあえず「4」に設定してみます。「既定」と「最小」はとりあえず「1」のままでいきます。


サービス テンプレートができたら、サービスを展開します。


仮想マシン 1 インスタンスのサービス展開が完了しました。見た目は前々回と変わりませんが、NLB のロードバランサーが有効になっているところが違います。仮想マシンのゲストにログオンして「ネットワーク負荷分散マネージャー」を開いてみると、1 ノードでクラスターが構成されています (クラスター IP は、VIP で予約したものになっています)。



Virtual Machine Manager のコンソールからは、「ファブリック」の「ロードバランサー」を「サービス」表示で開くと確認できます。


このクラスター IP にクライアントがアクセスできるようにするには、DNS に自分で A レコードを登録しなければいけないみたいです。


さて、本題はこれから。サービスをスケールアウトしてみましょう。


仮想マシン名は指定しなければいけませんでしたが、ちょちょいのちょいでスタート。



完了しました。DNS に登録したクラスター IP に関連付いた FQDN で Tomcat にアクセスできています。




「ネットワーク負荷分散マネージャー」を開いてみると...




0 件のコメント: