介绍
RAID(Redundant Array of Independent Disks)是将多块物理硬盘通过RAID控制卡组合成虚拟的单块大容量硬盘使用,从而提供比单个硬盘更高的存储性能、更高的I/O性能及可靠性。
磁盘阵列(Redundant Arrays of Independent Disks,RAID)是一种用多个独立的磁盘组成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性的技术。磁盘阵列有不同的类型,如RAID 0、RAID 1、RAID 5、RAID 6、RAID 10等,它们各有各的优缺点和适用场景。如果你想在电脑上组成磁盘阵列,你需要有相应的硬件或软件支持。你可以使用RAID卡或者操作系统提供的工具来创建和管理磁盘阵列。具体的操作步骤和方法可能根据你的硬件和软件配置而有所不同,你可以参考一些教程或者咨询专业人士来进行设置。
如何选择磁盘阵列
选择磁盘阵列类型的时候,你需要考虑你的需求和预算。不同类型的磁盘阵列有不同的特点和优缺点,主要涉及到以下几个方面:
-
存储容量:磁盘阵列的总容量取决于你使用的磁盘数量和大小,以及你选择的阵列模式。一般来说,RAID 0可以提供最大的存储容量,因为它没有冗余数据,但也最不安全。RAID 1可以提供最小的存储容量,因为它需要镜像所有的数据,但也最安全。RAID 5和RAID 6可以提供中等的存储容量,因为它们需要一定比例的磁盘空间来存储校验信息,但也可以提供一定程度的容错能力。RAID 10可以提供高于RAID 1但低于RAID 0的存储容量,因为它是RAID 0和RAID 1的组合。
-
性能:磁盘阵列的性能主要取决于你使用的磁盘速度和接口,以及你选择的阵列模式。一般来说,RAID 0可以提供最高的性能,因为它可以利用多个磁盘并行读写数据,但也最不稳定。RAID 1可以提供较低的性能,因为它需要同步写入两份数据,但也最稳定。RAID 5和RAID 6可以提供中等的性能,因为它们需要计算和写入校验信息,但也可以提高数据可靠性。RAID 10可以提供高于RAID 1但低于RAID 0的性能,因为它是RAID 0和RAID 1的组合。
-
可靠性:磁盘阵列的可靠性主要取决于你使用的磁盘质量和寿命,以及你选择的阵列模式。一般来说,RAID 0没有任何可靠性,因为它没有冗余数据,一旦有一个磁盘故障,就会导致整个阵列失效。RAID 1有最高的可靠性,因为它有完整的数据备份,即使有一个磁盘故障,也不会影响数据完整性。RAID 5和RAID 6有中等的可靠性,因为它们有校验信息,可以在有一个或两个磁盘故障时恢复数据,但如果超过这个限制,就会导致数据丢失。RAID 10有高于RAID 5和RAID 6但低于RAID 1的可靠性,因为它是RAID 0和RAID 1的组合。
综上所述,你应该根据你对存储容量、性能和可靠性的权衡来选择合适的磁盘阵列类型。一般来说:
-
如果你只追求最大的存储容量和最高的性能,并且不在乎数据安全性或者有其他备份方案,你可以选择RAID 0。
-
如果你只追求最高的数据安全性,并且不在乎存储容量或者性能损失,你可以选择RAID 1。
-
如果你想要平衡存储容量、性能和可靠性,并且可以接受一定程度的损失或者风险,你可以选择RAID 5或者RAID 6。
-
如果你想要同时享受较高的存储容量、性能和可靠性,并且可以承担较高的成本或者复杂度,你可以选择RAID 10。
RAID级别 | 最少硬盘 | 可用容量 | 读写性能 | 安全性 | 特点 |
---|---|---|---|---|---|
0 | 2 | n | n | 低 | 将数据分成块,平均分配到多个磁盘上,提高读写性能,但没有冗余数据,无法容错。 |
1 | 2 | n/2 | n | 高 | 将数据完全复制到两个或更多的磁盘上,提高数据安全性,但降低存储容量和写入性能。 |
5 | 3 | n-1 | n-1 | 中 | 将数据和校验信息分成块,分散到多个磁盘上,提高存储效率和读取性能,可以容忍一个磁盘故障,但写入性能较低。 |
6 | 4 | n-2 | n -2 | 高 | 类似于RAID 5,但使用两个不同的校验信息,提高数据可靠性,可以容忍两个磁盘故障,但写入性能更低。 |
10 | 4 | n/2 | n/2 | 高 | 将多个RAID 1组合成一个RAID 0,提高存储容量、性能和可靠性,可以容忍多个磁盘故障(但不超过每个子阵列的一半),但成本和复杂度较高。 |
RAID0
RAID 0又称为条带化(Stripe)或分条(Striping),代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个硬盘上存取。这样,当系统有数据请求时就可以在多个硬盘上并行执行,每个硬盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高硬盘整体读写性能。但由于其没有数据冗余,无法保护数据的安全性,只能适用于I/O速率要求高,但数据安全性要求低的场合。
如图所示,系统向三块硬盘组成的逻辑硬盘(RAID 0硬盘组)发出的I/O数据请求被转化为三项操作,其中的每一项操作都对应于一块物理硬盘。
通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。
三块硬盘的并行操作在理论上使同一时间内硬盘读写速度提升了3倍。虽然由于总线带宽等多种因素的影响,实际的提升速率会低于理论值,但是大量数据并行传输与串行传输比较,提速效果显著。
RAID1
RAID 1又称镜像(Mirror或Mirroring),即每个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时同时从工作盘和镜像盘读出。当更换故障盘后,数据可以重构,恢复工作盘正确数据。RAID 1可靠性高,但其有效容量减小到总容量一半,因此常用于对容错要求较高的应用场合,如财政、金融等领域。
如图所示,系统向两块硬盘组成的逻辑硬盘(RAID 1硬盘组)发出I/O数据请求。
向硬盘Drive 0写入数据时,系统会同时把用户写入Drive 0的数据自动复制到Drive 1上。 读取数据时,系统同时从Drive 0和Drive 1读取。
RAID5
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。为保障存储数据的可靠性,采用循环冗余校验方式,并将校验数据分散存储在RAID的各成员盘上。当RAID的某个成员盘出现故障时,通过其他成员盘上的数据可以重新构建故障硬盘上的数据。RAID 5既适用于大数据量的操作,也适用于各种小数据的事务处理,是一种快速、大容量和容错分布合理的磁盘阵列。
如图所示,PA为A0、A1和A2的奇偶校验信息,PB为B0、B1和B2 的奇偶校验信息,以此类推。
RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到成员盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上。当RAID 5的一个硬盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息可以恢复被损坏的数据。
RAID 5可以理解为是RAID 0和RAID 1的折衷方案:
RAID 5可以为系统提供数据安全保障,但保障程度要比RAID 1低而硬盘空间利用率要比RAID 1高,存储成本相对较低。 RAID 5具有较RAID 0略低的数据读写速度,但写性能比写入单个硬盘时要高。
RAID6
在RAID 5的基础上,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块硬盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的硬盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”较差。
如图所示,PA为数据块A0、A1、A2的第一个校验信息块,QA为第二个校验信息块;PB为数据块B0、B1、B2 的第一个校验信息框,QB为第二个校验信息块,以此类推。
数据块和校验块一起分散存储到RAID 6的各个成员盘上。当任意一个或两个成员硬盘出现故障时,控制卡可以从其他处于正常状态的硬盘上重新恢复或生成丢失的数据而不影响数据的可用性。
RAID10
RAID 10是将镜像和条带进行两级组合的RAID级别,即RAID 1+RAID 0的组合形式,第一级是RAID 1,第二级是RAID 0。RAID 10是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。
如图所示,Drive 0和Drive 1组成一个子组0,Drive 2和Drive 3组成一个子组1,子组内的两个硬盘互为镜像。
系统向硬盘发出I/O数据请求时,原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1的方式,系统在向硬盘Drive 0写入数据的同时把数据自动复制到硬盘Drive 1上,向硬盘Drive 2写入数据的同时把数据自动复制到硬盘Drive 3上。