slide - KSL

九州工業大学大学院
情報工学府 情報創成工学専攻
12675004 大薗弘記

組織で使用されるPCの数は膨大になってきている
◦ PCの管理は管理エージェントというソフトウェアを導入
して行っている

PCが起動していないと管理できない
◦ 管理者は障害が発生したPCの設置場所まで行って修
復作業を行わなければならない
PC
管理ツール
ノートPC
PC
管理エー
ジェント
・・・
管理エー
ジェント
・・・

最近のPCにはAMTが搭載されるようになってきて
いる
◦ PCをリモートから管理するためのハードウェア

管理者はPCをハードウェアレベルで管理することが
できる
◦ リモートからPCを起動できる
◦ ネットワークの設定ミスをしていても接続できる
PC
管理ツール
AMT

近年、仮想デスクトップが普及してきている
◦ システムをサーバ上の仮想マシン(VM)で動かす
◦ 画面のみをPC上に表示させる

管理者はPCとVMをそれぞれ管理しなければならな
い
◦ PCとVMの管理ツールは異なる
仮想デスクトップ
・・・
PC
PC
AMT
・・・
AMT
VM
PC
管理ツール 管理ツール
VM
・・・
サーバ
VM

VM用の仮想的なAMTを提供
◦ PCを管理するAMTと同様のインタフェースでVMの管
理を行える
 CIM、Webサービス、VNC
◦ AMT対応の管理ツールよって一元的な管理が可能
 PCとVMの違いを意識する必要がない
・・・
仮想デスクトップ
PC
PC
AMT
・・・
VM
AMT
管理ツール
・・・
vAMT
VM
vAMT
サーバ
VM
Web
サービス群
CIMプロ
バイダ群
CIMOM
WS-Manサーバ
SOAPサーバ
WS-Man
vAMT
VNCサーバ
SOAP
Webサーバ
:16992
:5900
VMのIPアドレス
それ以外
262個

MOF言語でCIMクラスが記述されている
◦ CIMクラスは以下の要素で構成される
 プロパティ
 メソッド

CIMプロバイダ
class CIM_Processor :
CIM_LogicalDevice {
[Key] uint32 Number;
uint32 Enable(boolean Enabled);
};
◦ CIMクラスのインスタンスを管理
 インスタンスの列挙
 特定のインスタンスの取得
 メソッド呼び出し GetInstance
EnumerateInstances
CIM_Processorプロバイダ
CPU1
CPU2
CPU3
CPU4

CIMPLEを用いてMOFからCIMプロバイダの雛形を
C++で生成
CIM_Processor
クラス
MOF
CIMプロバイダ
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;
}

libvirtを用いてVMに関する処理を記述
CIM_PowerManagement
クラス
MOF
CIMプロバイダ
Get_Instance_Status
CIM_PowerManagement_Provider::get_instance(
..., CIM_PowerManagement*& instance)
{
pow = virDomainIsActive(dom);
instance->PowerState.set(pow);
return GET_INSTANCE_OK;
}

WSDLでオペレーション等が記述されている
◦ Axis WSDL2Javaを用いてWSDLからWebサービス
の雛型をJavaで生成
 libvirt-javaを用いてJavaからlibvirtを呼び出す
remoteControl
オペレーション
WSDL
267個
public RemoteControlResponse
remoteControl(RemoteControl control)
{
command = control.getCommand();
if (command == 1)
domain.shutdown();
return …
}

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実験環境
OS
Windows 7
Professional
OS
debian 2.6.32-5amd64
CPU
Intel(R) Core(TM) i7
3.40GHz
CPU
Intel(R) Core(TM) i7
2.93GHz
メモリ
2GB
メモリ
4GB
AssetDisplayによるCPU情報取得にかかる時間を
AMTとvAMTとで比較
◦ vAMTの処理時間はAMTより短かった
◦ 送られたリクエスト数はどちらも12個で同じ
◦ AMTのハードウェア性能が低いことが原因
1600
1400
処理時間 [ms]

1386
1200
1000
800
600
399
400
200
0
AMT
vAMT

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にアクセスするためのイン
タフェースにも対応する