RAID 磁盘阵列简述

  RAID是“Redundant Array of Independent Disk”的缩写,翻译过来叫做独立磁盘的冗余阵列,其实就是磁盘的存储、访问、备份技术。在谈RAID之前,先简单学习一下存储器的一些基础知识。

1、存储器基础

  说到存储器,顾名思义,就是用来存储数据的,市场上存储器的种类也很多,但也可以大致分为两类:易失性存储器非易失性存储器,前者掉电数据即会丢失,后者掉电数据仍然还在,这是由存储器的介质决定的;一般来说,易失性存储器的存取速度会明显高于非易失性存储器,当然价格也高。我们先了解一下计算机系统中存储器的层次结构,下图是任何一本讲计算机系统的书中都会给出的一幅存储器层次图,越上层(金字塔的顶层)的存储器速度越快,当然每字节的成本也越高;越下层(金字塔底层)的存储器速度越慢,每字节的成本越便宜。

  

RAID 磁盘阵列简述

  速度最快的莫过于位于CPU中的寄存器了,因为昂贵,所以只有几十个字节。

  位于L1,L2,L3层的是高速缓存,高速缓存的速度也很快,它是由SRAM(静态随机存储器)实现的,CPU访问高速缓存只需要几ns,由于价格相对较贵,所有只有几M~几十M的存储空间。

  位于L4层的是主存,运行速度虽然没有缓存快,但是价格也便宜了很多,它是由DRAM(动态存储器)实现的,所有现代计算机中一般有几个G的主存大小,CPU访问主存的速度一般在几十ns~上百ns之间。

  存储器主要分为两类:易失性和非易失性存储器。在计算机系统中,易失性存储器主要包括高速缓存、主存,易失性一般由随机存储器(RAM)来实现。RAM又分为静态RAM(SRAM)和动态RAM(DRAM),SRAM比DRAM速度快,但是价格也相对较贵。高速缓存用的就是SRAM,而主存用的是DRAM。非易失性存储器主要包括磁盘、固态硬盘、光盘、磁带、软盘等。

  位于L5层的是本地磁盘,本地磁盘一般使用的是机械存储,也就是说,访问磁盘会产生机械损耗,在磁盘和内存之间传输一个字节大概需要10ms。数据库的数据一般也是存储在磁盘上,所以为了减少因为数据库的增删查改操作带来的访问磁盘所需要的时间损耗,我们需要建立一系列的算法和数据结构来维护数据库。

  磁盘是由盘片构成的,每个盘片有两个面,每个面又被划成很多同心圆,每个同心圆称为磁道,每个磁道又被间隙分割成圆的片段,叫做扇区。扇区是磁盘的最小的不可分割的单位。每个盘面都有一个磁头用来读写盘面上的数据,主存需要访问磁盘上的数据时,由磁盘驱动器来控制,数据是存储在一个盘面的某个磁道的某个扇区中的,所以,我们得把磁头移动到对应的磁道上,这叫做寻道,寻道所消耗的时间叫做寻道时间;当把磁头移动到对应的磁道时,我们还得旋转到对应的扇区,旋转到对应扇区所带来的延迟,称为旋转延迟;数据所在扇区和扇区间的空隙经过磁头所需要的时间叫做传输时间。

  所以一次访问磁盘所需的时间为:寻道时间+旋转时间+传输时间。这个其实主要由磁盘旋转速度、扇区数等来决定,一般7200转/min,扇区空隙占10%的磁盘平均访问时间大概是10ms。

RAID 磁盘阵列简述

  因为磁盘的非易失性,成本低等一些优点,所以目前几乎所有的数据存储和备份用的都是磁盘。

2、通过冗余来提高可靠性

  任何设备都有可能发生故障,存储器当然也不例外。如何解决可靠性??答案是冗余。实现冗余最简单的办法就是复制每一张盘,这就是所谓的镜像。一张逻辑磁盘由两张物理磁盘组成,每次写操作都要在两张磁盘上执行。如何其中一张磁盘发生了故障,我们就可以从另外一张磁盘读数据。只有在第一张磁盘发生故障了,并且在它修复之前,第二张磁盘也发生了故障,数据才会真正丢失。我们用平均故障时间(这里的故障指数据丢失)来评价镜像技术的性能,平均故障时间主要依赖于每张磁盘的平均故障时间和平均修复时间(替换发生故障的磁盘并恢复磁盘上的数据所用的时间

  假设两张磁盘发生故障相互独立,一张单独的磁盘的平均故障时间为100 000小时,平均修复时间是10小时,则镜像磁盘的平均故障时间是100 0002/(2*10)=500*106小时,也就是57000年。当然这只是在理想情况下,还有考虑其他因素。

3、通过并行来提高性能

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15986.html