240 likes | 388 Views
仮想マシンと 物理マシン の 一元 管理 を可能 にする 仮想 AMT. 九州工業大学 大薗弘記. 従来の PC 管理. 管理ツール. 組織で使用される PC の数は膨大になってきて いる PC の管理は 管理エージェントというソフトウェアを導入して行っている PC が起動していないと管理できない 管理者は障害が発生した PC の 設 置 場所まで行って修復作業を行わなければならない. 管理エージェント. 管理エージェント. ノート PC. PC. PC. ・・・. ・・・. AMT を用いた 管理. 管理ツール.
E N D
仮想マシンと物理マシンの一元管理を可能にする仮想AMT仮想マシンと物理マシンの一元管理を可能にする仮想AMT 九州工業大学 大薗弘記
従来のPC管理 管理ツール • 組織で使用されるPCの数は膨大になってきている • PCの管理は管理エージェントというソフトウェアを導入して行っている • PCが起動していないと管理できない • 管理者は障害が発生したPCの設置場所まで行って修復作業を行わなければならない 管理エージェント 管理エージェント ノートPC PC PC ・・・ ・・・
AMTを用いた管理 管理ツール • 最近のPCにはAMTが搭載されるようになってきている • PCをリモートから管理するためのハードウェア • 管理者はPCをハードウェアレベルで管理することができる • リモートからPCを起動できる • ネットワークの設定ミスをしていても接続できる PC AMT
仮想デスクトップの普及 • 近年、仮想デスクトップが普及してきている • システムをサーバ上の仮想マシン(VM)で動かす • 画面のみをPC上に表示させる • セキュリティを向上させ、管理を容易にすることができる • データの分散・情報漏洩の危険性が低下 • メンテナンスやアップグレードが容易 仮想デスクトップ サーバ マウス・キーボード操作 画面を表示 VM ・・・ VM 画面情報 仮想化
混在した環境での管理 • 組織内ではPCと仮想デスクトップが混在している • 仮想デスクトップの普及はまだ過渡期である • 仮想デスクトップを使用できないPCも存在する • 管理者はPCと仮想デスクトップをそれぞれ管理しなければならない • PCとVMの管理ツールは異なる VM 管理ツール PC 管理ツール 仮想デスクトップ ・・・ PC PC ・・・ AMT AMT ・・・ VM VM サーバ
提案:仮想AMT(vAMT) 管理ツール • VM用の仮想的なAMTを提供 • PCを管理するAMTと同様のインタフェースでVMの管理を行える • CIM、Webサービス、VNC • AMT対応の管理ツールよって一元的な管理が可能 • PCとVMの違いを意識する必要がない VM VM vAMT vAMT ・・・ 仮想デスクトップ PC PC AMT AMT ・・・ ・・・ サーバ
vAMTの機能(検出) 管理ツール • VMの仮想的なハードウェア資産情報を確認する • ネットワーク上に存在するVMを検出 • VMが起動していなくても情報を取得 VM サーバ vAMT ・・・ VM vAMT ①VMの検出 ②仮想ハードウェア情報を取得
vAMTの機能(回復) 管理ツール • 障害の発生したVMの修復作業を行う • vAMT経由でVMにVNC接続して操作 • VMの起動/停止/リセット VM vAMT サーバ ①ユーザがトラブル・コール ②管理者がリモートから画面を表示 ③管理者が修復作業を行う
vAMTの機能(保護) 管理ツール • VMが攻撃を受けたときに仮想ハードウェアのレベルで防御する • 管理エージェントがウィルスを検知したらネットワークを切断 • 管理エージェントが停止させられたらアラートを送信 • 管理エージェントからハートビートを受信 vAMT サーバ エージェント ③ネットワーク接続を制限 VM ①定期的にハートビート送信 ②管理エージェントの停止を検知 ③管理者にアラートを送信
vAMTの構成 VM CIMプロ バイダ群 Web サービス群 CIMOM WS-Manサーバ SOAPサーバ VNCサーバ WS-Man SOAP vAMT Webサーバ :16992 :5900 それ以外 VMのIPアドレス
インタフェース1:CIM 262個 • MOF言語でCIMクラスが記述されている • CIMクラスは以下の要素で構成される • プロパティ • メソッド • 修飾子 • CIMプロバイダ • CIMクラスのインスタンスを管理 class CIM_Processor: CIM_LogicalDevice { [Key] uint32 Number; uint32 Enable(booleanEnabled); }; CIM_Processorプロバイダ CPU情報1 CPU情報2 CPU情報4 CPU情報3
インスタンスプロバイダ 管理ツール 管理ツール • CIMクラスのインスタンスを取得するために使用される • EnumerateInstances • 指定したクラスのすべてのインスタンスを返す • GetInstance • 指定したキープロパティ値を持つインスタンスを1つ返す • メソッド呼び出しもできる • CIMクラスで定義したメソッドを実行する CIM_Processorプロバイダ CIM_Processorプロバイダ CPU情報1 CPU情報1 CPU情報2 CPU情報2 EnumerateInstances GetInstance CPU情報4 CPU情報4 CPU情報3 CPU情報3
関連プロバイダ 管理ツール • 2つのCIMクラスのインスタンスに対して関連づけを行うために使用される • 関連づける各CIMクラスのインスタンスを作成してキープロパティを設定する • 片方のインスタンスを指定すると関連づけられたインスタンスに関する情報を返す CIM_Processorプロバイダ CIM_Chipプロバイダ CPU情報1 CPU製造情報1 ①キー「CPU番号1」を指定 CPU情報2 CPU製造情報2 ・・・ ・・・ ・・・ ②CPU製造情報1を返す CIM_Realizesプロバイダ
CIMプロバイダの作成(1) • CIMPLEを用いてMOFからCIMプロバイダの雛形をC++で生成 CIM_Processorクラス CIMプロバイダ MOF Enum_Instances_StatusCIM_Processor_Provider::enum_instances( ..., Enum_Handler<CIM_Processor>* handler) { for (i = 0; i < nCPU; i++) handler->handle(cpu[i]); return ENUM_INSTANCES_OK; }
CIMプロバイダの作成(2) • libvirtを用いてVMに関する処理を記述 CIM_PowerManagement クラス CIMプロバイダ MOF Get_Instance_StatusCIM_PowerManagement_Provider::get_instance( ..., CIM_PowerManagement*& instance) { pow = virDomainIsActive(dom); instance->PowerState.set(pow); return GET_INSTANCE_OK; }
インタフェース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 267個
vAMTへのアクセス • 管理ツールがAMTにアクセスするにはAMTが搭載されたPCのIPアドレスを指定する • vAMTの場合も対応するVMのIPアドレスを指定して接続できるようにした • NAPTの設定によってVMへのアクセスをvAMT側に変換する 192.168.1.1 VM1 VM2 vAMT1 vAMT2 ・・ ・ 192.168.0.1:7001 192.168.0.1:5901 ホストOS NAPT 192.168.0.1 192.168.1.1:16992 192.168.1.1:5900
停止しているVMの管理 • PCと違い、VMは停止状態の時には実体がない • VMから情報を取得できない • VMにVNC接続できない • vAMTは停止状態のVMも管理できる • libvirtを用いることでVMのコンフィグから情報を取得 • VMに接続できない時はダミーのVNCサーバに接続 VM ダミーの VNCサーバ vAMT VMの コンフィグ
実装 • OpenPegasus、Axis2、KVMを用いて実装した • AMT対応のためにOpenPegasusを修正 • CIMPLEを修正した • AMT対応のためにMOFの文法チェックを拡張 • 作成したCIMプロバイダとWebサービス • CIMプロバイダ:39個 • Webサービス:20個
実験 • 実験の目的 • 既存の管理ツールを用いてvAMTによるVMの管理ができることの確認 • AMTとvAMTの処理性能の比較 • 実験環境 AMT実験環境 vAMT実験環境
処理性能の比較 • AssetDisplayによるCPU情報取得にかかる時間をAMTとvAMTとで比較 • vAMTの処理時間はAMTより短かった • 送られたリクエスト数はどちらも12個で同じ • AMTのハードウェア性能が低いことが原因
関連研究 • QND Plus[Quality Soft] • 管理エージェントを用いてPCとVMを一元的に管理するツール • Virt-manager • XenやKVMなどの異なる仮想化ソフトウェアのVMを一括して管理できる • CIM Virtualization [DMTF 2007] • VMの管理を行えるようにするために仮想化に対応したCIM
まとめ • VMを管理するための仮想的なAMTであるvAMTを提案 • PCとVMの一元的な管理が可能 • いくつかの管理ツールの実行に必要なCIMプロバイダとWebサービスを作成した • 既存の管理ツールからvAMTを用いた管理を行えることを確認した • 今後の課題 • VM内のOSからvAMTにアクセスするためのインタフェースにも対応する