RAID卡技术简析

简介: <p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; font-family: Arial; font-size: 14px; line-height: 26px;"><span style="font-family: SimSun; font-size: 18px;"> 经过

 经过一段时间的折腾,工作的事终于解决了,新工作一上来的第一件事就要熟悉RAID卡存储机制,先简单了解下RAID卡吧。

    提到RAID卡就不得不提什么是RAID,RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文即为独立磁盘冗余阵列,或简称磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。RAID技术经过不断的发展,现在已拥有了从 RAID 0 到 6 七种基本的RAID 级别。另外,还有一些基本RAID级别的组合形式,如RAID 10/01(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同RAID 级别代表着不同的存储性能、数据安全性和存储成本。

    数据冗余的功能是在用户数据一旦发生损坏后,利用冗余信息可以使损坏数据得以恢复,从而保障了用户数据的安全性(除RAID0外)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储性能要比单个硬盘高很多(主要是存取速度上),而且可以提供数据冗余。

    RAID可以通过软件或硬件来实现,软件实现RAID需要操作系统的支持。硬件实现就是使用专用的RAID卡来实现。

    1、软件RAID:一些网络操作系统可以使用标准的SCSI适配卡支持和管理驱动器。一些网络操作系统支持RAID 0,RAID 1和RAID 5。由于是操作系统下实现RAID,软RAID不能保护系统盘。亦即系统分区不能参与实现RAID。有些操作系统,RAID的配置信息存在系统信息中,而不是存在硬盘上;当系统崩溃,需重新安装时,RAID的信息也会丢失。

    当运行I/O增强应用程序,如文件服务器或应用程序服务器,可适当的使用软件RAID。RAID 5是CPU的增强方式,所以不建议使用软件RAID在增强的处理器服务器中。磁盘的容错技术并不等于完全支持在线更换,热插拔或热交换,有些操作系统不能支持系统不经过重启的在线热交换。能否支持错误硬盘的热交换与操作系统有关。

    NetWare支持RAID 1(镜像和双工)。Windows NT、Windows 2000、LINUX、OPENSERVER支持RAID 0, RAID1和RAID5。

    另一种方案是配置系统在线扩充,服务器中配置一块备用硬盘,当系统中没有硬盘错误时,它处于等待状态,当RAID5或RAID1中出现硬盘错误时,它可以自动取代坏盘,当系统确认后,即可成为阵列的一部分。

    2、硬件RAID:硬件 RAID是采用集成的阵列卡或专用的阵列卡来控制硬盘驱动器,这样可以极大节省服务器系统CPU和操作系统的资源。从而使网络服务器的性能获得很大的提高。

    RAID控制器对主系统,是借由连接至其存取接口(目前以SCSI为主)作信道。换言之,它在主系统的存取接口上,是一个独立的直接存取储存体DASD(Direct Access Storage Device)。而这个大的储存体内,可以有不只一个的逻辑磁盘LUN(Logical Unit Number)。RAID控制器,对下管理多颗数组硬盘机们。而主系统是不会看到或直接管理该硬盘的。例如:Mylex LSI、AMI、Adaptec等 ... 都有相关的产品。

    现在的RAID卡产品,都支持在线更换,热插拔或热交换。并在部分操作系统下实现软件监控和管理。

    RAID卡就是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的。不同的RAID卡支持的RAID功能不同。支持RAlD0、RAID1、RAID3、RAID4、RAID5、RAID10不等。RAID卡可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个的磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID卡最初想要解决的问题。可以提供容错功能,这是RAID卡的第二个重要功能。

    来看看RAID卡的工作机制,RAID卡有自己的CPU,Cache Memory,通过集成或借用主板上的SCSI控制器来管理硬盘,可以称之为一个智能化的设备。下图为RAID卡的结构图:

    RAID卡的分类一般根据集成的SCSI控制器来划分。如果没有集成SCSI控制器,而是借用主板上的SCSI控制器来管理硬盘,则为零通道RAID卡。根据RAID卡集成的SCSI控制器的通道数量,可以分为单通道、双通道、三通道RAID卡。还可以按照SCSI控制器的标准来划分RAID卡的种类,如Ultra Wide、 Ultra2 Wide、Ultra160 Wide。下图为带RAID卡的SCSI系统结构:

    RAID处理器是一个PCI从设备,接受并执行来自系统的命令。同时占用PCI中断,代表SCSI磁盘子系统向系统提出中断请求,请求占用PCI总线,返回对系统命令的响应,如输送SCSI硬盘上的数据。

    作为RAID卡的CPU,通过执行闪存中的Firmware,控制SCSI控制器、Cache Memory以及指示报警电路,来实现RAID卡的功能,运作流程如下: 
(1)初始化RAID卡寄存器 
(2)读取NVRAM的上次RAID参数,与硬盘实际信息进行比较,显示结果 
(3)发送配置提示、响应 HOST 命令进入配置界面 
(4)提供配置菜单、将用户提供的RAID卡参数、RAID参数存入NVRAM 
(5)根据RAID参数,通过SCSI控制器对硬盘进行初始化写操作 
(6)完成配置 
(7)等待Host发出读写操作命令

    RAID卡提高磁盘读写性能的另一手段是磁盘CACHE。对于磁盘I/O来说,如果没有CACHE,就直接从硬盘读写;如果有CACHE,则首先从CACHE读写。 
    CACHE具有两大功能: 
——预读:CACHE预读提高了计算机系统中的硬盘读的功能,尤其是在读取含有大量文件碎片的文件时。具有良好预读功能的RAID卡能在看起来很随机的读访问中,识别出读取磁盘的规律, 通过这个规律提前将系统要读取的数据放在CACHE中。预读的两种方式如下: 
Read Ahead

    由于硬盘数据经常是以一族连续的硬盘扇区组织起来的,所以有时侯如把系统所请求的扇区随后的一个扇区里的数据 同时读进来是有价值的。对于数据文件的读取有利,特别是系统CPU的性能低时。 
Pre-Fetch

    当RAID卡发现系统要读的是先前已经读过的数据时,在 这一次,便将这一个数据块的数据写到CACHE里。对于程序文件的读取有利 。 
——回写:回写是通过暂时将数据存在CACHE里,从而推迟将数据写到慢设备(如硬盘、磁带机)的一种工作方式。数据将在随后的时间,硬盘闲置的时候写到硬盘中。写的时候也是统一将CACHE内的尚未写出的数据按照数据块的在硬盘中的BLOCK序号写入,这样可以提高写的效率。

    回写需要加电池给CACHE供电,以免数据在写到硬盘之前系统断电导致硬盘数据丢失。

    增加CACHE大小对于预读来说,为系统提供了更多的来自CACHE的可供读取的记录。 对于回写来说,允许控制卡保存更多的记录留待后期写磁盘。特别是对于电梯式回写,使得连续的回写段之间有更近的间隔,降低硬盘写操作的平均访时间并提高了吞吐率。 
写策略 
——回写(Write Back) 
——通写(Write Through)

    通写模式下,所有数据在以命令完成状态返回到计算机之前,直接写到硬盘。两种写策略比较来说,写策略由通写改为回写时,可大幅度提高RAID性能。但回写具有一定的数据危险性。在突然断电的情况下,会丢失存于Cache尚未写入硬盘的数据。 
    RAID卡工作在写策略为THROUGH时,缓存大小对RAID卡的性能影响很小,只有当写策略改为BACK时,缓存的作用才会发挥出来。

    影响RAID卡性能的因素很多,其中可调因素主要有RAID卡缓存(CACHE)大小、写策略(WRITE POLICY)、读策略(READ POLICY)、条带的大小(STRIPE SIZE)。不同的RAID卡虽然说法略有不同,但意思是一样的。很多设置可以在RAID卡的配置工具中调整。

相关文章
|
3月前
|
存储 数据安全/隐私保护
贴片卡与插拔卡的优缺点
在讨论贴片卡(通常指的是嵌入在设备内部的存储卡,如SIM卡、eMMC等)与插拔卡(如SD卡、microSD卡等,用户可以轻松插入和拔出的存储卡)的优缺点时,我们可以从多个方面进行比较:
|
存储 固态存储 测试技术
服务器硬件RAID性能横评(1)(下)
服务器硬件RAID性能横评(1)
服务器硬件RAID性能横评(1)(下)
|
存储 固态存储 测试技术
服务器硬件RAID性能横评(2)
服务器硬件RAID性能横评(2)
服务器硬件RAID性能横评(2)
|
存储 固态存储 测试技术
服务器硬件RAID性能横评(3)
服务器硬件RAID性能横评(3)
服务器硬件RAID性能横评(3)
|
存储 负载均衡 固态存储
服务器硬件RAID性能横评(4)
服务器硬件RAID性能横评(4)
服务器硬件RAID性能横评(4)
|
存储 缓存 固态存储
服务器硬件RAID性能横评(1)(上)
服务器硬件RAID性能横评(1)
服务器硬件RAID性能横评(1)(上)
|
存储 Unix Linux
硬件 RAID 与软件 RAID 之间的区别
独立磁盘冗余阵列 (RAID) 是一种将多个物理驱动器组合到一个单元中的虚拟磁盘技术。这是一种通过使用多个驱动器来提高存储介质的性能和可靠性的方法。驱动器配置为在磁盘之间划分数据以分配负载,或者复制数据以确保在磁盘发生故障后可以恢复数据。RAID 的执行可以使用特殊控制器(硬件 RAID)或操作系统驱动程序(软件 RAID)来完成。
372 0
|
存储 算法 开发工具
服务器硬件及RAID配置实践
1、RAID磁盘阵列介绍 2、创建RAID磁盘阵列
服务器硬件及RAID配置实践