请选择 进入手机版 | 继续访问电脑版

华客硬盘数据恢复论坛,华客数据恢复,北京数据恢复论坛,数据恢复培训,RAID服务器数据恢复论坛,华客400-065-1013

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 4545|回复: 2

RAID的原理基础

[复制链接]

877

主题

1092

帖子

44万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
441286
发表于 2014-12-14 15:21:42 | 显示全部楼层 |阅读模式
一、RAID的原理基础
在讲解RAID的原理基础之前,我们首先来了解一下传统磁盘的劣势。我们知道一台PC机种都会包含CPU、内存、主板、硬盘、网卡等硬件,影响计算机性能的组建包括:CPU、主板总线IO、内存IO、硬盘IO、网卡IO等。可能我们在一提到影响计算机的性能时,首先想到的就是CPU。但是随着计算机的发展,特别是对于现代的处理器来说,其运算速度已经是非常快的了,同时我们的内存IO速度也已经达到了非常快的地步了(差不多应该有5G每秒),而我们也知道数据都是保存硬盘上的,所以计算机其实是先将硬盘的数据传递给内存,然后CPU再从内存中加载数据来进行运算的,所以由此看来影响整个计算机性能的因素就是我们的硬盘IO速度了。我们来看看目前流行的硬盘类型及速度(数据可能不准确,不过基本差不多)
  硬盘类型    速度
  SATA <150M/s
  SCSI<200M/s
  SAS200M/s左右
  SSD固态硬盘  500M/s左右
我们目前的PC机上基本上都是使用SATA接口的硬盘,读的速度大概不超过150M/s,写的速度就更慢了,而生产环境下的服务基本上都是使用SAS(串行SCSI)硬盘,速度最快的是SSD固态硬盘,其速度几乎是SATA的4-5倍。但是即使是使用SSD固态硬盘,其速度在500M/s左右,也远远达不到我们内存以及CPU的处理速度。所以,盘是绝大多数计算机的性能的瓶颈
所以,现代磁盘的缺陷就是:I/O性能极差,稳定性极差
I/O性能我们刚已经看到了,就算是使用SSD固态硬盘,其还是会大大影响计算机的性能,稳定性差表现在,如果一个硬盘发生了故障或者损坏,那么这块硬盘就已经不能再使用了,这如果是在对数据保存要求特别高的地方来说,其是不可想象的。正因为如此,就诞生了一种新的技术--RAID。
RAID(Redundant Array of Independent Disks)是廉价磁盘冗余阵列技术的英文缩写,它的原理就是通过多个磁盘并行运行来提高整个计算机的I/O存储性能
RAID的评判标准有如下三个:

速度:读写速度的提升

磁盘使用率:多磁盘的空间使用率

冗余性: 能够支持几块磁盘损坏而不丢失数据

所以,基于以上三个评判标准,RAID分为很多种类,称之为RAID级别,现代RAID一共有7个级别,分别是RAID0~RAID6,但是常用的RAID级别主要是以下四种:
RAID0:提高读写性能
RAID1:提高读写性能、冗余性
RAID5:提高读写性能、冗余性(允许1块硬盘发生故障)
RAID6:提高读写性能、冗余性(运行2块硬盘发生故障)
下面我们就基于RAID的三个评判标准来看看常用的这四个RAID级别各自的特点
1.RAID0
RAID的工作原理就是通过多块硬盘并行运行来提高整个计算机的I/O存储性能。所以如果是RAID0这个级别,我们至少需要2块硬盘,在读写数据时,RAID0是通过将数据分开读写到多块硬盘的方式来提高读写性能的。我们可以通过下图来看看RAID0的工作原理
RAID0至少需要两块硬盘,当使用RAID0时,我们在读写数据的时候是将数据分开读写到多块硬盘上,所以其读写速度是最快的,但是因为多块硬盘上保存了数据的一部分,所以当一块硬盘发生损坏时,其整个RAID的数据也就损坏了。
①空间利用率:所有硬盘空间之和
②性能:所有硬盘读写速度之和
③冗余能力:无
2.RAID1
RAID1也是至少需要2块硬盘,在写数据的时候就不同于RAID0了,RAID1在写数据时会将数据复制到多块硬盘上,即每块硬盘都会保存该数据的一个备份,在读数据时,以提高冗余性。读的时候同时从多块硬盘上读取数据,以提高读的性能。
①空间利用率:所有磁盘中最小的那块(其实在使用RAID时,最好每块硬盘的大小及型号都一样)
②性能:读性能是所有硬盘之和,写性能有所减弱
③冗余能力:只要有一块硬盘正常,数据就正常
3.RAID5
RAID5至少需要3块硬盘,RAID5与RAID0类似,读写数据的时候会将数据分布的读写到所有硬盘上。但是在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,所以即使我们其中一块硬盘发生了损坏,RAID5也能通过其他硬盘以及校验信息对数据进行恢复使用。但是如果2块或者2块以上的硬盘发生了损坏,整个数据也就损坏了。
①空间利用率:1 - 1/n
②性能:读性能接近RAID0,写性能相比RAID0要弱一些
③冗余能力:可以接受1块硬盘的损坏
4.RAID6
RAID6至少需要4块硬盘,RAID6与RAID5相类似,读写数据的时候会将数据分布的读写到所有硬盘上。在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,但是RAID6会比RAID5多保存一份校验信息,所以RAID6的冗余性比RAID5就有所提升,可以允许2块硬盘发生损坏。
①空间利用率:1 - 2/n
②性能:读性能接近RAID5,写性能相比RAID5还要弱一些
③冗余能力:可以接受2块硬盘的损坏
以上四种RAID级别是我们最常用的四种级别,对于个人PC机来说,可能我们最需要提高的是硬盘存储性能,所以基本上使用的是RAID0,其读写性能得到了最大的提高,但是其冗余性为0,当硬盘发生损坏时,数据也就损坏了。而在生产环境下的服务器,使用的最多是RAID5或者RAID6,其即提供了读写性能,也提供了冗余性。RAID1通常会对于那些对数据准确性要求及其严格的场合才会使用。
我们来总结一下这4个常用的RAID级别各自的优缺点:
  RAID级别          速度  冗余性    磁盘利用率  
  RAID 0      读写速度均有提升  0  所有磁盘之和
  RAID 1    读速度有提示  n  一个磁盘大小
  RAID 5    读写速度均有提升      1  1-1/n
  RAID 6    读写速度均有提升  2  1-2/n
RAID的实现有两种方式:软件RAID和硬件RAID
①软件RAID
通过系统功能或者RAID软件来实现RAID,没有独立的硬件和接口,需要占用一定的系统资源(CPU、硬盘接口速度),并且受到操作系统稳定性的影响
②硬件RAID
通过独立的RAID硬件卡实现,有些主板集成了RAID硬件,有些需要购买独立的RAID硬件卡,硬件RAID实现不需要占用其他硬件资源,稳定性和速度都比软件RAID要强,所以对于服务器来说,最好是使用硬件RAID来提高计算机的性能
二、Linux系统下软件RAID的使用
对于目前所有的操作系统,包括windows、mac os、linux等操作系统,其都有软件RAID的实现,而我们的Linux操作系统的软件RAID是通过 mdadm 这个程序来实现的
使用Linux下的 mdadm 这个软件需要注意的几点:
①mdadm 支持的RAID级别有:RAID0、RAID1、RAID4、RAID5以及RAID6。我们看到对于常用的四种RAID级别,mdadm都能够支持
②mdadm 可以基于多块硬盘、分区以及逻辑卷来创建RAID。对于硬件实现RAID来说,就只能是基于多块硬盘了
③创建好的软件RAID对应于 /dev/mdn,n表示的是第几个RAID,如第一个创建的RAID对应 /dev/md0, 第二个创建的RAID就对应 /dev/md1,当然这个名字是可以自己随便取的
④RAID的信息保存在 /proc/mdstat 文件中,或者通过 mdadm 命令来查看
接下来我就在我这台CentOS的系统上来创建我们的软件RAID
在创建软件RAID之前,我这里首先通过虚拟机模拟了4块1G的虚拟硬盘出来,当然在实际环境下,使用的就是具体的硬盘了。

回复

使用道具 举报

1

主题

25

帖子

178

积分

新手上路

Rank: 1

积分
178
发表于 2014-12-27 21:59:54 | 显示全部楼层
学习了,顶起来。。。。。。。
回复 支持 反对

使用道具 举报

0

主题

197

帖子

1106

积分

中级会员

Rank: 3Rank: 3

积分
1106
发表于 2017-2-25 22:13:34 | 显示全部楼层
非常感谢,XIEXIE
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|华客硬盘数据恢复论坛,华客数据恢复,北京数据恢复论坛,数据恢复培训,RAID服务器数据恢复论坛,华客400-065-1013 ( 京ICP备09067925号-2

GMT+8, 2024-3-29 16:01 , Processed in 0.306889 second(s), 37 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表