存储及虚拟化所面临的主要挑战及应对方案
2015-01-19 机房360 编辑:litao984lt
不可否认,服务器虚拟化是一项非常成功的技术,其改变了应用程序部署到数据中心的方式。
曾经,需要花费数周或数月的应用程序开发和部署周期,现在减少到可以在几小时甚至几分钟内完成。
但是,迁移到虚拟化工作负载的其中一个后果便是存储容量需求的膨胀以及虚拟化存储管理复杂性的增加。
那么,这种存储需求增加的核心是什么?为什么这么多公司都在疲于应付其虚拟环境中的存储?首先,让我们先搞清楚这些问题的一些背景。
虚拟服务器的共享存储
共享存储可以部署到虚拟服务器,无论是基于存储块的系统,如光纤通道(Fibre Channel)和互联网小型计算机系统接口(iSCSI);或是基于文件的系统,包括服务器信息块协议(SMB协议)和网络文件系统(NFS)。
在基于块的存储阵列的情况下,管理程序或主机托管的存储是一个逻辑单元号(LUN,logical unit number)的形式,这在VMware vSphere平台是一个datastore数据存储库,以VMware虚拟机文件系统(VMFS)的格式。
微软Hyper-V块存储作为系统驱动的格式。在这两种部署的情况下,许多虚拟机存储在相同的数据库或驱动设备中,数据存储容量可以扩展到几百万兆字节。
基于文件的系统,VMware vSphere只支持使用NFS协议共享,而服务器信息块协议则是Hyper-V虚拟机的首选格式。
在虚拟基础设施进行存储管理的许多问题均来自于存储设计所造成的后果。这其中就包括:
碎片
虚拟机存储在一个单一的数据库中,从存储阵列接收的性能和弹性保持同一水平。这是因为数据库是基于一个或多个LUN或卷,基于块的系统或基于文件系统的文件共享。这样那个所导致的结果是,许多客户创建了多个数据存储库,各自都有不同的性能特点。例如,这可以包括专用于生产型工作负载的数据存储,一些专用于开发让一些用于阵列复制。当然也有些例外,例如,系统是基于块的分层。
LUN级别的阵列支持
正如已经讨论的,基于块的系统将基于一个或多个LUN分配数据存储。一个LUN是粒度功能,如复制和故障转移最小的单位。因此,如果客户使用基于阵列的数据保护,客户虚拟机(VM)必须在LUN上根据他们的数据保护要求实施分组。这会导致在系统中创建额外的LUN,进而增加了碎片的问题。
完全分配的虚拟机存储
虚拟机存储要么可以在虚拟机创建期间实施完全分配(或保留),要么在虚拟机已被创建后实施动态分配。在虚拟机创建期间就实施完全分配能够潜在的创造更好的性能,因为这就免去了Hypervisor提交请求的过程,也无需为客户写入的每个数据块保留存储。然而,在许多情况下,虚拟机是由模板建立起来的,需要有足够大规模的启动卷来创建安装所有的应用程序。这不可避免地导致了每一台虚拟机部署的损耗。
自动精简配置不足
自动精简配置(Thin Provisioning)是存储阵列和虚拟机监控程序的一大功能,用于根据需求保留物理磁盘容量,而不是预先分配其超出当前需要的容量。本文所讨论的均为专用的自动精简配置,即自动精简配置的最佳实践方案应该发生在管理程序和存储阵列。在实践中,在基础设施层实现自动精简配置是完全可以接受的,但许多企业都不明白,随着时间的推移,自动精简配置数据库将转化为厚配置(thick-provisioned) ,除非在这一过程中释放空间。
虚拟机蔓延
这似乎是显而易见的,在虚拟环境中的存储增长的一大问题便是虚拟机的蔓延,或增加的虚拟机很少或从未使用过。服务器虚拟化可以让生产和开发快速部署应用程序,但同样,如果缺乏适当的管理虚拟机蔓延所带来的问题将非常棘手。而这一问题会因为孤立虚拟机的创建而进一步加剧,这些孤立的虚拟机没有连接到后端的库存和已经存在的磁盘。
对工具的需要
虚拟机的蔓延突显了一大问题:即需要匹配数据磁盘虚拟机的相关工具,以配置管理程序。这其实是很容易的,特别是在大型的环境:虚拟机可以从清单中删除,而又不从磁盘删除,通常是可接受的。如果这些虚拟机不清理或重新与主机相关联,然后随着时间的推移,执行相关的清理工作是不太可能的。
高效的虚拟存储管理
那么我们要如何解决这些挑战问题,以确保有效的虚拟服务器存储呢?
这里是您企业值得借鉴参考的一些想法:
实施一套良好的自动精简配置政策
在可能的情况下,所有的虚拟机应分配自动精简配置存储。然而,一个有效的自动精简配置策略不仅仅意味着虚拟机和存储层的配置功能特点。
自动精简配置还需要在客户机和管理程序上执行清理,返回释放的存储到阵列。
这可以通过诸如SDelete这样的工具在虚拟机完成,其写入二进制零到客户文件系统的可用空间。在后端系统管理程序,VMware有一个叫做VAAI自动精简配置块空间回收的功能(即Unmap),允许管理员利用vmkfstools命令释放存储。当然,当涉及到执行这一命令的频率以回收存储空间时,根据不同的环境需要有一个权衡。
基于文件的数据库通常在返回自由空间到阵列方面更有效。随着虚拟机被删除或改变了文件的大小,阵列文件系统空间可用于其他用途。这是基于文件的系统较之传统的块存储的一个优势。
使用阵列的功能
许多存储阵列支持零块回收,也叫零页回收。使阵列能够恢复零数据块。例如,例如,惠普的3Par StoreServ系统就能够在执行阵列任务时,让其他功能作为后台任务执行,这需要存储管理员的计划。
VMware系统的数据库存储可以通过快速置零 (eager-zeroed) 格式化,在创建虚拟机时写入所有的零。阵列立即忽略零块,保持有效的空间利用,而使诸如容错性和允许虚拟机有存储资源完全分配的时间特征。Hyper-V平台在自动精简配置方面的问题较少,但同样适用于运行诸如SDelete命令的原则。
对于提供子LUN分层的阵列,可以在虚拟机级别进行性能管理,例如,可以使用EMC的全自动存储分层(FAST)。但是,使用这些工具可能造成与配置系统管理程序的存储层之间迁移数据的设置的冲突。使用这种技术应与虚拟服务器管理员商讨,同时达成管理程序和存储水平的策略。
使用最新的文件系统格式
在VMware vSphere平台,曾经VMFS磁盘格式用于在基于块的系统存储数据,已经随着时间的推移,因vSphere的新版本的发布进行了改进。然而,许多IT企业可能已经升级了vSphere,但却没有而重新格式化他们的VMFS数据存储库。这种做法较之采用最新的VMFS格式可能会导致低效率。随着实时迁移功能如存储vMotion的推出,迁移主机到新的VMFS格式,并且同时利用这个机会实现自动精简配置,应成为每次升级的重点。
管理虚拟机蔓延
这似乎是非常合理的,但明显并没有形成所有人的共识。以虚拟机的使用和我们已有的实现虚拟机更便宜存储的相关政策为例,当一台虚拟机有长达三个月以上的时间都没有开机,特别是在开发环境中,那么,直到下一个软件的发布周期前,其可能是一台不需要的虚拟机了。诸如CommVault公司的Simpana这样的备份软件套装可以让虚拟机被转移到更便宜的存储,同时保留在一个存根文件,所以虚拟机仍然可以在虚拟库存被跟踪。
采用有效的工具
有一些工具可以帮助识别和定位孤立的虚拟机。另外,这个过程可以使用脚本来配合hypervisor库存清单在磁盘上的虚拟机实现。运行该进程经常会帮助捕获早期的孤立虚拟机,使虚拟机可以重复使用或删除。
对于存储和虚拟服务器管理员而言,还有最后一招同样适用:花时间了解对方的技术。记住,务必采用正确的处理方法,这样,在虚拟服务器安装的存储管理可以变得非常轻松。