如何在VDI中启用服务器原始重复数据删除
Windows Server 2012 R2中, 微软对 Hyper-V虚拟桌面基础设施所做的最大改变之一就是允许对运行虚拟桌面的 磁盘卷进行原始重复数据删除。
重复数据删除技术可以减少虚拟桌面占用的 存储空间,还可以更加合理地将固态存储用于桌面。即便没有固态存储,在使用磁盘缓存的情况下,删除重复数据也可以提高虚拟桌面的性能表现。
但是,使用针对VDI的Windows原始重复数据删除也需要进行规划。对于以Hyper-V为基础的VDI部署来说,最常用的是使用Hyper-V 服务器集群进行架构,每个集群节点都连接到基于存储区域网络( SAN)的集群共享卷(CSV)。尽管这个基础架构可以和原始文件系统重复数据删除共同使用,但是需要额外的组件。
如果使用Windows服务器重复数据删除技术,Hyper-V服务器不能直接连接到物理存储。它们必须连接到文件服务器,反过来也可以为物理存储提供访问权限。微软需要使用运行Windows Server 2012 R2而不是运行Hyper-V的物理文件服务器来管理存储。而对于底层的物理存储则没有任何要求,这已经超越了现在所有其他的文件服务器了。文件服务器可以使用本地存储,或者连接到SAN上。
需要注意的是需要避免文件服务器出现单点故障的风险,所以其应该以集群的方式存在。完成架构之后,需要配置文件服务器来承载存储卷,这个存储卷可以为Hyper-V提供CSV。换句话说,一个Hyper-V集群连接到由集群文件服务器承载的CSV。
实现原始重复数据删除的前提
微软在Windows Server 2012中推出了重复数据删除特性。在那个版本中,实施重复数据删除需要通过几个步骤。首先,需要确保将要进行重复数据删除的存储卷使用的是NTFS文件系统。其不支持对其他文件系统(包括最新的ReFS文件系统)格式化的卷进行重复数据删除。
之后必须安装文件和存储服务角色以及数据重复数据删除子角色,这些默认是没有安装的。最后,通过使用Enable-DedupVolume PowerShell cmdlet命令来开启存储卷的重复数据删除。
在Windows Server 2012中所有这些前提没有发生变化。但是,如果要为VDI使用的存储卷进行重复数据删除,还必须在Windows中指定如何使用这些存储卷。可以使用一个新的命令UsageType来进行。 在微软VDI环境中,使用类型必须定义为Hyper-V。
还需要了解CSV为 操作系统提供的路径。不论CSV的实际路径在哪,都会以C:clusterstorage的子目录方式呈现。了解这个之后,假设你要为一组虚拟桌面开启重复数据删除,而CSV上的虚拟硬盘以C:clusterstorageVolume1的方式呈现。在这种情况下,需要使用的启用重复数据删除的命令是:
Enable-DedupVolume C:ClusterStorageVolume1 –UsageType Hyper-V
手动启用重复数据删除
为VDI启用重复数据删除是一个相当简单的过程。但是,有最后一件事情需要考虑。如果想要使用重复数据删除,一种可能性很大的情况是CSV空间可能不能满足所有虚拟桌面在非压缩格式下的大小。毕竟,为什么要分配不需要的磁盘空间呢?
Windows使用后处理重复数据删除技术。这意味着所有的数据(在这个例子中,也就是所有虚拟桌面)在开始时都必须以非压缩格式进行存储。那么,如果CSV空间太小该怎么办?
这个问题的解决办法是先复制一些虚拟桌面到CSV中,之后手动初始化重复数据删除过程。在这个过程结束之后,可以复制另外一部分虚拟桌面,之后再对另外的部分进行重复数据删除。重复这个过程直到所有的虚拟桌面都被复制到CSV当中。需要注意的是重复数据删除过程需要一些自己的工作空间,所以应该保证至少有10GB的空闲磁盘空间。
使用下面的命令来手动进行重复数据删除过程:
Start-DedupJob C:ClusterStorageVolume1 –Type Optimization