1、什么是RAID
RAID代表磁盘冗余阵列。这是一种将多个独立硬盘驱动器虚拟化为一个或多个阵列的方法,在用户租用服务器之后,通常都会做RAID阵列,以此来提高硬盘性能,容量和可靠性。通常RAID可以使用特殊控制器(硬件RAID)或操作系统驱动程序(软件RAID)实现
RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
RAID 的两个关键目标是提高数据可靠性和 I/O 性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到多块磁盘(典型地如镜像),或者将计算的校验数据写入阵列中来获得冗余能力,当单块磁盘出现故障时可以保证不会导致数据丢失。有些 RAID 等级允许更多地 磁盘同时发生故障,比如 RAID6 ,可以是两块磁盘同时损坏。在这样的冗余机制下,可以用新磁盘替换故障磁盘, RAID 会自动根据剩余磁盘中的数据和校验数据重建丢失的数据,保证数据一致性和完整性。数据分散保存在 RAID 中的多个不同磁盘上,并发数据读写要大大优于单个磁盘,因此可以获得更高的聚合 I/O 带宽。当然,磁盘阵列会减少全体磁盘的总可用存储空间,牺牲空间换取更高的可靠性和性能。比如, RAID1 存储空间利用率仅有 50% , RAID5 会损失其中一个磁盘的存储容量,空间利用率为 (n-1)/n
磁盘阵列可以在部分磁盘(单块或多块,根据实现而论)损坏的情况下,仍能保证系统不中断地连续运行。在重建故障磁盘数据至新磁盘的过程中,系统可以继续正常运行,但是性能方面会有一定程度上的降低。一些磁盘阵列在添加或删除磁盘时必须停机,而有些则支持热交换 ( Hot Swapping ),允许不停机下替换磁盘驱动器。这种高端磁盘阵列主要用于要求高可能性的应用系统,系统不能停机或尽可能少的停机时间。
RAID 中主要有三个关键概念和技术:镜像、数据条带和数据校验 。镜像:将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。数据条带:将数据分片保存在多个不同的磁盘,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升 。数据校验:利用冗余数据进行数据错误检测和修复
2、硬件RAID的优劣势
优势:
硬件RAID是专用处理系统,使用控制器或RAID卡独立于操作系统管理RAID配置。RAID控制器不会从其管理的磁盘中获取处理能力。因此,可以使用更多的空间和速度来读取和写入数据。它可以在任何操作系统上运行。更换故障磁盘很简单 - 只需将其插入并换上新磁盘即可。
劣势:
由于硬件RAID需要额外的控制器硬件,因此成本高于软件RAID。如果您的RAID控制器出现故障,您必须找到要更换的兼容的RAID控制器,以便让RAID系统按照您的设置方式执行。
3、软件RAID的优劣势
优势:
与硬件RAID不同,软件RAID使用安装RAID磁盘的操作系统的处理能力。成本较低,因为不需要额外的硬件RAID控制器。它还允许用户重新配置阵列,而不受硬件RAID控制器的限制。
劣势:
软件RAID往往比硬件RAID慢。由于软件采用了一些处理能力,因此RAID配置的读写速度以及服务器上执行的其他操作可能会因此而变慢。软件RAID通常特定于所使用的操作系统,因此通常不能用于操作系统之间共享的分区。
更换软件RAID中的故障磁盘有点复杂。您必须首先告诉系统停止使用磁盘然后更换磁盘。
4、软件RAID与硬件RAID:您应该选择哪一个
在软件RAID和硬件RAID之间进行选择取决于您需要做什么和成本。
如果您的预算紧张,并且您使用的是RAID 0或RAID 1,则软件RAID和硬件RAID之间没有太大区别。如果在使用计算密集型RAID 5和RAID 6时需要最佳性能,则应选择硬件RAID,因为软件RAID确实会损害性能。此外,软件RAID通常不支持诸如RAID 10之类的深奥RAID级别。在这种情况下需要硬件RAID。
总而言之,硬件RAID的成本高于软件RAID,但提供了更好的性能,使您免受软件RAID的限制,使您在使用方式和配置类型方面具有更大的灵活性。如果你的预算允许,选择硬件RAID会更好。
5、RAID等级
RAID0 是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID ,因为它并不提供任何形式的冗余策略。 RAID0 将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用。再加上不需要进行数据校验,RAID0 的性能在所有 RAID 等级中是最高的。理论上讲,一个由 n 块磁盘组成的 RAID0 ,它的读写性能是单个磁盘性能的 n 倍,但由于总线带宽等多种因素的限制,实际的性能提升低于理论值。
RAID0 具有低成本、高读写性能、 100% 的高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。 因此, RAID0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。
RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像 磁盘,它的磁盘空间利用率为 50% 。 RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。 RAID1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。
RAID1 与 RAID0 刚好相反,是为了增强数据安全性使两块磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。 RAID1 拥有完全容错的能力,但实现成本高。 RAID1 应用于对顺序读写性能要求高以及对数据保护极为重视的应用,如对邮件系统的数据保护。
RAID3 是使用专用校验盘的并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘。RAID3 至少需要三块磁盘。 RAID3 完好时读性能与 RAID0 完全一致,并行从多个磁盘条带读取数据,性能非常高,同时还提供了数据容错能力。向 RAID3 写入数据时,一次写操作包含了写数据块、计算校验值、写入校验值等多个操作,系统开销非常大,性能较低。
RAID3 只需要一个校验盘,阵列的存储空间利用率高,再加上并行访问的特征,能够为高带宽的大量读写提供高性能,适用大容量数据的顺序访问应用,如影像处理、流媒体服务等。 RAID3 在出现坏盘时性能会大幅下降。
RAID5 的磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,当一个数据盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。
RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。 RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。
RAID6 引入双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。 RAID6 是 RAID5扩展。RAID6 不仅支持数据的恢复,还要支持校验数据的恢复。RAID6 具有快速的读取性能、更高的容错能力。但是成本高于 RAID5 ,写性能也较差,设计和实施非常复杂。因此RAID6 很少得到实际应用
一共有0~6一共7种,这其中RAID 0、RAID1、RAID 5和RAID6比较常用。
RAID 0:如果你有n块磁盘,原来只能同时写一块磁盘,写满了再下一块,做了RAID 0之后,n块可以同时写,速度提升很快,但由于没有备份,可靠性很差。n最少为2。
RAID 1:正因为RAID 0太不可靠,所以衍生出了RAID 1。如果你有n块磁盘,把其中n/2块磁盘作为镜像磁盘,在往其中一块磁盘写入数据时,也同时往另一块写数据。坏了其中一块时,镜像磁盘自动顶上,可靠性最佳,但空间利用率太低。n最少为2。
RAID 3:为了说明白RAID 5,先说RAID 3.RAID 3是若你有n块盘,其中1块盘作为校验盘,剩余n-1块盘相当于作RAID 0同时读写作为数据盘,当其中一块盘坏掉时,可以通过校验码还原出坏掉盘的原始数据。校验数据,当中间缺了一个数据时,可以通过其他盘的数据和校验数据推算出来。但是这有个问题,由于n-1块盘做了RAID 0,每一次读写都要牵动所有盘来为它服务,而且万一校验盘坏掉就完蛋了。最多允许坏一块盘。n最少为3.
RAID 5:在RAID 3的基础上有所区别,同样是相当于是1块盘的大小作为校验盘,n-1块盘的大小作为数据盘,但校验码分布在各个磁盘中,不是单独的一块磁盘,也就是分布式校验盘,这样做好处多多。最多坏一块盘。n最少为3.
RAID 6:在RAID 5的基础上,又增加了一种校验码,和解方程似的,一种校验码一个方程,最多有两个未知数,也就是最多坏两块盘。
总体来说,
作者:Sherry链接:https://www.zhihu.com/question/20131784/answer/28026813
6、查看磁盘是否做了raid
查看磁盘是否做了raid 可以通过命令 cat /proc/mdstat 或者 cat /proc/scsi/scsi
root@ubuntu:/var/VM_ramdisk# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
输入以后,结果是unused devices:none.
这样的信息应该是表示没有添加RAID设备,或者是RAID是关闭的
root@ubuntu:/var/VM_ramdisk# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 03 Lun: 00
Vendor: ATA Model: HGST HUS726060AL Rev: TAF0
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi0 Channel: 00 Id: 06 Lun: 00
Vendor: ATA Model: HGST HUS726060AL Rev: TAF0
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi0 Channel: 00 Id: 07 Lun: 00
Vendor: ATA Model: TOSHIBA MG03ACA1 Rev: FL2A
Type: Direct-Access ANSI SCSI revision: 06
HOST 主机适配器标识 第一个适配器为 00
Channel 主机适配器上的SCSI通道,第一个通道为 00
ID 设备的SCSI标识 即硬盘标识 从00开始
Channel 值一样 同时 ID一样的多条信息说明 同一个硬盘被划分了多个分区
Channel 值一样 同时 ID有多个 说明这几个硬盘组成了 卷组 或者 RAID
Model 是硬盘的品牌型号
Rev 磁盘是否做了raid