什么是VHD(X),如何创建VHD(X)

VHD(Virtual Hard Disk) - 虚拟硬盘

虚拟磁盘VHD是一款软件,传统意义上来说,在物理机上安装一个先行版的操作系统(OS),就意味着要格式化硬盘,然后如同安装其他任何Windows Server操作系统一样进行安装。这种方式当然可以用于安装Windows Server 10,但是若用虚拟磁盘VHD功能启动会更有优势。因为虚拟磁盘VHD启动在当每个操作系统都存在于单独的虚拟磁盘VHD时候更容易创建多重引导环境。那样,你就可以测试多种虚拟磁盘VHD配置,而不必担心多个操作系统安装在同一个虚拟磁盘VHD上的复杂性。

正如虚拟机是假装有一个单独的电脑,虚拟硬盘就是假装有一块单独的硬盘

VHD技术其实是非常古老的技术了,甚至微软几年前就已经有了新的解决方案-VHDX

正类似MBR与GPT,VHD最大只能支持2T的硬盘容量,VHDX不被Win7支持(但是VHD可以把硬盘分区表设为GPT格式)。

类似于水管,VHD与VHDX是上半段,GPT与MBR是下半段,上游水管最多只过2L,下面的水管修的再宽再大也就那点水。

####

虚拟机可以模拟单独的电脑进行开关机,增减硬件

|---------------------D盘-----------------| |-----------------------------------------| |--数据---||----单独的电脑---||----数据------|

虚拟硬盘:

虚拟硬盘可以模拟单独的硬盘进行分区,格式化

|------------------D盘--------------------| |-----------------------------------------| |--数据---||----单独的硬盘---||----数据------|

如何创建VHD、VHDX

创建VHD分为两种方式 : 用户界面 与 命令行 我们可以通过磁盘管理器按照向导轻松创建VHD,也可以通过diskpart工具快速地创建VHD。(在Windows2008 R2中则必须先安装Hyper-V后才能创建VHD)

磁盘管理创建vhd、vhdx

1 .同时按 Win +X键 打开磁盘管理

2.等加载完毕之后,在上方点 操作 - 创建VHD(虽然是创建“VHD”,但创建VHDX时也是这项)

qemu 虚拟硬盘原理 虚拟硬盘vhd_qemu 虚拟硬盘原理

 

3填入相应的信息,什么是VHD(X),如何创建VHD(X)这里为了演示,只选了比较小的容量,其实可以选大一点,因为硬盘是可以分区的,可以按区分配卷标(也是就C:\ D:\ 中的字母) 使用后可以对卷进行格式化,不用再等文件删除不用担心只是删到回收站,非常方便

qemu 虚拟硬盘原理 虚拟硬盘vhd_qemu 虚拟硬盘原理_02

 4.虽然系统很恶心的不给任何提示,但是它会自动加载上去,在下方的硬盘或者打开硬盘编辑软件都可以看到新多了一块硬盘

qemu 虚拟硬盘原理 虚拟硬盘vhd_java_03

 

5.接下来按照正常的磁盘操作就可以了

通过命令创建创建vhd

1.右键 开始菜单 的 Windows图标 , 选择 命令行(管理员)/PowerShell(管理员)

2.输入diskpart 进入工具

输入:

create vdisk file=D:\Demo2.vhd maximum=3072 type=fixed*file=D:\Demo2.vhd

就是之后的文件路径 maximum=3072 是以MB算的容量也就是3GB,type=fixed也就是固定大小

qemu 虚拟硬盘原理 虚拟硬盘vhd_服务器_04

 

3.命令完成是有提示的,之后也会自动挂载

qemu 虚拟硬盘原理 虚拟硬盘vhd_qemu 虚拟硬盘原理_05

 

至此,一个容量为3G的空VHD硬盘就成功轻松创建了!

VHD&VHDX 优点

1.名词解释:

VHD:Virtual Hard Disks,虚拟硬盘(文件格式)。

VHDX:Virtual Hard Disk v2,第二代虚拟硬盘(文件格式)。

2.主要区别:

VHD

VHDX

最大容量

2040GB

64TB

最大逻辑扇区大小

512 bytes

4096 bytes

断电保护

不支持

支持

Trim指令

不支持

支持

3.用于存储文件的好处:

  1. 换取操作大量文件的连续读写性能。这在机械硬盘上十分重要,由于机械硬盘随机读写性能(4K)普遍孱弱,尤其是当您拥有成千上万个文件需要复制或转移,可先利用VHD存储大量的文件,只需要取消挂载VHD后复制VHD文件本身,效率比转移大量文件高不少。
  2. VHD中存储文件类似于压缩包,但VHD不压缩文件,反而由于里面携带了额外的文件系统信息会占用更多容量

(GPT+NTFS约100MB)。但它可以提供压缩包不具有的优势:无需解压,挂载即用。尽管某些软件提供对rar/zip/tar等压缩包格式的直接读取,但并不是所有软件都支持这一特性。在存储GB级大量文件时,选择VHD保存无疑是一个化零为整的极好选择,在下次读取时无需解压直接读取,也意味着无需考虑解压需要的两倍容量。

3.差分特性。VHD和VHDX均支持差分,子硬盘从父硬盘继承所有数据,并将以后的修改存储在子硬盘中。这一特性不仅可以用来备份,也可以用来防止病毒侵袭,版本控制等等用途。

4.磁盘会压缩,VHD 磁盘压缩是用户每次注销时都会运行的过程,旨在根据预定义的阈值自动减少用户的容器使用的存储量。

默认情况下,VHD 磁盘压缩处于 启用状态 。 如果要禁用它,请参阅 禁用 VHD 磁盘压缩。

确定何时运行 VHD 磁盘压缩

  • A - B = C
  • 如果 C ≥ (A x 0.2) ,则会运行压缩。
  • 如果 C < (A x 0.2) ,则不会运行压缩。

容器

固定/动态

配置的大小

已用大小

支持的大小

会压缩吗?

<username>profile_.vhdx

动态

30 GB

6 GB

2.5 GB


<username>profile_.vhdx

动态

30 GB

12 GB

10 GB


<username>profile_.vhdx

固定

30 GB

30 GB

空值


将磁盘镜像做成dd格式,丢进vhd里会压缩,效果类似e01(例:一个2T硬盘,使用500G,做镜像后,e01镜像大小为400G,制作dd镜像后放进vhd中,vhd大小为500左右)

可以使用 Windows 事件日志来了解 VHD 磁盘压缩的使用频率、节省的空间以及运行所需的时间。

此示例使用 PowerShell 获取过去 30 天内的 VHD 磁盘压缩事件(格式化为网格)。 在提升的 PowerShell 提示符下,运行以下代码块:

# Set startTime to number of days to search the event logs$startTime = (Get-Date).AddDays(-30)

# Query Event Log using Get-WinEvent filtered to the VHD Disk Compaction metric events
$diskCompactionEvents = Get-WinEvent -FilterHashtable @{
    StartTime       = $startTime
    ProviderName    = 'Microsoft-FSLogix-Apps/Operational'
    EventID         = 57
}

# Format event properties
$compactionMetrics = $diskCompactionEvents | Select-Object `
    @{l="Timestamp";e={$_.TimeCreated}},`
    @{l="ComputerName";e={$_.MachineName}},`
    @{l="Path";e={$_.Properties[0].Value}},`
    @{l="WasCompacted";e={$_.Properties[1].Value}},`
    @{l="TimeSpent(sec)";e={[math]::round($_.Properties[7].Value / 1000,2)}},`
    @{l="MaxSize(GB)";e={[math]::round($_.Properties[2].Value / 1024,2)}},`
    @{l="MinSize(GB)";e={[math]::round($_.Properties[3].Value / 1024,2)}},`
    @{l="InitialSize(GB)";e={[math]::round($_.Properties[4].Value / 1024,2)}},`
    @{l="FinalSize(GB)";e={[math]::round($_.Properties[5].Value / 1024,2)}},`
    @{l="SavedSpace(GB)";e={[math]::round($_.Properties[6].Value / 1024,2)}}

# Display metrics in Out-GridView
$compactionMetrics | Out-GridView

5.vhd、vhdx为块文件,在传输、归档的时候,便于传输数据及传输速度相当稳定,不会有碎文件大量读写占用传输速率的情况

4.推荐使用vhdx

  • 支持的虚拟硬盘的存储容量高达 64 TB。
  • 通过记录对 VHDX 元数据结构的更新,可以在电源发生故障时保护数据不会被损坏。
  • 改进了虚拟硬盘格式的对齐方式,可在大型扇区磁盘上更好地工作。

VHDX 格式还提供以下功能:

  • 动态磁盘和差异磁盘较大的数据块大小,可让这些磁盘满足工作负荷的需求。
  • 一个 4 KB 的逻辑扇区虚拟磁盘,可以在为 4 KB 扇区设计的应用程序和工作负荷使用该磁盘时提供较高的性能。
  • 能够存储有关用户可能想记录的文件的自定义元数据,如操作系统版本或应用的修补程序。
  • 高效地表示数据(也称为“剪裁”),使文件大小更小并且允许基础物理存储设备回收未使用的空间。(剪裁需要直接连接到虚拟机或 SCSI 磁盘的物理磁盘以及与剪裁兼容的硬件。)