Windows8使用虚拟磁盘vhdx功能来为容量较大的文件夹扩容

一、概述
    当我们对一个硬盘进行分区时,由于后续存储情况的不确定性,因此每个区的容量很难确定。划分少了,怕不够;划分多了,又怕浪费。因此,我们往往采用固定计算 + 后期预算的方法,来进行划分。
    举个例子:如果一台Windows Server 2012的服务器,需要安装IIS、应用程序服务、SQL Server 2012、VS2012、Office2013以及全部文档,那么,即使是把所有的程序尽量安装在非系统盘,系统盘还是会占用比较大的空间,这种情况下,系统盘的固定的空间容量差不多80多G。而且,后续安装别的程序,也会占用系统盘(因为很多程序,即使安装时,指定安装在非系统盘,但仍然会向系统盘写入一些公共文件数据),所以后期预算空间,也很难预计,一般都只是凭经验多给20G~100G。
    如果在后续使用中,发现某个盘的空间不够了,但这个盘里的文件夹又不能移动或划分出去,而其他分区还有很大的空间,那么就需要对这个文件夹进行扩容,方法有很多,比如关闭系统后,在dos或pe下使用低级工具进行分区容量调整。在此我介绍一种不需要进dos或pe,但仅针对于文件夹的简单扩容方法。

二、虚拟磁盘
    用过虚拟机的朋友,应该都知道虚拟机的磁盘,是可以动态扩容的,而且不需要关闭虚拟机服务端所在操作系统,就可以直接扩容(因为在虚拟机服务端的层次上,对虚拟机磁盘扩容的实质是把虚拟机的虚拟磁盘文件,进行扩大append处理)。
    Windows Server 2012具有这个功能,它可以在磁盘上创建一种后缀为vhdx的文件,来当作磁盘分区。并且,Windows系统有磁盘分区挂载功能,也就是把一个分区,当做一个文件夹,放在别的盘下。

三、操作案例
    某Windows Server 2012的服务器,系统盘为120G,还有一个数据盘有300G。并且,更新服务的更新文件缓存文件夹,放在系统盘的UpdateCache目录。目前的情况是,UpdateCache汇报总共需要150G的数据,不过目前只有8G数据,在后续的日子里,其余数据会逐渐下载到该目录里。由于150G的数据,远远大于系统盘120G容量,因此需要对这个文件夹进行扩容。
    操作步骤:
        1.安装Hyper-V管理模块(Hyper-V相当于虚拟机的服务端)。
        2.使用Hyper-V管理器,在300G的数据盘里,创建一个200G的vhdx固定大小的磁盘(虽然数据总量为150G,但由于实际占用空间会大于甚至远远大于数据总量,因此给定空间需要大一些,如果后期觉得划分大了,浪费空间,可以使用Hyper-V的功能,把容量缩减回来)。
        3.进入计算机管理->磁盘管理,导入刚才建立的vhdx磁盘,并且对其进行初始化和格式化。
        4.需要扩容的文件夹,改名。对一个正被使用的文件夹进行改名,需要先停用使用它的服务以及程序。
        5.磁盘初始化后,不需要给它分配盘符,因为我们并不打算把它当做一个逻辑分区。使用挂载功能(磁盘管理器中的选项为“装入以下空白NTFS文件夹中”),把它替换为原先的文件夹。比如需要扩容的文件夹的原始路径与名称为 c:\UpdateCache,把这个文件夹改名为 c:\UpdateCache_temp,接着,把虚拟硬盘的路径和名称改为:c:\UpdateCache,以实现文件夹的替换。
        6.把改名的文件夹(c:\UpdateCache_temp)里的全部数据,拷贝到虚拟文件夹(c:\UpdateCache)中,以实现数据转移。 
7.启动使用这个文件夹的服务和程序,并且测试其可用性、正确性和稳定性。测试通过后,删除改名的文件夹(c:\UpdateCache_temp)。 如果有任何问题,请加QQ群 68328977 来进行讨论。
原文地址:https://www.cnblogs.com/xxxteam/p/2851256.html