一句话概括
主要是针对几种不同的磁盘 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真的好慢啊