我刚刚在 Windows Server 2012 上创建了一个固定 1GB 空间的 VHD,但我真的很困惑它是如何获得空间的?1GB 从哪里来的?如果我将 VHD 移动到另一个虚拟机,它如何知道要获取 VHD 中的所有文件,不明白。
答案1
你问的问题有点令人困惑,但是,我想我明白你想知道一个文件如何能够存在而实际上不包含任何数据......
VHD 基本上(但不完全是)是一个容器文件(类似于 ZIP/rar/其他)...当您创建 1GB 的 VHD 文件时,它基本上会在硬盘上创建一个您想要的大小的空白文件。
文件实际上不必包含任何内容 - 文件基本上是描述文件的记录(元数据/分配表)和数据本身的混合 - 因此,记录可能表明文件的大小为 x 以及数据的位置 - 但是,数据本身只是空白的。
答案2
创建 VHD 时,您会在物理硬盘上为虚拟驱动器分配空间。因此,如果您有一个 20GB 的驱动器,并且创建了一个 10GB 的 VHD,那么您现在有一个 10GB 的 VHD,但物理驱动器也限制为 10GB。
VHD 将像普通硬盘一样存储您的所有文件,但它只是逻辑上的...而不是物理上的。因此它将以相同的方式运行。
答案3
简而言之,VHD 是一个实际的文件,它既可以fixed
立即以虚拟硬盘的完整大小创建,也可以dynamic
随着文件大小的增长而增长。空的空间已填满。VHD 文件本身的行为类似于物理磁盘驱动器。如果客户操作系统将数据写入扇区 100-120(例如),虚拟管理程序将获取这些指令,而不是将它们写入物理磁盘……而是将数据写入 VHD 文件。