SE の雑記

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

SQL IaaS Agent 拡張機能への自動登録を試してみる

leave a comment

2020/10 に Register Your Azure SQL Virtual Machines with SQL Server IaaS Agent extension today でアナウンスがありましたが、SQL Server IaaS Agent 拡張機能を自動的に登録する機能が Azure に実装されました。

ドキュメントとしては、SQL IaaS Agent 拡張機能への自動登録 で公開されている機能となります。

「SQL 仮想マシン」のブレードに「SQL Server VM の自動登録」というメニューが追加されており、サブスクリプション全体に対して SQL Server VM の自動登録を有効にすることができます。
image

2019/7 以降に Azure Marketplace の SQL Server インストール済みイメージから展開した場合は、「SQL VM リソースプロバイダー」が有効になっているため、SQL IaaS Agent 拡張機能についても登録が行われた状態となっています。

  • それ以前展開した SQL Server インストール済みイメージの仮想マシン
  • Windows Server のイメージ対して SQL Server をセルフインストールした仮想マシン

というような環境については、SQL VM リソースプロバイダーはインストールされておらず、手動で SQL VM リソースプロバイダーの登録を行う必要がありました。

今回追加された自動登録機能は、「現在 SQL VM がインストールれていない仮想マシン」「今後、SQL Server をセルフインストールした仮想マシン」を自動的に SQL VM リソースプロバイダーに登録を行ってくれるという機能となります。

SQL VM リソースプロバイダーに登録することで、ライセンス管理SQL Server IaaS Agent 拡張機能による管理性の向上 というようなメリットがあるため、Azure の仮想マシンで SQL Server を実行する場合には、基本的に登録が行われるようにしておいた方が、様々なメリットを受けることができます。

機能が追加されていたことは知っていたのですが、まだ実際に動作を確認していなかったので自動登録の機能を確認してみました。

前提環境

SQL IaaS Agent 拡張機能の自動登録ですが、Azure 仮想マシン エージェント によって実現されているようで、最低限 VM エージェントはインストールしておく必要はありそうです。

Marketplace の Windows イメージであればインストールされていますが、オンプレミスで使用していた Windows イメージのようなセルフインストールした環境を Azure にアップロードする場合などは、VM エージェントはインストールしておく必要はあるかと。

最新の VM エージェントについては Windows Server 2008 SP2 (x64) 以降をサポート していますので、自動登録でサポートされる OS についても、これ以降のバージョンとなります。

自動登録の動作

自動登録の 概要 は次のように記載されています。

ご使用の SQL Server VM を SQL IaaS Agent 拡張機能に登録すると、特典の完全な機能セットがロック解除されます。

自動登録が有効になっている場合、サブスクリプション内のすべての未登録の VM に SQL Server がインストールされているかどうかを検出するため、ジョブが毎日実行されます。 これを行うには、SQL IaaS Agent 拡張機能バイナリを VM にコピーし、SQL Server レジストリ ハイブをチェックする 1 回限りのユーティリティを実行します。 SQL Server ハイブが検出された場合、仮想マシンは軽量モードで拡張機能に登録されます。 レジストリに SQL Server ハイブが存在しない場合は、バイナリが削除されます。

サブスクリプションに対して自動登録を有効にすると、SQL Server が既にインストールされている、または今後インストールされる VM が、軽量モードで SQL IaaS Agent 拡張機能に登録されます。 完全な機能セットを使用するには、完全管理モードに手動でアップグレードする必要があります。

 

自動登録の動作ですが、

  • Azure 仮想マシンエージェントがインストールされている仮想マシンに対して、
  • エージェント経由で定期的に SQL Server のインストール状況を確認し、
  • SQL IaaS Agent 拡張がインストールされていない場合は 軽量管理モード でインストールを行う

というような動作が行われているようです。
Azure 仮想マシンエージェントがインストールされている環境については、SQL Server がインストールされているかが定期的にチェックされるため、「既存の仮想マシン」「今後新規に展開した仮想マシン」の両方に対して、自動登録を実施するかの判断が行われるようになります。

自動登録を有効にすることで、Azure 仮想マシンで SQL Server を実行している場合は、IaaS Agent が自動的にインストールされ、SQL VM リソースプロバイダーに登録が行われるのですが、現時点では、自動登録については「短い間隔で自動登録が行われる」のではなく「自動登録されるまでには数日かかる」のが動作の仕様となっているようです。
上記の引用のドキュメントでは、ジョブを毎日実行と書かれていますが、私の場合は、VM を展開してから、自動登録されるまで「3.5 日」程度かかりました。

この動作は想定される動作のようで、ドキュメントを見ると 1 日放置しておけば自動的に登録されるというように読めてしまうのですが、現時点では、実際には数日のが仕様のようで、ドキュメントは後日修正してくださるとのことでした。

 

「SQL Server VM の自動登録」を有効にしたサブスクリプションでは、Azure 仮想マシンエージェントがインストールされている仮想マシンをターゲットとして、SQL Server のインストール状況がチェックされているようです。

SQL Server がインストールされていると、レジストリの「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server」配下に、インスタンスに関してのレジストリの項目が作成されていますので、このレジストリハイブのチェックを行い、SQL Server がインストールされているかを確認しているのかと。

SQL Server がインストールされており、SQL IaaS Agent 拡張機能がインストールされていない場合は、IaaS Agent 拡張機能のインストールが行われます。

SQL IaaS Agent 拡張機能は、Azure 仮想マシンエージェントのプラグインとして動作していますので、インストールされている場合は「C:\Packages\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent」が存在しているはずです。

自動登録でインストールされた、SQL IaaS Agent 拡張機能は「軽量管理モード」でインストールされるため、実行中の SQL Server のサービスの再起動は不要でインストールが行われます。

ただし、軽量管理モードは、ライセンス関連の変更のみが可能であり、IaaS Agent のその他の機能については利用することはできません。

image

完全モードへの切り替え

フル機能を使用するためには、完全モードに変更をする必要がありますが、完全にした場合には、SQL Server のサービスの再起動が必要となりますので、稼働中の SQL Server については、完全にするタイミングの調整が必要になるかと思います。
(いつでもサービスを再起動していい環境でしたらすぐに切り替え可能ですが)

完全への切り替えは CUI やポータルから実行することができます。

image

完全でインストールした環境については「Microsoft SQL Server IaaS Agent (SQLIaaSExtension)」「Microsoft SQL Server IaaS Query Service (SqlIaaSExtensionQuery)」というようなサービスがインストールされ、インストールされている SQL Server に対して様々な管理が行えるようになりますので、Azure の仮想マシンで SQL Server を起動していることのメリットを享受するのであれば、どこかのタイミングで完全に切り替えた方がよいかと思います。

Share

Written by Masayuki.Ozawa

12月 20th, 2020 at 6:48 pm

Posted in Azure,SQL Server

Tagged with ,

Leave a Reply