仮想マシンとPCの一元管理を 可能にする仮想AMTの開発

Slides:



Advertisements
Similar presentations
XML ゼミ 独習 XML ~ 第 6 章 XHTML~ 6.1 XHTML の概要 6.2 XHTML の構造 谷津 哲平.
Advertisements

ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
ファイルキャッシュを考慮したディスク監視のオフロード
コンピュータプラクティス I 再現性 水野嘉明
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
クラウド上の仮想マシンの安全なリモート監視機構
JPAを利用した RESTful Webサービスの開発
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
WebサービスII (第10回) 2007年11月28日 植田龍男.
JavaによるCAI学習ソフトウェアの開発
早稲田大学大学院理工学研究科 情報科学専攻修士2年 後藤滋樹研究室 坂本義裕
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
帯域外リモート管理を継続可能な マイグレーション手法
大きな仮想マシンの 複数ホストへのマイグレーション
ネストした仮想化を用いた VMの安全な帯域外リモート管理
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
RMI ソフトウェア特論 第6回 /
アスペクト指向プログラミングを用いたIDSオフロード
IPv6アドレスによる RFIDシステム利用方式
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
7. セキュリティネットワーク (ファイアウォール)
Xenによる ゲストOSの監視に基づく パケットフィルタリング
暗黙的に型付けされる構造体の Java言語への導入
IaaS型クラウドにおける インスタンス構成の動的最適化手法
Java Bytecode Modification and Applet Security
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
各種ルータに対応する P2P通信環境に関する研究
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
信頼できないクラウドにおける仮想化システムの監視機構
Virtualizing a Multiprocessor Machine on a Network of Computers
仮想環境を用いた 侵入検知システムの安全な構成法
ソフトウェア工学 知能情報学部 新田直也.
仮想マシンと物理マシンを一元管理するための仮想AMT
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
アスペクト指向言語のための視点に応じた編集を可能にするツール
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
プログラム分散化のための アスペクト指向言語
強制パススルー機構を用いた VMの安全な帯域外リモート管理
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

仮想マシンとPCの一元管理を 可能にする仮想AMTの開発 九州工業大学大学院  情報工学府 情報創成工学専攻 12675004 大薗弘記

従来のPC管理 組織で使用されるPCの数は膨大になってきている PCが起動していないと管理できない ・・・ PC 管理エージェント 管理ツール 企業など組織のIT化の進展に伴い、組織で使用されるPCの数は膨大になってきている。組織のIT部門の管理者は組織内のすべてのPCを管理しなければならない。PCの管理はOS上に管理エージェントというソフトウェアを管理対象のPCに導入して行っている。 しかし、この方法では管理対象となるPCのOSが起動していないと管理を行うことができない。その場合、管理者は障害が発生したPCの設置場所まで行って修復作業を行わなければならない。このようにソフトウェアベースの管理では限界がある。

AMTを用いた管理 最近のPCにはAMTが搭載されるようになってきて いる 管理者はPCをハードウェアレベルで管理することが できる ネットワークの設定ミスをしていても接続できる PC AMT 管理ツール そこで、最近のPCにはAMTが搭載されるようになってきている。AMTはインテルのvProブランドのPCに搭載されている、PCをリモートからで管理するためのハードウェアである。AMTを利用することで管理者はPCをハードウェアレベルで管理することができる。 従来のソフトウェアレベルの管理ではOSが動いていなければ管理を行うことができなかったが、AMTによる管理ではリモートからPCを起動して管理を行うことができる。また、ネットワークの設定ミスをしていても接続を行うことなどもできる。組織内にPCしかなければAMTによる管理で十分だったが~。 AMTは、Active Management Technologyの略。 ネットワーク上のコンピュータ資源の検出、障害回復、保護を行える。

仮想デスクトップの混在 近年、仮想デスクトップが普及してきている 管理者はPCとVMをそれぞれ管理しなければならな い AMT 管理ツール ・・・ サーバ 仮想デスクトップ 仮想デスクトップの普及によって組織内ではPCと仮想デスクトップが混在している。その理由として、仮想デスクトップの普及はまだ過渡期であることと、それだけではなく、ネットワークが繋がらない環境でも使用されるノートPCなどは仮想デスクトップを使用できないということも挙げられる。 組織内にPCしかない場合はAMTによって管理できるが、PCと仮想デスクトップが混在した環境では、管理者はPCとVMを別々の管理ツールを使って管理しなければならない。

提案:仮想AMT(vAMT) VM用の仮想的なAMTを提供 PCを管理するAMTと同様のインタフェースでVMの管 理を行える CIM、Webサービス、VNC AMT対応の管理ツールよって一元的な管理が可能 PCとVMの違いを意識する必要がない PC AMT ・・・ サーバ VM vAMT 管理ツール 仮想デスクトップ そこで、VM用の仮想的なAMTを提供する仮想AMTを提案する。仮想AMTはPCを管理するAMTと同様のインタフェースでVMの管理を行えるものである。そのインタフェースは、CIM、Webサービス、VNCを用いる。 CIMとは、管理対象デバイスをメーカや種類によらず管理するための規格で、新しいAMTではCIMがメインに使われている。古いバージョンのAMTではWebサービスが使用されていたため、新しいAMTではどちらにも対応できるようになっている。 AMTと仮想AMTを使用することでPCとVMの違いを意識することなく、AMT対応の既存の管理ツールよって一元的な管理が可能になる。

vAMTの構成 CIMOM VM CIMプロ バイダ群 vAMT WS-Manサーバ WS-Man SOAPサーバ Web サービス群 VNCサーバ Webサーバ :16992 :5900 それ以外 VMのIPアドレス 仮想AMTの構成について説明する。管理ツールがリクエストを送る時は管理を行いたいVMのIPアドレスと16992番ポートを指定する。リクエストはまずWebサーバに送られて、URLによってWS-ManagementとSOAPのどちらであるか識別される。 WS-Managementの場合、そのリクエストはWS-ManサーバでCIMのリクエストに変換されて、CIMオブジェクトマネージャに送られ、CIMOMが適切なCIMプロバイダに送る。1つの機能に対して1つのCIMプロバイダが割り当てられており、管理の内容に応じて必要なCIMプロバイダが呼び出されてVMの情報取得や操作を行う。 SOAPのリクエストの場合は、SOAPサーバによって適切なWebサービスにリクエストが送られてVMの情報取得や操作を行う。 VMのIPアドレスの5900番ポートへのアクセスの場合は、VNCサーバに送られてVNC接続が可能になる。 次からはCIMとWebサービスについて説明していく。

インタフェース1:CIM MOF言語でCIMクラスが記述されている CIMプロバイダ CIMクラスは以下の要素で構成される 262個 MOF言語でCIMクラスが記述されている CIMクラスは以下の要素で構成される プロパティ メソッド CIMプロバイダ CIMクラスのインスタンスを管理 インスタンスの列挙 特定のインスタンスの取得 メソッド呼び出し class CIM_Processor :   CIM_LogicalDevice { [Key] uint32 Number; uint32 Enable(boolean Enabled); }; CIMクラスはMOFという言語で記述され、主にプロパティ、メソッドで構成される。 上の図はCIMクラスの記述例であり、CIM_ProcessorというCPU情報を扱うクラスが定義されている。CIM_ProcessorはCIM_LogicalDeviceというデバイスの論理的な情報を扱うためのCIMクラスを継承したクラスで、CPU番号を示すNumberというプロパティとCPUの有効化・無効化を行うためのEnableというメソッドを持っている。 このCIMクラスのインスタンスを管理するのがCIMプロバイダである。例えば、CIM_Processorが4つのインスタンスを持っている時、CPU情報を全部取得したい場合は、EnumerateInstancesで全てのインスタンスを取得する。また、あるCPUを無効化したい場合は、GetInstanceでそのインスタンスを1つだけ取得し、Enableメソッドを呼び出して無効化する。 インテルが提供しているCIMクラスは262個ある。 GetInstance CPU1 CIM_Processorプロバイダ CPU2 CPU4 CPU3 EnumerateInstances CPU1 CIM_Processorプロバイダ CPU2 CPU4 CPU3

CIMプロバイダの作成(1) CIMPLEを用いてMOFからCIMプロバイダの雛形を C++で生成 CIM_Processorクラス Enum_Instances_Status CIM_Processor_Provider::enum_instances( ..., Enum_Handler<CIM_Processor>* handler) { for (i = 0; i < nCPU; i++) handler->handle(cpu[i]); return ENUM_INSTANCES_OK; } CIMプロバイダの作成にはCIMPLEというツールを用いた。CIMPLEとはMOFからCIMプロバイダの雛形を生成するもので、生成した雛形に具体的な処理を記述することでCIMプロバイダを作成する。 先ほどのCIM_ProcessorクラスからCIMプロバイダの雛形を生成すると、図の黒字で書かれた部分が作られる。この中に赤文字のように処理を記述することでCIMプロバイダを作成することができる。この例はインスタンスを列挙するenum_instancesで、CPUの数だけfor文を回してインスタンスを返すように記述している。

CIMプロバイダの作成(2) libvirtを用いてVMに関する処理を記述 CIM_PowerManagement クラス CIMプロバイダ MOF Get_Instance_Status CIM_PowerManagement_Provider::get_instance( ..., CIM_PowerManagement*& instance) { pow = virDomainIsActive(dom); instance->PowerState.set(pow); return GET_INSTANCE_OK; } VMの情報取得や操作を行う処理をする場合はlibvirtというライブラリを使用した。 VMの電源状態を管理するCIM_PowerManagementクラスから生成したCIMプロバイダに、1つのインスタンスを返すget_instanceの記述例を示す。赤字のように、libvirt関数であるvirDomainIsActiveを使ってVMの電源状態を取得し、電源状態を表すPowerStateというプロパティに格納する。

インタフェース2:Webサービス WSDLでオペレーション等が記述されている Axis WSDL2Javaを用いてWSDLからWebサービス の雛型をJavaで生成 libvirt-javaを用いてJavaからlibvirtを呼び出す remoteControl オペレーション public RemoteControlResponse remoteControl(RemoteControl control) { command = control.getCommand(); if (command == 1) domain.shutdown(); return … } WSDL 次に、WebサービスはWSDLという言語で記述される。Webサービスを作成するには、WSDL2Javaを用いてWSDLからWebサービスの雛型をJavaで生成する。Javaから直接呼び出せないので、libvirt-javaというAPIを用いてJavaからlibvirtを呼び出すようにした。 Webサービスではメソッドに相当するものをオペレーションと呼ぶ。図はVMの電源操作を行うremoteControlというオペレーションの記述例を示している。赤字のように、getCommandでリクエストされている操作を調べ、電源をオフしたい場合はshutdownというlibvirt関数を使ってVMを停止させる。 このようなインテルが提供しているWebサービスのオペレーションは267個ある。 267個

停止しているVMの管理 PCと違い、VMは停止状態の時には実体がない vAMTは停止状態のVMも管理できる VMから情報を取得できない VMにVNC接続できない vAMTは停止状態のVMも管理できる libvirtを用いることでVMのコンフィグから情報を取得 VMに接続できない時はダミーのVNCサーバに接続 vAMT ダミーの VNCサーバ VM VMの コンフィグ VMの管理を行う際には問題がある、VMはPCと違い停止状態の時には実体がない。そのため、停止状態のVMから情報を取得したり、VNC接続を行うことができない。 しかし、仮想AMTは停止状態のVMも管理することができる。停止したVMの情報を取得する際は、libvirtを用いることでVMのコンフィグから情報を取得する。VNC接続に関しては、VMに接続できない時はダミーのVNCサーバに接続して、AMTと同様に黒い画面を返すようにする。

実装 OpenPegasus、Axis2、KVMを用いて実装した CIMPLEを修正した 作成したCIMプロバイダとWebサービス AMT対応のためにOpenPegasusを修正 CIMPLEを修正した AMT対応のためにMOFの文法チェックを拡張 作成したCIMプロバイダとWebサービス CIMプロバイダ:39個 Webサービス:20個 vAMTはOpenPegasus、Axis2、KVMを用いて実装した。OpenPegasusはCIMオブジェクトマネージャを、Axis2はSOAPサーバをそれぞれ提供する。AMTに対応するためにOpenPegasusの一部に修正を行った。また、CIMPLEに対しても、AMT対応のためにMOFの文法チェックを拡張する修正を行った。 現在、VMの管理用に39個のCIMプロバイダと20個のWebサービスが実装されている。既存の管理ツールでよく使用されるものから優先的に実装していった。

実験 実験の目的 実験環境 既存の管理ツールを用いてvAMTによるVMの管理が できることの確認 AMTとvAMTの処理性能の比較 OS Windows 7 Professional CPU Intel(R) Core(TM) i7 3.40GHz メモリ 2GB OS debian 2.6.32-5-amd64 CPU Intel(R) Core(TM) i7 2.93GHz メモリ 4GB 実験を行った。実験の目的は、~ 実験環境は表の通りである。

デモ Intel System Defense Utilityを使用してVMの管理を実行した。

処理性能の比較 AssetDisplayによるCPU情報取得にかかる時間を AMTとvAMTとで比較 vAMTの処理時間はAMTより短かった 送られたリクエスト数はどちらも12個で同じ AMTのハードウェア性能が低いことが原因 Intel SDKのAssetDisplayというハードウェア情報を取得するコマンドを用いてCPU情報取得にかかる時間をAMTとvAMTとで比較した。 送られたリクエスト数はどちらも同じ12個だったにも関わらず、AMTに比べてvAMTの方が処理時間が短いということが分かった。その理由として、仮想AMTが搭載されているPC本体のCPUに比べてAMTのハードウェア性能が低いためと考えられる。

関連研究 QND Plus [Quality Soft] Virt-manager 管理エージェントを用いてPCとVMを一元的に管理す るツール Virt-manager XenやKVMなどの異なる仮想化ソフトウェアのVMを 一括して管理できる CIM Virtualization [DMTF 2007] VMの管理を行えるようにするために仮想化に対応し たCIM QND Plusはソフトウェアベースのツールなので、エージェントの停止時や電源のオフ時は管理できない。 Virt-managerではPCの管理を行うことはできない。 CIM VirtualizationはAMTの規格には含まれていないため、これによってAMTで仮想マシンを管理することはできない。また、物理マシンとVMを意識せずに扱うこともできない。 IPMI:CPUやOSに依存することなくハードウェアを管理するためのサーバ用インタフェース。米デル、ヒューレット・パッカード(HP)、NEC、インテルによって発表された。

まとめ VMを管理するための仮想的なAMTであるvAMTを 提案 今後の課題 PCとVMの一元的な管理が可能 いくつかの管理ツールの実行に必要なCIMプロバイ ダとWebサービスを作成した 既存の管理ツールからvAMTを用いた管理を行える ことを確認した 今後の課題 VM内のOSからvAMTにアクセスするためのイン タフェースにも対応する AMTでは管理エージェントの監視を行うために、OS側からAMTに対するアクセスを必要としている。そこでvAMTについても、VM内のOSからvAMTに対してアクセスできるようにする必要がある。 CIM_~が150種類、AMT_~が80種類程度ある。