ラベル Hyper-V の投稿を表示しています。 すべての投稿を表示
ラベル Hyper-V の投稿を表示しています。 すべての投稿を表示

2014年11月6日木曜日

VHDファイルの圧縮

Windows VistaなどWindows 7より前のOSにディスク管理ツールでは、NTFSボリュームの真ん中付近に配置されている管理領域(MFT:Master File Table)を移動できないため、元のディスク・サイズの半分以下には縮小できない。

だがWindows 7/Windows Server 2008 R2では移動できるので、Windows 7以降のOSでボリューム縮小を実行した方がよい。

MFTの断片化はパフォーマンスの悪化に繋がるためNTFSは連続した領域をMFT専用として予約している。
この領域のことをMFT領域と呼び、アクセスプライオリティ上ユーザーファイルがMFT領域に書き込まれないようになっている。
しかし、この規則は絶対的ではなく、ファイルシステム容量が不足してくるとMFT領域にもユーザーファイルを保存する様になる。
MFT領域としてラベルされる領域のサイズはWindowsのバージョンによって異なる。
WindowsXP以前まではファイルシステムの12.5%が予約されていたが、WindowsVistaからは200MBをMFT領域として扱う。



●空き領域をゼロで埋めるツール
precompact.exe(which was part of a Virtual Server R2 Service Pack 2)
http://vpc.essjae.com/precompact.zip
以下のサイトで紹介されている。
Hyper-V How To: Shrink a VHD File
http://blogs.technet.com/b/tonyso/archive/2008/10/09/hyper-v-how-to-shrink-a-vhd-file.aspx

SDelete(Sysinternals)
http://technet.microsoft.com/ja-jp/sysinternals/bb897443.aspx
Microsoft公認?のSysinternals製ツール
仮想マシン用のコマンドラインオプションが変更にになっているので、ツールを実行する前に/?で確認した方がいい。

cipher /w(OS標準搭載)
OS標準搭載のcipher /wでも空き領域へのゼロ埋めができるという情報があるが、お勧めできない。
/wオプションは完全消去オプションであるため、空き領域に対して「0x00→0xff→ランダムデータ」の3回書き込む。
そのため、処理が遅く、最後はランダムデータであるため、本当に代用できるのか疑問が残る。
http://www.atmarkit.co.jp/fwin2k/win2ktips/273diskwipe/diskwipe.html




●vhdを圧縮する方法
Hyper-Vマネージャーのディスクの最適化

DISKPRT
SELECT VDISK FILE=”C:VHDOS.VHD”
COMPACT VDISK
DETAIL VDISK

Powershell 3.0(Optimize-VHD)
C:\VMs下のサブフォルダも含むすべての.vhd(.vhdx)ファイルを最適化することを実現します。
$vmsRoot = "C:\VMs"
Get-ChildItem -File -Path $vmsRoot -Filter *.vhd* -Recurse | Optimize-VHD  -Mode quick
用語:’Optimize-VHD’は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。

Add-WindowsFeature Hyper-V-PowerShell
Optimize-VHD xxxxxxxx.vhd -Mode Prezeroed




●VHD圧縮方法(情報元)
SE の雑記:仮想ハードディスクの拡張と縮小
http://engineermemo.wordpress.com/2010/03/21/%E4%BB%AE%E6%83%B3%E3%83%8F%E3%83%BC%E3%83%89%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E6%8B%A1%E5%BC%B5%E3%81%A8%E7%B8%AE%E5%B0%8F/
[Windows] Hyper-Vの仮想ディスクの最適化でサイズが圧縮されない場合の対処
http://blog.dreamhive.co.jp/mkoba/?p=4033
Powershell 3.0でHyper-VのVHDファイルを最適化する
http://viewse.blogspot.jp/2012/12/powershell-30hyper-vvhd.html
仮想ディスク(VHD)のディスク・サイズを縮小する
http://www.atmarkit.co.jp/fwin2k/win2ktips/1390shrvhd/shrvhd.html

HyperV統合サービスの解説

オペレーティングシステムのシャットダウン

[仮想マシンの接続]やHyper-Vマネージャーから仮想マシンを正しくシャットダウンします。 PowerShellのStop-VM、Restart-VMコマンドレットでシャットダウン、再起動が可能になります。


時刻の同期

ホストと時刻同期を行います。[注意] 仮想マシン上でActive Directory Domain Servicesを動作させる場合は、時刻の同期を無効にしてください。有効にしていると時刻がずれる場合があります。


データ交換 (KVP Exchange)

Key Value Pair Exchangeと呼ばれる機能でホストOSからゲストOSの情報を取得できるようになる。(ゲストOSへの情報提供も可能) レジストリ経由により、ホストと仮想マシンでデータを交換します。
Hyper-V Data Exchange Service がこの機能を担っている。

【Hyper-V】統合サービスの「データ交換」ってなに? その2
http://blogs.technet.com/b/junichia/archive/2009/06/13/3253986.aspx


ハートビート

ハートビート機能を有効にします。 ホストOSからゲストOSを監視する。


バックアップ(ボリューム チェックポイント)(旧:ボリューム スナップショット)

Hyper-V には独自のVSS (Volume Shadow Copy Service)ライターが用意されており、ホストOS上からVSSを実行してゲストOSのバックアップを取得することができます。 VSS実行時に、ゲストOSに対しても、VSSライターが実行され、ゲストOSのシステムデータの整合性を保つことができます。 但し、VSSに対応していないゲストOSの場合は、バックアップ処理中に仮想マシンが一時的に保存状態になり、バックアップが取得されます。
ホストOSのバックアップソフトやバックアップエージェントを使用して稼働中の仮想マシンを停止することなくバックアップをとることができる。 ただし、仮想マシンがVSS(ボリュームシャドウコピーサービス)に対応している必要がある。

2014年1月3日金曜日

Hyper-Vの管理


SIRIUSレビュー 第36回 差分VHDのお悩みを解決!
http://sirius715.jugem.jp/?eid=165
Hyper-Vの管理環境には、「Hyper-V WMI Provider」というスクリプト管理インタフェースを介してアクセスする方法があります。これをWindows Script Host(WSH)やPowerShellスクリプトで利用できます。

Windows 7の仮想環境Hyper-VではなくVirtual PC環境では、「Hyper-V WMI Provider」や「PowerShell Management Library for Hyper-V」が利用できません。
仮想ハードディスクの作成や管理は、Windows 7およびWindows Server 2008 R2のDISKPARTコマンドからも行えます
(DISKPARTコマンドは、対話コマンドを記述したテキストファイルを「/s」オプションで指定することで、バッチ的に実行することもできます。)




http://codename2010.blog11.fc2.com/blog-category-4.html

Hyper-V をプログラムでどうにかしてみる その17 (仮想マシンの作成 Ver.2)
http://codename2010.blog11.fc2.com/blog-entry-225.html
Windows2012からは、WMIのクラスもまったく新しいものになり、参照するWMIのクラス名、メソッド名なども大幅に変更されているため、同じプログラムであっても、コード自体は別物。
Windows Server 2012 のHyper-Vでは新しいWMIクラスと新しいWMIクラスの両方が利用できることになっていますが、Windows Server 2008 R2などは古いHyper-V WMI Classesしか使用できません。

2013年8月8日木曜日

Hyper-Vの仮想ディスク(.vhd)を誤って拡張し、差分ディスクのチェーンが切れてしまった場合の対処方法

Hyper-VやVirtual PC、Virtual Serverの仮想マシンで差分ディスクがあるのに親のVHDを拡張してしまうミスをしてしまうことがあります。(親の仮想ディスクは「読み取り専用」にしておくと保護に役立つでしょう。)
この場合、親と子の仮想ディスク(.vhd)のチェーンが切れてしまい、差分ディスクの情報が一切参照できなくなってしまいます。

もしそうなってしまった場合は、以下の方法で復旧可能です。(Windows Server 2012で導入された.vhdxでは使えないかもしれません。)



まず、VhdTool.exeをダウンロードします。

VhdTool.exe
http://archive.msdn.microsoft.com/vhdtool/Release/ProjectReleases.aspx?ReleaseId=5344

2
コマンドプロンプト上でVhdTool.exeをrepairオプション付きで実行し、拡張前の容量に戻す。
VhdTool.exe /repair 親ディスクのパス 差分ディスクのパス

Repair: 親ディスクを拡張による差分チェーンの破損を復旧します。
        親ディスクを以前のサイズに戻します。
        これにより拡張した部分のデータが消失する可能性があります。

3
差分チェーンを復元する。
容量を戻すだけなので、別途「ディスクの検査」で「再接続」ボタンを押下し、差分チェーンの再接続を実行する必要がある。




--------------------
以下のツールでもディスクのサイズを拡張前に戻すことができるが、識別子が書き換えられてしまうため差分チェーンの復元はできない。
このツールはディスクの縮小ができるので、普通の用途では便利だと思う。

VhdResize
http://engineer-memo.com/blogs/engineer-memo/archive/2010/08/10/379.aspx


--------------
Hyper-V 差分ありの親VHDXファイルをアクセスし破損させた場合の対処法
http://nasunoblog.blogspot.jp/2013/07/hyper-v-vhdx-broken.html


2013年7月4日木曜日

Hyper-V3.0(VHDX)に古いOSをインストールする時の注意点

クライアント向けHyper-V 3.0の主要機能
http://www.atmarkit.co.jp/fwin2k/productreview/win803/win803_02.html
NEC WindowsR 8 Pro Hyper-V インストール手順書
http://support.express.nec.co.jp/os/win8/hyper-v/Win8_Hyper-V_install.pdf

VHDX ファイルにWindows Server 2008 R2(SPなしの)
またはWindows 7(SPなしの) 以前のWindows OS をインストールするときは、
PowerShellを使用し次の手順でVHDXを作成する。
4KBのセクターサイズに対応していないので、512bytesにする。
PS C:\Users\administrator>New-VHD -Path “VHDXファイルの
保存場所\ファイル名.vhdx” -SizeBytes “VHDX ファイルのサ
イズ” -PhysicalSectorSizeBytes 512 -Dynamic
固定容量の場合は「-Dynamic」を「-Fixed」にする。