RAID

1、引言

RAID全称Redundant Arrays of Inexpensive Disks / Redundant Arrays of Independent Disks,即独立冗余磁盘阵列。RAID可以通过相关技术(软件/硬件),将多个较小的磁盘整合成为一个较大的磁盘整体,而且能从某些方面提高数据的读写及数据保护。RAID分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。在实际应用中,可以依据自己的实际需求选择不同的RAID方案。

2、RAID特性简述

  • ①提高IO能力:磁盘并行读写;
  • ②提高耐用性:磁盘冗余来实现;

3、RAID实现方式

  • ①外接式RAID:通过扩展卡提供适配能力;
  • ②内接式RAID:主板集成RAID控制器;
  • ③Software RAID:软件方式所实现的RAID,软件磁盘阵列;

    【注】硬件式raid是在BIOS中实现,无需安装操作系统;

4、RAID级别

①RAID-0

RAID0称为条带化(Striping)存储,将数据分段存储于各个磁盘中,读写均可以并行处理。因此其读写速率为单个磁盘的N倍(N为组成RAID0的磁盘个数),但是却没有数据冗余,单个磁盘的损坏会导致数据的不可修复。

如上图所示,在组成RAID0时,磁盘DiskA/B都会被先切成小区块(chunck)。当有数据写入RAID时,数据data会被切成符合小区块的大小,然后在依次一个一个地放置到DiskA和DiskB中去。由于data已经被切割且放置在不同的磁盘上面,因此每颗磁盘所负责的数据量都降低了。无论是写入操作,还是今后调用数据时候的读操作,RAID-0机制都是得读、写性能提升。

②RAID-1

镜像存储(mirroring),没有数据校验。数据被同等地写入两个或多个磁盘中,可想而知,写入速度会比较慢,但读取速度会比较快。读取速度可以接近所有磁盘吞吐量的总和,写入速度受限于最慢的磁盘。RAID1也是磁盘利用率最低的一个。如果用两个不同大小的磁盘建立RAID1,可以用空间较小的那一个,较大的磁盘多出来的部分可以作他用,不会浪费。

如上图所示,一份数据传送到RAID-1之后,会被复制,然后分别写入各个磁盘里面。由于两个磁盘的数据一模一样,所以任何一个磁盘损坏,资料都是可以保存下来的。RAID-1写的效能不佳,但是数据有冗余作用,而且将来在读取这部分数据的时候,因为数据在不同的磁盘上,可以有多个进程,读取同一个数据,读性能大大提升。

③RAID-5

RAID-5至少需要三颗硬盘才能组成这种类型的磁盘阵列。这种磁盘阵列的数据写入有点类似RAID-0,不过每个循环的写入过程中,在每颗磁盘还加入一个同位检查数据Parity,这个数据会记录其他磁盘的备份数据,用于当磁盘损坏时候,用于计算生成还原数据的。

如图所示,每个循环写入时,都有部分的同位检查码parity生成,并且记录在不同的硬盘上,因此任何一个磁盘损坏的时候,都能依靠另外两个磁盘恢复数据。

④RAID-6

RAID-6至少需要4块磁盘。在RAID-5的基础上,RAID-6校验盘有两块,存两份,再一次提升了冗余能力。总的可用空间:(总的磁盘数N-2)*min(S1, S2, ...)。其中min(S1, S2, ...)指磁盘S1,S2等所有磁盘中,最小的容量;

⑤RAID-10和RAID-01

RAID-0的效能佳但是没有冗余能力,RAID-1数据安全但是效能欠佳,为了综合RAID-0和RAID-1的优势,就有了RAID-10和RAID-01两种方案。RAID-10是:先让两颗磁盘组成RAID-1,并且这样设定两组,再让这两组RAID-1再组成一组RAID-0。RAID-01是:先让两颗磁盘组成RAID-0,并且这样设定两组,再让这两组RAID-0再组成一组RAID-1。

Linux进阶文件系统管理之RAID的更多相关文章

  1. linux btrfs文件系统管理与应用

    btrfs文件系统管理与应用 1.btrfs文件系统 基本介绍 btrfs文件系统在CentOS7.x上属于技术预览版 btrfs文件系统英文名:B-tree  FileSystem或者Butter ...

  2. linux的文件系统管理(ext4-tune2fs-e2fsck-xfs文件系统)

    文件系统管理 文件系统是Linux系统存放文件的空间.文件系统的类型有很多种,CentOS支持多种文件系统,目前常用的是ext4和xfs文件系统.我们以ext4文件系统为例来说明对文件系统的管理. U ...

  3. Linux高级文件系统管理(8)

    如果您的 Linux 服务器有多个用户经常存取数据时,为了维护所有使用者在硬盘容量的公平使用,磁碟配额 (Quota) 就是一项非常有用的工具,另外,如果你的用户常常抱怨磁盘容量不够用,那么更进阶的文 ...

  4. liniux备忘录-磁盘配额与进阶文件系统管理

    知识 磁盘配额Quota 可以限制磁盘的使用容量,可以对用户.群组磁盘的最大使用容量. 磁盘配额Quota的使用限制 只能针对整个文件系统. 核心必须支持Quota. 自行编译的核心需要注意 Quot ...

  5. linux备忘录-文件系统管理

    Extx 文件系统原理 block group 每个分区(partition)的组成为 boot sector -> block group -> block group -> bl ...

  6. 鸟哥私房菜基础篇:磁碟配额(Quota)与进阶文件系统管理习题

    猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0420quota.php 1-在前一章的第一个大量新增帐号范例中, 如果我想要让每个用户均具有 soft ...

  7. Linux学习 -- 文件系统管理

    1 分区和文件系统 分区类型 主分区:<= 4个 扩展分区:只能有一个,也算主分区的一种   不能存储数据和格式化,只能用来包含逻辑分区 逻辑分区:扩展分区中划分的   IDE--最多59个   ...

  8. 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍

    目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...

  9. 【linux相识相知】磁盘分区及文件系统管理详解

    磁盘,提供持久的数据存储,它不像我们的内存,如果突然断电了,在内存中的数据一般都会被丢掉了,内存中的数据在保存的时候,会被写到硬盘里面,磁盘也是一种I/O设备. 我们都知道磁盘分区完成之后,还要进行格 ...

随机推荐

  1. USACO 2015 December Contest, Gold Problem 2. Fruit Feast

    Problem 2. Fruit Feast 很简单的智商题(因为碰巧脑出来了所以简单一,一 原题: Bessie has broken into Farmer John's house again! ...

  2. HTTP 协议中GET和POST到底有哪些区别

    HTTP 定义了与服务器交互的不同方法,最常用的有4种,Get.Post.Put.Delete,如果我换一下顺序就好记了,Put(增),Delete(删),Post(改),Get(查),即增删改查,下 ...

  3. Hibernate3 和Hibernate4 在配置文件上的区别

    在使用hibernate之前要首先对hibernate进行一些基础的配置信息,像映射文件XXX.hbm.xml  XXX代表当前的domain的模型类名 <?xml version=" ...

  4. Maven新建webapp项目index.jsp报错

    最近用eclipse新建了一个maven项目,结果刚新建完成index.jsp页面就报错了,先把错误信息贴出来看看 后来就找资料,结果发现两种解决办法,希望可以帮助用得上的人! 第一种:直接在pom. ...

  5. 回调函数透彻理解Java

    http://blog.csdn.net/allen_zhao_2012/article/details/8056665 回调函数透彻理解Java 标签: classjavastringinterfa ...

  6. php 图片base64编码生成dataurl和保存为图片

    <?php header('Content-type:text/html;charset=utf-8'); //读取图片文件,转换成base64编码格式 $image_file = 'aaa.j ...

  7. 解决Excel 2010只有一个窗口的问题

    Excel 2010打开多个文件,但只有一个窗口的问题. 一般首次安装没有这个问题,碰到装了WPS后再卸载WPS,还有就是OFFICE卸载后重装,也会发生这个现像. 一.: 删除 HKEY_CLASS ...

  8. c++中处理输入输出的方法

    ============ 怎么处理一行空格中的逗号, ,,, ,,, ,,, c,c,d,d 使用c++的方法,可以这么处理: #include <sstream> #include< ...

  9. matlab 车牌分割的算法

    function Touying(g) f=rgb2gray(g); % [m n]=size(f); [row col]=size(f); % T=graythresh(f) % T=T*255 % ...

  10. 用ADO.NET存入数据库

    点击按钮存入登录名和密码: const string connstr = @"data source=USER-20160705UW\JSQL;initial catalog=Test;in ...