磁盘 RAID 小解

一句话概括

主要是针对几种不同的磁盘 RAID 方式进行原理性的介绍,包括 RAID0,RAID1,RAID5 和 RAID10

最近有一个搭建git服务器的小任务,因为手头的服务器只有4T的硬盘,这肯定是不够做一个存储服务器的,于是就在网上购入了一批硬盘(5400r/s,性能捉急,但是做存储还是够用了,SATA接口),到手后服务器的磁盘构造为:

4T SAS硬盘x1,4T SATA硬盘x5,一共有6块硬盘

由于服务器安装系统需要先做磁盘的 RAID(Redundant Array of Independent Disks,磁盘冗余阵列),我原本想的是这六块磁盘做 RAID1,这样好像就是原来一半的容量,但是我在 BIOS 启动,按 CTRL+R 进入 RAID 设置界面之后就发现了问题,因为我在选择完 RAID 选项之后就发现那个SAS的硬盘变成了不可选取的状态,但是我开始的时候并没有在意这个问题,这里埋着一个小坑,下面我依次说明一下各个RAID的原理以及设置的详情

RAID 模式介绍

RAID0

最快,最不安全的存储方式,所需的磁盘数 >=1 即可

RAID0 有两种,一种是非并发,一种是并发

非并发模式

就跟普通的硬盘一样,一个硬盘存储用完就接着往下一个硬盘上存储,这样并没有提高存储的效率,也没有额外的安全考虑,现在一般的 RAID0 都是做的并发式存储,当然如果只有一块硬盘,那也只能做非并发了

并发模式

这种模式就与非并发模式不同了,这种一般会有大于等于 2 块硬盘,都做 RAID0,它将数据按照磁盘的个数分段,然后在存数据和取数据的时候就按分段去进行,相当于是一个磁盘做存取时速度的 n 倍

下面是 RAID0 并发模式工作的一个演示图:

RAID1

最慢,最安全的存储方式,注意如果是两个不一样大小的磁盘做 RIAD1,那么做完之后,RAID1 的容量按小的那块来算,所需的磁盘数 = 2

RAID5

RAID0 RAID1 的折中方案,也是 RAID2,3,4 的升级方案,现在机器上一般提供的都是 RAID0,1,5,10 这些方案,其他的比较少提到,所需的磁盘数 >= 3,假如只有三块硬盘的情况下,在每次存储数据的时候,均有两块硬盘上会进行分段的数据存储,剩下的那块硬盘上面则是存储的存储校验信息,这样在任意一块硬盘损坏的情况下,都可以通过其他硬盘进行数据的恢复,RAID5 的存储为单一硬盘的 n-1 倍

下面是RAID5工作的一个演示图:

RAID10

RAID0 和 RAID1的结合体,既有RAID0的速度,又有RAID1的安全性保障,但是美中不足的是磁盘的消耗比较大,其原理为每两个磁盘做RIAD1,然后将这一组RAID1的两个磁盘作为一个逻辑磁盘,再与其他的做RAID0,所以这种方案的磁盘数:4+2*n (n>=0),RAID10 的存储为单一硬盘的 50%

下面表格为这几种 RAID 模式的速度及容量(相比于n个单一硬盘)比对

RAID 模式 数量限制 容量 速度
RAID0 >= 1 100% n倍(并发模式)
RAID1 >= 2 50% 一样
RAID5 >= 3 n-1/n n-1 倍
RAID10 >= 4 50% 一样

RAID方案选择

经过上面简单的解释,我们对于磁盘阵列的安排方式也有了一个比较直观的认识,我现在的需求是:

  • 尽量保证磁盘数据的安全
  • 在保证安全的基础上尽量扩大存储空间

综合考虑上面两点之后,我的选择当然是RAID10,但是等到我选择这种阵列模式的时候,我就发现原来的6块磁盘只有5块能选中,SAS那块一直无法选取,隐隐觉得不对劲,查了一点资料才知道SAS和SATA不能在一个RAID里,所以我就把那块SAS换成了一个SATA的硬盘,果然就什么问题都没有了。。。

如果手头上没有这样的设备的小伙伴,那就只能分开做成两个RAID咯

但是做RAID10真的好慢啊

0%