文章目录


Linux-Raid0、Raid1、Raid5、Raid10初探_raid1

生猛干货

​从系统安装到程序员必备的Linux技能,还原真实工作场景,手把手带你实战演练​

Linux-Raid0、Raid1、Raid5、Raid10初探_raid0_02


Raid 概述

RAID : 磁盘冗余队列 (Redundant Arrays of Independent Disks )

RAID是一种将多个容量较小的磁盘组成一组容量更大的磁盘,并提供数据冗余来保证数据完整性的技术 。

RAID将普通硬盘组成一个磁盘阵列,在主机写入数据,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;

主机读取数据时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。

由于采用并行读写操作,从而提高了存储系统的存取系统的存取速度。

RAID可分为级别0到级别6,通常称为:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6。

比较经典的 RAID0,RAID1,RAID5、RAID10 (RAID0+RAID1)


图示说明:

A, B, C, D, E and F – 代表blocks

p1, p2, and p3 – 代表 parity


Raid0 (数据条带)

最早出现的raid模式,也被称为数据条带。

只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。

Linux-Raid0、Raid1、Raid5、Raid10初探_raid_03

缺点是没有冗余或者数据修复的能力 ,但磁盘利用率100% Linux-Raid0、Raid1、Raid5、Raid10初探_raid10_04

特点:


  • 最少需要两块磁盘
  • 高性能 ( as blocks are striped ).
  • 没有冗余 ( no mirror, no parity ).
  • 不要使用在关键的系统上

举个例子, 你有3块 100G的磁盘, 使用RAID0的话,就相当于你有了一块300G的磁盘 , 读写数据的时候可以并发的向3个磁盘读写,速度相当于提高了3倍 。 但同样的,3块磁盘损坏的几率肯定要比一个磁盘损坏的几率高了3倍,因为任何一块坏了,你这个RAID0就挂逼了。。。


Raid1 (磁盘镜像)

Linux-Raid0、Raid1、Raid5、Raid10初探_raid0_05

RAID1模式是让组成RAID1模式的硬盘互为镜像,当你向硬盘中写入数据的时候,​两个硬盘同时存储相同的数据​,这样即使其中一个硬盘出现了故障,系统利用另外一个硬盘一样可以正常运行。

Linux-Raid0、Raid1、Raid5、Raid10初探_raid10_06

在RAID1模式当中,所使用的硬盘最好是相同的,否则会出现浪费硬盘空间的情况。由于RAID1模式是将相同的信息写入到不同的硬盘当中,所以RAID1模式的有效硬盘容量是阵列当中容量最小的硬盘的容量。

举个例子:如果RAID1模式中有一块容量为20GB的硬盘和一块容量为30GB的硬盘,那么总体的RAID1的有效容量是20GB,从此那块30GB硬盘上剩下的10GB容量就会被浪费。

同时,如果两块硬盘的速度不同的话,那么速度较快的那块硬盘依然会停下来等待速度较慢的那块硬盘完成任务之后再进行下一步行动。

特点:


  • 最少 2 disks.
  • 性能良好 ( no striping. no parity ).
  • 冗余 ( as blocks are mirrored ).
  • 比RAID0相比速度较慢,特别是写入速度
  • 磁盘利用率仅为50%


Raid5(分布式奇偶校验磁盘阵列)

Linux-Raid0、Raid1、Raid5、Raid10初探_raid0_07

通过分布式奇偶校验块把数据分布在多个磁盘上,这样任何一个数据失效,都可以从奇偶校验块中恢复。 但是如果两块磁盘失效,则整个卷的数据无法恢复。

Linux-Raid0、Raid1、Raid5、Raid10初探_raid1_08


  • 至少3块盘
  • 性能好 ( as blocks are striped ).
  • 冗余 ( distributed parity ).
  • 读快,写慢因为要进行奇偶校验


Raid10 (分片的镜像 Raid1+Raid0 )

这种RAID模式其实是RAID0和RAID1模式的组合,至少需要4块硬盘。

先对磁盘做RAID1,然后对两组RAID1磁盘再做RAID0

Linux-Raid0、Raid1、Raid5、Raid10初探_raid5_09


  • 至少 4 disks.
  • 分片的镜像
  • 冗余( as blocks are mirrored )
  • 性能 ( as blocks are striped )
  • 特别是对数据库,RAID10 是最好的。



总结

Linux-Raid0、Raid1、Raid5、Raid10初探_raid5_10

DB的话 建议RAID10 。 RAID控制器建议带有缓存功能的 。