Windows Server 2012のリリースは、新しいVHDXファイルフォーマットを含む複数の仮想化機能の導入により、暖かく歓迎されました。VHDXは基本的にVHDの後継者ですが、より高度な機能を備えています。ただし、Hyper-V環境でVHDファイルを作成および管理することもできます。Hyper-V VHDとVHDXファイルの違い、提供する利点、および使用方法について見てみましょう。
Hyper-V VHDおよびVHDXファイルについて
Hyper-V環境で作成された仮想ディスクは、物理ディスク上に配置されたVHDまたはVHDX形式のファイルとして保存することができます。仮想ハードディスクは物理ハードディスクの代替となり、仮想マシン(VM)のハードディスクとして機能します。仮想ディスクにはネイティブファイルシステム、ディスクパーティション、セクター、およびフォルダが含まれることがあります。標準のディスクおよびファイル操作を実行することができます。各VMには、少なくとも1つの仮想ハードディスクが必要であり、VMデータのストレージとして使用することができます。
以前のWindowsバージョンでは、仮想ディスクのための単一のファイルフォーマットであるVHDのみがサポートされていました。技術的要求の増加の結果、Windows 2012では、ストレージ容量が大幅に向上し、大セクターディスクでのパフォーマンスが向上し、データ保護レベルが向上したVHDXファイルフォーマットが導入されました。
Hyper-V VHDおよびVHDXファイルは、異なるタイプにすることができます:
- Fixed。仮想ディスクのスペースは、VHDファイルが作成されるときに割り当てられます。仮想ハードディスクファイルのサイズは、仮想ハードディスクと同じサイズです。データが追加または削除されても、サイズは一定です。
- 動的に拡張。仮想ディスクのスペースは必要に応じて割り当てられます。仮想ハードディスクには、潜在的に使用できる一定量の物理ストレージスペースがありますが、必要に応じてスペースが割り当てられます。したがって、新しいデータが追加されると、VHDまたはVHDXファイルのサイズが増加します。
- 差分。このディスクタイプは、他の仮想ディスクまたは親ディスクに対して行われた変更を特定し、格納し、管理し、元に戻すために使用されます。
Hyper-V VHDとVHDXファイルの違い
Hyper-V VHDとVHDXファイルの機能の違いをより良く理解するために、ファイル形式がどのように異なるかを調べてみましょう。これにより、それぞれが仮想ディスクのパフォーマンスを向上させる方法がわかります。次の表は、2つのフォーマットを対比しています:
VHD | VHDX |
Windows、Citrix、およびOracleによってサポートされる基本ファイル形式 | Windowsによってサポートされる高度なファイル形式 |
最大2 TBのストレージ容量 | 最大64 TBのストレージ容量 |
VHDファイルは、VHDXと比較してデータの破損に対する保護が少ない | VHDXファイルは、メタデータを追跡することで堅牢なデータ破損保護を提供する |
カスタムメタデータのサポートは提供されていません | カスタムメタデータがサポートされ、保存される可能性があります |
Windows Server 2008、2008 R2、2012および2012 R2によってサポートされています | Windows 2012以降にサポートされています |
ライブリサイズは利用できません | ライブリサイズが利用可能です |
論理セクターサイズは512バイトです | 論理セクターサイズは4 KBです |
データのアライメントに関する問題 | より良いデータアライメント |
トリミングはサポートされていません | トリミングがサポートされています |
新しいHyper-V VHDXファイル形式には、その有用性を大幅に向上させるいくつかの機能が含まれています。たとえば、トリミングにより、使用されなくなったデータブロックを特定し削除することができ、ストレージの最適化と全体的なパフォーマンスの向上に役立ちます。新しいHyper-V VHDXファイル形式で導入されたもう一つの機能は、共有VHDXです。これにより、同じゲストクラスター上のVMは、VHDXファイルを共有ストレージとして使用することができます。さらに、Hyper-V VHDXファイルでは、VMが実行中であっても、仮想ディスクのリサイズ(縮小または拡大)が可能であり、時間を節約しオーバーヘッドを削減することができます。最後に、強化されたデータアライメントにより、Hyper-V VHDXファイルはI/O操作を大幅に改善することができます。対照的に、大セクタの物理ディスクはパフォーマンスの低下のリスクがあります。
VHDXはVHD形式のより高度なバージョンですが、まだVHDの使用が好ましい場合もあります。たとえば、Hyper-V VHDXファイルは、より古いバージョンのWindows Serverと互換性がありません。そのため、異なるホスト間でVMを移動する必要がある混在したゲストOSの仮想環境を実行している場合は、VHDファイル形式が最適な選択肢となります。なぜなら、より多くのOSがサポートしているからです。
PowerShellでHyper-VのVHDおよびVHDXファイルを操作する方法
Hyper-V VHDおよびVHDXファイルの概要とその提供する利点を把握したので、仮想ハードディスクを作成して構成する準備が整いました。この目的のためには、Hyper-V Managerまたは管理者モードのPowerShellを使用できます。このブログ投稿では、PowerShellでHyper-V VHDおよびVHDXファイルの操作を管理する方法について説明します。これは最善の方法であり、PowerShellはHyper-V VHDおよびVHDXファイルの構成に対するより多くのオプションを提供します。PowerShellスクリプトを実行することで、ディスクを迅速かつ簡単に作成、変換、マージ、または削除できます。
Hyper-V VHDおよびVHDXファイルの作成
新しいVHDまたはVHDX形式の仮想ハードディスクを作成するには、管理者としてPowerShellを開き、New-VHD cmdletを実行します。次の例では、指定されたパスで動的タイプの仮想ハードディスクを128 MBのブロックサイズ、4 KBの論理セクターサイズ、10 GBのサイズで作成する方法を示しています。ファイル形式はファイルの拡張子(.vhdまたは.vhdx)によって決まることに注意してください。この場合、VHDXファイルが作成されています。
New-VHD -Path 'C:\Virtual Disks\DemoDisk.vhdx' -BlockSizeBytes 128MB -LogicalSectorSize 4KB -SizeBytes 10GB -Dynamic
仮想ハードディスクが作成され、PowerShellウィンドウに仮想ディスクの以下の情報が表示されます。
Hyper-V VHDおよびVHDXファイルの追加
追加-VMHardDiskDrive コマンドレットを使用すると、特定の仮想マシンに仮想ハードディスクを追加できます。次の例では、指定されたパスの仮想ハードディスク DemoDisk.vhdx が DemoVM という名前の仮想マシンにアタッチされます。SCSI コントローラ、コントローラ番号 0、およびコントローラ位置 1 も仮想ディスクに割り当てられます。
Add-VMHardDiskDrive -VMName DemoVM -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 1 -Path 'C:\Virtual Disks\DemoDisk.vhdx'
Hyper-V VHD および VHDX ファイルの削除
Remove-VMHardDiskDrive コマンドは、仮想マシンから仮想ハードディスクを削除するために使用されます。このコマンドレットの動作を示すために、次に示すように、さきほど作成したディスクを削除する方法があります:
Remove-VMHardDiskDrive -VMName DemoVM -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 1
これらのコマンドレットを使用すると、必要なパラメータで仮想ディスクを簡単に作成し、削除して特定の仮想マシンにアタッチできます。
Hyper-V VHD および VHDX ファイルの変換
VHDX ファイルは、その VHD の前身に比べて多くの利点を提供します。したがって、多くの場合、すべての VHD ファイルを VHDX 形式に変換することが望ましいです。Hyper-V VHD ファイルを VHDX にアップグレードするには、単純に Convert-VHD コマンドレットを実行し、ソース仮想ハードディスクの内容を保存しながらファイル形式を変更できます。ソース仮想ハードディスクのデータは、必要な形式の新しいディスクにコピーされます。操作はオフラインで実行する必要があります。仮想ハードディスクを切断することを推奨します。以下の例は、Hyper-V VHD ファイルを VHDX に変換するためのコマンドレットを示しています:
Convert-VHD -Path ‘C:\New Virtual Disks\Fixed Disk.vhd’ -DestinationPath ‘C:\New Virtual Disks\Fixed Disk.vhdx’
ただし、VHDX ファイルは Windows Server 2012 以降とのみ互換性があります。したがって、Hyper-V VHDX ファイルを VHD に変換する必要がある場合があります。この場合、同じ Convert-VHD コマンドレットを使用できますが、逆の操作です。操作を実行する前に、仮想ハードディスクを切断することを忘れないでください。
Convert-VHD -Path ‘C:\Virtual Disks\DemoDisk.vhdx’ ‘C:\Virtual Disks\DemoDisk.vhd’
Hyper-V VHD および VHDX ファイルのマージ
マージ-VHD コマンドレットを使用して、差分ディスクに格納された変更を親ディスクまたは別の差分ディスクにマージできます。この操作はオフラインで実行されるため、ディスク チェーンが切断されていることを確認してください。
子仮想ハードディスクを親仮想ハードディスクにマージするには、次のコマンドレットを実行します。操作が完了し、子ディスクの内容が親に転送されると、差分ディスクは破棄されます。
Merge-VHD -Path 'C:\Virtual Storage\Differencing.vhdx'
次の例では、親ディスク maindisk.vhdx と、子ディスク ChDisk1.vhdx があります。ChDisk1.vhdx はさらに子ディスク ChDisk2.vhdx を持っています。後者の仮想ディスクにはさらに子があり、それが ChDisk3.vhdx です。これらのディスクはすべて、差分チェーン を構成しています。次のコマンドレットを使用して、ディスク チェーン内の子仮想ハードディスクをマージできます。
Merge-VHD -Path 'C:\VM Testing\ChDisk3.vhdx' -DestinationPath 'C:\VM Testing\ChDisk1.vhdx'
ChDisk3.vhdx と ChDisk2.vhdx のデータは ChDisk1.vhdx にマージされます。PowerShellスクリプトは仮想ハードディスクのマージプロセスを簡略化します。この操作全体を1回で行うことができ、差分チェーンのサイズに関係なく行うことができます。これはPowershellの利点です。Hyper-Vマネージャーでは、差分ディスクチェーンの複数のレイヤーを一度にマージすることが許可されていません。差分ディスクチェーンの各レイヤーを手動でマージする必要があり、これらの追加の手順には時間と労力がかかります。
Hyper-V VHDおよびVHDXファイルのマウント
Mount-VHD コマンドレットを使用して、1つ以上の仮想ハードディスクをマウントできます。次の例は、パスが C:\Virtual Disks\DemoDisk.vhdx の仮想ハードディスクをマウントする方法を示しています。
Mount-VHD -Path ‘C:\Virtual Disks\DemoDisk.vhdx’
PowerShellスクリプトを使用して、読み取り専用モードで仮想ハードディスクをマウントできます。
Mount-VHD -Path ‘C:\Virtual Disks\DemoDisk.vhdx’ -ReadOnly
Hyper-V VHDおよびVHDXファイルのアンマウント
仮想ハードディスクをアンマウントする場合は、PowerShellで Dismount-VHD コマンドレットを実行します。以下の例では、パスが C:\Virtual Disks\DemoDisk.vhdx の仮想ハードディスクをアンマウントする方法が示されています。
Dismount-VHD -Path ‘C:\Virtual Disks\DemoDisk.vhdx’
別のオプションとして、マウントされたディスクのディスク番号を使用して仮想ハードディスクをアンマウントする方法があります。
Dismount-VHD -DiskNumber 8
Hyper-V VHD と VHDX ファイルのリサイズ
仮想ハード ディスクのサイズを変更 (縮小または拡大) したい場合、Resize-VHD コマンドレットを使用する必要があります。次の例は、指定された新しいサイズを割り当てて仮想ハード ディスクのサイズを変更する方法を示しています。この場合、VHDX を 10GB から 20GB に拡張しました:
Resize-VHD -Path 'C:\Virtual Disks\DemoDisk.vhdx' -SizeBytes 20GB
ただし、縮小は VHDX ファイルにのみ適用されます。仮想ハード ディスクは、指定された最小サイズよりも小さく縮小されてはいけません。仮想ハード ディスクの最小サイズを確認するには、次のコマンドレットを実行します:
Get-VHD -Path 'C:\Virtual Hard Disks\demovdisk.vhdx’
VHDX ファイルを最小サイズに縮小するには、次のコマンドを使用します:
Resize-VHD -Path 'C:\Virtual Hard Disks\demovdisk.vhdx’ -ToMinimumSize
結論
Hyper-V VHD と VHDX ファイルは、仮想環境で重要な役割を果たします。これらは VM のハードディスクとして機能します。VHD ファイル形式は長い間使用されてきましたが、仮想化技術の絶え間ない進化に追いつくために、Microsoft はより高度なバージョンを導入しました。したがって、VHDX ファイル形式が Windows Server 2012 でリリースされ、大セクター物理ディスクのパフォーマンスを向上させ、ストレージ容量を拡張し、データ保護を確保しました。
Hyper-VのVHDとVHDXファイルが提供するすべての機能を比較した結果、Hyper-V VHDXは、現代の仮想環境のパフォーマンス要求を処理するために構築された、より効率的で信頼性の高いファイル形式であると言えます。
仮想化されたインフラストラクチャに適したデータ保護ソリューションでVHDとVHDXディスクを保護することを確認してください。Hyper-V、VMware、AWS EC2、およびMicrosoft 365環境を保護するための複数のオプションを提供する高速かつ費用効果の高いNAKIVO Backup & Replicationを検討してください。
Source:
https://www.nakivo.com/blog/work-hyper-v-vhd-vhdx-files-essential-basics/