缓存vs. 分层:存储优化技术之比较

日期: 2017-07-18 作者:Logan G. Harbaugh翻译:秦明焓 来源:TechTarget中国 英文

最快和最慢的服务器存储,其差异是巨大的。基于以太网的iSCSI SAN系统,其延迟可以是RAM或3D-XPoint的6-7倍。RAM只需几纳秒就可响应,3D-XPoint和PCIe型NVMe需要一微秒,一般的SAN存储需要几毫秒,而磁盘SAN/NAS系统则需数百毫秒。从最快到最慢的设备,响应速度的差异高达数百万倍。

基于此,合理利用分层或缓存技术来优化,企业的存储性能会有天壤之别。当然,理解并决定选用哪种方案,要比随意选择困难得多。 例如,通过分层得到的存储系统和数据管理方法,会比简单将数据划分为冷、暖、热要复杂得多。选择哪种缓存技术——write-around,write-through或w……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

最快和最慢的服务器存储,其差异是巨大的。基于以太网的iSCSI SAN系统,其延迟可以是RAM或3D-XPoint的6-7倍。RAM只需几纳秒就可响应,3D-XPoint和PCIe型NVMe需要一微秒,一般的SAN存储需要几毫秒,而磁盘SAN/NAS系统则需数百毫秒。从最快到最慢的设备,响应速度的差异高达数百万倍。

基于此,合理利用分层或缓存技术来优化,企业的存储性能会有天壤之别。当然,理解并决定选用哪种方案,要比随意选择困难得多。

例如,通过分层得到的存储系统和数据管理方法,会比简单将数据划分为冷、暖、热要复杂得多。选择哪种缓存技术——write-around,write-through或write-back——取决于对系统性能和可靠性的综合评估。了解分层和缓存之间的差异,知道使用场景和用法,对维护企业级存储性能至关重要。

缓存种类

存在两种主要类型的缓存:主机端缓存,和主机/存储之间的缓存。

主机端缓存:主机的不同层级都可以实现缓存。有些可用机器RAM作缓存,这时数据只在内存总线移动而不经PCI总线,所以速度最快。RAM比最快的PCIe的NVMe存储还快上千倍。

接下来是基于DIMM的存储,例如Intel和Micron共同开发的3D-XPoint,还有Diablo的Memory1。这些介质不是RAM,但利用内存总线,所以性能虽然低于RAM,但仍比任何基于PCIe的存储好很多,且比同价格RAM的容量大至少10倍。这之后是PCIe型NVMe闪存,和具有内置缓存的HBA和网卡。

主机端缓存的弊端是软件依赖。以上诸多种类缓存的实现,有些要比其他透明。HBA和网卡在各自的板载内存上缓存数据,主机通过标准通用的驱动程序控制硬件工作,其配置缓存的过程很透明。内存型计算、NVDIMM和PCIe NVMe,需要在OS或应用层安装专有缓存软件,因此故障隐患或性能下降的可能性更高。

专有缓存设备:这些设备位于主机与存储之间,对OS和应用完全透明。其硬件升级也完全无关于主机运行状态。和RAM和NVDIMM比性能和延时要弱很多,但若应用的延时需求在微秒范围,便可利用这种专有缓存设备来显著提升性能。

分层种类

分层存储优化技术,初现于世纪之交,首先在硬盘上实现。15,000转硬盘作为第一级,10,000转第二级,7,200转第三级,每一层都比上面层更慢,但更便宜。SSD出现后,变成了第零级(这样做是为了不必重构现有定义)。但从那时起,更快的SSD、NVDIMM、甚至DRAM型缓存技术的出现,以及更慢的云存储、冷存储、磁带的介入,让分层的级别不断增加,事情也变得越来越乱。

存储管理和存储虚拟化软件可将数据发至不同层次,过程中完全透明于主机,因此单个目录中的文件可能存储在很多层次,但呈献给OS的只是一个连续的文件夹。

各种存储管理软件有着不同的分层机制。其一,首先写入最快层,然后未读取的数据渐次移动到更慢层。其二,根据应用类型、目标目录或其他一些预设定的标准,分配不同写入层次。许多SAN系统提供某种形式的自动分层,这比基于卷或LUN的手动分层优势显著。

最初的自动分层体系使用简单的老化算法,其中主机读来的任何数据自动移至最快层,随即按未访问时间长短渐次移动到更慢、更便宜的层次。同时,预测算法将文件按读取频度分组,并将频度更高的文件移动到更快层。后来的自动分层体系加入了更多细分算法,旨在为最长访问的文件提供更好性能。

分层系统一般运行在SAN系统上,这意味着不同的存储系统通常有着自己的分层机制。不同的SAN供应商,分层机制亦不同,这意味着采购了多供应商方案的大型企业,要么各自为政地管理不同存储方案,要么需要采购额外的存储管理系统来统领全局。

自动分层通常提供最佳性能,且近乎无人值守。但是,手动分层更适合一些特定场景。例如,尽管有部分不经常访问的文件,DBA也希望在同一层上保留所有数据库文件,以确保最高性能。对于其他一些只在紧急状况下加载特定文件,或定期为特定任务执行备份维护的应用,将其手动分层到最低性能层,也是可以的。

数据丢失的不同可能性

缓存和分层技术带来的不同影响,在灾备/业务连续性管理上体现得最清楚。理论上,当数据最初被写入存储时,写程序会一直等待直到系统确认数据已被成功写入,如果系统故障导致确认无法发出,则写程序会恢复到写入前的状态。但如果数据初始写入地是内存缓存且写程序收到了数据写入的系统确认,但数据在后台写入最终目的地过程中掉电,则数据丢失的可能性大小和采用何种缓存策略相关:

Write-through缓存:数据读写均经过缓存,但系统一直等待数据从缓存写入到最终(永久)存储后,才发出写入确认。这样确保了数据的完整,但写入延迟较高。当然,读数据时可以直接从缓存拿,所以读取速度将加快。

Write-around缓存:数据的读写均绕过缓存,直接与最终目的地往来。这种方法与Write-through相比,写性能更高,因为写入不经过缓存层,但读性能受损,因为缓存层没有数据。

Write-back缓存数据的读写均经过缓存,一旦数据写入缓存系统就发出写入确认。这种缓存策略提供最好的读写性能,但掉电丢数据的可能性最大。当然,可通过配备电池和额外的闪存缓存层来保证数据安全。

对于分层存储架构,因为系统直到数据直到写入永久存储层才确认,因此损失的可能性降到最低,但性能比缓存架构也低得多,因为任何永久存储的写入延迟都比内存大很多。

附加用例

使用分层或主机端缓存,可以加速几乎任何应用,诀窍是按需选择和优化。例如,加速数据库、媒体服务器或实时分析系统的缓存优化策略是不同的,因为数据随机/顺序性、数据完整性、读取延迟、IOPS、带宽等的要求均不相同。另外需考虑的是实现成本。从$100/GB到$0.1/GB,各种方案都存在,需要选择性价比最高的。

许多情况下缓存/分层都可以通过较小投资实现极大的性能提升。主机端缓存/零级的SSD,在容量仅为下一级10%-20%时,可将性能提升至少10倍。没有放之四海皆准的标准,必须按照自己的实际需要来配备最佳性价比的加速方案。

本文选自存储经理人2017年7月刊:购买HCI存储前的思考

翻译

秦明焓
秦明焓

HP服务器产品架构师。

相关推荐