SE の雑記

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

Azure の VMs の SQL Server はどのようにして展開されているか

leave a comment

Azure の VIrtual Machines では、SQL Server インストール済みのイメージを展開することができます。
image

これがどのようにして展開されているのかが気になったので調べてみました。

■サーバー名を変更することによる影響


SQL Server でサーバー名を変更したときに定番となる作業として以下の KB に記載されているストアドの実行があります。

[BUG] SQL Server Books Online の「サーバーの名前の変更」における記述の不備について

VMs のサーバー名は自由に設定ができるのですが、これに対してどのように対応しているのかが気になったというのが今回の始まりになります。

 

■VMs で SQL Server を展開するときの仕組み


調べてみた結果タスクスケジューラーを使用して展開を行っているようです。

SQL Server が使用できるイメージではタスクスケジューラーで以下のタスクが設定されています。
imageimageimageimageimageimageimageimage

操作には以下の設定がされています。

  • C:Program FilesMicrosoft SQL Server110Setup BootstrapSQLServer2012setup.exe
  • /ACTION=CONFIGUREIMAGE /IACCEPTSQLSERVERLICENSETERMS /INSTANCENAME="MSSQLSERVER"

初回のログオン時にSQL Server のSetupを実行するように設定がされています。
そのため、イメージの展開後にリモートデスクトップでログオンをしないと SQL Server を正常に利用することができないかと思います。

SQL Server 2008 R2 以降で使用できるようになった SysPrep を使用した SQL Server 2012 のインストール を使用しているのかと思ったのですがそういうわけでもないようですね。
SysPrep を使用した SQL Server のインストールを完了する場合は Action は CompleteImage を使用していたはずなのですが、ConfigureImage は RTM 以降に新しく追加されたオプションのようでした。
# CU2 で追加されたアクションのようですが。

ConfigureImage についてのヘルプが見つからないため、このアクションが何をしているのかが調べられていないのですよね…。

VMs のイメージは初期の段階で Sysprep を使用したインストールではなく、すべて機能をインストールした状態となっているようです。そのため、起動直後の状態では SQL Server はサーバー名を指定したものではなく [WIN-IE62TTAD3SM] という サーバー名で認識していました。
初回ログオン後に ConfigureImage によるセットアップが終了すると指定したサーバー名で SQL Server は認識をするようになっているのでこの辺の調整をしてくれるオプションだとは思うのですが。Sysprep 対応した展開の方法が増えるのでしょうか??

SQL Server のイメージはファイアウォールで SQL Server のポートは閉じられた状態になっているので、これを解除するために一度はログオンをすることになるかと思いますので、このような仕掛けをしておいてもよいのかもしれませんね。

VMs にミドルウェアをインストールする場合、Sysprep 用の対応を施す必要がある一例になるのかと。
SQL Server をインストールしたイメージをキャプチャして再展開する場合はこの辺を手動で設定しておかないといけないのでしょうね。

Share

Written by Masayuki.Ozawa

7月 5th, 2012 at 10:11 pm

Leave a Reply