一、概述
我们再IT的运维及实践中,最常遇到的数据保护机制就是RAID了吧,RAID是(Redundant Arrays of Independent Disks,RAID独立磁盘冗余阵列)的简称,主要分为标准 RAID(RAID 0 ~ RAID 6)、混合 RAID(JBOD、RAID 7、RAID 10/0、RAID 50 等),常用的RAID技术有RAID0、RAID1、RAID10、RAID5、RAID6,另外还有RAID2、RAID3、RAID4、RAID7、RAID53、RAID 5E、RAID 5EE等。基于技术的实现能力,又分为软件磁盘阵列(软RAID)和硬件磁盘阵列(硬 RAID) 以及 硬件辅助磁盘阵列(半软、半硬)三种类型。
软件RAID:
使用基于主机的软件提供RAID 功能,是在操作系统级上实现的,与硬件RAID相比,软件RAID具有成本低廉和简单直观的优点。但是,软件RAID有以下不足。比如常见的一种方式:在Linux操作系统下,借助域软件用3块硬盘实现RAID5,而不使用RAID控制器与I/O芯片,仅直接通过软件层实现的RAID,所有功能都是操作系统(OS)与CPU来完成,这种额外需要cpu来完成RAID数据逻辑运算必然会拉低CPU性能。与硬RAID不同的是,软RAID的各个成员盘对于操作系统来说是可见的,但操作系统并不把各个成员盘呈现给用户,而只是把通过软件层配置好的虚拟RAID卷呈现给用户,使用户可以像使用一个普通磁盘一样使用RAID卷。软RAID实现具有如下主要特点:
(1)性能:软件RAID 会影响系统整体性能。这是因为软件RAID 需要CPU 来执行RAID 计算。
(2)功能:软件RAID 支持有限的RAID 级别。
(3)兼容性:软件RAID 与主机操作系统绑定,因此,需要对软件RAID或操作系统升级进行兼容性验证,只有当RAID 软件和操作系统兼容时,才能对其进行升级,这会降低数据处理环境的灵活性。
硬件RAID:
包括基于主机的硬件RAID和**基于阵列(RAID卡上的主控芯片)**的硬件RAID。基于主机的硬件RAID通常是将专用RAID控制器安装在主机上,并且所有磁盘驱动器都与主机相连,有的制造商还将RAID控制器 集成到主板上。如主板上的南桥芯片(又称之为输出/输入控制器中心(Input/Output Controller Hub,ICH),它负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等,这些技术相对来说比较稳定,所以不同芯片组中南桥芯片可能是一样的,不一样的只是北桥芯片。)上也可实现RAID功能,由于南桥中的芯片不能靠CPU来完成他们的功能,所以这些芯片完全靠电路逻辑来自己运算,尽管速度很快,但是功能相对插卡式的RAID卡要弱。这种基于主机的硬件RAID 控制器在包含大量主机的数据中心环境下却不是高效的解决方案。而基于阵列的硬件RAID是使用 外部硬件RAID控制器,它充当主机与磁盘之间的接口,将存储卷呈现给主机,主机将这些卷作为物理驱动器进行管理。简单来说就是全部通过用硬件来实现RAID功能的就是硬RAID,需要依赖各种RAID卡,或主板集成的RAID功能,这都是硬RAID。RAID控制器负责将所有的RAID成员磁盘配置成一个虚拟的RAID磁盘卷。对于操作系统而言,他只能识别到由RAID控制器配置后的虚拟磁盘,而无法识别到组成RAID的各个成员盘;硬RAID全面具备了自己的RAID控制/处理与I/O处理芯片,甚至还有阵列缓冲(Array Buffer),对CPU的占用率以及整体性能中最有优势。硬件RAID控制器具有如下主要特点:
(1)管理与控制磁盘聚合;
(2)转换逻辑磁盘和物理磁盘之间的I/O 请求;首PCI总线带宽限制;
(3)在磁盘出故障时重新生成数据。
硬件辅助磁盘阵列(Hardware-Assisted RAID):
与硬 RAID 和 全软 RAID 相比,半软 RAID需要借助一张RAID卡,以及厂商所提供的驱动程序来实现。相比硬RAID,半软RAID 缺乏自己的I/O 处理芯片,所以这方面的工作仍要由CPU 与驱动程序来完成。而且,半软RAID 所采用的RAID 控制/处理芯片的能力一般都比较弱,不能支持高的RAID 等级。但这种RAID较易迁移到其他电脑。
二、RAID分类及原理
参看:RAID技术及应用总结。
3)Raid6是容许两块磁盘同时损毁的。另外Spare(备用)磁盘起到预备磁盘的作用,当有磁盘坏了的话,他会被主动拉进磁盘阵列中并将坏掉的磁盘移除,;立即重建数据。
RAID 60:
它是RAID 6与RAID 0的组合:先作RAID 6,再作RAID 0。即对两组以上的RAID 6作Stripe访问。RAID 6至少需具备4颗硬盘,所以RAID 60的最小需求是8颗硬盘。
由于底层是以RAID 6组成,所以RAID 60可以容许任一组RAID 6中损毁最多2颗硬盘,而系统仍能维持运作;不过只要底层任一组RAID 6中损毁3颗硬盘,整组RAID 60就会失效,当然这种情况的概率相当低。
比起单纯的RAID 6,RAID 60的上层透过结合多组RAID 6构成Stripe访问,因此性能较高。不过使用门槛高,而且容量利用率低是较大的问题。
3)软RAID常用实现软件:
1>mdadm
它是multiple devices admin 的简称,它是Linux下的一款标准的软件RAID 管理工具。
eg:mdadm –create /dev/md0 –level=0 –raid-devices=5 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
、
#其中: /dev/md0 为自定义的盘符 , –level或者-l 为RAID 级别, –raid-devices=5 为设备个数, 后面为对应的盘
命令参数:
-C –create 创建阵列;
-a –auto 同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;
-b, –brief:较少的细节。用于 –detail 和 –examine 选项
-c, –config= :指定配置文件,缺省为 /etc/mdadm.conf
-l –level 阵列模式,支持的阵列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;
-n –raid-devices 阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;
-v 显示过程
-V, –version:打印mdadm的版本信息
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D –detail:查看详细信息,打印一个或多个 md device 的详细信息
-E, –examine:打印 device 上的 md superblock 的内容
-F, –follow, –monitor:选择监控(Monitor)模式
-G, –grow:改变激活阵列的大小或形态
-S 停止RAID磁盘阵列
-s, –scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息
维护说明:
实际中,当软RAID 检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。在这里我们将/dev/sdh1 模拟为出现故障的磁盘,模拟命令:mdadm /dev/md5 -f /dev/sdh1;在上面创建RAID 5过程中,我们设置了一个热备盘,所以当有标记为故障磁盘的时候,热备盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过查看”/proc/mdstat” 文件可以看到当前阵列的状态,如下
硬 RAID 卡:通过硬件来实现RAID功能的就是硬RAID,有独立的I/O处理器和RAID控制器,硬盘连接器和缓存等一些列组件构成;对于硬件的raid卡,操作系统无法感知底层物理磁盘,OS只能通过厂家提供的raid卡的管理软件来查看卡上所连接的物理磁盘。而且,配置raid卡的时候,也不能在操作系统下完成,而必须进入这个硬件来完成(或者在操作系统下通过raid卡配置工具来设置)。一般的raid卡都是在开机自检的时候,进入他的ROM配置程序来配置各种RAID功能。
软 RAID 卡:通过软件并使用CPU的RAID卡我们成为软RAID,因为软RAID占用CUP资源比较高,所以绝大部分的服务器设备都使用的硬RAID。
![]()
RAID 卡的功能:
1)RAID卡:扩展磁盘容量,提供比单个硬盘更高的存储性能和提供数据冗余的技术,可以达到单个磁盘驱动器的几倍,几十倍甚至上百倍的速率,这也是RAID最初想要解决的问题;
2)RAID卡:提供了数据/磁盘容错能力,现在服务器基本上集成了RAID卡;
缓存(Cache)是RAID卡与外部总线交换数据的场所,它是RAID卡电路板上的一块存储芯片,与硬盘盘片相比,具有极快的存取速度。RAID卡现将数据传送到缓存,再经由缓存和外边数据总线交换数据。当系统断点后,存在cache里的数据下次开机后会自动刷到硬盘;缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素,大缓存能够大幅度的提高数据命中率从而提高RAID卡整体性能;不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等;
更多参见RAID卡简介;
HBA卡:主机总线适配器(Host Bus Adapter,HBA),是一个在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器,这种位于服务器上与存储 络连接的设备一般就称为主机总线适配卡(Host Bus Adaptor)HBA,用于连接计算机内部总线和存储 络的设备。因为HBA减轻了主处理器在数据存储和检索任务的负担,它能够提高服务器的性能。一个HBA和与之相连的磁盘子系统有时一起被称作一个磁盘通道。内部有一个小的中央处理器,一些内存作为数据缓存以及连接光纤通道和总线的连接器件等。HBA卡上有个小的中央处理器,负责PCI和光纤通道两种协议的转换。它还有其他的一些功能,如初始化与光纤通道 络连接的服务器端口,支持上层协议例如TCP/IP,SCSI等,8B/10B的编码解码等;HBA卡按接口分为:FC-HBA卡(俗称:光纤 卡)、iSCSI-HBA卡(RJ45接口)。
常见的服务器和存储设备之间的数据通讯协议是IDE,SCSI和光纤通道。为了实现服务器和存储设备之间的通讯,通讯的两端都需要实现同样的通讯协议。存储设备上通常都有控制器,控制器实现了一种或几种通讯协议,它可以实现IDE,SCSI或光纤通道等存储协议到物理存储设备的操作协议之间的转换。而服务器的通讯协议是由扩展卡或主板上的集成电路实现的,它负责实现服务器内总线协议和IDE,SCSI等存储协议的转换。
SAS卡:SAS卡就是在某些不支持sas的服务器上面额外增加的一块pcie卡。便于服务器安装sas硬盘。一般支持做Raid0、1、10、1E或者直接识别sas硬盘。同时也兼容sata硬盘。Raid卡可以支持SAS、SATA硬盘组成raid6531 10等。比sas卡的功能更强大。性能更优,价格更贵。
2)磁盘阵列维护
加强磁盘阵列的日常管理与维护,是保证磁盘阵列正常、高效工作的重要手段。日常维护中应该关注以下:
①设置热备源盘
将一只硬盘设置为热备源盘,会造成一定的浪费,但从安全角度考虑是值得的。大容量的磁盘阵列使用RAID5,但有一个硬盘的冗余。如果一个硬盘损坏,整个阵列的安全会处于一种临界状态,此时任何一个硬盘的一点点闪失都会造成灾难性的后果,使数据全部丢失。设置有热备源盘,当硬盘发生故障时,系统会自动用热备源盘去替换故障盘并重建阵列,随后数据又会处于完全保护之中。②重要数据勤备份
应该经常对特别重要的数据进行备份,这样就不至于将“鸡蛋放在一个篮子里”,即使是安全性较高的磁盘阵列也不会绝对安全。③建立巡视检查制度
磁盘阵列还能够工作,并不表示没有发生故障。当磁盘阵列发生故障时,磁盘阵列存储系统的数据读写通常是正常的。这正是磁盘阵列的一种安全性措施,但往往又让管理人员产生一种错觉,以为磁盘阵列没有故障发生。对磁盘阵列定时的巡视检查,既可以发现已经发生的故障,还可以了解设备的工作状态,起到防患于未然的作用。
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8686 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!