RAID磁盘阵列
RAID是什么
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为
磁盘阵列
,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。 在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,导致I/O性能非常低,且存储容量还会受到限制。另外,单块磁盘极其容易出现物理故障,经常导致数据的丢失。因此大家就在想,有没有一种办法将多块独立的磁盘结合在一起组成一个技术方案,来提高数据的可靠性和I/O性能呢。
常用的RAID方案有哪些
RAID常用的方案一般有:
- RAID0
- RAID1
- RAID5
- RAID10
RAID0
RAID0 是一种非常简单的的方式,它将多块磁盘组合在一起形成一个大容量的存储。当我们要写数据的时候,会将数据分为N份,以独立的方式实现N块磁盘的读写,那么这N份数据会同时并发的写到磁盘中,因此执行性能非常的高。
RAID0 的读写性能理论上是单块磁盘的N倍(仅限理论,因为实际中磁盘的寻址时间也是性能占用的大头)
但RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,数据就直接丢失,无法恢复了。因此RAID0就不可能用于高要求的业务中,但可以用在对可靠性要求不高,对读写性能要求高的场景中。
RAID1
RAID1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。
RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个冗余备份。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据,数据的可靠性非常强,但性能就没那么好了。
RAID5
这是目前用的最多的一种方式。
因为 RAID5 是一种将 存储性能、数据安全、存储成本 兼顾的一种方案。 在了解RAID5之前,我们可以先简单看一下RAID3,虽然RAID3用的很少,但弄清楚了RAID3就很容易明白RAID5的思路。
RAID3的方式是==将数据按照RAID0的形式,分成多份同时写入多块磁盘,但是还会另外再留出一块磁盘用于写「奇偶校验码」。==例如总共有N块磁盘,那么就会让其中额度N-1块用来并发的写数据,第N块磁盘用记录校验码数据。一旦某一块磁盘坏掉了,就可以利用其它的N-1块磁盘去恢复数据。
但是由于第N块磁盘是校验码磁盘,因此有任何数据的写入都会要去更新这块磁盘,导致这块磁盘的读写是最频繁的,也就非常的容易损坏。 RAID5的方式可以说是对RAID3进行了改进。
RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)
RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了
RAID6
与raid原理一致增加一个校验盘,支持同时坏两块硬盘
RAID10
最少需要四块硬盘构成,先做raid1,两个raid1构成一个raid0,磁盘存储空间减半,安全性提升,i/o性能提高。
配置RAID
硬RAID和软RAID
-
硬RAID
==专门的RAID控制器将硬盘和电脑连接起来,RAID控制器负责将所有的RAID成员磁盘配置成一个虚拟的RAID磁盘卷。==对于操作系统而言,他们只能识别到由RAID控制器配置后的虚拟磁盘,而无法识别组成RAID的各个成员盘。 -
软RAID
==不使用RAID控制器,而是直接通过软件层实现的RAID,软RAID的各个成员盘对于操作系统来说是可见的,但是操作系统并不把各自的成员盘呈现给用户,==而是通过软件层配置好的虚拟RAID呈现给用户,使用户可以像使用一个普通盘一样使用RAID。
构建软RAID磁盘阵列
命令:
mdadm
格式:
mdadm
-Cv
/dev/名称
-l 级别
-n 硬盘数量
硬盘列表
-C
创建一个新的软 RAID,后面接 raid 设备的名称。
-A
加载一个已存在的阵列,后面跟阵列以及设备的名称。
-S
停止指定的 RAID 设备。
-D
输出指定 RAID 设备的详细信息。
-s
扫描配置文件或/proc/mdstat 文件来搜索软 RAID 的配置信息,该参数不能单独使用, 只 能配置其它参数才能使用。
-l
设置 RAID 的级别,例如设置“–level=5”则表示创建阵列的级别是 RAID5。
-n
指定阵列中活动磁盘的数目。
-x
指定阵列中备用磁盘数。
-G
改变在用阵列的大小或形态。
-v
显示细节。注意:如果构建好之后没有为其添加配置文件,系统关机之后,再次开机构建的磁盘阵列失效。
为其添加配置方法如下:
mdadm -Ds RAID名 >> /etc/mdadm.cond #然后为其添加 auto=yes 即可
为其添加配置方法如下:
mdadm -Ds RAID名 >> /etc/mdadm.cond #然后为其添加 auto=yes 即可