PVS架构之VHD虚拟磁盘②

3、差异虚拟硬盘



差异虚拟硬盘将差异虚拟硬盘本身内的母盘文件定位器存储起来,当驱动尝试打开差异硬盘时,将同时打开差异虚拟硬盘和母盘。 母盘也可以是差异虚拟硬盘,在这种情况下,可能有一连串差异虚拟硬盘,最终终止于非差异虚拟硬盘。

母盘定位器表仅由差异虚拟硬盘来使用,如本文前面的“可扩展虚拟硬盘头部格式”中所述。差异虚拟硬盘是一种可扩展的VHD,它的文件结构与可扩展VHD相同,只是在页脚区域中“类型”字段为4,表示这是一个差异虚拟硬盘。由于差异虚拟硬盘不能独立运行,须依赖其母盘,因此在头部中的“母盘UUID”、“母盘名称”及“母盘定位器”等字段存储着有关重要信息:母盘UUID、母盘名称用于差异虚拟硬盘识别母盘;母盘定位器存储着差异虚拟硬盘在不同平台(Windows或Mac等)上的母盘的定位编码信息,用于在不同平台上的迁移操作。

在Windows中,有两种类型的平台定位器:W2ku和W2ru。 前者是母盘的绝对路径名,后者是母盘相对于差异虚拟硬盘的路径名。

例如,位于Windows的计算机上的根驱动器中的母盘映像将存储格式如下:


Type


Example


W2ku


c:\directory\parent.vhd


W2ru


.\directory\parent.vhd

相对路径名的优点是它允许差异虚拟硬盘和母盘移植到不同的位置。使用绝对路径名,每当移动母盘时,必须显式重新链接母盘和子硬盘。

当创建差异虚拟硬盘时,如果可能,应该初始化相应平台上的两种类型的平台定位器的路径名。

差异虚拟硬盘的写操作:

对于写操作,所有数据都将写入差异虚拟硬盘映像。对于写入特定块的所有扇区,块位图被标记为dirty。

差异虚拟硬盘的读操作:

当驱动读取硬盘映像的扇区时,虚拟硬盘子系统检查差异虚拟硬盘中的块位图。然后硬盘子系统从差异虚拟硬盘中读取标记为dirty的扇区,并从母盘读取标记为clean的扇区。

例如,考虑在母盘映像和子硬盘映像中都保存扇区4096至8191的块。块的第一个扇区保存该块的位图。单个单元格表示位图中的一个位,黑点黄色表示块中的特定扇区已被数据写入。

母盘数据块:


4096


4097


4098


4099


4100


4101


4102


4103


4104


4105


4106


4107


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty

差异虚拟硬盘子数据块:


4096


4097


4098


4099


4100


4101


4102


4103


4104


4105


4106


4107


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty

如果上层驱动发出从4098到4104的扇区的读取操作,则硬盘子系统将从母盘块读取扇区4098到4101,并且将从差异虚拟硬盘子块中读取4102到4104。

如果驱动针对扇区从4102到4106发出写操作,则整个数据将被写入差异虚拟硬盘子块,并且位图将被标记为dirty,用于差异虚拟硬盘子块中的扇区4105和4106。

差异虚拟硬盘子数据块:


4096


4097


4098


4099


4100


4101


4102


4103


4104


4105


4106


4107


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty

针对扇区从4102到4106发出写操作:


4096


4097


4098


4099


4100


4101


4102


4103


4104


4105


4106


4107


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


dirty


dirty


Clean


Clean


Clean


Clean


Clean


Clean


dirty


dirty


dirty


dirty


dirty

综上,使用差异虚拟硬盘模式时,会同时打开差异虚拟硬盘和它的母盘。当对一个差异虚拟硬盘进行写操作时,会把所写入的数据存储在差异虚拟硬盘上,不对母盘改动;当对其进行读操作时,如果所读数据已经修改,则读取存储在差异虚拟硬盘上的改动数据,数据没有改动则读取母盘的原始数据。如果读取的数据包含了母盘的原始数据和差异虚拟硬盘上的改动数据,则先读取母盘的原始数据,然后在读取差异虚拟硬盘上的改动数据并将其组合为统一的数据。

4、VHD虚拟硬盘的寻址过程



对于固定方式的VHD 文件,虚拟硬盘的扇区与文件的扇区顺序对应,对固定方式VHD 进行寻址,通过页脚区域查找对应扇区即可。

对于可扩展的VHD,其数据块由块分配表动态分配,其虚拟硬盘和VHD 文件的地址要经过层次的索引,进而达到存储或读写数据的目的。可扩展的VHD文件中磁盘到文件扇区的寻址过程如下图所示:

详细说明如下:

(1)读可扩展VHD文件的页脚区域,通过页脚区域的“类型”“数据偏移量”等字段,确定是否是可扩展VHD 文件以及头部的位置在哪儿。

(2)读取头部,确定块大小,块分配表的位置和数量。

(3)找到块分配表,定位对应块分配条目,读取条目的值。

(4)根据分配表条目的值,确定其值(数据块的扇区位图地址)对应的数据块,读取扇区位图,确定数据区域的扇区使用情况,然后读取数据;若分配表条目的值为0xFFFFFFFF,说明该数据块未写入任何数据。

对于差异虚拟硬盘的寻找过程,如下图所示:

(1)读差异VHD文件的页脚区域,通过页脚区域的“类型”“数据偏移量”等字段,确定是否是差异VHD 文件以及头部的位置在哪儿。

(2)读取头部,通过头部中的“母盘UUID”、“母盘名称”及“母盘定位器”等字段确定母盘位置,然后确定差异虚拟硬盘本身的块大小,块分配表的位置和数量。

(3)找到母盘,重复可扩展模式下的寻址过程,找到所需要读取的数据;同时,其差异虚拟硬盘本身找寻自己的块分配表,定位对应块分配条目,读取条目的值。

(4)根据分配表条目的值,确定其值(数据块的扇区位图地址)对应的数据块,读取扇区位图,确定数据区域的扇区使用情况,然后读取数据;若分配表条目的值为0xFFFFFFFF,说明该数据块未写入任何数据。

本文描述了VHD虚拟硬盘的相关技术,在后一篇文章中,我们将描述VHDX格式的虚拟硬盘的相关技术。

The End

广告时间


牙齿美白仪、云南白药蒸汽眼罩微信号:tianmiao1105

【唯爱牙齿冷光美白仪】是一种用来美白和保养牙齿的仪器。 在使用时温和的微电流会通过美白凝胶,其中的过氧化氢转变为氧气作用在牙渍上 这款离子系统可以抑制牙垢的堆积同时氧气的氧化作用也能杀死造成口臭的细菌。
【云南白药热敷蒸汽眼罩】经常加班熬夜、失眠、睡眠不好的小伙伴们,可以试试云南白药生产的蒸汽眼罩,缓解你的眼部疲劳、安神助眠、改善眼睛红血丝、黑眼圈眼袋、眼部皮肤老化、近视等问题。

点击上面微信号关注我关注我哟

牙齿健康美白护理和云南白药蒸汽眼罩

时间: 2024-10-12 11:07:46

PVS架构之VHD虚拟磁盘②的相关文章

PVS架构之VHD虚拟磁盘

在Citrix PVS架构和产品中,位于最后端的存储硬盘采用的是虚拟化时代,微软开发的虚拟硬盘VHD/VHDX.VHD/VHDX格式是一种公开可用的映像格式规范,允许将硬盘封装到单个文件中,以供操作系统作为虚拟硬盘以物理硬盘的方式使用.这些虚拟硬盘能够托管本地文件系统(NTFS,FAT,exFAT和UDFS),同时支持标准硬盘和文件操作.VHD文件的最开始用于Windows7,Windows Server 2008,Virtual Server和Windows Virtual PC以及Hyper

Citrix PVS架构和工作原理

Citrix PVS产品一直在Citrix的产品体系中存在着重要的位置,在中大型的VDI环境中,绝大部分都是基于PVS架构部署的,足以证明PVS架构的稳定.高效和便捷. 本文从底层架构和原理的角度分析了Citrix PVS组件,使得我们能够得窥PVS架构稳定.高效和便捷的背后,支撑的机制到底是什么? 一.Citrix PVS简介 Citrix Provisioning Services组件简称Citrix PVS,是通过创建一个标准的虚拟机镜像,该镜像就如同一个虚拟磁盘一样,里面包含了虚拟机的配

再议Citrix PVS架构与机制

一.PVS是存储架构和网络计算架构 我们说Citrix PVS架构本质上是一个存储架构,是因为在Citrix PVS架构下,实现了计算和存储的分离.首先在传统的计算机上,计算资源和存储资源是同处于相同计算机内部的通过高速总线连接起来的组件,而在存储设备上,服务器本地的存储资源不在用于存储数据文件,存储数据文件的存储空间通过网络(TCP/IP or FC)传送到专门的存储控制器,由存储控制器来分配和管理这些元数据和IO,并最终将数据落地到硬盘空间存储起来.所以从原理出发,Citrix PVS就相当

通过VHD虚拟磁盘实现多系统安装

通过VHD虚拟磁盘实现多系统安装 一. 实验环境 主机系统:windows7旗舰版(只有win7旗舰版以上的版本才可实现,如果不是windows7旗舰版之上的版本,则只能在安装新的windows7旗舰版之上的系统时进行创建VHD虚拟磁盘 二. 实验目的 通过虚拟磁盘实现多操作系统的安装,而不再像过去安装多操心系统需使用单独的一块物理磁盘分区 最终实现win7系统与win8系统共存 三. 实验步骤 1. 添加动态磁盘 打开"计算机管理",选择"创建VHD" 进行虚拟机

qcow2 raw vhd 虚拟磁盘转换

Centos-6.4-x86_64_Ruiy.vhd: Microsoft Disk Image, Virtual Server or Virtual PC

利用BitLocker和VHD实现共享文件加密

Windows7企业版或旗舰版系统提供加密功能有BitLocker与EFS.EFS加密的对象是NTFS分区中单独的文件或文件夹,而BitLocker加密的对象是整个分区.EFS设置相对复杂,BitLocker设置相对简单. BitLocker加密技术能够同时支持FAT和NTFS两种格式,可以加密电脑的整个系统分区,也可以加密可移动的便携存储设备,如U盘和移动硬盘等.BitLocker使用AES(高级加密标准/Advanced Encryption Standard)128位或256位的加密算法进

不格盘用grub4dos+firadisk安装Ghost版XP到VHD(已成功)

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363198&extra=不格盘用grub4dos+firadisk安装Ghost版XP到VHD(已成功)因为vboot菜单不好弄,兼容性不太好,破解版有些只能识别500M内存,所以不想用vboot.想在不格式化原有系统盘的情况下,用grub4dos+firadisk安装Ghost版XP到VHD,目前已成功,步骤如下:1.工具:grub4dos,firadisk驱动包,bootice,深度G

收缩 虚拟硬盘 shrink vhd

在使用WIN2012 的Hyper-v的虚拟磁盘时, 有时需要将磁盘中未使用的控件收缩掉, 这时就需要使用Hyper-v磁盘工具的收缩功能. 如果使用Hyper-v磁盘工具, 不能对vhd虚拟磁盘进行收缩, 可以先使用该工具将vhd转换为vhdx格式的虚拟磁盘. 然后再用该工具对vhdx格式的虚拟磁盘进行收缩.

抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD,轻松RAMOS!

抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD,轻松RAMOS! http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363198&extra=抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD(已成功)因为vboot菜单不好弄,兼容性不太好,破解版有些只能识别500M内存,所以不想用vboot.想在不格式化原有系统盘的情况下,用grub4dos+firadisk安装Gh