存储分析:探讨存储虚拟化的实现技术

在过去的2010中,有关虚拟化和云的概念成为一项热点。而走向完全的虚拟化以提供云服务远非简单之举,对IT而言,涉及用户体验、已有架构、转化方式等诸多问题。本篇仅对存储虚拟化各项必备的技术,在客户最为关注的虚拟化、性能和可靠性方面作一归纳。

存储虚拟化针对存储硬件资源,是对整个IT基础架构进行虚拟化必不可少的一部分。存储虚拟化主要用以实现以下基本目标:

  • 屏蔽已有系统环境及其复杂度
  • 满足原有的不同的存储访问需求
  • 整合原独立存储的存储资源
  • 增加提升可靠性和可用性的各项功能

存储虚拟化首先要解决的就是连接并统一管理不同的存储设备。现在国内客户一般都有不止一台存储设备,往往是单SAN环境下就挂了许多家不同厂商的阵列,一会儿这台设备要扩容;一会儿那台设备要续保,占用管理员很大的时间。而且现在存储厂商在首次销售存储设备时都采用低价策略,当IT部门在需要扩容时,往往会发现原来这些“企业级磁盘”却真不便宜。

因此存储虚拟化首先要解决的就是将原来不同的磁盘阵列柔成一团,放在一起用。要增加容量时,可以选择扩容原有的不同的阵列。甚至新加一套存储设备,其容量都可以被原有不同存储上的应用所访问。

于是存储虚拟化将各磁盘阵列其RAID初始化后的所有存储空间全部分配给存储虚拟化网关即可,以后的管理维护已经和具体是哪家厂商的什么型号和什么类型存储已经无关,只需要从存储虚拟化网关里就可以进行统一规划管理和分配使用。这样做额外的一个好处就是使得IT部门无需面对各不同的存储管理界面。一般而言,每台阵列都配有相应的基础管理软件,实现监控、预警等一些基本功能,但麻烦的是每家厂商的管理界面都不相同,要熟悉不同的设备管理界面着实花费不少功夫。通过存储虚拟化的统一管理,一个单一的图形管理界面即可完成所有规划,降低使用的复杂程度。

存储虚拟化建设的另一个核心目标是如何有效整合和管理不同的存储设备的逻辑单元,也就是分级池化的概念。如果说将不同的磁盘阵列虚拟成一个大存储是池化的概念,那分级池化就是指根据性能的不同、应用的不同、组群的不同,为上层应用提供不同的存储池。

在创建好虚拟存储池的基础上,针对每种提前规划好的应用,分别从对应的虚拟存储池中分割其所需大小的特定逻辑空间给到前台应用。一个分级存储池的使用空间容量应当可以来自不同厂商存储的逻辑单元,可以来自同一厂商不同存储类型的逻辑单元,也可以来自同一存储不同类型的逻辑单元。

多服务端口和协议支持是必须的,好在目前主流的虚拟存储解决方案都可以支持目前市场上存储主流接口类型和存储通讯协议,如2Gb/4Gb/8Gb的协议、1Gb/10Gb的iSCSI协议、Infinband的协议、以及NFS和CIFS协议、Infinband端口类型,且端口数量可以根据用户的实际动态调整。

在设计存储虚拟化时,不仅要考虑当前生产应用,同时也需要考虑过去和未来存储设备报废,数据迁移所带来的巨大风险问题。例如,如何将历史存储设备上的数据迁移到现在存储设备上,或者将来将现有过时存储设备上的数据迁移到将来新存储设备上,这是一个很头痛的事情,几十TB或者上百TB数据的迁移是一个费时费力,风险巨大工程。现在一般的做法都需要实现在在线的环境下,将数据从一台存储设备上整个迁移到另一台存储设备上,也可以支持从一台存储设备上部分数据迁移到另一台存储设备上,也支持一台存储设备内部数据迁移,存储设备之间迁移可以支持异构存储和通过不同存储通讯协议之间切换,并且可以实现在数据迁移完成后,将迁移后的存储设备作为主存储设备,整个数据切换过程对于上层是透明的。

此外,一些存储虚拟化方案本身还可实现自动精简功能。目前的主流磁盘阵列都已经具备这一功能,但对于较为陈旧的设备。通过部署方案可以更高合理利用有限的存储资源。最终实现,提前规划,按需分配,主机层以后无需再次进行数据空间的重新分配和数据迁移。

由于存储虚拟化解决方案将整合原有的大量磁盘阵列,性能便是一个不得不考虑到的问题。这里所谈到的性能是整个存储虚拟化网络的性能,而非单个硬盘或独立的磁盘阵列的性能。

首先原有的所有存储访问都将通过虚拟化网关来访问虚拟网络,其通讯路径和虚拟网管节点就必须确保通讯性能。

实现主机层面的路径冗余和负载均衡是最基本的要求,即要起到链路冗余的作用,同时也要达到多链路的负载均衡的功效。并且要可以支持当前主流的各类操作系统,为用户的生产环境起到高可靠性和高性能保护,防止一条光纤物理通讯连路中断所带来整个应用层面停机的恶劣影响。

就虚拟化网管而言,其必须可以满足集群和多节点的扩展能力,来确保前端的生产主机和后台的存储设备之间通讯,使得设备本身不会成为生产系统里的单节点故障或性能瓶颈。

对后台的存储设备而言,存储虚拟化以后的性能环境是一个混合的平台,其中甚至包含高速SSD、光纤磁盘、SAS或各近线磁盘。需要基于应用级的策略将存储池中高性能分配给关键应用,所以策略化的性能管理是存储虚拟化中最重要的部分。一般的存储虚拟化解决方案会监控哪些区域成为热点区域,经常会被读到,随之将该区域的数据块映射到高速存储中,这样就会提高应用主机读取磁盘的速度。

正如之前所说,云计算的基础是下层计算和存储设备的虚拟化。而虚拟化后最具挑战的就是,从逻辑和物理上,如何确保数据在虚拟化以后的设备上安全存放。并避免可能产生的硬盘故障,或系统宕机。

传统的备份一般采取备份软件、近线磁盘以及磁带库等一级或多级的备份模式。而在虚拟化以后的环境中,由于每次备份的数据量,采用传统的备份模式可能非常困难,而且在恢复时,恢复时间和是否可有效恢复都会成为关键的问题。

目前一般的做法是采用实时等值备份(亦称录像)或快照方式,进行连续地I/O访问读写记录,确保业务持续性,即采取持续性数据保护的解决方案(Continuous data protection,简称CDP)。