SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 1月 23rd, 2010

SCVMM 2008 R2 の冗長構成を考える – セルフサービスポータルを NLB –

leave a comment

冗長化構成の最後としてセルフサービスポータルの冗長化を。
セルフサービスポータルは Web サーバーですので NLB で冗長化が可能です。

■使用した環境

今回使用する環境は前回の環境のフロントとして、NLB 構成のセルフサービスポータルを追加します。

image

私の検証環境は TMG 2010 が構築してあるので、NLB 構成とは別にサーバーファーム構成でセルフサービスポータルを
冗長構成する構成も作ってみたいと思います。

TMG 2010 だと以下の構成になります。
 image

TMG 2010 の環境は HTTPS のリスナが設定されているので、HTTPS で受けて内部的には HTTP で通信する構成にしています。

■セルフサービスポータルのインストール

セルフサービスポータルのインストールでは冗長構成の設定はありません。
セルフサービスポータルと SCVMM サーバーを分割してインストールする時と同じ方法で構築します。

[Virtual Machine Manager サーバー] に VMM サーバーの役割をインストールしているサーバーを指定します。
TMG 2010 のサーバーファームを使う際にホストヘッダーが必要になるので、適当なヘッダー名を指定しています。

VMM サーバーのファイアウォールに関しては VMM サーバーインストール時に 8100 に対してアクセス許可を自動的に
設定しているようなので、明示的に設定をする必要はないようです。

 image

■NLB の設定

NLB の設定も通常の Web サーバーの NLB 設定と同じです。
NLB は DHCP による IP 割り当てでは設定ができませんので適当な固定 IP を割り当ててから作業をします。

[ネットワーク負荷分散] の機能をセルフサービスポータルの各サーバーに追加します。
image

今回は Hyper-V 上に構築しているので [MAC アドレスのスプーフィングを有効にする] も忘れずに。image

IP は塗りつぶしていますが、できた環境がこちらです。
03 / 04 の 2 台構成で NLB を設定しています。

image

インストール時に指定したホストヘッダーでアクセスし、正常にセルフサービスポータルが表示されています。
HTTP 経由のアクセスなので、警告文が表示されていますね。
image 

セルフサービスポータルも正常に使用できます。
image

通常の NLB 設定と同じなので特有の設定はありませんでした。

■冗長構成のテスト

片側の NLB を停止させながら冗長構成のテストをします。

image image

image image

image image

両方が停止している状態はエラーとなりますが、片側が生きていれば正常にアクセスができる状態となっています。

■TMG 2010 で冗長化

TMG 2010 ではサーバーファームという機能があります。(ISA 2006 でもあります。)
# Web サーバー側で冗長構成を設定しなくても TMG 側で冗長構成を設定できる機能です。

image image 
サーバーファームとして冗長構成をしたいサーバーの IP または コンピュータ名を指定します。

サーバーファームには [接続検証] とい機能があり、NLB とは異なり死活監視で HTTP アクセスが可能かを調べることができます。
NLB の冗長化では、サーバーが生きていて IIS が死んでいる場合でも負荷分散対象となり、要求が振られたはずですが、
サーバーファームでは HTTP アクセスができない (IIS が死んでいる) 場合は負荷分散対象外とすることができます。
image

後はこのサーバーファームを使用する [Web 公開ルール] を作成すると TMG 経由で公開することができます。
image

TMG のルールでは [内部サイト名] を入力する必要があります。
各 セルフサービスポータルには内部サイト名でアクセスがされますので、インストール時に指定したホスト ヘッダーの値を設定します。
image

設定を進めると使用するサーバーファームを選択する画面になります。
ここで先ほど作成したサーバーファームを選択します。
image

あとはウィザードを進めてルールの作成を完了させます。

TMG 2010 はインターネット経由でアクセスできる環境にしてあるので、外部からアクセスしてみます。
 image

外部からは HTTPS でアクセスしているのですが、セルフサービスポータルでは HTTP で受けているので、
NLB のテストの時と同様警告が表示されています。
セルフサービスポータルを HTTPS で構成しないと警告を消せないみたいですね。

あとはインターネット経由の場合はセルフサービスポータルでコンソールが開けませんでした。
接続する際にホスト OS を DNS で解決できる必要があるようで、エラーとなってしまいました。
image 

セルフサービスポータルはイントラネット向けなのでしょうか…。
この辺は要調査です。

 

VMM サーバー / データベースサーバー / セルフサービスポータルの 3 回に分けて冗長構成を実験してみました。
データベースサーバーとセルフサービスポータルの冗長化は一般的な手法で構成できますが、VMM サーバーの冗長化だけ、
これといった案が導き出せませんでした。

SCVMM を複数台構成にするとなかなか奥が深いものですね。

Written by Masayuki.Ozawa

1月 23rd, 2010 at 3:47 pm

Posted in System Center

SCVMM 2008 R2 の冗長構成を考える – データベースをミラーリング –

leave a comment

SCVMM 冗長構成第 2 弾としてデータベースの冗長化について。
クラスタは通常のインスタンスと変わらないので、今回はミラーリングされているデータベースを使用する実験を。

?

■使用した環境

今回は以下の構成を使用しています。

SCVMM サーバーは前回使用した SQL Server のクライアントコンポーネントをインストールした環境を。

データベースに関してはミラーリングした SQL Server 2008 R2 Nov CTP を 3 台用意して、自動フェールオーバーの
ミラーリングの設定をしています。

image

■接続設定の変更

SCVMM サーバーは前回の環境を使用しているので参照先データベースの設定が前回の状態となっています。
まずはデータベースの参照先の設定変更が必要となります。

SCVMM の管理コンソールに [データベース接続] という管理項目があるのですが、この項目で確認できるデータベースの
接続先の情報は読み取り専用のため、変更することができません。

image?
?
接続先データベースの変更はレジストリを修正する必要があります。
# データベースに接続できないと管理コンソール開けないはずですので、レジストリを修正する形になっているのかと。

レジストリの修正箇所に関しては前回の投稿で書いた場所になるのですが、試してみたところ少し情報が足りなさそうでしたので、
今回の投稿でまとめてみました。

TechNet では以下の情報でデータベースの変更について記載されています。
VMM 2008 用 SQL Server のリモート インスタンスの構成

コマンドラインからのセットアップの情報も参考になりそうです。
コマンド ラインからの VMM コンポーネントのインストール

データベースの接続関連の設定は以下のキーに格納されています。

レジストリのキー
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft System Center Virtual Machine Manager ServerSettingsSql

?

正式な情報が見つからなかったので、今回の検証の結果からの内容になりますが各設定項目は以下のようになっているようです。

名前 種類 設定値
ConnectionString REG_SZ SCVMM で使用するデータベースの接続文字列
CreateNewInstance REG_DWORD 0:既定のインスタンスを使用
1:SQL Server Express を使用してローカルにインスタンスを作成

セットアップ時の選択内容が設定されているようです。

DatabaseName REG_SZ 接続先のデータベース名
InstanceName REG_SZ 接続先のインスタンス名

ブランクの時は既定のインスタンスが使用されるようです。

MachineFQN REG_SZ 接続先のデータベースサーバーの FQN

ここに設定されている内容が SVMM の管理コンソール表示されます。
ロカールインスタンスを使用するようにセットアップをした場合は
この項目は存在しません。
接続で使用されるのは [ConnectionString] の設定なのでこの項目は
ラベル的な意味合いかもしれないです。

MachineName REG_SZ 接続先のデータベースサーバーのサーバー名

ロカールインスタンスを使用するようにセットアップをした場合は
この項目は存在しません。
接続で使用されるのは [ConnectionString] の設定なのでこの項目は
ラベル的な意味合いかもしれないです。

OnRemoteServer REG_SZ 0:ローカルインスタンスを使用
1:リモートインスタンスを使用

?

今回はミラーリング環境ですので、[ConnectionString] をミラーリング用に変更する必要があります。
接続先のサーバーを指定する部分を以下のように変更します。

[変更前]
Server=データベースサーバー名

[変更後]
Server=プリンシパルサーバー名;Failover Partner=ミラーサーバー名

[設定例]
Server=2008R2-DBM-01;Failover Partner=2008R2-DBM-02

今まで、ローカルサーバーを使用していた場合は、[OnRemoteServer] の値も [1] に変更しておきます。

?

■接続先のデータベースに必要となる権限

SCVMM サーバーはデータベースサーバーの [sysadmin] 権限が必要となます。

SCVMM サーバー → データベースサーバーの接続に使用されるログインアカウントですが、

  • [Virtual Machine Manager] サービスをローカルシステムアカウントで実行している場合
    コンピュータアカウントで接続
  • [Virtual Machine Manager] サービスを任意のユーザーアカウントで実行している場合
    サービスの起動アカウントで接続

となりますのでサービスの実行アカウントの設定状態によって変更する必要があります。

コンピュータアカウントを SQL Server のログインとして設定する場合ですが、SQL Server Management Studio (SSMS) の
GUI を使用して設定ができなかったので、SQL を実行してログインを追加する必要がありました。

SSMS からだとオブジェクトの種類で [コンピュータ] が選択できないんですよね。
$ 付きでコンピュータアカウントを指定しても検索ができなかったので SQL で追加してしまいました。
image

以下はコンピュータアカウントのログインを作成するための SQL の一例です。

USE [master]
GO
— コンピュータアカウントのログインを作成
CREATE LOGIN [<ドメイン名><SCVMM サーバー名>$] FROM WINDOWS
WITH
DEFAULT DATABASE = [<SCVMM で使用するデータベース名]
GO

— 作成したログインに [sysadmin] 権限を付与
EXEC [master]..[sp_addsrvrolemember]
@loginname=N’<ドメイン名><SCVMM サーバー名>$’,
@rolename = N’sysadmin’
GO

?

■設定の反映

これでミラーリングされたデータベースを使用する準備は完了です。

[Virtual Machine Manager] サービスを再起動し、設定内容を反映させます。
image

再起動後に開始できないようでしたらレジストリの設定値が間違っている可能性があります。
# データベースに接続ができなくてもサービスは起動します。
開始できない場合はスペルミスがないか見直した方がよいかと思います。

?

■テストの実施

プリンシパルサーバーのサービスの停止または、手動フェールオーバーでデータベースをプリンシパル → ミラーに
フェールオーバーさせてテストを実施します。
image?image
?

SCVMM サーバーのデータベースの参照状態に依存するとは思うのですが、フェールオーバー中に必ず切断されるということは
ありませんでした。
# フェールオーバー時の復旧に時間がかかると切断されてしまうことがありましたが。

100% 接続を維持できるということはミラーリングの使用上難しい (アプリケーション側の再接続のロジックとの兼ね合い) ですが、
フェールオーバークラスタより、フェールオーバー時の停止時間は短いと思います。

残るはセルフサービスポータルの冗長化ですね。
これは今から検証環境を準備して次回投稿したいと思います。
# 私が普段使っている検証環境にセルフサービスポータルが入っていないことに今気付きました…。

Written by Masayuki.Ozawa

1月 23rd, 2010 at 2:08 am

Posted in System Center