本文转载自【SmartX超融合】微信公众号,点击这里可阅读原文。
在上一篇文章《超融合架构的本质是什么(上)》里,我们阐述了传统存储对现代企业大量数据和随机 I/O 处理的表现乏力、超融合架构因何满足企业需求以及超融合架构得以快速发展的原因。
本篇文章将进一步解释在超融合架构中,层次存储为什么是提升数据的 I/O 性能的最好选择。
首先,让我们追溯到现代计算机体系结构中,解决系统性能瓶颈的关键策略:Cache。
现代计算机体系结构是基于冯·诺依曼体系结构构建的,冯.诺依曼体系结构将程序指令当做数据对待,程序和数据存储在相同的存储介质(内存)中,CPU 通过系统总线从内存中加载程序指令和相应的数据,进行程序的执行。
冯·诺依曼体系结构解决了计算机的可编程性问题,但是带来了一个缺点,因为程序指令和数据都需要从内存中载入,尽管 CPU 的速度很快,却被系统总线和内存速度的限制,不能快速的执行。为解决这个问题,Cache 的理念被提出,通过在 CPU 和内存之间加入更快速的访问介质(CPU Cache),将CPU经常访问的指令和数据,放置到 CPU Cache 中,系统的整体执行速度大幅度提升。
I/O 性能瓶颈问题转移到了存储
如果内存的访问速度相对 CPU 太慢,那么磁盘的 I/O 访问速度相对 CPU 来说就是“不能忍”了。下表是不同存储介质的访问延时,在虚拟化环境下或云环境下,由于 I/O 基本都是随机 I/O,每次访问都需要近 10ms 的寻道延时,使得 CPU 基本处于“等待数据”的状态,这使得核心业务系统运转效率和核心应用的用户体验都变得很差,直观的感受就是业务系统和桌面应用“很卡”。
基于 SSD 构建平衡系统
和前人解决内存访问延时问题的思路类似,现在的主流方法是使用内存和 SSD 作为 Cache 来解决 I/O 性能瓶颈。存储系统能够分析出数据块的冷热程度,将经常访问的数据块缓存到内存和 SSD 中,从而加速访问。
不论是全闪存存储,还是混合介质存储,从某种意义上讲都是层次存储,只不过混合阵列多了一层磁盘介质。
学过计算机体系结构的人都听说过著名的 Amdahl 定律,这里我们要介绍一个 Amdahl 提出的“不那么著名”的经验法则:
在一个平衡的并行计算环境中,每 1GHz 的计算能力需要 1Gbps 的 I/O 速度与之匹配
假设一台服务器有 2 颗 E5-4669 v3 的 CPU,每颗 CPU 有 18 个核,36 个超线程,主频是 2.1GHz,那么我们可以计算一下,这样的一台服务器需要 151Gbps (即~19GBps)的带宽。在大规模的云计算(虚拟机算)环境中,极端情况下,大量的 I/O 并发使得存储收到的 I/O 都变成随机 I/O,在这么一个并发环境中,假设我们的访问大部分都是 8KB 的读写,根据上面的计算,我们需要为一台服务器配备近 250 万的 IOPS 读取速度。
在不考虑系统总线的情况下,如果我们用 SAS/SATA 硬盘来提供这个 IOPS,即使每个 SAS/SATA 盘可以提供近 250 的 IOPS(实际数值更小),仅为构建一台平衡的服务器计算存储环境,就需要大概 1 万个 SAS/SATA 硬盘。在稍大规模的虚拟化环境,想要搭出一个平衡的系统,用传统的 SAS/SATA 硬盘几乎不可能完成任务。但是如果采用能够提 10 万“写 IOPS”的 SSD 设备,25 块 SSD 就够了。
层次存储的优势
“层次存储”是相对“全闪存”而言,是指将容量大但是速度较慢的 HDD 和速度快的 SSD 同时构建在系统中,通过数据的访问特性,将经常访问的热数据放置在 SSD 中,而冷数据放置在 HDD 中。
首先,为构建一个平衡的虚拟化环境,需要大量的 SSD 设备来提供足够的 IOPS。但是 SSD 也不是完美的。目前的 SSD 擦写次数有限、价格高。层次存储将热数据放置在 SSD 层中,而大量的冷数据仍然放置在 SATA 硬盘上,热数据周期性的同步到 HDD 硬盘,既为用户热数据提供了高 IOPS 的保障,也通过 SATA 硬盘提供了更大的容量和可靠性。
下图是对 11 个开发人员桌面负载的 I/O 统计,包含了对 5.1TB 大小的存储上的 76 亿次 IO 访问和 28TB 的数据传输。首先值得注意的是,有 3.1TB(62%) 的数据,在一年内从来没有被访问过,这意味着这些数据无论是放置在 SSD 上,还是 SATA 上,甚至放到 U 盘上拔走,对系统都没有影响。
数据是有冷热的,这也是为什么 SmartX 超融合系统的分布式块存储可以为用户提供高性价比的层次存储方案,却能够让用户得到类似全闪存存储体验的原因。
了解更多 SmartX 超融合相关信息:https://www.smartx.com