1.2.3 自动精简配置

为确保存储容量足够使用,用户往往会部署多于实际需求的物理存储空间,但在实际使用过程中,部署容量通常未受到充分利用。行业研究组织发现在某些项目中,实际使用容量仅占部署容量的20%~30%。因此,“自动精简配置”(Thin Provisioning)技术应运而生,旨在实现更高的存储容量利用率,并带来更大的投资回报。

自动精简配置[8]是一种先进的、智能的、高效的容量分配和管理技术,它扩展了存储管理功能,可以用少量的物理容量为操作系统提供超大容量的虚拟存储空间。自动精简配置提供的是真实的使用空间,可以显著减少已分配但是未使用的存储空间。根据应用或者用户的容量需求现状,可以动态实时地改变存储容量资源的划分,降低用户购买存储阵列的容量需求,降低用户在购置存储空间的成本。

在传统的存储系统中,当某项应用需要一部分存储空间的时候,往往是预先从后端存储系统中划分出一部分足够大的空间预先分配给该项应用,即使这项应用暂时不需要使用这么大的存储空间,但由于这部分存储空间已经被预留了出来,其他应用程序无法利用这些已经部署但闲置的存储容量。例如:整个存储系统有2TB的可用存储空间,使用传统配置方式创建3个卷。卷1的存储空间大小是500GB,其中有100GB实际数据,另外400GB是已经分配但是未使用的空间。卷2的存储空间大小是800GB,其中有200GB实际数据,另外600GB为已分配但未使用的空间。卷3的存储空间大小是550GB,其中有50GB实际数据,另外500GB为已分配但未使用的空间。如图1-6(a)所示,整个存储系统有350GB的实际数据,1.5TB已分配但未使用的空间,最后剩下150GB可用空间给其他应用。

自动精简配置的所有用户容量都以虚拟存储的形式分配,而实际的物理磁盘空间将根据实际使用情况进行分配。所有物理磁盘被视为一个磁盘池进行管理,按照写入虚拟卷的数据量完成分配。如此一来,未使用的物理磁盘容量显著降低,进而实现更高效的存储作业。另外,需要添加额外物理磁盘时,预定义阈值将发出警告,以避免容量短缺。如图1-6(b)所示,系统管理员使用自动精简配置同样在2TB存储系统创建这3个卷,由于存储空间是在数据写入过程中动态申请分配的,因此就不存在已分配但未使用的空间。所以采用自动精简配置之后整个存储系统里同样有350GB数据,但有1.65TB可用空间。相对于使用传统配置方式时的150GB,采用自动精简配置使得可用空间增加11倍。

图1-6 传统存储配置与自动精简配置容量对比

最基本的自动精简配置将所有的存储空间汇集到一个资源池中,并使用统一大小的“页面”将空间分块,最终,按需分配给服务器的是资源池中的“页面”而不是最初的存储空间。如果服务器端有新的文件写入,大多数文件系统倾向于使用新的空间,以避免出现碎片。在删除内容时,只会在文件系统层简单地将该文件打上不可用标记,而不会写零擦除或将空间释放给后端的磁盘阵列。这些文件系统最终会吞噬掉全部预分配给它们的空间,即使并没有太多的额外数据写进来。这不仅仅降低了系统的效率,而且会带来过量使用(Over-Commit)的风险,一旦磁盘阵列不能响应空间增加的请求,写操作将陷入停顿。

对于自动精简配置技术来说,回收闲置空间是比准确分配空间更难实现的部分。在各种自动精简配置的实践中,是否能让闲置空间返回空闲存储池是差异的关键。难以实现精简回收功能的根源在于应用程序和存储系统之间缺乏沟通。文件系统不会有精简的意识,当一份空间不再被使用时,没有现成的机制去通报这些情况。而有效自动精简配置的关键就是要发现回收闲置空间的机会。这里有两种方法可以从底层实现这一机制:

· 存储阵列可以侦听其接收和保存的数据,并且当出现回收空间的机会时,阵列能够尝试去实现这个操作。

· 修改服务器端的设置,当空间不再使用时,从服务器端发信号给后端的磁盘阵列,提示阵列实行空间回收。

前一种方法技术上较难实现,但更有效。但是,考虑到可用的操作系统、应用程序和卷管理器软件的数量十分庞大,这种技术实现起来是极其困难的。而对于那些采用后一种精简配置方法的企业来说,关键的话题则是改进服务器和存储系统之间的通信机制。

总而言之,自动精简配置实现了将逻辑空间和物理空间分离的虚拟化容量分配技术,它不仅解决了单个应用的初始空间分配和扩容的难题,还大大提高了整个存储系统的资源利用率。此外,由于容量扩展过程是由存储阵列完成,应用完全感知不到,因此能够实现真正的不停机的容量扩容。