2014/08/31

プロセッサバージョンが異なる物理コンピューターへ移行する

仮想マシンで使うCPU命令セット、例えばSSE拡張命令セットとかをマスクすることで実現していることは分かっている。

が、どれくらいパフォーマンスが劣化するのか心配になって調べてみた。
だって、全ての拡張命令セットがマスクされたら、CPUの相当が効率悪くなるから。

結果、必要最小限のマスクしかしない模様。これなら良いぢゃん。パフォーマンス劣化は最小限だと言える。

http://download.microsoft.com/download/F/2/1/F2146213-4AC0-4C50-B69A-12428FF0B077/VM%20processor%20compatibility%20mode.doc

移行先と移行元のHyper-Vホストが使っているCPUをチェックして、最小公倍数的に、両者とも使えるCPU命令セットを選択するようだ。

Hyper-V の仕組みや動作を解説

見つけた中で、最も詳細。
ただ、CPUコマンドのレベルで記述されているから難解。


Quick Migration(:クイック・マイグレーション)にかかる時間

ダウンタイムがどれくらいになるのか、の実験結果が載っている記事。スバラシイ。

http://www.atmarkit.co.jp/ait/articles/0912/16/news102_3.html

Shared Nothing Live Migration(:無共有型ライブ・マイグレーション)

ライブ・ストレージ・マイグレーション と 無共有型ライブ・マイグレーションの違い。



Live Migration(:ライブ・マイグレーション):仮想マシンのディスクファイル群の場所は替わらず、仮想マシンが稼働するHyper-Vホストを替える。

Live Storage Migration(:ライブ・ストレージ・マイグレーション):仮想マシンが稼働するHyper-Vホストは替わらず、仮想マシンのディスクファイル群の場所を替える。



対して、
Shared Nothing Live Migration(:無共有型ライブ・マイグレーション):仮想マシンのディスクファイル群の場所を替えてから、仮想マシンが稼働するHyper-Vホストも替える。

コレによって、その仮想マシンを稼働させたまま、
仮想マシンのディスクファイル群の場所:サーバA上のローカルディスク
仮想マシンが稼働するHyper-Vホスト:サーバA
から
仮想マシンのディスクファイル群の場所:サーバB上のローカルディスク
仮想マシンが稼働するHyper-Vホスト:サーバB
へ、ライブ・マイグレーションができる。

[参考]

VHDXと比べたVHDのメリットってあるの?

下位互換性(=Hyper-VホストがWindows Server 2008以下でも使える)以外は無い模様。

Hyper-VホストがWindows Server 2012以降のみのインフラなら、何も気にせずVHDXのみにすべし。
それまで使っていたVHDはVHDXに変換して使えばよろし。
[変換方法]
http://www.atmarkit.co.jp/ait/articles/1306/14/news055.html

2014/08/28

Hyper-Vでいうところの、メモリ・オーバーコミット

vSphere用語:Memory Overcommitment(:メモリ・オーバーコミット)
Hyper-V用語:Dynamic Memory(:動的メモリ)


両者は、仕組みは違いますが、目的(=やりたいこと)は一緒。

[英語]
http://technet.microsoft.com/en-us/library/hh831766.aspx

[日本語]
http://technet.microsoft.com/ja-jp/library/hh831766.aspx
http://www.atmarkit.co.jp/ait/articles/1103/03/news108.html

[対象となる仮想マシンのOS]
Linux
Windowsは、Vista SP1以降、Windows Server 2003 SP2以降。(細かいところは上記[英語]のリンクをクリック。下の方に一覧が出てくる)。



さて、メモリ・オーバーコミット関連でいうと、vSphereとHyper-Vとで、vSphereだけが持つ機能もある。たとえば、最も効果があるものでいえば、Transparent Page Sharing(TPS:透過的ページ共有)。TPS以外、たとえば「メモリ圧縮」や「スワッピング」は効果はあるだろうけど、動作原理上のデメリットも鑑みると、TPSに比べれば微少だろう。

TPSは「「同じOS、同じアプリ」に対して同じような負荷が、並列で多数、たとえばOSインスタンス100個とかに、かかっている場合」に最も効果が発揮される。たとえばVirtual Desktop Infrastructure(VDI:仮想デスクトップ)とか。

なので、1台の物理サーバ上に、サーバ用途っつーことで、OSインスタンスがせいぜい10〜20個程度で、しかもアプリケーションがバラバラの場合は、大きな効果が出にくい。無論これに、異なるOSが混在する、とかの前提が加わったら、さらに効果が出にくい。



ちと横道に:
VDIの場合、たしかにTPSは絶大な効果を出すことが多いのだけど、イマドキのサーバ機は物理メモリを大量に搭載できることもあり、メモリが足りなくなる前にCPUがボトルネックになることが多いですよ。2014年8月時点での筆者の知見による目安は、8 OSインスタンス/コア、程度。コレを上回るOSインスタンス数だとCPUボトルネックになっちゃうから、TPSが効いていようがいまいがメモリは関係なくなっちゃう。ま、メモリをたっぷり確保しちゃうアプリケーションを使うのであれば、この限りではないわけですが。

Hyper-Vでいうところの、DRSとDPM


vSphere用語:DRS(Distributed Resources Scheduler)、DPM(Distributed Power Management)
Hyper-V用語:DO(Dynamic Optimization:動的最適化)、PO(Power Optimization:電力の最適化)

[英語]
http://technet.microsoft.com/en-us/library/gg675109.aspx
[日本語]
http://technet.microsoft.com/ja-jp/library/gg675109.aspx


V2V

■無料
Microsoft Virtual Machine Converter
http://www.microsoft.com/en-us/download/details.aspx?id=42497

■有料
SCVMM(System Center Virtual Machine Manager)
https://www.youtube.com/watch?v=32v77ejxcG4

で、「楽さ」がどれほどかはさておき、
P2Vに載せたモノはV2Vでも使えるハズ

2014/08/26

Surface Pro3 その3 有線LAN


標準では付いていないので、別途購入。

条件を考えると・・・

・1つしかないUSBポートを埋めちゃわないようにできること。
・いちいちデバドラを手動で入れないでもokなヤツ。

というわけで、(他にもあるんだろうけど)コレ。
筆者が使用している限りでは、上記2条件は満たせています。

http://www.iodata.jp/product/lan/lanadapter/us2-hb4etx/