連載
» 2008年10月09日 00時00分 公開

仮想化環境を効率よく管理するSCVMM 2008の概要:第1回 SCVMMによって複数のHyper-Vを一元管理する (2/3)

[高添修(エバンジェリスト),マイクロソフト株式会社]

SCVMMのアーキテクチャ

 一元管理、統合管理というと非常に複雑なシステムのように思えるかもしれないが、SCVMMの構造は非常にシンプルだ。まずは下図に示す簡易アーキテクチャを見ていただこう。

SCVMMアーキテクチャの概要
SCVMMは、あくまでHyper-V環境とは独立した存在として、外部から仮想環境を管理する。収集された情報などの保存先としてSQL Server 2005が別途必要だが、無償版のExpress Editionを活用できる。

 SCVMMは仮想環境の管理サーバとして動作し、管理されるHyper-V側にはVMMエージェントが動作している。SCVMM環境を利用する管理者は、管理コンソール(GUIツール)/Windows PowerShellコマンド/セルフサービス・ポータルの3種類(詳細は後述)の管理環境を使ってHyper-Vに指示を出すことになる。そして、それらはHyper-Vマシン上のVMMエージェントに送られ、各Hyper-Vマシンで処理される。

 このようにSCVMMは、新しい仮想化技術を提供するのではなく、Hyper-Vの機能をそのまま利用しながら複数のマシンを一元管理する仕組みになっている。「SCVMMはHyper-Vを利用するが拡張はしない」と考えてもらえれば、SCVMMから出す指示とHyper-V側で行われる処理の関係をイメージすることも容易だろう。

 図に示したとおり、SCVMMはSQL Server 2005ベースのSQLサーバを必要とする。このデータベースには、SCVMMの管理コンソールに表示される仮想マシンのプロパティ情報、ホストの情報、SCVMMが実行したジョブの結果(ログ)などが格納される。なお、このSQLサーバは、無償提供されているSQL Server 2005 Express Edition with SP2でもよい。

 このデータベースについては2つの見方ができる。まず、SCVMMがなくてもHyper-Vが動くのと同様、このSCVMMデータベースがなくてもHyper-Vそのものの動作に影響はない。こう考えると、バックアップと復元の環境さえ整っていれば、仮想システムにおけるSCVMMデータベースにあまり神経を使わなくてもよいといえる。一方で、SCVMMが仮想システムを一元管理する重要な役割で、一時でも止まってほしくないと考えるのであれば、複数台のSQLサーバをフェイルオーバー・クラスタ化し、止まらない仕組みを作っておけばよい。どちらを選ぶかはシステムの要件次第だ。

 次はもう少し詳しくSCVMMのアーキテクチャを説明する。

詳細なSCVMMのアーキテクチャ
GUIによる管理コンソールは、スクリプト技術のPowerShellインターフェイスをベースに開発された。自動化などではGUIよりもスクリプトが有利なケースがあるが、GUI経由でも、スクリプトでも、同等の管理ができる。また内部的には、最新のネットワークAPIであるWCFや、Web Service仕様のWS-Managementが使われている。

 図の上から順に見ていこう。まずは管理機能だが、前述のようにSCVMMは管理者やユーザーに対して以下の3つの管理環境を提供する。

  1. GUIベースの管理コンソール
     複数のHyper-Vマシンとその上で動く多くの仮想マシンを可視化し、プロパティやウィザードによって管理を容易にする。また、ウィザードで入力された結果からPowerShellのスクリプトを出力する。
  2. Webベースのセルフサービス・ポータル
     エンド・ユーザーが直接仮想サーバを管理できるようにする。
  3. PowerShellスクリプト環境
     SCVMMの管理機能を直接操作するシェル。そしてSCVMMの運用基盤でもある。

 図の上部にある3つの管理環境に注目すると、すべてにPowerShellが存在している。なぜかというと、SCVMMの管理環境はすべてPowerShellベースで作られているからだ。GUIのツールはPowerShellのスクリプトを呼び出すツールとして実装されているといった方が分かりやすいかもしれない。使い勝手のよいGUIはマイクロソフトの優位点の1つではあるが、運用管理の場面によってはGUIではなくコマンドやスクリプトが有効だという多くのフィードバックをもらってきた。しかし、GUIとコマンドを別々に作っていたのでは抜本的な解決にならないため、スクリプトをベースとした管理環境を構築し、GUIをその上に乗せるという方法を採用したわけだ。こうすれば、スクリプトでできないことはなくなるので、自動化を進めるのにも優位となる。

PowerShellベースの管理環境と、スクリプトを呼び出すためのGUIという関係は、メッセージングシステムの「Exchange Server 2007」や稼働監視製品「System Center Operations Manager 2007」、バックアップと復元のための製品「System Center Data Protection Manager 2007」でも採用されており、今後マイクロソフトの多くの製品がこのパターンを利用することになるだろう。


 図のアーキテクチャの話に戻ろう。SCVMMとPowerShellの間は.NET Framework 3.0に含まれるWindows Communication Foundation(WCF)という技術が利用されている。運用管理者にとってはなじみの薄い用語かもしれないが、マイクロソフトが推進している最新技術の1つでもあるので覚えておいていただきたい。

 また、新しい仮想サーバを作る際にはライブラリからHyper-VマシンへVHDファイルをコピーすることになるが、その際にはバックグラウンド・インテリジェント転送サービス(BITS)が利用されているため、帯域調整をしながらファイル・コピーが実行され、コピーの失敗も防いでいる。このBITSは、物理マシンから仮想マシンを作るP2Vでも利用されている。そして、SCVMMから各マシン上のエージェントへの指示はすべてWS-Managementの技術を利用したWindows Remote Managementサービスが担っているため、DMZに置かれたHyper-Vに対してファイアウォール越しで処理を行う場合であっても環境構築の敷居は低い。

 このように、SCVMMの構成要素は少なく、シンプルなアーキテクチャによって高度な処理を実現している。このシンプルさは、環境構築のときにも、トラブルシューティングのときにも利点になるはずだ。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。