ソフマップ・ドットコム

Windows Server での仮想環境( Windows Server 2012 と SCVMM )での検証や勉強した事を書き綴る技術色の強いブログです。

SCVMM でクラウドに展開したサービスでスケールアウトを試す – 準備編


この前の記事で、プライベートクラウド環境に多層アプリケーション構造のサービスを展開しましたが、今回は別に展開したサービスからスケールアウトを試してみたいと思います。

スケールアウトとは、簡単に言うと、サーバの数を増やすことで性能を上げる事で、サービスを構成するレイヤに仮想マシンのインスタンスを追加することです。1 台 1 台の処理能力が低くても大量のサーバで同じ Web サービスを動かせば処理性能を上げられます。

スケールアウトを試すには、NLB( ネットワーク負荷分散 ) を使ったの環境を構成する必要があります。サービスのフロントエンドやミドル部分をスケールアウトするには、ネットワークロードバランサーが必要となりますが、SCVMM では Windows Server 2008 R2 の機能の追加で使用できる「 ネットワーク負荷分散 」をロードバランサーとして使用できます。つまりは、サービスのレイヤを構成する仮想マシンで NLB クラスターを構成するというわけです。

早速、サービスのスケールアウトを試すべく、チャレンジするものの、エラーが頻発して大変でしたが、エラー・失敗も含めて忘備録として記事にさせてもらいます。

仮想マシンでロードバランサーを使用するには VIP テンプレートを作成する必要があります。
ファブリックのネットワークから VIP テンプレートを右クリックして VIP テンプレートの作成を選択します。すると、VIP テンプレートの作成ウィザードが起動します。

名前の欄に任意の名前を入力し、仮想 IP ポートには今回は 80 を入力します。

VIP テンプレートの作成

テンプレートの種類の画面で、作成するテンプレートの種類で最適なものを選択します。
今回は、「 特定 」を選択して、製造元が Microsofft モデルが Network Load Balancing ( NLB ) を選択します。

テンプレートの種類

プロトコルの選択画面。ここでは、TCP にチェックを入れます。

プロトコルの選択

常設の設定画面で、常設にはチェックを入れず次に進みます。

常設の設定画面

確認画面。設定の内容に確認がなければ、完了をクリックします。

設定の確認

これで、VIP テンプレートの作成は完了しました。次に、ロードバランサーに割り振るために IP プールを作成します。
任意の名前を付け、使用する論理ネットワークを指定します。

IP プールの設定

IP アドレスの範囲で「 ロードバランサーの VIP のために予約された IP アドレス 」の部分で割り当てるの部分で、割り当てる IP アドレスの範囲を指定します。

ロードバランサーの VIP のために予約された IP アドレス

これで、IP プールの設定は完了です。
ちなみに、サービスをクラウドへ展開する場合、クラウドのプロパティで NLB のロードバランサーを追加し、VIP テンプレートを選択しておきます。

これで、サービスを展開する準備ができたので、次に仮想マシンの設定を行います。
仮想マシンの「 ハードウェア構成 」で IP プールが存在する論理ネットワークを接続して、「 MAC アドレスのスプーフィングを有効にする 」にチェックを入れます。これの設定は、NLB の構成のために必要です。
※ ただし Windows Server 2008 R2 の Hyper-V を使用しているときのみ設定します。

MAC アドレスのスプーフィングを有効にする

次に、機能の箇所で、「 ネットワーク負荷分散 」にチェックを入れます。ちなみに、「 ネットワーク負荷分散ツール 」はオプションなので、必須ではありません。

ネットワーク負荷分散

設定が完了したらサービスの展開を行うため、サービステンプレートデザイナーを開きます。
そこで、上部メニューにある、ロードバランサーの追加をクリックし VIP テンプレートを追加します。その後、コネクタを使用して、「 サーバー接続 」を仮想マシンの NIC に接続し「 クライアント接続 」を論理ネットワークに接続します。また、仮想マシンを選択して「 このコンピューター層はスケール アウト可能 」にチェックを入れて、展開の構成をクリックします。

ロードバランサーを接続します

サービスの展開画面でプレビュー画面を確認、サービスの展開をクリックします。

サービスの展開

これで、準備が完了。ジョブが走り出したので、画面をボーと眺めていたら、タイムアウトでエラーが発生しました。
エージェントのインストールスクリプトでタイムエラーが発生したようです。

タイムエラーで処理がエラーとなった

とりあえず、タイムアウトの値を修正。300 から 500 へ変更してみた。

タイムアウトの値を修正

もう一度、サービスの展開を再開します。

再度、サービスの展開を実行

すると、今度はまた別のエラーが発生し、処理が中止されました。
SCVMM は [ コンピュータ名 ] から状態を取得できませんでした。というエラーが発生。( エラーコードは 22655 )

またまたエラー

エージェントがきちんとインストールされていないのか?と思い、展開に失敗した仮想マシンへ接続してみて確認してみましたが、エージェントはきちんとインストールされていました。

エージェントのインストール状況を確認

原因がかわらぬまま、もう一度、展開してみるも再度同じエラーが出て展開が止まってしまいます。

再度再開

なんでなのか、原因もわからないまま、しばらく考えていましたが、展開しようとしてた Firefox 18 を別にシーケンスしていた Firefox 19 に変更したと所、何故かうまく展開できました。

サービスの展開に成功

サービスの展開に成功

はっきりとした原因は不明ですが、展開しようとしていたアプリが Firefox 18 から Firefox 19 に変更した途端、展開に成功したということは、シーケンスの段階で、何らかのエラーが発生していて、それが展開の妨げになったのではないかと思いますが、真相は不明のまま。また、同じ状況で検証してみます。

問題なく展開されています。原因がわからないので、釈然としませんが、とりあえず、先に進めたいと思います。

サービスの展開に成功した

展開した仮想マシンへ接続し、ネット枠負荷分散マネージャーを確認します。確認すると、1 ノードでクラスタが構成されているのがわかります。IP アドレスは、IP プールで予約した IP が割り当てられています。

ネットワーク負荷分散マネージャー

ついでに、アプリケーションが正常に展開されているかを確認します。Firefox 19 のショートカット。説明の箇所が Microsoft Application Virtulization SAV Launcher と表示されています。

ショートカットのプロパティ

Q ドライブ直下の Firefox 19 にインストールされている。

Q ドライブ

Server App-V のエージェントのサービスも正常に動作しているのがわかる。

サービスの確認

次に SCVMM のコンソールから、ロードバランサーのサービスが動いているかを確認しますので、ファブリックからサービスをクリックする。仮想 IP の情報やサーバ接続先の情報などが載っています。

サービスの確認

これで、ようやくスケールアウトする準備が整いました。次回は、本題のサービスのスケールアウトを試してみます。


, , , , ,


Facebook ページへの「いいね!」もお願いします。 Facebook ページで最新記事のお知らせと、外部サイトの紹介を行っています。
是非「いいね!」をしていただき、最新の情報を Facebook で受け取ってください。



コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>