2014/05/22

お勧め記事: Microsoft Azureの秘密を探る[その1](@IT)

@ITの以下の記事に関連するネタを1つ。

@IT >  Microsoft Azureの秘密を探る[その1]
[URL] http://www.atmarkit.co.jp/ait/articles/1405/22/news013.html

Hyper-V の KVP (Key Value Pair) データ交換サービスは、ホストとゲストの間でデータ を交換するサービスです。ゲストの IP アドレス取得や Hyper-V レプリカにおけるフェールオーバーの TCP/IP など、実はいろんなところで活躍しています。

ホストからゲストにカスタム データを渡すということを、Windows ゲストと Linux ゲストの両方で試してみました。
KVP を使ってホストからゲストにデータを渡すサンプル スクリプト (WSH および PowerShell) が古い記事ですが以下のブログで紹介されています。

Ben Armstrong’s Virtualization Blog > Sending data from parent to virtual machine via KVP
[URL] http://blogs.msdn.com/b/virtual_pc_guy/archive/2008/12/02/sending-data-from-parent-to-virtual-machine-via-kvp.aspx


このサンプルは古いので、Windows Server 2012 R2 Hyper-V や Windows 8.1 クライアント Hyper-V で利用する場合は、スクリプト中の root\virtualization を root\virtualization\v2 に置換してください。その理由は、こちら → 「Windows Server 2012 R2 Preview > さよなら root\virtualization を見れば分かると思います。

Windows ゲストの仮想マシンに対してサンプルを実行すると、HKLM\SOFTWARE\Microsoft\Virtual Machine\External に値とデータが作成されます。ちなみに、隣の Auto キーの中には、既定でゲストから取得できる情報 (ゲストの IP や FQDN など) がゲストの Hyper-V Data Exchange Service の開始時に作成されています。

Linux ゲストの仮想マシンに対して同じことをするとどうなるかというと、/var/lib/hyper-v の下の .kvp_pool_0 にデータと値が書き込まれていました。ちなみに、既定でゲストから取得できる情報 .kvp_pool_3 の中にあります。Linux ゲストでは、hv_kvp_daemon がデータのやり取りを仲介します。
カスタム データを渡してどうすんのってのは別として、こんなこともできますってことで。

KVP を利用してゲストの情報 (Windows ゲストの Auto キー、Linux ゲストの .kvp_pool_3 の中身) をホストから参照するサンプル スクリプト (kvptest.vbs、kvptest.ps1) はこちらからダウンロードできます。

TechNet > Linux の仮想化には Hyper-V Server がお勧め!
[URL]  http://technet.microsoft.com/ja-jp/windowsserver/dn575471
(2019/3/25 リンク先なくなってたので、スクリプトをこちらに掲載)


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。