- 与您的网络分享此项目:
- 下载
存储
kentoh——Fotolia
缓存与分层:比较存储优化技术
在选择缓存和分层存储技术以优化存储时,需要考虑许多因素。知道如何以及何时使用其中任何一种都会产生很大的不同。
最快和最慢的服务器存储之间的差异是巨大的。以太网连接的响应时间…
继续阅读本文
享受这篇文章以及我们所有的内容,包括电子指南,新闻,提示和更多。
iSCSI SAN系统可以是RAM或3D XPoint的6或7倍。对于RAM需要纳秒,而对于3D XPoint或PCI Express非易失性内存Express ssd需要不到一微秒,对于SAN存储需要毫秒,而对于基于磁盘的SAN或NAS系统则需要高达100毫秒。从最快的到最慢的,是几百万倍。
考虑到这种差异,分层或缓存存储优化技术可以对企业的活动数据性能产生巨大的影响。然而,决定使用哪个比简单地选择一个或另一个要复杂得多。
例如,有了分级,新的存储系统和数据管理方法使它变得更加复杂将数据分为热层、热层和冷层.对于缓存,这种方法——转写、透写或回写以及服务器端或设备——对您的系统来说是正确的,它取决于几个因素,包括您试图实现的可靠性和性能水平。理解分层和缓存的区别,了解如何以及在何处使用这些存储优化技术,对于维护企业级性能至关重要。
缓存选项
有两种主要类型的缓存:服务器端和位于服务器和永久数据存储之间的设备。
服务器端缓存:你可以安装缓存几个点在一个服务器上。一些缓存软件使用服务器RAM的一部分作为缓存,当数据在内存总线而不是PCI总线上移动时,提供尽可能快的速度。RAM甚至比最快的PCI Express (PCIe)非易失性内存Express (NVMe)存储快数千倍。
下一个是基于内存的产品,如3D XPoint由英特尔(Intel)和美光(Micron)联合开发的存储器(Memory1),以及Diablo Technologies的Memory1。它们通过内存总线而不是PCIe总线连接,性能略低于动态RAM,但优于任何通过PCIe总线连接的内存,容量是类似价格的DRAM的10倍以上。之后是基于PCIe总线NVMe ssd的缓存,以及带有内置缓存的主机总线适配器(hba)和网卡的缓存。
缓存的另一个问题是所需的软件。有些方法比其他方法更透明。hba卡和网卡将数据缓存到内部内存中,并在硬件级别或通过适配器的驱动软件工作,使得设置缓存的过程相对透明。但是使用系统内存、基于闪存的内存或PCIe NVMe ssd的缓存需要在驱动程序、操作系统或应用程序层安装缓存软件,这可能会导致故障点或性能下降。
基于内存的flash缓存优势
服务器主板上的内存总线比用于主机总线适配器、网络适配器、SCSI适配器和其他存储连接(如内置在大多数系统中的SATA总线)的PCI Express总线具有更低的延迟和更高的吞吐量。SSD和其他闪存的速度已经达到了一个临界点,只要两个PCIe非易失性内存快盘就可以使一个PCIe通道饱和。
下一个合乎逻辑的步骤是更快作为PCIe规范或者使用内存总线来实现更快的闪存。后一种方法的性能可能比PCIe快数十倍或数百倍。因为许多服务器主板有16个或更多的内存插槽,通常为flash内存找到空间并不困难。
现有的基于内存的flash技术包括第一个发布的Diablo technologies的Memory1,以及更直观的3D XPoint。两者都提供了比动态RAM更便宜、更高容量和更快的内存上的闪存,服务器端缓存是目标应用之一。其他用途包括创建更大的内存池,以便将应用程序完全保存在内存中,以抵消高容量动态RAM (DRAM)的巨大成本。
用于基于闪存的内存的驱动程序必须能够区分DRAM和闪存内存,并确保它们被恰当地使用。由于这些技术相对较新,所以您需要在进行全面部署之前测试应用程序和驱动程序。
缓存设备:缓存设备位于服务器和永久存储之间,并且对服务器上的应用程序和操作系统完全透明。他们不需要打开服务器或离线安装新硬件。在微秒范围内,性能可以有很大的提高,但不会达到基于RAM或dimm的闪存缓存级别。
分层的选项
分级存储优化技术的级别最初与世纪之交可用的硬盘类型有关,15,000转/分钟的硬盘驱动器通常作为一级驱动器,10,000转/分钟的驱动器作为二级驱动器,7,200转/分钟的驱动器作为三级驱动器。每一层都比上一层慢,也更便宜。ssd的出现导致了添加零级这样我们就不必重命名现有的层。从那以后,事情变得更加扑朔迷离。已经创建了使用更新、更快的ssd甚至DRAM的更快层,以及写入磁带或云存储的较慢层。
存储管理软件或存储虚拟化软件可根据需要将数据分级下发。这对服务器是透明的,因此单个目录中的文件可以存储在几个不同的层中,但在操作系统中作为一个连续的文件夹呈现。
在这里,Differentiator是存储管理软件它将数据分配到不同的层。一种方法是先将数据写入速度最快的层,然后将一段时间内无法读取的数据转移到速度较慢的层。另一种方法是根据应用程序类型、指定目录或任何一个标准对数据进行优先排序。许多SAN系统提供了某种形式的自动化分层,与基于卷或lun的手动分层相比,这种分层具有明显的优势。
第一个自动分级系统通常使用一种简单的老化算法,服务器读取的任何数据都会自动转移到最快的层,而一段时间没有被访问的旧文件会被转移到更慢、更便宜的存储层。然后,当读取组中的一个文件时,预测算法将文件分组,并将关联文件移动到更快的分级。后来又添加了进一步的改进,所有这些改进都是为了对访问次数最多的文件产生尽可能好的性能。
分级系统通常在san系统级别运行,这意味着不同的存储系统通常有自己的分级。拥有来自不同制造商的多个SAN系统的数据中心要么需要额外的存储管理应用程序,要么需要针对不同应用程序的单独存储竖井。
自动分级通常提供最好的性能,不太可能需要存储管理员定期调优系统。然而,在某些情况下,手动分级系统可能是合适的。例如,数据库管理员可能希望数据库的所有文件都位于同一层,以确保最高的性能水平,即使某些文件被访问的频率不高。对于只在紧急情况下或为备份或维护等特定任务周期性加载特定文件的其他应用程序或系统来说,这可能是正确的。
博士的区别
分层与缓存存储优化技术可以产生区别的一个主要示例或用例是连续性或灾难恢复。当数据第一次写入存储器时,写入数据的程序要等待确认它已被写入。如果系统中断且确认未到达,则应用程序可以恢复到中断前的状态。但是,如果数据被写入到易失性磁盘(例如高速缓存磁盘),并且程序确认数据已经被写入,但是在将数据写入最终目的地之前电源就丢失了,那么数据可能会丢失,这取决于缓存策略使用:
- 直写式高速缓存直到数据通过缓存并进入永久存储的最终目的地时,才确认写操作。这确保了数据的安全写入,但意味着写延迟相对较高。但是,读取速度会加快,因为数据可以从缓存而不是磁盘重新读取。
- Write-around缓存绕过缓存写入,直接写入最终目的地,等待数据永久写入后再确认。这种方法提高了写性能,但由于数据不在缓存中,读性能会受到影响。
- 回写缓存一确认就写数据写入缓存它提供了最好的读写性能,因为数据在更快的高速缓存内存中读写。但是,如果在写入数据被发送到永久存储之前,系统离线或断电,则有可能造成数据丢失。您可以通过电池支持的高速缓存系统或对高速缓存和永久存储的重复写来抵消这一点。
使用分层存储,数据写入直到到达永久存储时才被确认,因此损失的可能性被最小化。然而,通过分级存储优化技术提高性能不会像易失性缓存那样高,因为系统必须等待写入到永久存储,而不仅仅是初始写入到高速易失性存储。
缓存有多少层?
可以同时进行不同类型的缓存或分层。例如,一台服务器可能在多个位置部署了几种不同类型的缓存,每种缓存都在尽力加速系统之间的事务。可能会有L1、L2和L3缓存在CPU上;主机总线适配器、网络接口卡和RAID控制器上的小型动态RAM缓存;和大闪存缓存在同一控制器上。大多数缓存对操作系统,甚至对存储管理员都是透明的。
与分级存储不同,大多数缓存操作独立于其他存储级别——hba卡上的缓存与RAID控制器或存储阵列上的缓存完全分离。您可以在多个级别上启用分层,从运行在单个服务器上的软件,到像Datacore的SANSymphony这样的存储管理软件,再到集成到SAN存储阵列控制器中的软件。
存储管理员唯一关心的是,如果断电,缓存可能会丢失数据。许多RAM和闪存缓存都有电池或超级电容备份电源,以确保在断电时能够完成写入。
额外的用例
通过使用分层或服务器端缓存,实际上可以提高任何应用程序的速度。诀窍是根据应用程序需要优化分层或缓存的类型。例如,数据库应用程序的最佳缓存与媒体服务器或数据湖的实时分析不同。对于确保数据的完整性和满足应用程序需求的性能类型,每个应用程序都有不同的要求——即读或写或同时读、随机或顺序数据、高IOPS或吞吐量。没有完全相同的两个应用程序,所以没有放之四海而皆准的产品适合每一个需要,特别是当你考虑成本,定价范围从超过100美元每gb最昂贵的成本至少在10美分/ gb的存储优化技术。
在许多情况下,缓存或分层可以以相对较小的投资极大地提高存储性能。阵列的服务器端cache或ssd的零层可以提高10倍以上的性能,下一层只需降低10% ~ 20%。没有一种产品最适合所有人。您可以通过考虑应用程序的需求和预算的大小来确定什么对您的组织是最好的。
下一个步骤
如何制作缓存与分层决策
探索两者的区别透写和回写缓存
灾难恢复测试是确保数据访问的关键吗
相关资源
- 是缓存存储还是分级存储对VDI性能最好?微米技术
- 计算机周刊- 2018年10月9日:NHS应用程序标志着英国医疗服务的新时代-ComputerWeekly.com
- 混合云存储专业术语指南-ComputerWeekly.com
- 数据温度如何驱动数据放置决策——如何处理-DataCore软件公司