如何克服服务器端闪存的弱点,实现性能加速
对于基于存储器的存储设备,大多数类型会充分利用闪存,这已经成为试图解决存储性能问题的企业首选。但由此需要担心的一个问题就是,共享的固态设备经常会受限于存储网络和共享存储系统本身的性能。此外,高性能网络设计固有的复杂程度也是一件棘手的事。而且,迁移到共享的固态存储系统,还会导致业务中断,因为需要对原有的存储系统和工具进行更换。
这些因素使得数据中心对服务器端闪存解决方案需求的增加。服务器端闪存方案消除了存储网络的性能和复杂性的问题,同时它们会增强而不是取代现有的存储。在许多方面,在服务器端进行性能加速最为理想,因为距离需要高性能存储的应用最近。
对性能永无止境的渴求,促使许多数据中心不再满足于只使用SSD,他们将更多注意力投入到基于PCIe的固态硬盘。PCIe 固态盘位于PCIe总线上,从而消除了存储互连(SAS、SATA),甚至存储协议堆栈本身造成的潜在延迟。
从服务器端固态盘首次推出以来,要考虑的问题就是如何让正确的数据写入闪存,并充分利用这些存储容量。分层和缓存等技术是当前最受青睐的选择,但实施起来很有难度。对于PCIe固态盘尤其如此,因为常见的数据可用性技术(如镜像和RAID)使得实施更加复杂。
一般而言,服务器会自动对需要存储的数据进行分析,以确定哪些应该存储在PCIe固态盘,哪些应该存储在硬盘中。在数据库环境中,因为有俗称的"热文件",相比在虚拟环境中这个是更容易完成的,在虚拟环境中它们的I/O模式更加随机。PCIe也是理想的虚拟内存交换区,虽然作为DRAM速度缓慢,但经济实惠。
为了增加高速服务器端闪存的吸引力,缓存解决方案应运而生。它可以自动执行大部分的数据识别和运行过程。基本上,IT部门可以添加使用高速缓存软件的PCIe固态硬盘,然后"见证奇迹"即可。与此同时,PCIe固态硬盘解决方案已经进入市场,并且就像以往其他新兴技术一样,这种竞争会导致创新力度的加大和成本的显著降低。
PCIe固态硬盘有了充分利用高性能功能的方式,客户采用率随之快速上升。但随着采用的人越来越多,人们对于服务器端缓存解决方案的一些潜在弱点的认识也有所提高。
服务器端闪存的弱点
服务器端闪存的第一个明显的弱点,就是它在已经很复杂的存储堆栈中还要添加层。除了要判断并充分了解共享存储系统、存储网络和存储主机总线适配器之外,管理员还需要知晓多个PCIe固态硬盘的解决方案。他们还必须熟悉多种缓存软件应用。
除此之外,还存在操作环境中的驱动程序堆叠。除了已知的主机总线适配器驱动程序,现在还要为PCIe固态硬盘安装驱动程序,因为就像前面说的这些设备大多避免了存储协议堆叠。此外,缓存软件要么是一个驱动程序,或在某些情况下是充分开发的应用。
首要关注的一点就是,这些组件都需要消耗服务器系统资源,如CPU周期和内存。某些PCIe固态盘使用一部分CPU来运行其闪存管理软件,当然,大多数缓存软件需要服务器的CPU和内存来进行实时数据分析。
除了兼容性和潜在的性能问题,价格也是一大考虑因素。为了加速性能,存储管理员必须单独购买PCIe固态硬盘的容量和在服务器中运行的缓存软件。通常这种购买必须针对每个服务器,因为无法跨服务器来共享PCIe固态硬盘的缓存容量。从容量分配的角度来看,这种"服务器锁定缓存"导致PCIe固态硬盘的效率与任何其他形式的直接连接存储都一样低下。
采用软件缓存的PCIe固态硬盘的第二个弱点是它怎么应对常用的集群环境,如VMware和许多数据库。在这些环境中,应用是移动的,以保证具有一致性的共享缓存,这一点是至关重要的。如今数量慢慢增加的缓存软件解决方案,可以直接集成到这些平台,在应用迁移到集群中的其他主机之前使缓存数据安全地被移除。
当然,服务器端闪存有其可取之处,主要是将加速升级直接连接到服务器,从而获得效率提升。如果能够解决上述服务器端闪存的问题,即可实现更广泛、更安全和更经济的部署。第一个步骤是通过对这些功能的一部分整合并减轻对CPU的依赖,来巩固这种性能的加速堆叠。目前已经有了一些解决方案,可以在PCIe闪存的硬件中集成缓存功能。此外,这些解决方案可以应对闪存本身的处理,而不是借用服务器的CPU和内存资源。
在这种进程中,下一步骤是将PCIe闪存和缓存功能与存储网络适配器或主机总线适配器(HBA)本身进行逻辑组合,就如同QLogic利用其新的FabricCache QLE10000适配器所做的。这种缓存SAN适配器将所有三项功能:加速、缓存和存储连接,完全透明地集成到服务器。这种级别的整合降低了存储管理员