linux上RAID的工作方式

-. RAID是什么?

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),是将多块廉价硬盘组合在一起当作一个更大的硬盘使用,利用可以同时对每个硬盘同时进行读写的特性提高计算机对硬盘的读写能力。我们甚至可以空出RAID中的一块或多块硬盘对整个RAID进行数据校验,提高其稳定和安全性。

    RAID根据硬盘的组合利用方式不同分为RAID0,RAID1,……,RAID7,RAID10,RAID01,RAID50,JBOD(just a bunch of disks)。其中常用的有0,1,5,10,01,50,JBOD。

    注意“RAID10”中的10不是“十”而是1和0的组合。

    下面就让我们跳几个常用的一睹其庐山真面目吧!

二. RIAD0

    blob.png

    RAID0有两块硬盘组成:disk0和disk1。

    假设我们要往RAID0上存入一个FILE1文件,其存储过程是将FILE1分成多个block,每个block命名为A1,A2,……

然后按图中所示方式存储至disk0和disk1。

    我们不难发现RAID0具有如下特定:

        1. 我们至少需要两块硬盘才能组成一个RAID0;

        2. 数据在RAID0中的存储过程至少简单的拆封和组合,却不具备校验能力;

        3. 其存储容量为:硬盘数*硬盘中的最小容量;

        4. 由于可以同时对多块硬盘进行读写,所以其读写性能提升;

三. RAID1

    blob.png

    RAID1也是至少有两块硬盘组成,其存储方式两个磁盘同时存入同样的内容,我们可以吧DISK2理解为DISK1的镜像。

    RAID1的特点:

        1. 由于要多出一块硬盘来做镜像,所以其写能力变差;

        2. 我们可以从两块硬盘同时读取同一个文件不同内容,所有其读能力变强;

        3. 多了镜像,所以其容错能力增强;

        4. 至少需要两块硬盘;

四,RAID4和RAID5

    blob.png

    RAID4至少由3块硬盘组成,其中两块用来存储,一块用来作为校验盘。比如图中由4块硬盘组成,D1,D2,D3用来存储数据,D4用来作为校验盘。我们可以通过A1,A2,A3通过一定的算法产生AP(1-3), 反过来却不行,但是如果说A1,A2,A3中任何一块出现问题,比如A2,我们可以通过AP(1-3),A1,A3反推出A2。

    RAID4具有以下特点:

        1. 至少需要3块硬盘;

        2. 安全稳定性能具有一定的提升(存在一块校验盘);

        3. 实际可利用空间比所有硬盘总和小一块硬盘的容量;

        4. 读和写性能得到提升;

    RAID5和RAID4基本相同,不同之处在于RAID5把不同的磁盘轮流作为不同的检验盘,如图所示:

    blob.png

    注: AP,BP,CP,DP为校验数据;

五,RAID10和RAID01

    blob.png

    RAID10是先把(DISK0,DISK1)和(DISK2,DISK3)先按RAID1组合然后再把两个RAID1按RAID0组合;

    RAID01是先把(DISK0,DISK1)和(DISK2,DISK3)先按RAID0组合然后再把两个RAID0按RAID1组合;

    两种组合方式在安全稳定性能上都很强,读写性能也很强,但是磁盘空间利用率不高(至少需要4块硬盘),土豪公司才会考虑采用这种组合方式。

 

原创文章,作者:Jacen,如若转载,请注明出处:http://www.178linux.com/9659

(0)
JacenJacen
上一篇 2015-12-06 20:23
下一篇 2015-12-06 20:26

相关推荐

  • rsync3.0 (初稿 逐步完善)

    实验环境为 centos 7.2 系统   CentOS Linux release 7.2.1511 (Core)   主机  ip               10.1.250.19 客…

    Linux干货 2016-06-03
  • linux基础之磁盘管理

    linux基础之磁盘管理 学习linux,数据维护和管理是重中之重,而数据大部分存放在硬盘当中,因此,熟练掌握磁盘的使用和管理是运维人员的基础要求。那么,linux系统包括哪些知识点呢? 下面,我们就详细阐述下Linux中磁盘的分区、格式化,以及一些磁盘的高级用法:磁盘配额、RAID阵列和LVM 一、硬盘 随着技术的进步,人类社会的不断发展。硬盘也经历了几代…

    Linux干货 2017-03-19
  • Python入门之迭代,列表解析,生成器及文件操作

    迭代器是访问集合元素的一种方式,迭代器包含了__iter__()(返回迭代器对象本身)next()(返回迭代器的下一个元素)迭代器只能往前不会退后 以下类型支持迭代 序列类型:list,str,tuple 非序列类型:dict,file 自定义类 通过内建的函数iter()或对象自带方法__iter__可以获取迭代器对象 l1=range(5) iter1=…

    Linux干货 2015-12-13
  • 磁盘管理之swap,移动设备及dd命令的使用

    首先我们来复习一下前一天的内容 CHS Sector(扇区) 512字节 track(磁道) 63个 2^6个扇区 1024个磁道,10个位存储磁道数 track=cylinder(柱面) cylinder=(容量)sector(512)track(63)head(256)=8M head(磁头) 256 8位存储 MBR的分区方式都是基于柱面为整…

    Linux干货 2016-09-07
  • 在CentOS中获取命令帮助

    在CentOS中获取命令帮助    在使用和学习CentOS系统中,当我们遇上不熟悉的命令却又需要了解它的详细用法的时候,我们需要获取帮助。除了借助他人和搜索引擎之外,自己通过查看系统帮助文档来解决问题是很重要的。下面就来介绍如何获取帮助以及简单的解决思路:    一、如何获取命令帮助 Linux提供多层次的命令帮助:…

    Linux干货 2016-07-27
  • 编译安装LAMP-centos7

    编译安装LAMP (centos7 基于模块化) 编译安装所需版本 Httpd 2.4,PHP 5.4,MariaDB 5.5通用二进制格式(绿色安装包) MAriDB5.5 绿色安装 1、#mkdir lamp :创建一个文件夹,存放软件的版本 2、从官网上下载httpd2.4 mariaDb 5.5 PHP 5.4到该文件夹下 3、# tar xvf m…

    Linux干货 2017-05-17