为方便起见,举例说明,假设本地有C,D,E三个卷,其中C为系统盘,D为数据盘,启用D盘的卷影副本功能,并把E盘专用于D盘的存储区域。

1. 如果D盘已创建卷影副本,那么E盘用于卷影技术的存储空间是动态增加的。可以这么验证

A.拷贝一个1G左右大小的任意文件test1D盘。(因为E盘默认会预先分配300M空间用于卷影存储,所以拷贝的文件需要足够大)。

B.在D创建一个卷影副本。

C.把D盘上的文件test1改名为test2,并拷贝一个1G左右大小但不同的文件test2D盘,这是系统会提示时候覆盖,选择是,也就是用不同的文件替换掉原来的test1文件。这样做的目的就是强制系统使用相同的块来保存test2

D.查看E盘的使用情况,在文件覆盖其间,它的大小应该是一直在增大。

2. 微软的卷影副本采用的是写时拷贝技术,沿用1中的例子,如果D,E分别在磁盘0和磁盘1上,那么在文件覆盖其间,用sysinternals上的DiskMon工具可以看到对磁盘0的读,对磁盘1的写,对磁盘0的写这些请求是交错的,也就是在覆盖文件到D盘时,卷影副本模块会先从D盘对应块把数据读出来,然后写到E上,并把新的文件数据更新到D盘。

3. 2中我们可以看出,微软的卷影副本是基于最新的D盘数据,而不是刚对D盘启用卷影副本的数据,这可以从一个实例来论证,假定D,E分别在磁盘0和磁盘1上,并且E盘来自SAN存储服务器:

A.拷贝一个1G左右大小的任意文件test1D盘。(因为E盘默认会预先分配300M空间用于卷影存储,所以拷贝的文件需要足够大)。

B.在D创建一个卷影副本。

C.把D盘上的文件test1改名为test2,并拷贝一个1G左右大小但不同的文件test2D盘,这是系统会提示时候覆盖,选择是,也就是用不同的文件替换掉原来的test1文件。这样做的目的就是强制系统使用相同的块来保存test2

D.这个时间点如果通过共享访问D盘,应该可以通过B中创建的卷影副本找到以前的test1文件。

E.在存储服务器中强制移除E所在的磁盘,重新扫描磁盘管理器,确保E盘已消失。

F D盘上的文件test2改名为test3,并拷贝一个1G左右大小但不同的文件test3D盘,这是系统会提示时候覆盖,选择是。

G  从存储服务器中重新挂接E所在磁盘。会发现B中创建的卷影副本已消失。

4. 微软的卷影副本是基于卷级而不是文件级的,可用一个实例论证,仅使用磁盘碎片整理工具对启用卷影副本功能的D卷进行碎片整理,如果碎片够多,会发现卷影存储使用空间也就是E盘使用空间一直在增大。

5. 微软的卷影副本有一个默认存储空间限制值,如果触发这个限制,首先会依次删除最老的卷影快照数据,若还不能满足这个条件,删除所有快照,这样就没有使用任何存储空间了。