slide - KSL

九州工業大学
大薗弘記

組織で使用されるPCの数は膨大になってきている
◦ PCの管理は管理エージェントというソフトウェアを導入
して行っている

PCが起動していないと管理できない
◦ 管理者は障害が発生したPCの設置場所まで行って修
復作業を行わなければならない
PC
管理ツール
ノートPC
PC
管理エー
ジェント
・・・
管理エー
ジェント
・・・

最近のPCにはAMTが搭載されるようになってきて
いる
◦ PCをリモートから管理するためのハードウェア

管理者はPCをハードウェアレベルで管理することが
できる
◦ リモートからPCを起動できる
◦ ネットワークの設定ミスをしていても接続できる
PC
管理ツール
AMT

近年、仮想デスクトップが普及してきている
◦ システムをサーバ上の仮想マシン(VM)で動かす
◦ 画面のみをPC上に表示させる

セキュリティを向上させ、管理を容易にすることがで
きる
◦ データの分散・情報漏洩の危険性が低下
◦ メンテナンスやアップグレードが容易
仮想デスクトップ
画面を表示
仮想化
サーバ
マウス・キーボード操作
VM
画面情報
・・・
VM

組織内ではPCと仮想デスクトップが混在している
◦ 仮想デスクトップの普及はまだ過渡期である
◦ 仮想デスクトップを使用できないPCも存在する

管理者はPCと仮想デスクトップをそれぞれ管理しな
ければならない
◦ 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の仮想的なハードウェア資産情報を確認する
◦ ネットワーク上に存在するVMを検出
◦ VMが起動していなくても情報を取得
サーバ
VM
管理ツール
①VMの検出
②仮想ハードウェア情報を取得
vAMT
・・・
VM
vAMT

障害の発生したVMの修復作業を行う
◦ vAMT経由でVMにVNC接続して操作
◦ VMの起動/停止/リセット
サーバ
VM
①ユーザがトラブル・コール
管理ツール
②管理者がリモートから画面を表示
③管理者が修復作業を行う
vAMT

VMが攻撃を受けたときに仮想ハードウェアのレベ
ルで防御する
◦ 管理エージェントがウィルスを検知したらネットワーク
を切断
◦ 管理エージェントが停止させられたらアラートを送信
 管理エージェントからハートビートを受信
サーバ
エージェント
③ネットワーク接続を制限
管理ツール
③管理者にアラートを送信
VM
①定期的にハートビート送信
vAMT
②管理エージェントの
停止を検知
VM
Web
サービス群
CIMプロ
バイダ群
CIMOM
WS-Manサーバ
SOAPサーバ
WS-Man
vAMT
VNCサーバ
SOAP
Webサーバ
:16992
:5900
VMのIPアドレス
それ以外
262個

MOF言語でCIMクラスが記述されている
◦ CIMクラスは以下の要素で構成される
 プロパティ
 メソッド
 修飾子

class CIM_Processor :
CIM_LogicalDevice {
[Key] uint32 Number;
uint32 Enable(boolean Enabled);
};
CIMプロバイダ
◦ CIMクラスのインスタンスを管理
CIM_Processorプロバイダ
CPU情報1
CPU情報2
CPU情報3
CPU情報4

CIMクラスのインスタンスを取得するために使用さ
れる
◦ EnumerateInstances
 指定したクラスのすべてのインスタンスを返す
◦ GetInstance
 指定したキープロパティ値を持つインスタンスを1つ返す

メソッド呼び出しもできる
◦ CIMクラスで定義したメソッドを実行する
CIM_Processorプロバイダ
管理ツール
EnumerateInstances
GetInstance
CPU情報1
CPU情報2
CPU情報3
CPU情報4

2つのCIMクラスのインスタンスに対して関連づけを
行うために使用される
◦ 関連づける各CIMクラスのインスタンスを作成して
キープロパティを設定する
◦ 片方のインスタンスを指定すると関連づけられたイン
スタンスに関する情報を返す
CIM_Processorプロバイダ
管理ツール
①キー「CPU番号1」を指定
CIM_Chipプロバイダ
CPU情報1
CPU製造情報1
CPU情報2
CPU製造情報2
・
・
・
・
・
・
②CPU製造情報1を返す
・
・
・
CIM_Realizesプロバイダ

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 …
}


管理ツールがAMTにアクセスするにはAMTが搭載
されたPCのIPアドレスを指定する
vAMTの場合も対応するVMのIPアドレスを指定して
接続できるようにした
◦ NAPTの設定によってVMへのアクセスをvAMT側に
192.168.1.1
変換する
vAMT1
192.168.0.1:7001
VM1
・・・
192.168.0.1:5901
NAPT
192.168.1.1:16992
vAMT2
VM2
ホストOS
192.168.1.1:5900
192.168.0.1

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にアクセスするためのイン
タフェースにも対応する