Windowsを使った標準的な仮想環境
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
VMM
Windows Server
• Windows Server上で仮想マシン(VM)を実行するハイパーバ
イザーが“Hyper-V”
• 複数のHyper-Vを集中管理する管理ツールが
“System Center Virtual Machine Manager”(以後、VMM)
6
DDTKの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
PowerShellで
コントロール
WMI
WMI
VMM
WMI
VMM HyperV
制御用 制御用
WCF
IIS
Windows Server
DDTK
(Dynamic Datacenter
Toolkit for Hosters)
クライアント
9
Windowsを使った標準的な仮想環境
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
VMM
Windows Server
11
12.
DDTKの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
PowerShellで
コントロール
VMM
WMI
WMI
WMI
VMM HyperV
制御用 制御用
WCF
IIS
Windows Server
DDTK
クライアント
12
13.
WCFとは
• Windows CommunicationFoundationの略
• .NETの通信テクノロジーの一つ
• 構成ファイル(*.config)を使ってプロトコルや細かいパラメータ
等を定義できる
• DDTKのインタフェースの実装に使用されている
DDTKは
WCFに対応した
サーバアプリケーション
として実装されている
WCF
アプリケーション
WCF
IIS
WCFクライアント
プログラムコード
.NET
Windows Server
13
14.
DDTKの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
PowerShellで
コントロール
VMM
WMI
WMI
WMI
VMM HyperV
制御用 制御用
WCF
IIS
Windows Server
DDTK
クライアント
14
15.
WMIとは
• Windows ManagementInstrumentationの略でWindowsをプロ
グラムコードで管理する機能
• 本セッションではHyper-Vをプログラムから制御するのに使用
VM VM VM VM
Hyper-V
Windows Server
WMI
プログラムコード
.NET,VBScript,
PowerShell
15
DDTKの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
PowerShellで
コントロール
WMI WMI WMI
VMM
VMM HyperV
制御用 制御用
WCF
IIS
Windows Server
DDTK
クライアント
18
DDTKの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
PowerShellで
コントロール
VMM
WMI
WMI
WMI
VMM HyperV
制御用 制御用
WCF
IIS
Windows Server
こちらを使用したら不安定
クライアント
21
DDTKの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
PowerShellで
コントロール
VMM
WMI
WMI
WMI
VMM HyperV
制御用 制御用
WCF
IIS
Windows Server
こちらを使用する
クライアント
ただし、ジョブの状態は確認
24
SPFの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
System Center
VirtualMachineManager
PowerShell
スクリプト
SPF
OData
IIS
Windows Server
Windows Server
DDTKと異なり
独立したサーバ
クライアント
32
SPFの構成
クラスター
VM VM VMVM
VM VM VM VM
VM VM VM VM
Hyper-V
Hyper-V
Hyper-V
Windows Server
Windows Server
Windows Server
System Center
VirtualMachineManager
PowerShell
スクリプト
SPF
OData
IIS
Windows Server
Windows Server
クライアント
35
36.
SPFを使ったVM操作サンプル( VMのプロパティを更新)
1:Uri uri= new
Uri("http://server:8091/SC2012/VMM/microsoft.management.odat
a.svc/");
2:VMM vmm = new SPF.VMM(uri);
3:
4:// 対象のVMを取得する
5:var vm = (from v in vmm.VirtualMachines where v.ID == vmId
&& v.StampId == stampId select v).Single();
6:
7:// 値を更新する
8:vm.Description = "This is test VM.";
9:vmm.UpdateObject(vm);
10:vmm.SaveChanges();
36
WMIのサンプルコード
Windows2012では
virtualization¥v2名前空間
を使用
1:ManagementScope ms =new
2:
ManagementScope(@"server¥root¥virtualization¥v2", co);
3:ManagementObjectSearcher mos = new
4:ManagementObjectSearcher(ms,
5:
new ObjectQuery(
6:
"select * from Msvm_ComputerSystem where "+
7:
"Caption='仮想マシン' and ElementName='VM'"));
8:ManagementObjectCollection moc = mos.Get();
55
56.
まとめ ~ Windows仮想マシンをソフトウェアで制御するための注意点
①VMMの制御はHyper-Vとのタイムラグに
注意する
② Hyper-Vの制御を安全に行うにはジョブを
確認する
③ SPFではfabricの値が取得できないので、
C#などで書いたDLLをPowerShellから呼
び出して取得する
56
57.
参考
Hyper-V WMI Classes
http://msdn.microsoft.com/en-us/library/cc136986(v=vs.85).aspx
DynamicDatacenter toolkit for Hosters
DDTK for Hostersホームページ
http://archive.msdn.microsoft.com/ddc
DDTK for Hostersサンプルコードのダウンロード
http://code.msdn.microsoft.com/DDTKH-Sample-Code-d0cb4152
SPF
Service Provider Foundationのアーキテクチャの概要
http://technet.microsoft.com/ja-jp/library/jj642897.aspx
VMMコレクションズリファレンス
http://msdn.microsoft.com/ja-JP/library/jj906381.aspx
Virtual PC guy
http://blogs.msdn.com/b/virtual_pc_guy/
57