磁盘阵列

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

存储尾端:从数百万小时的磁盘和固态硬盘部署中得到的启示

磁盘和固态硬盘的存储性能

存储性能不稳定性

As a consequence, disk and SSD-based RAIDs experience at least one slow drive (i.e., storage tail) 1.5% and 2.2% of the time.
要了解根本原因,我们将这种减速与其他指标(工作量I / O速率和大小,驱动事件,寿命和型号)相关联。总体而言,我们发现减速的主要原因是现代磁盘和SSD驱动器的内部特征和特点

计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示。

这些研究主要在服务器,网络或远程(云)存储级别。

驱动器减速比(Si),即驱动器的延迟(Li)与RAID组的中值延迟(中值(L1…n))的比值,是对同类驱动性能的假设的偏离。假设大多数工作量在所有的数据驱动器中都是平衡的,那么正常的驱动器应该不会比其他驱动器慢得多。因此,我们定义当Si≥2时的驱动时间为“慢”(不稳定),否则为稳定。在本文中,我们使用了2x,偶尔也会使用1.5x的减速阈值来将驱动器划分为慢速。

没有表2

这些数字说明连带工作负荷:当一个驱动慢下来时,整个RAID将会慢下来。对于这种工作负荷,当前RAID部署不能满足比率为99%的稳定延迟(96%,阈值为1.5x)。

驱动减速通常归因于工作负载的不均衡(如一个驱动比另一个驱动忙)我们假设,在我们的研究中,由于存储堆栈的优化情况并不是这样(减速是因为工作负载不均衡)。为了探索假设,我们将减速和两个工作相关的指标关联:大小和速率不平衡。

有趣的是:速率不平衡对减速几乎没有影响;只有1%的磁盘和5%的SSD的速率不平衡会减速,从这两个表格中我们得出结论,速率不平衡不是减速原因的主要根源。

减速独立于I/O速率和大小不平衡。大量的减速和工作负荷的不平衡没有关系.

较旧的磁盘往往表现得更慢,对于SSD,在减速和寿命之间没有有很高的相关性。

减速后发生什么? 我们从两个角度分析:RAID性能下降和未插拔/重新插拔事件。

做出以下假设:在驱动器减慢的时间由于慢驱动器会使工作负载的强度受到限制,因此RAID汇总吞吐量将会下降。

新的度量标准RIO(小时RAID I / O计数),它是每个RAID小时中所有数据驱动器的每小时I / O的总数。然后,我们导出RIO降级(RAID吞吐量降低)与RIOCURRENTHOUR和RIOLASTHOUR的比率相关。如果降级大于1,则意味着RAID组的运行时间少于上一次时间。

区分stable-to-stable和Stable-to-tail的过度。

如果用户需求随机发生,则RAID降级会更多; RIO降级只影响等待完成以前的I / O。

拔掉事件
插事件很常见。 图11a-b显示,在一天内,大约4%和8%的慢(≥2x)磁盘和SSD分别被拔掉。 “轻微”减速(1.5-2倍)的数量占为3%和6%。 图11a还示出了以较高速率拔出会更严重减速; 这种模式不会出现在SSD中。

重插事件
重插率高,重插事件后仍然会出现减速。

在拔插持续时间方面,54%的未插拔磁盘在10小时内被重新插拔,90%在2小时内被重新插入。对于SSD,61%在10小时内,97%在2小时内被重新插拔。

我们的主要发现之一是性能稳定性和工作负载不平衡之间几乎没有相关性。 一个主要的分析挑战是减速的“silent”性质; 它们不伴随着明确的驱动事件,因此,针对每个减速发生的根本原因仍然是一个开放的问题。

请求延迟将跟随尾部延迟。随着请求吞吐量下降,稳定的驱动器被利用不足。容忍尾延迟RAID是解决这个问题的一个解决方案,它带来了两个优点。

我们研究三种tail-tolerant策略:反应性,主动性和适应性。它们类似于并行分布式计算中的流行的方法,如投机执行[14]和hedging/克隆[6,13]。为了模仿我们的RAID系统,我们目前专注于具有非旋转奇偶校验的RAID-6的尾部容错(图1和§3.1)。我们将原型命名为ToleRAID。