------------------------------------重要说明------------------------------------

以下部分内容来网络,部分自华为存储官方教材

具体教材内容请移步华为存储官网进行教材下载

    网络引用内容无法找到原创,如有侵权请通知

------------------------------------重要说明------------------------------------

图片.png

① 条带(strip)

条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法。简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法。 许多情况下,这是通过硬件控制器来完成的。

当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。大多数磁盘系统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突。避免 磁盘冲突是优化 I/O 性能的一个重要目标,而 I/O 性能的优化与其他资源(如CPU和内存)的优化有着很大的区别 ,I/O 优化最有效的手段是将 I/O 最大限度的进行平衡。

条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个 不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。由于条带化在 I/O 性能问题上的优越表现,以致于在应用系统所在的计算环境中的多个层次或平台都涉及到了条带化的技术,如操作系统和存储系统这两个层次中都可能使用条带化技术。

条带化后,条带卷所能提供的速度比单个盘所能提供的速度要快很多,由于现在存储技术成熟,大多数系统都采用条带化来实现系统的I/O负载分担,如果OS有 LVM软件或者硬件条带设备,决定因素是条带深度(stripe depth)和条带宽度(stripe width)。

未经条带化处理的数据

图片.png
 

已经被条带化处理的数据

图片.png
 

操作系统和存储系统两个层次的IO结构

图片.png
 

再RAID 2.0中分条是Extent,无法直接调节分条深度,必须通过Extent进行调节分条深度。

② 分条(stripe)

把多个条带组合成分条。

③ 分条宽度

分条宽度stripe width是指同时可以并发读或写的条带数量。这个数量等于RAID中的物理硬盘数量。例如一个经过条带化的,具有4块物理硬盘的阵列的分条宽度就是4。增加分条宽度,可以增加阵列的读写性能。增加更多的硬盘,也就增加了可以同时并发读或写的条带数量。在其他条件一样的前提下,一个由8块18G 硬盘组成的阵列相比一个由4块36G硬盘组成的阵列具有更高的传输性能。

 

④ 分条深度(RAID 1.0可以手工设置)

分条深度单块物理硬盘的条带大小,也叫条带大小或分条单元大小。有时也被叫做block size, chunk size, stripe length 或者 granularity。这个参数指的是写在每块磁盘上的条带数据块的大小。RAID的数据块大小一般在2KB到512KB之间(或者更大),其数值是2 的次方,即2KB,4KB,8KB,16KB这样。

⑤ 分条深度作用

如果分条深度太小,很有可能出现一个IO横跨了两个甚至多个分条单元的情况,随着分条深度的增大,一个IO跨盘的机率逐渐减小,因此随机写IOPS呈现逐渐上升的趋势。

当分条深度的大小能够超过数据块的大小达到一定程度时,由于再出现IO数据块跨盘的情况的机率已经非常小了,则数据块的大小已经不在是影响性能的关键因素,此时,大IO读写性能会基本保持一个稳定的水平。